@font-face{font-family:"Bricolage Grotesque";src:url(fonts/BricolageGrotesque-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(fonts/AtkinsonHyperlegible-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(fonts/AtkinsonHyperlegible-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--disp:"Bricolage Grotesque";--text:"Atkinson Hyperlegible";--bg:#FBFAF4;--ink:#1B1F17;--mute:#4B5245;--dark:#1B1F17;--acc:#B84300;--onacc:#fff;--link:#A33A00;--focus:#2F6B1E;--warn:#9A3600;--card:#EEF2E1;--hover:#DDE8C4;--line:#D6DACB;--r:18px;--gap:14px;--topline:1px solid #D6DACB;--secline:1px solid #D6DACB;--cardline:0;--shadow:0 10px 0 #9A3600;--imgshadow:none}
h1{letter-spacing:-.03em}h2{letter-spacing:-.02em}h1 span{color:var(--link);display:inline-block}.brand b{color:var(--link);margin-left:.25em}
.bigphone{background:var(--acc);color:#fff}.callbar a{color:#FF9A5C}.hero{background:radial-gradient(circle at 85% 30%,#DDE8C4 0,transparent 55%)}
.hero-img img{border-radius:200px 18px 18px 18px}.steps li::before{border-radius:50%;color:#fff;background:var(--acc)}
.map .land{fill:#DDE8C4}.map .ridge{fill:#9DB27A}.map .ridgeline{fill:none;stroke:#9DB27A;stroke-width:14;stroke-linecap:round}.map .lbl.light{fill:#1B1F17}
.map .zone{fill:#F25C05}
body .callbar a,body .quote a{color:#FF9A5C}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--text),system-ui,sans-serif}
img{max-width:100%;height:auto;display:block}a{color:var(--link)}
h1,h2{font-family:var(--disp),Impact,sans-serif;font-weight:800;line-height:.98;margin:0 0 .45em}
h2{font-size:clamp(2rem,4vw,3.2rem)}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:20}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.callbar{background:var(--dark);color:#fff;font-size:.9rem;display:flex;justify-content:center;gap:16px;padding:8px 16px;flex-wrap:wrap;text-align:center}.callbar a{color:var(--acc);font-weight:700}
.top{background:var(--bg);border-bottom:var(--topline);position:sticky;top:0;z-index:10}
.bar{display:flex;justify-content:space-between;align-items:center;min-height:70px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--disp);font-size:1.45rem;font-weight:800;letter-spacing:.01em}
nav{display:flex;gap:22px;align-items:center}nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.95rem}nav a:hover{color:var(--link);text-decoration:underline}
.navphone{background:var(--acc);color:var(--onacc)!important;padding:10px 16px;border-radius:var(--r)}
.hero-in{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;padding-top:56px;padding-bottom:64px}
.kicker{font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin:0 0 14px}
h1{font-size:clamp(3rem,7vw,5.6rem)}.lede{font-size:1.2rem;max-width:52ch;color:var(--mute)}
.bigphone{display:inline-block;margin:22px 0 8px;background:var(--acc);color:var(--onacc);text-decoration:none;font-family:var(--disp);font-weight:800;font-size:clamp(2.5rem,6vw,4.4rem);line-height:1;padding:18px 28px 20px;border-radius:var(--r);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.bigphone small{display:block;font-family:var(--text);font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.bigphone:hover{transform:translateY(-3px)}
.sub a{font-weight:700}.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}.chips li{border:2px solid var(--ink);padding:4px 12px;font-weight:700;font-size:.88rem;border-radius:var(--r)}
.hero-img{margin:0}.hero-img img{border-radius:var(--r);box-shadow:var(--imgshadow)}
.sec{padding:80px 0;border-top:var(--secline)}
.svc{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.svc a{display:grid;height:100%;padding:24px;background:var(--card);color:var(--ink);text-decoration:none;border:var(--cardline);border-radius:var(--r);transition:background .15s,transform .15s;position:relative}
.svc b{font-size:1.2rem}.svc span{color:var(--mute);margin-top:6px}.svc i{position:absolute;right:20px;top:20px;font-style:normal;font-weight:700;color:var(--link);transition:transform .15s}
.svc a:hover{background:var(--hover);transform:translateY(-2px)}.svc a:hover i{transform:translateX(4px)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.steps{list-style:none;counter-reset:s;padding:0;margin:0}.steps li{counter-increment:s;padding:0 0 26px 64px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:44px;height:44px;display:grid;place-content:center;background:var(--dark);color:var(--acc);font-family:var(--disp);font-size:1.5rem;font-weight:800;border-radius:var(--r)}
.steps b{display:block;font-size:1.15rem}.steps span{color:var(--mute)}
.side-img{margin:0}.side-img img{border-radius:var(--r)}
.map{width:100%;height:auto;border-radius:var(--r);border:var(--cardline)}
.map .town circle{fill:var(--dark);stroke:#fff;stroke-width:2}.map .town text{font:700 15px var(--text);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:4px}
.map .zone{fill:var(--acc);opacity:.22;stroke:var(--acc);stroke-width:2;stroke-dasharray:6 5}
.map .road{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;opacity:.9}.map .lbl{font:700 12px var(--text);fill:var(--mute);letter-spacing:.1em;text-transform:uppercase}
.arealinks a{font-weight:700;white-space:nowrap}.fine{font-size:.85rem;color:var(--mute)}.warn{color:var(--warn);font-weight:700}
.bas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}.ba{margin:0}.ba>div{display:grid}
.slot{aspect-ratio:4/3;display:grid;place-content:center;text-align:center;background:repeating-linear-gradient(45deg,var(--card) 0 10px,var(--hover) 10px 20px);border:2px dashed var(--mute);color:var(--ink);border-radius:var(--r);margin-bottom:6px}
.slot span{font-family:var(--disp);font-size:1.6rem;font-weight:800}.slot small{font-size:.8rem;color:var(--mute)}.ba figcaption{font-weight:700}
.faq details{border-bottom:2px solid var(--line);padding:16px 0}.faq summary{cursor:pointer;font-weight:700;font-size:1.15rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";font-family:var(--disp);font-size:1.6rem;line-height:1;color:var(--link)}.faq details[open] summary::after{content:"−"}.faq summary:hover{color:var(--link)}.faq p{color:var(--mute);margin:10px 0 0}
.quote{background:var(--dark);color:#fff}.quote a{color:var(--acc)}.quote .fine{color:#cfd3d6}
.form{display:grid;gap:14px;background:var(--bg);color:var(--ink);padding:28px;border-radius:var(--r)}
.form label{display:grid;gap:5px;font-weight:700}.form input,.form textarea{font:inherit;padding:12px;border:2px solid var(--mute);border-radius:var(--r);background:#fff}
.form button{font:inherit;font-weight:700;font-size:1.1rem;background:var(--acc);color:var(--onacc);border:0;padding:16px;border-radius:var(--r);cursor:pointer}.form button:hover{filter:brightness(.92)}
.hp{position:absolute;left:-9999px}
.foot{padding:40px 0 100px;background:var(--bg)}.foot p{margin:6px 0}.fbrand{font-family:var(--disp);font-size:1.5rem;font-weight:800}
.fab{display:none}
@media (max-width:860px){
nav{display:none}.brand{font-size:1.25rem;white-space:nowrap}.hero-in,.split{grid-template-columns:1fr;gap:28px}.hero-in{padding-top:28px}
.svc,.bas{grid-template-columns:1fr}.sec{padding:56px 0}.callbar span{display:none}
.bigphone{display:block;text-align:center}
.fab{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--acc);color:var(--onacc);text-align:center;font-weight:800;font-size:1.15rem;padding:15px;border-radius:var(--r);text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.3)}
}
