/* ==========================================================================
   Rustic Pines — one responsive stylesheet.
   Desktop and mobile handoffs merged: every value below interpolates between
   the mobile design (430px) and the desktop design (1440px).
   ========================================================================== */

/* ---------- fonts ---------- */
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-Semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("/fonts/Gilroy-ExtraBold.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Quicksand";src:url("/fonts/Quicksand_Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Quicksand";src:url("/fonts/Quicksand_Book.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"Quicksand";src:url("/fonts/Quicksand_Bold.woff2") format("woff2");font-weight:600 700;font-style:normal;font-display:swap}

/* ---------- tokens ---------- */
:root{
  /* brand palette — exact values from the Rustic Pines design system */
  --rp-ink:#1E1A1E;
  --rp-platinum:#F0EEF1;
  --rp-pale:#BDBBBE;
  --rp-khaki:#ACA086;
  --rp-yellow:#FDFD34;
  --rp-bark:#786C52;
  --rp-stone:#7C7E81;
  --rp-forest:#1E3A2F;
  --rp-cream:#FAF2E0;
  --rp-white:#FFFFFF;
  --rp-mist:#E2E0E2;
  --rp-fog:#AAAAAA;
  --rp-shell:#E8E6E9;               /* section ground used between platinum blocks */

  --font-display:"Gilroy",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-heading:"Gilroy",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-body:"Quicksand",ui-sans-serif,system-ui,-apple-system,sans-serif;

  --scrim-hero:radial-gradient(745px 441px at 50% 43.55%,rgba(102,102,102,0) 0%,rgba(0,0,0,.2) 100%),
               linear-gradient(180deg,rgba(26,26,26,.8) 8.62%,rgba(26,26,26,0) 100%);
  --scrim-page:linear-gradient(180deg,rgba(30,26,30,.55) 0%,rgba(30,26,30,.12) 38%,rgba(30,26,30,.35) 100%);

  /* fluid scale: mobile value at 430px → desktop value at 1440px */
  --gutter:clamp(24px, 6.535vw - 4.1px, 90px);              /*  24 →  90 */
  --sec-y:clamp(60px, 3.96vw + 43px, 100px);                /*  60 → 100 */
  --fs-h1:clamp(36px, 5.149vw + 13.86px, 88px);             /*  36 →  88 */
  --lh-h1:clamp(40px, 5.545vw + 16.16px, 96px);
  --fs-h2:clamp(27px, 2.079vw + 18.06px, 48px);             /*  27 →  48 */
  --lh-h2:clamp(32px, 2.376vw + 21.78px, 56px);
  --fs-h3:clamp(20px, .297vw + 18.72px, 23px);
  --lh-h3:clamp(26px, .297vw + 24.72px, 29px);
  --fs-lede:clamp(16px, .396vw + 14.30px, 20px);            /*  16 →  20 */
  --lh-lede:clamp(22px, .99vw + 17.74px, 32px);
  --fs-body:clamp(15px, .198vw + 14.15px, 17px);
  --lh-body:clamp(24px, .396vw + 22.30px, 28px);
  --fs-contact-h2:clamp(25px, 1.881vw + 16.91px, 44px);     /*  25 →  44 */
  --lh-contact-h2:clamp(30px, 2.178vw + 20.63px, 52px);
  --fs-card-title:clamp(17px, .495vw + 14.87px, 22px);      /*  17 →  22 */

  --header-h:72px;
  --ease:cubic-bezier(.16,.6,.3,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--rp-platinum);color:var(--rp-ink);
  font-family:var(--font-body);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
[hidden]{display:none!important}
img,svg,video{display:block;max-width:100%}
/* <picture> carries the layout class; the image inside simply fills it. */
picture{display:block;min-width:0}
.rp-fill{width:100%;height:100%;object-fit:cover}
img{height:auto}
a{color:var(--rp-bark);text-decoration:none}
a:hover{opacity:.8}
h1,h2,h3,h4,p{margin:0;text-wrap:pretty}
button{font:inherit;color:inherit}
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid var(--rp-bark);outline-offset:3px;border-radius:2px;
}
.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;left:12px;top:-60px;z-index:300;background:var(--rp-bark);color:#fff;
  padding:10px 18px;border-radius:82px;font-family:var(--font-body);font-weight:600;
  font-size:12px;letter-spacing:1.4px;text-transform:uppercase;transition:top .2s;
}
.skip-link:focus{top:12px}

/* ---------- scroll reveal ---------- */
.rp-reveal{opacity:0;transform:translateY(26px);
  transition:opacity .9s ease,transform .9s var(--ease)}
.rp-in{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rp-reveal{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}

/* ---------- animation keyframes ---------- */
@keyframes rpSettle{from{transform:scale(1.10) translateY(-10px)}to{transform:none}}
@keyframes rpScrim{from{opacity:0}to{opacity:1}}
@keyframes rpRise{from{opacity:0;transform:translateY(26px);clip-path:inset(0 0 100% 0)}
                  to{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}}
@keyframes rpFade{from{opacity:0}to{opacity:1}}
@keyframes rpFadeDim{from{opacity:0}to{opacity:.45}}
@keyframes rpRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rpDrift{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

/* ---------- layout primitives ---------- */
.section{padding:var(--sec-y) var(--gutter)}
.section--flush{padding-left:0;padding-right:0}
.stack{display:flex;flex-direction:column}
.wrap{display:flex;align-items:flex-start;justify-content:space-between;
  gap:clamp(24px,3vw,60px);flex-wrap:wrap}
.wrap--end{align-items:flex-end}
.wrap--center{align-items:center}
.grow{flex:1 1 420px;min-width:0}

.eyebrow{display:flex;align-items:center;gap:14px;
  font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:2px;
  text-transform:uppercase;color:var(--rp-khaki)}
.eyebrow--bark{color:var(--rp-bark)}
.eyebrow--stone{color:var(--rp-stone)}
.eyebrow .rule{display:block;width:clamp(30px,3vw,50px);height:1.5px;background:var(--rp-khaki);flex:none}

h1,.h1{font-family:var(--font-heading);font-weight:300;font-size:var(--fs-h1);
  line-height:var(--lh-h1);letter-spacing:-.01em}
h2,.h2{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-h2);
  line-height:var(--lh-h2);color:var(--rp-bark)}
h3,.h3{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-h3);
  line-height:var(--lh-h3);color:var(--rp-bark)}
.lede{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-lede);
  line-height:var(--lh-lede);color:var(--rp-bark)}
.lede--stone{color:var(--rp-stone)}
.body{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-body);
  line-height:var(--lh-body);color:var(--rp-stone)}
.measure{max-width:60ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--rp-bark);border-radius:82px;background:transparent;cursor:pointer;
  padding:9px 20px 7px;font-family:var(--font-heading);font-weight:500;
  font-size:clamp(14px,.3vw + 12.7px,16px);line-height:1.3;letter-spacing:.03em;
  text-transform:uppercase;color:var(--rp-bark);white-space:nowrap;
  transition:background .25s,color .25s,border-color .25s;min-height:44px;
}
.btn:hover{background:var(--rp-bark);color:var(--rp-platinum);opacity:1}
.btn--solid{background:var(--rp-bark);color:var(--rp-platinum)}
.btn--solid:hover{background:transparent;color:var(--rp-bark)}
.btn--light{border-color:#fff;color:#fff}
.btn--light:hover{background:#fff;color:var(--rp-ink)}
.btn--sm{padding:8px 18px 6px;font-size:12.5px;letter-spacing:.08em}

/* A held home keeps its page and its links, but nothing on it may read "buy me now". */
.hold-pill{display:inline-block;vertical-align:middle;margin-left:14px;
  padding:5px 13px 4px;border-radius:82px;background:var(--rp-bark);color:var(--rp-cream);
  font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase}
.hold-note{margin:20px 0 0;max-width:760px;font-family:var(--font-heading);font-size:14px;
  line-height:23px;color:var(--rp-bark);text-wrap:pretty}
a.lot-row--hold{opacity:.72}
a.lot-row--hold:hover{opacity:1}

/* A home shown in renderings has to say so on the image, not only in the FAQ. */
.img-badge{position:absolute;left:12px;top:12px;z-index:3;pointer-events:none;
  padding:5px 11px 4px;border-radius:82px;background:rgba(30,26,30,.72);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-family:var(--font-body);font-weight:600;font-size:10px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-cream);white-space:nowrap}
.img-note{margin:18px 0 0;max-width:760px;font-family:var(--font-heading);font-size:13px;
  line-height:21px;color:var(--rp-stone);text-wrap:pretty}

/* ---------- legal pages (terms, privacy) ---------- */
.legal{display:flex;flex-direction:column;gap:clamp(28px,2.4vw + 17.7px,48px)}
.legal__head{display:flex;flex-direction:column;gap:14px;max-width:760px}
.legal h1{color:var(--rp-bark)}
.legal__date{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--rp-stone)}
.legal__toc{display:flex;flex-wrap:wrap;gap:8px 20px;padding:20px 0;
  border-top:1px solid rgba(30,26,30,.14);border-bottom:1px solid rgba(30,26,30,.14)}
