/* ==========================================================================
   Signature Luxury Pools — main.css
   Brand: Pantone Black 7 C #3d3935 · #554f48 · Cool Gray 7 #999999 · Cool Gray 2 #d0d0ce · Pantone 1235 C #ffb81c (accent only)
   Type: Cormorant Garamond (display) · Montserrat (stand-in for Gotham; swap the @font-face block)
   ========================================================================== */

/* ---- Fonts ---------------------------------------------------------------- */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-300-italic.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url("/assets/fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2")}
/* Gotham stand-in. To switch to Gotham: convert the OTFs to woff2, drop them in /assets/fonts, and change the family name below to "Gotham". */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url("/assets/fonts/montserrat-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/montserrat-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/montserrat-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/montserrat-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/montserrat-latin-600-normal.woff2") format("woff2")}

/* ---- Tokens ---------------------------------------------------------------- */
:root{
  --ink:#3d3935; --ink-2:#554f48; --ink-3:#2b2825; --stone:#999999; --mist:#d0d0ce; --gold:#ffb81c;
  --paper:#f6f4f0; --paper-2:#ece9e3; --paper-3:#e4e0d8; --white:#fff;
  --text:#3d3935; --text-muted:#6f6a64; --text-light:#f6f4f0; --text-light-muted:#c9c5be;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Gotham","Montserrat","Helvetica Neue",Arial,sans-serif;
  --wrap:1440px; --gutter:clamp(20px,4vw,64px);
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --header-h:88px;
  --fs-display:clamp(2.6rem,6.2vw,5.6rem); --fs-h1:clamp(2.4rem,5vw,4.6rem); --fs-h2:clamp(2rem,3.6vw,3.4rem); --fs-h3:clamp(1.4rem,2vw,2rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-weight:300;font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,svg{max-width:100%;display:block}
img{height:auto;background:var(--ph,transparent)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
p{margin:0 0 1.2em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.05;letter-spacing:-.005em;margin:0 0 .5em;text-wrap:balance}
address{font-style:normal}
figure{margin:0}
::selection{background:var(--gold);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:.6rem 1rem}
.skip:focus{left:8px}
.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.section{padding-block:clamp(72px,10vw,150px);position:relative}
.section--dark{background:var(--ink);color:var(--text-light)}
.section--dark p{color:var(--text-light-muted)}
.section--tint{background:var(--paper-2)}

/* ---- Type ------------------------------------------------------------------ */
.h1{font-size:var(--fs-h1)}
.h2{font-size:var(--fs-h2)}
.h3{font-size:var(--fs-h3);font-family:var(--serif);font-weight:400;line-height:1.15}
.h1--light,.h2--light{color:var(--text-light)}
.lede{font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.65;font-weight:300}
.small{font-size:.85rem;color:var(--text-muted)}
.eyebrow{display:flex;align-items:center;gap:.9rem;margin:0 0 1.4rem;font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted)}
.eyebrow::before{content:"";width:1px;height:1.6em;background:var(--gold);flex:none}
.section--dark .eyebrow,.hero .eyebrow,.phero .eyebrow,.hscroll .eyebrow,.reveal .eyebrow,.nextp .eyebrow{color:var(--text-light-muted)}
.quote{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.3;text-wrap:pretty}
mark.ph{background:rgba(255,184,28,.28);color:inherit;padding:0 .2em;border-radius:2px;box-decoration-break:clone}
.section--dark mark.ph,.cta mark.ph{background:rgba(255,184,28,.35)}

/* ---- Links & buttons ------------------------------------------------------- */
.link{position:relative;display:inline-block;font-size:.78rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding-bottom:.35em}
.link::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--gold);transform-origin:left;transition:transform .5s var(--ease-out)}
.link:hover::after{transform:scaleX(.4)}
.link--light{color:var(--text-light)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.95rem 2rem;border:1px solid var(--ink);color:var(--ink);font-size:.76rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);position:relative;overflow:hidden;isolation:isolate}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out);z-index:-1}
.btn:hover{color:var(--paper)}
.btn:hover::before{transform:scaleY(1)}
.btn--light{border-color:var(--paper);color:var(--paper)}
.btn--light::before{background:var(--paper)}
.btn--light:hover{color:var(--ink)}
.btn--ghost{border-color:rgba(246,244,240,.45);color:var(--paper)}
.btn--ghost::before{background:rgba(246,244,240,.14)}
.btn--ghost:hover{color:var(--paper);border-color:var(--paper)}
.btn--pill{border-radius:999px;min-height:44px;padding:.7rem 1.5rem}

