
/* THRUM - generated by build.py. Do not edit; edit build.py. */
@font-face{font-family:Archivo;src:url(../fonts/archivo-400.woff2)format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url(../fonts/archivo-500.woff2)format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Archivo;src:url(../fonts/archivo-700.woff2)format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Archivo Display";src:url(../fonts/archivo-800.woff2)format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Newsreader;src:url(../fonts/newsreader-400.woff2)format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Newsreader;src:url(../fonts/newsreader-400i.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"DM Mono";src:url(../fonts/dmmono-400.woff2)format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"DM Mono";src:url(../fonts/dmmono-500.woff2)format("woff2");font-weight:500;font-display:swap}

:root{
  --resonance:#0E3B34; --subfloor:#071A17; --moss:#1C5C50;
  --signal:#FF5A1F; --filament:#E9B949;
  --loom:#F5F1E8; --chalk:#fff; --graphite:#55605C; --haze:#DCE3DF;
  --sans:Archivo,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --disp:"Archivo Display",Archivo,-apple-system,system-ui,sans-serif;
  --serif:Newsreader,Georgia,"Times New Roman",serif;
  --mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --t-hero:clamp(2.35rem,4.9vw,4.4rem);
  --t-h1:clamp(1.95rem,3.9vw,3.2rem);
  --t-h2:clamp(1.55rem,3.3vw,2.45rem);
  --t-h3:clamp(1.12rem,1.8vw,1.35rem);
  --t-lede:clamp(1.12rem,1.9vw,1.4rem);
  --t-body:1.0625rem;
  --gut:clamp(20px,5vw,64px);
  --max:1240px; --measure:68ch;
  --warp:url("../brand/pattern.svg");
  --warp-d:url("../brand/pattern-dark.svg");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--loom);color:var(--subfloor);
  font:400 var(--t-body)/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,picture,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.08;letter-spacing:-.018em}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
hr{border:0;border-top:1px solid var(--haze);margin:0}
::selection{background:var(--signal);color:var(--subfloor)}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.prose{max-width:var(--measure)}
.band{padding-block:clamp(60px,9vw,128px)}
.band--tight{padding-block:clamp(44px,6vw,80px)}
.band--dark{background:var(--resonance);color:var(--loom);position:relative;isolation:isolate}
.band--deep{background:var(--subfloor);color:var(--loom);position:relative;isolation:isolate}
.band--dark::before,.band--deep::before{content:"";position:absolute;inset:0;
  background-image:var(--warp-d);background-size:120px 120px;opacity:.5;z-index:-1;pointer-events:none}