.legal__toc a{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-bark);text-decoration:none}
.legal__toc a:hover{text-decoration:underline;text-underline-offset:3px}
.legal__body{display:flex;flex-direction:column;gap:clamp(26px,1.8vw + 18px,40px)}
/* scroll-margin so a TOC jump does not tuck the heading under the fixed header */
.legal__sec{scroll-margin-top:calc(var(--header-h) + 20px);
  display:flex;flex-direction:column;gap:12px;max-width:760px}
.legal__sec h2{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(22px,.9vw + 18px,28px);line-height:1.3;color:var(--rp-bark);text-wrap:pretty}
.legal__sec p{margin:0;font-family:var(--font-heading);font-weight:400;font-size:16px;
  line-height:27px;color:var(--rp-stone);text-wrap:pretty}

/* Newsletter actions: the decline sits beside Subscribe, centred on it, so the
   dismiss is easy to find without competing with the primary button. */
.news-actions{display:flex;align-items:center;gap:clamp(18px,2vw,28px);
  flex-wrap:wrap;padding-top:4px}
.news-decline{border:0;background:none;text-transform:none;letter-spacing:0;
  text-decoration:underline;text-underline-offset:3px;padding:0;min-height:44px;
  display:inline-flex;align-items:center}
.news-decline:hover{background:none;color:var(--rp-ink)}

/* ---------- FAQ ---------- */
.faq{max-width:900px;margin:0 auto;display:flex;flex-direction:column}
.faq__item{border-bottom:1px solid rgba(30,26,30,.14)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:24px;padding:clamp(20px,.9vw + 16px,28px) 0;
  font-family:var(--font-heading);font-weight:400;
  font-size:clamp(18px,.4vw + 16.3px,22px);line-height:1.36;color:var(--rp-bark);
  text-wrap:pretty}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:focus-visible{outline:2px solid var(--rp-bark);outline-offset:4px}
/* the sign is drawn, not typed, so it cannot be read aloud or selected */
.faq__sign{flex:0 0 auto;position:relative;width:18px;height:18px}
.faq__sign::before,.faq__sign::after{content:"";position:absolute;inset:50% 0 auto 0;
  height:1.5px;margin-top:-.75px;background:var(--rp-khaki);transition:transform .25s var(--ease)}
.faq__sign::after{transform:rotate(90deg)}
.faq__item[open] .faq__sign::after{transform:rotate(0)}
.faq__body{padding:0 0 30px;display:flex;flex-direction:column;gap:14px;max-width:800px}
.faq__body p{margin:0;font-family:var(--font-heading);font-weight:400;
  font-size:16px;line-height:27px;color:var(--rp-stone);text-wrap:pretty}

/* ---------- header ---------- */
/* Three header modes.
   default  — transparent over a dark page hero, frosting in on scroll (interior pages)
   --float  — always frosted, slides down past the home page's own hero bar
   --solid  — always frosted, for pages that open on a light section (listings, 404) */
.rp-header{
  position:fixed;top:0;left:0;right:0;z-index:60;box-sizing:border-box;
  background:transparent;border-bottom:1px solid transparent;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px var(--gutter);min-height:var(--header-h);
  transition:background .3s ease,border-color .3s ease;
}
.rp-header.is-on,.rp-header--float,.rp-header--solid{
  background:rgba(240,238,241,.72);border-bottom-color:rgba(120,108,82,.22);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);
}
/* Backdrop-filter is unevenly supported; without it 72% alpha is too sheer to read against. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .rp-header.is-on,.rp-header--float,.rp-header--solid{background:var(--rp-platinum)}
}
/* the home page carries its own bar inside the hero, so this one stays out of the way
   until the hero has scrolled by */