/* ---- Header ---------------------------------------------------------------- */
.header{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--paper);transition:background .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease),transform .5s var(--ease)}
.header::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,18,16,.55),rgba(20,18,16,0));pointer-events:none;opacity:1;transition:opacity .5s var(--ease)}
.header--solid,.header.is-solid{background:rgba(246,244,240,.92);color:var(--ink);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);box-shadow:0 1px 0 rgba(61,57,53,.08)}
.header--solid::before,.header.is-solid::before{opacity:0}
.header.is-hidden{transform:translateY(-100%)}
.header__bar{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--header-h);width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.header__brand{display:block;color:currentColor}
.header__brand svg{height:22px;width:auto}
.header__brand--center{justify-self:center;grid-column:2}
.nav{display:none}
.nav__list{display:flex;gap:clamp(1.2rem,2.4vw,2.6rem);align-items:center}
.nav--left{grid-column:1;justify-self:start}
.nav--right{grid-column:3;justify-self:end}
.nav__item{position:relative}
.nav__link{display:inline-block;padding:.9rem 0;font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;position:relative}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:.55rem;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
.nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1)}
.nav__sub{position:absolute;top:100%;left:-1.2rem;min-width:240px;padding:.9rem 0;background:var(--ink);color:var(--paper);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s .3s;box-shadow:0 20px 40px rgba(0,0,0,.18)}
.nav__item:hover>.nav__sub,.nav__item:focus-within>.nav__sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nav__sub a{display:block;padding:.55rem 1.2rem;font-size:.8rem;letter-spacing:.04em;color:var(--text-light-muted)}
.nav__sub a:hover{color:var(--paper);background:rgba(255,255,255,.05)}
.nav__swap{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border:1px solid currentColor;border-radius:999px;font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;opacity:.75;transition:opacity .3s,background .3s,color .3s}
.nav__swap::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.nav__swap:hover{opacity:1;background:var(--gold);color:var(--ink);border-color:var(--gold)}
.menu__swap{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:.4rem}
.header__phone{display:none;grid-column:3;justify-self:end;font-size:.78rem;font-weight:500;letter-spacing:.08em;margin-right:1.4rem}
.header__burger{grid-column:3;justify-self:end;width:44px;height:44px;display:grid;place-items:center;gap:0;position:relative}
.header__burger span{position:absolute;width:26px;height:1px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.header__burger span:first-child{top:18px}.header__burger span:last-child{top:26px}
.header__burger[aria-expanded="true"] span:first-child{top:22px;transform:rotate(45deg)}
.header__burger[aria-expanded="true"] span:last-child{top:22px;transform:rotate(-45deg)}
/* alt layout */
[data-nav="alt"] .header__bar{grid-template-columns:auto 1fr auto auto}
[data-nav="alt"] .header__brand--left{grid-column:1}
[data-nav="alt"] .nav--alt{grid-column:2;justify-self:end;margin-right:2rem}
[data-nav="alt"] .header__cta{grid-column:3;display:none}
[data-nav="alt"] .header__burger{grid-column:4}
@media (min-width:1024px){
  .nav{display:block}
  .header__burger{display:none}
  [data-nav="center"] .header__phone{display:none}
  [data-nav="alt"] .header__cta{display:inline-flex;color:inherit;border-color:currentColor}
  [data-nav="alt"] .header__cta::before{background:var(--gold)}
  [data-nav="alt"] .header__cta:hover{color:var(--ink);border-color:var(--gold)}
}
@media (max-width:1023.98px){
  :root{--header-h:72px}
  .header__brand svg{height:18px}
  .header__bar{grid-template-columns:1fr auto 1fr}
  .header__brand--center{grid-column:2}
  .header__brand--left{grid-column:1;justify-self:start}
  [data-nav="alt"] .header__bar{grid-template-columns:1fr auto}
  [data-nav="alt"] .header__burger{grid-column:2}
}
/* mobile menu */
.menu{position:fixed;inset:0;z-index:49;background:var(--ink);color:var(--paper);overflow:auto;padding-top:var(--header-h)}
.menu[hidden]{display:none}
.menu__inner{position:relative;min-height:100%;padding:2rem var(--gutter) 3rem;display:flex;flex-direction:column;gap:2rem}
.menu__mark{position:absolute;right:-10%;top:10%;width:70vw;opacity:.06;pointer-events:none}
.menu__list>li{border-top:1px solid rgba(255,255,255,.1);padding:1rem 0}
.menu__list>li>a{font-family:var(--serif);font-size:2rem;line-height:1.1}
.menu__list ul{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.menu__list ul a{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light-muted)}
.menu__foot{display:flex;flex-direction:column;gap:.8rem;margin-top:auto;font-size:.95rem}
.menu__foot .btn{align-self:flex-start;margin-top:.6rem}
body.menu-open{overflow:hidden}
body.menu-open .header{background:var(--ink);color:var(--paper);box-shadow:none;backdrop-filter:none}
body.menu-open .header::before{opacity:0}
body.menu-open .navtoggle{display:none}
/* header A/B preview toggle */
.navtoggle{position:fixed;left:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem .35rem .8rem;background:rgba(43,40,37,.92);color:#fff;border-radius:999px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(8px)}
.navtoggle a{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.25);font-weight:600}
.navtoggle a.is-on{background:var(--gold);color:var(--ink);border-color:var(--gold)}

/* ---- Hero ------------------------------------------------------------------ */
.hero{position:relative;background:var(--ink);color:var(--paper)}
.hero__pin{position:relative;height:100svh;min-height:640px;overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__video{width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,16,.55) 0%,rgba(20,18,16,.05) 45%,rgba(20,18,16,.25) 100%)}
.hero__plate{position:absolute;inset:0;background:var(--ink);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:xor;mask-composite:exclude}
.hero__plate{-webkit-mask-image:url("/assets/img/brand/s-mask.svg"),linear-gradient(#000,#000);mask-image:url("/assets/img/brand/s-mask.svg"),linear-gradient(#000,#000);-webkit-mask-size:var(--mask-size,46vh) auto,100% 100%;mask-size:var(--mask-size,46vh) auto,100% 100%;-webkit-mask-position:center 54%,0 0;mask-position:center 54%,0 0}
.hero__brand{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:calc(var(--header-h) + 5vh);text-align:center;pointer-events:none}
.hero__wordmark{width:min(52vw,520px);color:var(--paper)}
.hero__wordmark svg{width:100%;height:auto}
.hero__tagline{position:absolute;bottom:9vh;left:0;right:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.2rem,2vw,1.7rem);letter-spacing:.02em;color:var(--mist);margin:0}
.hero__tagline span{color:var(--gold);font-style:normal}
.hero__content{position:absolute;inset:0;display:flex;align-items:flex-end;padding-bottom:clamp(48px,8vh,96px);opacity:0;visibility:hidden}
.hero__content .wrap{max-width:900px;margin-left:var(--gutter)}
.hero__title{font-size:var(--fs-display);font-weight:300;margin:0 0 .4em;color:var(--paper)}
.hero__lede{max-width:62ch;color:var(--text-light-muted);font-size:clamp(.95rem,1.1vw,1.1rem);margin-bottom:1.6em}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:0}
.hero__scroll{position:absolute;right:var(--gutter);bottom:2.2rem;display:flex;align-items:center;gap:.8rem;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mist)}
.hero__scroll i{width:1px;height:48px;background:linear-gradient(var(--gold),transparent);display:block;animation:scrollhint 2.2s var(--ease) infinite}
@keyframes scrollhint{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.no-js .hero__content,.hero.is-static .hero__content{opacity:1;visibility:visible}
.no-js .hero__plate,.hero.is-static .hero__plate,.no-js .hero__brand,.hero.is-static .hero__brand{display:none}

/* ---- Mist transition ---------------------------------------------------------- */
.mist{position:relative;height:0;z-index:3;pointer-events:none}
.mist__layer{position:absolute;left:-10%;right:-10%;height:52vh;bottom:-2vh;background-repeat:repeat-x;background-size:auto 100%;background-position:center bottom}
.mist__layer--1{background-image:url("/assets/img/ui/mist-1.png");opacity:.95}
.mist__layer--2{background-image:url("/assets/img/ui/mist-2.png");height:62vh;opacity:.9}
.no-js .mist{display:none}

/* ---- Standard (stats) -------------------------------------------------------- */
.standard{overflow:hidden;padding-top:clamp(96px,14vw,190px)}
.standard__mark{position:absolute;right:-6%;top:-4%;width:min(46vw,620px);opacity:.06;color:var(--ink);pointer-events:none}
.standard__grid,.story__grid,.faq__grid,.cta__grid,.areas__grid,.assoc__grid,.intro__grid{display:grid;gap:clamp(2rem,5vw,6rem);grid-template-columns:1fr}
@media (min-width:900px){.standard__grid,.story__grid,.faq__grid,.cta__grid,.areas__grid,.assoc__grid,.intro__grid{grid-template-columns:5fr 7fr}}
.stats{display:grid;grid-template-columns:repeat(2,1fr);margin-top:clamp(3rem,6vw,6rem);border-top:1px solid rgba(61,57,53,.15)}
@media (min-width:900px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats li{padding:2rem 1.5rem 1.6rem 0;border-bottom:1px solid rgba(61,57,53,.15);position:relative}
.stats li+li::before{content:"";position:absolute;left:-1px;top:2rem;bottom:1.6rem;width:1px;background:var(--gold);opacity:.7}
@media (min-width:900px){.stats li{padding-left:1.5rem}.stats li:first-child{padding-left:0}}
.stats strong{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,4.4vw,4.2rem);line-height:1;margin-bottom:.4rem;color:var(--ink)}
.stats strong[data-ph]{font-size:clamp(1.6rem,2.6vw,2.4rem);color:var(--text-muted)}
.stats span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}

