/* ============================================================
   TOKENS — White Rainbow design system (St. Moritz v36, carried to Grey Fox 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:1400px;
  --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;
}

.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; z-index:110; }
.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); }
.nav-mobile-only{ display:none; }
.header-in{ gap:20px; }
@media (max-width:1120px) and (min-width:941px){
  .logo{ width:170px; }
  .nav{ gap:20px; }
  .nav a{ font-size:12px; letter-spacing:.1em; }
  .nav .btn{ padding:12px 18px; }
}
@media (max-width:940px){
  .logo{ width:155px; }
  .header-in{ padding:12px var(--pad); }
  .nav-toggle{ display:block; }
  .nav{
    position:fixed; inset:0; background:var(--white);
    flex-direction:column; justify-content:flex-start; align-items:center; gap:26px;
    padding:110px var(--pad) 48px; overflow-y:auto;
    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); }
  .nav-mobile-only{ display:block; }
  .nav .btn{ margin-top:26px; padding:16px 42px; }
  .nav-contact{
    display:flex; flex-direction:column; gap:10px; align-items:center;
    margin-top:34px; text-align:center;
  }
  .nav-contact a{
    font:400 13.5px/1.5 var(--sans); letter-spacing:.02em; text-transform:none;
    color:var(--ink) !important;
  }
}

/* ============================================================
   HERO — full-bleed gallery, bottom-left statement
   ============================================================ */
.hero{ position:relative; height:100vh; height:100dvh; min-height:640px; overflow:hidden; }
.hero-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1s ease; background-size:cover; background-position:center 62%; }
.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:150px;
  left:max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
  right:var(--pad);
}
.hero-copy .eyebrow{ color:#fff; }
.hero-copy h1{ max-width:12ch; text-wrap:balance; }

.hero-ui{
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); z-index:5;
  display:flex; justify-content:space-between; align-items:center; padding:0 22px;
  pointer-events:none;
}
.hero-ui .hero-arrow{ pointer-events:auto; }
.hero-count{ display:none; }
.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:62vh; min-height:420px; }
  .hero-copy{ bottom:300px; left:var(--pad); }
  .hero-ui{ padding:0 10px; }
  .hero-ui .hero-arrow{ width:40px; height:40px; }
}

/* ============================================================
   BOOKING BAR — slim strip riding the hero's bottom edge
   ============================================================ */
