/**
 * Reveal animations — maquettes V2 (fadeUp hero + scroll reveal).
 * JS toggles .is-visible on .js-reveal / .js-reveal-child.
 */

@keyframes camomille-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Scroll reveal ─────────────────────────────── */
.js-reveal,
.js-reveal-child {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}

.js-reveal.is-visible,
.js-reveal-child.is-visible {
  opacity: 1;
  transform: none;
}

/* ── Hero load stagger (homepage split only) ───── */
.hero:not(.hero--page) .hero__content > .eyebrow,
.hero:not(.hero--page) .hero__content > .hero__title,
.hero:not(.hero--page) .hero__content > .hero__subtitle,
.hero:not(.hero--page) .hero__content > .hero__anchors,
.hero:not(.hero--page) .hero__content > .hero__ctas {
  opacity: 0;
  animation: camomille-fade-up 0.8s var(--ease-out) forwards;
}

.hero:not(.hero--page) .hero__content > .eyebrow {
  animation-delay: 0.1s;
}

.hero:not(.hero--page) .hero__content > .hero__title {
  animation-delay: 0.25s;
}

.hero:not(.hero--page) .hero__content > .hero__subtitle {
  animation-delay: 0.4s;
}

.hero:not(.hero--page) .hero__content > .hero__anchors {
  animation-delay: 0.48s;
}

.hero:not(.hero--page) .hero__content > .hero__ctas {
  animation-delay: 0.55s;
}

/* ── Reduced motion ────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .js-reveal,
  .js-reveal-child,
  .js-reveal.is-visible,
  .js-reveal-child.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .hero:not(.hero--page) .hero__content > .eyebrow,
  .hero:not(.hero--page) .hero__content > .hero__title,
  .hero:not(.hero--page) .hero__content > .hero__subtitle,
  .hero:not(.hero--page) .hero__content > .hero__anchors,
  .hero:not(.hero--page) .hero__content > .hero__ctas {
    opacity: 1;
    animation: none;
  }
}
