/* 1. header-nv */
.header-nv {
  transition: all 0.4s ease;
}

.header-nv.scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
}

/* 2. logo */
.logo img {
  transition: transform 0.3s ease;
}

.logo:hover img {
  transform: scale(1.1) rotate(5deg);
}

/* 3. menu */
.menu li {
  position: relative;
  transition: color 0.3s ease;
}

.menu li::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, #FF00FF, #FF69B4);
  transition: width 0.3s ease;
}

.menu li:hover::after,
.menu li.activeNav::after {
  width: 100%;
}

/* 4. commonTile */
.commonTile h1 {
  opacity: 0;
  transform: translateY(-30px);
  animation: fadeInUp 0.8s ease forwards;
}

.commonTile .underline {
  width: 0;
  animation: expandWidth 1s ease 0.3s forwards;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes expandWidth {
  to {
    width: 100px;
  }
}

/* 5. header */
.header .item-left h1,
.header .item-left h2 {
  opacity: 0;
  transform: translateX(-50px);
  animation: slideInLeft 0.8s ease forwards;
}

.header .item-left h1 {
  animation-delay: 0.2s;
}

.header .item-left h2 {
  animation-delay: 0.4s;
}

.header .item-left .lead {
  opacity: 0;
  animation: fadeIn 0.8s ease 0.6s forwards;
}

.header .item-left .download-btn {
  opacity: 0;
  transform: translateY(30px);
  animation: slideUp 0.8s ease 0.8s forwards;
  display: inline-block;
  margin-right: 15px;
  transition: transform 0.3s ease;
}

.header .item-left .download-btn:hover {
  transform: translateY(-5px) scale(1.05);
}

@keyframes slideInLeft {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 6. feature li */
.feature li {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.6s ease;
}

.feature li.init-hidden {
  opacity: 0;
  transform: translateY(50px);
}

.feature li.animate-visible {
  opacity: 1;
  transform: translateY(0);
}

.feature li:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px rgba(255, 0, 255, 0.15);
}

.feature li img {
  transition: transform 0.5s ease, filter 0.5s ease;
}

.feature li:hover img {
  transform: scale(1.05);
  filter: brightness(1.1);
}

/* 7. video-wrapper */
.video-wrapper {
  position: relative;
  overflow: hidden;
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.video-wrapper:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 60px rgba(255, 0, 255, 0.2);
}

.btn-over .btn-round {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-over .btn-round:hover {
  transform: scale(1.1);
  box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4);
}

.btn-over .btn-round svg {
  transition: transform 0.3s ease;
}

.btn-over .btn-round:hover svg {
  transform: scale(1.2);
}

/* 8. amount-container */
.amount-container {
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.amount-container:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

/* slider */
.slider {
  -webkit-appearance: none;
  appearance: none;
  height: 8px;
  border-radius: 5px;
  background: linear-gradient(90deg, #FF00FF 0%, #FF69B4 100%);
  outline: none;
  transition: box-shadow 0.3s ease;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(255, 0, 255, 0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.slider::-webkit-slider-thumb:hover {
  transform: scale(1.2);
  box-shadow: 0 6px 20px rgba(255, 0, 255, 0.5);
}

/* term-btn */
.term-btn {
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.term-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.5s ease;
}

.term-btn:hover::before {
  left: 100%;
}

.term-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(255, 0, 255, 0.3);
}

.term-btn.active {
  background: linear-gradient(135deg, #FF00FF, #FF69B4);
  color: white;
  transform: scale(1.05);
}

/* 9. ft-list */
.ft-list li {
  opacity: 1;
  transform: translateX(0);
  transition: all 0.5s ease;
}

.ft-list li.init-hidden {
  opacity: 0;
  transform: translateX(-30px);
}

.ft-list li.animate-visible {
  opacity: 1;
  transform: translateX(0);
}

.ft-list li:hover {
  transform: translateX(10px);
}

.icon-bg-sm {
  transition: transform 0.3s ease;
}

.ft-list li:hover .icon-bg-sm {
  transform: scale(1.1) rotate(10deg);
}

/* 10. loanProcess */
.loanProcess .steps li {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.6s ease;
}

.loanProcess .steps li.init-hidden {
  opacity: 0;
  transform: translateY(30px);
}

.loanProcess .steps li.animate-visible {
  opacity: 1;
  transform: translateY(0);
}

.loanProcess .steps .line {
  transition: border-color 0.3s ease;
}

.loanProcess .steps li:hover ~ .line,
.loanProcess .steps li:hover .line,
.loanProcess .steps li.visible ~ .line,
.loanProcess .steps li.visible .line {
  border-color: #FF69B4;
}

.loanProcess .steps li:hover {
  transform: translateY(-10px);
}

.loanProcess .steps img {
  transition: transform 0.5s ease;
}

.loanProcess .steps li:hover img {
  transform: scale(1.1);
}

.loanProcess .steps .line {
  transition: border-color 0.3s ease;
}

.loanProcess .steps li:hover ~ .line,
.loanProcess .steps li:hover .line {
  border-color: #FF69B4;
}

/* 11. footer */
.footer {
  opacity: 0;
  animation: fadeIn 1s ease 0.5s forwards;
}

.footer h1,
.footer p,
.footer a {
  transition: color 0.3s ease, transform 0.3s ease;
  /* display: inline-block; */
}

.footer a:hover {
  transform: translateX(5px);
  color: #FF69B4 !important;
}

/* 12. wave-path */
.wave-path {
  animation: waveAnimation 10s ease-in-out infinite;
  transition: d 0.5s ease;
}

@keyframes waveAnimation {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* 13. amount-item */
.amount-item .value {
  transition: color 0.3s ease;
}

.amount-item:hover .value {
  color: #FF00FF;
  transform: scale(1.1);
  display: inline-block;
}

/* 14. loaded */
body.loaded .header-nv {
  animation: slideDown 0.6s ease;
}

@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

/* 15. back-to-top */
.back-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #FF00FF, #FF69B4);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
  z-index: 1000;
  box-shadow: 0 5px 20px rgba(255, 0, 255, 0.3);
}

.back-to-top.visible {
  opacity: 1;
  visibility: visible;
}

.back-to-top:hover {
  transform: translateY(-10px) scale(1.1);
  box-shadow: 0 10px 30px rgba(255, 0, 255, 0.5);
}

/* 16. page-transition */
.page-transition {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #FF00FF, #FF69B4);
  z-index: 9999;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.5s ease;
}

.page-transition.active {
  transform: scaleY(1);
  transform-origin: top;
}

/* 17. button */
a, button {
  transition: all 0.3s ease;
}

/* 18. img */
img {
  transition: opacity 0.5s ease, transform 0.5s ease;
}

img.lazy {
  opacity: 0;
}

img.loaded {
  opacity: 1;
}

/* 19. product-features */
.product-features .list .item {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.6s ease;
}

.product-features .list .item.init-hidden {
  opacity: 0;
  transform: translateY(30px);
}

.product-features .list .item.animate-visible {
  opacity: 1;
  transform: translateY(0);
}

.product-features .list .item:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 40px rgba(255, 0, 255, 0.2);
  border-color: #FF00FF;
}

/* 20. focus */
.main form input:focus {
  border-color: #FF00FF;
  box-shadow: 0 0 20px rgba(255, 0, 255, 0.2);
  transform: scale(1.02);
}

/* 21. button */
.btn button {
  transition: all 0.4s ease;
  position: relative;
  overflow: hidden;
}

.btn button::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
}

.btn button:hover::before {
  width: 300px;
  height: 300px;
}

.btn button:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4);
}

/* 22. @media */
@media (max-width: 768px) {
  .feature li:hover {
    transform: none;
  }
  
  .loanProcess .steps li:hover {
    transform: none;
  }
  
  .header .item-left .download-btn:hover {
    transform: none;
  }
}