/* ---- Services stack ---------------------------------------------------------- */
.stack{position:relative;background:var(--ink)}
.panel-wrap{height:200svh}
@media (max-width:899.98px){.panel-wrap{height:auto}}
.panel{position:sticky;top:0;height:100svh;min-height:640px;color:var(--paper);background:var(--ink-3);overflow:hidden;box-shadow:0 -30px 60px rgba(0,0,0,.35)}
.panel::before{content:"";position:absolute;inset:0;background:var(--panel-bg,#3d3935);opacity:.35;mix-blend-mode:multiply}
.panel__inner{position:relative;height:100%;display:grid;grid-template-columns:1fr;align-items:stretch}
@media (min-width:900px){.panel__inner{grid-template-columns:45fr 55fr}}
.panel__text{display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 2rem) var(--gutter) 3rem;max-width:640px}
.panel__index{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem}
.panel__index span{color:var(--text-light-muted)}
.panel__title{font-size:clamp(2.2rem,4.2vw,4rem);margin-bottom:1rem}
.panel__copy{color:var(--text-light-muted);margin-bottom:2rem;max-width:52ch}
.panel__media{position:relative;overflow:hidden;min-height:44vh}
.panel__img{position:absolute;inset:0}
.panel__img img{width:100%;height:100%;object-fit:cover}
.panel__img figcaption{position:absolute;left:1.5rem;bottom:1.4rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:rgba(43,40,37,.55);padding:.5rem .9rem;backdrop-filter:blur(6px)}
.panel__img[data-panel-img]:not([data-panel-img="0"]){opacity:0}
.panel__loop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.panel__counter{position:absolute;right:1.5rem;bottom:1.4rem;font-size:.7rem;letter-spacing:.2em;color:var(--paper);margin:0;font-variant-numeric:tabular-nums}
.no-js .panel,.reduced .panel{position:relative;height:auto}
.no-js .panel-wrap,.reduced .panel-wrap{height:auto}
@media (max-width:899.98px){.panel{position:relative;height:auto;min-height:0}.panel__inner{grid-template-columns:1fr}.panel__media{min-height:56vw}.panel__img:not([data-panel-img="0"]){display:none}.panel__img{opacity:1!important}.panel__counter{display:none}}
.no-js .panel__img,.reduced .panel__img{position:relative;opacity:1!important;margin-bottom:2px}
.no-js .panel__img:not([data-panel-img="0"]),.reduced .panel__img:not([data-panel-img="0"]){display:none}

/* ---- Horizontal scroll ------------------------------------------------------- */
.hscroll{position:relative;background:var(--ink-3);color:var(--paper)}
.hscroll__pin{position:relative;height:100svh;min-height:640px;overflow:hidden}
.hscroll__bg{position:absolute;inset:-6%}
.hscroll__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(.9)}
.hscroll__head{position:absolute;top:calc(var(--header-h) + 3vh);left:0;right:0;z-index:2}
.hscroll__track{position:absolute;left:0;top:calc(var(--header-h) + 15vh);display:flex;gap:clamp(1.2rem,2.5vw,3rem);padding-left:var(--gutter);will-change:transform}
.hcard{flex:none;width:min(62vw,880px,calc((100svh - var(--header-h) - 22vh - 90px) * 1.6));display:block;color:var(--paper)}
.hcard__media{aspect-ratio:16/10;overflow:hidden;background:var(--ink-2)}
.hcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.hcard:hover .hcard__media img{transform:scale(1.04)}
.hcard__body{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1.2rem;padding-top:1.2rem;align-items:baseline}
.hcard__index{font-size:.7rem;letter-spacing:.2em;color:var(--gold);margin:0;grid-row:1/3}
.hcard__title{font-size:clamp(1.6rem,2.4vw,2.4rem);margin:0}
.hcard__meta{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light-muted);margin:0}
.hcard--end{width:min(40vw,520px,calc((100svh - var(--header-h) - 22vh - 90px) * 1.1))}
.hcard__end{aspect-ratio:16/10;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem;padding:2rem;border:1px solid rgba(246,244,240,.25);position:relative;overflow:hidden}
.hcard__end-mark{position:absolute;right:-12%;top:-14%;width:60%;opacity:.12;color:var(--paper)}
.hcard__end .h3{color:var(--paper)}
@media (max-width:899.98px){
  .hscroll__pin{height:auto;min-height:0;padding:calc(var(--header-h) + 2rem) 0 3rem}
  .hscroll__head{position:static;margin-bottom:2rem}
  .hscroll__track{position:static;transform:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-right:var(--gutter);-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .hscroll__track::-webkit-scrollbar{display:none}
  .hcard{width:84vw;scroll-snap-align:start}
  .hcard--end{width:70vw}
}

/* ---- Editorial grid -------------------------------------------------------------- */
.egrid__grid{display:grid;gap:clamp(1rem,2vw,2rem);grid-template-columns:1fr}
@media (min-width:768px){.egrid__grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(300px,32vw,600px)}.tile{display:flex;flex-direction:column}.tile__media,.tile--a .tile__media,.tile--f .tile__media{aspect-ratio:auto;flex:1;min-height:0}
  .tile--a{grid-column:span 4}.tile--b{grid-column:span 2}.tile--c{grid-column:span 3}.tile--d{grid-column:span 3}.tile--e{grid-column:span 2}.tile--f{grid-column:span 4}}
