/* ============================================================
   TWENTY TWO MOKOIA — "The Destination"
   Shared stylesheet. Sibling system to Boon Wellness V2,
   warmer palette, serif display type (Fraunces).
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --display:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter','Helvetica Neue',Arial,sans-serif;
  /* V2 palette: softened, architectural. The heavy near-black brown
     is lifted to a warm umber; supporting neutrals move toward
     taupe, clay and sand (per V2 refinement brief). */
  --paper:#F1ECE3;
  --paper-warm:#EAE1D1;
  --char:#2B241C;
  --char-soft:#372F25;
  --brass:#B79762;
  --sage:#8EA29C;
  --brown:#6E5C48;
  --clay:#A08B72;
  --stone:#E4DACA;
  --cream:#F1ECE3;
  --r-pill:999px; --r-card:2px; --r-flat:0;
  --ease-out:cubic-bezier(.16,.7,.2,1);
}

/* Section theming — light/dark alternation */
[data-theme="light"]{
  --bg:var(--paper); --tx:#2A231B; --bd:#5C5142; --mut:#736854;
  --line:rgba(42,35,27,.15); --hair:rgba(42,35,27,.28);
}
[data-theme="dark"]{
  --bg:var(--char); --tx:#F1ECE3; --bd:rgba(241,236,227,.74); --mut:rgba(241,236,227,.52);
  --line:rgba(241,236,227,.16); --hair:rgba(241,236,227,.32);
}
[data-theme="warm"]{
  --bg:var(--paper-warm); --tx:#2A231B; --bd:#5A4F3F; --mut:#6C614E;
  --line:rgba(42,35,27,.15); --hair:rgba(42,35,27,.28);
}
[data-theme="stone"]{
  --bg:var(--stone); --tx:#2A231B; --bd:#584E3F; --mut:#695F4C;
  --line:rgba(42,35,27,.16); --hair:rgba(42,35,27,.30);
}
section{background:var(--bg);color:var(--bd);position:relative}

html{scroll-behavior:smooth;overflow-x:clip}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--bd);font:400 1.02rem/1.78 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  transition:opacity .26s ease}
body.pt-out{opacity:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}

/* Layout */
.wrap{width:min(1280px,88vw);margin-inline:auto;position:relative}
.wrap-sm{width:min(880px,88vw);margin-inline:auto;position:relative}
.sec{padding:clamp(5.5rem,13vh,10rem) 0;position:relative;overflow:clip}

/* Typography */
.eyebrow{font:500 .69rem/1 var(--sans);letter-spacing:.265em;text-transform:uppercase;color:var(--mut)}
.kicker{display:flex;align-items:center;gap:.85rem;color:var(--mut)}
.kicker .hair{width:clamp(2rem,5vw,3.6rem);height:1px;background:var(--hair)}
.kicker .lbl{font:500 .69rem/1 var(--sans);letter-spacing:.265em;text-transform:uppercase}
.d1{font:400 clamp(2.7rem,6.8vw,6rem)/1.04 var(--display);letter-spacing:-.022em;color:var(--tx)}
.d2{font:400 clamp(2.05rem,4.4vw,3.8rem)/1.08 var(--display);letter-spacing:-.018em;color:var(--tx)}
.d3{font:400 clamp(1.55rem,2.8vw,2.45rem)/1.16 var(--display);letter-spacing:-.012em;color:var(--tx)}
.it{font-style:italic;font-weight:300}
.lead{font:300 clamp(1.06rem,1.45vw,1.34rem)/1.62 var(--sans);color:var(--bd)}
.body{font:400 1.02rem/1.78 var(--sans);color:var(--bd)}
.body.sm{font-size:.95rem;line-height:1.72}
.tnote{font:400 .76rem/1.6 var(--sans);letter-spacing:.02em;color:var(--mut)}
.s-sub{font:300 clamp(1.08rem,1.55vw,1.42rem)/1.5 var(--display);letter-spacing:-.01em;color:var(--bd)}
.feel{font:300 italic clamp(1.05rem,1.5vw,1.35rem)/1.5 var(--display);color:var(--brass)}