.rp-header--float{transform:translateY(-100%);transition:transform .45s var(--ease)}
.rp-header--float.is-on{transform:translateY(0)}
.rp-header__logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;color:#fff;padding:11px 8px}
.rp-header__logo svg{width:auto;height:clamp(22px,1.2vw + 16.8px,30px)}
.rp-header .btn{display:none;border-color:#fff;color:#fff}
@media (min-width:768px){.rp-header .btn{display:inline-flex}}
.rp-header .btn:hover{background:#fff;color:var(--rp-ink)}
.rp-header.is-on .rp-header__logo,.rp-header--float .rp-header__logo,
.rp-header--solid .rp-header__logo{color:var(--rp-bark)}
.rp-header.is-on .btn,.rp-header--float .btn,.rp-header--solid .btn{
  border-color:var(--rp-bark);color:var(--rp-bark)}
.rp-header.is-on .btn:hover,.rp-header--float .btn:hover,.rp-header--solid .btn:hover{
  background:var(--rp-bark);color:#fff}
.rp-header.is-on .burger span,.rp-header--float .burger span,
.rp-header--solid .burger span{background:var(--rp-bark)}
/* The header is out of flow now, so a page that opens on a light section has to
   reserve the space itself. Hero pages deliberately slide under it. */
.rp-header--solid ~ main{padding-top:var(--header-h)}

.burger{width:clamp(30px,1vw + 25.7px,40px);flex:none;display:flex;flex-direction:column;
  justify-content:center;gap:5.25px;background:none;border:none;cursor:pointer;padding:0;
  min-height:44px}
.burger span{display:block;width:100%;height:1.5px;background:#fff;
  transition:transform .3s var(--ease),opacity .2s}
.burger--light span{background:#fff}

/* ---------- nav overlay ---------- */
.nav-overlay{
  position:fixed;inset:0;z-index:100;background:rgba(26,26,26,.94);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:clamp(14px,2vw,36px);padding:80px var(--gutter) 40px;overflow-y:auto;
  animation:rpFade .25s ease-out both;
}
.nav-overlay[hidden]{display:none}
.nav-overlay a{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(26px,1.78vw + 18.3px,44px);line-height:1.28;color:var(--rp-platinum);
  text-align:center;padding:4px 0}
.nav-overlay a[aria-current="page"]{color:var(--rp-khaki)}
.nav-overlay__close{position:absolute;top:24px;right:var(--gutter);background:none;border:none;
  cursor:pointer;color:var(--rp-platinum);font-family:var(--font-body);font-weight:600;
  font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:12px}

/* ---------- home hero ---------- */
.hero{position:relative;height:clamp(520px,45.5vw + 324px,853px);overflow:hidden;
  background:var(--rp-ink)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  animation:rpSettle 6.5s var(--ease) both}
/* The promo reel layers over the hero photograph. The photograph stays in the DOM as
   the LCP element and as the fallback whenever the video does not run: no JS, reduced
   motion, Save-Data, a slow connection, or blocked autoplay. */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.hero__video.is-playing{opacity:1}
@media (prefers-reduced-motion:reduce){.hero__video{display:none}}
.hero__scrim{position:absolute;inset:0;background:var(--scrim-hero);animation:rpScrim 2.4s ease-out both}
.hero__bar{position:absolute;left:var(--gutter);right:var(--gutter);
  top:clamp(28px,2.4vw + 17.7px,52px);display:flex;align-items:center;justify-content:space-between;
  animation:rpFade 1.4s ease-out 1.8s both;z-index:2}
.hero__mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;color:#fff}
.hero__mark svg{height:clamp(40px,1.68vw + 32.8px,57px);width:auto}
.hero__bar .btn{display:none}
@media (min-width:768px){.hero__bar .btn{display:inline-flex}}
.hero__center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:26px;width:min(90%,540px);color:#fff}
.hero__center svg{width:100%;height:auto}
.hero__wordmark{animation:rpRise 1.8s var(--ease) .9s both;width:100%;margin:0;
  font-size:inherit;line-height:0}
.hero__rule{display:block;width:50px;height:1.5px;background:var(--rp-khaki);
  transform-origin:center;animation:rpRule 1.2s var(--ease) 2.2s both}
.hero__scroll{position:absolute;left:0;right:0;bottom:30px;text-align:center;
  animation:rpFade 1.6s ease-out 3s both}
.hero__scroll span{display:inline-block;font-weight:600;font-size:12px;letter-spacing:1.2px;
  line-height:16px;color:#fff;text-transform:uppercase;animation:rpDrift 4s ease-in-out 4.6s infinite}

/* ---------- interior page hero ---------- */
.page-hero{position:relative;min-height:clamp(320px,17.8vw + 243px,500px);display:flex;
  flex-direction:column;justify-content:center;
  padding:clamp(63px,8.6vw + 26px,150px) var(--gutter) clamp(24px,6.5vw - 4px,90px);
  overflow:hidden;background:var(--rp-ink)}
.page-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  animation:rpFadeDim 1.4s ease-out both}
.page-hero__img--full{animation-name:rpFade}
.page-hero__scrim{position:absolute;inset:0;background:var(--scrim-page)}
.page-hero__body{position:relative;z-index:1}
.page-hero h1{color:var(--rp-platinum);text-shadow:0 2px 40px rgba(30,26,30,.45)}
.page-hero p{margin-top:14px;max-width:700px;font-family:var(--font-heading);font-weight:400;
  font-size:var(--fs-lede);line-height:var(--lh-lede);color:var(--rp-platinum);
  text-shadow:0 2px 30px rgba(30,26,30,.5)}

/* ---------- interiors carousel (home) ----------
   One horizontal track, five cells. Each cell carries its words and its photograph
   together, so the phone gets a stacked slide and the desktop a two-column one out of
   the same markup, and both travel as one object. Every room stays in the DOM — nothing
   is built on scroll position, so search and answer engines still see all five.
   The marks under it are the control and the clock at once: filled means seen, the one
   filling is the dwell running out. Hovering freezes it; using an arrow ends it. */
.interiors{position:relative;background:#fff;padding:0 0 var(--sec-y)}
.car__win{overflow:hidden}
.car__track{display:flex;width:100%;transition:transform .82s var(--ease)}
.car__cell{flex:0 0 100%;display:flex;flex-direction:column;
  gap:clamp(14px,1.2vw + 8.8px,26px);padding:clamp(28px,2.6vw + 16px,48px) var(--gutter)}
/* flex:1 keeps the slack above the photograph rather than under it, so with JS off
   the picture still sits at the same height on every slide. Inert once the cell
   becomes a grid at 900px. */
.car__txt{display:flex;flex-direction:column;gap:clamp(14px,1.2vw + 8.8px,26px);flex:1 1 auto}
.car__body{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(15px,.396vw + 13.3px,19px);line-height:clamp(22px,.89vw + 18.2px,31px);
  color:var(--rp-bark);max-width:466px}
.car__pic{margin-inline:calc(var(--gutter) * -1)}
.car__img{display:block;width:100%;aspect-ratio:4/3;background:var(--rp-mist)}

.car__foot{display:flex;align-items:center;gap:14px;padding:0 var(--gutter)}
.car__ar{width:44px;height:44px;flex:none;border:1px solid rgba(120,108,82,.28);
  border-radius:50%;background:none;cursor:pointer;display:grid;place-items:center;
  color:var(--rp-bark);font-family:var(--font-heading);font-size:17px;line-height:1;
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.car__ar:hover{background:var(--rp-bark);border-color:var(--rp-bark);color:#fff}
.car__bars{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;
  margin-left:6px}
.car__seg{height:2px;padding:0;border:0;background:rgba(120,108,82,.18);
  position:relative;overflow:hidden;cursor:pointer}
.car__seg::after{content:"";position:absolute;inset:-14px 0}  /* a finger-sized target */
.car__seg i{display:block;height:100%;width:0;background:var(--rp-bark)}
.car__seg.is-done i{width:100%}
.car__seg.is-on i{animation:car-fill 5s linear forwards}
.car.is-held .car__seg.is-on i{animation-play-state:paused}
.car.is-manual .car__seg.is-on i{animation:none;width:100%}
@keyframes car-fill{from{width:0}to{width:100%}}
@media (min-width:900px){
  .interiors{padding-block:55px}
  .car__cell{display:grid;grid-template-columns:minmax(0,462px) 1fr;
    gap:clamp(32px,4vw,72px);align-items:center;padding:clamp(36px,5vh,72px) var(--gutter)}
  .car__pic{margin-inline:0}
  .car__img{aspect-ratio:auto;height:min(600px,calc(100vh - var(--header-h) - 44px))}
}
/* Motion turned down: no travel and no clock — the arrows still work. */
@media (prefers-reduced-motion:reduce){
  .car__track{transition:none}
  .car__seg.is-on i{animation:none;width:100%}
}

/* ---------- horizontal rails ---------- */
.rail{display:flex;gap:clamp(18px,4.75vw - 2.4px,60px);overflow-x:auto;
  scroll-snap-type:x mandatory;scroll-padding-left:var(--gutter);
  margin-inline:calc(var(--gutter) * -1);padding:4px var(--gutter) 12px;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.rail > *{scroll-snap-align:start;flex:0 0 auto}

/* ---------- home / listing card ---------- */
.home-card{
  position:relative;flex:0 0 min(300px,82vw);background:var(--rp-platinum);
  padding:22px;display:flex;flex-direction:column;gap:16px;
}
@media (min-width:900px){.home-card{flex-basis:538px;padding:49px}}
.home-card__media{position:relative;height:260px;overflow:hidden;background:var(--rp-mist)}
@media (min-width:900px){.home-card__media{height:414px}}
.home-card__pic{position:absolute;inset:0;width:100%;height:100%;
  opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1)}
.home-card__pic.is-on{opacity:1}
.home-card__pic.focus-bottom img{object-position:center bottom}
.home-card__badge{position:absolute;right:15px;top:15px;background:#fff;border-radius:53px;
  padding:7px 20px 5px;font-family:var(--font-heading);font-weight:500;font-size:13px;
  letter-spacing:.03em;text-transform:uppercase;color:var(--rp-bark);z-index:2}
.home-card__dots{position:absolute;left:50%;bottom:6px;z-index:6;transform:translateX(-50%);
  background:#fff;border-radius:16px;padding:0 2px;display:flex;gap:0;align-items:center}
.home-card__dots button{width:24px;height:24px;padding:0;border:none;cursor:pointer;
  background:none;display:grid;place-items:center}
.home-card__dots button::before{content:"";display:block;width:7px;height:7px;border-radius:50%;
  background:var(--rp-mist);transition:background .3s ease}
.home-card__dots button[aria-selected="true"]::before{background:var(--rp-khaki)}
.home-card__link{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.6);opacity:0;transition:opacity .25s ease;z-index:3}
.home-card:hover .home-card__link,.home-card__link:focus-visible{opacity:1}
.home-card__head{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
@media (min-width:900px){
  .home-card__head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px}
}
.home-card__head span{font-family:var(--font-heading);font-weight:600;
  font-size:clamp(17px,.495vw + 14.9px,22px);line-height:1.5;letter-spacing:.05em;color:var(--rp-bark)}
.home-card__addr{text-transform:uppercase}
.home-card__specs{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:4px 0}
@media (min-width:900px){.home-card__specs{display:flex;gap:20px}}
.spec{display:flex;flex-direction:column;gap:3px;padding-right:14px}
@media (min-width:900px){
  .spec{padding-right:20px;border-right:1px solid rgba(120,108,82,.1)}
  .spec:last-child{padding-right:0;border-right:0}
}
.spec__l{font-weight:500;font-size:10px;letter-spacing:1.5px;line-height:15px;
  color:var(--rp-bark);opacity:.5;text-transform:uppercase;white-space:nowrap}
.spec__v{font-family:var(--font-heading);font-weight:600;font-size:16px;line-height:22px;
  color:var(--rp-bark);white-space:nowrap}

/* ---------- fixture / catalogue cards ---------- */
.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  border-top:1px solid rgba(30,26,30,.12);border-bottom:1px solid rgba(30,26,30,.12);padding:16px 0}
.filters__label{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-stone)}
.finish-row{display:flex;gap:clamp(18px,1.4vw + 12px,32px);align-items:center;flex-wrap:wrap}
.finish{display:flex;align-items:center;gap:11px;background:none;border:none;padding:6px 0;
  cursor:pointer;min-height:44px}
.finish__sw{width:24px;height:24px;border-radius:50%;display:inline-block;
  border:1px solid rgba(30,26,30,.22);transition:box-shadow .25s ease;flex:none}
.finish[aria-pressed="true"] .finish__sw{
  box-shadow:0 0 0 2px var(--rp-platinum),0 0 0 3.5px var(--rp-bark)}
.finish__label{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.45;transition:opacity .25s ease}
.finish[aria-pressed="true"] .finish__label{opacity:1}

.tabs{display:flex;gap:clamp(20px,2.4vw + 9.7px,44px);align-items:flex-end;overflow-x:auto;
  margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) 2px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{cursor:pointer;background:none;border:none;padding:0 0 6px;text-align:left;white-space:nowrap;
  font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-bark);border-bottom:3px solid transparent;
  opacity:.4;transition:opacity .25s ease;min-height:40px}
.tab[aria-selected="true"]{opacity:1;border-bottom-color:var(--rp-bark)}

.fixture-grid{display:grid;gap:clamp(24px,2.6vw + 12.8px,56px) clamp(18px,2.2vw + 8.5px,40px);
  grid-template-columns:1fr}
@media (min-width:640px){.fixture-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.fixture-grid{grid-template-columns:repeat(3,1fr)}}
.fixture{display:flex;flex-direction:column;background:var(--rp-platinum)}
.fixture__media{height:clamp(200px,9.9vw + 157px,300px);background:#fff;
  padding:clamp(20px,.6vw + 17.4px,26px);display:flex;align-items:center;justify-content:center}
.fixture__media picture{width:100%;height:100%}
.fixture__media img{width:100%;height:100%;object-fit:contain}
.fixture__body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:11px;flex:1}
@media (min-width:1000px){.fixture__body{padding:26px 28px 30px;gap:13px}}
.fixture__meta{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-stone);line-height:1.5}
.fixture__desc{font-family:var(--font-heading);font-weight:400;font-size:15px;line-height:24px;
  color:var(--rp-stone);flex:1}
.fixture__foot{display:flex;align-items:center;gap:14px;padding-top:14px;
  border-top:1px solid rgba(30,26,30,.1);margin-top:4px;flex-wrap:wrap}
.fixture__sw{display:flex;gap:9px;align-items:center}
.fixture__sw{gap:0}
.fixture__sw span{width:18px;height:18px;border-radius:50%;display:inline-block;
  border:1px solid rgba(30,26,30,.22)}
.fixture__sw button{width:32px;height:32px;padding:0;border:0;background:none;cursor:pointer;
  display:grid;place-items:center}
.fixture__sw button::before{content:"";display:block;width:18px;height:18px;border-radius:50%;
  background:var(--sw,#ccc);border:1px solid rgba(30,26,30,.22)}
.fixture__sw button[aria-pressed="true"]::before{
  box-shadow:0 0 0 2px var(--rp-platinum),0 0 0 3px var(--rp-bark)}
.fixture__finish{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.3px;
  text-transform:uppercase;color:var(--rp-bark)}

/* ---------- lot table ---------- */
.lot-table{display:flex;flex-direction:column;overflow-x:auto;
  margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
.lot-row{display:grid;grid-template-columns:96px 1.2fr .8fr 1fr 1.2fr;align-items:center;
  min-width:640px;border-bottom:1px solid rgba(120,108,82,.16)}
.lot-row--head{background:var(--rp-bark);border:0}
.lot-row--head span{padding:18px 16px;font-weight:600;font-size:12px;line-height:1.4;
  letter-spacing:.7px;color:var(--rp-platinum);text-transform:uppercase}
.lot-row > *{padding:18px 16px;font-family:var(--font-heading);font-weight:400;
  font-size:clamp(15px,.198vw + 14.15px,17px);color:var(--rp-bark)}
.lot-row--head > *{padding:18px 16px}
@media (min-width:900px){
  .lot-row{grid-template-columns:130px 1.2fr .8fr 1fr 1.4fr}
  .lot-row > *{padding:24px 28px}
  .lot-row--head span{padding:23px 28px;font-size:13.9px}
}
a.lot-row{background:var(--rp-platinum);text-decoration:none}
a.lot-row:hover{background:#fff;opacity:1}
.lot-row--pending,.lot-row--sold{background:var(--rp-shell);
  border-bottom-color:rgba(120,108,82,.1)}
.lot-row--pending > *,.lot-row--sold > *{color:var(--rp-stone)}
.lot-row--pending{opacity:.7}
.lot-row--sold{opacity:.45}
.lot-row .lot,.lot-row .price{font-weight:600}
.lot-scroll-hint{font-family:var(--font-body);font-weight:600;font-size:10px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-stone);display:flex;align-items:center;gap:10px}
@media (min-width:900px){.lot-scroll-hint{display:none}}

/* ---------- upgrades ---------- */
.upgrade-featured{display:grid;gap:clamp(18px,1.2vw + 12.8px,28px);grid-template-columns:1fr}
@media (min-width:600px){.upgrade-featured{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.upgrade-featured{grid-template-columns:repeat(4,1fr)}}
.upgrade-featured a{display:flex;flex-direction:column;background:#fff;
  box-shadow:0 4px 30.2px rgba(0,0,0,.06);text-decoration:none}
.upgrade-featured img{width:100%;height:clamp(200px,9.9vw + 157px,280px);object-fit:cover}
.upgrade-featured picture{width:100%}
.upgrade-featured__body{display:flex;flex-direction:column;gap:9px;padding:24px}
.upgrade-featured__kicker{font-family:var(--font-body);font-weight:600;font-size:10px;
  letter-spacing:2.2px;text-transform:uppercase;color:var(--rp-khaki)}
.upgrade-featured__name{font-family:var(--font-heading);font-weight:400;font-size:21px;
  line-height:28px;color:var(--rp-bark)}
.upgrade-featured__sub{font-family:var(--font-heading);font-size:13px;line-height:20px;
  color:var(--rp-stone)}
.upgrade-featured__price{margin-top:6px;font-family:var(--font-heading);font-size:18px;
  color:var(--rp-bark)}

.upgrade-group{display:flex;flex-direction:column;background:var(--rp-platinum);
  box-shadow:0 4px 30.2px rgba(0,0,0,.06);scroll-margin-top:calc(var(--header - h) + 24px)}
@media (min-width:900px){.upgrade-group{flex-direction:row;align-items:stretch}}
.upgrade-group__pic{flex:0 0 46%;min-width:0;overflow:hidden;background:var(--rp-mist)}
.upgrade-group__pic picture{height:100%}
.upgrade-group__pic img{width:100%;height:100%;min-height:220px;object-fit:cover}
@media (min-width:900px){.upgrade-group__pic img{min-height:430px}}
.upgrade-group__body{flex:1;min-width:0;padding:28px var(--gutter) 32px;display:flex;
  flex-direction:column;gap:22px}
@media (min-width:900px){.upgrade-group__body{padding:36px 48px 38px}}
.upgrade-group__head{display:flex;gap:16px;align-items:flex-end}
.upgrade-group__head svg{flex:none;width:clamp(40px,1.2vw + 34.8px,52px);height:auto}
.upgrade-item{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  padding:11px 0;border-bottom:1px solid rgba(120,108,82,.3)}
.upgrade-item:last-child{border-bottom:0}
.upgrade-item__name{font-family:var(--font-heading);font-weight:500;font-size:15px;line-height:21px;
  color:var(--rp-bark)}
.upgrade-item__sub{font-family:var(--font-heading);font-size:12.5px;line-height:17px;
  color:var(--rp-stone)}
.upgrade-item__price{font-family:var(--font-heading);font-size:16px;line-height:24px;
  color:var(--rp-bark);white-space:nowrap}

/* ---------- location ---------- */
/* The map owns its own place list above 900px — the same breakpoint the map document
   uses to hide its column — so .times only appears once that column is gone. */
.map-block{display:flex;flex-direction:column;align-items:stretch}
.map-frame{position:relative;width:100%;height:clamp(420px,44vw + 232px,830px);
  overflow:hidden;background:var(--rp-cream);flex:1 1 auto;min-width:0}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-badge{position:absolute;left:20px;top:20px;background:rgba(240,238,241,.92);padding:9px 16px;
  z-index:5;pointer-events:none;font-family:var(--font-body);font-weight:600;font-size:11px;
  letter-spacing:1.6px;color:var(--rp-ink);text-transform:uppercase}
.times{flex:1 1 auto;padding:24px 26px 26px;display:flex;flex-direction:column;gap:20px;
  background:#fff}
@media (min-width:901px){.times{display:none}}
.times__group{display:flex;flex-direction:column;gap:8px}
.times__head{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px solid rgba(30,26,30,.18);padding-bottom:7px}
.times__head span{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--rp-bark)}
.times__head span:last-child{color:var(--rp-stone)}
.times__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0;
  border-bottom:1px solid rgba(30,26,30,.08)}
.times__row span:first-child{font-family:var(--font-heading);font-size:14.5px;line-height:21px;
  color:var(--rp-bark)}
.times__row span:last-child{font-family:var(--font-heading);font-weight:500;font-size:13.5px;
  line-height:21px;color:var(--rp-stone)}

.place-grid{display:grid;gap:clamp(28px,2.4vw + 17.7px,52px) clamp(18px,1.8vw + 10.3px,36px);
  grid-template-columns:1fr}
@media (min-width:560px){.place-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.place-grid{grid-template-columns:repeat(4,1fr)}}
.place{display:flex;flex-direction:column;gap:14px}
.place img{width:100%;height:clamp(190px,1.98vw + 181px,210px);object-fit:cover}
.place picture{width:100%}
.place__title{display:flex;align-items:baseline;gap:9px}
.place__n{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.3px;
  color:var(--rp-stone)}
.place__meta{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--rp-stone)}

/* nearby cards on the home page */
.nearby{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-left:var(--gutter);margin-inline:calc(var(--gutter) * -1);
  padding:0 var(--gutter) 8px}
.nearby > a{flex:0 0 min(300px,82vw);scroll-snap-align:start;display:flex;flex-direction:column;
  gap:14px;text-decoration:none;color:inherit}
.nearby img{width:100%;height:210px;object-fit:cover}
.nearby picture{width:100%}
@media (min-width:1000px){
  .nearby{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;overflow:visible;
    margin-inline:0;padding:0}
  .nearby > a{flex:none;gap:16px}
  .nearby img{height:300px}
}
.nearby__name{font-family:var(--font-heading);font-weight:500;font-size:var(--fs-card-title);
  color:var(--rp-bark)}
.nearby__meta{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:2px;
  text-transform:uppercase;color:var(--rp-stone)}

/* ---------- timeline ---------- */
.tl-totals{display:flex;gap:clamp(20px,3.6vw + 4.5px,56px);flex-wrap:wrap;padding-bottom:6px}
.tl-totals > span{display:flex;flex-direction:column;gap:6px}
.tl-totals > span + span{padding-left:clamp(20px,3.6vw + 4.5px,56px);
  border-left:1px solid rgba(120,108,82,.28)}
.tl-totals__l{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--rp-stone)}
.tl-totals__s{font-family:var(--font-heading);font-size:13px;line-height:18px;color:var(--rp-stone)}
.tl-totals__v{font-family:var(--font-heading);font-size:clamp(20px,.6vw + 17.4px,26px);
  color:var(--rp-bark)}

.tl-overview{overflow-x:auto;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
.tl-overview__inner{min-width:680px;display:flex;flex-direction:column}
.tl-months{display:grid;grid-template-columns:repeat(14,1fr);padding-bottom:9px}
.tl-months span{font-family:var(--font-body);font-weight:600;font-size:10.5px;letter-spacing:1.2px;
  color:var(--rp-stone)}
.tl-bars{display:grid;grid-template-columns:repeat(14,1fr);height:52px;
  border-top:1px solid rgba(120,108,82,.3)}
.tl-bar{display:flex;flex-direction:column;justify-content:center;padding-left:14px;gap:2px}
.tl-bar--contract{grid-column:1/span 2;background:var(--rp-khaki)}
.tl-bar--build{grid-column:3/span 12;background:var(--rp-ink)}
.tl-bar__k{font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:1.4px;
  text-transform:uppercase;color:rgba(255,255,255,.7)}
.tl-bar__v{font-family:var(--font-heading);font-size:17px;color:#fff}
.tl-co{display:grid;grid-template-columns:repeat(14,1fr);margin-top:18px}
.tl-co > div{grid-column:11/span 4;display:flex;flex-direction:column;gap:8px}
.tl-co span:first-child{height:22px;border:1px dashed var(--rp-khaki);
  background:repeating-linear-gradient(115deg,var(--rp-khaki) 0 1.5px,transparent 1.5px 11px)}
.tl-co span:last-child{font-family:var(--font-body);font-weight:600;font-size:10px;line-height:15px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--rp-stone);white-space:nowrap}
/* The cash band is the last two weeks of the two-month contract phase: a quarter of
   the first two of the fourteen month columns, so it needs a nested grid. */
.tl-co > .tl-cash__span{grid-column:1/span 2;display:grid;
  grid-template-columns:repeat(4,1fr);gap:0}
/* min-width:0 or the nowrap caption stretches the item past its track and the
   band stops reading as two weeks. The caption is free to overhang. */
.tl-cash__span > div{grid-column:4;min-width:0;display:flex;flex-direction:column;gap:8px}
.tl-marks{display:grid;grid-template-columns:repeat(14,1fr);margin-top:34px;
  border-top:1px solid rgba(120,108,82,.3);padding-top:22px}
.tl-marks > div{display:flex;flex-direction:column;gap:7px}
.tl-marks > div:nth-child(1){grid-column:1/span 2}
.tl-marks > div:nth-child(2){grid-column:3/span 5}
.tl-marks > div:nth-child(3){grid-column:11/span 4;text-align:right}
.tl-marks__n{font-family:var(--font-heading);font-weight:500;font-size:16px;color:var(--rp-bark)}
.tl-marks__d{font-family:var(--font-heading);font-size:13px;line-height:20px;color:var(--rp-stone)}


.tl-disclaimer{margin-top:26px;max-width:820px;font-family:var(--font-heading);
  font-size:13px;line-height:21px;color:var(--rp-stone);text-wrap:pretty}
.gantt{overflow-x:auto;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
.gantt__inner{min-width:760px;display:flex;flex-direction:column}
.gantt__head,.gantt__row{display:grid;grid-template-columns:300px 1fr 96px;align-items:center}
@media (min-width:1200px){.gantt__head,.gantt__row{grid-template-columns:340px 1fr 110px}}
.gantt__head{align-items:end;border-bottom:1.5px solid var(--rp-bark);padding-bottom:10px}
.gantt__wks{display:grid}
.gantt__wks span{font-family:var(--font-body);font-weight:600;font-size:10.5px;letter-spacing:1.3px;
  color:var(--rp-stone);padding-left:6px}
.gantt__row{border-bottom:1px solid rgba(120,108,82,.16);transition:opacity .35s ease}
.gantt__label{display:flex;align-items:flex-start;gap:14px;padding:20px 24px 20px 0}
.gantt__num{flex:none;margin-top:3px;font-family:var(--font-body);font-weight:700;font-size:11px;
  letter-spacing:1.3px;color:var(--rp-khaki)}
.gantt__name{font-family:var(--font-heading);font-weight:500;font-size:17px;line-height:24px;
  color:var(--rp-bark)}
.gantt__note{font-family:var(--font-heading);font-size:13px;line-height:20px;color:var(--rp-stone)}
.gantt__track{position:relative;display:grid;align-items:center;height:64px}
.gantt__track > .cell{grid-row:1;height:64px;border-left:1px solid rgba(120,108,82,.12)}
.gantt__track > .cell:last-of-type{border-right:1px solid rgba(120,108,82,.12)}
.gantt__fill{grid-row:1;height:10px;border-radius:2px;margin:0 2px;background:var(--rp-ink);
  transition:background .35s ease}
.gantt__mark{grid-row:1;justify-self:start;width:11px;height:11px;transform:rotate(45deg);
  margin-left:-5px;background:var(--rp-ink)}
.gantt__mark.is-key{background:var(--rp-yellow);box-shadow:0 0 0 1.5px var(--rp-ink)}
.gantt__dur{justify-self:end;font-family:var(--font-body);font-weight:600;font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--rp-stone)}
.gantt__foot{display:grid;grid-template-columns:300px 1fr 96px;align-items:center;
  background:var(--rp-cream);margin-top:12px}
@media (min-width:1200px){.gantt__foot{grid-template-columns:340px 1fr 110px}}
.gantt__foot > span:first-child{padding:18px 24px 18px 34px;font-family:var(--font-heading);
  font-weight:500;font-size:15px;line-height:22px;color:var(--rp-bark)}

/* ---------- listing page ---------- */
.crumb{font-weight:600;font-size:12px;letter-spacing:1.5px;line-height:16px;color:var(--rp-bark);
  text-transform:uppercase}
.crumb a{font-weight:400;display:inline-block;padding:6px 0}

.photo-grid{display:grid;gap:4px;grid-template-columns:1fr;position:relative}
.photo-grid picture{width:100%;height:100%}
.photo-grid img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;background:var(--rp-mist)}
.photo-grid > button{padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;position:relative}
.photo-grid > button:nth-child(1){aspect-ratio:3/2}
.photo-grid > button:nth-child(n+2){aspect-ratio:3/2}
@media (min-width:900px){
  .photo-grid{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;height:680px}
  .photo-grid > button{aspect-ratio:auto!important}
  .photo-grid > button:nth-child(1){grid-column:1;grid-row:1/span 2}
}
.photo-grid__nav{position:absolute;left:0;bottom:0;z-index:3;display:flex;gap:12px;padding:16px;
  pointer-events:none}
.photo-grid__all{position:absolute;right:0;bottom:0;z-index:3;padding:16px}
@media (min-width:900px){.photo-grid__nav,.photo-grid__all{padding:24px}}
.round-btn{pointer-events:auto;width:44px;height:44px;border-radius:50%;border:none;
  background:rgba(250,248,246,.92);color:var(--rp-bark);font-size:17px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,.12)}
.pill-btn{cursor:pointer;background:rgba(250,248,246,.94);border:none;border-radius:80px;
  padding:10px 20px 8px;font-family:var(--font-body);font-weight:600;font-size:12px;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--rp-bark);
  box-shadow:0 4px 18px rgba(0,0,0,.12);min-height:44px}

.price-head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(20px,2.4vw + 9.7px,40px);flex-wrap:wrap}
.price-head__price{font-family:var(--font-heading);font-weight:600;
  font-size:clamp(30px,1.386vw + 24.04px,44px);line-height:1.2;color:var(--rp-bark)}
