/* ───────── Fonts (self-hosted, latin subset) ───────── */
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;src:url(../fonts/fraunces-italic.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url(../fonts/fraunces-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/hankengrotesk-normal.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ───────── Tokens ───────── */
:root{
  --paper:#F8F4EC; --paper-2:#F1EBDF; --paper-3:#E7DECD; --card:#FFFCF6; --sand:#F1DFCB;
  --ink:#2A2622; --ink-soft:#4A443C; --mute:#6A6258;
  --dark:#2B2723; --on-dark:#F6F0E6; --mute-on-dark:#BDB3A4; --line-on-dark:rgba(246,240,230,.16);
  --rule:rgba(42,38,34,.12); --rule-2:rgba(42,38,34,.26);
  --accent:#A85526; --accent-hover:#8F4720; --accent-text:#9A4C20; --accent-soft:#E3A47A; --brass:#B8935A;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --max:1280px; --gutter:clamp(20px,4.2vw,56px); --gap:clamp(16px,2vw,28px);
  --r-sm:12px; --r-md:18px; --r-lg:26px; --r-xl:clamp(26px,3.2vw,40px);
  --sheet-m:clamp(8px,1.5vw,22px);
  --shadow:0 26px 60px -30px rgba(74,50,24,.42),0 6px 16px -8px rgba(74,50,24,.12);
  --ease:cubic-bezier(.22,.8,.26,1);
  --header-h:66px;
}
@media (min-width:1100px){ :root{ --header-h:80px; } }

/* ───────── Base ───────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 18px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,table{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
p{text-wrap:pretty}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:4px;border-radius:6px}
.on-dark :focus-visible,.on-dark:focus-visible{outline-color:var(--accent-soft)}
::selection{background:var(--accent-soft);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:absolute;left:14px;top:-90px;z-index:100;background:var(--ink);color:var(--on-dark);padding:12px 18px;border-radius:var(--r-sm);font:600 1rem var(--sans);text-decoration:none;transition:top .3s var(--ease)}
.skip:focus{top:14px}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:clamp(64px,9vw,128px)}
.sheet{margin:var(--sheet-m);border-radius:var(--r-xl);background:var(--paper-2)}
.icon{flex:none;display:block}
.serif,.h2,.h1-main{font-family:var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums}

/* ───────── Type system ───────── */
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:20px;font:600 .8rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.kicker::before{content:"";flex:none;width:24px;height:2px;border-radius:2px;background:var(--brass)}
.on-dark .kicker{color:var(--accent-soft)}
.h2{font-weight:400;font-size:clamp(2rem,4.3vw,3.5rem);line-height:1.08;letter-spacing:-.018em;text-wrap:balance}
.h2 em{font-style:italic;color:var(--accent-text)}
.on-dark .h2 em{color:var(--accent-soft)}
.lead{font-size:clamp(1.1rem,1.3vw,1.22rem);line-height:1.6;color:var(--ink-soft);max-width:54ch}
.note{font-size:.96rem;color:var(--mute);max-width:60ch}
.label{font:600 .78rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.tel{white-space:nowrap}

/* ───────── Buttons & links ───────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:15px 26px 15px 18px;border:1px solid transparent;border-radius:16px;font:600 1.06rem/1.1 var(--sans);text-decoration:none;transition:background-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.btn .icon-wrap{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:rgba(255,249,240,.16)}
.btn-call{background:var(--accent);color:#FFF9F0;box-shadow:0 16px 30px -16px rgba(168,85,38,.7)}
.btn-call:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 22px 36px -16px rgba(168,85,38,.75)}
.btn-soft{background:var(--card);color:var(--ink);border-color:var(--rule-2)}
.btn-soft .icon-wrap{background:var(--paper-2);color:var(--accent)}
.btn-soft:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0) scale(.98);transition-duration:.12s}
.btn:hover .icon,.call-card:hover .icon,.header-call:hover .icon,.callbar:hover .icon{animation:ring .9s var(--ease)}
@keyframes ring{0%,100%{rotate:0deg}15%{rotate:-11deg}30%{rotate:9deg}45%{rotate:-6deg}60%{rotate:4deg}75%{rotate:-2deg}}
.link-arrow{display:inline-flex;align-items:center;gap:10px;padding:8px 0;font:600 1.03rem/1.2 var(--sans);text-decoration:none;background:linear-gradient(var(--brass),var(--brass)) left bottom/100% 1.5px no-repeat;transition:color .35s var(--ease),background-size .5s var(--ease)}
.link-arrow .icon{transition:transform .45s var(--ease)}
.link-arrow:hover{color:var(--accent-text);background-size:0 1.5px;background-position:right bottom}
.link-arrow:hover .icon{transform:translateX(6px)}
.text-link{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3.5px;text-decoration-color:var(--brass);transition:text-decoration-color .3s,color .3s}
.text-link:hover{color:var(--accent-text);text-decoration-color:currentColor}

/* ───────── Photography ───────── */
.ph{position:relative;overflow:hidden;border-radius:var(--r,var(--r-lg));background:var(--paper-3)}
.ph img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(.97) brightness(1.03) sepia(.06)}
.ph.is-missing{background:repeating-linear-gradient(135deg,var(--paper-3) 0 14px,var(--paper-2) 14px 28px)}
.ph.is-missing img{visibility:hidden}

/* ───────── Scroll reveals (only when JS is running; content is visible without it) ───────── */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease) var(--d,0s),transform .8s var(--ease) var(--d,0s)}
.js [data-reveal].in{opacity:1;transform:none}
/* photo frames: the frame itself stays measurable (an element clipped to nothing never reports as "in view"),
   so the wipe is applied to the image inside it */
