:root{
  --ink:#14202b; --ink-2:#2a3946; --muted:#5b6670; --faint:#8a939b;
  --paper:#f5f2ec; --paper-2:#fbfaf7; --line:#ddd6cb; --line-2:#e9e3d9;
  --copper:#a8521f; --copper-dk:#86401a; --copper-lt:#f1e1d4;
  --water:#1f5d7a; --water-lt:#dbe8ee;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
  --text-sm:clamp(.875rem,.84rem + .15vw,.95rem);
  --text-base:clamp(1rem,.96rem + .2vw,1.09rem);
  --text-lg:clamp(1.15rem,1.05rem + .45vw,1.35rem);
  --text-xl:clamp(1.5rem,1.25rem + 1.1vw,2.1rem);
  --text-2xl:clamp(2rem,1.5rem + 2.4vw,3.4rem);
  --radius:6px;
  --display:'Cabinet Grotesk',system-ui,sans-serif;
  --body:'Satoshi',system-ui,sans-serif;
  --w:1160px; --w-text:68ch;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--text-base);line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--water);text-underline-offset:3px}
a:hover{color:var(--copper-dk)}
h1,h2,h3{font-family:var(--display);line-height:1.08;letter-spacing:-.01em;margin:0 0 var(--space-4);text-wrap:balance}
h1{font-size:var(--text-2xl);font-weight:800}
h2{font-size:var(--text-xl);font-weight:800;margin-top:var(--space-12)}
h3{font-size:var(--text-lg);font-weight:700;margin-top:var(--space-8)}
p,ul,ol{margin:0 0 var(--space-4);max-width:var(--w-text)}
li{margin-bottom:var(--space-2)}
.wrap{max-width:var(--w);margin:0 auto;padding-inline:var(--space-5)}
.skip{position:absolute;left:-999px}.skip:focus{left:var(--space-4);top:var(--space-4);background:#fff;padding:var(--space-2) var(--space-4);z-index:99}
:focus-visible{outline:3px solid var(--copper);outline-offset:2px}

/* header */
.top{background:var(--ink);color:#e9edf0;font-size:var(--text-sm)}
.top .wrap{display:flex;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2)}
.top a{color:#fff;font-weight:700;text-decoration:none}
header.site{background:var(--paper-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding-block:var(--space-3)}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--ink)}
.brand svg{flex:none}
.brand b{font-family:var(--display);font-size:1.22rem;font-weight:800;line-height:1;display:block}
.brand small{display:block;color:var(--muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;margin-top:3px}
nav.main ul{display:flex;gap:var(--space-4);list-style:none;margin:0;padding:0;max-width:none}
nav.main li{margin:0}
nav.main a{white-space:nowrap;color:var(--ink-2);text-decoration:none;font-weight:500;font-size:var(--text-sm)}
nav.main a[aria-current]{color:var(--copper-dk);font-weight:700}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--copper);color:#fff;font-weight:700;text-decoration:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);border:0;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--copper-dk);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.menu-btn{display:none}
@media (max-width:1180px){
  nav.main{display:none}
  nav.main.open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--paper-2);border-bottom:1px solid var(--line)}
  nav.main.open ul{flex-direction:column;gap:0;padding:var(--space-2) var(--space-5) var(--space-4)}
  nav.main.open a{display:block;padding:var(--space-3) 0;font-size:var(--text-base);border-bottom:1px solid var(--line-2)}
  .menu-btn{display:inline-flex;background:none;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font:inherit;font-weight:600;color:var(--ink);cursor:pointer}
  header.site .btn.call{display:none}
}