.s-head{max-width:52rem}
.s-head .kicker{margin-bottom:1.3rem}
.s-head .s-sub{margin-top:1.35rem;max-width:38rem}

/* Buttons / links */
.btn-fill{display:inline-flex;align-items:center;gap:.6rem;
  font:500 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--brass);padding:1.05rem 1.9rem;color:var(--tx);
  border-radius:var(--r-pill);
  transition:background .45s ease,color .45s ease,transform .5s var(--ease-out),box-shadow .45s ease}
.btn-fill:hover{background:var(--brass);color:var(--char);transform:translateY(-1px);
  box-shadow:inset 0 1px 0 0 rgba(255,255,255,.18),0 8px 22px -10px rgba(0,0,0,.28)}
.btn-fill.on-dark{color:#F0EAE0}
.btn-line{font:500 .73rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.7rem;transition:color .35s ease}
.btn-line .br{opacity:.55;transition:transform .5s var(--ease-out)}
.btn-line .tx{border-bottom:1px solid currentColor;padding-bottom:4px;opacity:.85}
.btn-line:hover .br.l{transform:translateX(-3px)}
.btn-line:hover .br.r{transform:translateX(3px)}
.tlink{font:500 .72rem/1 var(--sans);letter-spacing:.17em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.6rem;color:var(--tx);transition:color .35s ease}
.tlink .ul{border-bottom:1px solid var(--hair);padding-bottom:4px;transition:border-color .35s ease}
.tlink .ar{transition:transform .5s var(--ease-out)}
.tlink:hover .ul{border-color:var(--tx)}
.tlink:hover .ar{transform:translate(3px,-3px)}

/* Cycling headline word — soft fade and drift between words */
.cycle{display:inline-block;transition:opacity .45s ease,transform .45s var(--ease-out)}
.cycle.out{opacity:0;transform:translateY(.28em)}
@media(prefers-reduced-motion:reduce){.cycle{transition:none}}

/* Skip link, grain, progress */
.skip-link{position:fixed;top:-100%;left:1rem;z-index:200;background:var(--char);color:var(--cream);
  padding:.8rem 1.2rem;font:500 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  border-radius:var(--r-pill);transition:top .3s ease}
.skip-link:focus{top:1rem}
.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.47 0 0 0 0 0.42 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;pointer-events:none}
.progress i{display:block;height:100%;background:var(--brass);transform-origin:0 50%;transform:scaleX(0)}

/* ============ NAV ============ */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:clamp(1rem,2.5vh,1.7rem) clamp(1.15rem,4vw,2.7rem);
  transition:color .45s ease}
