/* ============================================================
   TOKENS — White Rainbow / St. Moritz brand (unchanged)
   ============================================================ */
:root{
  --white:#FFFFFF; --parchment:#F9F3F0; --almond:#E3CBC0;
  --bronze:#CCA28F; --brown:#AA6A4B; --ink:#303030;
  --hairline:rgba(48,48,48,.16);

  --serif:'Alice', Georgia, serif;
  --sans:'Montserrat', system-ui, Arial, sans-serif;

  --display: clamp(46px, 7.2vw, 88px);   /* hero */
  --h2: clamp(32px, 4.4vw, 52px);
  --h3: clamp(21px, 2.4vw, 26px);
  --eyebrow: 12px;

  --max:1240px;
  --pad: clamp(20px, 5vw, 56px);
  --gap: clamp(80px, 12vw, 150px);       /* between sections */
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font:400 16px/1.7 var(--sans); color:var(--ink); background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
.wrap{ max-width:var(--max); margin:0 auto; padding-inline:var(--pad); }

h1,h2,h3{ font-family:var(--serif); font-weight:400; line-height:1.08; }
h1{ font-size:var(--display); letter-spacing:-.01em; }
h2{ font-size:var(--h2); letter-spacing:-.005em; }
h3{ font-size:var(--h3); }

.eyebrow{
  font:600 var(--eyebrow)/1 var(--sans); letter-spacing:.22em; text-transform:uppercase;
  color:var(--brown); display:flex; align-items:center; gap:14px; margin-bottom:22px;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:var(--brown); }

.section{ margin-top:var(--gap); }

/* Reveal */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; }
}

