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

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

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-32px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(32px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes countPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.animate-fade-in-up {
  animation: fadeInUp 0.7s ease-out forwards;
}

.animate-fade-in {
  animation: fadeIn 0.6s ease-out forwards;
}

.animate-slide-in-left {
  animation: slideInLeft 0.7s ease-out forwards;
}

.animate-slide-in-right {
  animation: slideInRight 0.7s ease-out forwards;
}

.animate-count-pulse {
  animation: countPulse 0.4s ease-out;
}

.animate-delay-100 { animation-delay: 0.1s; opacity: 0; }
.animate-delay-200 { animation-delay: 0.2s; opacity: 0; }
.animate-delay-300 { animation-delay: 0.3s; opacity: 0; }
.animate-delay-400 { animation-delay: 0.4s; opacity: 0; }

.hero-bg-overlay {
  background: linear-gradient(
    135deg,
    rgba(26, 26, 48, 0.82) 0%,
    rgba(79, 70, 229, 0.55) 100%
  );
}

.stat-number {
  font-variant-numeric: tabular-nums;
}

.swiper-button-prev-custom,
.swiper-button-next-custom {
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.swiper-button-prev-custom:hover,
.swiper-button-next-custom:hover {
  transform: scale(1.05);
}

.cookie-banner-enter {
  animation: fadeInUp 0.5s ease-out forwards;
}

.nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: #656584;
  transition: color 0.2s ease;
}

.nav-link:hover {
  color: #4F46E5;
}

.nav-link--active {
  color: #4F46E5;
  font-weight: 600;
  border-bottom: 2px solid #4F46E5;
  padding-bottom: 2px;
}

.nav-link--active-mobile {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #4F46E5;
  background-color: rgba(79, 70, 229, 0.07);
}

.form-field-error {
  border-color: #DC2626 !important;
  background-color: #FEF2F2;
}

.form-error-msg {
  color: #DC2626;
  font-size: 0.75rem;
  margin-top: 0.25rem;
}

@keyframes slideInRightToast {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.toast-notification {
  animation: slideInRightToast 0.4s ease-out forwards;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
}

.faq-answer.is-open {
  max-height: 500px;
}

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

.faq-icon.is-open {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .animate-fade-in-up,
  .animate-fade-in,
  .animate-slide-in-left,
  .animate-slide-in-right,
  .animate-count-pulse,
  .cookie-banner-enter {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
