/* Noura motion: progressive enhancement, with no hidden-content dependency. */
.media-window {
  display: block;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.site-header {
  transition: background .35s ease, box-shadow .35s ease;
}
.site-header.is-scrolled {
  background: #fffefaf7;
  box-shadow: 0 4px 28px #252c2510;
}

@media (prefers-reduced-motion: no-preference) {
  .home-hero > .wp-block-image img,
  .page-hero > .wp-block-image img {
    animation: noura-arrive 4.6s cubic-bezier(.16,.7,.26,1) both;
    transform-origin: 50% 58%;
  }
  .hero-content > .eyebrow {
    animation: noura-rise .85s cubic-bezier(.16,1,.3,1) .08s both;
  }
  .hero-content > h1 {
    animation: noura-rise 1.15s cubic-bezier(.16,1,.3,1) .2s both;
  }
  .hero-content > p:not(.eyebrow) {
    animation: noura-rise .95s cubic-bezier(.16,1,.3,1) .36s both;
  }
  .hero-actions {
    animation: noura-rise .95s cubic-bezier(.16,1,.3,1) .48s both;
  }
  .booking-wrap {
    animation: noura-rise 1s cubic-bezier(.16,1,.3,1) .6s both;
  }
  .brand img,
  .menu-toggle > span {
    transition: transform .4s cubic-bezier(.2,.8,.2,1);
  }
  .site-header.is-scrolled .brand img { transform: scale(.93); }
  .button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: background .3s, color .3s, border-color .3s, box-shadow .3s, transform .3s;
  }
  .button::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 25%, #ffffff24 50%, transparent 75%);
    transform: translateX(-125%);
    transition: transform .65s cubic-bezier(.25,.46,.45,.94);
    pointer-events: none;
  }
  .button:is(:hover,:focus-visible)::before { transform: translateX(125%); }
  .button:is(:hover,:focus-visible) {
    transform: translateY(-2px);
    box-shadow: 0 7px 18px #24301616;
  }
  .button:active { transform: translateY(0); }
  .media-window img {
    transition: transform .9s cubic-bezier(.2,.65,.25,1), filter .5s ease;
    transform-origin: center;
  }
  .photo-card h3 {
    transition: color .3s ease, transform .45s ease;
  }
  .text-link {
    position: relative;
    border-bottom-color: transparent;
    transition: color .25s ease;
  }
  .text-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: var(--gold);
    transform-origin: left;
    transition: transform .45s cubic-bezier(.2,.8,.2,1), background .3s;
  }
  .text-link:is(:hover,:focus-visible)::after { transform: scaleX(.65); background: var(--olive); }
  .desktop-nav a:not(.button)::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
  }
  .desktop-nav a:is(:hover,:focus-visible,[aria-current=page])::after { transform: scaleX(1); }
  .venue-options button { transition: background .3s, border-color .3s, padding .35s; }
  .venue-options button:hover { padding-left: 24px; }
  .filter-chip { transition: background .25s, color .25s, border-color .25s; }
  .mobile-nav:not([hidden]) { animation: noura-menu .3s cubic-bezier(.2,.8,.2,1); }
  .lightbox[open] { animation: noura-fade .22s ease both; }
  .faq[open] > p { animation: noura-rise .4s cubic-bezier(.2,.8,.2,1); }
  #enquiry-result:not([hidden]) { animation: noura-rise .45s cubic-bezier(.2,.8,.2,1); }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .image-frame:hover .media-window img,
  .photo-card:is(:hover,:focus-visible) .media-window img,
  .gallery-item:is(:hover,:focus-visible) .media-window img { transform: scale(1.045); }
  .photo-card:is(:hover,:focus-visible) h3 { transform: translateX(5px); color: var(--olive); }
  .photo-cta > .wp-block-image img { transform: translate3d(0,var(--noura-parallax,0px),0) scale(1.1); }
}

@keyframes noura-arrive {
  from { transform: scale(1.065); }
  to { transform: scale(1); }
}
@keyframes noura-rise {
  from { opacity: 0; transform: translate3d(0,22px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes noura-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes noura-menu {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .photo-cta > .wp-block-image img { transform: none; }
  .site-header,
  .media-window img { transition: none; }
}

@media(prefers-reduced-motion:no-preference){.wp-block-button__link{transition:background .3s,color .3s,transform .3s}.wp-block-button__link:hover{transform:translateY(-2px)}}
