/* =====================================================================
   Velocious Water Restoration - Marietta, GA
   Design system: "MARIETTA CIVIC" - crisp white + deep spruce green +
   Georgia clay, Space Grotesk (geometric) headers + Source Sans 3 body,
   full-bleed CENTERED color bands, pill buttons, soft shadows.
   Single committed light theme. Distinct from Peoria + every sibling.
   ===================================================================== */

/* ---------- self-hosted fonts (was Google Fonts; latin) ---------- */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/spacegrotesk.woff2?v=87c506d8) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/sourcesans.woff2?v=30164609) format("woff2")}

:root{
  /* grounds */
  --white:#FFFFFF; --mist:#EEF4F1; --mist-2:#E3ECE7;
  /* spruce (lead) */
  --spruce:#1C4B3C; --spruce-deep:#12352A; --spruce-soft:#2E6B54; --spruce-line:#33795F;
  /* clay (action accent) */
  --clay:#B4441F; --clay-deep:#8F3617; --clay-bright:#F2C9AE; --clay-tint:#F7E9E1;
  /* ink + lines */
  --ink:#15221C; --ink-2:#41504A; --line:#DBE5DF; --gold:#D99A00; --gold-lite:#F5C24B;
  /* shape + shadow */
  --r:16px; --r-sm:10px; --r-pill:999px;
  --shadow:0 2px 10px rgba(18,53,42,.06);
  --shadow-lg:0 20px 44px -18px rgba(18,53,42,.22);
  --wrap:1080px; --gutter:22px;
  --f-head:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--f-body); font-size:1.05rem; line-height:1.65; font-weight:420;
  overflow-x:hidden;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--clay-deep)}