.price-head__addr{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(16px,.594vw + 13.45px,22px);line-height:1.45;letter-spacing:.03em;
  text-transform:uppercase;color:var(--rp-bark)}
.price-specs{display:grid;grid-template-columns:repeat(2,auto);gap:16px 0}
@media (min-width:700px){.price-specs{display:flex;align-items:stretch}}
.price-specs > div{display:flex;flex-direction:column;gap:6px;
  padding:0 clamp(16px,1.98vw + 7.5px,36px)}
@media (min-width:700px){.price-specs > div{border-left:1px solid var(--rp-mist)}}
.price-specs__l{font-weight:600;font-size:11px;letter-spacing:1.5px;color:var(--rp-bark);
  opacity:.5;text-transform:uppercase;white-space:nowrap}
.price-specs__v{font-family:var(--font-heading);font-weight:600;
  font-size:clamp(20px,.594vw + 17.45px,26px);line-height:1.3;color:var(--rp-bark);white-space:nowrap}

.details-grid{display:grid;grid-template-columns:1fr;gap:0 55px}
@media (min-width:800px){.details-grid{grid-template-columns:1fr 1fr}}
.detail-row{display:flex;justify-content:space-between;gap:24px;padding:14px 0;
  border-bottom:1px solid rgba(120,108,82,.3)}