.js [data-reveal="clip"]{opacity:0;transform:none;transition:opacity .01s linear var(--d,0s)}
.js [data-reveal="clip"].in{opacity:1}
.js .ph img[data-parallax]{scale:1.07}
.js [data-reveal="clip"] img{clip-path:inset(0 0 100% 0);scale:1.16;transition:clip-path 1s var(--ease) var(--d,0s),scale 1.4s var(--ease) var(--d,0s)}
.js [data-reveal="clip"].in img{clip-path:inset(0 0 0 0);scale:1.07}
.progress{position:fixed;top:0;left:0;z-index:70;width:100%;height:3px;background:var(--accent);transform-origin:left center;scale:var(--p,0) 1;pointer-events:none}
.no-js .progress{display:none}

/* ───────── Header ───────── */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid transparent;transition:box-shadow .5s var(--ease),border-color .5s var(--ease)}
.scrolled .site-header{border-bottom-color:var(--rule);box-shadow:0 14px 34px -26px rgba(74,50,24,.5)}
.header-row{display:flex;align-items:center;gap:12px;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:12px;flex:none;text-decoration:none;color:var(--ink)}
.brand-mark{width:32px;height:38px;flex:none}
.brand-mark .mk-bg{fill:currentColor}
.brand-mark .mk-hole{fill:var(--accent-soft);transform-origin:24px 24px;transition:transform .7s var(--ease)}
.brand:hover .mk-hole{transform:rotate(90deg)}
.brand-text{display:grid;line-height:1}
.brand-name{font:600 1.5rem/1 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.01em}
.brand-sub{margin-top:5px;font:600 .64rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}
.header-call{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--accent);color:#FFF9F0;text-decoration:none;transition:background-color .35s var(--ease)}
.header-call:hover{background:var(--accent-hover)}
.header-call .hc-text{display:none}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid var(--rule-2);border-radius:14px;background:var(--card);color:var(--ink);cursor:pointer;transition:border-color .3s var(--ease)}
.nav-toggle:hover{border-color:var(--accent)}
.nav-toggle .bars{position:relative;width:18px;height:2px;border-radius:2px;background:currentColor;transition:background-color .2s}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .45s var(--ease)}
.nav-toggle .bars::before{top:-6px}.nav-toggle .bars::after{top:6px}
.nav-open .nav-toggle .bars{background:transparent}
.nav-open .nav-toggle .bars::before{transform:translateY(6px) rotate(45deg)}
.nav-open .nav-toggle .bars::after{transform:translateY(-6px) rotate(-45deg)}