.tile{display:block;position:relative;color:var(--paper)}
.tile__media{overflow:hidden;aspect-ratio:4/3;background:var(--paper-3);clip-path:inset(0 0 0 0)}
.tile--a .tile__media,.tile--f .tile__media{aspect-ratio:16/9}
.tile__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out)}
.tile:hover .tile__media img{transform:scale(1.045)}
.tile__cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(1rem,2vw,1.8rem);display:flex;flex-direction:column;gap:.2rem;background:linear-gradient(to top,rgba(20,18,16,.6),rgba(20,18,16,0));pointer-events:none}
.tile__title{font-family:var(--serif);font-size:clamp(1.4rem,2vw,2rem);line-height:1.1}
.tile__meta{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-light-muted)}
.egrid__more{margin-top:clamp(2rem,4vw,4rem);text-align:center}
.egrid--index .tile.is-hidden{display:none}
.egrid__empty{text-align:center;color:var(--text-muted);padding:3rem 0}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;position:sticky;top:var(--header-h);z-index:5;padding:.8rem 0;background:linear-gradient(var(--paper) 80%,transparent)}
.chip{padding:.55rem 1.1rem;border:1px solid rgba(61,57,53,.25);border-radius:999px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;transition:all .3s var(--ease)}
.chip:hover{border-color:var(--ink)}
.chip.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ---- Mask reveal + testimonials -------------------------------------------- */
.reveal{position:relative;background:var(--paper)}
.reveal__pin{position:relative;height:100svh;min-height:640px;overflow:hidden;background:var(--paper)}
.reveal__media{position:absolute;inset:0;clip-path:inset(18% 20% 18% 20% round 2px);background:var(--ink)}
.reveal__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.reveal__media::after{content:"";position:absolute;inset:0;background:rgba(20,18,16,.35)}
.reveal__quote{position:absolute;left:0;right:0;bottom:clamp(48px,10vh,120px);color:var(--paper);opacity:0;transform:translateY(20px)}
.reveal__quote blockquote{margin:0;max-width:780px}
.reveal__quote footer{margin-top:1.4rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-light-muted)}
.reveal__more{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:1fr;padding-block:clamp(56px,8vw,110px)}
@media (min-width:900px){.reveal__more{grid-template-columns:1fr 1fr auto;align-items:end}}
.tq p{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.35;margin-bottom:1rem}
.tq{margin:0;border-left:1px solid var(--gold);padding-left:1.4rem}
.tq footer{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}
.reveal__link{margin:0}
.no-js .reveal__pin,.reduced .reveal__pin{height:auto}
.no-js .reveal__media,.reduced .reveal__media{position:relative;clip-path:none;aspect-ratio:16/9}
.no-js .reveal__media img,.reduced .reveal__media img{transform:none}
.no-js .reveal__quote,.reduced .reveal__quote{opacity:1;transform:none}

