/* Sandy Creek Ranch — site styles
   Palette: char (barn wood at night), linen (dry grass at noon), straw (golden hour), oak (the invitation green)
*/
:root{
  --char:#1c1814;
  --char-2:#26201a;
  --char-3:#332b23;
  --linen:#ece5d6;
  --linen-2:#e2d9c5;
  --straw:#cdb98a;
  --straw-2:#b9a06a;
  --oak:#45553f;
  --oak-2:#5b6d52;
  --stone:#7d7263;
  --ink:#1c1814;
  --paper:#f6f1e7;
  --display:"Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;
  --sans:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --gutter:clamp(20px, 5vw, 72px);
  --max:1440px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--linen);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);font-weight:300;line-height:1.08;margin:0;letter-spacing:0;font-variant-ligatures:common-ligatures;font-feature-settings:"liga" 1,"dlig" 0}
h1{font-size:clamp(40px,5.6vw,86px);font-weight:400}
h2{font-size:clamp(32px,4vw,58px);font-weight:400}
h3{font-size:clamp(25px,2.6vw,36px);font-weight:400}
p{margin:0 0 1.2em}
em,i{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.06em;letter-spacing:0}
.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--stone);margin:0 0 22px}
.dark .eyebrow{color:var(--straw)}
.lede{font-family:var(--display);font-size:clamp(24px,2.4vw,34px);line-height:1.3;font-weight:300;max-width:26ch}
.small{font-size:14px;color:var(--stone)}
.small a,.faq p a,.route p a{border-bottom:1px solid currentColor;padding-bottom:1px}
.small a:hover,.faq p a:hover{color:var(--straw-2)}
.dark .small a:hover,.dark .faq p a:hover{color:var(--straw)}
.dark .small{color:#a89c88}
.measure{max-width:56ch}
.center{text-align:center}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* --- header --- */
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gutter);color:#fff;pointer-events:none;text-shadow:0 1px 18px rgba(0,0,0,.25)}
.site-head{transition:background .45s var(--ease),backdrop-filter .45s var(--ease),padding .45s var(--ease)}
.site-head.scrolled{background:rgba(24,20,16,.90);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);text-shadow:none;padding-top:16px;padding-bottom:16px;border-bottom:1px solid rgba(236,229,214,.10)}
.site-head > *{pointer-events:auto}
.wordmark{font-family:var(--display);font-weight:500;font-size:16px;letter-spacing:.32em;text-transform:uppercase;white-space:nowrap}
.wordmark small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.34em;opacity:.85;margin-top:5px}
.nav{display:flex;gap:clamp(18px,2.2vw,32px);align-items:center}
.nav a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .5s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{right:0}
.nav a.cta{border:1px solid currentColor;padding:10px 18px}
.nav a.cta::after{display:none}
.nav a.cta:hover{background:#fff;color:#000}
.menu-btn{display:none;background:none;border:0;color:inherit;font:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;padding:6px 0}
@media (max-width:1000px){
  .nav{display:none}
  .menu-btn{display:block}
}
/* mobile menu */
.menu{position:fixed;inset:0;z-index:60;background:var(--char);color:var(--linen);display:none;flex-direction:column;justify-content:center;padding:var(--gutter)}
.menu.open{display:flex}
.menu a{font-family:var(--display);font-size:clamp(34px,9vw,56px);font-weight:300;line-height:1.15;border-bottom:1px solid rgba(236,229,214,.12);padding:12px 0}
.menu .close{position:absolute;top:26px;right:var(--gutter);background:none;border:0;color:inherit;font:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.menu .foot{margin-top:34px;font-size:13px;letter-spacing:.06em;color:#a89c88}

/* --- hero --- */
.hero{position:relative;min-height:min(100svh,860px);height:100svh;overflow:hidden;background:var(--char);color:#fff;display:flex;align-items:flex-end}
.hero video,.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,12,.74) 0%,rgba(20,16,12,.18) 45%,rgba(20,16,12,.58) 100%)}
.hero .inner{position:relative;z-index:1;width:100%;padding:130px var(--gutter) clamp(40px,7vh,84px)}
.hero .place{font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;margin:0 0 18px;opacity:.9}
.hero h1{max-width:15ch}
.hero .sub{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(18px,1.9vw,26px);max-width:34ch;margin:22px 0 0;opacity:.95}
.hero .scroll{position:absolute;left:50%;bottom:calc(clamp(40px,7vh,84px) + 4px);transform:translateX(-50%);font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.7;display:flex;align-items:center;gap:10px}
.hero .scroll::after{content:"";width:34px;height:1px;background:currentColor;opacity:.6}
@media (max-width:700px){.hero .scroll{display:none}}
@media (max-width:700px){.hero .inner{padding-bottom:64px}}

/* page hero (interior) */
.page-hero{position:relative;min-height:72svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--char);color:#fff}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,12,.74) 0%,rgba(20,16,12,.10) 52%,rgba(20,16,12,.58) 100%)}
.page-hero .inner{position:relative;z-index:1;padding:130px var(--gutter) clamp(36px,6vh,72px);width:100%}
.page-hero h1{font-size:clamp(38px,5.2vw,78px);max-width:16ch}
.page-hero .place{font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;margin:0 0 18px;opacity:.9}

/* --- sections --- */
.section{padding:clamp(72px,10vw,150px) 0}
.section.tight{padding:clamp(48px,6vw,90px) 0}
.dark{background:var(--char);color:var(--linen)}
.dark-2{background:var(--char-2);color:var(--linen)}
.linen-2{background:var(--linen-2)}
.dusk{background:linear-gradient(to bottom,var(--linen-2) 0%,#b8a67e 38%,#5b4c3a 72%,var(--char) 100%);color:#fff;position:relative}
.dusk .eyebrow{color:rgba(255,255,255,.75)}
.grid{display:grid;gap:clamp(24px,4vw,64px)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-5-7{grid-template-columns:5fr 7fr}
.g-7-5{grid-template-columns:7fr 5fr}
.g-4-8{grid-template-columns:4fr 8fr}
@media (max-width:860px){.g-2,.g-3,.g-5-7,.g-7-5,.g-4-8{grid-template-columns:1fr}}
.rule{border:0;border-top:1px solid rgba(28,24,20,.16);margin:0}
.dark .rule,.dark-2 .rule{border-top-color:rgba(236,229,214,.14)}

/* figures */
figure{margin:0}
figcaption{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-top:12px}
.dark figcaption,.dark-2 figcaption{color:#a89c88}
.frame{overflow:hidden;background:#d9d0bd}
.dark .frame,.dark-2 .frame{background:#2f2820}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.frame:hover img{transform:scale(1.03)}
.r-3-4{aspect-ratio:3/4}.r-4-5{aspect-ratio:4/5}.r-1-1{aspect-ratio:1/1}.r-3-2{aspect-ratio:3/2}.r-16-9{aspect-ratio:16/9}.r-21-9{aspect-ratio:21/9}.r-2-3{aspect-ratio:2/3}.r-9-16{aspect-ratio:9/16}
.offset-up{margin-top:clamp(-40px,-6vw,-90px)}
.offset-down{margin-top:clamp(40px,6vw,90px)}
@media (max-width:860px){.offset-up,.offset-down{margin-top:0}}
.pos-b img{object-position:50% 85%}.pos-t img{object-position:50% 15%}

/* buttons / links */
.btn{display:inline-block;font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;border:1px solid currentColor;padding:16px 28px;transition:background .4s var(--ease),color .4s var(--ease)}
.btn:hover{background:var(--ink);color:var(--linen);border-color:var(--ink)}
.dark .btn:hover,.dark-2 .btn:hover,.dusk .btn:hover{background:var(--linen);color:var(--ink);border-color:var(--linen)}
.btn.solid{background:var(--linen);color:var(--ink);border-color:var(--linen)}
.btn.solid:hover{background:var(--straw);border-color:var(--straw);color:var(--ink)}
.textlink{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:4px}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* --- home specifics --- */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
@media (max-width:860px){.intro{grid-template-columns:1fr}}
.intro .lede{max-width:22ch}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(40px,5vw,72px);border-top:1px solid rgba(28,24,20,.16);padding-top:28px}
.facts div{font-size:13px;letter-spacing:.06em;color:var(--stone)}
.facts strong{display:block;font-family:var(--display);font-weight:300;font-size:clamp(30px,3.4vw,46px);color:var(--ink);letter-spacing:-.01em;margin-bottom:4px}
.dark .facts strong,.dark-2 .facts strong{color:var(--linen)}
.dark .facts,.dark-2 .facts{border-top-color:rgba(236,229,214,.14)}
.dark .facts div{color:#a89c88}
@media (max-width:600px){.facts{grid-template-columns:1fr;gap:18px}}

/* weekend arc (the signature): a timeline that walks from daylight into night */
.arc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;padding:clamp(36px,4.5vw,72px) 0}
.arc:nth-child(even) .arc-text{order:2}
@media (max-width:860px){.arc{grid-template-columns:1fr}.arc:nth-child(even) .arc-text{order:0}}
.arc .when{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(20px,2vw,26px);margin:0 0 14px;opacity:.85}
.arc h3{margin-bottom:18px}
.arc p{max-width:44ch}
.arc-img{display:grid;grid-template-columns:7fr 5fr;gap:14px;align-items:end}
.arc-img .frame:nth-child(2){margin-bottom:clamp(30px,5vw,80px)}
.arc-img.single{grid-template-columns:1fr}

/* spaces list */
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px)}
@media (max-width:1000px){.spaces{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.spaces{grid-template-columns:1fr}}
.space h3{font-size:clamp(24px,2.2vw,30px);margin:18px 0 8px}
.space p{font-size:15px;color:var(--stone);max-width:36ch}
.dark .space p,.dark-2 .space p{color:#a89c88}

/* stay */
.rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,36px)}
@media (max-width:1000px){.rooms{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.rooms{grid-template-columns:1fr}}
.room{border-top:1px solid rgba(236,229,214,.18);padding-top:20px}
.light .room{border-top-color:rgba(28,24,20,.18)}
.room .eyebrow{margin-bottom:10px}
.room h3{font-size:clamp(24px,2.2vw,30px);margin-bottom:8px}
.room .sleeps{font-family:var(--display);font-style:italic;font-weight:300;font-size:20px;opacity:.85}
.room p{font-size:15px;color:#a89c88;margin-top:12px;max-width:34ch}
.light .room p{color:var(--stone)}
.amenities{display:flex;flex-wrap:wrap;gap:10px 28px;padding:0;margin:26px 0 0;list-style:none;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.amenities li::before{content:"";display:inline-block;width:5px;height:5px;background:var(--straw);border-radius:50%;margin-right:12px;vertical-align:middle}

/* home carousel: slow drift the visitor can take over (drag, swipe, arrows, keys); pauses on hover/focus/touch */
.carousel{position:relative;padding:clamp(40px,5vw,72px) 0 clamp(72px,8vw,124px)}
.car-track{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:0 var(--gutter);cursor:grab;-webkit-user-select:none;user-select:none;outline:none}
.car-track::-webkit-scrollbar{display:none}
.car-track.dragging{cursor:grabbing}
.car-track:focus-visible{box-shadow:inset 0 0 0 2px var(--straw-2)}
.car-track .frame{flex:0 0 auto;height:clamp(300px,48vh,560px);background:var(--linen-2)}
.car-track .frame img{height:100%;width:auto;pointer-events:none}
.car-ui{display:flex;align-items:center;gap:10px;padding-top:22px}
.car-btn{width:46px;height:46px;border-radius:50%;border:1px solid rgba(28,24,20,.28);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease)}
.car-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4}
.car-btn:hover{background:var(--ink);color:var(--linen);border-color:var(--ink)}
.car-btn:focus-visible{outline:2px solid var(--straw-2);outline-offset:3px}
.car-link{margin-left:auto}

/* --- gallery page (horizontal) --- */
.gallery-page body{overflow:hidden}
.hgal{position:fixed;inset:0;z-index:10;background:var(--char);color:var(--linen);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;display:flex;align-items:center}
.hgal::-webkit-scrollbar{display:none}
.hgal .track{display:flex;align-items:center;gap:clamp(18px,2.4vw,40px);padding:0 var(--gutter);height:100%}
.hgal .lead{flex:0 0 auto;width:min(38vw,460px);padding-right:clamp(20px,4vw,60px)}
.hgal .lead h1{font-size:clamp(40px,5.2vw,80px)}
.hgal .lead p{color:#a89c88;max-width:30ch}
.hgal .lead .hint{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--straw);margin-top:28px}
.hgal figure{flex:0 0 auto;height:min(74vh,820px);display:flex;flex-direction:column}
.hgal figure.tall{height:min(80vh,900px)}
.hgal figure.short{height:min(56vh,620px);align-self:flex-start;margin-top:12vh}
.hgal figure.low{height:min(56vh,620px);align-self:flex-end;margin-bottom:12vh}
.hgal figure .frame{height:100%;flex:1 1 auto;min-height:0}
.hgal figure img{height:100%;width:auto;max-width:none}
.hgal figcaption{flex:0 0 auto}
.hgal .end{flex:0 0 auto;width:min(40vw,420px);padding-left:clamp(20px,4vw,60px)}
.hgal .end h2{margin-bottom:22px}
.hgal .chapter{flex:0 0 auto;writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--straw);height:min(74vh,820px);display:flex;align-items:center;padding:0 6px}
.hgal .chapter::before{content:"";flex:1;width:1px;background:rgba(205,185,138,.4);margin-bottom:18px}
.hgal .chapter::after{content:"";flex:1;width:1px;background:rgba(205,185,138,.4);margin-top:18px}
.hgal-progress{position:fixed;left:var(--gutter);right:var(--gutter);bottom:26px;height:1px;background:rgba(236,229,214,.15);z-index:11}
.hgal-progress i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--straw)}
@media (max-width:860px), (pointer:coarse) and (max-width:1024px){
  .gallery-page body{overflow:auto}
  .hgal{position:static;display:block;overflow:visible;padding-top:110px}
  .hgal .track{display:block;padding:0 var(--gutter) 60px;height:auto}
  .hgal .lead,.hgal .end{width:auto;padding:0 0 40px}
  .hgal figure,.hgal figure.tall,.hgal figure.short,.hgal figure.low{height:auto;margin:0 0 34px;align-self:auto}
  .hgal figure img{width:100%;height:auto}
  .hgal .chapter{writing-mode:horizontal-tb;transform:none;height:auto;display:block;margin:20px 0 26px;padding:0}
  .hgal .chapter::before,.hgal .chapter::after{display:none}
  .hgal-progress{display:none}
  .hgal .lead .hint{display:none}
}

/* --- films --- */
.film-card{position:relative;cursor:pointer}
.film-moments{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,40px)}
@media (max-width:760px){.film-moments{grid-template-columns:1fr}}
.film-moments .play span{width:74px;height:74px}
.film-card .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff}
.film-card .play span{border:1px solid rgba(255,255,255,.7);width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.24em;text-transform:uppercase;backdrop-filter:blur(2px);transition:background .4s var(--ease),color .4s var(--ease)}
.film-card:hover .play span{background:#fff;color:#000}
.modal{position:fixed;inset:0;z-index:80;background:rgba(15,12,9,.96);display:none;align-items:center;justify-content:center;padding:var(--gutter)}
.modal.open{display:flex}
.modal video{width:auto;max-width:min(100%,1400px);max-height:86vh;height:86vh;background:#000;object-fit:contain}
.modal .close{position:absolute;top:26px;right:var(--gutter);background:none;border:0;color:#fff;font:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}

/* --- getting here --- */
.routes{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,36px)}
@media (max-width:1000px){.routes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.routes{grid-template-columns:1fr}}
.route{border-top:1px solid rgba(28,24,20,.18);padding-top:18px}
.dark .route,.dark-2 .route{border-top-color:rgba(236,229,214,.16)}
.route .eyebrow{margin-bottom:10px}
.route strong{display:block;font-family:var(--display);font-weight:300;font-size:clamp(26px,2.4vw,34px);line-height:1.1;margin-bottom:8px}
.route p{font-size:15px;color:var(--stone);margin:0}
.dark .route p,.dark-2 .route p{color:#a89c88}
.list{list-style:none;padding:0;margin:0}
.list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 0;border-bottom:1px solid rgba(28,24,20,.14);font-size:16px}
.dark .list li,.dark-2 .list li{border-bottom-color:rgba(236,229,214,.14)}
.list li span:last-child{font-family:var(--display);font-style:italic;font-weight:300;font-size:19px;white-space:nowrap;color:var(--stone)}
.dark .list li span:last-child,.dark-2 .list li span:last-child{color:var(--straw)}
.list li small{display:block;font-size:13px;color:var(--stone);letter-spacing:.02em}
.dark .list li small{color:#a89c88}

/* --- faq --- */
.faq details{border-top:1px solid rgba(28,24,20,.16)}
.faq details:last-child{border-bottom:1px solid rgba(28,24,20,.16)}
.dark .faq details,.dark .faq details:last-child{border-color:rgba(236,229,214,.14)}
.faq summary{cursor:pointer;list-style:none;padding:22px 0;font-family:var(--display);font-weight:300;font-size:clamp(20px,1.8vw,26px);display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:20px;color:var(--stone);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{max-width:60ch;padding:0 0 22px;color:var(--stone)}
.dark .faq details p{color:#a89c88}

/* --- inquire form --- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px 32px}
@media (max-width:700px){.form{grid-template-columns:1fr}}
.form .full{grid-column:1/-1}
.field label{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--stone);margin-bottom:10px}
.dark .field label{color:var(--straw)}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(28,24,20,.3);padding:12px 0;font:inherit;color:inherit;border-radius:0;outline:none}
.dark .field input,.dark .field select,.dark .field textarea{border-bottom-color:rgba(236,229,214,.3)}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--oak)}
.dark .field input:focus,.dark .field select:focus,.dark .field textarea:focus{border-bottom-color:var(--straw)}
.field textarea{min-height:120px;resize:vertical}
.field select option{color:#000}
:focus-visible{outline:2px solid var(--straw);outline-offset:4px}

/* --- CTA band --- */
.cta-band{position:relative;min-height:70svh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:var(--char)}
.cta-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
.cta-band::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(20,16,12,.34),rgba(20,16,12,.7))}
.cta-band .inner{position:relative;z-index:1;padding:80px var(--gutter);max-width:760px}
.cta-band h2{margin-bottom:26px}
.cta-band p{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(18px,1.9vw,24px);margin-bottom:34px;opacity:.9}
.cta-band p.eyebrow{font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:.28em;opacity:1;margin-bottom:22px}

/* --- footer --- */
.site-foot{background:var(--char);color:#a89c88;padding:clamp(48px,6vw,90px) 0 34px;border-top:1px solid rgba(236,229,214,.1)}
.site-foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:34px}
@media (max-width:860px){.site-foot .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-foot .cols{grid-template-columns:1fr}}
.site-foot .wordmark{color:var(--linen);margin-bottom:16px;display:block}
.site-foot h4{font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--straw);margin:0 0 16px}
.site-foot a{display:block;font-size:14px;padding:5px 0;color:var(--linen);opacity:.85}
.site-foot a:hover{opacity:1}
.site-foot .legal{margin-top:50px;padding-top:22px;border-top:1px solid rgba(236,229,214,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;letter-spacing:.06em}
.site-foot p{font-size:14px;max-width:34ch}

/* --- spaces page: alternating blocks --- */
.arc.flip .arc-text{order:2}
@media (max-width:860px){.arc.flip .arc-text{order:0}}
.arc h3{margin-bottom:16px}
.note-box{border:1px solid rgba(236,229,214,.22);padding:18px 20px;background:rgba(236,229,214,.04)}
.note-box .small{color:#bcae97}
.hgal .lead h1{font-size:clamp(38px,4.6vw,68px)}
/* gallery: keep the ribbon from reading as one uniform strip */
.hgal figure{margin:0}

/* --- spaces: catalogue grid --- */
.space-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,72px) clamp(24px,3.5vw,56px)}
@media (max-width:860px){.space-grid{grid-template-columns:1fr}}
.space-card h3{margin:22px 0 10px}
.space-card p{max-width:42ch;color:var(--stone);margin:0}
.dark .space-card p{color:#a89c88}
a.film-card{display:block;color:inherit}

/* --- interface hygiene --- */
html{color-scheme:light dark;-webkit-tap-highlight-color:rgba(205,185,138,.25)}
button,a,summary,input,select,textarea{touch-action:manipulation}
h1,h2,h3,h4,.lede{text-wrap:balance}
p,figcaption,.small{text-wrap:pretty}
.modal,.menu{overscroll-behavior:contain}
.field select{background-color:var(--linen);color:var(--ink);appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--stone) 50%),linear-gradient(135deg,var(--stone) 50%,transparent 50%);
  background-position:calc(100% - 14px) calc(1.15em),calc(100% - 9px) calc(1.15em);background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-right:30px;border-radius:0}
.dark .field select{background-color:transparent;color:var(--linen)}
.dark .field select option{background-color:var(--char-3);color:var(--linen)}
button.film-card{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;width:100%;cursor:pointer;display:block}
.frame img{background:transparent}
@media (prefers-reduced-motion:reduce){
  .frame:hover img{transform:none}
  .hero video{display:none}
}

/* --- v3: brand mark --- */
.wordmark{display:flex;align-items:center;gap:14px}
.wordmark > span{display:block}
.brand-mark{display:block;height:auto;overflow:visible}
.site-head .brand-mark{width:40px;flex:0 0 auto}
.site-head.scrolled .brand-mark{width:34px}
.site-head .brand-mark{transition:width .45s var(--ease)}
.site-foot .foot-mark{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.site-foot .foot-mark .brand-mark{width:62px;color:var(--straw)}
.brand-figure{margin:30px 0 0;display:flex;align-items:center;gap:18px}
.brand-figure .brand-mark{width:70px;color:var(--ink)}
.brand-figure figcaption{margin:0}
.history figcaption{text-transform:none;letter-spacing:.02em;font-size:12.5px;line-height:1.5;max-width:52ch}
.history .lede{margin-bottom:22px}
@media (max-width:700px){.site-head .brand-mark{width:32px}.wordmark{gap:10px}}

/* --- v3: gallery as one even row, sequenced by area --- */
.hgal .track{gap:clamp(10px,1vw,16px);align-items:center}
.hgal figure,.hgal figure.tall,.hgal figure.short,.hgal figure.low{height:min(72vh,780px);align-self:center;margin:0;display:flex;flex-direction:column}
.hgal figure .frame{flex:1 1 auto;min-height:0;height:auto}
.hgal figure img{height:100%;width:auto;max-width:none;display:block}
.hgal figure figcaption{flex:0 0 30px;height:30px;margin:0;padding-top:12px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--straw);white-space:nowrap}
.hgal figure.zone-start{margin-left:clamp(26px,3vw,52px)}
.hgal figure.zone-start:first-of-type{margin-left:0}
.hgal-zone{position:fixed;left:var(--gutter);bottom:40px;z-index:11;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--linen);opacity:.75;transition:opacity .4s var(--ease)}
.hgal-zone b{font-weight:500;color:var(--straw);margin-right:10px}
@media (max-width:860px){
  .hgal figure,.hgal figure.tall,.hgal figure.short,.hgal figure.low{height:auto;margin:0 0 14px}
  .hgal figure.zone-start{margin-left:0;margin-top:44px}
  .hgal figure figcaption{height:auto;flex:none;padding:0;order:-1;margin-bottom:12px}
  .hgal figure:not(.zone-start) figcaption{display:none}
  .hgal-zone{display:none}
}
.hgal{--gh:min(72vh,780px);--gcap:30px}
.hgal figure,.hgal figure.tall,.hgal figure.short,.hgal figure.low{height:auto}
.hgal figure .frame{flex:none;height:calc(var(--gh) - var(--gcap));width:auto;background:transparent}
.hgal figure img{height:100%;width:auto;object-fit:contain;-webkit-user-drag:none;user-select:none}
@media (max-width:860px){
  .hgal figure .frame{height:auto}
  .hgal figure img{width:100%;height:auto}
}
@media (max-width:440px){.site-head .wordmark{font-size:13px;letter-spacing:.2em}.site-head .wordmark small{font-size:8px;letter-spacing:.24em}.site-head .brand-mark{width:28px}}
/* spaces: a sample weekend */
.weekend .days{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,64px);border-top:1px solid rgba(205,185,138,.28);padding-top:clamp(28px,3vw,44px)}
.weekend .day h3{color:var(--straw);margin-bottom:clamp(18px,2vw,28px)}
.weekend ol{list-style:none;margin:0;padding:0;display:grid;gap:26px}
.weekend li strong{display:block;font-family:var(--display);font-weight:400;font-size:clamp(21px,1.8vw,26px);line-height:1.2;margin:6px 0 6px}
.weekend li p{margin:0;color:#a89c88;max-width:34ch}
.weekend .when{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--stone)}
.weekend-note{margin-top:clamp(36px,4vw,56px);color:#8f846f}
@media (max-width:860px){.weekend .days{grid-template-columns:1fr}}
