/* ROOMS — page-specific only. Header, nav, footer, buttons, .psd-title and the
   base rules come from site.css + exact-home.css. The gold amenities band is
   reused from the home page (.psd-amenities) so "included with every stay"
   reads identically in both places. */

.rooms-hero { position:relative; height:min(31vw,595px); min-height:380px; overflow:hidden; background:#222; }
.rooms-hero img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.rooms-hero__veil { position:absolute; inset:0; background:
  radial-gradient(ellipse 62% 55% at 50% 58%,rgba(10,16,25,.68) 0%,rgba(10,16,25,.40) 60%,rgba(10,16,25,.10) 100%),
  linear-gradient(180deg,rgba(9,13,19,.72) 0%,rgba(9,13,19,0) 34%); }
.rooms-hero__content { position:absolute; z-index:1; top:58%; left:50%; width:min(1170px,calc(100% - 48px)); transform:translate(-50%,-50%); text-align:center; color:#fff; }
.rooms-hero h1 { margin:0; font-family:var(--psd-serif); font-size:clamp(38px,3.6vw,69px); font-style:italic; line-height:1.02; }
.rooms-hero p { margin:14px 0 0; font-size:13px; letter-spacing:.14em; text-transform:uppercase; }

.rooms-section { width:var(--psd-shell); margin-inline:auto; }
.rooms-intro { padding:88px 0 22px; text-align:center; }
.rooms-intro p { max-width:64ch; margin:0 auto 18px; color:var(--psd-muted); font-size:16px; line-height:1.62; }
.rooms-intro .rooms-lede { color:var(--psd-ink); font-family:var(--psd-serif); font-size:23px; font-style:italic; line-height:1.45; }

.room-list { padding:56px 0 92px; display:grid; gap:64px; }
.room-row { display:grid; grid-template-columns:1.08fr 1fr; gap:56px; align-items:center; }
.room-row:nth-child(even) { grid-template-columns:1fr 1.08fr; }
.room-row:nth-child(even) .room-row__media { order:2; }
.room-row__media img { width:100%; aspect-ratio:1.41; object-fit:cover; }
.room-row h2 { margin:0 0 14px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:clamp(30px,2.4vw,44px); font-style:italic; font-weight:400; }
.room-row p { max-width:52ch; margin:0 0 22px; color:var(--psd-muted); font-size:16px; line-height:1.62; }
.room-tags { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:16px; }
.room-tags span { display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border:1px solid var(--psd-gold); color:var(--psd-gold-text); font-size:14px; }
.room-row__cta { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

.room-rate { margin:0 0 18px!important; color:var(--psd-ink)!important; font-size:17px!important; }
.room-rate b { font-weight:400; font-size:23px; }
.room-rate span { color:var(--psd-muted); font-size:13px; }
/* Booking-engine notices. Stairs and the age limit are conditions of stay, so
   they read as notices in ink rather than muted body text. */
.rooms-notices { margin:14px 0 0; padding:0; list-style:none; }
.rooms-notices li { position:relative; padding:3px 0 3px 26px; color:var(--psd-ink); font-size:15px; line-height:1.55; }
.rooms-notices li::before { content:'\26A0'; position:absolute; left:0; color:var(--psd-gold-text); font-size:14px; }
.rooms-times { margin:14px 0 0!important; color:var(--psd-ink)!important; font-size:15px!important; }
.rooms-times b { font-weight:400; letter-spacing:.06em; text-transform:uppercase; font-size:12px; color:var(--psd-gold-text); }
.rooms-shared { padding:0 0 88px; }
.rooms-shared__inner { max-width:78ch; margin-inline:auto; padding:26px 30px; border-left:4px solid var(--psd-gold); background:#faf9f6; --psd-muted:#6b6b6b; }
.rooms-shared__inner p { margin:0; color:var(--psd-muted); font-size:15px; line-height:1.62; }
/* a liability notice has to be legible, not buried */
.rooms-shared__notice { margin-top:10px!important; color:var(--psd-ink)!important; font-family:var(--psd-sans); font-size:14px!important; letter-spacing:.04em; text-transform:uppercase; }

.rooms-nearby { padding:88px 0 96px; background:#faf9f6; --psd-muted:#6b6b6b; }
.rooms-nearby .psd-title { margin-bottom:52px; }
.rooms-nearby__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.rooms-nearby__grid div { padding:26px 26px 28px; background:#fff; border:1px solid rgba(36,36,36,.12); }
.rooms-nearby__grid b { display:block; margin-bottom:7px; color:var(--psd-gold-text); font-family:var(--psd-sans); font-size:12px; font-weight:400; letter-spacing:.11em; text-transform:uppercase; }
.rooms-nearby__grid strong { display:block; margin-bottom:8px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:23px; font-style:italic; font-weight:400; }
.rooms-nearby__grid span { color:var(--psd-muted); font-size:15px; line-height:1.55; }
.rooms-nearby__note { margin:34px auto 0; max-width:62ch; color:var(--psd-muted); font-size:15px; line-height:1.6; text-align:center; }

.rooms-book { padding:92px 0 100px; text-align:center; }
.rooms-book p { max-width:56ch; margin:0 auto 26px; color:var(--psd-muted); font-size:16px; line-height:1.62; }

@media (max-width:1100px) { .rooms-hero h1 { font-size:clamp(34px,5vw,52px); } }
@media (max-width:860px) {
  .room-row { grid-template-columns:1fr; gap:26px; }
  .room-row:nth-child(even) .room-row__media { order:0; }
  .rooms-nearby__grid { grid-template-columns:1fr; }
  .rooms-intro { padding:58px 0 10px; }
  .room-list { padding:40px 0 64px; gap:52px; }
  .rooms-nearby,.rooms-book { padding:62px 0 66px; }
}