/* ---- Process steps ---------------------------------------------------------- */
.process__head{margin-bottom:clamp(2rem,4vw,4rem)}
.steps{display:grid;gap:2rem;grid-template-columns:1fr;position:relative;counter-reset:step}
@media (min-width:768px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{position:relative;padding-top:1.6rem;border-top:1px solid rgba(61,57,53,.15)}
.steps li::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-out)}
.steps li.is-in::before{transform:scaleX(1)}
.steps__n{display:block;font-size:.72rem;letter-spacing:.24em;color:var(--gold);margin-bottom:1.2rem}
.steps h3{font-size:1.7rem;margin-bottom:.6rem}
.steps p{color:var(--text-muted);margin:0}
.section--tint .steps li{border-top-color:rgba(61,57,53,.2)}
.values__list h3{font-size:2rem}

/* ---- Areas map ------------------------------------------------------------------ */
.areas{overflow:hidden}
.areas__pin{position:relative}
.areas__grid{align-items:center}
@media (min-width:900px){.areas__grid{grid-template-columns:4fr 8fr}}
.areas__links{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin-top:1.6rem}
.areas__links a{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);position:relative;padding-bottom:.3rem;border-bottom:1px solid rgba(255,255,255,.15);transition:border-color .3s}
.areas__links a:hover,.areas__links a.is-lit{border-color:var(--gold)}
.areas__map{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:2px;background:#252320}
.areas__plate,.areas__plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.areas__plate img{animation:platebreathe 26s ease-in-out infinite alternate;transform-origin:52% 48%}
@keyframes platebreathe{from{transform:scale(1)}to{transform:scale(1.045)}}
.areas__map .map{position:absolute;inset:0;width:100%;height:100%}
.areas__map .map__county,.areas__map .map__county-lines,.areas__map .map__state-lines{display:none}
.areas{background:#252320}
.areas .h2--light{color:var(--paper)}
.map{width:100%;height:auto;overflow:visible}
.map__county{fill:rgba(246,244,240,.07);stroke:none}
.map__county-lines{fill:none;stroke:rgba(246,244,240,.18);stroke-width:.8;stroke-linejoin:round}
.map__state-lines{fill:none;stroke:rgba(246,244,240,.55);stroke-width:1.6;stroke-linejoin:round}
.map__route{fill:none;stroke:var(--gold);stroke-width:2;filter:drop-shadow(0 0 3px rgba(255,184,28,.35));stroke-linecap:round;stroke-dasharray:1000;stroke-dashoffset:1000}
.map__route--minor{stroke-width:1;opacity:.8}
.map__city{opacity:0;transition:opacity .5s var(--ease)}
.map__city--hq{opacity:1}
.map__city.is-in,.reduced .map__city,.no-js .map__city{opacity:1}
.map__dot{fill:var(--paper);stroke:#252320;stroke-width:2}
.map__label,.map__sub{paint-order:stroke;stroke:rgba(37,35,32,.75);stroke-width:4px;stroke-linejoin:round}
.map__city--hq .map__dot{fill:var(--gold);stroke:none;r:7}
.map__halo{fill:var(--gold);opacity:0;pointer-events:none}
.map__pulse{fill:none;stroke:var(--gold);stroke-width:1;opacity:.6;transform-origin:center;animation:pulse 2.6s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(.4);opacity:.7}100%{transform:scale(1.4);opacity:0}}
.map__label{font-family:var(--serif);font-size:24px;fill:var(--paper)}
.map__city--minor .map__label{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;fill:var(--text-light-muted)}
.map__sub{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;fill:var(--text-light-muted)}
.map__city.is-lit .map__label{fill:var(--gold)}
.no-js .map__route,.reduced .map__route{stroke-dashoffset:0}

/* mini map (area pages) */
.minimap{margin-top:2rem;background:#252320;border-radius:2px;position:relative;aspect-ratio:16/10;overflow:hidden}
.minimap .areas__plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.minimap .map{position:absolute;inset:0;width:100%;height:100%}
.minimap .map__county,.minimap .map__county-lines,.minimap .map__state-lines{display:none}
.minimap .map__label{font-size:20px}
.minimap .map__route{stroke-dashoffset:0;opacity:.35}
.minimap .map__route.is-lit{opacity:1;stroke-width:2.4}
.minimap .map__county,.minimap .map__city{opacity:1}
.minimap .map__city--minor{opacity:.5}

/* ---- FAQ ------------------------------------------------------------------------ */
.faq__list{border-top:1px solid rgba(61,57,53,.15)}
.qa{border-bottom:1px solid rgba(61,57,53,.15)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem 0;font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.25}
.qa summary::-webkit-details-marker{display:none}
.qa summary i{flex:none;width:28px;height:28px;position:relative;border:1px solid rgba(61,57,53,.25);border-radius:50%;transition:transform .5s var(--ease),border-color .3s}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.qa summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s var(--ease)}
.qa[open] summary i{border-color:var(--gold);transform:rotate(180deg)}
.qa[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.qa__a{padding:0 0 1.6rem;max-width:64ch;color:var(--text-muted)}
.qa__a p{margin:0}
.faq__toc{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-content:flex-start}
.faq__toc a{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid rgba(61,57,53,.2);padding-bottom:.2rem}
.faq__group{margin:2.4rem 0 .4rem;color:var(--text-muted);font-size:1.1rem;letter-spacing:.06em}
.faq__group:first-child{margin-top:0}
@media (min-width:900px){.faq--page .faq__grid{grid-template-columns:3fr 9fr}.faq__toc{position:sticky;top:calc(var(--header-h) + 1rem);flex-direction:column}}

/* ---- CTA + form --------------------------------------------------------------- */
.cta{overflow:hidden}
.cta__mark{position:absolute;left:-8%;bottom:-18%;width:min(50vw,700px);opacity:.05;color:var(--paper);pointer-events:none}
.nap{display:flex;flex-direction:column;gap:.3rem;margin-top:2.4rem;padding-left:1.4rem;border-left:1px solid var(--gold);color:var(--text-light-muted)}
.nap strong{color:var(--paper);font-weight:500;letter-spacing:.04em}
.nap--dark{color:var(--text-muted)}
.nap--dark strong{color:var(--ink)}
.form{display:grid;gap:1.2rem;color:var(--paper)}
.form__row{display:grid;gap:1.2rem;grid-template-columns:1fr}
@media (min-width:640px){.form__row{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:.5rem}
.field>span,.field legend{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-light-muted)}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(246,244,240,.35);padding:.6rem 0;font:inherit;color:inherit;border-radius:0;transition:border-color .3s}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold)}
.field textarea{resize:vertical;min-height:110px}
.field--choices{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem}
.field--choices legend{margin-bottom:.6rem;width:100%}
.field--choices label{font-size:.9rem;display:flex;gap:.5rem;align-items:center}
.field--choices input{accent-color:var(--gold)}
.form__hp{position:absolute;left:-9999px;opacity:0;height:0;margin:0}
.form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin:.6rem 0 0}
.form__note{font-size:.8rem;color:var(--text-light-muted)}
.form__status{font-size:.9rem;min-height:1.4em;margin:0}
.form__status.is-error{color:#f2c4a0}
.form__status.is-ok{color:var(--gold)}
.form--dark{color:var(--ink)}
.form--dark .field>span,.form--dark .field legend,.form--dark .form__note{color:var(--text-muted)}
.form--dark .field input,.form--dark .field textarea{border-bottom-color:rgba(61,57,53,.3)}

/* ---- Footer --------------------------------------------------------------------- */
.footer{position:relative;background:var(--ink-2);color:var(--text-light-muted);padding:clamp(56px,7vw,100px) 0 2.4rem;overflow:hidden}
.footer__mark{position:absolute;right:-6%;top:-10%;width:min(36vw,480px);opacity:.05;color:var(--paper);pointer-events:none}
.footer__grid{display:grid;gap:3rem;grid-template-columns:1fr}
@media (min-width:768px){.footer__grid{grid-template-columns:2fr 1fr 1fr}}
@media (min-width:1100px){.footer__grid{grid-template-columns:5fr 2fr 2fr 2fr}}
.footer__logo{display:block;width:min(280px,70vw);color:var(--paper);margin-bottom:1.8rem}
.footer__nap{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1.2rem}
.footer__social{display:flex;gap:1.4rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}
.footer__h{font-family:var(--sans);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper);margin-bottom:1.2rem}
.footer__col li{margin-bottom:.5rem;font-size:.92rem}
.footer__col a:hover,.footer__social a:hover,.footer__nap a:hover{color:var(--gold)}
.footer__base{margin-top:3.5rem;padding-top:1.6rem;border-top:1px solid rgba(246,244,240,.12);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.78rem}
.footer__assoc span{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;margin-right:.6rem}
.footer__copy a{border-bottom:1px solid rgba(246,244,240,.2)}
.footer p{margin:0}

