/* Layout: one 1120px column; dark "deck board" bands frame hero and footer; content sections alternate stone and surface.
   Display: Archivo condensed (trade-stencil feel). Body: Source Sans 3. Prices/units: IBM Plex Mono. */
:root{
  --bg:#EEF0ED; --surface:#FFFFFF; --ink:#1E1A17; --muted:#5D5852; --line:#D6D8D3;
  --wood:#6E2F1B; --amber:#C9761C; --on-amber:#1E1A17; --deep:#231714; --on-deep:#F3ECE6; --on-deep-muted:#C9BDB3;
  --ok:#2F6B3A; --bad:#9A3324;
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Source Sans 3","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:6px; --maxw:1120px; --gut:clamp(16px,4vw,32px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141110; --surface:#1D1917; --ink:#EEE8E2; --muted:#ADA49B; --line:#3A322D;
  --wood:#E0946A; --amber:#E4A24E; --on-amber:#1A1410; --deep:#0D0A09; --on-deep:#F3ECE6; --on-deep-muted:#B8ACA2;
  --ok:#7DC08A; --bad:#E58A78; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141110; --surface:#1D1917; --ink:#EEE8E2; --muted:#ADA49B; --line:#3A322D;
  --wood:#E0946A; --amber:#E4A24E; --on-amber:#1A1410; --deep:#0D0A09; --on-deep:#F3ECE6; --on-deep-muted:#B8ACA2;
  --ok:#7DC08A; --bad:#E58A78; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--f-body);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--wood);text-underline-offset:3px}
a:hover{color:var(--amber)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--f-display);font-stretch:78%;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.2rem,6vw,3.9rem);font-weight:800}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800}
h3{font-size:1.3rem;font-weight:700;font-stretch:85%}
p{margin:0}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.stack{display:grid;gap:1rem}
.prose{display:grid;gap:1rem;max-width:68ch}
.prose h2{margin-top:1.2rem}.prose h3{margin-top:.6rem}
.prose ul,.prose ol{margin:0;padding-left:1.2rem;display:grid;gap:.35rem}
.eyebrow{font:600 .78rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber)}
.muted{color:var(--muted)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:99;background:var(--surface);padding:.5rem 1rem}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--surface);border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.brand-mark{width:34px;height:34px;flex:none;border-radius:4px;background:repeating-linear-gradient(180deg,var(--wood) 0 7px,var(--surface) 7px 9px)}
.brand-name{font:800 1.12rem/1 var(--f-display);font-stretch:72%;text-transform:uppercase;letter-spacing:.02em}
.brand-name small{display:block;font:500 .66rem/1.3 var(--f-mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.nav{display:flex;align-items:center;gap:1.3rem}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.97rem;white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--wood)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:var(--r);padding:.45rem .7rem;font:600 .9rem var(--f-body);color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.25rem;border-radius:var(--r);font:700 1rem/1.1 var(--f-body);text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn-amber{background:var(--amber);color:var(--on-amber)}
.btn-amber:hover{filter:brightness(1.08);color:var(--on-amber)}
.btn-ghost{border-color:currentColor;color:inherit;background:transparent}
.btn-ghost:hover{color:var(--amber)}
.btn svg{width:20px;height:20px;flex:none}
@media (max-width:1180px){
  .menu-btn{display:inline-flex}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--gut) 1rem}
  .nav.open{display:flex}
  .nav a{padding:.75rem 0;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:.75rem}
}

/* hero */
.hero{position:relative;background:var(--deep);color:var(--on-deep);isolation:isolate}
.hero-img{position:absolute;inset:0;z-index:-1}
.hero-img img{width:100%;height:100%;object-fit:cover;opacity:.38}
.hero-in{padding-block:clamp(3rem,8vw,6rem) clamp(3.2rem,8vw,6.5rem);display:grid;gap:1.3rem;max-width:760px}
.hero .lead{font-size:clamp(1.08rem,2vw,1.25rem);color:var(--on-deep-muted);max-width:60ch}
.hero .eyebrow{color:var(--amber);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:500 .82rem/1 var(--f-mono);padding:.5rem .7rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:var(--on-deep)}
.boards{height:18px;background:repeating-linear-gradient(90deg,var(--wood) 0 140px,var(--deep) 140px 143px,color-mix(in srgb,var(--wood) 85%,black) 143px 300px,var(--deep) 300px 303px);border-top:3px solid var(--deep)}

/* sections */
.sec{padding-block:clamp(2.8rem,6vw,4.8rem)}
.sec-alt{background:var(--surface);border-block:1px solid var(--line)}
.sec-head{display:grid;gap:.7rem;margin-bottom:2rem;max-width:62ch}
.grid{display:grid;gap:1.25rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.split{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));align-items:start}
.split>*{min-width:0}

/* cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;color:var(--ink);text-decoration:none}
.sec-alt .card{background:var(--bg)}
a.card:hover{border-color:var(--wood)}
a.card:hover h3{color:var(--wood)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card-b{padding:1.1rem 1.2rem 1.3rem;display:grid;gap:.45rem;align-content:start;flex:1}
.card .from{font:600 .86rem/1.2 var(--f-mono);color:var(--wood);margin-top:auto;padding-top:.4rem}
.card-b p{color:var(--muted);font-size:.98rem}

/* problem tiles */
.prob{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:center;padding:.8rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.prob img{width:96px;height:96px;object-fit:cover;border-radius:4px}
.prob:hover{border-color:var(--wood)}
.prob strong{font:700 1.08rem/1.2 var(--f-display);font-stretch:85%;display:block}
.prob span{color:var(--muted);font-size:.93rem;line-height:1.4}

/* steps */
.steps{counter-reset:s;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));padding:0;margin:0;list-style:none}
.steps li{counter-increment:s;padding:1.1rem 1.1rem 1.2rem;border-top:4px solid var(--wood);background:var(--surface);display:grid;gap:.4rem}
.sec-alt .steps li{background:var(--bg)}
.steps li::before{content:"Step " counter(s);font:600 .75rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.steps p{color:var(--muted);font-size:.97rem}

/* price table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px}
th,td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font:600 .78rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg)}
td.price{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--wood);font-weight:600}
tr:last-child td{border-bottom:0}
.note{font-size:.92rem;color:var(--muted)}

/* before / after */
.ba{position:relative;overflow:hidden;border-radius:var(--r);background:var(--deep);max-width:100%;--pos:50%}
.ba img{width:100%;height:auto;display:block}
.ba .after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--pos))}
.ba .after img{width:100%;height:100%;object-fit:cover}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:var(--amber);pointer-events:none}
.ba .handle::after{content:"";position:absolute;top:50%;left:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;background:var(--amber);box-shadow:0 2px 8px rgba(0,0,0,.35)}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba .tag{position:absolute;top:.7rem;font:600 .72rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:rgba(20,14,12,.78);color:#F3ECE6;padding:.4rem .55rem;border-radius:3px;pointer-events:none}
.ba .tag.l{left:.7rem}.ba .tag.r{right:.7rem}
figure{margin:0;display:grid;gap:.55rem}
figcaption{font-size:.92rem;color:var(--muted)}

/* gallery */
.gal{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.gal figure img{aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:4px}
.gal.wide figure img{aspect-ratio:4/3}

/* checklist */
.check{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.check li{padding-left:1.8rem;position:relative}
.check li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:12px;border-radius:2px;background:var(--wood)}
.check.bad li::before{background:var(--bad)}
.check.good li::before{background:var(--ok)}

/* faq */
.faq{display:grid;gap:.6rem;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0 1.1rem}
.sec-alt .faq details{background:var(--bg)}
.faq summary{cursor:pointer;font-weight:700;padding:1rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";font:700 1.3rem/1 var(--f-mono);color:var(--amber)}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 0 1.1rem;color:var(--muted)}

/* cta band */
.cta-band{background:var(--deep);color:var(--on-deep)}
.cta-band .wrap{padding-block:clamp(2.5rem,6vw,4rem);display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:center}
.cta-band p{color:var(--on-deep-muted)}
.cta-band .num{font:600 clamp(1.3rem,3vw,1.7rem)/1.2 var(--f-mono);color:var(--amber);user-select:all}

/* breadcrumbs */
.crumbs{font-size:.86rem;color:var(--on-deep-muted);display:flex;flex-wrap:wrap;gap:.4rem}
.crumbs a{color:var(--on-deep-muted)}

/* form */
.form{display:grid;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.1rem,3vw,1.8rem)}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:.75rem .85rem;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink);width:100%;min-height:48px}
.form .row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.form-out{display:grid;gap:.7rem;padding:1rem;border:1px dashed var(--wood);border-radius:var(--r)}
.contact-list{display:grid;gap:1rem}
.contact-list div{display:grid;gap:.15rem}
.contact-list b{font:600 .75rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.contact-list span{font:600 1.15rem/1.3 var(--f-mono);user-select:all;word-break:break-word}

/* footer */
.foot{background:var(--deep);color:var(--on-deep-muted);font-size:.95rem}
.foot .wrap{padding-block:3rem 6.5rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.foot h4{color:var(--on-deep);font-size:1rem;font-stretch:85%;margin-bottom:.7rem;text-transform:uppercase;letter-spacing:.04em}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.foot a{color:var(--on-deep-muted);text-decoration:none}.foot a:hover{color:var(--amber)}
.foot .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;font-size:.85rem}
@media (min-width:1181px){.foot .wrap{padding-bottom:3rem}}

/* mobile action bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;grid-template-columns:1fr 1fr;gap:.5rem;padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(0,0,0,.08)}
.mbar .btn{min-height:46px;font-size:.95rem}
.mbar .btn-ghost{color:var(--ink)}
@media (max-width:1180px){.mbar{display:grid}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