.booking{ position:absolute; left:0; right:0; bottom:32px; z-index:20; padding-inline:var(--pad); }
.hero .booking, .page-hero .booking{ margin:0; }
.booking-in{
  max-width:1060px; 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){
  /* mobile: the bar hangs off the bottom of the hero, a quarter on the photo, three quarters below.
     Only heroes that carry a booking bar need the clearance below. */
  .hero, .page-hero--booking{ overflow:visible !important; margin-bottom:220px; }
  .booking{ bottom:0; transform:translateY(75%); 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 100%; }
  .bk-field:nth-child(3)::before{ display:none; }
  .bk-cta{ flex:1 1 100%; border-top:1px solid var(--hairline); padding:17px 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; }
@media (max-width:720px){
  .rooms-head{ flex-direction:column; align-items:flex-start; gap:22px; }
  .rooms-head h2{ max-width:none; }
}
.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));
  scroll-padding-inline: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 1fr; gap:14px; 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:3/4; margin-top:16%;
  background:linear-gradient(160deg,#cbb9a9,#96806e); background-size:cover; background-position:center;
}
.amen-visual .im-b--wide{ aspect-ratio:5/3; margin-top:26%; }
.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:min(78vh,820px); 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); }
.explore + .mtc{ margin-top:0; }   /* explore runs straight into the 2027 section */
.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-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--grid{
  display:grid; grid-template-columns:1fr 1fr; gap:26px 32px;
  max-width:560px; border-bottom:0; text-align:left; position:relative;
}
.cf-field{ border-bottom:1px solid var(--ink); }
.cf-field input{ width:100%; }
.connect-form--grid .cf-submit{
  grid-column:1 / -1; justify-self:center; margin-top:14px;
  background:none; border:0; cursor:pointer; padding:12px 10px;
  font:600 13px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--brown);
}
.connect-form--grid .cf-submit:hover{ color:#94593c; }
@media (max-width:640px){
  .connect-form--grid{ grid-template-columns:1fr; gap:22px; }
}
.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{ margin-top:var(--gap); }
/* two small squares top-left, a wide shot under them, one tall image on the right */
.strip-mosaic{
  display:grid; gap:12px;
  grid-template-columns:1fr 1fr 2fr; grid-template-rows:auto auto;
}
.strip-mosaic .sm{
  display:block; background:linear-gradient(150deg,#d9d2ca,#a89a8c);
  background-size:cover; background-position:center; transition:opacity .3s ease;
}
.strip-mosaic .sm:hover{ opacity:.92; }
.strip-mosaic .sm-1{ grid-column:1; grid-row:1; aspect-ratio:1/1; }
.strip-mosaic .sm-2{ grid-column:2; grid-row:1; aspect-ratio:1/1; }
.strip-mosaic .sm-wide{ grid-column:1 / 3; grid-row:2; aspect-ratio:3/2; }
.strip-mosaic .sm-big{ grid-column:3; grid-row:1 / 3; }
.strip-cta{ text-align:center; margin-top:clamp(28px,4vw,44px); }
.btn-ghost{ background:transparent; color:var(--brown); border:1px solid var(--brown); }
.btn-ghost:hover{ background:var(--brown); color:#fff; }
@media (max-width:720px){
  .strip-mosaic{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto auto; }
  .strip-mosaic .sm-wide{ grid-column:1 / 3; grid-row:2; }
  .strip-mosaic .sm-big{ grid-column:1 / 3; grid-row:3; aspect-ratio:4/5; }
}

/* ============================================================
   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,.5); 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.8; }
.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 .ft-copy{ color:rgba(255,255,255,.55); }
.ft-legal{ margin-top:52px; flex-wrap:wrap; 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; justify-items:center; text-align:center; }
  .ft-logo img{ margin:0 auto; }
  .ft-links{ align-items:center; }
  .ft-contact{ align-items:center; }
  .ft-contact a{ justify-content:center; }
  .ft-social{ justify-content:center; }
  .ft-by{ justify-content:center; }
  .ft-by::before{ width:1px; flex:1; }
  .ft-legal{ flex-direction:column; align-items:center; gap:12px; }
}

/* ============================================================
   INTERIOR PAGE HERO — short image band with page title
   ============================================================ */
.page-hero{ position:relative; height:100vh; height:100dvh; min-height:640px; overflow:hidden; }
.page-hero .ph-img{ position:absolute; inset:0; background-size:cover; background-position:center 62%; }
.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:150px; }

/* ============================================================
   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; } }

@media (max-width:720px){
  .page-hero{ height:62vh; min-height:420px; }
  .page-hero .hero-copy{ bottom:48px; }
}

/* ============================================================
   GALLERY — two-column masonry, native aspect ratios
   ============================================================ */
.gal{ columns:3; column-gap:25px; }
.gal img{
  display:block; width:100%; height:auto; margin-bottom:25px;
  break-inside:avoid; cursor:zoom-in;
}
@media (max-width:1000px){ .gal{ columns:2; } }
@media (max-width:640px){ .gal{ columns:1; } }

/* Gallery lightbox */
.lb{
  position:fixed; inset:0; z-index:200; background:rgba(20,22,28,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.lb.open{ opacity:1; pointer-events:auto; }
.lb img{
  max-width:min(92vw,1400px); max-height:88vh; display:block;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
}
.lb button{
  appearance:none; background:none; border:0; cursor:pointer; color:#fff;
  position:absolute; padding:18px; opacity:.75; transition:opacity .2s ease;
}
.lb button:hover{ opacity:1; }
.lb .lb-close{ top:14px; right:14px; font:300 34px/1 var(--sans); }
.lb .lb-prev, .lb .lb-next{ top:50%; transform:translateY(-50%); font:300 44px/1 var(--sans); }
.lb .lb-prev{ left:10px; } .lb .lb-next{ right:10px; }
.lb .lb-count{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  color:#fff; font:500 12px/1 var(--sans); letter-spacing:.14em; opacity:.7;
}
@media (max-width:640px){ .lb .lb-prev, .lb .lb-next{ font-size:34px; padding:14px; } }

/* 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:0; transform:translateX(50%); }
.tl-right .tl-dot{ left:0; transform:translateX(-50%); }
.tl-major .tl-dot{ background:var(--brown); width:13px; height:13px; }

.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:20px; display:flex;
}
.tl-photo img{
  display:block; width:100%; max-width:400px; height:auto;
}
.tl-photo--sm img{ max-width:190px; }
.tl-left .tl-photo{ justify-content:flex-end; }

/* Betty Boop pop-in — springs up when the entry reveals */
.tl-photo--pop img{
  max-width:95px;
  opacity:0; transform:scale(.2) rotate(-8deg); transform-origin:50% 90%;
}
.tl-entry.in .tl-photo--pop img{
  animation:tlPop .65s cubic-bezier(.34,1.56,.64,1) .25s both;
}
@keyframes tlPop{
  from{ opacity:0; transform:scale(.2) rotate(-8deg); }
  to{ opacity:1; transform:scale(1) rotate(0); }
}
@media (prefers-reduced-motion: reduce){
  .tl-photo--pop img{ opacity:1; transform:none; }
  .tl-entry.in .tl-photo--pop img{ animation:none; }
}

.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{ left:7px; right:auto; transform:translateX(-50%); }
  .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:100vh; height:100dvh; min-height:640px;
  background-size:cover; background-position:center 62%;
}
.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); }


/* ============================================================
   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; }

/* Site map */
.sitemap-list{ list-style:none; display:flex; flex-direction:column; gap:22px; }
.sitemap-list a{
  text-decoration:none; font:600 13px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink); transition:color .2s ease;
}
.sitemap-list a:hover{ color:var(--brown); }