/* ---- Interior: page head, photo hero ----------------------------------------- */
.pagehead{padding:calc(var(--header-h) + clamp(56px,9vw,120px)) 0 clamp(40px,6vw,80px)}
.pagehead .lede{max-width:66ch}
.pagehead--tall{min-height:70vh;display:flex;align-items:center}
.phero{position:relative;height:min(92svh,900px);min-height:560px;background:var(--ink);color:var(--paper);overflow:hidden}
.phero__media{position:absolute;inset:0}
.phero__media img,.phero__loop{width:100%;height:100%;object-fit:cover}
.phero__loop{position:absolute;inset:0;opacity:0;transition:opacity 1.2s var(--ease)}
.phero__loop.is-ready{opacity:1}
.phero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,16,.72) 0%,rgba(20,18,16,.1) 55%,rgba(20,18,16,.3) 100%)}
.phero__text{position:absolute;left:0;right:0;bottom:clamp(40px,7vh,90px)}
.phero__type{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,1.8vw,1.6rem);color:var(--mist);max-width:60ch;margin:0}
.phero--service .phero__text,.phero--area .phero__text{max-width:900px}

/* ---- Project detail --------------------------------------------------------------- */
.pinfo__grid{display:grid;gap:clamp(2rem,5vw,6rem);grid-template-columns:1fr}
@media (min-width:900px){.pinfo__grid{grid-template-columns:4fr 8fr}}
.spec{margin:0;display:grid;gap:1.2rem}
.spec>div{border-top:1px solid rgba(61,57,53,.15);padding-top:1rem}
.spec dt{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}
.spec dd{margin:0;font-size:1rem}
.spec dd small{color:var(--text-muted)}
.spec__list li{padding:.15rem 0;padding-left:1rem;position:relative}
.spec__list li::before{content:"";position:absolute;left:0;top:.9em;width:5px;height:1px;background:var(--gold)}
.pinfo__story p{max-width:64ch}
.pinfo__story .btn{margin-top:1rem}
.gallery{padding-top:0}
.gallery__grid{display:grid;gap:clamp(.8rem,1.5vw,1.6rem);grid-template-columns:repeat(2,1fr);grid-auto-flow:dense}
@media (min-width:900px){.gallery__grid{grid-template-columns:repeat(6,1fr)}}
.gallery__item{display:block;overflow:hidden;background:var(--paper-3);grid-column:span 1;aspect-ratio:3/2}
@media (min-width:900px){.gallery__item{grid-column:span 2}.gallery__item.is-large{grid-column:span 4;aspect-ratio:16/9}.gallery__item.is-wide{grid-column:span 3;aspect-ratio:16/9}.gallery__item.is-portrait{grid-column:span 2;grid-row:span 2;aspect-ratio:2/3}}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.gallery__item:hover img{transform:scale(1.03)}
.nextp{position:relative;display:block;height:min(70svh,640px);min-height:420px;overflow:hidden;background:var(--ink);color:var(--paper)}
.nextp__media{position:absolute;inset:0}
.nextp__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.6);transition:transform 2s var(--ease-out),filter 1s}
.nextp:hover .nextp__media img{transform:scale(1.04);filter:brightness(.7)}
.nextp__text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:.4rem}
.nextp__meta{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-light-muted)}
.lightbox{border:0;padding:0;background:rgba(20,18,16,.96);color:var(--paper);width:100vw;height:100vh;max-width:none;max-height:none;inset:0}
.lightbox::backdrop{background:transparent}
.lightbox figure{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem var(--gutter)}
.lightbox img{max-height:82vh;width:auto;max-width:100%;object-fit:contain;background:none}
.lightbox figcaption{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-light-muted)}
.lightbox__close{position:absolute;top:1.2rem;right:1.4rem;font-size:2.4rem;line-height:1;width:48px;height:48px}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);font-size:3rem;width:56px;height:80px;line-height:1;color:var(--paper);opacity:.7}
.lightbox__nav:hover{opacity:1}
.lightbox__nav--prev{left:.6rem}.lightbox__nav--next{right:.6rem}