.detail-row dt{font-family:var(--font-heading);font-size:16px;color:var(--rp-stone)}
.detail-row dd{margin:0;font-family:var(--font-heading);font-weight:500;font-size:16px;
  color:var(--rp-bark);text-align:right}

.tour-box{flex:0 0 100%;background:var(--rp-shell);box-shadow:0 4px 30.2px rgba(0,0,0,.06);
  padding:clamp(24px,1.98vw + 15.5px,40px);display:flex;flex-direction:column;gap:24px}
@media (min-width:1000px){.tour-box{flex:0 0 420px}}
.field{display:flex;flex-direction:column;gap:8px}
.field > span{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.7}
.field input,.field textarea,.field select{
  width:100%;border:0;border-bottom:1px solid rgba(120,108,82,.5);background:transparent;
  padding:10px 0;font-family:var(--font-heading);font-size:16px;line-height:24px;
  color:var(--rp-ink);outline:none;border-radius:0}
.field input:focus,.field textarea:focus{border-bottom-color:var(--rp-bark)}
.field textarea{resize:vertical;min-height:56px}
.seg{display:flex;gap:12px;flex-wrap:wrap}
.seg button{flex:1 1 auto;border-radius:82px;cursor:pointer;padding:10px 18px 8px;
  font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.2px;
  text-transform:uppercase;border:1.5px solid rgba(120,108,82,.4);background:transparent;
  color:var(--rp-bark);transition:background .25s,color .25s,border-color .25s;min-height:44px}