/* ============================================================
   ROOMS SPLIT — text left, room carousel right (homepage)
   ============================================================ */
.rooms-split{ display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(36px,5vw,72px); align-items:center; }
.rooms-copy h2{ margin:14px 0 18px; }
.rooms-copy p{ margin-bottom:26px; }
.rooms-carousel{ min-width:0; }
.rc-frame{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.rc-slides{ display:flex; height:100%; transition:transform .5s ease; }
.rc-slide{
  flex:0 0 100%; height:100%; display:block;
  background-size:cover; background-position:center;
}
.rc-frame .hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; }
.rc-prev{ left:14px; } .rc-next{ right:14px; }
.rooms-carousel{ position:relative; }
.rc-caption{
  position:absolute; left:26px; bottom:22px; z-index:3; margin:0; text-align:left;
  font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.rooms-carousel .hero-arrow{
  width:40px; height:40px; border:0; background:rgba(255,255,255,.88);
}
.rooms-carousel .hero-arrow:hover{ background:#fff; }
.rooms-carousel .hero-arrow svg{ stroke:var(--ink); }
@media (max-width:880px){
  .rooms-split{ grid-template-columns:1fr; gap:30px; }
  .rc-frame .hero-arrow{ width:44px; height:44px; }
}

/* Hotel policies page */
.policy-body{ text-align:left; }
.pol-sec{ max-width:860px; }
.pol-updated{ font:600 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:rgba(48,48,48,.55); margin-bottom:clamp(36px,5vw,52px); }
.pol-sec{ margin-bottom:clamp(44px,6vw,64px); }
.pol-sec h2{ font:400 clamp(26px,3vw,34px)/1.2 var(--serif); margin-bottom:22px; }
.pol-sec h3{
  font:600 12.5px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--brown); margin:34px 0 12px;
}
.pol-sec p{ margin-bottom:14px; }
.pol-sec ul{ list-style:disc; margin:0 0 14px 20px; display:flex; flex-direction:column; gap:8px; }
.pol-contact a{ color:var(--brown); }

/* ===== v31: homepage breakout sections ===== */

/* Breakout grids: track widths derive from --max so the margin toggle
   moves the whole page coherently */
@media (min-width:881px){
  .breakout-right{
    display:grid; align-items:center; column-gap:0;
    grid-template-columns:
      minmax(var(--pad),1fr)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .34))
      clamp(36px,5vw,72px)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .60))
      minmax(0,1fr);
  }
  .breakout-right > .rooms-copy{ grid-column:2; }
  .breakout-right > .rooms-carousel{ grid-column:4 / 6; }
  .breakout-right .rc-frame{ aspect-ratio:auto; height:clamp(560px,68vh,760px); }

  .breakout-left{
    display:grid; align-items:center; column-gap:0;
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .60))
      clamp(36px,5vw,72px)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .34))
      minmax(var(--pad),1fr);
  }
  .breakout-left > .amen-visual{ grid-column:1 / 3; }
  .breakout-left > .amen-copy{ grid-column:4; }
}
@media (max-width:880px){
  .breakout-right,.breakout-left{ display:block; padding-inline:var(--pad); }
  .breakout-right > .rooms-copy{ margin-bottom:30px; }
  .breakout-left > .amen-visual{ max-width:480px; margin-bottom:30px; }
}

