
:root{
  --ink:#1A1C1A; --shop:#22453C; --shop-lt:#2F5D50; --signal:#DE8F2B;
  --paper:#F4F4F1; --card:#FFFFFF; --rule:#D8D9D3; --muted:#5C625C;
  --wrap:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/1.65 Archivo,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
h1,h2,h3{font-weight:700;line-height:1.1}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem);letter-spacing:-.012em}
h2{font-size:clamp(1.75rem,3.6vw,2.45rem);letter-spacing:-.008em}
h3{font-size:1.15rem;letter-spacing:0}
p{max-width:66ch}
a{color:inherit}
.mono{font-family:"Roboto Mono",ui-monospace,monospace}
.eyebrow{font:500 12px/1 "Roboto Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--shop-lt)}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:24px;top:12px;z-index:99;background:var(--card);padding:10px 16px;border-radius:6px}

/* header */
header{position:sticky;top:0;z-index:50;background:var(--shop);color:#fff}
.bar{display:flex;align-items:center;gap:20px;height:66px}
.logo{display:flex;align-items:center;gap:16px;font-weight:600;font-size:19px;letter-spacing:.005em;text-decoration:none;cursor:pointer}
.logo svg{flex:none;display:block}
nav{margin-left:auto;display:flex;gap:22px}
nav a{color:#fff;font:500 15px Archivo,sans-serif;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav a:hover{border-bottom-color:var(--signal)}
nav a[aria-current=page]{border-bottom-color:var(--signal)}
.btn.call{display:flex;align-items:center;gap:8px;white-space:nowrap}
.call svg{flex:none}
.call .word{display:inline}
.menu{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;padding:8px 12px;font-size:15px;cursor:pointer}
.hours{margin-left:auto;font:400 13px/1.3 "Roboto Mono",monospace;color:#9FB5AC;text-align:right;display:flex;align-items:center;gap:7px;justify-content:flex-end}
.hours .dot{width:7px;height:7px;border-radius:50%;background:#5C6B64;flex:none}
.hours.open .dot{background:var(--signal);box-shadow:0 0 0 3px rgba(222,143,43,.22)}
.hours .short{display:none}
@media(max-width:1040px){.hours{font-size:12px}.hours .long{display:none}.hours .short{display:inline}}
@media(max-width:400px){.hours{display:none}}
@media(max-width:900px){
  nav{position:absolute;top:66px;left:0;right:0;background:var(--shop-lt);flex-direction:column;gap:0;padding:8px 24px 16px;display:none}
  nav.open{display:flex}
  nav a{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .menu{display:block;margin-left:auto}
  .logo span{display:none}
  .btn.call{padding:10px 14px}
  .call .word{display:none}
}

figure{margin:0}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.gallery figure{border-radius:10px;overflow:hidden;border:1px solid var(--rule);background:var(--card)}
.gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media(max-width:820px){.gallery{grid-template-columns:repeat(2,1fr);gap:12px}}

/* hero */
.hero{background:var(--shop);color:#fff;padding:44px 0 46px}
.hero h1{max-width:17ch;letter-spacing:-.005em;line-height:1.14}
.hero .lede{margin-top:16px;font-size:19px;line-height:1.6;color:#D6E0DB;max-width:54ch;letter-spacing:.004em}
.acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.hero .acts{margin-top:28px;align-items:center}
.hero .acts .tel{font:700 22px "Roboto Mono",monospace;color:#fff;text-decoration:none;letter-spacing:-.02em}
.hero .acts .tel:hover{color:var(--signal)}
.btn{display:inline-block;text-decoration:none;background:var(--signal);color:#1A1C1A;border:0;padding:12px 22px;border-radius:6px;font:700 15px Archivo,sans-serif;text-decoration:none;cursor:pointer}
.btn:hover{background:#EDA23A}
.btn.ghost{background:none;border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn.dark{background:var(--shop);color:#fff}
.btn.dark:hover{background:var(--shop-lt)}
.btn.outline{background:none;border:1.5px solid var(--shop);color:var(--shop)}
.btn.outline:hover{background:var(--shop);color:#fff}

section{padding:64px 0}
.sec-head{max-width:60ch;margin-bottom:34px}
.sec-head p{margin-top:12px;color:var(--muted)}

/* service cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:16px}
.svc{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:24px;text-decoration:none;color:inherit;transition:border-color .15s}
.svc:hover{border-color:var(--shop)}
.svc h3{margin-bottom:8px}
.svc p{font-size:15px;color:var(--muted)}
.svc ul{list-style:none;margin-top:14px;margin-bottom:16px;font-size:14px;color:var(--muted)}
.svc li{padding:3px 0 3px 15px;position:relative}
.svc li:before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:1.5px;background:var(--signal)}
.svc .from{display:block;margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);font-family:"Roboto Mono",monospace;font-size:14px;color:var(--shop);font-weight:500}
.cat{border-top:2px solid var(--shop);padding-top:22px;margin-top:38px}
.cat-head{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between}
.cat-head h2{font-size:1.5rem}
.cat-price{font-family:"Roboto Mono",monospace;font-size:14px;color:var(--shop);font-weight:500;flex:none}
.cat p.lead{margin-top:8px;color:var(--muted);max-width:none}
.cat ul{list-style:none;columns:2;column-gap:32px;margin-top:18px;font-size:15.5px}
@media(max-width:640px){.cat ul{columns:1}}
.cat li{padding:4px 0 4px 15px;position:relative;break-inside:avoid}
.cat li:before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:1.5px;background:var(--signal)}
.cat .more{display:inline-block;margin-top:18px;color:var(--shop);font-weight:700;text-decoration:none}
.cat .more:hover{text-decoration:underline}
.included{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:22px 24px;margin-top:20px}
.included h3{font-size:1rem;color:var(--shop);margin-bottom:12px}
.included ol{list-style:none;counter-reset:inc;columns:2;column-gap:40px;margin:0;font-size:15.5px}
.included li{counter-increment:inc;padding:5px 0 5px 26px;position:relative;break-inside:avoid;color:var(--muted)}
.included li:before{content:counter(inc);position:absolute;left:0;top:5px;font:500 12.5px "Roboto Mono",monospace;color:var(--signal)}
.included li b{color:var(--ink);font-weight:600}
@media(max-width:640px){.included ol{columns:1}}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;padding-bottom:4px}
.jump a{background:var(--card);border:1px solid var(--rule);border-radius:999px;padding:8px 16px;font-size:15px;text-decoration:none;color:var(--ink)}
.jump a:hover{border-color:var(--shop)}
.anchor{scroll-margin-top:80px}
.rule-head{border-top:2px solid var(--shop);padding-top:22px;margin-top:56px}
.cat .order{margin-top:18px}
.cat .note-line{margin-top:14px;color:var(--muted);font-size:15.5px}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:38px 48px;margin-top:36px}
.principle h3{font-size:1rem;color:var(--shop);margin-bottom:6px;letter-spacing:0}
.principle p{color:var(--muted);font-size:15px;line-height:1.62;margin:0;max-width:44ch}
.detail{display:grid;grid-template-columns:repeat(2,1fr);gap:46px 64px;margin-top:36px}
.detail h3{font-size:1.1rem;color:var(--shop);margin-bottom:9px;letter-spacing:0}
.detail p{color:var(--muted);font-size:15.5px;line-height:1.66;margin:0;max-width:46ch}
.detail .aside h3{color:var(--muted)}
.detail .aside.wide{grid-column:1/-1;margin-top:12px;padding-top:34px;border-top:1px solid var(--rule)}
.detail .aside.wide .cols{display:grid;grid-template-columns:repeat(2,1fr);gap:0 64px;margin-top:2px}
.detail .aside.wide .cols p{max-width:46ch}
@media(max-width:820px){.detail .aside.wide .cols{display:block}.detail .aside.wide .cols p + p{margin-top:14px}}
.plan{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:36px 38px;margin-top:52px}
.plan-head{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:space-between}
.plan-head h2{font-size:1.6rem}
.plan-price{font-family:"Roboto Mono",monospace;font-size:15px;font-weight:500;color:var(--shop);flex:none}
.plan > p{margin-top:12px;color:var(--muted);max-width:66ch}
.plan h3{font-size:.95rem;color:var(--shop);margin-top:26px}
.plan ul{list-style:none;columns:2;column-gap:48px;margin-top:12px;font-size:15.5px}
.plan li{padding:4px 0 4px 15px;position:relative;break-inside:avoid;color:var(--muted)}
.plan li:before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:1.5px;background:var(--signal)}
@media(max-width:700px){.plan{padding:28px 24px}.plan ul{columns:1}}
.work{display:grid;grid-template-columns:repeat(2,1fr);gap:44px 48px;margin-top:34px}
.work h3{font-size:1.1rem;margin-bottom:5px}
.work .tags{font:500 12px/1 "Roboto Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--shop-lt)}
.work-shot{aspect-ratio:16/10;background:var(--paper);border:1px dashed var(--rule);border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;margin:16px 0 14px}
.work-shot.has-img{padding:0;border-style:solid;overflow:hidden}
.work-shot img{width:100%;height:100%;object-fit:cover;display:block}
.work-shot span{color:var(--muted);font:400 13px "Roboto Mono",monospace}
.work p{color:var(--muted);font-size:15.5px;line-height:1.62;margin:0;max-width:48ch}
@media(max-width:820px){.work{grid-template-columns:1fr;gap:36px}}
.detail .span{grid-column:1/-1;margin-top:12px;padding-top:34px;border-top:1px solid var(--rule)}
.detail .span .cols{display:flex;flex-wrap:wrap;gap:0 64px;margin-top:2px}
.detail .span .cols p{max-width:46ch}
@media(max-width:820px){.detail .span .cols{display:block}.detail .span .cols p + p{margin-top:14px}}
@media(max-width:820px){.detail{grid-template-columns:1fr;gap:28px}}
.detail.flow{display:block;columns:2;column-gap:64px}
.detail.flow > div{break-inside:avoid;margin:0 0 46px}
.detail.flow > div:last-child{margin-bottom:0}
@media(max-width:820px){.detail.flow{columns:1}.detail.flow > div{margin-bottom:28px}}
.symptoms ul.two{columns:2;column-gap:34px}
@media(max-width:640px){.symptoms ul.two{columns:1}}
@media(max-width:980px){.principles{grid-template-columns:repeat(2,1fr);gap:34px 48px}}
@media(max-width:700px){.principles{grid-template-columns:1fr;gap:30px}}
.bio{display:grid;grid-template-columns:290px 1fr;gap:40px;align-items:start;margin-top:52px}
.bio.flip{grid-template-columns:1fr 290px}
.bio.flip .bio-photo{grid-column:2;grid-row:1}
.bio.flip .bio-text{grid-column:1;grid-row:1}
.bio-text p{margin-top:14px;color:var(--muted)}
.bio-text p:first-of-type{margin-top:12px}
.bio-photo{aspect-ratio:4/5;background:var(--card);border:1px dashed var(--rule);border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;position:sticky;top:88px;overflow:hidden}
.bio-photo.filled{border:1px solid var(--rule);padding:0}
.bio-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bio-photo span{color:var(--muted);font:400 13px/1.5 "Roboto Mono",monospace}
@media(max-width:820px){.bio,.bio.flip{grid-template-columns:1fr;gap:22px;margin-top:44px}.bio.flip .bio-photo,.bio.flip .bio-text{grid-column:1}.bio.flip .bio-photo{grid-row:1}.bio.flip .bio-text{grid-row:2}.bio-photo{position:static;aspect-ratio:3/2;max-width:420px}}

/* work order / pricing */
.order{background:var(--card);border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.order h3{background:var(--shop);color:#fff;padding:14px 22px;font-size:15px;letter-spacing:.02em;margin-bottom:6px}
.line{display:flex;align-items:baseline;gap:12px;padding:11px 22px}
.line:first-child{padding-top:18px}
.line:last-child{padding-bottom:18px}
.line span:first-child{flex:none}
.line .dots{flex:1;border-bottom:1px dotted #C9CBC4;transform:translateY(-4px)}
.line .amt{font-family:"Roboto Mono",monospace;font-weight:500;color:var(--shop);flex:none}
.line small{display:block;color:var(--muted);font-size:13.5px;max-width:46ch;margin-top:2px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:22px}
.step h3{margin:0 0 5px;color:var(--shop)}
.step h3 .num{color:var(--signal);margin-right:2px}
.step p{font-size:15px;color:var(--muted)}

/* reviews */
.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.rev{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--signal);border-radius:0 10px 10px 0;padding:22px}
.rev p{font-size:16px;line-height:1.6}
.rev cite{display:block;margin-top:16px;font-style:normal;font-size:14.5px;color:var(--muted)}

/* areas */
.areas{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.area{background:var(--card);border:1px solid var(--rule);border-radius:999px;padding:8px 17px;font-size:15px;text-decoration:none}
.area:hover{border-color:var(--shop)}
.area.ext{color:var(--muted)}
span.area{cursor:default}
span.area:hover{border-color:var(--rule)}

/* split / cta */
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
@media(max-width:840px){.split{grid-template-columns:1fr;gap:30px}}
.cta{background:var(--shop);color:#fff;border-radius:12px;padding:44px}
.cta h2{max-width:18ch}
.cta p{color:#D6E0DB;margin-top:12px}
.cta .acts{margin-top:24px}

/* forms */
.tabs{display:flex;gap:4px;margin-top:18px;padding:4px;background:#E9E9E4;border:1px solid var(--rule);border-radius:10px}
.tabs[hidden]{display:none}
.tabs button{flex:1;background:none;border:0;border-radius:7px;padding:10px 8px;font:600 14.5px Archivo,sans-serif;color:#6E746D;cursor:pointer;transition:background .14s,color .14s,box-shadow .14s}
.tabs button[aria-selected=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(26,28,26,.12),0 3px 8px rgba(26,28,26,.10)}
.tabs button:hover:not([aria-selected=true]){color:var(--ink);background:rgba(255,255,255,.45)}
.panel[hidden]{display:none}
.panel-note{margin:18px 0 0;color:var(--muted);font-size:15.5px}
label{display:block;font-size:14px;font-weight:600;margin:16px 0 5px}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--rule);border-radius:6px;font:400 16px Archivo,sans-serif;background:var(--card)}
textarea{min-height:110px;resize:vertical}

/* service detail */
.crumb{font-size:14px;color:var(--muted);padding:22px 0 0}
.crumb a{color:var(--muted);text-decoration:underline}
.symptoms{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:24px}
.symptoms li{list-style:none;padding:7px 0 7px 24px;position:relative;font-size:16px;break-inside:avoid}
.symptoms li:before{content:"";position:absolute;left:2px;top:16px;width:6px;height:6px;border-radius:1.5px;background:var(--signal)}
.notdo{border-left:3px solid var(--rule);padding-left:20px}
.notdo li{list-style:none;padding:5px 0;color:var(--muted);font-size:15.5px}
details{border-bottom:1px solid var(--rule);padding:16px 0}
summary{font-weight:700;cursor:pointer;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";font-family:"Roboto Mono",monospace;color:var(--signal);flex:none}
details[open] summary:after{content:"–"}
details p{margin-top:10px;color:var(--muted);font-size:16px}

footer{background:var(--ink);color:#B9BEB8;padding:52px 0 30px;font-size:15px}
footer h4{color:#fff;font-size:14px;letter-spacing:.1em;text-transform:uppercase;font-family:"Roboto Mono",monospace;font-weight:500;margin-bottom:12px}
footer a{color:#B9BEB8;text-decoration:none;display:block;padding:4px 0}
footer a:hover{color:var(--signal)}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px}
@media(max-width:840px){.fgrid{grid-template-columns:1fr 1fr;gap:28px}}
.fbot{border-top:1px solid #33362F;margin-top:36px;padding-top:22px;font-size:13.5px;color:#7C817B}
.page{display:none}
.page.on{display:block}