/* ---- Service feature blocks -------------------------------------------------------- */
.intro .intro__grid{align-items:start}
.intro__jump{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;padding-top:.4rem}
.intro__jump a{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid rgba(61,57,53,.2);padding-bottom:.2rem}
.intro__jump a:hover{border-color:var(--gold)}
.feature{padding-block:clamp(40px,6vw,90px)}
.feature__grid{display:grid;gap:clamp(2rem,4vw,5rem);grid-template-columns:1fr;align-items:center}
@media (min-width:900px){.feature__grid{grid-template-columns:7fr 5fr}.feature--flip .feature__media{order:2}}
.feature__media{overflow:hidden;position:relative}
.feature__media img{aspect-ratio:4/3;width:100%;object-fit:cover}
.feature__media figcaption{margin-top:.8rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.feature__media figcaption a{border-bottom:1px solid var(--gold)}
.feature__n{font-size:.72rem;letter-spacing:.24em;color:var(--gold);margin-bottom:1.2rem}
.feature__text p{max-width:52ch}
.related__head{margin-bottom:2.4rem}
.related__row{display:flex;gap:clamp(1rem,2vw,2rem);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;scrollbar-width:none;cursor:grab}
.related__row::-webkit-scrollbar{display:none}
.rcard{flex:none;width:min(80vw,420px);scroll-snap-align:start;display:flex;flex-direction:column;gap:.3rem}
.rcard__media{aspect-ratio:4/3;overflow:hidden;margin-bottom:.6rem;background:var(--paper-3)}
.rcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.rcard:hover .rcard__media img{transform:scale(1.04)}
.rcard__title{font-family:var(--serif);font-size:1.5rem;line-height:1.1}
.rcard__meta{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}
.othersvc{display:flex;flex-wrap:wrap;gap:1rem 3rem;padding:2rem 0 clamp(40px,6vw,80px);border-top:1px solid rgba(61,57,53,.15)}
.othersvc a{font-family:var(--serif);font-size:1.5rem;display:flex;gap:1rem;align-items:baseline}
.othersvc a span{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;color:var(--gold)}
.othersvc a:hover{color:var(--ink-2)}

/* ---- Areas hub / cards -------------------------------------------------------------- */
.areas--page{padding-top:clamp(40px,5vw,72px)}
.arealist{display:grid;gap:clamp(1.5rem,3vw,3rem);grid-template-columns:1fr}
@media (min-width:768px){.arealist{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.arealist{grid-template-columns:repeat(3,1fr)}}
.acard{display:flex;flex-direction:column;gap:.6rem}
.acard__media{aspect-ratio:4/3;overflow:hidden;background:var(--paper-3);margin-bottom:.8rem}
.acard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.acard:hover .acard__media img{transform:scale(1.04)}
.acard p{color:var(--text-muted);font-size:.95rem}
.arealist__more{margin-top:3rem;color:var(--text-muted)}

/* ---- Story / team / assoc / reviews / contact / legal / 404 ---------------------------- */
.story{overflow:hidden}
.story__copy p{max-width:64ch}
.team__grid{display:grid;gap:2rem;grid-template-columns:1fr;margin-top:2.4rem}
@media (min-width:768px){.team__grid{grid-template-columns:repeat(3,1fr)}}
.person h3{font-size:1.6rem;margin:1rem 0 .2rem}
.person p{color:var(--text-muted);margin:0}
.person__photo,[data-placeholder]{aspect-ratio:4/5;display:grid;place-items:center;background:var(--paper-3);color:var(--text-muted);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;border:1px dashed rgba(61,57,53,.25)}
.person--note{align-self:end}
.assoc__list{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;margin:1.6rem 0;font-family:var(--serif);font-size:1.8rem;color:var(--paper)}
.reviews__grid{display:grid;gap:2.4rem;grid-template-columns:1fr}
@media (min-width:900px){.reviews__grid{grid-template-columns:repeat(3,1fr)}}
.tq--card{display:flex;flex-direction:column;gap:1rem}
.tq__proj{display:flex;align-items:center;gap:.8rem;margin-top:auto;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.tq__proj img{width:64px;height:48px;object-fit:cover}
.contactpage__grid{display:grid;gap:clamp(2rem,5vw,6rem);grid-template-columns:1fr}
@media (min-width:900px){.contactpage__grid{grid-template-columns:7fr 5fr}}
.contactpage__aside .nap{margin-top:0}
.mapembed{aspect-ratio:4/3;margin:2rem 0}
.mapembed p{margin:0;padding:1rem;text-align:center;font-size:.85rem;letter-spacing:0;text-transform:none}
.legal__body{max-width:72ch}
.legal__body h2{font-size:1.8rem;margin-top:2rem}
.notfound{position:relative;overflow:hidden}
.notfound__mark{position:absolute;right:-10%;top:0;width:min(60vw,700px);opacity:.06;color:var(--ink);pointer-events:none}

/* ---- Blog ------------------------------------------------------------------------- */
.postmeta{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .8rem}
.postmeta--light{color:var(--text-light-muted);margin:.4rem 0 0}
.postlead{display:grid;gap:clamp(1.5rem,3vw,3rem);grid-template-columns:1fr;align-items:center;margin-bottom:clamp(3rem,6vw,6rem)}
@media (min-width:900px){.postlead{grid-template-columns:7fr 5fr}}
.postlead__media{aspect-ratio:16/10;overflow:hidden;background:var(--paper-3)}
.postlead__media img,.postcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.postlead:hover img,.postcard:hover img{transform:scale(1.04)}
.postlead__text p{color:var(--text-muted);max-width:52ch}
.postgrid{display:grid;gap:clamp(1.5rem,3vw,3rem);grid-template-columns:1fr}
@media (min-width:700px){.postgrid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.postgrid{grid-template-columns:repeat(3,1fr)}}
.postcard{display:flex;flex-direction:column}
.postcard__media{aspect-ratio:4/3;overflow:hidden;background:var(--paper-3);margin-bottom:1rem}
.postcard p{color:var(--text-muted);font-size:.95rem;margin:0}
.postcard .h3{margin-bottom:.5rem}
.post__grid{display:grid;gap:clamp(2rem,5vw,6rem);grid-template-columns:1fr}
@media (min-width:1000px){.post__grid{grid-template-columns:minmax(0,7fr) 4fr}}
.post__body{max-width:70ch}
.post__body h2{font-size:clamp(1.7rem,2.6vw,2.4rem);margin:2.2em 0 .6em}
.post__body h3{font-size:1.5rem;margin:1.8em 0 .5em}
.post__body p,.post__body li{font-size:1.05rem;line-height:1.75}
.post__body ul,.post__body ol{margin:0 0 1.4em 1.2em;list-style:disc}
.post__body ol{list-style:decimal}
.post__body li{margin-bottom:.4em}
.post__body a{border-bottom:1px solid var(--gold)}
.post__body blockquote{margin:2em 0;padding-left:1.4rem;border-left:1px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.4}
.post__body hr{border:0;border-top:1px solid rgba(61,57,53,.15);margin:2.5em 0}
.post__figure{margin:2em 0}
.post__figure figcaption{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-top:.6rem}
.post__excerpt{color:var(--text-muted);margin-bottom:2em;padding-bottom:2em;border-bottom:1px solid rgba(61,57,53,.15)}
.post__tags{margin-top:3em;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);display:flex;gap:1rem;flex-wrap:wrap}
.post__share{display:flex;gap:1.4rem;align-items:center;margin-top:1.4em;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}
.post__share span{color:var(--text-muted)}
.post__share a{border-bottom:1px solid var(--gold)}
.post__aside{position:sticky;top:calc(var(--header-h) + 1.5rem);align-self:start}
.post__aside .footer__h{color:var(--text-muted)}
.post__related{display:grid;gap:1.2rem;margin-bottom:2.4rem}
.rcard--sm{width:auto;flex-direction:row;align-items:center;gap:1rem}
.rcard--sm .rcard__media{width:110px;flex:none;aspect-ratio:4/3;margin:0}
.rcard--sm .rcard__title{font-size:1.2rem}
.post__cta{background:var(--paper-2);padding:1.8rem;display:flex;flex-direction:column;gap:.8rem;align-items:flex-start}
.post__cta p{margin:0;color:var(--text-muted)}
.post__cta .h3{color:var(--ink)}
.phero--post{height:min(78svh,760px)}
.phero--post .phero__text{max-width:1000px}

/* ---- Reveal utilities --------------------------------------------------------------- */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal-img]>img{clip-path:inset(0 0 100% 0);transform:scale(1.12);transition:clip-path 1.4s var(--ease-out),transform 1.8s var(--ease-out)}
.js [data-reveal-img].is-in>img{clip-path:inset(0 0 0 0);transform:none}
.js .tile[data-tile] .tile__media{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease-out)}
.js .tile[data-tile].is-in .tile__media{clip-path:inset(0 0 0 0)}
.js .tile[data-tile] .tile__cap{opacity:0;transition:opacity .8s var(--ease) .5s}
.js .tile[data-tile].is-in .tile__cap{opacity:1}

/* ---- Reduced motion ------------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  .areas__plate img{animation:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js [data-reveal],.js [data-reveal-img]>img,.js .tile[data-tile] .tile__media{opacity:1;transform:none;clip-path:none}
}
.reduced [data-reveal],.reduced [data-reveal-img]>img,.reduced .tile[data-tile] .tile__media{opacity:1;transform:none;clip-path:none}
@media print{.header,.menu,.navtoggle,.hero__video,.mist,.footer__mark,.cta__mark{display:none}}