.seg button[aria-pressed="true"]{background:var(--rp-bark);color:var(--rp-platinum);
  border-color:var(--rp-bark)}

.detail-cols{display:grid;grid-template-columns:1fr;gap:32px clamp(24px,3.6vw + 8.5px,60px)}
@media (min-width:700px){.detail-cols{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1050px){.detail-cols{grid-template-columns:repeat(3,1fr)}}
.detail-col{display:flex;flex-direction:column;gap:18px}
.detail-col__t{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:2.2px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.55}
.detail-col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;
  border-top:1px solid rgba(120,108,82,.3)}
.detail-col li{font-family:var(--font-heading);font-size:16px;line-height:24px;color:var(--rp-bark);
  padding:13px 0;border-bottom:1px solid rgba(120,108,82,.18)}
.detail-col li:last-child{border-bottom:0}

.calc{background:var(--rp-shell);box-shadow:0 4px 30.2px rgba(0,0,0,.06);
  padding:clamp(24px,2.4vw + 13.7px,48px) clamp(24px,2.8vw + 12px,52px);display:flex;
  flex-direction:column;gap:clamp(28px,4vw + 11.8px,70px)}
@media (min-width:1000px){.calc{flex-direction:row;align-items:flex-start}}
.calc__fields{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);
  gap:24px clamp(20px,2.4vw + 9.7px,40px)}
