/* ══════════════════════════════════════════════════════════════════
 * CalmStay – scroll reveal
 * Nothing is hidden until reveal.js adds .cs-reveal-on to <html>, so the page
 * is fully readable if the script never runs.
 * ══════════════════════════════════════════════════════════════════ */
.cs-reveal-on .cs-reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  will-change: opacity, transform;
  transition:
    opacity .55s cubic-bezier(.22, .61, .36, 1) var(--cs-reveal-delay, 0ms),
    transform .55s cubic-bezier(.22, .61, .36, 1) var(--cs-reveal-delay, 0ms);
}
.cs-reveal-on .cs-reveal.is-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* Cards lift a touch further for a sense of depth */
.cs-reveal-on .cs-fg__item.cs-reveal,
.cs-reveal-on .cs-prow__card.cs-reveal,
.cs-reveal-on .pbx-card.cs-reveal,
.cs-reveal-on .listing-card.cs-reveal {
  transform: translate3d(0, 20px, 0) scale(.995);
}
.cs-reveal-on .cs-fg__item.cs-reveal.is-in,
.cs-reveal-on .cs-prow__card.cs-reveal.is-in,
.cs-reveal-on .pbx-card.cs-reveal.is-in,
.cs-reveal-on .listing-card.cs-reveal.is-in { transform: none; }

/* The photo CTA band settles rather than slides */
.cs-reveal-on .cs-cta.cs-reveal { transform: translate3d(0, 10px, 0) scale(.992); }
.cs-reveal-on .cs-cta.cs-reveal.is-in { transform: none; }

/* Never animate inside the Elementor editor or when motion is reduced */
.elementor-editor-active .cs-reveal,
.elementor-editor-preview .cs-reveal { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
  .cs-reveal-on .cs-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
