/* Single room page — builds on home.css + accommodation.css */
.facts { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); margin: clamp(48px, 7vw, 96px) 0 0; padding: 0; border-top: 1px solid var(--greige); }
.facts li { padding: 22px 20px 0 0; }
.facts li + li { padding-left: 20px; border-left: 1px solid var(--greige); }
.facts strong { display: block; font: 400 clamp(1.7rem, 3vw, 2.6rem)/1.05 var(--serif); color: var(--olive); }
.facts small { font-size: .5em; }
.facts span { display: block; margin-top: 8px; font: 600 .68rem/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--bronze-ink); }
@media (max-width: 700px) { .facts { grid-template-columns: 1fr 1fr; row-gap: 22px; } .facts li:nth-child(3) { padding-left: 0; border-left: 0; } }

/* gallery: full-bleed + pairs */
.rgal { display: grid; gap: clamp(10px, 1.4vw, 20px); overflow-x: clip; }
.rgal figure { margin: 0; overflow: hidden; background: var(--greige); }
.rgal img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.rgal__pair { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(10px, 1.4vw, 20px); padding: 0 clamp(10px, 1.4vw, 20px); }
.rgal__full { margin: 0 clamp(10px, 1.4vw, 20px) !important; }
@media (max-width: 860px) { .rgal__pair { grid-template-columns: 1fr; } }

/* amenities */
.amen { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: clamp(32px, 6vw, 96px); border-top: 1px solid var(--greige); }
.amen li { display: flex; flex-direction: column; gap: 4px; padding: 20px 0; border-bottom: 1px solid var(--greige); }
.amen b { font: 400 1.35rem/1.2 var(--serif); color: var(--charcoal); }
.amen span { font-size: .95rem; color: var(--stone); }
.amen__note { margin: 24px 0 0; max-width: 40rem; color: var(--stone); font-size: .95rem; }
.amen__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 32px; margin-top: 32px; }
@media (max-width: 700px) { .amen { grid-template-columns: 1fr; } }

/* other rooms */
.oths { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 1.6vw, 22px); }
.oth { display: block; text-decoration: none; color: inherit; }
.oth__img { display: block; overflow: hidden; aspect-ratio: 5/4; background: var(--greige); }
.oth__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s var(--ease); }
.oth:hover .oth__img img, .oth:focus-visible .oth__img img { transform: scale(1.04); }
.oth__name { display: block; margin-top: 14px; font: 400 1.6rem/1.1 var(--serif); }
.oth__size { display: block; margin-top: 4px; font: 600 .68rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--bronze-ink); }
.oths__all { margin: 40px 0 0; text-align: center; }
@media (max-width: 860px) { .oths { grid-template-columns: 1fr 1fr; } }

/* ===== premium pass ===== */
.hero--room { min-height: 100vh; min-height: 100svh; }
.hero--room .hero__media img { animation: heroZoom 26s var(--ease) both; object-position: 50% 55%; }
.hero--room h1 { font-size: clamp(3.6rem, 11vw, 10rem); line-height: .82; letter-spacing: -.045em; }
.hero--room h1 em { font-style: italic; color: var(--cream); opacity: .92; }
.hero--room .hero__lede { font-size: clamp(1.05rem, 1.5vw, 1.35rem); max-width: 30rem; }
.hero--room .hero__kicker span { letter-spacing: .3em; }
@media (prefers-reduced-motion: reduce) { .hero--room .hero__media img { animation: none; } }