/* Text link with underline slide */
.tlink{
  display:inline-flex; align-items:center; gap:12px; text-decoration:none;
  font:600 13px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--ink);
  padding-bottom:8px; border-bottom:1px solid var(--ink);
  transition:color .25s ease, border-color .25s ease, gap .25s ease;
}
.tlink:hover{ color:var(--brown); border-color:var(--brown); gap:18px; }
.tlink svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font:600 13px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  padding:17px 30px; border:0; cursor:pointer; text-decoration:none;
  background:var(--brown); color:#fff; transition:background .25s ease;
}
.btn:hover{ background:#94593c; }
:focus-visible{ outline:2px solid var(--brown); outline-offset:3px; }

/* Signature dateline: 1926 / 1932 / 2026 */
.dateline{ display:flex; border-top:1px solid var(--hairline); }
.dateline div{
  flex:1; padding:26px 22px 0 0; border-right:1px solid var(--hairline); margin-right:22px;
}
.dateline div:last-child{ border-right:0; margin-right:0; }
.dateline strong{ font:400 clamp(26px,3vw,38px)/1 var(--serif); display:block; margin-bottom:8px; }
.dateline span{ font:500 13px/1.55 var(--sans); color:rgba(48,48,48,.72); display:block; }

/* ============================================================
   HEADER
   ============================================================ */
.header{ position:fixed; inset:0 0 auto 0; z-index:100; transition:background .35s ease, box-shadow .35s ease; }
.header-in{
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
}
.logo{ position:relative; display:block; width:225px; }
.logo img{ width:100%; display:block; }
.logo .logo-dark{ position:absolute; inset:0; opacity:0; transition:opacity .35s ease; }
.logo .logo-white{ transition:opacity .35s ease; }
.header.solid{ background:var(--white); box-shadow:0 1px 0 var(--hairline); }
.header.solid .logo-dark, .nav-open .logo-dark{ opacity:1; }
.header.solid .logo-white, .nav-open .logo-white{ opacity:0; }

.nav{ display:flex; align-items:center; gap:34px; }
.nav a{
  font:500 13px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:#fff; transition:color .35s ease, opacity .2s ease;
}
.nav a:not(.btn):hover{ opacity:.65; }
.nav .btn{ padding:14px 24px; }
.header.solid .nav a:not(.btn){ color:var(--ink); }

.nav-toggle{ display:none; background:none; border:0; cursor:pointer; width:44px; height:44px; position:relative; z-index:110; }
.nav-toggle span{ display:block; width:24px; height:2px; background:#fff; margin:5px auto; transition:.3s ease; }
.header.solid .nav-toggle span, .nav-open .nav-toggle span{ background:var(--ink); }
.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:880px){
  .nav-toggle{ display:block; }
  .nav{
    position:fixed; inset:0; background:var(--white);
    flex-direction:column; justify-content:center; gap:30px;
    transform:translateX(100%); transition:transform .35s ease;
  }
  .nav-open .nav{ transform:none; }
  .nav-open .nav a:not(.btn){ color:var(--ink); font-size:15px; }
  .nav-open .header{ background:var(--white); }
}

/* ============================================================
   HERO — full-bleed gallery, bottom-left statement
   ============================================================ */
.hero{ position:relative; height:min(84vh, 860px); min-height:560px; overflow:hidden; }
.hero-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1s ease; background-size:cover; background-position:center; }
.hero-slide.active{ opacity:1; }
.hero-slide::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,30,30,.42) 0%, rgba(30,30,30,0) 30%, rgba(30,30,30,0) 55%, rgba(30,30,30,.5) 100%);
}
.ph-2{ background-image:linear-gradient(150deg,#6a5747,#37291e); }
.ph-3{ background-image:linear-gradient(150deg,#57604f,#2b3328); }

.hero-copy{
  position:absolute; z-index:4; color:#fff; bottom:110px;
  left:max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
  right:var(--pad);
}
.hero-copy .eyebrow{ color:#fff; }
.hero-copy .eyebrow::before{ background:#fff; }
.hero-copy h1{ max-width:12ch; text-wrap:balance; }

.hero-ui{
  position:absolute; bottom:118px; z-index:5;
  right:max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
  display:flex; align-items:center; gap:18px;
}
.hero-count{ color:rgba(255,255,255,.85); font:500 13px/1 var(--sans); letter-spacing:.14em; }
.hero-arrow{
  width:52px; height:52px; border-radius:50%; cursor:pointer;
  background:transparent; border:1px solid rgba(255,255,255,.55);
  display:flex; align-items:center; justify-content:center; transition:background .25s ease, border-color .25s ease;
}
.hero-arrow:hover{ background:rgba(255,255,255,.14); border-color:#fff; }
.hero-arrow svg{ width:20px; height:20px; stroke:#fff; fill:none; stroke-width:1.6; }

@media (max-width:720px){
  .hero{ height:80vh; min-height:520px; }
  .hero-copy{ bottom:150px; left:var(--pad); }
  .hero-ui{ bottom:82px; left:var(--pad); right:auto; }
}

/* ============================================================
   BOOKING BAR — slim strip riding the hero's bottom edge
   ============================================================ */
.booking{ position:relative; z-index:20; margin-top:-46px; padding-inline:var(--pad); }
.booking-in{
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:stretch; background:var(--white);
  box-shadow:0 24px 60px -30px rgba(48,48,48,.45);
}
.bk-field{
  flex:1 1 0; min-width:0; cursor:pointer; position:relative;
  padding:16px 22px 14px; display:flex; flex-direction:column; gap:2px;
}
.bk-field + .bk-field::before{
  content:""; position:absolute; left:0; top:18px; bottom:18px; width:1px; background:var(--hairline);
}
.bk-label{ font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--brown); }
.bk-input,.bk-select{
  width:100%; border:0; outline:0; background:transparent;
  font:500 16px/1.4 var(--sans); color:var(--ink);
}
.bk-input[readonly]{ cursor:pointer; }
.bk-select{ cursor:pointer; appearance:auto; }
.bk-cta{
  flex:0 0 auto; padding:0 44px;
  font:600 13px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  background:var(--brown); color:#fff; border:0; cursor:pointer; transition:background .25s ease;
}
.bk-cta:hover{ background:#94593c; }

@media (max-width:720px){
  .booking{ margin-top:-34px; padding-inline:16px; }
  .booking-in{ flex-wrap:wrap; }
  .bk-field{ flex:1 1 50%; padding:14px 16px 12px; }
  .bk-field:nth-child(2)::before{ content:""; }
  .bk-field:nth-child(3){ border-top:1px solid var(--hairline); flex:1 1 44%; }
  .bk-field:nth-child(3)::before{ display:none; }
  .bk-cta{ flex:1 1 56%; border-top:1px solid var(--hairline); padding:16px 0; }
}

/* Flatpickr brand styling */
.flatpickr-calendar{ font-family:var(--sans); }
.flatpickr-day.inRange{ background:rgba(170,106,75,.14) !important; box-shadow:none !important; border-color:transparent !important; }
.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected,
.flatpickr-day:hover,.flatpickr-day:focus{ background:var(--brown) !important; border-color:var(--brown) !important; color:#fff !important; }
.flatpickr-day.today{ border-color:var(--brown); }

/* ============================================================
   INTRO — editorial split + signature dateline
   ============================================================ */
.intro{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,6vw,90px); align-items:start; }
.intro h2{ max-width:11ch; }
.intro-right p{ margin-bottom:18px; }
.intro-right .phone{ color:var(--brown); font-weight:600; text-decoration:none; }
.intro .dateline{ grid-column:1 / -1; margin-top:clamp(36px,5vw,64px); }
@media (max-width:820px){ .intro{ grid-template-columns:1fr; } }

/* ============================================================
   ROOMS — horizontal rail, snap scroll
   ============================================================ */
.rooms-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:44px;
}
.rooms-head h2{ max-width:12ch; }
.rooms-rail{
  display:flex; gap:clamp(18px,2.5vw,32px);
  overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px;
  padding-inline:var(--pad); margin-inline:calc(-1 * var(--pad));
  scrollbar-width:none;
}
.rooms-rail::-webkit-scrollbar{ display:none; }
.room-card{ flex:0 0 min(78vw, 430px); scroll-snap-align:start; text-decoration:none; }
.room-card figure{
  aspect-ratio:4/5; background:linear-gradient(160deg,#d8cfc8,#b3a79d);
  display:flex; align-items:flex-end; padding:18px; margin-bottom:18px;
  transition:opacity .3s ease;
}
.room-card:hover figure{ opacity:.92; }
.room-card figure span{
  color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.85;
}
.room-card h3{ margin-bottom:6px; }
.room-card p{ font-size:14.5px; color:rgba(48,48,48,.72); }

/* ============================================================
   AMENITIES — layered images + accordion
   ============================================================ */
.amen{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,96px); align-items:start; }
.amen-visual{ display:grid; grid-template-columns:1fr .92fr; gap:12px; align-items:start; }
.amen-visual .im-a{
  position:relative; aspect-ratio:3/4;
  background:linear-gradient(160deg,#8f9aa8,#5a6470); background-size:cover; background-position:center;
}
.amen-visual .im-b{
  aspect-ratio:4/3.3; margin-top:26%;
  background:linear-gradient(160deg,#cbb9a9,#96806e); background-size:cover; background-position:center;
}
.amen-visual .ph-tag{
  position:absolute; left:14px; top:14px; color:#fff;
  font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8;
}
.amen-copy p{ margin:0 0 34px; }

.acc{ border-top:1px solid var(--hairline); }
.acc-item{ border-bottom:1px solid var(--hairline); }
.acc-btn{
  width:100%; background:none; border:0; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:20px 2px; font:600 13px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--ink);
}
.acc-btn .ind{ position:relative; width:14px; height:14px; flex:0 0 14px; }
.acc-btn .ind::before,.acc-btn .ind::after{
  content:""; position:absolute; background:var(--brown); transition:transform .3s ease;
}
.acc-btn .ind::before{ left:0; right:0; top:6px; height:2px; }
.acc-btn .ind::after{ top:0; bottom:0; left:6px; width:2px; }
.acc-item.open .acc-btn .ind::after{ transform:scaleY(0); }
.acc-panel{ overflow:hidden; max-height:0; transition:max-height .4s ease; }
.acc-panel ul{ list-style:none; padding:2px 2px 22px; }
.acc-panel li{
  padding:7px 0 7px 26px; position:relative; font-size:15px; color:rgba(48,48,48,.82);
}
.acc-panel li::before{
  content:""; position:absolute; left:2px; top:16px; width:12px; height:1px; background:var(--bronze);
}
@media (max-width:820px){ .amen{ grid-template-columns:1fr; } .amen-visual{ max-width:480px; } }

/* ============================================================
   EXPLORE — full-bleed band with offset card
   ============================================================ */
.explore{
  position:relative; min-height:560px; display:flex; align-items:center;
  background:linear-gradient(160deg,#4e5c4a,#2a352a); background-size:cover; background-position:center;
}
.explore .ph-tag{
  position:absolute; right:26px; top:22px; color:#fff;
  font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.7;
}
.explore-card{
  background:var(--white); max-width:520px; padding:clamp(36px,5vw,60px);
  margin-block:clamp(56px,8vw,90px);
}
.explore-card h2{ margin-bottom:18px; }
.explore-card p{ margin-bottom:30px; }

/* ============================================================
   MORE TO COME — dark heritage band
   ============================================================ */
.mtc{ background:var(--ink); color:rgba(255,255,255,.92); }
.mtc-grid{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,6vw,90px); align-items:center;
  padding-block:clamp(72px,9vw,120px);
}
.mtc h2{ color:#fff; margin-bottom:22px; }
.mtc .eyebrow{ color:var(--almond); }
.mtc .eyebrow::before{ background:var(--almond); }
.mtc-media{
  aspect-ratio:16/11; background:linear-gradient(150deg,#cac4bc,#8f8a83);
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; padding:16px;
}
.mtc-media span{ color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8; }
.mtc .dateline{ border-color:rgba(255,255,255,.25); margin-top:36px; }
.mtc .dateline div{ border-color:rgba(255,255,255,.25); }
.mtc .dateline span{ color:rgba(255,255,255,.66); }
@media (max-width:820px){ .mtc-grid{ grid-template-columns:1fr; } }

/* ============================================================
   FAQ — split, minimal
   ============================================================ */
.faq{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(36px,6vw,90px); align-items:start; }
.faq .acc-btn{ font:400 19px/1.4 var(--serif); text-transform:none; letter-spacing:0; }
.faq .acc-panel p{ padding:0 2px 22px; font-size:15px; color:rgba(48,48,48,.82); max-width:56ch; }
@media (max-width:820px){ .faq{ grid-template-columns:1fr; } }

/* ============================================================
   STAY CONNECTED — parchment band
   ============================================================ */
.connect{ background:var(--parchment); }
.connect-in{
  max-width:680px; margin:0 auto; text-align:center;
  padding-block:clamp(64px,8vw,100px);
}
.connect h2{ margin-bottom:14px; }
.connect p{ margin-bottom:34px; }
.connect-form{ display:flex; border-bottom:1px solid var(--ink); max-width:520px; margin:0 auto; }
.connect-form input{
  flex:1; border:0; outline:0; background:transparent;
  font:400 18px/1.4 var(--serif); color:var(--ink); padding:12px 4px;
}
.connect-form input::placeholder{ color:rgba(48,48,48,.5); }
.connect-form button{
  background:none; border:0; cursor:pointer; padding:12px 6px;
  font:600 13px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--brown);
}
.connect-form button:hover{ color:#94593c; }

/* ============================================================
   GALLERY STRIP
   ============================================================ */
.strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:var(--gap); }
.strip div{ aspect-ratio:1; background:linear-gradient(150deg,#d9d2ca,#a89a8c); background-size:cover; background-position:center; }
.strip div:nth-child(2n){ background:linear-gradient(150deg,#a6b0a0,#6e7a6a); }
@media (max-width:720px){ .strip{ grid-template-columns:repeat(3,1fr); } .strip div:nth-child(n+7){ display:none; } }

/* ============================================================
   FOOTER (unchanged from approved build)
   ============================================================ */
.footer{ background:var(--ink); color:rgba(255,255,255,.88); }
.footer .wrap{ padding-top:64px; padding-bottom:28px; }
.footer a{ text-decoration:none; color:rgba(255,255,255,.88); transition:color .2s ease; }
.footer a:hover{ color:var(--almond); }
.ft-tier{ display:grid; grid-template-columns:240px 1fr 1.4fr auto; gap:40px; align-items:start; }
.ft-logo img{ width:200px; }
.ft-logo--wr img{ width:190px; }
.ft-links{ display:flex; flex-direction:column; gap:10px; font-size:15px; }
.ft-contact{ display:flex; flex-direction:column; gap:12px; font-size:15px; }
.ft-contact a{ display:flex; align-items:center; gap:10px; }
.ft-contact svg{ width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:1.6; }
.ft-social{ display:flex; gap:14px; }
.ft-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; }
.ft-social a:hover{ border-color:var(--almond); }
.ft-social svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; }
.ft-by{ display:flex; align-items:center; gap:18px; margin:44px 0; font:600 12px/1 var(--sans); letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.ft-by::before{ content:""; width:120px; height:1px; background:rgba(255,255,255,.28); }
.ft-by::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.28); }
.ft-legal{ margin-top:52px; padding-top:22px; border-top:1px solid rgba(255,255,255,.22); display:flex; justify-content:center; gap:34px; font-size:13px; }
@media (max-width:900px){
  .ft-tier{ grid-template-columns:1fr 1fr; gap:32px; }
  .ft-logo{ grid-column:1 / -1; } .ft-social{ grid-column:1 / -1; }
}
@media (max-width:560px){
  .ft-tier{ grid-template-columns:1fr; gap:24px; }
  .ft-legal{ flex-direction:column; align-items:center; gap:12px; }
}

/* ============================================================
   INTERIOR PAGE HERO — short image band with page title
   ============================================================ */
.page-hero{ position:relative; height:min(75vh,820px); min-height:480px; overflow:hidden; }
.page-hero .ph-img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.page-hero .ph-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,30,30,.45) 0%, rgba(30,30,30,.12) 45%, rgba(30,30,30,.5) 100%);
}
.page-hero .hero-copy{ bottom:96px; }

/* ============================================================
   ROOMS PAGE
   ============================================================ */
.rooms-intro{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,90px); align-items:start; }
.rooms-intro p{ margin-bottom:18px; }
@media (max-width:820px){ .rooms-intro{ grid-template-columns:1fr; } }

.room{
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,5.5vw,84px); align-items:center;
}
.room + .room{ margin-top:var(--gap); }
.room.flip .rm-gallery{ order:2; }
@media (max-width:860px){
  .room{ grid-template-columns:1fr; gap:28px; }
  .room.flip .rm-gallery{ order:0; }
}

.rm-gallery{ position:relative; aspect-ratio:4/3.1; overflow:hidden; }
.rm-frame{
  position:absolute; inset:0; opacity:0; transition:opacity .6s ease;
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; padding:16px;
}
.rm-frame.active{ opacity:1; }
.rm-frame span{ color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8; }
.rm-ui{
  position:absolute; right:16px; bottom:16px; z-index:3;
  display:flex; align-items:center; gap:12px;
}
.rm-count{ color:#fff; font:500 12px/1 var(--sans); letter-spacing:.14em; text-shadow:0 1px 6px rgba(0,0,0,.4); }
.rm-prev,.rm-next{
  width:42px; height:42px; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.92); border:0;
  display:flex; align-items:center; justify-content:center; transition:background .2s ease;
}
.rm-prev:hover,.rm-next:hover{ background:#fff; }
.rm-prev svg,.rm-next svg{ width:17px; height:17px; stroke:var(--ink); fill:none; stroke-width:1.8; }

.rm-copy .eyebrow{ margin-bottom:14px; }
.rm-copy h2{ margin-bottom:20px; }
.rm-specs{
  display:flex; flex-wrap:wrap; gap:0 28px; margin-bottom:22px;
  border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);
  padding:14px 0;
}
.rm-specs div{ display:flex; align-items:center; gap:9px; font:500 13.5px/1 var(--sans); color:rgba(48,48,48,.8); padding:6px 0; }
.rm-specs svg{ width:17px; height:17px; stroke:var(--brown); fill:none; stroke-width:1.5; flex:0 0 17px; }
.rm-copy p{ margin-bottom:28px; max-width:52ch; }

/* Rooms closing CTA band */
.rooms-cta{ background:var(--parchment); margin-top:var(--gap); }
.rooms-cta-in{
  max-width:720px; margin:0 auto; text-align:center; padding-block:clamp(64px,8vw,100px);
}
.rooms-cta-in h2{ margin-bottom:16px; }
.rooms-cta-in p{ margin-bottom:32px; }

/* Placeholder art for room frames until photos arrive */
.rmph-a{ background-image:linear-gradient(155deg,#c9bcb0,#93816f); }
.rmph-b{ background-image:linear-gradient(155deg,#a8b1a2,#6f7a68); }
.rmph-c{ background-image:linear-gradient(155deg,#b7a9ab,#7d6a6e); }

/* Rooms page: category heads, jump nav, detail lists */
.rm-jump{ display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.rm-jump a, .rm-jump button{
  appearance:none; background:none; cursor:pointer;
  text-decoration:none; font:600 12px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); border:1px solid var(--hairline); padding:12px 22px; border-radius:999px;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.rm-jump a:hover, .rm-jump button:hover{ border-color:var(--brown); color:var(--brown); }
.rm-cat-head{ margin-bottom:clamp(36px,5vw,56px); max-width:560px; }
.rm-cat-head h2{ margin-bottom:10px; }
.rm-cat-head p{ color:rgba(48,48,48,.72); }
.rm-name{ font-size:clamp(24px,3vw,34px); margin-bottom:16px; }
.rm-acc{ margin-bottom:26px; border-top:1px solid var(--hairline); }
.rm-details{ display:grid; grid-template-columns:1fr 1fr; gap:8px 28px; padding:6px 2px 22px; }
.rm-details h4{ font:600 12px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--brown); margin:14px 0 8px; }
.rm-details ul{ list-style:none; }
.rm-details li{ padding:5px 0 5px 22px; position:relative; font-size:14px; color:rgba(48,48,48,.8); }
.rm-details li::before{ content:""; position:absolute; left:0; top:13px; width:11px; height:1px; background:var(--bronze); }
@media (max-width:640px){ .rm-details{ grid-template-columns:1fr; } }

/* Interior page hero: correct mobile title position (global .hero-copy override is tuned for the tall home hero) */
@media (max-width:720px){
  .page-hero .hero-copy{ bottom:64px; }
}

/* Stub page body */
.stub-body{ max-width:640px; margin:0 auto; text-align:center; padding-block:clamp(56px,8vw,90px); }
.stub-body p{ margin-bottom:30px; color:rgba(48,48,48,.75); }

/* ============================================================
   ROOMS PREVIEW GRID + INDIVIDUAL ROOM PAGES
   ============================================================ */
.rv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,52px) clamp(24px,3vw,40px); }
@media (max-width:760px){ .rv-grid{ grid-template-columns:1fr; } }
.rv-card{ text-decoration:none; display:block; }
.rv-card figure{
  aspect-ratio:4/3; margin-bottom:18px; background-size:cover; background-position:center;
  display:flex; align-items:flex-end; padding:14px; transition:opacity .3s ease;
}
.rv-card:hover figure{ opacity:.92; }
.rv-card figure span{ color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8; }
.rv-chips{ display:flex; flex-wrap:wrap; gap:4px 22px; margin-bottom:10px; }
.rv-chips div{ display:flex; align-items:center; gap:8px; font:500 13px/1 var(--sans); color:rgba(48,48,48,.72); }
.rv-chips svg{ width:16px; height:16px; stroke:var(--brown); fill:none; stroke-width:1.5; }
.rv-card h3{ margin-bottom:8px; }
.rv-card p{ font-size:14.5px; color:rgba(48,48,48,.74); margin-bottom:16px; max-width:52ch; }
.rv-card:hover .tlink{ color:var(--brown); border-color:var(--brown); gap:18px; }

/* Individual room page */
.room-hero{ padding-top:88px; }
.rm-gallery--page{ aspect-ratio:16/8.2; max-width:var(--max); margin:0 auto; }
@media (max-width:720px){ .rm-gallery--page{ aspect-ratio:4/3.4; } }
.room-main{ margin-top:clamp(40px,6vw,64px); }
.room-grid{ display:grid; grid-template-columns:1.5fr .8fr; gap:clamp(36px,5vw,80px); align-items:start; }
@media (max-width:820px){ .room-grid{ grid-template-columns:1fr; } }
.rm-back{
  display:inline-flex; align-items:center; gap:10px; text-decoration:none; margin-bottom:26px;
  font:600 12px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:rgba(48,48,48,.66);
}
.rm-back svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; }
.rm-back:hover{ color:var(--brown); }
.room-title{ font-size:clamp(34px,5vw,58px); margin-bottom:22px; }
.room-lede{ font-family:var(--serif); font-size:19px; line-height:1.6; margin-bottom:20px; }
.room-grid p{ margin-bottom:18px; max-width:60ch; }
.room-side{ position:sticky; top:100px; }
.room-book-card{ border:1px solid var(--hairline); padding:30px 28px; }
.room-book-card p{ margin:0 0 20px; font-size:14.5px; color:rgba(48,48,48,.75); }
.room-book-card .btn{ width:100%; margin-bottom:16px; }
.room-book-card a{ display:block; text-align:center; font:500 13.5px/1.4 var(--sans); color:var(--brown); text-decoration:none; }
@media (max-width:820px){ .room-side{ position:static; } }
.rm-details--page{ grid-template-columns:1fr 1fr 1fr; border-top:1px solid var(--hairline); padding-top:26px; }
@media (max-width:820px){ .rm-details--page{ grid-template-columns:1fr; } }
.room-pn{ display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--hairline); padding-top:30px; }
.room-pn a{ text-decoration:none; }
.room-pn span{ display:block; font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:rgba(48,48,48,.55); margin-bottom:8px; }
.room-pn strong{ font:400 clamp(18px,2.4vw,24px)/1.2 var(--serif); color:var(--ink); }
.room-pn a:hover strong{ color:var(--brown); }
.pn-next{ text-align:right; }

/* ============================================================
   TIMELINE — the section Wix couldn't do on mobile
   ============================================================ */
.tl{ position:relative; padding:20px 0 10px; }
.tl::before{
  content:""; position:absolute; top:0; bottom:0; left:50%; width:1px;
  background:var(--hairline);
}
.tl-entry{ position:relative; width:50%; padding:0 clamp(30px,4.5vw,64px) clamp(44px,6vw,72px) 0; }
.tl-entry.tl-right{ left:50%; padding:0 0 clamp(44px,6vw,72px) clamp(30px,4.5vw,64px); }
.tl-left .tl-card{ text-align:right; }
.tl-left .tl-card h3{ text-align:right; }
.tl-dot{
  position:absolute; top:14px; width:11px; height:11px; border-radius:50%;
  background:var(--bronze); border:2px solid var(--white); box-shadow:0 0 0 1px var(--hairline);
}
.tl-left .tl-dot{ right:-6px; }
.tl-right .tl-dot{ left:-6px; }
.tl-major .tl-dot{ background:var(--brown); width:13px; height:13px; }
.tl-major.tl-left .tl-dot{ right:-7px; }
.tl-major.tl-right .tl-dot{ left:-7px; }

.tl-year{ font:400 clamp(26px,3vw,40px)/1 var(--serif); color:var(--ink); margin-bottom:8px; }
.tl-major .tl-year{ font-size:clamp(34px,4vw,52px); color:var(--brown); }
.tl-card h3{ font:600 13px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; margin-bottom:12px; color:var(--ink); }
.tl-card p{ font-size:15px; color:rgba(48,48,48,.8); max-width:46ch; }
.tl-left .tl-card p{ margin-left:auto; }
.tl-photo{
  margin-top:18px; aspect-ratio:4/2.9;
  background:linear-gradient(150deg,#d6cec6,#a2968a);
  display:flex; align-items:flex-end; padding:12px;
}
.tl-left .tl-photo{ justify-content:flex-end; }
.tl-photo span{ color:#fff; font:500 10.5px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; opacity:.85; }

.tl-finale .tl-card{
  background:var(--parchment); padding:clamp(24px,3vw,38px);
}
.tl-finale .tl-year{ color:var(--brown); }

/* Mobile: spine moves left, everything stacks right — reflows by construction */
@media (max-width:760px){
  .tl::before{ left:7px; }
  .tl-entry, .tl-entry.tl-right{
    width:100%; left:0;
    padding:0 0 44px 34px;
  }
  .tl-left .tl-card, .tl-left .tl-card h3{ text-align:left; }
  .tl-left .tl-card p{ margin-left:0; }
  .tl-left .tl-dot, .tl-right .tl-dot,
  .tl-major.tl-left .tl-dot, .tl-major.tl-right .tl-dot{ left:1px; right:auto; }
  .tl-photo{ justify-content:flex-start !important; }
}

/* Room page booking card (replaces the plain Stay Here card) */
.room-book-card{ background:var(--parchment); border:0; padding:0; }
.rbc-title{ font-size:clamp(21px,2.2vw,26px); padding:24px 26px 4px; }
.rbc-sub{
  font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  color:var(--brown); padding:0 26px 20px; border-bottom:1px solid var(--hairline);
}
.rbc-field{
  padding:14px 26px 12px; border-bottom:1px solid var(--hairline);
  display:flex; flex-direction:column; gap:3px; cursor:pointer;
}
.room-book-card .bk-input, .room-book-card .bk-select{ background:transparent; }
.rbc-cta{ display:block; width:calc(100% - 52px); margin:22px 26px 0; padding:17px 0; }
.rbc-phone{
  display:block; text-align:center; padding:16px 0 22px;
  font:500 13.5px/1.4 var(--sans); color:var(--brown); text-decoration:none;
}
.rbc-phone:hover{ text-decoration:underline; }

/* ============================================================
   ROOM PAGE v2 — full hero, photo rail, sticky mobile CTA
   ============================================================ */
.room-hero-full{
  position:relative; height:min(78vh,800px); min-height:460px;
  background-size:cover; background-position:center;
}
.room-hero-full::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,30,30,.42) 0%, rgba(30,30,30,0) 32%, rgba(30,30,30,0) 55%, rgba(30,30,30,.48) 100%);
}
.room-hero-full .hero-copy{ bottom:56px; z-index:2; }
@media (max-width:720px){ .room-hero-full{ height:62vh; min-height:400px; } .room-hero-full .hero-copy{ bottom:40px; } }

/* Photo rail */
.rg-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:30px; }
.rail-ui{ display:flex; gap:12px; }
.rail-btn{
  width:46px; height:46px; border-radius:50%; cursor:pointer;
  background:transparent; border:1px solid var(--hairline);
  display:flex; align-items:center; justify-content:center; transition:border-color .2s ease;
}
.rail-btn:hover{ border-color:var(--brown); }
.rail-btn svg{ width:18px; height:18px; stroke:var(--ink); fill:none; stroke-width:1.7; }
.rg-rail{
  display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-inline:var(--pad); scrollbar-width:none;
}
.rg-rail::-webkit-scrollbar{ display:none; }
.rg-item{
  flex:0 0 min(calc(100vw - 2 * var(--pad)), 1180px); aspect-ratio:16/8.6; scroll-snap-align:center;
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; padding:14px;
}
.rg-item span{ color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8; }

/* Mobile sticky CTA */
.msticky{ display:none; }
@media (max-width:820px){
  .msticky{
    display:block; position:fixed; left:0; right:0; bottom:0; z-index:90;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96); backdrop-filter:blur(8px);
    border-top:1px solid var(--hairline);
  }
  .msticky .btn{ width:100%; padding:16px 0; }
  .has-msticky .footer{ padding-bottom:64px; }
}


/* Footer column alignment: WR policy links line up with contact text, not the icons */
.ft-tier--wr .ft-links + .ft-links{ padding-left:28px; }
@media (max-width:900px){ .ft-tier--wr .ft-links + .ft-links{ padding-left:0; } }


/* Footer spacing */
.footer{ margin-top:var(--gap); }
.strip + .footer{ margin-top:0; }

/* ============================================================
   EXPLORE + FAQ + OFFERS
   ============================================================ */
.xp-year{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.5vw,48px); }
.xp-year h3{ font:600 13px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--brown); margin-bottom:12px; }
.xp-year p{ font-size:15px; color:rgba(48,48,48,.82); }
@media (max-width:760px){ .xp-year{ grid-template-columns:1fr; } }

.xp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,3.5vw,44px) clamp(28px,4vw,56px); }
@media (max-width:720px){ .xp-grid{ grid-template-columns:1fr; } }
.xp-item{ border-top:1px solid var(--hairline); padding-top:18px; }
.xp-item h3{ font-size:20px; margin-bottom:4px; }
.xp-dist{ font:500 12.5px/1.5 var(--sans); letter-spacing:.06em; color:var(--bronze); margin-bottom:10px; }
.xp-item p:last-child{ font-size:15px; color:rgba(48,48,48,.82); }