/* mobile navigation panel */
.site-nav a{text-decoration:none;color:var(--ink)}
.js .site-nav{position:fixed;inset:var(--header-h) 0 0 0;z-index:49;background:var(--paper);padding:10px var(--gutter) 130px;overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .35s var(--ease),visibility 0s linear .35s}
.js.nav-open .site-nav{visibility:visible;opacity:1;transition:opacity .35s var(--ease)}
.js.nav-open{overflow:hidden}
.site-nav li{border-bottom:1px solid var(--rule)}
.site-nav li a{display:flex;align-items:center;justify-content:space-between;padding:19px 2px;font:400 1.85rem/1.1 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.01em}
.site-nav li a::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--accent);border-top:1.5px solid var(--accent);transform:rotate(45deg);transition:translate .4s var(--ease)}
.site-nav li a:hover::after{translate:5px 0}
.js .site-nav li,.js .nav-extra{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.js.nav-open .site-nav li,.js.nav-open .nav-extra{opacity:1;transform:none;transition-delay:calc(.06s + var(--i,0) * .055s)}
.nav-extra{margin-top:30px;display:grid;gap:12px;--i:7}
/* without JavaScript the links simply sit under the header */
.no-js .nav-toggle{display:none}
.no-js .header-row{flex-wrap:wrap;padding-block:10px}
.no-js .site-nav{order:5;width:100%}
.no-js .site-nav ul{display:flex;flex-wrap:wrap;gap:4px 20px}
.no-js .site-nav li{border:0}
.no-js .site-nav li a{padding:8px 0;font:500 1rem var(--sans)}
.no-js .site-nav li a::after,.no-js .nav-extra{display:none}

@media (min-width:480px){
  .header-call{width:auto;height:auto;background:none;color:var(--ink);gap:10px;padding:6px 0;border-radius:8px}
  .header-call:hover{background:none}
  .header-call .icon{display:none}
  .header-call .hc-text{display:grid;line-height:1.1;text-align:right}
  .hc-label{font:600 .68rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
  .hc-num{font:500 1.32rem var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;letter-spacing:-.005em;transition:color .35s var(--ease)}
  .header-call:hover .hc-num{color:var(--accent-text)}
  .header-row{gap:18px}
}
@media (min-width:1100px){
  .brand-mark{width:35px;height:42px}
  .brand-name{font-size:1.66rem}
  .header-row{gap:clamp(18px,2.4vw,40px)}
  .nav-toggle{display:none}
  .site-nav,.js .site-nav{position:static;inset:auto;margin-left:auto;padding:0;overflow:visible;visibility:visible;opacity:1;background:none;transition:none;width:auto;order:0}
  .site-nav ul{display:flex;gap:clamp(16px,2.1vw,34px)}
  .site-nav li,.js .site-nav li{border:0;opacity:1;transform:none;transition:none}
  .site-nav li a{position:relative;display:block;padding:12px 0;font:500 1rem/1 var(--sans);letter-spacing:0;color:var(--ink-soft);transition:color .35s var(--ease)}
  .site-nav li a::after{position:absolute;left:0;right:0;bottom:3px;width:auto;height:2px;border:0;border-radius:2px;background:var(--accent-soft);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
  .site-nav li a:hover{color:var(--ink)}
  .site-nav li a:hover::after,.site-nav li a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left;translate:none}
  .site-nav li a[aria-current="page"]{color:var(--ink)}
  .nav-extra,.js .nav-extra{display:none}
  .header-call{margin-left:0;padding-left:clamp(16px,2vw,30px);border-left:1px solid var(--rule);border-radius:0}
  .header-call .hc-text{text-align:left}
  .hc-num{font-size:1.5rem}
}

/* ───────── Hero ───────── */
.hero{position:relative;overflow:clip}
.hero-grid{display:grid;gap:44px;padding-block:clamp(30px,6vw,60px) clamp(64px,9vw,96px)}
.hero h1{display:grid;gap:clamp(16px,2vw,24px)}
.h1-kicker{display:flex;align-items:center;gap:12px;font:600 .8rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.h1-kicker::before{content:"";flex:none;width:24px;height:2px;border-radius:2px;background:var(--brass)}
.h1-main{display:block;font-weight:600;font-size:clamp(2.1rem,4.6vw,3.9rem);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
.h1-main .line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.h1-main .line-in{display:block}
.h1-main .accent{color:var(--accent)}
.squig{position:relative;display:inline-block}
.squig svg{position:absolute;left:0;bottom:-.1em;width:100%;height:.2em;overflow:visible}
.squig path{fill:none;stroke:var(--brass);stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.hero .lead{margin-top:clamp(22px,2.6vw,32px);max-width:48ch}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 30px;margin-top:clamp(26px,3vw,38px)}
.hero-for{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;margin-top:clamp(34px,4.2vw,54px);padding-top:18px;border-top:1px solid var(--rule-2)}
.hero-for li{font-size:.93rem;line-height:1.4;color:var(--mute)}
.hero-for strong{display:flex;align-items:center;gap:8px;margin-bottom:4px;font:500 1.14rem/1.2 var(--serif);font-variation-settings:"SOFT" 100;color:var(--ink)}
.hero-for strong::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-soft)}
.hero-visual{position:relative;justify-self:center;width:min(84%,370px)}
.arch{position:relative;aspect-ratio:10/13;border-radius:999px 999px var(--r-lg) var(--r-lg);overflow:hidden;background:var(--paper-3)}
.arch-in{position:absolute;inset:0}
.arch img{display:block;width:100%;height:100%;object-fit:cover;object-position:46% 62%;scale:1.07;filter:saturate(.9) contrast(.98) brightness(1.03) sepia(.05)}
.arch-line{position:absolute;inset:0;border:1.5px solid var(--brass);border-radius:999px 999px var(--r-lg) var(--r-lg);translate:14px -14px;opacity:.75;pointer-events:none}
.call-card{position:absolute;left:-9%;bottom:34px;display:flex;align-items:center;gap:14px;padding:14px 20px 14px 14px;border-radius:20px;background:var(--card);color:var(--ink);text-decoration:none;box-shadow:var(--shadow);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.call-card:hover{transform:translateY(-3px);box-shadow:0 30px 60px -28px rgba(74,50,24,.5),0 8px 18px -8px rgba(74,50,24,.14)}
.cc-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent);color:#FFF9F0}
.cc-text{display:grid;gap:2px}
.cc-label{display:flex;align-items:center;gap:8px;font:600 .7rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit}
.cc-num{font:500 clamp(1.45rem,2.2vw,1.8rem)/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;letter-spacing:-.01em}
@media (min-width:1000px){
  .hero-grid{grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);align-items:center;gap:clamp(40px,6vw,96px);min-height:min(86vh,790px);min-height:min(86svh,790px);padding-block:56px 84px}
  .hero-visual{justify-self:end;width:min(100%,460px);margin-right:14px}
  .call-card{left:-56px;bottom:56px;padding:16px 24px 16px 16px}
}
/* hero entrance — plays once on load, content is fully visible afterwards */
@media (prefers-reduced-motion:no-preference){
  .h1-kicker{animation:fadeUp .6s var(--ease) .05s backwards}
  .h1-main .line-in{animation:lineUp .8s var(--ease) backwards}
  .h1-main .line:nth-child(1) .line-in{animation-delay:.05s}
  .h1-main .line:nth-child(2) .line-in{animation-delay:.13s}
  .h1-main .line:nth-child(3) .line-in{animation-delay:.21s}
  .squig path{stroke-dasharray:1;animation:draw .7s var(--ease) .6s backwards}
  .hero-actions{animation:fadeUp .6s var(--ease) .3s backwards}
  .hero-for{animation:fadeUp .6s var(--ease) .4s backwards}
  .arch-in{animation:doorUp .9s var(--ease) .1s backwards}
  .arch img{animation:settle 1.2s var(--ease) .1s backwards}
  .arch-line{animation:lineOut .8s var(--ease) .6s backwards}
  .call-card{animation:cardIn .7s var(--ease) .6s backwards}
  .hero .btn-call .icon{animation:ring .9s var(--ease) 1.4s 1}
  .dot::after{animation:ping 1.8s var(--ease) 1.2s 1}
  .callbar{animation:barUp .6s var(--ease) .5s backwards}
  @keyframes fadeUp{from{opacity:0;transform:translateY(22px)}}
  @keyframes lineUp{from{transform:translateY(108%)}}
  @keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes doorUp{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
  @keyframes settle{from{scale:1.26}}
  @keyframes lineOut{from{translate:0 0;opacity:0}}
  @keyframes cardIn{from{opacity:0;transform:translateY(26px) scale(.96)}}
  @keyframes ping{from{scale:1;opacity:.7}to{scale:3.4;opacity:0}}
  @keyframes barUp{from{transform:translateY(140%)}}
}

/* ───────── Drift band (moves with the page scroll) ───────── */
.drift{overflow:hidden;padding-block:clamp(16px,2vw,24px);border-block:1px solid var(--rule)}
.drift-track{display:flex;align-items:center;gap:clamp(22px,3vw,44px);width:max-content;font:300 clamp(1.5rem,2.9vw,2.5rem)/1.2 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic;color:var(--ink-soft);white-space:nowrap;will-change:transform}
.drift-track i{flex:none;width:.42em;height:.5em;border-radius:999px 999px 0 0;background:var(--brass)}

/* ───────── Facts panel (trust strip) ───────── */
.facts{padding-block:clamp(44px,6vw,80px) 0}
.facts-panel{display:grid;gap:26px var(--gap);padding:clamp(26px,4.4vw,60px);border-radius:var(--r-xl);background:var(--paper-2)}
.facts h2{font:400 clamp(1.7rem,2.7vw,2.3rem)/1.12 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.015em}
.facts .note{margin-top:12px}
.ledger > div{display:grid;gap:2px 20px;padding:15px 0;border-top:1px solid var(--rule)}
.ledger > div:first-child{border-top:0;padding-top:0}
.ledger dd{font:500 1.08rem/1.45 var(--sans);color:var(--ink)}
.ledger dd .ledger-tel{font:500 1.5rem/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;text-decoration:none;background:linear-gradient(var(--accent-soft),var(--accent-soft)) left bottom/100% 2px no-repeat;padding-bottom:3px;transition:color .35s var(--ease)}
.ledger dd .ledger-tel:hover{color:var(--accent-text)}
.ledger .pending dd{font-weight:400;font-size:.98rem;color:var(--mute)}
.tag-pending{display:inline-block;margin-right:10px;padding:2px 10px;border:1px dashed var(--rule-2);border-radius:999px;font:600 .7rem/1.6 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);vertical-align:1px}
@media (min-width:640px){ .ledger > div{grid-template-columns:170px minmax(0,1fr);align-items:baseline} }
@media (min-width:1000px){
  .facts-panel{grid-template-columns:repeat(12,minmax(0,1fr))}
  .facts-head{grid-column:1 / span 4}
  .ledger{grid-column:6 / -1}
}

/* ───────── Services index ───────── */
.services-head{display:grid;gap:20px var(--gap);margin-bottom:clamp(34px,4.6vw,60px)}
.services-head .lead{font-size:1.06rem}
/* service picker: one row of buttons, one details panel open at a time */
.svc-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.svc-tab{position:relative;display:flex;align-items:center;gap:12px;min-height:66px;margin:0;padding:10px 12px;border:1px solid var(--rule-2);border-radius:var(--r-md);background:var(--card);color:var(--ink);font:500 1rem/1.2 var(--sans);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),box-shadow .35s var(--ease),translate .35s var(--ease),scale .2s var(--ease)}
.svc-tab:last-child{grid-column:1 / -1}
.svc-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:13px;background:var(--paper-2);color:var(--accent);transition:background-color .3s var(--ease),color .3s var(--ease),scale .35s var(--ease)}
.svc-tab::after{content:"";position:absolute;left:50%;bottom:7px;width:26px;height:3px;border-radius:3px;background:var(--accent-soft);translate:-50% 0;scale:0 1;transition:scale .4s var(--ease)}
.svc-tab[aria-expanded="true"]{background:var(--dark);border-color:var(--dark);color:var(--on-dark);box-shadow:var(--shadow)}
.svc-tab[aria-expanded="true"] .svc-ico{background:var(--accent);color:#FFF9F0}
.svc-tab[aria-expanded="true"]::after{scale:1 1}
.svc-tab:focus-visible{outline-offset:3px;border-radius:var(--r-md)}
.svc-tab:active{scale:.98}
@media (hover:hover){
  .svc-tab:hover{border-color:var(--accent);translate:0 -3px;box-shadow:var(--shadow)}
  .svc-tab:hover .svc-ico{scale:1.06}
  .svc-tab[aria-expanded="true"]:hover{border-color:var(--dark)}
}
.svc-panels{--pad:clamp(18px,3.2vw,44px);position:relative;margin-top:14px;padding:var(--pad);border-radius:var(--r-xl);background:var(--paper-2);overflow:clip;transition:height .45s var(--ease)}
/* only the open panel is in the flow; the box height is animated between panels by the script, so nothing below jumps */
.svc-panel{display:grid;gap:24px var(--gap);align-content:start;opacity:0;visibility:hidden;translate:0 12px;transition:opacity .2s ease,translate .3s var(--ease),visibility 0s linear .2s}
.svc-panel:not(.is-open){position:absolute;top:var(--pad);left:var(--pad);right:var(--pad)}
.svc-panel.is-open{opacity:1;visibility:visible;translate:none;transition:opacity .45s var(--ease) .1s,translate .55s var(--ease) .1s,visibility 0s}
.svc-media{--r:var(--r-lg);aspect-ratio:16/10;width:100%}
.svc-media img{scale:1.06;transition:scale 1.1s var(--ease)}
.svc-panel.is-open .svc-media img{scale:1}
.svc-art{display:grid;place-items:center;background:var(--dark);color:var(--accent-soft)}
.svc-art::before{content:"";position:absolute;inset:14% 26% 0;border:1.5px solid var(--brass);border-bottom:0;border-radius:999px 999px 0 0;opacity:.6}
.svc-art .icon{position:relative;width:34%;height:auto;max-width:120px}
.svc-body .kicker{margin-bottom:14px}
.svc-title{font:400 clamp(1.85rem,3.2vw,2.7rem)/1.08 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.018em;text-wrap:balance}
.svc-desc{margin-top:14px;max-width:56ch;font-size:1.06rem;color:var(--ink-soft)}
.svc-body .label{margin-top:22px}
.svc-points{display:grid;gap:0 var(--gap);margin-top:20px;border-top:1px solid var(--rule-2)}
.svc-body .label + .svc-points{margin-top:10px}
.svc-points li{display:grid;grid-template-columns:18px minmax(0,1fr);padding:12px 0;border-bottom:1px solid var(--rule);line-height:1.45}
.svc-points li::before{content:"";grid-row:1;width:7px;height:7px;margin-top:.5em;border-radius:50%;background:var(--accent)}
.svc-points li > *{grid-column:2}
.svc-points strong{font-weight:600}
.svc-points span{font-size:.96rem;color:var(--mute)}
.svc-note{margin-top:16px;font-size:.96rem;color:var(--mute);max-width:60ch}
.svc-note strong{color:var(--ink);font-weight:600}
.svc-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:26px}
.svc-cta .tel{font-weight:500;opacity:.85}
.no-js .svc-tabs{display:none}
.no-js .svc-panels{gap:56px}
.no-js .svc-panels{display:grid}
.no-js .svc-panel{position:static;opacity:1;visibility:visible;translate:none}
@media (max-width:999px){
  .svc-tab{gap:10px;padding:8px 10px;font-size:.92rem}
  .svc-ico{width:36px;height:36px;border-radius:11px}
  .svc-ico .icon{width:22px;height:22px}
}
@media (min-width:560px){ .svc-points{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:640px){
  .svc-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .svc-tab:last-child{grid-column:span 2}
}
@media (min-width:900px){
  .svc-panel{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(28px,4vw,60px)}
  .svc-media{aspect-ratio:4/5}
}
@media (min-width:1000px){
  .services-head{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}
  .services-head > :first-child{grid-column:1 / span 7}
  .services-head > :last-child{grid-column:9 / -1}
  .svc-tabs{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
  .svc-tab:last-child{grid-column:auto}
  .svc-tab{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:18px;min-height:156px;padding:16px 16px 22px;font:500 1.1rem/1.18 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.005em}
  .svc-ico{width:50px;height:50px;border-radius:15px}
  .svc-tab::after{left:16px;translate:none;transform-origin:left center}
}

/* ───────── Residential ───────── */
.residential{padding-top:clamp(20px,4vw,56px)}
.res-grid{display:grid;gap:44px var(--gap)}
.res-media{position:relative;margin-bottom:40px}
.res-media .ph-main{aspect-ratio:4/5;max-height:600px;width:100%}
.res-media .ph-main img{object-position:50% 40%}
.res-media .ph-inset{--r:var(--r-md);position:absolute;right:18px;bottom:-38px;width:40%;max-width:220px;aspect-ratio:1;box-shadow:0 0 0 8px var(--paper),var(--shadow)}
.res-media .ph-inset img{object-position:38% 50%}
.deflist{margin-top:32px;border-top:1px solid var(--rule-2)}
.deflist > div{display:grid;gap:2px 22px;padding:15px 0;border-bottom:1px solid var(--rule)}
.deflist dt{font:500 1.2rem/1.3 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.008em}
.deflist dd{color:var(--mute);font-size:1rem;line-height:1.55}
.compare{display:grid;gap:20px 30px;margin-top:36px;padding:26px 28px 28px;border-radius:var(--r-lg);background:var(--paper-2)}
.compare h3{grid-column:1 / -1}
.compare h4{margin-bottom:6px;font:400 1.36rem/1.15 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic;color:var(--accent-text)}
.compare p{font-size:.98rem;line-height:1.55;color:var(--ink-soft)}
@media (min-width:560px){
  .deflist > div{grid-template-columns:minmax(0,38%) minmax(0,1fr);align-items:baseline}
  .compare{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
  .res-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
  .res-copy{grid-column:1 / span 6}
  .res-media{grid-column:8 / -1;margin-top:8px;position:sticky;top:calc(var(--header-h) + 28px)}
  .res-media .ph-main{max-height:none}
  .res-media .ph-inset{right:auto;left:-14%;bottom:-44px;width:46%;max-width:none;box-shadow:0 0 0 10px var(--paper),var(--shadow)}
}

/* ───────── Automotive ───────── */
.auto-grid{display:grid;gap:40px var(--gap)}
.auto-media{position:relative;margin-bottom:46px}
.auto-media .ph-main{aspect-ratio:3/2;width:100%}
.auto-media .ph-main img{object-position:60% 40%}
.auto-media .ph-inset{--r:var(--r-md);position:absolute;right:18px;bottom:-46px;width:44%;max-width:290px;aspect-ratio:4/3;box-shadow:0 0 0 8px var(--paper-2),var(--shadow)}
.ymm{margin-top:28px;padding:22px 26px 24px;border-radius:var(--r-lg);background:var(--card)}
.ymm-words{margin-top:8px;font:300 clamp(1.9rem,3.2vw,2.6rem)/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic;letter-spacing:-.02em}
.ymm-words span{display:inline-block;margin-inline:.28em;width:.16em;height:.16em;border-radius:50%;background:var(--accent-soft);vertical-align:.22em}
.ymm p:last-child{margin-top:10px;font-size:.97rem;color:var(--mute)}
.auto-list{display:grid;gap:0 var(--gap);margin-top:26px}
.auto-list li{padding:16px 0;border-top:1px solid var(--rule)}
.auto-list h3{display:flex;align-items:center;gap:10px;font:600 1.06rem/1.25 var(--sans)}
.auto-list h3::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.auto-list p{margin-top:5px;padding-left:17px;font-size:.98rem;line-height:1.5;color:var(--mute)}
.auto-cta{margin-top:24px}
@media (min-width:560px){ .auto-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){
  .auto-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
  .auto-media{grid-column:1 / span 6;margin-top:8px;position:sticky;top:calc(var(--header-h) + 28px)}
  .auto-media .ph-main{aspect-ratio:6/7}
  .auto-media .ph-main img{object-position:36% 50%}
  .auto-copy{grid-column:8 / -1}
  .auto-media .ph-inset{right:-9%;bottom:-58px;width:48%;max-width:none;box-shadow:0 0 0 10px var(--paper-2),var(--shadow)}
}

/* ───────── Commercial ───────── */
.com-head{display:grid;gap:20px var(--gap);margin-bottom:clamp(30px,4.4vw,54px)}
.com-media{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
.com-media .ph-wide{aspect-ratio:16/10}
.com-media .ph-wide img{object-position:50% 36%}
.com-media .ph-side{display:none}
.spec{width:100%;margin-top:clamp(30px,4.4vw,54px);border-collapse:collapse;border-top:1px solid var(--rule-2)}
.spec thead th{padding:13px 0;font:600 .78rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);text-align:left}
.spec tbody tr{border-top:1px solid var(--rule);transition:background-color .45s var(--ease)}
.spec tbody tr:last-child{border-bottom:1px solid var(--rule)}
.spec tbody th{padding:17px 24px 17px 0;font:500 1.22rem/1.25 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.008em;text-align:left;vertical-align:baseline;width:34%;transition:translate .4s var(--ease),color .3s var(--ease)}
.spec tbody td{padding:17px 0;color:var(--mute);vertical-align:baseline}
.spec tbody tr:hover th{translate:8px 0;color:var(--accent-text)}
.com-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:30px}
@media (max-width:639px){
  .spec thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .spec tbody tr{display:block;padding:15px 0}
  .spec tbody th,.spec tbody td{display:block;width:auto;padding:0}
  .spec tbody td{margin-top:4px}
  .spec tbody tr:hover th{translate:none}
}
@media (min-width:700px){
  .com-media{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);height:clamp(280px,34vw,460px)}
  .com-media .ph-wide{aspect-ratio:auto;height:100%}
  .com-media .ph-side{display:block;height:100%}
  .com-media .ph-side img{object-position:58% 50%}
}
@media (min-width:1000px){
  .com-head{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}
  .com-head > :first-child{grid-column:1 / span 7}
  .com-head > :last-child{grid-column:9 / -1}
}

/* ───────── Emergency ───────── */
.emergency{background:var(--dark);color:var(--on-dark)}
.em-top{display:grid;gap:36px var(--gap)}
.emergency .h2{font-size:clamp(2.1rem,4.7vw,3.9rem)}
.emergency .h2 em{display:block}
.em-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gap);margin-top:clamp(28px,3.4vw,44px)}
.em-types li{padding:14px 0 16px;border-top:1px solid var(--line-on-dark);font-size:.96rem;line-height:1.45;color:var(--mute-on-dark)}
.em-types strong{display:block;margin-bottom:2px;font:400 1.4rem/1.15 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic;color:var(--on-dark)}
.em-photo{aspect-ratio:4/3;width:100%;background:#3A342E}
.em-photo img{object-position:42% 50%;filter:saturate(.8) contrast(1) brightness(.96) sepia(.1)}
.em-bottom{margin-top:clamp(34px,4.6vw,60px);padding-top:clamp(18px,2.4vw,30px);border-top:1px solid var(--line-on-dark)}
.em-number{display:block;width:fit-content;max-width:100%;font:300 clamp(2.7rem,10.6vw,7.6rem)/.98 var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;letter-spacing:-.035em;color:var(--accent-soft);text-decoration:none;white-space:nowrap;transition:color .5s var(--ease),letter-spacing .7s var(--ease)}
.em-number:hover{color:var(--on-dark);letter-spacing:-.025em}
.em-foot{display:grid;gap:14px var(--gap);margin-top:clamp(18px,2.4vw,28px)}
.em-foot p{font-size:1rem;color:var(--mute-on-dark);max-width:54ch}
.em-foot strong{color:var(--on-dark);font-weight:600}
.em-foot .em-open{display:flex;align-items:center;gap:10px;font:600 .86rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark)}
.em-open .dot{background:var(--accent-soft)}
@media (min-width:1000px){
  .em-top{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}
  .em-top > :first-child{grid-column:1 / span 7}
  .em-photo{grid-column:9 / -1;aspect-ratio:4/5}
  .em-bottom{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end}
  .em-number{grid-column:1 / span 8}
  .em-foot{grid-column:9 / -1;margin-top:0;padding-bottom:10px}
}