/* story: chapters */
.story { display: grid; gap: clamp(56px, 9vw, 150px); padding: clamp(24px, 4vw, 60px) 0 clamp(72px, 10vw, 160px); overflow-x: clip; }
.chap { margin: 0; position: relative; }
.chap__frame { overflow: hidden; background: var(--greige); }
.chap__par { height: 100%; }
.chap img { display: block; width: 100%; height: 100%; object-fit: cover; }
.chap--full .chap__frame { aspect-ratio: 21/10; }
.chap--full { margin: 0; }
.chap--full .chap__cap { position: absolute; left: var(--gutter); bottom: clamp(20px, 4vw, 56px); max-width: 24rem; color: var(--cream); text-shadow: 0 1px 24px rgba(0,0,0,.45); }
.chap--full::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(23,34,28,.42) 0%, rgba(23,34,28,0) 30%); pointer-events: none; }
.chap--full .chap__cap { z-index: 2; }
.chap__cap { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; row-gap: 4px; align-items: baseline; }
.chap__n { grid-row: 1 / span 2; font: italic 400 1.1rem/1 var(--serif); opacity: .8; }
.chap__cap b { font: 400 clamp(1.5rem, 2.6vw, 2.3rem)/1.05 var(--serif); }
.chap__cap span:not(.chap__n) { font-size: .95rem; opacity: .85; }
.chap__cap--below { margin-top: 16px; color: var(--charcoal); }
.chap__cap--below .chap__n { color: var(--bronze-ink); }
.chap__cap--below span:not(.chap__n) { color: var(--stone); opacity: 1; }

.chap-duo { display: grid; grid-template-columns: 1.9fr 1fr; gap: clamp(20px, 4vw, 72px); align-items: start; padding: 0 var(--gutter); max-width: calc(var(--maxw) + 2 * var(--gutter)); margin: 0 auto; width: 100%; box-sizing: border-box; }
.chap-duo--rev { grid-template-columns: 1fr 1.9fr; }
.chap-duo .chap--big .chap__frame { aspect-ratio: 4/3; }
.chap-duo .chap--small { margin-top: clamp(40px, 12vw, 200px); }
.chap-duo--rev .chap--small { margin-top: 0; }
.chap-duo--rev .chap--big { margin-top: clamp(40px, 12vw, 200px); }
.chap-duo .chap--small .chap__frame { aspect-ratio: 3/4; }
@media (max-width: 860px) {
  .chap--full .chap__frame { aspect-ratio: 4/3; }
  .chap-duo, .chap-duo--rev { grid-template-columns: 1fr; gap: 40px; }
  .chap-duo .chap--small, .chap-duo--rev .chap--big { margin-top: 0; }
  .chap-duo .chap--small .chap__frame { aspect-ratio: 4/3; }
}

/* scroll-driven reveal + parallax (progressive enhancement) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .chap__frame { animation: chapReveal linear both; animation-timeline: view(); animation-range: entry 0% entry 70%; }
    .chap__par { height: 116%; margin-top: -8%; animation: chapPar linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
    .chap__par img { height: 100%; }
  }
}
@keyframes chapReveal { from { clip-path: inset(14% 10% 14% 10%); } to { clip-path: inset(0 0 0 0); } }
@keyframes chapPar { from { transform: translateY(-4%); } to { transform: translateY(4%); } }

/* facts bigger */
.facts strong { font-size: clamp(2rem, 4vw, 3.4rem); }

/* amenities as a quiet dark band */
.section--cream .amen b { font-size: 1.5rem; }

/* floating availability pill */
.float-book { position: fixed; right: clamp(16px, 2.4vw, 36px); bottom: clamp(16px, 2.4vw, 36px); z-index: 40; display: inline-flex; gap: 12px; align-items: center; padding: 16px 24px; background: var(--olive-deep); color: var(--cream); font: 600 .72rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; text-decoration: none; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .5s var(--ease), transform .5s var(--ease); box-shadow: 0 12px 40px rgba(23,34,28,.28); }
.float-book.is-on { opacity: 1; transform: none; pointer-events: auto; }
.float-book:hover { background: var(--olive); }
@media (max-width: 860px) { .float-book { display: none; } }
@media (prefers-reduced-motion: reduce) { .float-book { transition: none; } }

/* Lighter veil on room heroes: keep the photograph's own contrast; darken only behind the title. */
.hero--room .hero__veil { background: linear-gradient(180deg, rgba(28,30,24,.34) 0%, rgba(28,30,24,0) 16%, rgba(28,30,24,0) 55%, rgba(28,30,24,.5) 100%); }
.hero--room .hero__content { text-shadow: 0 1px 22px rgba(20,22,18,.45); }