.faq-cat{ max-width:var(--max); }
.faq-cat .acc{ max-width:860px; }
.faq-acc .acc-btn{ font:400 18px/1.45 var(--serif); text-transform:none; letter-spacing:0; }
.faq-a{ padding:2px 2px 24px; font-size:15px; color:rgba(48,48,48,.85); max-width:64ch; }
.faq-a p{ margin-bottom:12px; }
.faq-a p:last-child{ margin-bottom:0; }
.faq-a ul{ margin:0 0 12px 18px; }
.faq-a li{ padding:4px 0; }
.faq-a a{ color:var(--brown); font-weight:600; text-decoration:none; }
.faq-a a:hover{ text-decoration:underline; }

.of-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,40px); }
@media (max-width:900px){ .of-grid{ grid-template-columns:1fr; max-width:560px; } }
.rv-card--soon{ cursor:default; opacity:.92; }
.of-soon{
  display:inline-block; vertical-align:middle; margin-left:10px;
  font:600 10.5px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--brown); border:1px solid var(--bronze); border-radius:999px; padding:6px 12px;
}


/* Fix: buttons inside booking cards must stay white-on-brown */
.room-book-card a.btn{ color:#fff; }
.room-book-card a.btn:hover{ color:#fff; }

/* Explore: alternating image + text feature rows */
.xp-feature{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:center; }
.xp-feature + .xp-feature{ margin-top:clamp(48px,7vw,88px); }
.xp-feature.flip figure{ order:2; }
.xp-feature figure{
  aspect-ratio:4/3; background-size:cover; background-position:center;
  display:flex; align-items:flex-end; padding:14px;
}
.xp-feature figure span{ color:#fff; font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; opacity:.8; }
.xp-feature h3{ margin-bottom:14px; }
@media (max-width:820px){
  .xp-feature{ grid-template-columns:1fr; gap:22px; }
  .xp-feature.flip figure{ order:0; }
}

/* We Recommend: tabbed panels */
.xp-tab{ cursor:pointer; background:none; }
.xp-tab.active, .rm-jump button.xp-tab.active:hover{ background:var(--brown); color:#fff; border-color:var(--brown); }
.xp-panel{ display:none; }
.xp-panel.active{ display:grid; }

/* Page-bottom photo showcase (3-up strip) */
.showcase{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:var(--gap); }
.showcase div{ aspect-ratio:3/3.6; background-size:cover; background-position:center; }
@media (max-width:720px){ .showcase{ grid-template-columns:1fr; } .showcase div{ aspect-ratio:4/3; } }
.showcase + .footer{ margin-top:0; }

/* Explore map */
.xp-map{ height:min(72vh,680px); min-height:420px; background:var(--parchment); }
.xp-map-sec.hidden{ display:none; }