/* ───────── How it works ───────── */
.process-head{margin-bottom:clamp(32px,4.4vw,58px)}
.steps{display:grid;gap:0;counter-reset:step}
.steps li{position:relative;padding:24px 0 30px;border-top:1px solid var(--rule-2);counter-increment:step}
.step-num{display:flex;align-items:center;gap:16px;margin-bottom:16px;font:300 clamp(3.2rem,5vw,4.4rem)/.9 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic;font-variant-numeric:lining-nums;color:var(--accent)}
.step-num::before{content:counter(step)}
.step-line{flex:1;height:1.5px;border-radius:2px;background:var(--brass);opacity:.7;transform-origin:left center}
.steps h3{font:500 1.46rem/1.2 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.01em}
.steps p{margin-top:9px;color:var(--mute);max-width:40ch}
.process .note{margin-top:clamp(22px,3vw,36px);padding-top:18px;border-top:1px solid var(--rule)}
.js .steps li .step-line{scale:0 1;transition:scale 1.2s var(--ease) calc(var(--d,0s) + .35s)}
.js .steps li.in .step-line{scale:1 1}
@media (min-width:800px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
  .steps li{padding-bottom:6px;border-top:0;padding-top:0}
}

/* ───────── Service areas ───────── */
.areas-grid{display:grid;gap:34px var(--gap)}
.areas .lead{margin-top:18px;font-size:1.08rem}
.area-filter{margin-top:26px;max-width:380px}
.area-filter label{display:block}
.area-filter input{width:100%;margin-top:8px;padding:14px 18px;border:1px solid var(--rule-2);border-radius:16px;background:var(--card);color:var(--ink);font:400 1.1rem/1.2 var(--sans);appearance:none;transition:border-color .35s var(--ease),box-shadow .35s var(--ease)}
.area-filter input::placeholder{color:var(--mute);opacity:.8}
.area-filter input:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px rgba(227,164,122,.4)}
.area-status{margin-top:10px;font-size:.95rem;color:var(--mute);min-height:1.6em}
.no-js .area-filter{display:none}
.area-list{columns:2;column-gap:var(--gap);border-top:1px solid var(--rule-2)}
.area-list li{break-inside:avoid;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:10px 0;border-bottom:1px solid var(--rule);font-weight:500;line-height:1.3;color:var(--ink-soft);transition:color .35s var(--ease),padding-left .45s var(--ease)}
.area-list li:hover{color:var(--accent-text);padding-left:6px}
.area-list li small{font-size:.8rem;font-weight:400;color:var(--mute)}
.area-list li[hidden]{display:none}
@media (min-width:700px){ .area-list{columns:3} }
@media (min-width:1000px){
  .areas-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
  .areas-head{grid-column:1 / span 4;position:sticky;top:calc(var(--header-h) + 32px)}
  .area-list{grid-column:6 / -1;columns:4}
}

