@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

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

.hero__heading {
  animation: fadeUp 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.hero__row {
  animation: fadeIn 0.7s ease 0.2s both;
}

.hero__divider {
  animation: fadeIn 0.5s ease 0.4s both;
}

.hero__subtitle {
  animation: fadeUp 0.6s ease 0.45s both;
}

.anim {
  opacity: 0;
  transform: translateY(28px);
}

.anim.is-visible {
  animation: fadeUp 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.offer__cards .offer__card.anim.is-visible:nth-child(2) { animation-delay: 0.1s; }
.offer__cards .offer__card.anim.is-visible:nth-child(3) { animation-delay: 0.2s; }

.testimonials__cards .testimonials__card.anim.is-visible:nth-child(2) { animation-delay: 0.1s; }
.testimonials__cards .testimonials__card.anim.is-visible:nth-child(3) { animation-delay: 0.2s; }

.faq__container .faq__item.anim.is-visible:nth-child(2) { animation-delay: 0.06s; }
.faq__container .faq__item.anim.is-visible:nth-child(3) { animation-delay: 0.12s; }
.faq__container .faq__item.anim.is-visible:nth-child(4) { animation-delay: 0.18s; }
.faq__container .faq__item.anim.is-visible:nth-child(5) { animation-delay: 0.24s; }

.header__logo {
  transition: transform 0.2s ease;
}

.header__logo:hover {
  transform: scale(1.04);
}

.header__nav a {
  position: relative;
}

.header__nav a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--purple);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.28s ease;
}

.header__nav a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.btn {
  transition: opacity 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  opacity: 0.92;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(138, 82, 217, 0.32);
}

.offer__card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.offer__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.11);
}

.testimonials__card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.testimonials__card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.faq__item {
  transition: background 0.2s ease;
}

.faq__item:hover .faq__question {
  color: var(--purple);
  transition: color 0.2s ease;
}

.footer__social a {
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.footer__social a:hover {
  transform: scale(1.12);
  opacity: 1;
}

.footer__subscribe-btn {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.footer__subscribe-btn:hover {
  opacity: 0.85;
  transform: translateX(2px);
}

@media (prefers-reduced-motion: reduce) {
  .hero__heading,
  .hero__row,
  .hero__divider,
  .hero__subtitle,
  .anim {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .btn,
  .offer__card,
  .testimonials__card,
  .header__logo,
  .footer__social a,
  .footer__subscribe-btn {
    transition: none;
  }

  .header__nav a::after {
    transition: none;
  }
}