.band--tint{background:#EFEBE1}
.band--dark a,.band--deep a{color:var(--filament)}
.band--dark hr,.band--deep hr{border-color:rgba(245,241,232,.18)}

/* --- type helpers ------------------------------------------------------- */
.eyebrow{font:500 .7rem/1 var(--mono);letter-spacing:.17em;text-transform:uppercase;
  color:var(--graphite);margin:0 0 1.1rem;display:flex;align-items:center;gap:.7rem}
.eyebrow::after{content:"";flex:1;height:1px;background:currentColor;opacity:.3;max-width:120px}
.band--dark .eyebrow,.band--deep .eyebrow{color:var(--filament)}
.hero-h1{font:800 var(--t-hero)/1.02 var(--disp);letter-spacing:-.032em;margin:0}
.h1{font:800 var(--t-h1)/1.05 var(--disp);letter-spacing:-.028em}
.h2{font:800 var(--t-h2)/1.1 var(--disp);letter-spacing:-.024em}
.h3{font:700 var(--t-h3)/1.25 var(--sans);letter-spacing:-.012em}
.lede{font-size:var(--t-lede);line-height:1.5;color:var(--graphite)}
.band--dark .lede,.band--deep .lede{color:#CBD6D0}
.serif{font-family:var(--serif);font-weight:400}
.mark-under{background:linear-gradient(var(--signal),var(--signal)) 0 88%/100% 6px no-repeat;
  padding-bottom:.06em}
.num{font:500 .78rem/1 var(--mono);letter-spacing:.14em;color:var(--signal)}

/* --- header ------------------------------------------------------------- */
.nav{background:var(--resonance);color:var(--loom);position:relative;z-index:50}
.nav__in{display:flex;align-items:center;gap:22px;min-height:78px;
  max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.nav__logo{display:flex;align-items:center;flex:0 0 auto;text-decoration:none;padding-block:12px}
.nav__logo svg{width:148px;height:auto}
.nav__links{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav__links a{font:500 .875rem/1 var(--sans);letter-spacing:.005em;color:var(--loom);
  text-decoration:none;padding:10px 12px;border-radius:3px;white-space:nowrap}
.nav__links a:hover{background:var(--moss)}
.nav__links a[aria-current]{color:var(--filament)}
.nav__cta{background:var(--signal);color:var(--subfloor)!important;font-weight:700!important;
  padding:11px 17px!important}
.nav__cta:hover{background:#FF6F3C!important}
.nav__toggle,.nav__burger{display:none}
@media (max-width:1000px){
  .nav__in{min-height:64px;flex-wrap:wrap}
  .nav__burger{display:flex;margin-left:auto;align-items:center;gap:9px;cursor:pointer;
    font:500 .8rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
    color:var(--loom);padding:12px 2px;background:none;border:0}
  .nav__burger span{display:block;width:22px;height:2px;background:var(--filament);
    box-shadow:0 6px 0 var(--filament),0 -6px 0 var(--filament)}
  .nav__links{display:none;width:100%;flex-direction:column;align-items:stretch;
    gap:0;margin:0;padding-bottom:14px}
  .nav__toggle:checked ~ .nav__links{display:flex}
  .nav__links a{padding:13px 4px;border-top:1px solid rgba(245,241,232,.14)}
  .nav__cta{margin-top:12px;text-align:center;border-top:0!important}
}

/* --- hero --------------------------------------------------------------- */
.hero{background:var(--resonance);color:var(--loom);position:relative;isolation:isolate;
  padding-block:clamp(56px,8vw,112px) clamp(56px,8vw,104px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--warp-d);
  background-size:120px 120px;opacity:.55;z-index:-2}
.hero__grid{display:grid;gap:clamp(34px,5vw,60px);align-items:center;
  grid-template-columns:minmax(0,1.22fr) minmax(0,.88fr)}
@media (max-width:900px){.hero__grid{grid-template-columns:1fr}}
.hero__fig{position:relative}
.hero__fig picture{overflow:hidden;border-radius:4px}
.hero__fig img{width:100%;object-fit:cover;aspect-ratio:4/3}
.hero p.lede{max-width:44ch;color:#CBD6D0}
.def{border-left:3px solid var(--signal);padding:14px 0 14px 18px;margin:30px 0 0;
  font:400 .95rem/1.6 var(--serif);color:#D8E0DB;max-width:52ch}
.def b{font-family:var(--disp);font-weight:800;letter-spacing:.01em;color:var(--loom)}
.def i{color:var(--filament);font-style:italic}

/* --- buttons ------------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;gap:.6rem;font:700 .95rem/1 var(--sans);
  text-decoration:none;padding:16px 26px;border-radius:3px;border:2px solid transparent;
  transition:background .15s,color .15s,border-color .15s}
.btn--p{background:var(--signal);color:var(--subfloor)}
.btn--p:hover{background:#FF6F3C}
.btn--g{border-color:currentColor;color:inherit}
.btn--g:hover{background:rgba(245,241,232,.1)}
.band--tint .btn--g:hover,.band:not(.band--dark):not(.band--deep) .btn--g:hover{
  background:rgba(14,59,52,.07)}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* --- warp rule ---------------------------------------------------------- */
.warprule{height:56px;background-image:var(--warp);background-size:120px 120px;
  border-block:1px solid var(--haze)}
.band--dark + .warprule,.band--deep + .warprule{background-image:var(--warp-d);
  background-color:var(--resonance);border-color:rgba(245,241,232,.14)}

/* --- generic grid ------------------------------------------------------- */
.grid{display:grid;gap:clamp(22px,3vw,38px)}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.split{display:grid;gap:clamp(30px,5vw,68px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* --- inert list (the enemy) --------------------------------------------- */
.inert{list-style:none;margin:0;padding:0;border-top:1px solid var(--haze)}
.inert li{border-bottom:1px solid var(--haze);padding:20px 0;display:grid;
  grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:8px 30px;align-items:baseline}
@media (max-width:700px){.inert li{grid-template-columns:1fr;gap:4px}}
.inert b{font:700 1.02rem/1.3 var(--sans);letter-spacing:-.01em}
.inert span{color:var(--graphite)}

/* --- manifesto ---------------------------------------------------------- */
.manifesto{columns:2;column-gap:clamp(30px,5vw,72px)}
@media (max-width:820px){.manifesto{columns:1}}
.manifesto p{font:400 clamp(1.18rem,2.3vw,1.62rem)/1.52 var(--serif);
  max-width:34ch;margin:0 0 1.15em;color:var(--loom);break-inside:avoid}
.manifesto p:nth-child(4){color:var(--filament);font-style:italic}
.manifesto__close{font:800 clamp(1.5rem,3.4vw,2.5rem)/1.15 var(--disp)!important;
  letter-spacing:-.024em;font-style:normal!important;color:var(--loom)!important;
  max-width:20ch!important;margin-top:.5em!important}

/* --- service rows ------------------------------------------------------- */
.svc{border-top:1px solid var(--haze);padding-block:clamp(38px,5vw,64px)}
.svc:last-of-type{border-bottom:1px solid var(--haze)}
.svc__head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 22px;align-items:start}
.svc__no{font:500 .78rem/1.6 var(--mono);letter-spacing:.14em;color:var(--signal)}
.svc__sub{font:500 .78rem/1.5 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--graphite);margin-top:.5rem}
.svc__meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:1.1rem}
.chip{font:500 .74rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;
  border:1px solid var(--haze);background:#fff;padding:8px 11px;border-radius:2px;
  color:var(--graphite)}
.chip--price{border-color:var(--resonance);color:var(--resonance)}
.svc__body{display:grid;gap:clamp(24px,3.4vw,46px);
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);margin-top:26px;align-items:start}
@media (max-width:860px){.svc__body{grid-template-columns:1fr}}
.svc__body picture{border-radius:4px;overflow:hidden}
.svc__body img{aspect-ratio:3/2;object-fit:cover;width:100%}
.ticks{list-style:none;margin:1.3rem 0 0;padding:0;display:grid;gap:.7rem}
.ticks li{position:relative;padding-left:26px;color:var(--graphite)}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:13px;height:2px;
  background:var(--signal)}
.deliver{margin-top:1.4rem;padding:16px 18px;background:#EFEBE1;border-left:3px solid var(--resonance)}
.deliver b{font:500 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--graphite);display:block;margin-bottom:.55rem}
.note{margin-top:1.1rem;font-size:.95rem;color:var(--graphite);font-style:italic;
  font-family:var(--serif)}

/* --- stats -------------------------------------------------------------- */
.stat{border-top:2px solid var(--signal);padding-top:16px}
.stat b{display:block;font:800 clamp(2.1rem,4.6vw,3.2rem)/1 var(--disp);
  letter-spacing:-.03em;color:var(--signal)}
.stat span{display:block;margin-top:.5rem;font-size:.95rem;color:#CBD6D0;max-width:24ch}

/* --- steps -------------------------------------------------------------- */
.step{border-top:1px solid var(--haze);padding:26px 0;display:grid;
  grid-template-columns:auto minmax(0,14rem) minmax(0,1fr);gap:6px 26px;align-items:start}
@media (max-width:800px){.step{grid-template-columns:auto 1fr}
  .step p{grid-column:1/-1}}
.step p{color:var(--graphite);margin:0}

/* --- cards -------------------------------------------------------------- */
.card{background:#fff;border:1px solid var(--haze);border-radius:4px;padding:26px;
  position:relative;overflow:hidden;transition:border-color .16s,transform .16s}
.card:hover{border-color:var(--resonance);transform:translateY(-2px)}
.card__no{font:500 .74rem/1 var(--mono);letter-spacing:.14em;color:var(--signal);
  display:block;margin-bottom:.9rem}
.card p{color:var(--graphite);margin-top:.6rem;font-size:.98rem}
.card a.more{display:inline-block;margin-top:1.1rem;font:700 .9rem/1 var(--sans);
  color:var(--resonance);text-decoration:none;border-bottom:2px solid var(--signal);
  padding-bottom:3px}

/* --- faq ---------------------------------------------------------------- */
.faq{border-top:1px solid var(--haze)}
.faq details{border-bottom:1px solid var(--haze)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;
  font:700 1.02rem/1.35 var(--sans);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:13px;height:2px;
  background:var(--signal);transform:translateY(-50%)}
.faq summary::before{content:"";position:absolute;right:8px;top:50%;width:13px;height:2px;
  background:var(--signal);transform:translateY(-50%) rotate(90deg);transition:transform .18s}
.faq details[open] summary::before{transform:translateY(-50%) rotate(0)}
.faq p{padding:0 0 22px;color:var(--graphite);max-width:var(--measure)}

/* --- contact ------------------------------------------------------------ */
.dl{display:grid;gap:2px;margin:0}
.dl div{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:16px;
  padding:13px 0;border-bottom:1px solid rgba(245,241,232,.16)}
@media (max-width:620px){.dl div{grid-template-columns:1fr;gap:2px}}
.dl dt{font:500 .74rem/1.7 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--filament)}
.dl dd{margin:0}
.dl a{color:var(--loom);text-decoration:none;border-bottom:1px solid var(--signal);
  padding-bottom:2px}
.big-tel{font:800 clamp(1.8rem,4.5vw,3rem)/1 var(--disp);letter-spacing:-.03em;
  text-decoration:none;color:var(--loom);border:0!important;display:inline-block}
.big-tel:hover{color:var(--filament)}

/* --- footer ------------------------------------------------------------- */
.foot{background:var(--subfloor);color:#B9C6C0;padding-block:clamp(46px,6vw,74px);
  font-size:.92rem}
.foot__grid{display:grid;gap:34px;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))}
@media (max-width:820px){.foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1/-1}}
.foot svg{width:158px;height:auto;margin-bottom:16px}
.foot h4{font:500 .72rem/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;
  color:var(--filament);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a{color:#B9C6C0;text-decoration:none}
.foot a:hover{color:var(--loom)}
.foot__bar{margin-top:40px;padding-top:22px;border-top:1px solid rgba(245,241,232,.14);
  display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;font-size:.82rem;
  color:#8FA099}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gut);top:10px;z-index:100;background:var(--signal);
  color:var(--subfloor);padding:11px 18px;border-radius:3px;font-weight:700}
table.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
table.tbl th,table.tbl td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--haze);
  vertical-align:top}
table.tbl th{font:500 .72rem/1.5 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--graphite)}
.scroll-x{overflow-x:auto}