/* Clean right edge on the amenities column: plus indicators flush with the hairlines */
.amen-copy .acc-btn{ padding-inline:0; }
.amen-copy .acc-panel ul{ padding-inline:0; }
.amen-copy .acc-panel li{ padding-left:24px; }
.amen-copy .acc-panel li::before{ left:0; }


/* ===== Booking calendar redesign (two months, square cells, nightly rates) ===== */
.flatpickr-calendar.stm-cal{
  background:#fff; border:1px solid rgba(48,48,48,.12); border-radius:0;
  box-shadow:0 24px 60px rgba(48,48,48,.18);
  padding:22px 24px 16px; width:auto;
}
.stm-cal:before,.stm-cal:after{ display:none; }       /* no caret */
.stm-cal .flatpickr-months{ position:relative; width:708px; margin:0 auto 14px; justify-content:center; }
.stm-cal .flatpickr-month{ height:30px; width:336px; flex:0 0 336px; }
.stm-cal .flatpickr-month + .flatpickr-month{ margin-left:36px; }
.stm-cal .flatpickr-current-month{
  font:600 13px/30px var(--sans); letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); padding:0;
}
.stm-cal .flatpickr-current-month .numInputWrapper{ width:auto; }
.stm-cal .flatpickr-current-month .numInputWrapper span{ display:none; }
.stm-cal .flatpickr-current-month input.cur-year{ font:inherit; color:inherit; font-weight:400; width:4.5ch; padding:0 0 0 6px; }
.stm-cal .flatpickr-prev-month,.stm-cal .flatpickr-next-month{
  top:-3px; height:34px; padding:0 10px; display:flex; align-items:center;
}
.stm-cal .flatpickr-prev-month.flatpickr-prev-month{ left:-48px; }
.stm-cal .flatpickr-next-month.flatpickr-next-month{ right:-48px; }
.stm-cal .flatpickr-prev-month svg,.stm-cal .flatpickr-next-month svg{ display:none; }
.stm-cal .flatpickr-prev-month::after{ content:"\2039"; }
.stm-cal .flatpickr-next-month::after{ content:"\203A"; }
.stm-cal .flatpickr-prev-month::after,.stm-cal .flatpickr-next-month::after{
  font:600 26px/1 var(--sans); color:var(--ink);
}
.stm-cal .flatpickr-prev-month:hover::after,.stm-cal .flatpickr-next-month:hover::after{ color:#AA6A4B; }
.stm-cal .flatpickr-prev-month.flatpickr-disabled{ display:flex; opacity:.22; pointer-events:none; }

.stm-cal .flatpickr-innerContainer{ display:flex; justify-content:center; }
.stm-cal .flatpickr-weekdaycontainer + .flatpickr-weekdaycontainer{ margin-left:36px; }
.stm-cal .flatpickr-weekday{
  font:600 10px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase;
  color:rgba(48,48,48,.5);
}
.stm-cal .dayContainer{ width:336px; min-width:336px; max-width:336px; }
.stm-cal .dayContainer + .dayContainer{ box-shadow:none; margin-left:36px; }
.stm-cal .flatpickr-days{ width:auto !important; }

.stm-cal .flatpickr-day{
  width:46px; max-width:46px; height:52px; line-height:1; margin:1px 0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  border:0;
  font:600 13px/1 var(--sans); color:var(--ink);
}
/* square cells in every state */
.stm-cal .flatpickr-day,
.stm-cal .flatpickr-day.inRange,
.stm-cal .flatpickr-day.selected,
.stm-cal .flatpickr-day.startRange,
.stm-cal .flatpickr-day.endRange,
.stm-cal .flatpickr-day.selected.startRange,
.stm-cal .flatpickr-day.selected.endRange,
.stm-cal .flatpickr-day.startRange.startRange,
.stm-cal .flatpickr-day.endRange.endRange{ border-radius:0 !important; }

.stm-cal .flatpickr-day.flatpickr-disabled{ opacity:.25; }
.stm-cal .flatpickr-day.prevMonthDay,.stm-cal .flatpickr-day.nextMonthDay{ visibility:hidden; }
.stm-cal .flatpickr-day:hover{ background:var(--ink); color:#fff; }
.stm-cal .flatpickr-day.inRange{ background:#F9F3F0; box-shadow:none; }
.stm-cal .flatpickr-day.startRange,.stm-cal .flatpickr-day.endRange,.stm-cal .flatpickr-day.selected{
  background:var(--ink); color:#fff;
}
.stm-cal .flatpickr-day.endRange::after{
  content:"checkout"; font:500 8px/1 var(--sans); letter-spacing:.05em; color:rgba(255,255,255,.85);
}
/* custom guests selector */
button.bk-input.sg-trigger{
  background:none; border:0; padding:0; width:100%; text-align:left; cursor:pointer;
  appearance:none; display:flex; align-items:center; justify-content:space-between;
}
button.sg-trigger::after{ content:"\2304"; font-size:14px; line-height:1; color:var(--ink); margin:-6px 2px 0 12px; }
.stm-guests{
  position:absolute; z-index:99998; width:300px; display:none;
  background:#fff; border:1px solid rgba(48,48,48,.12);
  box-shadow:0 24px 60px rgba(48,48,48,.18); padding:6px 22px;
}
.stm-guests.open{ display:block; }
.stm-guests .sg-row{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.stm-guests .sg-row + .sg-row{ border-top:1px solid rgba(48,48,48,.12); }
.sg-lab{ display:block; font:600 11px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--ink); }
.sg-sub{ display:block; margin-top:5px; font:400 11px/1 var(--sans); color:rgba(48,48,48,.5); }
.sg-step{ display:flex; align-items:center; gap:12px; }
.sg-btn{
  width:30px; height:30px; border:1px solid rgba(48,48,48,.35); background:#fff; color:var(--ink);
  font:400 16px/1 var(--sans); cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.sg-btn:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.sg-btn:disabled{ opacity:.3; pointer-events:none; }
.sg-val{ min-width:22px; text-align:center; font:600 14px/1 var(--sans); color:var(--ink); }

@media (max-width:899px){
  .stm-cal .flatpickr-months{ width:336px; }
}
@media (max-width:600px){
  .stm-cal{
    position:fixed !important; top:50% !important; left:50% !important;
    transform:translate(-50%,-50%); width:calc(100vw - 28px) !important;
    max-height:calc(100dvh - 90px); overflow:auto;
    padding:22px 10px 12px; z-index:100000;
  }
  .stm-cal .flatpickr-months{ width:calc(100% - 96px); }
  .stm-cal .flatpickr-month{ width:100%; flex:1 1 auto; }
  .stm-cal .flatpickr-prev-month.flatpickr-prev-month{ left:-34px; }
  .stm-cal .flatpickr-next-month.flatpickr-next-month{ right:-34px; }
  .stm-cal .flatpickr-innerContainer{ display:block; }
  .stm-cal .flatpickr-days{ width:100% !important; }
  .stm-cal .dayContainer{ width:100%; min-width:0; max-width:none; }
  .stm-cal .flatpickr-day{ width:calc(100% / 7); max-width:none; height:50px; }
  .stm-guests{
    position:fixed !important; top:50% !important; left:50% !important;
    transform:translate(-50%,-50%); width:calc(100vw - 28px); z-index:100000;
  }
}

/* ===== Booking calendar: compact variant for room-page cards (one month, card width) ===== */
.stm-cal.stm-cal--small{ padding:16px 14px 12px; }
.stm-cal--small .flatpickr-months{ width:calc(100% - 72px); }
.stm-cal--small .flatpickr-month{ width:100%; flex:1 1 auto; }
.stm-cal--small .flatpickr-prev-month.flatpickr-prev-month{ left:-34px; }
.stm-cal--small .flatpickr-next-month.flatpickr-next-month{ right:-34px; }
.stm-cal--small .flatpickr-innerContainer{ display:block; }
.stm-cal--small .flatpickr-days{ width:100% !important; }
.stm-cal--small .dayContainer{ width:100%; min-width:0; max-width:none; }
.stm-cal--small .flatpickr-day{ width:calc(100% / 7); max-width:none; height:44px; }


/* ===== v31: rooms-page card carousel (arrows only, no counter) ===== */
.rv-media{ position:relative; aspect-ratio:4/3; overflow:hidden; margin-bottom:18px; background:#efe9e5; }
.rv-media .rv-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity .45s ease;
}
.rv-media .rv-slide.active{ opacity:1; }
.rv-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:40px; height:40px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(255,255,255,.88); display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.rv-nav:hover{ background:#fff; }
.rv-nav.prev{ left:12px; }
.rv-nav.next{ right:12px; }
.rv-nav svg{ width:17px; height:17px; stroke:var(--ink); fill:none; stroke-width:1.8; }
.rv-card h3 a{ color:inherit; text-decoration:none; }
.rv-card h3 a:hover{ color:var(--brown); }

.phone{ white-space:nowrap; }

.intro h1{ font-size:var(--h2); letter-spacing:-.005em; max-width:11ch; }

/* page titles that live below a clean hero */
h1.h2{ font-size:var(--h2); letter-spacing:-.005em; }
.lede-sub{ margin-top:14px; font:400 19px/1.35 var(--serif); color:rgba(48,48,48,.78); }
.page-title{ text-align:center; max-width:640px; margin:0 auto clamp(36px,5vw,56px); }
.page-title .eyebrow{ justify-content:center; }
.page-title h1{ margin-bottom:12px; }
.page-title p{ color:rgba(48,48,48,.74); }

/* a clean hero (no text) runs closer to the title that replaces it */
.page-hero + .section{ margin-top:clamp(44px,6vw,72px); }
@media (max-width:720px){ .page-hero + .section{ margin-top:clamp(28px,5vw,44px); } }


/* room-page rail: arrows ride the rail, centered on its edges */
.rg-wrap{ position:relative; }
.rg-wrap .rail-ui{
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  justify-content:space-between; padding:0 22px; pointer-events:none;
}
.rg-wrap .rail-btn{ pointer-events:auto; border-color:rgba(255,255,255,.75); background:rgba(0,0,0,.08); }
.rg-wrap .rail-btn:hover{ border-color:#fff; background:rgba(0,0,0,.2); }
.rg-wrap .rail-btn svg{ stroke:#fff; }
@media (max-width:720px){ .rg-wrap .rail-ui{ padding:0 10px; } .rg-wrap .rail-btn{ width:40px; height:40px; } }

/* ============================================================
   GREY FOX — Rooms filter bar (new component, tokens only)
   ============================================================ */
.rf-wrap{ margin-top:38px; }
.rf-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; }
.rf-group{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.rf-div{ width:1px; align-self:stretch; min-height:38px; background:var(--hairline); margin:0 12px; }
.rf-chip{
  font:600 11px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  padding:12px 16px; background:none; border:1px solid var(--hairline);
  color:rgba(48,48,48,.8); cursor:pointer;
  transition:border-color .25s ease, color .25s ease, background .25s ease;
}
.rf-chip:hover{ border-color:var(--brown); color:var(--brown); }
.rf-chip.active{ background:var(--brown); border-color:var(--brown); color:#fff; }
.rf-empty{ margin-top:30px; font-size:14.5px; color:rgba(48,48,48,.74); }
.rv-card.rf-hide{ display:none; }
@media (max-width:680px){
  .rf-bar{ align-items:flex-start; }
  .rf-div{ flex-basis:100%; width:auto; min-height:0; height:1px; margin:4px 0; }
}

/* ============================================================
   GREY FOX — Header text wordmark (replaces image logo)
   ============================================================ */
.logo-text{
  width:auto; min-height:60px; display:inline-flex; align-items:center;
  font:400 clamp(17px, 2vw, 23px)/1 var(--serif);
  letter-spacing:.18em; text-transform:uppercase; white-space:nowrap;
  color:#fff; text-decoration:none; transition:color .35s ease;
}
.header.solid .logo-text, .nav-open .logo-text{ color:var(--ink); }
@media (max-width:880px){ .logo-text{ width:auto; min-height:41px; } }

/* ============================================================
   GREY FOX — Amenities page (am-row mirrors the homepage
   breakout split; carousel reuses rc-frame/rc-slide + hero-arrow)
   ============================================================ */
.hero-copy--center{ left:var(--pad); right:var(--pad); text-align:center; }
.hero-copy--center .eyebrow{ justify-content:center; }
.hero-copy--center h1{ max-width:none; }

.am-intro{ max-width:640px; margin:0 auto; text-align:center; }
.am-intro p{ font-size:17px; }

.am-copy h2{ margin:14px 0 18px; }
.am-copy p{ margin-bottom:22px; }
.am-copy p:last-child, .am-copy ul:last-child{ margin-bottom:0; }
.am-carousel{ position:relative; min-width:0; }
.am-carousel .hero-arrow{ width:40px; height:40px; border:0; background:rgba(255,255,255,.88); }
.am-carousel .hero-arrow:hover{ background:#fff; }
.am-carousel .hero-arrow svg{ stroke:var(--ink); }

.am-list{ list-style:none; padding:0; margin:0 0 22px; }
.am-list li{ padding:7px 0 7px 26px; position:relative; font-size:15px; color:rgba(48,48,48,.82); }
.am-list li::before{ content:""; position:absolute; left:2px; top:16px; width:12px; height:1px; background:var(--bronze); }

@media (min-width:881px){
  .am-row{
    display:grid; align-items:center; column-gap:0;
    grid-template-columns:
      minmax(var(--pad),1fr)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .34))
      clamp(36px,5vw,72px)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .60))
      minmax(0,1fr);
  }
  .am-row > .am-copy{ grid-column:2; grid-row:1; }
  .am-row > .am-carousel{ grid-column:4 / 6; grid-row:1; }
  .am-row--flip{
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .60))
      clamp(36px,5vw,72px)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .34))
      minmax(var(--pad),1fr);
  }
  .am-row--flip > .am-carousel{ grid-column:1 / 3; grid-row:1; }
  .am-row--flip > .am-copy{ grid-column:4; grid-row:1; }
  .am-row .rc-frame{ aspect-ratio:auto; height:clamp(560px,68vh,760px); }
}
@media (max-width:880px){
  .am-row{ display:block; padding-inline:var(--pad); }
  .am-row > .am-carousel{ margin-bottom:30px; }
  .am-row .rc-frame{ aspect-ratio:16/11; }
}

.inroom{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); margin-top:30px; }
.inroom h3{ margin-bottom:12px; }
@media (max-width:720px){ .inroom{ grid-template-columns:1fr; gap:34px; } }

