:root{
  --bg:#f7f5ef;
  --ink:#18201f;
  --muted:#61706b;
  --brand:#0f6b5f;
  --brand-dark:#084a42;
  --accent:#f0b642;
  --card:#ffffff;
  --line:#dde4df;
  --shadow:0 20px 50px rgba(17,33,29,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{width:min(1120px,92vw);margin-inline:auto}
.site-header{position:sticky;top:0;background:rgba(247,245,239,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:10}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{font-weight:900;font-size:1.15rem;letter-spacing:-.03em}.logo span{color:var(--brand)}
.nav-links{display:flex;align-items:center;gap:22px;color:var(--muted);font-weight:700}.nav-links a:hover{color:var(--brand)}
.nav-toggle{display:none;border:0;background:transparent;font-size:1.6rem}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--brand);color:white;font-weight:900;padding:13px 22px;box-shadow:0 10px 22px rgba(15,107,95,.22);cursor:pointer}.btn:hover{background:var(--brand-dark);transform:translateY(-1px)}
.btn-small{padding:9px 15px;font-size:.9rem}.btn-ghost{background:#fff;color:var(--brand);box-shadow:none;border:1px solid var(--line)}.btn.full{width:100%}
.hero{padding:72px 0 56px;background:radial-gradient(circle at 80% 20%,rgba(240,182,66,.24),transparent 36%),linear-gradient(135deg,#fbfaf5,#edf6f2)}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:44px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--brand);font-weight:900;font-size:.78rem;margin:0 0 10px}
h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.96;letter-spacing:-.07em;margin:0 0 20px;max-width:860px}
h2{font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.05;letter-spacing:-.05em;margin:0 0 14px}h3{font-size:1.25rem;margin:0 0 8px}.hero-copy{font-size:1.2rem;color:var(--muted);max-width:650px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0 12px}.fineprint{color:var(--muted);font-size:.88rem}
.lead-card,.calculator-panel,.contractor-card,.monetize-card,.quote-box{background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.lead-card{padding:26px}.lead-card label,.quote-form input,.quote-form select,.quote-form textarea,label{display:block;color:var(--muted);font-weight:800;font-size:.9rem;margin:14px 0}.lead-card input,.lead-card select,.quote-form input,.quote-form select,.quote-form textarea,.calc-body input,.calc-body select{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 14px;font:inherit;background:#fbfcfa;color:var(--ink);margin-top:6px}.estimate-result{margin-top:16px;padding:16px;border-radius:18px;background:#f3f8f6;color:var(--brand-dark);font-weight:900}
.trust-bar{background:var(--ink);color:white}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px}.trust-grid div{padding:22px 18px}.trust-grid strong{display:block;font-size:1.35rem}.trust-grid span{color:#c4d0cc;font-size:.92rem}
.section{padding:76px 0}.section-head{max-width:760px;margin-bottom:28px}.section-head p:not(.eyebrow){color:var(--muted);font-size:1.05rem}.section-head.light{color:white}.section-head.light .eyebrow{color:var(--accent)}.section-head.light p:not(.eyebrow){color:#d5e2de}
.category-grid,.town-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.category-grid article,.town-grid article{background:white;border:1px solid var(--line);border-radius:22px;padding:24px}.category-grid p,.town-grid p,.contractor-card p,.contractor-card li{color:var(--muted)}
.calc-section{background:linear-gradient(135deg,var(--brand-dark),#102a28)}.calculator-panel{padding:10px}.tabs{display:flex;gap:8px;flex-wrap:wrap;padding:10px}.tab{border:1px solid var(--line);background:#f8faf8;color:var(--muted);border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}.tab.active{background:var(--accent);color:#291d00;border-color:var(--accent)}.calc-body{display:grid;grid-template-columns:1fr .8fr;gap:24px;padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.result-card{background:#f4f8f6;border-radius:22px;padding:24px}.big-result{font-size:clamp(2rem,4vw,3.5rem);font-weight:950;letter-spacing:-.06em;color:var(--brand-dark);margin:6px 0}.result-card p{color:var(--muted)}
.contractor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.contractor-card{position:relative;padding:24px}.contractor-card a{color:var(--brand);font-weight:900}.badge{position:absolute;right:18px;top:18px;background:var(--accent);border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:900}.featured{border-color:rgba(240,182,66,.8)}
.seo-wrap{background:#fff}.seo-grid{display:grid;grid-template-columns:1fr .75fr;gap:32px;align-items:start}.check-list{list-style:none;padding:0;margin:20px 0}.check-list li{padding:10px 0;border-bottom:1px solid var(--line);font-weight:800}.check-list li:before{content:'✓';color:var(--brand);margin-right:10px}.monetize-card{padding:26px}.monetize-card p{border-bottom:1px solid var(--line);padding-bottom:10px;color:var(--muted)}
.quote-box{display:grid;grid-template-columns:.85fr 1fr;gap:30px;padding:32px}.quote-form textarea{min-height:110px;resize:vertical}
.footer{background:var(--ink);color:white;padding:34px 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.footer p{color:#c4d0cc;margin:.35rem 0 0}

.service-grid article a{display:inline-block;margin:10px 0 8px;color:var(--brand);font-weight:900}.service-grid small{display:block;color:var(--muted);font-weight:800;font-size:.78rem;line-height:1.35}.area-wrap{background:#eef6f2}.area-table{background:white;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.area-row{display:grid;grid-template-columns:.75fr 1.3fr 1fr;border-bottom:1px solid var(--line)}.area-row:last-child{border-bottom:0}.area-row span{padding:16px 18px;color:var(--muted)}.area-row span:first-child{color:var(--ink);font-weight:950}.area-row.head{background:var(--ink)}.area-row.head span{color:white;font-weight:950}.directory-grid{grid-template-columns:repeat(3,1fr)}.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.link-row a{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#f8faf8;color:var(--brand)!important;font-size:.86rem}.directory-note{margin-top:18px}.contractor-card ul{padding-left:18px}.contractor-card li a{text-decoration:underline;text-underline-offset:2px}


.compact-section{padding-top:52px;padding-bottom:52px}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.method-grid article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.method-grid strong{display:block;font-weight:950;color:var(--ink);line-height:1.15}.method-grid span{display:block;color:var(--muted);font-weight:750;margin-top:8px;font-size:.9rem}code{background:#edf6f2;border:1px solid var(--line);border-radius:8px;padding:2px 6px;color:var(--brand-dark);font-weight:800}


.contractor-filters{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 10px}.filter-btn{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:9px 13px;font-weight:900;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.contractor-card.is-hidden{display:none}.service-grid article a + a{margin-left:0;margin-right:8px}


.small-hero{padding:72px 0 48px}.guide-grid a{color:inherit;text-decoration:none}.guide-grid a:hover{text-decoration:underline}.directory-note a{font-weight:800}

@media(max-width:800px){.method-grid{grid-template-columns:1fr}.nav-links{display:none}.nav-toggle{display:block}.hero-grid,.calc-body,.contractor-grid,.category-grid,.town-grid,.seo-grid,.quote-box,.footer-grid,.area-row{grid-template-columns:1fr}.trust-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}h1{font-size:3rem}.section{padding:54px 0}}

.hidden-field{display:none!important}