@media (min-width:640px){.calc__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
.calc__field{display:flex;flex-direction:column;gap:9px;min-width:0}
.calc__field > span{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.7}
.calc__input{display:flex;align-items:center;gap:8px;background:#fff;padding:11px 16px;
  min-width:0;box-sizing:border-box}
.calc__input span{font-family:var(--font-heading);font-size:17px;color:var(--rp-stone);flex:none}
.calc__input input,.calc__input select{border:0;background:transparent;outline:none;width:100%;
  min-width:0;font-family:var(--font-heading);font-size:17px;color:var(--rp-ink);border-radius:0}
.calc__split{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px}
.calc__out{flex:0 0 100%;background:#fff;padding:clamp(24px,1.6vw + 17.1px,40px);display:flex;
  flex-direction:column;gap:16px}
@media (min-width:1000px){.calc__out{flex:0 0 320px}}
.calc__total{font-family:var(--font-heading);font-weight:600;
  font-size:clamp(30px,1.19vw + 24.9px,42px);line-height:1.15;color:var(--rp-bark)}
.calc__line{display:flex;justify-content:space-between;gap:16px;padding:8px 0;
  border-bottom:1px solid rgba(120,108,82,.16);font-family:var(--font-heading);font-size:15px;
  color:var(--rp-stone)}
.calc__line b{font-weight:500;color:var(--rp-bark)}
.calc__note{font-family:var(--font-heading);font-size:12.5px;line-height:19px;color:var(--rp-stone)}

/* ---------- contact ---------- */
.contact{display:flex;flex-direction:column;align-items:stretch}
@media (min-width:900px){.contact{flex-direction:row;min-height:640px}}
.contact__img{flex:none;width:100%;height:260px;object-fit:cover}
@media (min-width:900px){.contact__img{flex:1;min-width:0;height:auto;align-self:stretch}}
.contact__body{flex:1 1 auto;min-width:0;padding:32px var(--gutter) 40px;display:flex;
  flex-direction:column;gap:clamp(20px,1.6vw + 13.1px,36px);background:var(--rp-bark);color:#fff}
@media (min-width:900px){.contact__body{flex:0 0 54%;padding:64px 64px 56px}}
.contact__body h2{color:#fff;font-size:var(--fs-contact-h2);line-height:var(--lh-contact-h2);
  max-width:560px}
.contact__phone{font-family:var(--font-heading);font-size:clamp(16px,.198vw + 15.2px,18px);
  line-height:1.5;color:rgba(255,255,255,.78);max-width:530px}
.contact__phone a{color:#fff;text-decoration:underline;text-underline-offset:3px;
  display:inline-block;padding:4px 0}
.team{display:flex;margin-top:8px;padding-left:22px;flex-wrap:wrap;row-gap:12px}
.team__face{width:78px;height:78px;border-radius:100px;border:3px solid var(--rp-bark);
  background-color:var(--rp-mist);background-repeat:no-repeat;background-size:162% auto;
  flex-shrink:0;margin-left:-22px}
.team__names{display:flex;flex-direction:column;justify-content:center;margin-left:18px;gap:2px}
.team__names span:first-child{font-family:var(--font-heading);font-size:17px;color:#fff}
.team__names span:last-child{font-family:var(--font-heading);font-size:14px;
  color:rgba(255,255,255,.6)}

/* ---------- footer ---------- */
.footer{background:var(--rp-cream);padding:clamp(30px,2.97vw + 17.2px,60px) var(--gutter) 40px;
  display:flex;flex-direction:column;gap:30px}
.footer__top{display:flex;align-items:center;justify-content:space-between;
  gap:clamp(20px,1.7vw + 12.7px,44px)}
.footer__hr{height:.5px;background:rgba(120,108,82,.28)}
.footer__mid{display:flex;flex-direction:column;align-items:flex-start;
  gap:clamp(28px,2.8vw + 16px,56px)}
@media (min-width:900px){
  .footer__mid{flex-direction:row;align-items:flex-start;justify-content:space-between}
}
.footer__cta{display:flex;flex-direction:column;gap:16px;max-width:340px}
.footer__cols{display:flex;gap:clamp(28px,2.8vw + 16px,56px);flex-wrap:wrap}
.footer__col{display:flex;flex-direction:column;gap:10px}
.footer__col > span{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.6}
.footer__col a{font-family:var(--font-heading);font-size:14px;color:var(--rp-bark);
  white-space:nowrap;padding:2px 0}
.footer__legal-links{display:flex;flex-wrap:wrap;gap:6px 22px;margin-bottom:14px}
.footer__legal-links a{font-family:var(--font-body);font-weight:600;font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--rp-bark);text-decoration:none}
.footer__legal-links a:hover{text-decoration:underline;text-underline-offset:3px}
.footer__legal{font-family:var(--font-heading);font-size:11px;line-height:18px;color:var(--rp-stone);
  opacity:.62}
.footer__copy{font-family:var(--font-heading);font-size:12px;color:var(--rp-stone)}
.follow{display:flex;align-items:center;gap:16px}
.follow > span{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--rp-bark);opacity:.6}
.follow a{display:grid;place-items:center;width:44px;height:44px;margin:-9px}

/* ---------- modals ---------- */
dialog.modal{
  border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;
  margin:0;overflow:visible;color:var(--rp-ink);
}
dialog.modal::backdrop{background:rgba(26,26,26,.62)}
.modal__panel{
  position:relative;box-sizing:border-box;width:100%;height:100%;overflow-y:auto;
  background:var(--rp-platinum);padding:74px var(--gutter) 40px;display:flex;flex-direction:column;
  gap:30px;animation:rpFade .25s ease-out both;
}
@media (min-width:768px){
  dialog.modal{display:none;place-items:center;padding:40px}
  dialog.modal[open]{display:grid}
  .modal__panel{width:min(620px,100%);height:auto;max-height:calc(100vh - 80px);
    padding:56px 60px 52px;box-shadow:0 4px 30.2px rgba(0,0,0,.18)}
  .modal--narrow .modal__panel{width:min(520px,100%)}
}
.modal__close{position:absolute;right:14px;top:14px;width:48px;height:48px;border:0;
  background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--rp-bark);z-index:2}
.modal h2{font-size:clamp(23px,1.485vw + 16.6px,38px);line-height:1.2}
.modal .form{display:flex;flex-direction:column;gap:24px}
.form__row{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:560px){.form__row{grid-template-columns:1fr 1fr}}
.modal .actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-top:6px}
.daychips{display:flex;gap:10px;flex-wrap:wrap}
.daychip{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;
  padding:9px 14px 8px;border-radius:6px;border:1.5px solid rgba(120,108,82,.4);
  background:transparent;color:var(--rp-bark);transition:background .25s,color .25s;min-height:52px}
.daychip[aria-pressed="true"]{background:var(--rp-bark);color:var(--rp-platinum);
  border-color:var(--rp-bark)}
.daychip__dow{font-family:var(--font-body);font-weight:600;font-size:10px;letter-spacing:1.4px;
  text-transform:uppercase;opacity:.75}
.daychip__d{font-family:var(--font-heading);font-weight:500;font-size:16px;line-height:20px}
.timechip{border-radius:82px;cursor:pointer;padding:9px 16px 7px;font-family:var(--font-heading);
  font-weight:500;font-size:14px;white-space:nowrap;border:1.5px solid rgba(120,108,82,.4);
  background:transparent;color:var(--rp-bark);transition:background .25s,color .25s;min-height:40px}
.timechip[aria-pressed="true"]{background:var(--rp-bark);color:var(--rp-platinum);
  border-color:var(--rp-bark)}

/* ---------- lightbox (gallery + site plan) ---------- */
dialog.lightbox{border:0;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;
  background:rgba(20,18,20,.97);color:var(--rp-cream)}
dialog.lightbox::backdrop{background:rgba(20,18,20,.97)}
.lightbox__wrap{display:flex;flex-direction:column;height:100%;width:100%}
.lightbox__bar{display:flex;align-items:center;justify-content:space-between;
  padding:16px var(--gutter);gap:16px}
.lightbox__count{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.6px;
  text-transform:uppercase;color:rgba(250,242,224,.75)}
.lightbox__close{cursor:pointer;background:none;border:1px solid rgba(250,242,224,.4);
  border-radius:80px;padding:10px 20px 8px;font-family:var(--font-body);font-weight:600;
  font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--rp-cream);min-height:44px}
.lightbox__stage{flex:1;min-height:0;display:flex;align-items:center;gap:16px;
  padding:0 var(--gutter)}
.lightbox__stage picture{flex:1;min-width:0;height:100%}
.lightbox__stage img{width:100%;height:100%;object-fit:contain}
.lightbox__arrow{flex:0 0 auto;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(250,242,224,.35);background:none;color:var(--rp-cream);font-size:19px;
  cursor:pointer}