/* hero */
.hero{background:var(--ink);color:#f3f1ec;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-10);align-items:center;padding-block:clamp(var(--space-10),6vw,var(--space-20))}
.hero h1{color:#fff}
.hero .lede{font-size:var(--text-lg);color:#cdd5db;max-width:52ch}
.hero .eyebrow{color:#e7b48f}
.hero figure{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.hero figure img{width:100%;height:100%;object-fit:cover}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--copper);margin-bottom:var(--space-3)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-6) 0 var(--space-4)}
.hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.hero .btn.ghost:hover{background:#fff;color:var(--ink)}
.bignum{font-family:var(--display);font-weight:800;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);letter-spacing:.01em;color:#fff;text-decoration:none;display:inline-block}
.fine{font-size:var(--text-sm);color:var(--faint)}
.hero .fine{color:#9fb0bc}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero figure{order:-1;aspect-ratio:16/9}}

/* page header (inner) */
.phead{background:var(--paper-2);border-bottom:1px solid var(--line)}
.phead .wrap{padding-block:clamp(var(--space-8),5vw,var(--space-16))}
.crumbs{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-4)}
.crumbs a{color:var(--muted)}
.phead .lede{font-size:var(--text-lg);color:var(--ink-2);max-width:60ch}

/* layout */
section.band{padding-block:clamp(var(--space-12),6vw,var(--space-20))}
section.band.alt{background:var(--paper-2);border-block:1px solid var(--line-2)}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-12);align-items:start}
.cols > article > h2:first-child{margin-top:0}
aside.side{position:sticky;top:96px;display:grid;gap:var(--space-4)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6)}
.card h3{margin-top:0}
.callcard{background:var(--ink);color:#e9edf0;border:0}
.callcard h3{color:#fff}
.callcard .bignum{font-size:1.75rem}
.callcard p{color:#c3ccd3}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}aside.side{position:static}}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-8)}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5);margin-top:var(--space-6)}
@media (max-width:860px){.grid3,.grid2{grid-template-columns:1fr}}
.svc{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6);text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.svc:hover{border-color:var(--copper);transform:translateY(-2px);color:var(--ink)}
.svc h3{margin:0 0 var(--space-2)}
.svc p{color:var(--muted);margin:0 0 var(--space-4);font-size:var(--text-sm)}
.svc span{margin-top:auto;color:var(--copper-dk);font-weight:700;font-size:var(--text-sm)}

.steps{counter-reset:s;list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);max-width:none;margin-top:var(--space-8)}
.steps li{counter-increment:s;border-top:3px solid var(--copper);padding-top:var(--space-4);margin:0}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--copper);display:block;margin-bottom:var(--space-2)}
.steps b{display:block;font-family:var(--display);font-size:var(--text-lg);margin-bottom:var(--space-1)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

table.data{border-collapse:collapse;width:100%;margin:var(--space-4) 0 var(--space-2);font-size:var(--text-sm);background:#fff}
table.data th,table.data td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--line-2);vertical-align:top}
table.data th{background:var(--paper);font-weight:700}
table.data td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl{overflow-x:auto}

.note{border-left:4px solid var(--water);background:var(--water-lt);padding:var(--space-4) var(--space-5);border-radius:0 var(--radius) var(--radius) 0;margin:var(--space-6) 0;max-width:var(--w-text)}
.note.warn{border-color:var(--copper);background:var(--copper-lt)}
.note p:last-child{margin:0}
figure.inline{margin:var(--space-8) 0;max-width:var(--w-text)}
figure.inline img{border-radius:var(--radius)}
figure.inline figcaption{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-2)}

details{border-bottom:1px solid var(--line);padding:var(--space-4) 0;max-width:var(--w-text)}
details summary{cursor:pointer;font-weight:700;font-family:var(--display);font-size:1.12rem;list-style:none;display:flex;justify-content:space-between;gap:var(--space-4)}
details summary::after{content:"+";color:var(--copper);font-size:1.4rem;line-height:1}
details[open] summary::after{content:"\2212"}
details p{margin:var(--space-3) 0 0}

.checks{list-style:none;padding:0}
.checks li{padding-left:28px;position:relative}
.checks li::before{content:"";position:absolute;left:0;top:.5em;width:14px;height:8px;border-left:3px solid var(--copper);border-bottom:3px solid var(--copper);transform:rotate(-45deg)}

/* form */
form.quote{display:grid;gap:var(--space-4);max-width:560px}
form.quote label{display:grid;gap:var(--space-1);font-weight:600;font-size:var(--text-sm)}
form.quote input,form.quote select,form.quote textarea{font:inherit;font-weight:400;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}
form.quote textarea{min-height:120px;resize:vertical}
.hp{position:absolute;left:-5000px}
#form-status{font-weight:600}

/* footer */
footer.site{background:var(--ink);color:#b9c3cb;font-size:var(--text-sm);padding-block:var(--space-16) var(--space-24)}
footer.site .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-10)}
footer.site a{color:#e9edf0}
footer.site h4{color:#fff;font-family:var(--display);font-size:1rem;margin:0 0 var(--space-3)}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site .disc{grid-column:1/-1;border-top:1px solid #2f3e4b;padding-top:var(--space-6);color:#93a1ac;max-width:none}
@media (max-width:760px){footer.site .wrap{grid-template-columns:1fr}}

/* sticky mobile call bar */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--copper);color:#fff;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);font-weight:800;font-family:var(--display);font-size:1.15rem;text-decoration:none;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
  .callbar:hover{color:#fff}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

@media (max-width:600px){.top .wrap>span{display:none}.top .wrap{justify-content:center}.brand small{display:none}}
@media (min-width:1181px){.brand span{white-space:nowrap}}
@media (max-width:1400px) and (min-width:1181px){.brand small{display:none}}

.grid4{grid-template-columns:repeat(4,1fr)}@media (max-width:1100px){.grid4{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.grid4{grid-template-columns:1fr}}
