/* Shared scroll-reveal — elements fade and rise into view as you scroll.
   Only active when JS adds .reveal-on to <html>, so the page is fully
   visible if scripting is off or fails. Disabled for reduced-motion users. */

@media (prefers-reduced-motion: no-preference) {
  html.reveal-on :is(
    .hero-content > *,
    .hero-copy > *,
    .hero-media,
    .hero-frame,
    .section-head,
    .section-head > *,
    .section-marker,
    .section-title,
    .split-copy > *,
    .portrait,
    .framed,
    .about-media,
    .stat-row,
    .service,
    .service-rows li,
    .gallery figure,
    .strip figure,
    .reviews-inner > *,
    .booking-inner > *,
    .booking-copy > *,
    .booking-menu,
    .booking-panel > *,
    .tag-row,
    .chip-row
  ) {
    opacity: 0;
    transform: translateY(32px);
    transition:
      opacity 0.85s cubic-bezier(0.22, 0.61, 0.36, 1),
      transform 0.85s cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  html.reveal-on .is-visible {
    opacity: 1 !important;
    transform: none !important;
  }
}