/* ───────── FAQ ───────── */
.faq-grid{display:grid;gap:32px var(--gap)}
.faq .lead{margin-top:18px;font-size:1.08rem}
.faq-list{border-top:1px solid var(--rule-2)}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 0;cursor:pointer;list-style:none;font:400 clamp(1.18rem,1.8vw,1.4rem)/1.3 var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.008em;transition:color .35s var(--ease)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--accent-text)}
.faq-list summary::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule-2);background:linear-gradient(currentColor,currentColor) center / 12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center / 1.5px 12px no-repeat;transition:rotate .6s var(--ease),background-color .4s var(--ease),border-color .4s var(--ease),color .3s}
.faq-list summary:hover::after{border-color:var(--accent)}
.faq-list details[open] summary::after{rotate:135deg;background-color:var(--card);border-color:var(--accent-soft)}
.faq-a{padding:0 56px 24px 0;max-width:66ch;color:var(--ink-soft)}
.faq-a p + p{margin-top:12px}
@media (prefers-reduced-motion:no-preference){
  .faq-list details[open] .faq-a{animation:fadeDown .6s var(--ease)}
  @keyframes fadeDown{from{opacity:0;transform:translateY(-8px)}}
  @supports (interpolate-size:allow-keywords){
    .faq-list,.foot-legal{interpolate-size:allow-keywords}
    .faq-list details::details-content,.foot-legal details::details-content{block-size:0;overflow:clip;transition:block-size .55s var(--ease),content-visibility .55s allow-discrete}
    .faq-list details[open]::details-content,.foot-legal details[open]::details-content{block-size:auto}
  }
}
@media (min-width:1000px){
  .faq-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
  .faq-head{grid-column:1 / span 4;position:sticky;top:calc(var(--header-h) + 32px)}
  .faq-list{grid-column:6 / -1}
}

