/* Morada: lightweight, progressive, photo-led motion. Base content stays visible. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.motion-home { --ease-morada: cubic-bezier(.2,.7,.2,1); }
.motion-home [hidden] { display: none !important; }
.motion-home section { scroll-margin-top: 94px; }
.motion-home .site-header { position: fixed; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.1rem 5vw; z-index: 30; background: var(--ink); transition: padding .35s var(--ease-morada), background-color .35s, box-shadow .35s; }
.motion-home.motion-ready:not(.nav-scrolled) .site-header { background: transparent; box-shadow: none; }
.motion-home .site-brand img { width: 112px; }
.motion-home .chapter-nav { display: none; }
.motion-home .header-booking { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; padding: .4rem .9rem; border: 1px solid rgb(255 255 255 / .55); border-radius: 2px; text-decoration: none; font-size: .72rem; }
.motion-home .header-booking > span[aria-hidden] { font-size: 1rem; }
.motion-home.nav-scrolled .site-header { background: #112b37f5; box-shadow: 0 2px 20px #071b2920; padding-top: .6rem; padding-bottom: .6rem; }
.reading-progress { position: fixed; top: 0; left: 0; right: 0; z-index: 40; height: 2px; pointer-events: none; }
.reading-progress span { display: block; height: 100%; background: var(--gold); transform-origin: left; transform: scaleX(0); }
.motion-home .hero { position: relative; display: flex; align-items: end; min-height: 700px; height: 100svh; max-height: 1100px; overflow: hidden; isolation: isolate; color: white; background: var(--ink); }
.motion-home .hero > picture { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.motion-home .hero-image { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 54% 45%; animation: none; transform: scale(1.045); }
.motion-home .hero-shade { position: absolute; inset: 0; height: auto; z-index: -2; background: linear-gradient(180deg, rgb(5 25 34 / .5), rgb(5 25 34 / .02) 34%, rgb(5 25 34 / .34) 50%, rgb(5 25 34 / .82)); }
.motion-home .hero-content { position: relative; inset: auto; max-width: none; width: 100%; padding: 9rem 6vw 7rem; color: white; }
.motion-home .hero-kicker { color: #f2dfbc; font-size: .62rem; line-height: 1.7; max-width: 34ch; letter-spacing: .13em; }
.motion-home h1 { max-width: 14ch; font-size: clamp(3.5rem, 12.8vw, 6.5rem); letter-spacing: -.035em; line-height: .94; }
.hero-line { display: block; }
.hero-line em, em.hero-line { font-style: italic; font-family: "Inria Serif", Georgia, serif; font-size: .96em; font-weight: 400; color: #f1dfbf; }
.motion-home .hero-summary { max-width: 34ch; color: #fff; font-size: .78rem; line-height: 1.8; margin: 1.6rem 0; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; }
.motion-home .hero-content .button-light { gap: 1.3rem; color: var(--ink); background: var(--cream); font-size: .76rem; }
.explore-link { min-height: 44px; display: inline-flex; align-items: center; gap: 1rem; text-decoration: none; font-size: .75rem; border-bottom: 1px solid #ffffff55; }
.hero-bottom { position: absolute; bottom: 1.6rem; left: 6vw; right: 6vw; display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid #ffffff3d; color: #fff; font-size: .56rem; letter-spacing: .07em; }
.motion-home .availability { padding-top: 3.4rem; padding-bottom: 3.4rem; border-bottom: 1px solid #112b371a; }
.motion-home .availability h2 { font-size: clamp(2.2rem, 5vw, 3.8rem); }
.motion-home .availability > p { max-width: 36rem; }
.motion-home .availability .button { font-size: .82rem; }
.chapter-number { opacity: .65; margin-right: .7rem; }
.motion-home .introduction { padding-bottom: 0; }
.motion-home .introduction .narrow { max-width: 50rem; }
.motion-home .wide-photo { position: relative; margin-top: 2.7rem; }
.motion-home .wide-photo picture { display: block; overflow: hidden; }
.motion-home .wide-photo img { object-fit: cover; }
.motion-home figcaption { padding-bottom: 1.4rem; }
.motion-home .split-section { overflow: clip; }
.motion-home .split-photo, .motion-home .editorial figure, .motion-home .naluum-photo { overflow: hidden; }
.motion-home .scene-section { background: var(--cream); padding-top: 5rem; padding-bottom: 5rem; }
.scene-section .kicker { color: var(--gold-on-light); }
.scene-heading { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2rem; }
.scene-heading h2 { font-size: clamp(3rem, 7vw, 5.8rem); }
.scene-heading h2 em { font-weight: 400; color: #7a6139; }
.scene-heading > p { font-family: "Inria Serif", Georgia, serif; font-size: 1.05rem; color: #53636b; }
.scene-controls { display: grid; grid-template-columns: repeat(2, 1fr); gap: .45rem; margin-bottom: 1rem; }
.scene-controls button { min-height: 48px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 1px solid #112b3738; background: transparent; color: var(--ink); padding: .65rem .8rem; cursor: pointer; font: inherit; font-size: .76rem; transition: color .22s, background-color .22s; }
.scene-controls button[aria-pressed="true"] { color: var(--cream); background: var(--ink); border-color: var(--ink); }
.scene-controls button:hover { border-color: var(--ink); }
.scene-stage { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.scene { min-width: 0; margin: 0; }
.scene picture { display: block; overflow: hidden; background: var(--sand); }
.scene img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.scene figcaption { padding: 1rem 0; }
.scene-number { display: block; font-family: var(--body); font-size: .6rem; color: #66747b; letter-spacing: .1em; }
.scene h3 { font: 2rem/1.1 var(--display); font-weight: 400; margin: .5rem 0; }
.scene p { font: .86rem/1.6 var(--body); margin: .5rem 0 0; }
.gallery-enhanced .scene-stage { display: block; position: relative; perspective: 1300px; }
.gallery-enhanced .scene { position: relative; isolation: isolate; transform-style: preserve-3d; }
.gallery-enhanced .scene img { aspect-ratio: 4 / 5; object-position: center; }
.gallery-enhanced .scene figcaption { position: absolute; inset: auto 0 0; padding: 5rem 1.3rem 1.5rem; background: linear-gradient(transparent, #081f2be8); color: white; pointer-events: none; }
.gallery-enhanced .scene-number { color: #ead8b6; }
.gallery-enhanced .scene p { max-width: 30ch; }
.reservation-dock { position: fixed; z-index: 35; bottom: max(.65rem, env(safe-area-inset-bottom)); left: .65rem; right: .65rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .65rem .7rem .65rem .9rem; border: 1px solid #b99a6855; background: #faf8f3fa; box-shadow: 0 8px 40px #061f3530; color: var(--ink); }
.reservation-dock > div { display: none; }
.reservation-dock .button { width: 100%; gap: 1rem; min-height: 46px; font-size: .76rem; }
.motion-home .button { position: relative; overflow: hidden; }
.motion-home .button:hover { box-shadow: 0 5px 18px #071b2920; }
.motion-home .button > span[aria-hidden] { transition: transform .25s; }
.motion-home .button:hover > span[aria-hidden] { transform: translate(2px,-2px); }
.motion-home .final-cta div { padding-bottom: 4.5rem; }
.motion-home .site-footer { padding-bottom: 6rem; }
@media (min-width: 700px) {
  .motion-home .site-header { padding: 1.4rem 5vw; }
  .motion-home .site-brand img { width: 136px; }
  .motion-home .chapter-nav { display: flex; align-items: center; gap: 1.8rem; margin-left: auto; }
  .chapter-nav a { min-height: 44px; display: flex; align-items: center; font-size: .7rem; text-decoration: none; border-bottom: 1px solid transparent; }
  .chapter-nav a:hover, .chapter-nav a[aria-current="location"] { border-color: var(--gold); }
  .motion-home .header-booking { font-size: .72rem; }
  .motion-home .hero-content { padding: 10rem 8vw 7.5rem; }
  .motion-home .hero-kicker { max-width: none; font-size: .66rem; }
  .motion-home h1 { font-size: clamp(5rem, 8.6vw, 8.6rem); max-width: 15ch; }
  .motion-home .hero-summary { max-width: none; font-size: .87rem; margin: 1.5rem 0 1.7rem; }
  .motion-home .hero-content .button-light { font-size: .8rem; }
  .hero-actions { gap: 2rem; }
  .hero-bottom { left: 8vw; right: 8vw; bottom: 2rem; font-size: .62rem; }
  .motion-home .availability { display: grid; grid-template-columns: 1fr auto; column-gap: 3rem; align-items: center; }
  .motion-home .availability .section-heading { grid-row: 1 / 4; margin-bottom: 0; }
  .motion-home .availability > p, .motion-home .availability > a { grid-column: 2; }
  .motion-home .availability > a { justify-self: start; }
  .motion-home .availability .form-note { max-width: 32rem; }
  .motion-home .wide-photo img { aspect-ratio: 16 / 10; }
  .motion-home .scene-section { padding-top: 7rem; padding-bottom: 7rem; }
  .scene-heading { flex-direction: row; justify-content: space-between; align-items: end; margin-bottom: 3rem; }
  .scene-heading > p { margin-bottom: .3rem; }
  .scene-controls { grid-template-columns: repeat(4,1fr); }
  .scene-controls button { padding: 1rem 1.1rem; font-size: .8rem; }
  .scene-stage { grid-template-columns: repeat(2,1fr); gap: 2rem; }
  .gallery-enhanced .scene img { aspect-ratio: 16 / 9; }
  .gallery-enhanced .scene figcaption { padding: 8rem 2.5rem 2.2rem; }
  .scene h3 { font-size: 3rem; }
  .reservation-dock { max-width: 38rem; left: 50%; right: auto; width: calc(100% - 2rem); transform: translateX(-50%); bottom: 1rem; padding: .75rem .9rem .75rem 1.2rem; }
  .reservation-dock > div { display: grid; gap: .2rem; }
  .reservation-dock > div > span { font: 1.25rem var(--display); }
  .reservation-dock small { font-size: .62rem; }
  .reservation-dock .button { width: auto; }
  .motion-home .final-cta div { padding-bottom: 0; }
}
@media (max-width: 360px) { .motion-home h1 { font-size: 3.15rem; } .hero-actions { gap: .6rem; } .motion-home .hero-content { padding-bottom: 6rem; } }
@media (prefers-reduced-motion: reduce) {
  .motion-home { scroll-behavior: auto; }
  html:has(.motion-home) { scroll-behavior: auto; }
  .motion-home *, .motion-home *::before, .motion-home *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .motion-home .hero-image, .motion-home .scene, .motion-home .button:hover { transform: none !important; }
}
