:root{--primary:#1f4d3a;--accent:#b4462b;--accent-dark:#8f3620;--accent-light:#f2b38f;--ink:#1c2622;--muted:#55635c;--line:#d7ddd8;--paper:#f7f5f0;--tint:#e7efe9;--link:#1d5a7a;}
/* Town-site template: mobile-first. Theme variables (:root) are injected from the town TOML at build time. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper);padding-bottom:4.2rem}
img,svg{max-width:100%;height:auto}
a{color:var(--link)}a:hover{text-decoration:underline 2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
h1,h2,h3{line-height:1.2;color:var(--primary);margin:0 0 .6rem}
h1{font-size:clamp(1.85rem,6vw,3rem);letter-spacing:-.02em}
h2{font-size:clamp(1.35rem,3.6vw,1.8rem);margin-top:.4rem}
h3{font-size:1.1rem}
p{margin:0 0 1rem}
.wrap{width:min(100% - 2.2rem,1080px);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
mark.ph{background:#fff3a3;color:#3d2f00;outline:2px dashed #b88a00;outline-offset:1px;padding:0 .2em;border-radius:3px;font-weight:600}
/* header */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.hdr{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;min-height:64px}
.brand{display:block;line-height:0;margin-right:auto}.wordmark{width:200px;font-family:inherit}
.nav-toggle{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.45rem .8rem;font:inherit;font-weight:600;color:var(--primary)}
.nav{flex-basis:100%;display:none}.nav.open{display:block}
.nav ul{list-style:none;margin:0;padding:.3rem 0 .8rem}
.nav a{display:block;padding:.55rem 0;text-decoration:none;color:var(--ink);font-weight:600;border-bottom:1px solid var(--line)}
.nav a[aria-current=page]{color:var(--accent)}
.hdr-call{display:none}
.ico{width:22px;height:22px;flex:none}
/* crumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;padding:.7rem 0 0;margin:0;font-size:.85rem;color:var(--muted)}
.crumbs li+li::before{content:"\203A";margin-right:.3rem}
/* hero */
.hero{padding:1.6rem 0 1.8rem}
.hero-home{background:linear-gradient(160deg,var(--tint) 0%,var(--paper) 70%);padding:2.4rem 0}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;color:var(--accent);margin-bottom:.4rem}
.lead{font-size:1.1rem;max-width:62ch;color:var(--ink)}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0}
.btn{display:inline-block;padding:.8rem 1.3rem;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid transparent;font-size:1rem;cursor:pointer;white-space:nowrap}
.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-dark)}
.btn-ghost{border-color:var(--primary);color:var(--primary);background:#fff}
.btn mark.ph{font-size:.85em}
.btn{max-width:100%}.btn-ghost{white-space:normal;text-align:center}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{display:flex;gap:.35rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;font-size:.88rem}
.chips .ico{width:16px;height:16px;color:var(--primary)}
/* blocks */
.content{padding-bottom:1rem}
.blk{margin:2.2rem 0}
.prose{max-width:72ch}.prose ul{padding-left:1.2rem}.prose li{margin:.3rem 0}
.intro{max-width:70ch}
.cards{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem}
.card .ico{color:var(--accent);width:28px;height:28px;margin-bottom:.4rem}
.card h3 a{text-decoration:none;color:var(--primary)}.card h3 a:hover{text-decoration:underline}
.card p{margin:0;font-size:.95rem}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:.8rem}
.steps li{counter-increment:s;position:relative;padding:.9rem 1rem .9rem 3.4rem;background:#fff;border-left:4px solid var(--primary);border-radius:0 10px 10px 0}
.steps li::before{content:counter(s);position:absolute;left:.9rem;top:.85rem;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;display:grid;place-items:center;font-size:.9rem}
.steps strong{display:block;color:var(--primary)}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.checks li{display:flex;gap:.6rem;align-items:flex-start}.checks .ico{color:var(--accent);margin-top:.2rem}
.stats-blk{background:var(--primary);color:#fff;border-radius:16px;padding:1.4rem}
.stats-blk h2,.stats-blk .intro{color:#fff}
.stats-blk a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.stats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stats .num{display:block;font-size:1.7rem;font-weight:800;color:var(--accent-light)}
.stats .lbl{font-size:.9rem}
.stats-blk .source{color:#e4ece7;font-size:.82rem;margin:1rem 0 0}
.ph-figure{margin-inline:0}.ph-figure img{border-radius:14px;border:1px solid var(--line);background:#e8ece9;width:100%}
figcaption{font-size:.88rem;color:var(--muted);margin-top:.4rem}
.tbl{overflow-x:auto}table{border-collapse:collapse;width:100%;background:#fff;font-size:.95rem}
th,td{border:1px solid var(--line);padding:.6rem .7rem;text-align:left;vertical-align:top}thead th{background:var(--tint)}
.source{font-size:.85rem;color:var(--muted)}
.faq details{background:#fff;border:1px solid var(--line);border-radius:10px;margin:.5rem 0;padding:.2rem 1rem}
.faq summary{cursor:pointer;font-weight:700;padding:.6rem 0;color:var(--primary)}
.faq details div{padding-bottom:.6rem}
.callout{background:var(--tint);border-left:5px solid var(--accent);border-radius:0 12px 12px 0;padding:1.1rem 1.2rem}
.callout.warn{background:#fff8e1;border-left-color:#b88a00}
.callout h2{font-size:1.2rem}
.toc ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.toc a{display:inline-block;padding:.4rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;font-weight:600;color:var(--primary)}
.reg-line{font-weight:600}
.related ul{list-style:none;padding:0;display:grid;gap:.6rem}
.related a{display:flex;gap:.6rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;text-decoration:none;font-weight:700;color:var(--primary)}
.related .ico{color:var(--accent)}
/* estimate form */
.estimate{background:var(--primary);color:#fff;padding:2.4rem 0;margin-top:2rem}
.estimate h2{color:#fff}.estimate a{color:#fff}
.est-call{display:flex;gap:.5rem;align-items:center}
.lead-form{background:#fff;color:var(--ink);border-radius:16px;padding:1.2rem;display:grid;gap:.8rem}
.lead-form label{display:grid;gap:.25rem;font-weight:600;font-size:.92rem}
.lead-form input,.lead-form select,.lead-form textarea{font:inherit;padding:.65rem .7rem;border:1px solid #9aa5a0;border-radius:8px;width:100%;background:#fff}
.row2{display:grid;gap:.8rem}
.hp{position:absolute;left:-9999px}
.fine{font-size:.8rem;color:var(--muted);margin:0}
/* links inside white form cards must not inherit the dark section's white link color */
.lead-form a,.estimate .lead-form a,.ctaband .lead-form a,.hero-img .lead-form a:not(.btn),.lead-form .fine a{color:var(--link);text-decoration:underline;text-underline-offset:2px}.lead-form a:hover{color:var(--primary)}
.form-notice{background:var(--tint);border:1px solid var(--line);border-radius:8px;padding:.7rem;font-weight:600;color:var(--ink)}
/* footer */
.site-footer{background:#14211b;color:#d9e2dd;padding:2.4rem 0 1rem;font-size:.93rem}
.site-footer a{color:#fff}.site-footer h2{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.08em}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.3rem 0}
.site-footer .wordmark text{fill:#fff}.site-footer .wordmark path{stroke:var(--accent-light)}
.ft-grid{display:grid;gap:1.6rem}
.ft-legal{border-top:1px solid #33443b;margin-top:1.6rem;padding-top:1rem}
.ft-legal .reg-line{color:#fff}
.sticky-cta{position:fixed;inset:auto 0 0 0;display:grid;grid-template-columns:1fr 1.4fr;z-index:30;box-shadow:0 -4px 14px rgba(0,0,0,.15)}
.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.95rem;font-weight:800;text-decoration:none;background:#fff;color:var(--primary)}
.sticky-cta.sticky-solo{grid-template-columns:1fr}.est-hours{font-weight:600}
.sticky-cta .go{background:var(--accent);color:#fff}.sticky-cta .ico{width:18px;height:18px}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}.row2{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(4,1fr)}.related ul{grid-template-columns:1fr 1fr}}
@media(min-width:960px){
 .cards{grid-template-columns:repeat(3,1fr)}
 .est-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2.4rem;align-items:start}
 .ft-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}
 .related ul{grid-template-columns:repeat(3,1fr)}
 .hero-home{padding:3.6rem 0}
}
@media(min-width:1100px){
 body{padding-bottom:0}.sticky-cta{display:none}
 .hdr{flex-wrap:nowrap}.wordmark{width:180px}
 .nav-toggle{display:none}.nav{display:block;flex-basis:auto}
 .nav ul{display:flex;gap:.95rem;padding:0}.nav a{border:0;padding:.3rem 0;font-size:.9rem;white-space:nowrap}
 .hdr-call{display:flex;gap:.35rem;align-items:center;font-weight:700;color:#fff;background:var(--accent);text-decoration:none;font-size:.88rem;padding:.5rem .9rem;border-radius:999px;white-space:nowrap}
 .hdr-call:hover{background:var(--accent-dark)}.hdr-call .ico{width:18px;height:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.sources{border-top:1px solid var(--line);padding-top:1rem}
.sources h2{font-size:1.15rem}
.src-list{padding-left:1.2rem;font-size:.92rem}
.src-list li{margin:.35rem 0;overflow-wrap:anywhere}
.src-note{color:var(--muted)}
.rules-change{background:#fff8e1;border-left:4px solid #b88a00;padding:.6rem .8rem;border-radius:0 8px 8px 0;font-size:.95rem}
.photo-figure{margin-inline:0;max-width:800px}.photo-figure img{border-radius:14px;width:100%;height:auto;background:#e8ece9}
.price-note,.tbl+.source{font-size:.9rem;color:var(--muted);border-left:3px solid var(--accent-light,#c9a227);padding-left:.7rem}
/* ---- visuals: photo heroes (overlay keeps white text at WCAG AA over any photo) ---- */
.hero-img{position:relative;isolation:isolate;overflow:hidden;background:#14211b;color:#fff;padding:2.6rem 0 2.4rem}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,24,19,.64) 0%,rgba(14,24,19,.78) 100%)}
.hero-img h1,.hero-img .lead{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.hero-img .eyebrow{color:#fff;display:flex;align-items:center;gap:.6rem}
.hero-img .eyebrow::before{content:"";width:28px;height:3px;border-radius:2px;background:var(--accent-light);flex:none}
.hero-img .btn-ghost{background:transparent;border-color:#fff;color:#fff}.hero-img .btn-ghost:hover{background:rgba(255,255,255,.12)}
.hero-img .chips li{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4);color:#fff}
.hero-img .chips .ico{color:var(--accent-light)}
.hero-img a:not(.btn){color:#fff}
.hero-img.hero-subtle{background:var(--tint);color:var(--ink);padding:1.8rem 0}
.hero-img.hero-subtle::before{background:linear-gradient(90deg,rgba(247,248,246,.95) 0%,rgba(247,248,246,.9) 100%)}
.hero-img.hero-subtle h1{color:var(--primary);text-shadow:none}.hero-img.hero-subtle .lead{color:var(--ink);text-shadow:none}
.hero-img.hero-subtle .eyebrow{color:var(--primary)}
.hero-img.hero-subtle .btn-ghost{background:#fff;border-color:var(--primary);color:var(--primary)}
.hero-img.hero-subtle a:not(.btn){color:var(--link)}
/* alternating image/text sections */
.split{display:grid;gap:1.2rem;align-items:center}
.split-txt{max-width:none}
.split-fig{margin:0}.split-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:14px;background:#e8ece9;box-shadow:0 8px 24px rgba(20,33,27,.12)}
/* image cards */
.imgcard{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s}
.imgcard:hover{box-shadow:0 10px 26px rgba(20,33,27,.14)}
.card-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#e8ece9}
.imgcard>:not(.card-img){margin-left:1.2rem;margin-right:1.2rem}
.imgcard .ico{position:relative;margin-top:-1.4rem;width:46px;height:46px;padding:9px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.imgcard>:last-child{margin-bottom:1.2rem}
/* trust row */
.trust{margin-top:1.6rem}
.trust-row{list-style:none;padding:0;margin:0;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.trust-row li{display:flex;gap:.7rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}
.trust-ico{width:38px;height:38px;padding:8px;border-radius:10px;background:var(--tint);color:var(--primary)}
.trust-row strong{display:block;color:var(--primary);line-height:1.3}
.trust-row span{display:block;font-size:.86rem;color:var(--muted);line-height:1.45;margin-top:.15rem}
/* process strip */
.process{list-style:none;padding:0;margin:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));counter-reset:p}
.process li{counter-increment:p;background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:12px;padding:1rem}
.proc-ico{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--primary);color:#fff;margin-bottom:.6rem}
.proc-ico .ico{width:24px;height:24px}
.process strong{display:block;color:var(--primary)}
.process strong::before{content:counter(p) ". ";color:var(--accent)}
.process span:not(.proc-ico){display:block;font-size:.9rem;margin-top:.2rem}
/* CTA band with photo background */
.ctaband{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;background:#14211b;color:#fff;padding:2.4rem 1.4rem;text-align:center}
.ctaband-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.ctaband::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(20,33,27,.8)}
.ctaband h2{color:#fff}.ctaband p{max-width:56ch;margin:0 auto 1.2rem;color:#fff}
.photo-figure img.photo{display:block}
@media(min-width:860px){
 .split{grid-template-columns:1.1fr .9fr;gap:2.2rem;align-items:start}
 .split-fig{position:sticky;top:6rem}
 .split.flip .split-fig{order:-1}
 .hero-img{padding:4rem 0 3.6rem}
 .hero-img::before{background:linear-gradient(90deg,rgba(14,24,19,.88) 0%,rgba(14,24,19,.74) max(50% + 200px,760px),rgba(14,24,19,.18) 100%)}
 /* text column ends at about 50% + 180px (wrap 1080px, text 720px); the photo opens up only to the right of it */
 .hero-img.hero-subtle{padding:2.4rem 0}
 .hero-img.hero-home{padding:5.6rem 0 5rem}
 .hero-in>*{max-width:720px}
 .ctaband{padding:3.6rem 2rem}
 .trust-row li{flex-direction:column;gap:.5rem}
}
.form-notice.ok{background:#e8f5e9;border:2px solid #2e7d32;color:#1b4d1f}
.form-notice.err{background:#fdecea;border:2px solid #b3261e;color:#5c1410}