h1,h2,h3,h4{font-family:var(--f-head); color:var(--ink); margin:0 0 .5em; line-height:1.1; font-weight:700; letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5vw,3.2rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
h3{font-size:1.2rem}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem; padding-left:1.2rem}
li{margin:.3rem 0}
.wrap{width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter)}
.skip-link{position:absolute; left:-999px; top:0; background:var(--clay); color:#fff; padding:10px 16px; z-index:300; border-radius:0 0 var(--r-sm) 0}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--clay); outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* icon sizing guard (prevents ballooned inline svgs everywhere) */
.btn svg,.faq svg,.faq__card svg,a[href^="tel:"] svg,.chip svg,.nap__row svg,.cov__pin svg,.gbp svg,.stars svg,.bc svg,.rel-row__go svg,.cov__all svg,.svc-card__go svg,.callstrip svg,.arw{width:1.05em;height:1.05em;flex:0 0 auto}
.stars{display:inline-flex;align-items:center;gap:1px;color:var(--gold);vertical-align:middle}
.stars svg{fill:currentColor}

/* ---------- bands ---------- */
.band{padding:64px 0; position:relative}
.band--white{background:var(--white); color:var(--ink)}
.band--mist{background:var(--mist); color:var(--ink)}
.band--clay{background:var(--clay-tint); color:var(--ink)}
.band--spruce{background:var(--spruce); color:#EAF2EE}
.band--spruce-deep{background:var(--spruce-deep); color:#EAF2EE}
.band--spruce h1,.band--spruce h2,.band--spruce h3,.band--spruce-deep h1,.band--spruce-deep h2,.band--spruce-deep h3{color:#fff}
.band--spruce p,.band--spruce-deep p,.band--spruce li,.band--spruce-deep li{color:#E4EEE9}

/* section head + eyebrow + rule */
.sec-head{margin-bottom:2rem; max-width:760px}
.sec-head--center{margin-inline:auto; text-align:center}
.sec-head p{color:var(--ink-2); font-size:1.08rem; margin:.4rem 0 0}
.band--spruce .sec-head p,.band--spruce-deep .sec-head p{color:#CFE0D8}
.eyebrow{display:inline-block; font-family:var(--f-head); font-weight:700; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay-deep)}
.band--spruce .eyebrow,.band--spruce-deep .eyebrow,.eyebrow--light{color:var(--clay-bright)}
.rule{display:block; width:44px; height:4px; border-radius:2px; background:var(--clay); margin:.6rem 0 1rem}
.sec-head--center .rule{margin-inline:auto}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--f-head); font-weight:700; text-decoration:none; border-radius:var(--r-pill); padding:.85rem 1.5rem; border:2px solid transparent; cursor:pointer; line-height:1.15; transition:transform .12s ease, box-shadow .12s ease}
.btn:hover{transform:translateY(-1px)}
.btn--call{background:var(--clay); color:#fff; box-shadow:var(--shadow-lg); flex-direction:column; gap:.05rem; text-align:center}
.btn--call:hover{background:var(--clay-deep)}
.btn--lg{padding:1rem 2rem}
.btn__num{font-size:1.3rem; letter-spacing:.01em}
.btn--lg .btn__num{font-size:1.55rem}
.btn__sub{font-size:.78rem; font-weight:600; opacity:.95; letter-spacing:.02em; font-family:var(--f-body)}
.btn--block{display:flex; width:100%}
.btn--ghost{background:transparent; border-color:currentColor; color:inherit}

/* chips */
.chips{display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.1rem}
.chip{display:inline-flex; align-items:center; gap:.4rem; font-size:.9rem; font-weight:600; padding:.45rem .8rem; border-radius:var(--r-pill); background:var(--mist); color:var(--ink); border:1px solid var(--line)}
.chip svg{fill:var(--spruce-soft)}
.chip--trust{background:#EAF3EE; border-color:#CFE3D8}
.chip--rate{background:var(--white); border-color:var(--line)}
.chip--rate .stars{color:var(--gold)}
.chip--rate b{color:var(--ink)}
.band--spruce .chip,.band--spruce-deep .chip{background:rgba(255,255,255,.1); color:#EAF2EE; border-color:rgba(255,255,255,.25)}
.band--spruce .chip svg,.band--spruce-deep .chip svg{fill:var(--clay-bright)}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:120; background:var(--white); border-bottom:1px solid var(--line)}
.site-header.is-solid{box-shadow:0 4px 18px rgba(18,53,42,.09)}
.masthead{display:flex; align-items:center; gap:1.2rem; padding-block:.7rem}
.brand{display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; flex:0 0 auto}
.brand__mark{flex:0 0 auto}
.brand__text{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-family:var(--f-head); font-weight:700; font-size:1.12rem; color:var(--spruce)}
.brand__name b{color:var(--clay-deep); font-weight:700}
.brand__tag{font-size:.72rem; color:var(--ink-2); letter-spacing:.06em; text-transform:uppercase}
.nav{display:flex; align-items:center; gap:1.4rem; margin-left:auto}
.nav>a,.drop>a{font-family:var(--f-head); font-weight:600; font-size:.96rem; color:var(--ink); text-decoration:none; white-space:nowrap; padding:.4rem 0; position:relative; cursor:pointer}
.nav>a:hover,.drop>a:hover{color:var(--clay-deep)}
.drop{position:relative}
.drop>a[aria-haspopup]::after{content:"";display:inline-block;width:.5em;height:.5em;margin-left:.4em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.drop__menu{position:absolute; top:100%; left:0; min-width:280px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow-lg); padding:.5rem; display:none; flex-direction:column; max-height:min(72vh,560px); overflow-y:auto; overscroll-behavior:contain; z-index:130}
.drop.is-open .drop__menu{display:flex}
.drop__menu a{font-family:var(--f-body); font-weight:600; font-size:.92rem; color:var(--ink); text-decoration:none; padding:.55rem .7rem; border-radius:8px; white-space:normal}
.drop__menu a:hover{background:var(--mist); color:var(--clay-deep)}
.mast-cta{display:flex; align-items:center; gap:.8rem; flex:0 0 auto; margin-left:1rem}
.mast-phone{display:flex; flex-direction:column; align-items:flex-end; text-decoration:none; line-height:1.05}
.mast-phone span{font-family:var(--f-head); font-weight:700; font-size:1.2rem; color:var(--clay-deep)}
.mast-phone small{font-size:.7rem; color:var(--ink-2); text-transform:uppercase; letter-spacing:.06em}
.nav-toggle{display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--white); cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--spruce); border-radius:2px}

/* ---------- HERO ---------- */
.hero__wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:2.4rem; align-items:center}
.hero__promise{font-size:1.15rem; color:var(--ink-2); max-width:34ch; margin:.6rem 0 1rem}
.hero__rate{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-weight:600; margin-bottom:1.1rem; font-size:1rem}
.hero__rate .stars{color:var(--gold); font-size:1.15rem}
.hero__rate b{color:var(--ink)}
.hero__rate span{color:var(--ink-2)}
.hero__rate .hero__oc{color:var(--spruce-soft); font-weight:700}
.hero__cta{align-self:flex-start}
.hero__media img{width:100%; height:auto; aspect-ratio:14/11; object-fit:cover; border-radius:var(--r); box-shadow:var(--shadow-lg)}

/* ---------- statbar ---------- */
.statbar__wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1.5rem 2.6rem; text-align:center}
.stat{display:flex; flex-direction:column}
.stat__n{font-family:var(--f-head); font-weight:700; font-size:2rem; color:#fff; line-height:1}
.stat__l{font-size:.9rem; color:#CFE0D8; margin-top:.25rem; max-width:16ch}
.statbar__logos{display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; margin-left:1rem; padding-left:1.5rem; border-left:1px solid rgba(255,255,255,.2)}
.statbar__logos img{height:30px; width:auto; background:#fff; padding:5px 8px; border-radius:8px}

/* ---------- services grid ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem}
.svc-card{display:flex; flex-direction:column; text-decoration:none; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); transition:transform .14s ease, box-shadow .14s ease}
.svc-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.svc-card__media{display:block; overflow:hidden}
.svc-card__media img{width:100%; height:190px; object-fit:cover; transition:transform .3s ease}
.svc-card:hover .svc-card__media img{transform:scale(1.04)}
.svc-card__b{display:flex; flex-direction:column; gap:.4rem; padding:1.1rem 1.15rem 1.25rem; min-width:0}
.svc-card__t{font-family:var(--f-head); font-weight:700; font-size:1.08rem; color:var(--spruce)}
.svc-card__p{font-size:.96rem; color:var(--ink-2); line-height:1.55; flex:1}
.svc-card__go{display:inline-flex; align-items:center; gap:.35rem; font-family:var(--f-head); font-weight:700; font-size:.86rem; color:var(--clay-deep)}

/* ---------- why ---------- */
.why__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem}
.why__card{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem 1.3rem; box-shadow:var(--shadow); text-align:center}
.why__ic{display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:14px; background:#EAF3EE; margin-bottom:.7rem}
.why__ic svg{width:26px; height:26px; fill:var(--spruce-soft)}
.why__card h3{color:var(--spruce)}
.why__card p{color:var(--ink-2); font-size:.98rem; margin:0}

/* ---------- process ---------- */
.psteps{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem}
.pstep{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem 1.3rem; box-shadow:var(--shadow); text-align:center}
.pstep__n{display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:var(--r-pill); background:var(--spruce); color:#fff; font-family:var(--f-head); font-weight:700; font-size:1.25rem; margin-bottom:.7rem}
.pstep__b h3{color:var(--spruce)}
.pstep__b p{color:var(--ink-2); font-size:.98rem; margin:0}

/* ---------- reviews ---------- */
.reviews__grid{display:grid; grid-template-columns:.8fr 2fr; gap:1.6rem; align-items:start}
.agg{background:var(--spruce); color:#fff; border-radius:var(--r); padding:1.6rem; text-align:center; box-shadow:var(--shadow)}
.agg__score{font-family:var(--f-head); font-weight:700; font-size:3rem; line-height:1; color:#fff}
.agg__score span{font-size:1.2rem; color:#BcD6CB; color:#BDD6CB}
.agg__stars .stars{color:var(--gold-lite); font-size:1.3rem}
.agg__count{margin-top:.4rem; font-size:.95rem; color:#CFE0D8}
.agg__note{margin:.6rem 0 0; font-size:.95rem; color:#DCEAE3}
.reviews__cards,.reviews__rail{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem}
.review{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.25rem; box-shadow:var(--shadow); display:flex; flex-direction:column; min-width:0}
.review__stars .stars{color:var(--gold); font-size:1.05rem}
.review blockquote{margin:.6rem 0; font-size:.97rem; color:var(--ink); line-height:1.6}
.review__meta{display:flex; flex-wrap:wrap; gap:.2rem .6rem; margin-top:auto; font-size:.85rem; align-items:baseline}
.review__meta .who{font-family:var(--f-head); font-weight:700; color:var(--spruce)}
.review__meta .where{color:var(--ink-2)}
.review__meta .date{color:var(--ink-2); margin-left:auto}

/* ---------- recent work ---------- */
.cases{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem}
.case{background:var(--white); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); min-width:0}
.case img{width:100%; height:200px; object-fit:cover}
.case__b{padding:1.1rem 1.15rem 1.25rem}
.case__b h3{color:var(--spruce); font-size:1.05rem}
.case__meta{display:block; font-family:var(--f-head); font-weight:600; font-size:.82rem; color:var(--clay-deep); margin-bottom:.6rem}
.case__b p{font-size:.92rem; color:var(--ink); margin:.35rem 0; line-height:1.55}
.case__b b{color:var(--spruce)}
.filmstrip{display:grid; grid-template-columns:repeat(5,1fr); gap:.8rem; margin-top:1.3rem}
.film{margin:0; border-radius:var(--r-sm); overflow:hidden; box-shadow:var(--shadow)}
.film img{width:100%; height:150px; object-fit:cover}

/* ---------- cost ---------- */
.pricecards{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; align-items:stretch}
.pricecard{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem 1.3rem; box-shadow:var(--shadow); text-align:center; display:flex; flex-direction:column}
.pricecard--feat{border-color:var(--spruce); border-width:2px; box-shadow:var(--shadow-lg)}
.pricecard h3{color:var(--spruce)}
.pricecard__p{font-family:var(--f-head); font-weight:700; font-size:1.5rem; color:var(--clay-deep); margin:.3rem 0 .8rem}
.pricecard ul{list-style:none; padding:0; margin:0 0 1rem; text-align:left}
.pricecard li{font-size:.94rem; color:var(--ink-2); padding-left:1.3rem; position:relative}
.pricecard li::before{content:"";position:absolute;left:.1rem;top:.55em;width:.5rem;height:.5rem;border-radius:50%;background:var(--spruce-soft)}
.pricecard .cover{margin-top:auto; font-size:.85rem; font-weight:700; color:var(--spruce); background:#EAF3EE; padding:.4rem .7rem; border-radius:var(--r-pill)}
.cost__note{text-align:center; max-width:640px; margin:1.4rem auto 0; color:var(--ink-2)}
.insure{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.7rem; box-shadow:var(--shadow); margin-top:1.6rem}
.insure h3{color:var(--spruce)}
.insure p{color:var(--ink-2)}
.carriers{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1rem 1.6rem; margin-top:1.1rem}
.carrier img{height:24px; width:auto; opacity:.92}

/* ---------- coverage ---------- */
.cov__full{display:grid; grid-template-columns:1.3fr 1fr; gap:1.6rem; align-items:start}
.cov__compact{display:grid; grid-template-columns:1.2fr 1fr; gap:1.6rem; align-items:center}
.cov__map{margin:0; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-lg); background:#0f2b22}
.cov__map figcaption{padding:.7rem .9rem; background:var(--spruce-deep)}
.cov__pin{display:inline-flex; align-items:center; gap:.4rem; font-size:.88rem; color:#DCEAE3}
.cov__pin svg{fill:var(--clay-bright)}
.zips h3,.cov__note p{color:#EAF2EE}
.zipgrid{display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0 .8rem}
.zip{display:inline-flex; align-items:center; font-family:var(--f-head); font-weight:600; font-size:.9rem; padding:.35rem .7rem; border-radius:var(--r-pill); background:var(--mist); color:var(--ink); border:1px solid var(--line)}
.band--spruce .zip{background:rgba(255,255,255,.12); color:#EAF2EE; border-color:rgba(255,255,255,.22)}
.zips__note{font-size:.9rem; color:var(--ink-2)}
.band--spruce .zips__note{color:#CFE0D8}
.cov__note p{margin-bottom:.7rem}
.cov__all{display:inline-flex; align-items:center; gap:.35rem; font-family:var(--f-head); font-weight:700; color:var(--clay-bright); text-decoration:none}
.cov__all svg{fill:var(--clay-bright)}
.nbhds{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:1.8rem}
.nbhd h3{font-size:1rem; color:#fff; margin-bottom:.5rem}
.nbhd .chips{margin-top:0}
.nbhd .chip{background:rgba(255,255,255,.1); color:#E4EEE9; border-color:rgba(255,255,255,.2); font-weight:500; font-size:.82rem}

/* ---------- NAP band ---------- */
.napband__grid{display:grid; grid-template-columns:1fr 1.1fr; gap:1.6rem; align-items:center}
.nap{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem; box-shadow:var(--shadow)}
.nap__name{display:block; font-family:var(--f-head); font-weight:700; font-size:1.2rem; color:var(--spruce); margin-bottom:.7rem}
.nap__row{display:flex; align-items:center; gap:.5rem; margin:.45rem 0; color:var(--ink); font-size:1rem}
.nap__row svg{fill:var(--clay-deep)}
.nap__row a{color:var(--clay-deep); font-weight:700; text-decoration:none}
.napband__note p{font-size:1.08rem; color:var(--ink-2)}
.cta-band__nap .nap{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18)}
.cta-band__nap .nap__name{color:#fff}
.cta-band__nap .nap__row{color:#E4EEE9}
.cta-band__nap .nap__row svg{fill:var(--clay-bright)}
.cta-band__nap .nap__row a{color:#fff}

/* gbp link */
.gbp{display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; font-family:var(--f-head); font-weight:700; font-size:.92rem; color:var(--clay-deep); text-decoration:none}
.gbp svg{fill:var(--clay-deep)}
.gbp--light,.band--spruce .gbp,.band--spruce-deep .gbp,.site-footer .gbp{color:var(--clay-bright)}
.gbp--light svg,.band--spruce .gbp svg,.band--spruce-deep .gbp svg,.site-footer .gbp svg{fill:var(--clay-bright)}

/* ---------- conditions (local) ---------- */
.risk-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem}
.risk{background:var(--white); border:1px solid #ECD9CC; border-radius:var(--r); padding:1.3rem; box-shadow:var(--shadow)}
.risk h3{color:var(--clay-deep); font-size:1.05rem}
.risk p{color:var(--ink-2); font-size:.96rem; margin:0}
.authlinks{margin-top:1.6rem; text-align:center; font-size:.95rem; color:var(--ink-2)}
.authlinks span{display:block; margin-bottom:.5rem; font-weight:600}
.authlinks a{color:var(--clay-deep); text-decoration:underline; margin:0 .6rem; font-weight:600}

/* ---------- FAQ ---------- */
.faq__grid{display:grid; grid-template-columns:.85fr 1.6fr; gap:1.8rem; align-items:start}
.faq__head{max-width:none}
.faq__card{background:var(--spruce); color:#fff; border-radius:var(--r); padding:1.5rem; margin-top:1.2rem; box-shadow:var(--shadow-lg)}
.faq__card h3{color:#fff}
.faq__card p{color:#DCEAE3; font-size:.95rem}
.faq__num{display:block; font-family:var(--f-head); font-weight:700; font-size:1.5rem; color:var(--clay-bright); margin:.4rem 0 .9rem}
.faq__list{display:flex; flex-direction:column; gap:.7rem}
.faq-item{background:var(--white); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow); overflow:hidden}
.faq-item summary{list-style:none; cursor:pointer; padding:1.05rem 1.2rem; font-family:var(--f-head); font-weight:600; font-size:1.03rem; color:var(--spruce); display:flex; justify-content:space-between; gap:1rem; align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--clay-deep); font-weight:400; line-height:1}
.faq-item[open] summary::after{content:"\2212"}
.faq-item>div{padding:0 1.2rem 1.1rem}
.faq-item p{margin:0; color:var(--ink); font-size:1rem}

/* ---------- CTA band ---------- */
.cta-band__grid{display:grid; grid-template-columns:1.3fr 1fr; gap:1.8rem; align-items:center}
.cta-band__copy h2{color:#fff}
.cta-band__copy p{color:#DCEAE3; max-width:46ch}
.callstrip{background:var(--spruce); color:#fff; text-align:center; padding:1rem; border-radius:var(--r); display:flex; align-items:center; justify-content:center; gap:.6rem; flex-wrap:wrap; font-weight:600; margin-top:1.4rem}
.callstrip svg{fill:var(--clay-bright)}
.callstrip a{color:#fff; font-family:var(--f-head); font-weight:700; text-decoration:none; font-size:1.15rem}
.callstrip--inline{margin-top:1.6rem}

/* ---------- page hero (about/contact/service-area/legal/tools) ---------- */
.page-hero__wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:2.2rem; align-items:center}
.page-hero--solo .page-hero__wrap{grid-template-columns:1fr; max-width:820px}
.page-hero__lead{font-size:1.15rem; color:var(--ink-2); max-width:44ch; margin:.4rem 0 1.2rem}
.page-hero__media img{width:100%; aspect-ratio:14/11; object-fit:cover; border-radius:var(--r); box-shadow:var(--shadow-lg)}
.bc{display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; font-size:.85rem; color:var(--ink-2); margin-bottom:.8rem}
.bc a{color:var(--clay-deep); text-decoration:none}
.bc svg{fill:var(--ink-2)}

/* ---------- service page ---------- */
.spage-hero__wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:2.2rem; align-items:center}
.spage-hero__lead{font-size:1.15rem; color:var(--ink-2); max-width:46ch; margin:.4rem 0 1.2rem}
.spage-hero__media img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r); box-shadow:var(--shadow-lg)}
.facts{padding:34px 0}
.ataglance{display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem}
.ataglance__item{text-align:center; padding:.4rem}
.ataglance__k{display:block; font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-2); margin-bottom:.3rem}
.ataglance__v{display:block; font-family:var(--f-head); font-weight:700; font-size:1.05rem; color:var(--spruce)}
.facts .ataglance__k{color:#BDD6CB}
.facts .ataglance__v{color:#fff}
.prose{font-size:1.05rem; color:var(--ink); line-height:1.7}
.prose--center{max-width:720px; margin-inline:auto}
.prose h2{margin-top:0}
.prose p,.prose li{color:var(--ink)}
.prose a{color:var(--clay-deep); text-decoration:underline}
.prose a.btn,.prose .btn{text-decoration:none}
.prose .btn--call{color:#fff}
.prose ul{padding-left:1.2rem}
.prose .callcard{background:var(--spruce); color:#fff; border-radius:var(--r); padding:1.4rem 1.5rem; margin:1.4rem 0; box-shadow:var(--shadow-lg); text-align:center}
.prose .callcard p{color:#EAF2EE; margin-bottom:1rem}
.prose .bk-callout{background:var(--clay-tint); border:1px solid #ECD9CC; border-left:5px solid var(--clay); border-radius:var(--r-sm); padding:1.2rem 1.4rem; margin:1.4rem 0}
.prose .bk-callout h3{color:var(--clay-deep); margin-top:0}
.prose .bk-callout p{margin:0; color:var(--ink)}
.svc-quote{margin:1.6rem 0 0; padding:1.4rem 1.6rem; background:var(--mist); border-radius:var(--r); border:1px solid var(--line)}
.svc-quote p{color:var(--ink); font-style:italic; margin:0 0 .6rem}
.svc-quote cite{font-family:var(--f-head); font-weight:700; font-style:normal; color:var(--spruce); font-size:.92rem}
.svc-quote cite span{color:var(--ink-2); font-weight:600}
.whatnow .steps-lite{max-width:720px; margin:0 auto; padding-left:1.4rem}
.steps-lite li{margin:.6rem 0; color:var(--ink); font-size:1.03rem}
.reviews__cards{margin-top:.5rem}

/* related */
.rel-rows{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:900px; margin-inline:auto}
.rel-row{display:flex; flex-direction:column; gap:.5rem; text-decoration:none; background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.2rem 1.3rem; box-shadow:var(--shadow); transition:transform .12s ease}
.rel-row:hover{transform:translateY(-2px)}
.rel-row__t{font-family:var(--f-head); font-weight:700; color:var(--spruce)}
.rel-row__go{display:inline-flex; align-items:center; gap:.35rem; font-family:var(--f-head); font-weight:700; font-size:.86rem; color:var(--clay-deep)}

/* ---------- tools ---------- */
.tool-intro{max-width:760px; margin:0 auto 1.6rem; text-align:center}
.tool-intro p{color:var(--ink-2); font-size:1.05rem}
.tool{background:var(--white); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-lg); overflow:hidden; max-width:920px; margin-inline:auto}
.tool__grid{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; padding:1.6rem}
.optgroup{min-width:0}
.optgroup--full{grid-column:1/-1}
.field,.optgroup__legend{display:block; font-family:var(--f-head); font-weight:700; color:var(--spruce); margin-bottom:.6rem; font-size:.98rem}
select{width:100%; max-width:100%; padding:.7rem .8rem; border:1px solid var(--line); border-radius:var(--r-sm); font-family:var(--f-body); font-size:1rem; color:var(--ink); background:var(--white)}
.opt-row{display:flex; flex-direction:column; gap:.5rem}
.opt{display:flex; align-items:flex-start; gap:.55rem}
.opt input{margin-top:.25rem; accent-color:var(--clay); flex:0 0 auto}
.opt label{font-size:.96rem; color:var(--ink)}
.tool__result{background:var(--mist); border-top:1px solid var(--line); padding:1.6rem; text-align:center}
.result-readout{margin-bottom:1rem}
.result-readout .k{display:block; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-2); margin-bottom:.3rem}
.result__value{font-family:var(--f-head); font-weight:700; font-size:2rem; color:var(--spruce)}
.tool-note{font-size:.9rem; color:var(--ink-2); max-width:600px; margin:.6rem auto}
#rk-advice{text-align:left; background:var(--white); border:1px solid var(--line); border-radius:var(--r-sm); padding:1rem 1.1rem; color:var(--ink)}

/* ---------- static: contact / service-area / legal / sitemap ---------- */
.contact-cols{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start}
.call-panel{background:var(--spruce); color:#fff; border-radius:var(--r); padding:1.8rem; box-shadow:var(--shadow-lg)}
.call-panel h2{color:#fff}
.call-panel p{color:#DCEAE3}
.call-panel .btn--call{margin:.6rem 0}
.call-panel__email{font-size:.9rem}
.call-panel__email .email{color:#fff; font-weight:700; overflow-wrap:anywhere}
.contact-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.7rem; box-shadow:var(--shadow)}
.contact-card h3{color:var(--spruce)}
.contact-card__note{color:var(--ink-2); font-size:.95rem; margin-top:1rem}
.checklist{list-style:none; padding:0; margin:0}
.checklist li{position:relative; padding-left:1.6rem; margin:.55rem 0; color:var(--ink)}
.checklist li::before{content:"\2713"; position:absolute; left:0; top:0; color:var(--clay); font-weight:700}
.areas-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem}
.area{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.4rem; box-shadow:var(--shadow); min-width:0}
.area__head{display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; margin-bottom:.5rem}
.area__head h3{margin:0; color:var(--spruce); font-size:1.05rem}
.area__zip{display:inline-flex; align-items:center; gap:.3rem; font-family:var(--f-head); font-size:.82rem; font-weight:700; color:var(--clay-deep); white-space:nowrap}
.area__zip svg{width:1em; height:1em; flex:0 0 auto; fill:var(--clay-deep)}
.area p{color:var(--ink-2); font-size:.96rem; margin:0}
.prose--legal{max-width:800px; margin-inline:auto}
.prose--legal h2{color:var(--spruce); margin-top:1.6rem}
.sitemap-grid{display:grid; grid-template-columns:1fr 1fr; gap:2rem}
.sitemap-col h2{color:var(--spruce); font-size:1.3rem; margin-top:1.4rem}
.sitemap-col h2:first-child{margin-top:0}
.sitemap-list{list-style:none; padding:0; margin:0 0 1rem}
.sitemap-list li{margin:.4rem 0}
.sitemap-list a{color:var(--clay-deep); text-decoration:none; font-weight:600}
.sitemap-list a:hover{text-decoration:underline}

/* ---------- footer ---------- */
.map-embed{line-height:0}
.map-embed iframe{display:block}
.site-footer{background:var(--spruce-deep); color:#D6E4DD; padding:56px 0 26px}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2rem}
.foot-name{display:block; font-family:var(--f-head); font-weight:700; font-size:1.2rem; color:#fff; margin-bottom:.5rem}
.foot-name span{display:block; font-family:var(--f-body); font-weight:400; font-size:.82rem; color:#9FBBAF; text-transform:uppercase; letter-spacing:.05em; margin-top:.15rem}
.foot-brand p{color:#C5D8CF; font-size:.95rem}
.foot-sub{color:#B6CEC3 !important; font-size:.88rem !important}
.foot-nap{font-size:.92rem; color:#C5D8CF}
.foot-nap a{color:#fff; font-weight:700; text-decoration:none}
.foot-nap .email{overflow-wrap:anywhere}
.site-footer h3{color:#fff; font-size:1rem; margin-bottom:.8rem}
.foot-list{list-style:none; padding:0; margin:0}
.foot-list li{margin:.4rem 0}
.foot-list a{color:#C5D8CF; text-decoration:none; font-size:.93rem}
.foot-list a:hover{color:#fff}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem; border-top:1px solid rgba(255,255,255,.12); margin-top:2rem; padding-top:1.2rem; font-size:.85rem; color:#9FBBAF}
.foot-disc{margin:.8rem 0 0; font-size:.85rem}
.foot-disc a{color:#9FBBAF; text-decoration:underline}

/* ---------- sticky call bar (mobile) ---------- */
.callbar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:140; background:var(--clay); box-shadow:0 -4px 18px rgba(0,0,0,.2)}
.callbar a{display:flex; align-items:center; justify-content:center; gap:.5rem; padding:.9rem; color:#fff; font-family:var(--f-head); font-weight:700; font-size:1.1rem; text-decoration:none}
.callbar small{font-weight:400; font-size:.8rem; opacity:.9}
.callbar svg{fill:#fff}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1000px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .why__grid,.psteps{grid-template-columns:repeat(2,1fr)}
  .cases,.risk-grid,.areas-grid,.rel-rows,.nbhds{grid-template-columns:repeat(2,1fr)}
  .reviews__cards,.reviews__rail{grid-template-columns:repeat(2,1fr)}
  .filmstrip{grid-template-columns:repeat(3,1fr)}
  .pricecards{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:920px){
  /* collapse nav to hamburger — display toggle (NOT off-canvas translateX, which counts toward scroll width) */
  .nav{display:none; position:fixed; inset:0; background:var(--spruce-deep); flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:5rem 1.4rem 2rem; margin:0; overflow-y:auto; z-index:125}
  body.is-menu .nav{display:flex}
  body.is-menu{overflow:hidden}
  body.is-menu .site-header{z-index:130; background:var(--spruce-deep); box-shadow:none; border-bottom-color:rgba(255,255,255,.12)}
  body.is-menu .brand__name{color:#fff}
  body.is-menu .brand__name b{color:var(--clay-bright)}
  body.is-menu .brand__tag{color:#9FBBAF}
  body.is-menu .mast-phone span{color:var(--clay-bright)}
  body.is-menu .mast-phone small{color:#9FBBAF}
  .nav>a,.drop>a{color:#EAF2EE; font-size:1.05rem; padding:.9rem 0; border-bottom:1px solid rgba(255,255,255,.1); width:100%}
  .nav>a:hover,.drop>a:hover{color:var(--clay-bright)}
  .drop{width:100%}
  .drop>a[aria-haspopup]::after{float:right; margin-top:.4em}
  .drop__menu{position:static; display:none; background:transparent; border:0; box-shadow:none; padding:.2rem 0 .6rem .8rem; max-height:none}
  .drop.is-open .drop__menu{display:flex}
  .drop__menu a{color:#C5D8CF; padding:.5rem 0}
  .drop__menu a:hover{background:transparent; color:var(--clay-bright)}
  .nav-toggle{display:inline-flex; margin-left:auto; z-index:135; position:relative}
  .masthead{gap:.7rem}
  .brand{flex:1 1 auto; min-width:0}
  .brand__text{min-width:0}
  .brand__name{font-size:1rem}
  .mast-cta{margin-left:auto; gap:.5rem; flex:0 0 auto}
  .mast-phone{display:none}
  .callbar{display:block}
  body{padding-bottom:60px}
  /* layout stacks */
  .hero__wrap,.page-hero__wrap,.spage-hero__wrap,.reviews__grid,.cta-band__grid,.napband__grid,.cov__full,.cov__compact,.faq__grid,.contact-cols,.tool__grid,.sitemap-grid{grid-template-columns:1fr; gap:1.4rem}
  .hero__promise,.page-hero__lead,.spage-hero__lead{max-width:none}
  .band{padding:48px 0}
  .statbar__logos{margin-left:0; padding-left:0; border-left:0; justify-content:center; width:100%}
  .ataglance{grid-template-columns:repeat(2,1fr)}
  .agg{max-width:420px; margin-inline:auto}
}
/* legibility: every content paragraph/li/blockquote renders >= 16px (owner rule + gate) */
.why__card p,.pstep__b p,.risk p,.faq__card p,.case__b p,.pricecard li,.review blockquote,
.tool-note,.call-panel__email,.contact-card__note,.area p,.agg__note,.zips__note,
.foot-brand p,.foot-nap,.svc-card__p{font-size:1rem}
.foot-sub{font-size:1rem !important}

@media (max-width:560px){
  .svc-grid,.why__grid,.psteps,.cases,.risk-grid,.areas-grid,.rel-rows,.nbhds,.reviews__cards,.reviews__rail,.foot-grid{grid-template-columns:1fr}
  .filmstrip{grid-template-columns:repeat(2,1fr)}
  .review__meta .date{margin-left:0}
  h1{font-size:clamp(1.85rem,7vw,2.3rem)}
  .btn--lg .btn__num{font-size:1.4rem}
  .foot-bottom{flex-direction:column}
  .brand__mark{width:36px; height:36px}
  .brand__name{font-size:.95rem}
}