/* ───────── Final CTA / contact ───────── */
.contact{background:var(--sand)}
.contact-grid{display:grid;gap:42px var(--gap)}
.contact .h2{font-size:clamp(2.2rem,5vw,4.1rem)}
.contact .lead{margin-top:18px}
.contact-call{margin-top:30px;min-height:76px;padding:16px 32px 16px 18px;border-radius:22px;font:500 clamp(1.5rem,3.2vw,2.3rem)/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;letter-spacing:-.01em}
.contact-call .icon-wrap{width:48px;height:48px;border-radius:15px}
.contact-meta{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:20px;font:600 .82rem/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.contact-meta span{display:flex;align-items:center;gap:9px}
.contact-meta span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.ready{padding:26px 28px 14px;border-radius:var(--r-lg);background:var(--card)}
.ready li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:0 8px;padding:14px 0;border-top:1px solid var(--rule);font:500 1.14rem/1.3 var(--serif);font-variation-settings:"SOFT" 100}
.ready ul{margin-top:14px}
.ready li::before{content:"";width:20px;height:20px;margin-top:.12em;border-radius:50%;border:1.5px solid var(--accent-soft);background:radial-gradient(circle,var(--accent) 0 3.5px,transparent 4.5px)}
.ready li small{grid-column:2;margin-top:2px;font:400 .96rem/1.5 var(--sans);color:var(--mute)}
@media (min-width:1000px){
  .contact-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}
  .contact-main{grid-column:1 / span 7}
  .ready{grid-column:9 / -1}
}

