*,*::before,*::after{box-sizing:border-box}
:root{
  --ink:#12181f; --muted:#5b6672; --line:#e3e8ee; --bg:#fff; --soft:#f6f8fa;
  --brand:#0b5c3f; --brand-ink:#fff; --accent:#c2410c;
  --max:1060px;
}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:400 17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
img{max-width:100%;height:auto}
a{color:var(--brand)}
h1,h2,h3{line-height:1.2;letter-spacing:-.015em;margin:0 0 .5em}
h1{font-size:clamp(1.9rem,4.2vw,2.9rem)}
h2{font-size:clamp(1.35rem,2.6vw,1.8rem);margin-top:0}
h3{font-size:1.1rem}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:10px;z-index:10}

/* header / footer */
header.site{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);z-index:5}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:1.05rem;letter-spacing:-.02em}
.brand span{color:var(--brand)}
header nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
header nav a{color:var(--muted);text-decoration:none;font-size:.94rem}
header nav a:hover{color:var(--ink)}
footer.site{border-top:1px solid var(--line);background:var(--soft);margin-top:56px;padding:36px 0 28px}
footer h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
footer ul{list-style:none;padding:0;margin:0 0 12px}
footer li{margin:.3em 0}
footer a{color:var(--ink);text-decoration:none;font-size:.94rem}
footer a:hover{text-decoration:underline}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin-bottom:24px}
.fine{font-size:.83rem;color:var(--muted);line-height:1.55}

/* blocks */
.hero{background:linear-gradient(180deg,#f2f7f4,#fff);border-bottom:1px solid var(--line);padding:56px 0 44px}
.hero.sm{padding:40px 0 32px}
.lede{font-size:1.13rem;color:var(--muted);max-width:62ch}
.band{padding:34px 0;border-bottom:1px solid var(--line)}
.band:last-of-type{border-bottom:0}
.prose{max-width:70ch}
.callout{background:var(--soft);border-left:3px solid var(--brand);padding:14px 16px;border-radius:0 6px 6px 0}

/* buttons */
.btn{display:inline-block;background:var(--brand);color:var(--brand-ink);text-decoration:none;
  padding:11px 20px;border-radius:7px;font-weight:600;font-size:.97rem;border:0;cursor:pointer}
.btn:hover{background:#0a4c34}
.btn.lg{padding:14px 26px;font-size:1.05rem;margin:6px 0}
.btn.sm{padding:8px 15px;font-size:.9rem}

/* cards, lists */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.card{display:block;border:1px solid var(--line);border-radius:10px;padding:18px;text-decoration:none;color:inherit;background:#fff}
.card:hover{border-color:var(--brand);box-shadow:0 2px 14px rgba(11,92,63,.08)}
.card h2,.card h3{margin-bottom:.35em;color:var(--ink)}
.card p{color:var(--muted);font-size:.95rem;margin-bottom:.5em}
.cost{font-size:.83rem;color:var(--accent);font-weight:600}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.checks li{padding-left:28px;position:relative}
.checks li::before{content:"";position:absolute;left:6px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--brand)}
.pills{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.pills a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:6px 14px;
  text-decoration:none;color:var(--ink);font-size:.92rem;background:#fff}
.pills a:hover{border-color:var(--brand);color:var(--brand)}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:12px 0}
.faq summary{cursor:pointer;font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+ ";color:var(--brand);font-weight:700}
.faq details[open] summary::before{content:"– "}
.faq p{margin:.7em 0 0;color:var(--muted)}

/* cta band + form */
.cta-band{background:var(--soft);border:1px solid var(--line);border-radius:12px;
  padding:30px;margin:34px auto;max-width:calc(var(--max) - 40px)}
.cta-band h2{margin-bottom:.3em}
.cta-band p{color:var(--muted);max-width:60ch}
.quote{display:grid;gap:14px;max-width:520px}
.quote label{display:grid;gap:5px;font-size:.92rem;font-weight:600}
.quote input,.quote select,.quote textarea{
  font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;width:100%}
.quote input:focus,.quote select:focus,.quote textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.quote .fine{font-weight:400}

@media (max-width:640px){
  .bar{min-height:auto;padding-top:10px;padding-bottom:10px}
  header nav{gap:12px;width:100%;justify-content:space-between}
  .hero{padding:40px 0 32px}
  .cta-band{padding:22px;border-radius:0;margin-left:0;margin-right:0;max-width:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
