/* Reveals run only when JS has registered an observer. No permanent hidden content. */
@media (prefers-reduced-motion: no-preference) {
  .deem-motion-ready [data-deem-reveal] {
    transition: opacity 620ms cubic-bezier(.2, .72, .25, 1),
                transform 620ms cubic-bezier(.2, .72, .25, 1);
    transition-delay: var(--deem-reveal-delay, 0ms);
  }

  .deem-motion-ready [data-deem-reveal]:not(.is-deem-visible) {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }

  .deem-motion-ready [data-deem-reveal].is-deem-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  /* Only interactive controls move on hover; photos and large section layers stay still. */
  :is(.deem-header__booking, .deem-hero__button, .deem-contact-cta__button,
      .deem-booking-cta__button, .deem-button, .ast-button,
      .wp-block-button__link, .elementor-button) {
    transition: transform 250ms cubic-bezier(.2, .8, .2, 1),
                box-shadow 250ms ease, background-color 250ms ease,
                border-color 250ms ease, color 250ms ease, filter 250ms ease;
  }

  :is(.deem-hero__button, .deem-booking-cta__button, .deem-contact-cta__button,
      .deem-header__booking) svg {
    transition: transform 250ms cubic-bezier(.2, .8, .2, 1);
  }

  :is(.deem-services__nav, .deem-reviews__arrow, .deem-gallery__close,
      .deem-gallery__nav) {
    transition: transform 230ms ease, background-color 230ms ease, color 230ms ease;
  }

  :is(.deem-services__card-link, .deem-reviews__source,
      .deem-footer__links a, .deem-footer__details a, .deem-footer__legal a,
      .entry-content p a, .elementor-widget-text-editor p a) {
    transition: color 220ms ease, text-decoration-color 220ms ease;
    text-decoration-color: transparent;
    text-underline-offset: 4px;
  }

  @media (hover: hover) and (pointer: fine) {
    :is(.deem-header__booking, .deem-hero__button, .deem-contact-cta__button,
        .deem-booking-cta__button, .deem-button, .ast-button,
        .wp-block-button__link, .elementor-button):hover {
      transform: translateY(-3px);
      box-shadow: 0 9px 20px rgba(30, 10, 20, .16);
    }

    :is(.deem-hero__button, .deem-booking-cta__button, .deem-contact-cta__button,
        .deem-header__booking):hover svg { transform: scale(1.12); }

    :is(.deem-services__nav, .deem-reviews__arrow,
        .deem-gallery__close):hover:not(:disabled) { transform: scale(1.08); }

    .deem-gallery__nav:hover:not(:disabled) { transform: translateY(-50%) scale(1.08); }

    :is(.deem-services__card-link, .deem-reviews__source,
        .deem-footer__links a, .deem-footer__details a, .deem-footer__legal a,
        .entry-content p a, .elementor-widget-text-editor p a):hover {
      text-decoration: underline;
      text-decoration-color: currentColor;
    }
  }

  :is(.deem-header__booking, .deem-hero__button, .deem-contact-cta__button,
      .deem-booking-cta__button, .deem-button, .ast-button,
      .wp-block-button__link, .elementor-button):active { transform: translateY(0) scale(.98); }

  :is(.deem-services__card-link, .deem-reviews__source,
      .deem-footer__links a, .deem-footer__details a, .deem-footer__legal a):focus-visible {
    text-decoration: underline;
    text-decoration-color: currentColor;
  }
}