/* ───────── Footer ───────── */
.site-footer{position:relative;margin-top:var(--sheet-m);background:var(--dark);color:var(--on-dark);padding-block:clamp(56px,7vw,92px) 28px;border-radius:var(--r-xl) var(--r-xl) 0 0}
.site-footer a{text-decoration:none;transition:color .35s var(--ease)}
.site-footer a:hover{color:var(--accent-soft)}
.foot-grid{display:grid;gap:40px var(--gap)}
.site-footer .brand{color:var(--on-dark)}
.site-footer .brand-sub{color:var(--mute-on-dark)}
.foot-about p{margin-top:18px;max-width:40ch;color:var(--mute-on-dark);font-size:.98rem}
.foot-col h3{margin-bottom:14px;color:var(--mute-on-dark)}
.foot-col li{padding:5px 0}
.foot-col li a{display:inline-block;font-weight:500;transition:color .35s var(--ease),translate .45s var(--ease)}
.foot-col li a:hover{translate:4px 0}
.foot-phone{display:block;font:400 clamp(2rem,3vw,2.6rem)/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-variant-numeric:lining-nums;letter-spacing:-.02em;color:var(--accent-soft)}
.foot-phone:hover{color:var(--on-dark)!important}
.foot-contact p{margin-top:10px;color:var(--mute-on-dark);font-size:.98rem}
.foot-contact p strong{color:var(--on-dark);font-weight:600}
.foot-areas{margin-top:clamp(36px,5vw,56px);padding-top:22px;border-top:1px solid var(--line-on-dark);font-size:.95rem;line-height:1.75;color:var(--mute-on-dark)}
.foot-areas strong{margin-right:10px;font:600 .78rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark)}
.foot-areas a{color:var(--on-dark);border-bottom:1px solid var(--accent-soft)}
.foot-legal{margin-top:26px;border-top:1px solid var(--line-on-dark)}
.foot-legal details{border-bottom:1px solid var(--line-on-dark)}
.foot-legal summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;cursor:pointer;list-style:none;font:500 1rem/1.3 var(--sans);transition:color .35s var(--ease)}
.foot-legal summary::-webkit-details-marker{display:none}
.foot-legal summary::after{content:"";flex:none;width:12px;height:12px;background:linear-gradient(currentColor,currentColor) center / 12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center / 1.5px 12px no-repeat;color:var(--mute-on-dark);transition:rotate .6s var(--ease)}
.foot-legal details[open] summary::after{rotate:135deg}
.foot-legal summary:hover{color:var(--accent-soft)}
.foot-legal .legal-body{padding:0 0 20px;max-width:78ch;font-size:.94rem;line-height:1.65;color:var(--mute-on-dark)}
.legal-body p + p,.legal-body ul{margin-top:10px}
.legal-body a{color:var(--on-dark);border-bottom:1px solid var(--line-on-dark)}
.legal-body .draft{color:var(--on-dark);font-weight:500}
.credits li{padding:4px 0}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px;margin-top:26px;font-size:.88rem;color:var(--mute-on-dark)}
.foot-base ul{display:flex;flex-wrap:wrap;gap:6px 22px}
.foot-base a{color:var(--on-dark)}
.foot-credit{flex-basis:100%;padding-top:16px;border-top:1px solid var(--line-on-dark);font-size:.8rem;letter-spacing:.03em;color:var(--mute-on-dark)}
.foot-credit a{font-weight:600;letter-spacing:.04em;padding-bottom:2px;background:linear-gradient(var(--accent-soft),var(--accent-soft)) left bottom/0 1px no-repeat;transition:color .3s var(--ease),background-size .45s var(--ease)}
.foot-credit a:hover,.foot-credit a:focus-visible{background-size:100% 1px}
@media (min-width:700px){ .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .foot-grid{grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,2.4fr) minmax(0,3.6fr)} }