body[data-nav="dark"] .nav{color:#F0EAE0;text-shadow:0 1px 22px rgba(0,0,0,.42)}
body[data-nav="light"] .nav{color:#241E16;text-shadow:none}
.nav .logo{display:block}
.nav .logo img{height:36px;width:auto;display:block}
body[data-nav="dark"] .nav .logo img.logo-on-light{display:none}
body[data-nav="light"] .nav .logo img.logo-on-dark{display:none}
.nav-links{display:none;align-items:center;gap:clamp(1.4rem,2.6vw,2.4rem)}
@media(min-width:1024px){.nav-links{display:flex}}
.nav-links a,.nav-dd-btn{font:500 .72rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;position:relative;padding:0 0 3px;display:inline-flex;align-items:center}
.nav-links a::after,.nav-dd-btn::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .4s var(--ease-out)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after,
.nav-dd:hover .nav-dd-btn::after,.nav-dd:focus-within .nav-dd-btn::after{right:0}
.nav-dd{position:relative;display:inline-flex;align-items:center}
.nav-dd-panel{position:absolute;top:calc(100% + 1rem);left:-1.2rem;min-width:14.5rem;padding:1.1rem 1.2rem;
  display:flex;flex-direction:column;gap:.85rem;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .3s ease,transform .3s var(--ease-out),visibility 0s .3s;
  background:rgba(241,236,227,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid rgba(42,35,27,.14);border-radius:var(--r-card);
  box-shadow:0 14px 34px -18px rgba(0,0,0,.28)}
.nav-dd-panel a{color:#4A4136;text-shadow:none}
.nav-dd-panel a:hover{color:#2A231B}
.nav-dd:hover .nav-dd-panel,.nav-dd:focus-within .nav-dd-panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nav-right{display:flex;align-items:center;gap:clamp(1rem,2vw,1.6rem)}
.nav-ig{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:50%;opacity:.85;transition:opacity .3s ease,transform .4s var(--ease-out)}
.nav-ig:hover{opacity:1;transform:translateY(-1px)}
.nav-ig svg{width:14px;height:14px}
/* Plan-a-visit nav item — plain text link, consistent with the rest
   of the nav (V3: expanding pill-on-scroll interaction removed). */
.nav-book{display:inline-flex;align-items:center;position:relative;
  font:500 .72rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;padding:0 0 3px}
.nav-book::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .4s var(--ease-out)}
.nav-book:hover::after{right:0}
.nav-menu-btn{font:500 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:1.1rem .7rem;margin:-1.1rem -.7rem}
@media(min-width:1024px){.nav-menu-btn{display:none}}

/* Mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:110;background:var(--paper);color:#2A231B;
  display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,6vw,3rem);
  opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s .4s}
body.menu-open .mobile-menu{opacity:1;visibility:visible;transition-delay:0s}
body.menu-open{overflow:hidden}
.mm-close{position:absolute;top:clamp(1rem,2.5vh,1.7rem);right:clamp(1.15rem,4vw,2.7rem);
  font:500 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#2A231B;padding:1.1rem;margin:-1.1rem}
.mobile-menu nav{display:flex;flex-direction:column}
.mobile-menu nav>a{font:400 1.55rem/1 var(--display);color:#2A231B;padding:1.05rem 0;border-bottom:1px solid rgba(42,35,27,.16)}
.mm-sub{padding:.9rem 0 1.05rem 1.4rem;display:flex;flex-direction:column;gap:.8rem;border-bottom:1px solid rgba(42,35,27,.16)}
.mm-sub a{font:400 .95rem/1 var(--sans);color:#5C5142}
.mm-label{font:500 .62rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(42,35,27,.45);padding:1.2rem 0 .4rem}

/* ============ HEROES ============ */
.phero{position:relative;height:80vh;height:80dvh;min-height:500px;overflow:hidden;background:var(--char);display:flex;align-items:flex-end}
.phero-img,.phero-img img{position:absolute;inset:0}
.phero-img img{width:100%;height:118%;object-fit:cover;top:-9%;will-change:transform}
.phero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,16,.5) 0%,rgba(26,21,16,.12) 38%,rgba(26,21,16,.32) 66%,rgba(26,21,16,.85) 100%)}
.phero-inner{position:relative;z-index:2;padding-bottom:clamp(2.6rem,7vh,4.6rem);color:#F0EAE0}
.phero-eyebrow{display:flex;align-items:center;gap:.8rem;color:var(--brass);margin-bottom:1.2rem}
.phero-eyebrow .hair{width:clamp(2rem,5vw,3.6rem);height:1px;background:rgba(240,234,224,.34)}
.phero-eyebrow .lbl{font:500 .69rem/1 var(--sans);letter-spacing:.265em;text-transform:uppercase}
.phero h1{color:#F0EAE0}
.phero-sub{margin-top:1.4rem;max-width:42rem;color:rgba(240,234,224,.8);
  font:300 clamp(1.05rem,1.5vw,1.4rem)/1.5 var(--display);letter-spacing:-.01em}
.phero-cta{margin-top:2rem;display:flex;gap:1.8rem;align-items:center;flex-wrap:wrap}

.home-hero{height:100vh;height:100dvh;min-height:620px}
.home-hero .phero-inner{padding-bottom:clamp(3rem,9vh,5.5rem)}
.home-hero h1{font-size:clamp(2.9rem,7.6vw,7.2rem)}
.scroll-cue{position:absolute;bottom:clamp(1.2rem,3vh,2rem);left:50%;transform:translateX(-50%);z-index:3;
  font:500 .6rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(240,234,224,.55);
  display:flex;flex-direction:column;align-items:center;gap:.6rem}
.scroll-cue::after{content:"";width:1px;height:34px;background:linear-gradient(rgba(240,234,224,.55),transparent);
  animation:ttm-cue 2.2s ease-in-out infinite}
@keyframes ttm-cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}
@media(prefers-reduced-motion:reduce){.scroll-cue::after{animation:none}}

@keyframes ttm-drift{0%{transform:scale(1.02)}50%{transform:scale(1.06) translate3d(-.6%,-.4%,0)}100%{transform:scale(1.02)}}
.kenburns img{animation:ttm-drift 24s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.kenburns img{animation:none}}

/* ============ EDITORIAL PATTERNS ============ */
.split{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
@media(min-width:860px){.split{grid-template-columns:1.05fr 1fr}.split.rev>.split-media{order:2}}
.split-media{overflow:hidden;border-radius:var(--r-flat)}
.split-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.2s var(--ease-out)}
.split-media.landscape img{aspect-ratio:3/2}
.split-body .kicker{margin-bottom:1.2rem}
.split-body .body{margin-top:1.3rem;max-width:34rem}
.split-body .tlink,.split-body .btn-fill{margin-top:1.9rem}

/* Walk-through rows */
.walk{display:flex;flex-direction:column;gap:clamp(3.4rem,8vh,6rem);margin-top:clamp(2.8rem,6vh,4.2rem)}
.walk-row{display:grid;gap:clamp(1.6rem,4vw,3.4rem);align-items:end}
@media(min-width:860px){.walk-row{grid-template-columns:1.35fr 1fr}.walk-row.rev{grid-template-columns:1fr 1.35fr}.walk-row.rev .walk-media{order:2}}
.walk-media{overflow:hidden}
.walk-media img{width:100%;object-fit:cover;aspect-ratio:16/10;transition:transform 1.2s var(--ease-out)}
.walk-row:hover .walk-media img{transform:scale(1.03)}
.walk-cap .num{font:300 italic 1rem/1 var(--display);color:var(--brass);display:block;margin-bottom:.9rem}
.walk-cap h3{margin-bottom:.7rem}
.walk-cap p{max-width:26rem}

/* Our Spaces — full-bleed horizontal editorial sequence.
   Vertical page scroll drives horizontal movement (scroll-jack, via
   .hs-active added by site.js on desktop). Fallback and mobile:
   a swipeable scroll-snap strip. Minimal chrome, no outer padding. */
.hscroll{position:relative;background:var(--paper)}
.hs-sticky{position:relative}
.hs-track{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;will-change:transform}
.hs-track::-webkit-scrollbar{display:none}
.hs-panel{position:relative;flex:0 0 auto;height:clamp(480px,74vh,700px);
  overflow:hidden;background:var(--char);scroll-snap-align:start}
.hscroll.hs-active .hs-sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
.hscroll.hs-active .hs-track{overflow:visible;scroll-snap-type:none;height:100vh;height:100dvh}
.hscroll.hs-active .hs-panel{height:100vh;height:100dvh}
.hs-panel.hs-intro{width:min(88vw,620px)}
.hs-intro img{width:100%;height:100%;object-fit:cover;display:block}
.hs-intro::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(200deg,rgba(26,21,16,.16) 0%,rgba(26,21,16,.42) 58%,rgba(26,21,16,.8) 100%)}
.hs-intro-body{position:absolute;z-index:2;left:clamp(1.6rem,4vw,3rem);right:clamp(1.6rem,4vw,3rem);bottom:clamp(1.6rem,5vh,3rem)}
.hs-intro .p-label{color:var(--brass)}
.hs-intro h2{font:400 clamp(2.8rem,7vw,5.8rem)/1 var(--display);letter-spacing:-.02em;color:#F1ECE3;margin-top:.9rem}
.hs-intro h2 .it{font-weight:300}
.hs-intro p{margin-top:1rem;max-width:24rem;color:rgba(241,236,227,.82);font:300 clamp(1rem,1.3vw,1.2rem)/1.55 var(--display)}
.hs-intro .tlink{margin-top:1.6rem;color:#F1ECE3}
.hs-intro .tlink .ul{border-color:rgba(241,236,227,.38)}
.hs-intro .hs-cue{margin-top:2rem;font:500 .6rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(241,236,227,.55)}
.hs-panel.hs-space{width:min(80vw,900px);display:block}
@media(max-width:759px){.hs-panel.hs-space{width:86vw}.hs-panel.hs-intro{width:86vw}}
.hs-space img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.3s var(--ease-out)}
.hs-space:hover img{transform:scale(1.03)}
.hs-space::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(195deg,rgba(26,21,16,0) 44%,rgba(26,21,16,.4) 76%,rgba(26,21,16,.76) 100%)}
.hs-body{position:absolute;z-index:2;left:clamp(1.3rem,3vw,2.4rem);right:clamp(1.3rem,3vw,2.4rem);bottom:clamp(1.3rem,4vh,2.4rem);color:#F1ECE3}
.hs-body .p-label{color:var(--brass)}
.hs-body h3{font:400 clamp(1.9rem,3.8vw,3.4rem)/1.03 var(--display);letter-spacing:-.018em;color:#F1ECE3;margin-top:.55rem}
.hs-body h3 .it{font-weight:300}
.hs-body p{margin-top:.55rem;max-width:28rem;color:rgba(241,236,227,.78);font:400 .96rem/1.6 var(--sans)}
.hs-body .tlink{margin-top:1.05rem;color:#F1ECE3}
.hs-body .tlink .ul{border-color:rgba(241,236,227,.38)}
.hs-space:hover .tlink .ul{border-color:#F1ECE3}
.hs-space:hover .tlink .ar{transform:translate(3px,-3px)}
.p-label{font:500 .62rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--brass);display:block}

/* Practitioner cards */
.p-grid{display:grid;gap:clamp(1.6rem,3.4vw,2.6rem);margin-top:clamp(2.8rem,6vh,4.2rem)}
@media(min-width:760px){.p-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.p-grid.cols-3{grid-template-columns:repeat(3,1fr)}.p-grid.cols-4{grid-template-columns:repeat(4,1fr)}}
.p-card{display:flex;flex-direction:column;transition:transform .55s var(--ease-out)}
.p-card:hover{transform:translateY(-3px)}
.p-card .p-img{overflow:hidden;border-radius:var(--r-card)}
.p-card .p-img img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.p-card:hover .p-img img{transform:scale(1.04)}
.p-card .p-label{margin:1.3rem 0 .5rem}
[data-theme="light"] .p-label,[data-theme="warm"] .p-label,[data-theme="stone"] .p-label{color:#715D3C}
[data-theme="light"] .walk-cap .num,[data-theme="warm"] .walk-cap .num,[data-theme="stone"] .walk-cap .num{color:#715D3C}
.p-card h3{font-size:clamp(1.3rem,2vw,1.7rem)}
.p-card .body{margin-top:.7rem}
.p-card .tlink{margin-top:1.15rem}

/* Editorial mosaic — mixed-orientation architectural gallery (Piper rhythm) */
.mosaic{display:grid;gap:clamp(1.2rem,2.8vw,2.4rem);margin-top:clamp(2.8rem,6vh,4.2rem)}
@media(min-width:760px){
  .mosaic{grid-template-columns:repeat(12,1fr);align-items:start}
  .mosaic .m-l{grid-column:span 7}
  .mosaic .m-p{grid-column:span 5}
  .mosaic .m-p.down{margin-top:clamp(2.5rem,7vh,5rem)}
  .mosaic .m-w{grid-column:span 12}
}
.mosaic figure{overflow:hidden;margin:0}
.mosaic .m-l img{width:100%;aspect-ratio:4/3;object-fit:cover}
.mosaic .m-p img{width:100%;aspect-ratio:3/4;object-fit:cover}
.mosaic .m-w img{width:100%;aspect-ratio:21/9;object-fit:cover}
.mosaic img{transition:transform 1.2s var(--ease-out)}
.mosaic figure:hover img{transform:scale(1.025)}
.mosaic figcaption{font:400 .76rem/1.6 var(--sans);letter-spacing:.02em;color:var(--mut);padding-top:.7rem}
.credit{font:400 .72rem/1.6 var(--sans);letter-spacing:.06em;color:var(--mut);text-transform:uppercase}

/* Gallery */
.gallery{display:grid;gap:clamp(1rem,2.4vw,1.8rem);margin-top:clamp(2.8rem,6vh,4.2rem)}
@media(min-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery.cols-3{grid-template-columns:repeat(3,1fr)}}
.gallery figure{overflow:hidden;margin:0}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.gallery figure:hover img{transform:scale(1.06)}
.gallery figcaption{font:400 .76rem/1.6 var(--sans);letter-spacing:.02em;color:var(--mut);padding-top:.7rem}

/* CTA band */
.ctaband{position:relative;min-height:74vh;min-height:74svh;display:flex;align-items:center;overflow:hidden;background:var(--char)}
.ctaband .cta-img,.ctaband .cta-img img{position:absolute;inset:0}
.ctaband .cta-img img{width:100%;height:114%;object-fit:cover;top:-7%}
.ctaband .cta-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,16,.62),rgba(26,21,16,.45),rgba(26,21,16,.78))}
.ctaband .cta-inner{position:relative;z-index:2;text-align:center;margin-inline:auto;max-width:44rem;padding:clamp(4rem,10vh,6rem) 0;color:#F0EAE0}
.ctaband h2{color:#F0EAE0}
.ctaband .lead{color:rgba(240,234,224,.8);margin-top:1.2rem}
.ctaband .cta-actions{margin-top:2.2rem;display:flex;gap:1.8rem;justify-content:center;align-items:center;flex-wrap:wrap}
.ctaband .tlink{color:#F0EAE0}
.ctaband .tlink .ul{border-color:rgba(240,234,224,.4)}

/* Visit block / hours */
.hours-table{width:100%;border-collapse:collapse;margin-top:1.6rem}
.hours-table th,.hours-table td{text-align:left;padding:.95rem .2rem;border-bottom:1px solid var(--line);font:400 .95rem/1.5 var(--sans);color:var(--bd);vertical-align:top}
.hours-table th{font-weight:500;color:var(--tx);white-space:nowrap;padding-right:1.6rem}
.hours-table .tnote{display:block;margin-top:.2rem}
@media(max-width:759px){
  .hours-table,.hours-table tbody,.hours-table tr,.hours-table th,.hours-table td{display:block}
  .hours-table th{border-bottom:0;padding-bottom:.15rem}
  .hours-table td{padding-top:0}
}
.addr-lines{font:400 1.02rem/1.9 var(--sans);color:var(--bd)}
.addr-lines strong{font-weight:500;color:var(--tx)}

/* Contact form */
.cform{display:grid;gap:1.9rem;margin-top:2.2rem}
.cfield{display:flex;flex-direction:column;gap:.55rem}
.cfield label{font:500 .66rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.cfield input,.cfield select,.cfield textarea{
  font:400 1rem/1.5 var(--sans);color:var(--tx);background:transparent;
  border:0;border-bottom:1px solid var(--hair);padding:.65rem 0;border-radius:0;
  transition:border-color .35s ease;appearance:none;-webkit-appearance:none}
.cfield select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2394866D' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .2rem center;cursor:pointer}
.cfield input:focus,.cfield select:focus,.cfield textarea:focus{outline:none;border-color:var(--brass)}
.cfield textarea{min-height:8.5rem;resize:vertical}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.map-embed{width:100%;height:clamp(280px,42vh,420px);border:1px solid var(--line);
  filter:grayscale(.72) contrast(.96) brightness(.97)}

/* Reveals + parallax */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1.05s var(--ease-out),transform 1.05s var(--ease-out)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.d1x{transition-delay:.12s}.js .reveal.d2x{transition-delay:.32s}
.js .reveal.d3x{transition-delay:.48s}.js .reveal.d4x{transition-delay:.6s}
.js .reveal.unmask{clip-path:inset(0 0 16% 0);transition:opacity 1.05s var(--ease-out),transform 1.05s var(--ease-out),clip-path 1.3s var(--ease-out)}
.js .reveal.unmask.in{clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none;clip-path:none}
}

/* ============ FOOTER ============ */
.footer{background:var(--paper-warm);color:#5C5142;padding:clamp(4rem,9vh,6.5rem) 0 2.2rem}
.foot-top{display:grid;gap:clamp(2.4rem,5vw,4rem)}
@media(min-width:760px){.foot-top{grid-template-columns:1fr 1.25fr}}
.foot-brand .fb-logo{display:inline-block}
.foot-brand .fb-logo img{height:54px;width:auto;display:block}
.foot-brand .tg{font:300 italic 1.15rem/1.4 var(--display);color:#6C614E;margin-top:1.1rem;max-width:22rem}
.foot-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
@media(min-width:760px){.foot-cols{grid-template-columns:repeat(4,1fr)}}
.foot-col h4{font:500 .65rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(42,35,27,.66);margin-bottom:1rem}
.foot-col a,.foot-col p{font:400 .92rem/1.85 var(--sans);color:#5C5142;display:block}
.foot-col a:hover{color:#2A231B}
.foot-social{display:flex;gap:.7rem;margin-top:.3rem}
.foot-social a{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;
  border:1px solid rgba(42,35,27,.3);border-radius:50%;transition:border-color .3s ease,transform .4s var(--ease-out)}
.foot-social a:hover{border-color:rgba(42,35,27,.7);transform:translateY(-2px)}
.foot-social svg{width:14px;height:14px}
.foot-map{margin-top:clamp(2.4rem,5vh,3.4rem)}
.foot-map iframe{width:100%;height:clamp(180px,23vh,232px);border:1px solid rgba(42,35,27,.18);display:block;
  filter:grayscale(.72) contrast(.96) brightness(.97)}
.foot-note{margin-top:2rem;padding-top:1.6rem;border-top:1px solid rgba(42,35,27,.16);
  font:400 .76rem/1.7 var(--sans);color:rgba(42,35,27,.66);max-width:50ch}
.foot-bot{margin-top:2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font:400 .78rem/1.6 var(--sans);color:rgba(42,35,27,.66)}

/* ============ SPACES LOOKBOOK ============ */
.lk-cover{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:clip;background:var(--char)}
.lk-media{position:absolute;inset:0}
.lk-media img{position:absolute;top:-7%;left:0;width:100%;height:114%;object-fit:cover;will-change:transform}
.lk-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,16,.42) 0%,rgba(26,21,16,.1) 40%,rgba(26,21,16,.36) 70%,rgba(26,21,16,.88) 100%)}
.lk-inner{position:relative;z-index:2;width:min(1280px,88vw);margin-inline:auto;padding-bottom:clamp(2.6rem,8vh,5rem);color:#F1ECE3}
.lk-issue{font:500 .69rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:.9rem}
.lk-issue .hair{width:clamp(2rem,5vw,3.6rem);height:1px;background:rgba(241,236,227,.34)}
.lk-mast{font:400 clamp(3.4rem,13vw,12rem)/0.95 var(--display);letter-spacing:-.025em;color:#F1ECE3;margin-top:1.2rem;hyphens:none;-webkit-hyphens:none}
.lk-mast .it{font-weight:300}
.lk-standfirst{margin-top:1.4rem;max-width:34rem;color:rgba(241,236,227,.82);font:300 clamp(1.05rem,1.5vw,1.4rem)/1.5 var(--display)}
/* Centred arrival variant — calm, focused, no directory list */
.lk-cover.lk-center{align-items:center;text-align:center}
.lk-cover.lk-center .lk-inner{padding-bottom:0;display:flex;flex-direction:column;align-items:center}
.lk-cover.lk-center .lk-issue{justify-content:center}
.lk-cover.lk-center .lk-standfirst{max-width:46rem;margin-inline:auto}
.lk-cover.lk-center .lk-cta{margin-top:2rem;display:flex;gap:1.8rem;align-items:center;justify-content:center;flex-wrap:wrap}
.lk-cover.lk-center .lk-cta .tlink{color:#F1ECE3}
.lk-cover.lk-center .lk-cta .tlink .ul{border-color:rgba(241,236,227,.4)}
.lk-cover.lk-center .lk-scrim{background:linear-gradient(180deg,rgba(26,21,16,.5) 0%,rgba(26,21,16,.3) 45%,rgba(26,21,16,.45) 75%,rgba(26,21,16,.7) 100%)}

.lk-plate{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:clip;background:var(--char)}
.lk-num{position:absolute;z-index:2;top:clamp(4.5rem,10vh,7rem);right:clamp(.5rem,3vw,2.5rem);
  font:300 italic clamp(7rem,22vw,19rem)/0.8 var(--display);color:transparent;
  -webkit-text-stroke:1px rgba(241,236,227,.34);pointer-events:none;user-select:none}
.lk-cat{font:500 .69rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:.9rem}
.lk-cat .hair{width:clamp(2rem,5vw,3.6rem);height:1px;background:rgba(241,236,227,.34)}
.lk-name{font:400 clamp(2.9rem,9vw,8.2rem)/0.98 var(--display);letter-spacing:-.025em;color:#F1ECE3;margin-top:1rem}
.lk-name .it{font-weight:300}
.lk-line{margin-top:1.2rem;max-width:36rem;color:rgba(241,236,227,.82);font:300 clamp(1.02rem,1.4vw,1.32rem)/1.55 var(--display)}
.lk-cta{margin-top:1.9rem;display:flex;gap:1.8rem;align-items:center;flex-wrap:wrap}
.lk-cta .tlink{color:#F1ECE3}
.lk-cta .tlink .ul{border-color:rgba(241,236,227,.4)}
@media(max-width:759px){.lk-num{top:auto;bottom:52vh;opacity:.7}}
.lk-foot{position:absolute;z-index:2;left:0;right:0;bottom:.9rem;text-align:center;
  font:500 .6rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(241,236,227,.4)}

/* 404 */
.err-sec{min-height:100vh;min-height:100dvh;display:flex;align-items:center}
.err-links{margin-top:2.2rem;display:flex;gap:1.9rem;flex-wrap:wrap}

/* Utility */
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.center{text-align:center}
.hidden{display:none}
::selection{background:var(--brass);color:var(--char)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
