@font-face{font-family:"Inter Tight";src:url(/assets/fonts/intertight.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Inter;src:url(/assets/fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--ink:#12161B;--text:#3A424C;--muted:#5B6470;--line:#E3E6E9;--surface:#F4F5F6;--paper:#fff;--cta:#C2410C;--cta-h:#9A3412;--signal:#E8590C;
--r-s:6px;--r-m:12px;--r-l:20px;--wrap:1200px;--gut:clamp(20px,4vw,40px);
--s1:8px;--s2:12px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--s7:72px;--s8:clamp(72px,10vw,128px);
--f-d:"Inter Tight",Inter,system-ui,sans-serif;--f-b:Inter,system-ui,sans-serif;
--ease:cubic-bezier(.2,.7,.2,1);--sh:0 1px 2px rgb(18 22 27/.04),0 8px 24px -8px rgb(18 22 27/.12),0 24px 48px -24px rgb(18 22 27/.14)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px;color-scheme:light}
body{margin:0;font:400 1.0625rem/1.65 var(--f-b);color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-d);color:var(--ink);letter-spacing:-.03em;line-height:1.06;margin:0 0 var(--s3);text-wrap:balance;font-weight:600}
h1{font-size:clamp(2.4rem,5.4vw,4.6rem)}h2{font-size:clamp(2rem,4vw,3.2rem)}h3{font-size:1.3rem;letter-spacing:-.015em;line-height:1.25}
p{margin:0 0 var(--s3);text-wrap:pretty}
.wrap{width:min(100% - 2*var(--gut),var(--wrap));margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--ink);color:#fff;padding:10px 14px;border-radius:var(--r-s)}
:focus-visible{outline:2px solid var(--cta);outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
/* header */
.topbar{background:var(--ink);color:#C9CFD6;font-size:.8125rem}
.topbar .wrap{display:flex;gap:var(--s4);justify-content:space-between;align-items:center;min-height:36px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none}.topbar .lic small{color:#9AA3AD}
.hdr{position:sticky;top:0;z-index:50;background:rgb(255 255 255/.86);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:var(--s4)}
.hdr .logo img{height:38px;width:auto;transform-origin:left center}
.nav{display:flex;gap:4px;align-items:center}
.nav a{position:relative;padding:8px 12px;font-size:.9375rem;font-weight:500;text-decoration:none;color:var(--ink)}
.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1);transform-origin:left}
.hdr-cta{display:flex;gap:var(--s2);align-items:center}
.tel{font-weight:600;color:var(--ink);text-decoration:none;font-size:.9375rem;white-space:nowrap}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:var(--r-s);padding:9px 12px;font:inherit;font-weight:600;color:var(--ink)}
#mnav{border:0;padding:var(--s5) var(--gut);width:100%;max-width:none;height:100dvh;margin:0;inset:0}
#mnav a{display:block;font:600 1.6rem/1.2 var(--f-d);padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none}
@media (max-width:960px){.nav,.hdr-cta .tel{display:none}.menu-btn{display:block}.hdr .wrap{height:64px}.hdr .logo img{height:32px}}
@media (max-width:600px){.topbar .addr{display:none}.hdr-cta .btn{padding:10px 14px;font-size:.875rem}}
.hdr.stuck{border-color:var(--line);box-shadow:0 6px 24px -18px rgb(18 22 27/.4)}
/* buttons */
.btn{--bg:var(--cta);white-space:nowrap;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:var(--r-s);background:var(--bg);color:#fff;font:600 1rem/1 var(--f-b);text-decoration:none;border:0;cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s}
.btn::before{content:"";position:absolute;inset:0;background:var(--cta-h);transform:translateY(101%);transition:transform .35s var(--ease);z-index:-1}
.btn:hover::before{transform:none}.btn:hover{box-shadow:0 10px 24px -12px rgb(194 65 12/.7)}.btn:active{transform:translateY(1px)}
.btn .ar{transition:transform .3s var(--ease)}.btn:hover .ar{transform:translateX(3px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.btn.ghost::before{background:var(--ink)}.btn.ghost:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--ink)}
.lnk{font-weight:600;text-decoration:none;background:linear-gradient(currentColor 0 0) 0 100%/0 1px no-repeat;transition:background-size .35s var(--ease);padding-bottom:2px}
.lnk:hover{background-size:100% 1px}
/* section index (dimension line motif) */
.idx{display:flex;align-items:center;gap:14px;font:600 .75rem/1 var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4)}
.idx b{color:var(--ink);font-variant-numeric:tabular-nums}
.idx::after{content:"";flex:0 1 120px;height:9px;background:linear-gradient(var(--line) 0 0) 0 50%/100% 1px no-repeat,linear-gradient(var(--line) 0 0) 0 0/1px 100% no-repeat,linear-gradient(var(--line) 0 0) 100% 0/1px 100% no-repeat}
section{padding-block:var(--s8)}
.lead{font-size:clamp(1.125rem,1.6vw,1.3rem);color:var(--text);max-width:60ch}
/* hero */
.hero{padding-block:clamp(40px,6vw,88px) var(--s8);position:relative;overflow:clip}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/48px 48px;mask:radial-gradient(70% 60% at 20% 30%,#000 0,transparent 75%);opacity:.55;z-index:-1}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.875rem;font-weight:500;color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:6px 14px 6px 8px;background:#fff;margin-bottom:var(--s4);text-decoration:none}
.stars{color:#B45309;letter-spacing:1px}
.hero .lead{margin-bottom:var(--s5)}.actions{display:flex;flex-wrap:wrap;gap:var(--s2)}
.hero-media{position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/5;background:var(--surface)}
.hero-media img{width:100%;height:115%;object-fit:cover;object-position:62% 50%}

.trust{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:var(--s7)}
.trust div{padding:var(--s4) var(--s4) 0 0;font-size:.9375rem}.trust strong{display:block;font:600 1.15rem/1.3 var(--f-d);color:var(--ink);letter-spacing:-.01em}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}.hero-media{aspect-ratio:4/3}.trust{grid-template-columns:1fr}.trust div{padding:var(--s3) 0;border-bottom:1px solid var(--line)}}
/* services grid */
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s5);margin-bottom:var(--s6);flex-wrap:wrap}.sec-head h2{max-width:18ch;margin:0}
.grid{display:grid;gap:var(--s4)}.g3{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-m);background:#fff;overflow:hidden;text-decoration:none;color:inherit;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:transparent}
.card .ph{aspect-ratio:4/3;overflow:hidden;background:var(--surface)}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .6s}
.card:hover .ph img{transform:scale(1.045)}
.card .bd{padding:var(--s4);display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{margin:0;display:flex;justify-content:space-between;gap:12px}
.card h3 .ar{transition:transform .35s var(--ease);color:var(--muted)}.card:hover h3 .ar{transform:translate(3px,-3px);color:var(--cta)}
.card p{margin:0;font-size:.9688rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips a{border:1px solid var(--line);border-radius:99px;padding:8px 14px;text-decoration:none;font-size:.9375rem;font-weight:500;transition:background .25s,color .25s,border-color .25s}.chips a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
/* split + process */
.alt{background:var(--surface)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}@media (max-width:860px){.split{grid-template-columns:1fr}}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;border-top:1px solid var(--ink);padding-top:var(--s4)}
.steps li::before{content:"0" counter(s);font:600 .8125rem var(--f-b);color:var(--muted);letter-spacing:.1em;display:block;margin-bottom:var(--s5)}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}@media (max-width:520px){.steps{grid-template-columns:1fr}}
.ticks{list-style:none;padding:0;margin:0 0 var(--s4);display:grid;gap:10px}.ticks li{padding-left:28px;position:relative}.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:8px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg)}
/* before/after */
.ba{position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3;--pos:50%;background:var(--surface);touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after{clip-path:inset(0 0 0 var(--pos))}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;pointer-events:none;translate:-1px 0}
.ba .handle::after{content:"⟷";position:absolute;top:50%;left:50%;translate:-50% -50%;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--ink);box-shadow:var(--sh);font-size:18px}
.ba .t{position:absolute;top:12px;font-size:.75rem;font-weight:600;background:#fff;color:var(--ink);padding:4px 10px;border-radius:99px}.ba .t.l{left:12px}.ba .t.r{right:12px}
.ba:has(input:focus-visible){outline:2px solid var(--cta);outline-offset:3px}
/* reviews */
.rev{border:1px solid var(--line);border-radius:var(--r-m);padding:var(--s5);background:#fff;display:flex;flex-direction:column;gap:var(--s3);margin:0;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.rev:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.rev blockquote{margin:0;font-size:1rem;color:var(--ink)}.rev figcaption{font-size:.875rem;color:var(--muted);margin-top:auto}.rev figcaption b{color:var(--ink)}
.rating{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}.rating .big{font:600 4rem/1 var(--f-d);color:var(--ink);letter-spacing:-.04em}
/* cost table */
.tbl{width:100%;border-collapse:collapse;font-size:1rem}.tbl th,.tbl td{text-align:left;padding:14px 0;border-bottom:1px solid var(--line);vertical-align:top}.tbl td:last-child,.tbl th:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap;padding-left:16px}
.tbl caption{text-align:left;font-size:.8125rem;color:var(--muted);caption-side:bottom;padding-top:12px}
.note{font-size:.875rem;color:var(--muted)}
/* faq */
.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font:600 1.15rem/1.35 var(--f-d);color:var(--ink);position:relative;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:1.5px solid;border-bottom:1.5px solid;translate:0 -70%;rotate:45deg;transition:rotate .3s var(--ease)}
.faq details[open] summary::after{rotate:225deg}.faq details p{padding-bottom:var(--s4);max-width:70ch}
details::details-content{transition:content-visibility .35s allow-discrete,block-size .35s var(--ease);block-size:0;overflow:clip}details[open]::details-content{block-size:auto}
:root{interpolate-size:allow-keywords}
/* page head */
.ph-head{padding-block:clamp(40px,6vw,80px) var(--s6);border-bottom:1px solid var(--line)}
.crumbs{font-size:.875rem;color:var(--muted);margin-bottom:var(--s4)}.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.crumbs li+li::before{content:"/";margin-right:8px;color:var(--line)}.crumbs a{color:var(--muted)}
.trade-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,5vw,64px);align-items:end}.trade-hero .hero-media{aspect-ratio:4/3}
@media (max-width:860px){.trade-hero{grid-template-columns:1fr}}
.prose{max-width:72ch}.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:var(--s6)}
/* CTA band + form */
.band{background:var(--ink);color:#C9CFD6;border-radius:var(--r-l);padding:clamp(32px,6vw,72px);display:grid;grid-template-columns:1.2fr auto;gap:var(--s5);align-items:center}
.band h2{color:#fff}.band .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1px #fff}.band .btn.ghost::before{background:#fff}.band .btn.ghost:hover{color:var(--ink)}
@media (max-width:760px){.band{grid-template-columns:1fr}}
form.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3) var(--s4);background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(24px,4vw,40px);box-shadow:var(--sh)}
.fld{display:grid;gap:6px}.fld.full{grid-column:1/-1}
.fld label{font-size:.875rem;font-weight:600;color:var(--ink)}
.fld input,.fld select,.fld textarea{font:inherit;font-size:1rem;color:var(--ink);border:1px solid #C9CED4;border-radius:var(--r-s);padding:12px 14px;background:#fff;transition:border-color .2s,box-shadow .2s;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgb(18 22 27/.12)}
.fld input:user-invalid,.fld select:user-invalid{border-color:#B91C1C}.fld .err{display:none;color:#B91C1C;font-size:.8125rem}.fld input:user-invalid~.err,.fld select:user-invalid~.err{display:block}
.consent{grid-column:1/-1;display:flex;gap:12px;font-size:.8125rem;line-height:1.5;color:var(--muted)}.consent input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--ink)}
form .btn{grid-column:1/-1;justify-content:center;padding:16px}
.form-msg{grid-column:1/-1;font-weight:600;color:var(--ink)}
@media (max-width:600px){form.lead-form{grid-template-columns:1fr}}
/* footer */
footer{background:var(--ink);color:#B9C0C8;padding-block:var(--s7) var(--s5);margin-top:var(--s8);font-size:.9375rem}
footer a{color:#fff;text-decoration:none}footer a:hover{text-decoration:underline}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s5)}footer h2{font:600 .75rem/1 var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:#8D96A0;margin-bottom:var(--s3)}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.legal{border-top:1px solid #2A3038;margin-top:var(--s6);padding-top:var(--s4);display:flex;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;font-size:.8125rem;color:#8D96A0}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}

/* ===== motion: progressive enhancement ===== */
@keyframes rise{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes drift{from{translate:0 -6%}to{translate:0 6%}}
@keyframes shrink{to{height:60px}}@keyframes logo{to{scale:.86}}@keyframes edge{to{border-color:var(--line);box-shadow:0 6px 24px -18px rgb(18 22 27/.4)}}
@media (prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}
 @supports ((animation-timeline:view()) and (animation-range:entry)){
  .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  .hero-media img,.par img{animation:drift linear both;animation-timeline:view();animation-range:cover}
  @media (min-width:961px){.hdr .wrap{animation:shrink linear both;animation-timeline:scroll(block root);animation-range:0 160px}.hdr .logo img{animation:logo linear both;animation-timeline:scroll(block root);animation-range:0 160px}.hdr{animation:edge linear both;animation-timeline:scroll(block root);animation-range:0 160px}}
 }
 .js-io .rv{opacity:0;translate:0 28px;transition:opacity .8s var(--ease),translate .8s var(--ease)}
 .js-io .rv.in{opacity:1;translate:0 0}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation:none!important}.card:hover,.rev:hover{transform:none}}
.hero .wrap+.wrap{display:block}
.answer{border-left:3px solid var(--ink);background:var(--surface);padding:16px 20px;border-radius:0 var(--r-m) var(--r-m) 0;margin:8px 0 28px;max-width:62ch}.answer p:last-child{margin:0;color:var(--ink)}
.mc-hl{margin-top:48px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--r-l);padding:28px 32px;background:linear-gradient(120deg,#F4F5F6,#fff)}.mc-hl h3{margin:0 0 6px}.mc-hl p{margin:0;max-width:60ch}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.steps5{grid-template-columns:repeat(5,1fr)}@media (max-width:1000px){.steps5{grid-template-columns:1fr 1fr}}@media (max-width:520px){.steps5{grid-template-columns:1fr}}
.cmp th[scope=row]{font-weight:600;color:var(--ink);padding-right:12px}.cmp td,.cmp th{text-align:left!important;white-space:normal!important;font-weight:400}.cmp thead th{font-weight:600}
.article .tbl{margin:8px 0 24px}.toc{border:1px solid var(--line);border-radius:var(--r-m);padding:16px 24px;margin-bottom:32px}.toc ol{margin:0;padding-left:20px;columns:2;font-size:.95rem}@media (max-width:640px){.toc ol{columns:1}}
.article h2{scroll-margin-top:100px}