/* ───────── Mobile sticky call bar ───────── */
.callbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:60;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 7px 7px 18px;border-radius:20px;background:var(--dark);color:var(--on-dark);text-decoration:none;box-shadow:0 18px 40px -16px rgba(30,20,10,.6)}
.callbar-text{display:grid;gap:3px;line-height:1.1}
.callbar-text strong{font:500 1.08rem/1.1 var(--serif);font-variation-settings:"SOFT" 100;font-style:italic}
.callbar-text span{display:flex;align-items:center;gap:7px;font:600 .68rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute-on-dark)}
.callbar-text .dot{width:6px;height:6px;background:var(--accent-soft)}
.callbar-btn{display:flex;align-items:center;gap:9px;padding:0 16px 0 13px;min-height:48px;border-radius:14px;background:var(--accent);color:#FFF9F0;font:600 1.06rem/1 var(--sans);white-space:nowrap}
.callbar:focus-visible{outline-color:var(--accent-soft);outline-offset:3px;border-radius:20px}
body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
.site-footer{margin-bottom:calc(-82px - env(safe-area-inset-bottom,0px));padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){ .callbar{display:none} body{padding-bottom:0} .site-footer{margin-bottom:0;padding-bottom:28px} }

/* ───────── Rendering: skip off-screen sections until they are near ───────── */
main > section:not(.hero):not(.facts):not(.page-top),.site-footer{content-visibility:auto;contain-intrinsic-size:auto 1000px}

/* ───────── Reduced motion & print ───────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .js [data-reveal],.js [data-reveal="clip"]{opacity:1;transform:none}
  .js .ph img[data-parallax],.js [data-reveal="clip"] img,.arch img{scale:1;clip-path:none;translate:none!important}
  .js .steps li .step-line{scale:1 1}
  .js .site-nav li,.js .nav-extra{opacity:1;transform:none}
  .drift-track{transform:none!important}
  .progress{display:none}
}
@media print{
  .site-header{position:static}.callbar,.nav-toggle,.area-filter,.progress,.drift{display:none}body{padding-bottom:0}
  .js [data-reveal],.js [data-reveal="clip"]{opacity:1;transform:none}
  .js [data-reveal="clip"] img{clip-path:none;scale:1}
  .sheet,.site-footer{margin:0;border-radius:0}
}

/* ───────── Inner pages ───────── */
.crumbs{padding-top:clamp(14px,2vw,24px);font-size:.88rem;color:var(--mute)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 10px;padding:0;margin:0;list-style:none}
.crumbs li + li::before{content:"/";margin-right:10px;color:var(--mute)}
.crumbs a{color:var(--ink);border-bottom:1px solid var(--rule)}
.section.page-top{padding-top:clamp(30px,4.6vw,64px)}
.sheet.page-top{margin-top:clamp(12px,1.6vw,20px)}
.page-cta{margin-top:30px}
.res-media .svc-art{aspect-ratio:4/5}
.legal-page{max-width:78ch}
.legal-page .h2{margin-bottom:26px}
.legal-page p + p,.legal-page ul{margin-top:14px}
.legal-page .draft{font-weight:600;color:var(--accent-text)}
.legal-page a{border-bottom:1px solid var(--rule)}
.legal-page .credits{padding:0;list-style:none}
.foot-legal a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line-on-dark);font:500 1rem/1.3 var(--sans);transition:color .35s var(--ease)}
.foot-legal a:hover{color:var(--accent-soft)}
