/* ============================================================
   Catering Rey — Animaciones
   ============================================================ */

@keyframes scrollPulse {
  0%, 100% { opacity: 0.35; transform: scaleY(0.85); }
  50% { opacity: 1; transform: scaleY(1); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes revealLine {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* Estado inicial para reveals */
[data-reveal] {
  opacity: 0;
  transform: translateY(36px);
  transition:
    opacity 1.05s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal-delay="1"] { transition-delay: 0.08s; }
[data-reveal-delay="2"] { transition-delay: 0.18s; }
[data-reveal-delay="3"] { transition-delay: 0.3s; }
[data-reveal-delay="4"] { transition-delay: 0.42s; }
[data-reveal-delay="5"] { transition-delay: 0.55s; }

/* Hero: sin animación de entrada (aparece con la página) */
.hero-animate .hero-brand,
.hero-animate .hero-title,
.hero-animate .hero-text,
.hero-animate .btn-group,
.hero-animate .scroll-indicator,
.hero .hero-brand,
.hero .hero-title,
.hero .hero-text,
.hero .btn-group,
.hero .scroll-indicator,
.hero-media,
.hero-media img {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

.hero.is-ready .hero-brand,
.hero.is-ready .hero-title,
.hero.is-ready .hero-text,
.hero.is-ready .btn-group,
.hero.is-ready .scroll-indicator,
.hero.is-ready .hero-media img {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Underline animado genérico */
.link-underline {
  position: relative;
  display: inline-block;
}

.link-underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.link-underline:hover::after {
  transform: scaleX(1);
}

/* Zoom suave al entrar */
[data-zoom] {
  overflow: hidden;
}

[data-zoom] img {
  transform: scale(1.06);
  transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-zoom].is-visible img {
  transform: scale(1);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .slideshow-slide {
    transition: none;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal],
  .hero-animate .hero-brand,
  .hero-animate .hero-title,
  .hero-animate .hero-text,
  .hero-animate .btn-group,
  .hero-animate .scroll-indicator,
  [data-zoom] img {
    opacity: 1 !important;
    transform: none !important;
  }

  .scroll-indicator-line {
    animation: none;
  }
}
