/* Restore the original photographic opening. The following chapters keep
   the spacing and scroll motion requested separately by the administrator. */
.cinematic-entry .site-header {
  position: fixed;
  inset: 0 0 auto;
  height: 92px;
  padding-inline: 4vw;
  transition: background .3s, color .3s;
}
.site-header.over-hero { background: transparent; color: #fff; border-color: #ffffff33; }
.site-header.over-hero.scrolled { background: #0b1738eb; }
.site-header.over-hero .concept-label { color: #ffffffbb; }
.site-header.over-hero .header-book,
.hero-cinematic .hero-reserve { background: #b99a67; color: #0b1738; border-color: #b99a67; }
.site-header.over-hero .header-book:hover,
.hero-cinematic .hero-reserve:hover { background: #cfb587; border-color: #cfb587; }
.site-header.over-hero .menu-toggle span { background: #fff; }
.site-header.over-hero :focus-visible { outline-color: #e1c89e; }
.menu-open .site-header.over-hero { background: var(--paper); color: var(--ink); border-color: var(--line); }
.menu-open .site-header.over-hero .menu-toggle span { background: var(--ink); }

.hero.hero-cinematic {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  width: 100%;
  max-width: none;
  height: 100svh;
  min-height: 780px;
  margin: 0;
  padding: 180px 8vw 140px;
  overflow: hidden;
  color: #fff;
  background: #0b1738;
}
.hero-cinematic .hero-figure { position: absolute; inset: 0; padding: 0; z-index: -1; }
.hero-cinematic .hero-figure::before,
.hero-cinematic .hero-figure figcaption { display: none; }
.hero-cinematic .hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; background: #0b1738; }
.hero-cinematic .hero-photo-image { object-position: 62% 50%; transform-origin: 70% 43%; }
.hero-cinematic .hero-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, #050b1edb 0%, #050b1e8a 45%, #050b1e1a 78%), linear-gradient(0deg, #050b1e73, transparent 52%);
}
.hero-cinematic .hero-content { position: relative; z-index: 2; max-width: 900px; padding: 0; }
.hero-cinematic .hero-eyebrow { margin: 0 0 22px; font-size: 11px; letter-spacing: .21em; }
.hero-cinematic h1 { display: block; font-family: var(--display); font-size: clamp(64px, 7.6vw, 112px); font-weight: 400; line-height: 1.04; letter-spacing: -.05em; text-transform: none; color: #fff; margin: 0 0 26px; }
.hero-cinematic .hero-line { display: block; }
.hero-cinematic h1 em { font-style: normal; color: #d0ad74; }
.hero-cinematic .hero-copy { font-size: 17px; line-height: 1.75; max-width: 480px; margin: 0 0 32px; color: #ffffffe0; }
.hero-cinematic .hero-links { position: static; display: flex; align-items: center; gap: 32px; }
.hero-cinematic .text-link { color: #fff; border-color: #ffffff80; font-size: 10px; max-width: none; gap: 20px; }
.hero-cinematic .hero-reserve { min-height: 52px; }
.hero-cinematic .motion-toggle { z-index: 4; right: 4vw; bottom: 66px; }
.hero-cinematic .hero-location { position: absolute; z-index: 2; right: 4vw; bottom: 132px; margin: 0; padding-left: 20px; border-left: 1px solid #b99a67; font-size: 10px; line-height: 1.8; letter-spacing: .11em; text-transform: uppercase; }
.hero-cinematic .hero-rule { position: absolute; z-index: 1; top: 92px; right: 11vw; bottom: 0; width: 1px; background: #ffffff26; display: flex; flex-direction: column; justify-content: space-between; align-items: center; padding-block: 36px 68px; font-size: 9px; color: #ffffffaa; pointer-events: none; }
.hero-cinematic :focus-visible { outline-color: #e1c89e; }
.cinematic-entry .booking-shell { position: relative; z-index: 5; max-width: 1360px; width: 92%; margin-top: -46px; padding: 28px 32px 22px; background: var(--paper); border-top: 0; box-shadow: 0 18px 45px #0b173814; }

@media (max-width: 1100px) {
  .hero-cinematic .hero-location { display: none; }
  .hero-cinematic .hero-content { max-width: 780px; }
}
@media (max-width: 800px) {
  .cinematic-entry .site-header { height: 76px; padding-inline: 24px; }
  .hero.hero-cinematic { height: auto; min-height: 800px; padding: 190px 6vw 128px; }
  .hero-cinematic h1 { font-size: clamp(58px, 9vw, 80px); }
  .hero-cinematic .hero-copy { max-width: 460px; font-size: 16px; }
  .hero-cinematic .hero-rule { top: 76px; right: 8vw; }
  .hero-cinematic .motion-toggle { right: 24px; bottom: 62px; }
  .cinematic-entry .booking-shell { padding: 28px; }
}
@media (max-width: 600px) {
  .cinematic-entry .site-header { padding-inline: 20px; }
  .hero.hero-cinematic { min-height: 760px; min-height: max(760px, 100svh); padding: 200px 24px 100px; }
  .hero-cinematic .hero-photo-image { object-position: 67% 50%; }
  .hero-cinematic .hero-photo::after { background: linear-gradient(0deg, #050b1ef0 0%, #050b1ea1 53%, #050b1e20 100%); }
  .hero-cinematic .hero-eyebrow { font-size: 10px; margin-bottom: 20px; }
  .hero-cinematic h1 { font-size: clamp(46px, 12.2vw, 65px); margin-bottom: 24px; }
  .hero-cinematic .hero-copy { font-size: 15px; line-height: 1.7; max-width: 34ch; margin-bottom: 26px; }
  .hero-cinematic .hero-links { flex-direction: column; align-items: flex-start; gap: 16px; }
  .hero-cinematic .hero-reserve { font-size: 9px; padding-inline: 22px; }
  .hero-cinematic .text-link { font-size: 9px; line-height: 1.7; }
  .hero-cinematic .hero-rule { display: none; }
  .hero-cinematic .motion-toggle { top: 96px; bottom: auto; right: 20px; }
  .cinematic-entry .booking-shell { width: calc(100% - 32px); margin-top: -36px; padding: 28px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .cinematic-entry .site-header { transition: none; }
}

/* Motion correction: fixed frames, compositor transforms and decoded fades. */
@media (prefers-reduced-motion: no-preference) {
  .motion-enabled .hero-photo-image {
    animation: savoy-camera 40s linear infinite alternate;
    animation-play-state: paused;
    will-change: transform;
    backface-visibility: hidden;
  }
  .hero-cinematic .hero-photo-image { transform-origin: 82% 43%; }
  .motion-enabled .hero-photo.in-view .hero-photo-image { animation-play-state: running; }
  @keyframes savoy-camera {
    /* Short, matched acceleration ramps preserve a visible cruising speed. */
    0% {
      transform: translate3d(0,0,0) scale(1);
      animation-timing-function: cubic-bezier(.333333,0,.666667,.333333);
    }
    8% {
      transform: translate3d(-.108696%,0,0) scale(1.018261);
      animation-timing-function: linear;
    }
    92% {
      transform: translate3d(-2.391304%,0,0) scale(1.401739);
      animation-timing-function: cubic-bezier(.333333,.666667,.666667,1);
    }
    100% { transform: translate3d(-2.5%,0,0) scale(1.42); }
  }
  .motion-enabled .image-reveal,
  .motion-enabled .image-reveal.motion-pending {
    clip-path: none;
    transform: none;
    transition: opacity 1.6s cubic-bezier(.4,0,.2,1);
  }
  .motion-enabled .image-reveal.motion-pending { opacity: 0; }
  .story-first { transform: translate3d(0,0,0) scale(1.035); }
  .story-second { transform: translate3d(0,0,0) scale(1.025); will-change: opacity; }
  .motion-paused .photo-story { height: 145vh; }
  .motion-paused .story-sticky { position: sticky; top: 118px; }
  .motion-paused .story-second { opacity: var(--blend); }
  .motion-enabled .reveal-text > span,
  .motion-enabled .reveal-text.motion-pending > span {
    opacity: 1; transform: none; transition: none;
  }
  .reveal-text > span,.hero-line { overflow: hidden; padding-block: .09em; margin-block: -.09em; }
  .line-ink { display: block; }
  .motion-enabled .line-ink {
    transform: translate3d(0,0,0);
    transition: transform 1.45s cubic-bezier(.16,1,.3,1), opacity 1.2s ease;
  }
  .motion-enabled .reveal-text.motion-pending .line-ink,
  .motion-enabled .hero-enter.motion-pending .line-ink,
  .motion-enabled:not(.type-ready) .hero-line .line-ink { transform: translate3d(0,110%,0); opacity: 0; }
  .motion-enabled .motion-pending .line-ink,
  .motion-enabled .reveal.motion-pending { transition-duration: 0s; transition-delay: 0s; }
  .reveal-text > span:nth-child(2) .line-ink,.hero-line:nth-child(2) .line-ink { transition-delay: .2s; }
  .hero-eyebrow.hero-enter,.hero-copy.hero-enter,.hero-links.hero-enter {
    transition: opacity 1.2s ease .35s, transform 1.4s cubic-bezier(.16,1,.3,1) .35s;
  }
  .motion-enabled:not(.type-ready) .hero-enter:not(h1),
  .motion-enabled .hero-enter.motion-pending:not(h1) { opacity: 0; transform: translate3d(0,16px,0); }
  .motion-enabled .hero-enter.motion-pending:not(h1) { transition-duration: 0s; transition-delay: 0s; }
  .motion-paused .line-ink { transform: none!important; opacity: 1!important; transition: none!important; }
  @media (max-width: 800px) {
    .motion-paused .photo-story { height: 120vh; }
    .motion-paused .story-sticky { top: 105px; }
  }
  @media (max-width: 600px) { .motion-paused .photo-story { height: 110svh; } }
}