.lightbox__thumbs{display:flex;gap:8px;overflow-x:auto;padding:16px var(--gutter) 24px}
.lightbox__thumbs button{flex:0 0 auto;width:96px;height:64px;border:2px solid transparent;
  padding:0;background:none;cursor:pointer}
.lightbox__thumbs button[aria-selected="true"]{border-color:var(--rp-cream)}
.lightbox__thumbs img{width:100%;height:100%;object-fit:cover}
.zoomable{overflow:auto;touch-action:pan-x pan-y pinch-zoom;
  scrollbar-width:thin;scrollbar-color:rgba(250,242,224,.3) transparent}
/* On a system set to always show scroll bars, overflow:auto paints light tracks down
   the side and bottom of the dark lightbox. Keep them usable, but in the panel's own
   palette rather than the OS default. */
.zoomable::-webkit-scrollbar{width:10px;height:10px}
.zoomable::-webkit-scrollbar-track,
.zoomable::-webkit-scrollbar-corner{background:transparent}
.zoomable::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(250,242,224,.3);
  border:3px solid transparent;background-clip:content-box}
.zoomable::-webkit-scrollbar-thumb:hover{background:rgba(250,242,224,.5);
  border:3px solid transparent;background-clip:content-box}
.lightbox__thumbs{scrollbar-width:thin;scrollbar-color:rgba(250,242,224,.3) transparent}
.lightbox__thumbs::-webkit-scrollbar{height:10px}
.lightbox__thumbs::-webkit-scrollbar-track{background:transparent}
.lightbox__thumbs::-webkit-scrollbar-thumb{border-radius:999px;
  background:rgba(250,242,224,.3);border:3px solid transparent;background-clip:content-box}
.zoomable img{max-width:none;width:auto;height:auto;margin:auto}

/* ---------- site plan ---------- */
.siteplan{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.siteplan img{width:100%;height:auto}
.zoomable picture{margin:auto}
.siteplan-hint{display:flex;align-items:center;gap:10px;font-family:var(--font-body);
  font-weight:600;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--rp-stone)}
.siteplan-hint span{display:block;width:30px;height:1.5px;background:var(--rp-khaki)}

/* ---------- misc ---------- */
.ground-white{background:var(--rp-white)}
.ground-shell{background:var(--rp-shell)}
.ground-platinum{background:var(--rp-platinum)}
.ground-mist{background:var(--rp-mist)}
.note{font-family:var(--font-heading);font-size:14px;line-height:22px;color:var(--rp-stone);
  max-width:820px}
.desc-block{display:grid;grid-template-columns:1fr;gap:clamp(24px,3.6vw + 8.5px,60px);
  align-items:center}
@media (min-width:900px){.desc-block{grid-template-columns:minmax(0,46%) 1fr}}
.desc-block__img{width:100%;height:clamp(260px,24.5vw + 154px,570px);object-fit:cover}
.desc-block__copy{display:flex;flex-direction:column;gap:clamp(20px,1.4vw + 14px,34px)}
.desc-block__copy p + p{margin-top:1em}

/* ---------- build team ---------- */
@keyframes bt-scroll-l{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes bt-scroll-r{from{transform:translateX(-50%)}to{transform:translateX(0)}}

.bt-hero{position:relative;min-height:clamp(440px,15.8vw + 372px,620px);display:flex;
  flex-direction:column;justify-content:center;overflow:hidden;background:var(--rp-ink)}
.bt-marquee{position:absolute;inset:0;display:flex;flex-direction:column;gap:4px}
.bt-marquee__row{overflow:hidden;flex:1;min-height:0}
.bt-marquee__track{display:flex;gap:4px;height:100%;width:max-content;
  animation-timing-function:linear;animation-iteration-count:infinite}
.bt-marquee__tile{flex:0 0 clamp(180px,11.9vw + 129px,300px);height:100%;opacity:.6}
.bt-marquee__tile img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.bt-marquee__track{animation:none}}
.bt-hero__scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(30,26,30,.78) 0%,rgba(30,26,30,.35) 45%,rgba(30,26,30,.6) 100%),
             rgba(30,26,30,.2)}
.bt-hero__body{position:relative;padding:clamp(96px,8.6vw + 59px,150px) var(--gutter)
  clamp(48px,4.2vw + 30px,90px)}
.bt-hero h1{max-width:820px;font-weight:300;
  font-size:clamp(34px,3.76vw + 17.8px,72px);line-height:clamp(40px,3.96vw + 23px,80px);
  color:var(--rp-platinum);text-shadow:0 2px 40px rgba(30,26,30,.45)}
.bt-hero p{margin-top:16px;max-width:640px;font-family:var(--font-heading);
  font-size:var(--fs-lede);line-height:var(--lh-lede);color:var(--rp-platinum);
  text-shadow:0 2px 30px rgba(30,26,30,.5)}

.bt-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,4.5vw + 4.7px,70px)}
@media (min-width:900px){.bt-stats{display:flex;flex-wrap:wrap}}
.bt-stat{display:flex;flex-direction:column;gap:8px}
.bt-stat__n{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(26px,1.39vw + 20px,40px);line-height:1.1;color:var(--rp-bark)}
.bt-stat__l{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--rp-stone)}

/* four equal tiles, rotated by the arrows — same JS contract as the listing galleries */
.photo-grid--row{grid-template-columns:1fr;gap:16px;height:auto}
.photo-grid--row > button{aspect-ratio:4/3!important}
@media (min-width:700px){.photo-grid--row{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){
  .photo-grid--row{grid-template-columns:repeat(4,1fr);height:340px}
  .photo-grid--row > button{aspect-ratio:auto!important;grid-column:auto!important;
    grid-row:auto!important}
}

.bt-bios{display:grid;grid-template-columns:1fr;gap:clamp(32px,3.6vw + 16px,60px)}
@media (min-width:1000px){.bt-bios{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bt-bio{display:grid;grid-template-columns:110px 1fr;gap:24px}
@media (min-width:600px){.bt-bio{grid-template-columns:150px 1fr}}
.bt-bio__photo{width:100%;height:clamp(250px,8.9vw + 212px,340px)}
.bt-bio__photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.bt-bio__body{display:flex;flex-direction:column;gap:14px;min-width:0}
.bt-bio__name{font-family:var(--font-heading);font-weight:400;
  font-size:clamp(21px,.5vw + 18.9px,26px);line-height:1.2;color:var(--rp-bark)}
.bt-bio__role{font-family:var(--font-body);font-weight:600;font-size:10.5px;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--rp-khaki)}
.bt-bio__rule{display:block;width:36px;height:1.5px;background:var(--rp-khaki)}
.bt-bio__p{font-family:var(--font-body);font-weight:400;font-size:14.5px;line-height:24px;
  color:var(--rp-stone)}
.bt-bio__more{display:flex;flex-direction:column;gap:14px}
.bt-bio__toggle{align-self:flex-start;margin-top:2px;background:none;border:none;cursor:pointer;
  padding:6px 0;font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--rp-bark);border-bottom:1px solid var(--rp-khaki)}

/* ---------- calendar booking widget ---------- */
@media (min-width:768px){.modal--wide .modal__panel{width:min(760px,100%)}}
.cal-embed{width:100%;aspect-ratio:3/4;min-height:520px;background:var(--rp-mist)}
@media (min-width:768px){.cal-embed{aspect-ratio:4/3;min-height:600px}}
.cal-embed iframe{width:100%;height:100%;border:0;display:block}

/* inline form confirmation (listing tour box has no thank-you panel to swap in) */
.form-sent{margin-top:16px;padding:12px 14px;background:rgba(120,108,82,.1);
  border-left:2px solid var(--rp-khaki);font-family:var(--font-heading);font-size:15px;
  line-height:22px;color:var(--rp-bark)}

/* marketing opt-in — unchecked by default; a pre-ticked box is not consent */
.optin{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:4px 0;
  min-height:44px;align-items:center}
.optin input{flex:none;width:20px;height:20px;accent-color:var(--rp-bark);cursor:pointer;margin:0}
.optin span{font-family:var(--font-heading);font-size:14.5px;line-height:21px;color:var(--rp-stone)}
