section {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.hero__eyebrow,
.hero__title,
.hero__subtitle,
.hero__actions,
.hero__meta {
  opacity: 0;
  transform: translateY(24px);
  animation: heroFadeUp 0.8s ease forwards;
}

.hero__title { animation-delay: 0.1s; }
.hero__subtitle { animation-delay: 0.25s; }
.hero__actions { animation-delay: 0.4s; }
.hero__meta { animation-delay: 0.55s; }

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

.problem-card {
  opacity: 0;
  transform: translateY(30px);
}

.problem-tech.is-visible .problem-card:nth-child(1) {
  animation: fadeUp 0.6s ease forwards 0.1s;
}

.problem-tech.is-visible .problem-card:nth-child(2) {
  animation: fadeUp 0.6s ease forwards 0.25s;
}

.problem-tech.is-visible .problem-card:nth-child(3) {
  animation: fadeUp 0.6s ease forwards 0.4s;
}

.problem-tech.is-visible .problem-card:nth-child(4) {
  animation: fadeUp 0.6s ease forwards 0.55s;
}

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

.testimonial-card {
  opacity: 0;
  transform: translateY(30px);
}

.testimonials.is-visible .testimonial-card:nth-child(1) {
  animation: fadeUp 0.6s ease forwards 0.1s;
}

.testimonials.is-visible .testimonial-card:nth-child(2) {
  animation: fadeUp 0.6s ease forwards 0.25s;
}

.testimonials.is-visible .testimonial-card:nth-child(3) {
  animation: fadeUp 0.6s ease forwards 0.4s;
}

.testimonials.is-visible .testimonial-card:nth-child(4) {
  animation: fadeUp 0.6s ease forwards 0.55s;
}

/* =============================================
   PREFERS-REDUCED-MOTION
   Desactiva todas las animaciones y transiciones
   para usuarios con sensibilidad vestibular.
   Cubre: chatFloat, hero-cta-pulse, techGradient,
   techSpin, sendPulse, chat-dot-pulse, fadeUp, heroFadeUp
============================================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Asegurar que los elementos animados del hero queden visibles */
  .hero__eyebrow,
  .hero__title,
  .hero__subtitle,
  .hero__actions,
  .hero__meta {
    opacity: 1;
    transform: none;
  }

  /* Secciones visibles sin animación */
  section {
    opacity: 1;
    transform: none;
  }

  /* Cards visibles sin animación */
  .problem-card,
  .testimonial-card {
    opacity: 1;
    transform: none;
  }
}