.am-closer{ text-align:center; max-width:680px; margin:0 auto; }
.am-closer .eyebrow{ justify-content:center; }
.am-closer h2{ margin:14px 0 18px; }
.am-closer p{ margin-bottom:30px; }

/* Footer fox lockup: smaller than the default 200px ft-logo width */
.ft-logo--gf img{ width:160px; }

/* ============================================================
   GREY FOX — Homepage: centered dateline + dark condo callout
   ============================================================ */
.dateline--center div{ text-align:center; padding:26px 22px 0; }

.am-row--dark{
  background:var(--ink); color:rgba(255,255,255,.92);
  padding-block:clamp(70px,9vw,120px);
}
@media (min-width:881px){
  /* inset image: stops at the wrap boundary instead of bleeding to the edge */
  .am-row--dark{
    grid-template-columns:
      minmax(var(--pad),1fr)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .40))
      clamp(36px,5vw,72px)
      minmax(0,calc((var(--max) - 2*var(--pad)) * .54))
      minmax(var(--pad),1fr);
  }
  .am-row--dark > .am-copy{ grid-column:2; grid-row:1; }
  .am-row--dark > .am-carousel{ grid-column:4; grid-row:1; }
  .am-row--dark .rc-frame{ aspect-ratio:16/10; height:auto; }
}
.am-row--dark .am-copy h2{ color:#fff; }
.am-row--dark .eyebrow{ color:var(--almond); }
.am-row--dark .tlink{ color:#fff; border-color:rgba(255,255,255,.85); }
.am-row--dark .tlink:hover{ color:var(--almond); border-color:var(--almond); }

/* ============================================================
   GREY FOX — Room page gallery variants (split / single)
   ============================================================ */
.rg-split{ display:grid; grid-template-columns:1.55fr 1fr; gap:clamp(14px,2vw,26px); }
.rg-split > div{ background-size:cover; background-position:center; height:clamp(380px,54vh,620px); }
.rg-single{ background-size:cover; background-position:center; height:clamp(420px,58vh,680px); }
@media (max-width:720px){
  .rg-split{ grid-template-columns:1fr; }
  .rg-split > div{ height:auto; aspect-ratio:3/2; }
  .rg-single{ height:auto; aspect-ratio:3/2; }
}

/* ============================================================
   GREY FOX — About page
   ============================================================ */
.intro h1.wide{ max-width:none; }
.timeline{ flex-wrap:wrap; border-bottom:1px solid var(--hairline); padding-bottom:30px; margin-top:clamp(48px,7vw,96px); }
.timeline div{ border-right:0; margin-right:0; padding:30px 24px 0 0; }
.timeline span{ font:600 11.5px/1.7 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:rgba(48,48,48,.68); }
@media (max-width:760px){ .timeline div{ flex:0 0 50%; } }
@media (max-width:460px){ .timeline div{ flex:0 0 100%; } }

.ab-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:center; }
.ab-row > figure{ margin:0; position:relative; }
.ab-row .ab-img{ aspect-ratio:16/10; background-size:cover; background-position:center; }
.ab-row figcaption{ margin-top:10px; text-align:right; font:500 11px/1.4 var(--sans); letter-spacing:.1em; text-transform:uppercase; color:rgba(48,48,48,.55); }
.ab-row > .ab-copy h2{ margin:14px 0 18px; }
.ab-row > .ab-copy p{ margin-bottom:18px; }
.ab-row > .ab-copy p:last-child{ margin-bottom:0; }
.ab-row--flip > figure{ order:-1; }
@media (max-width:820px){
  .ab-row{ grid-template-columns:1fr; gap:28px; }
  .ab-row--flip > figure, .ab-row > figure{ order:-1; }
}
.ab-divider{ text-align:center; max-width:640px; margin:0 auto; }
.ab-divider h2{ margin-bottom:14px; }
.ab-divider p{ font-size:17px; }

.ab-dark{ background:var(--ink); color:rgba(255,255,255,.92); padding:clamp(70px,9vw,120px) var(--pad); text-align:center; }
.ab-dark .ab-dark-in{ max-width:640px; margin:0 auto; }
.ab-dark .eyebrow{ justify-content:center; color:var(--almond); }
.ab-dark h2{ color:#fff; margin:14px 0 18px; }
.ab-dark p{ margin-bottom:30px; }
.ab-dark .tlink{ color:#fff; border-color:rgba(255,255,255,.85); }
.ab-dark .tlink:hover{ color:var(--almond); border-color:var(--almond); }
.ab-row img.ab-img{ display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }

/* v14 tweaks: about intro width + centered timeline, amenities intro block */
.intro--wide{ grid-template-columns:1.22fr .78fr; }
.intro h2.wide{ max-width:none; }
.timeline div{ text-align:center; padding:30px 16px 0; }
.am-intro{ max-width:920px; }
.am-intro-sec + .section{ margin-top:calc(var(--gap) * .6); }

/* Centered page-hero titles sit at the bottom edge, same baseline as the room-page heroes */
.page-hero .hero-copy--center{ bottom:56px; }
@media (max-width:720px){ .page-hero .hero-copy--center{ bottom:40px; } }

/* Homepage intro heading: h2 scale so "Between the village" holds one line; natural wrap on small phones */
.intro h1.intro-h1{ font-size:var(--h2); max-width:none; letter-spacing:0; }
@media (max-width:520px){ .br-wide{ display:none; } }

/* Offers: two-card grid */
.of-grid--2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:720px){ .of-grid--2{ grid-template-columns:1fr; } }

/* Gallery preview: equal-height rows on the left column */
@media (min-width:721px){
  .strip-mosaic{ grid-template-rows:1fr 1fr; aspect-ratio:4 / 2.3; }
  .strip-mosaic .sm-1, .strip-mosaic .sm-2, .strip-mosaic .sm-wide{ aspect-ratio:auto; min-height:0; }
}
.room-main .room-grid > div > p a{ color:var(--brown); font-weight:600; text-decoration:none; }

/* Footer: push the first links column right so the logo→links gap is ~half the links→contact gap */
@media (min-width:881px){ .ft-tier > .ft-links:nth-child(2){ padding-left:90px; } }

/* Contact page */
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(36px,5vw,72px); align-items:start; text-align:left; }
.contact-map{ position:sticky; top:96px; }
.contact-map-embed{ display:block; width:100%; height:min(72vh,640px); min-height:420px; border:0; background:var(--parchment); }
.contact-block{ margin-bottom:clamp(32px,4vw,44px); }
.contact-block h2{ font:400 clamp(24px,2.6vw,30px)/1.2 var(--serif); margin-bottom:14px; }
.contact-block p{ margin-bottom:12px; }
.contact-block a{ color:var(--brown); font-weight:600; text-decoration:none; }
.contact-block a:hover{ text-decoration:underline; }
@media (max-width:880px){
  .contact-grid{ grid-template-columns:1fr; gap:34px; }
  .contact-info{ order:1; }
  .contact-map{ order:2; position:static; }
  .contact-map-embed{ height:60vh; min-height:360px; }
}
