/* ==========================================================================
   REDLAND design system  ·  B&D Restoration  ·  Statham, GA
   North-Georgia red-clay orange (LEAD) + deep pine teal + warm cream.
   Barlow Condensed (display) + Source Sans 3 (body). Clay / pine-sprig / ridge.
   Single committed light look. Built to the prevention checklist.
   ========================================================================== */

:root{
  /* Grounds */
  --bg:#F8F4EE; --surface:#FFFCF7; --surface-2:#F2ECE1;
  --band-clay:#F4E7DC; --band-pine:#E7EEEA;
  /* Ink */
  --ink:#1C2321; --ink-2:#4A544F; --ink-3:#6E7872; --cream:#F8F4EE;
  /* Clay (lead) */
  --clay:#C24A1E; --clay-deep:#9E3A15; --clay-bright:#EE8B52; --clay-tint:#F4E7DC;
  /* Pine (co-lead) */
  --pine:#155E52; --pine-deep:#0F4A41; --pine-soft:#1E6E60; --pine-link:#12564C; --pine-tint:#E7EEEA;
  /* Lines */
  --line:#E6DBCC; --line-strong:#D6C6B2; --line-dark:#2A5A50;
  /* Shape + shadow */
  --r:6px; --r-lg:10px; --r-pill:999px;
  --shadow:0 2px 6px rgba(60,30,12,.06);
  --shadow-lg:0 14px 34px -12px rgba(60,30,12,.16);
  --wrap:1140px; --gutter:24px;
  --font-display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:1.075rem; line-height:1.65;
  font-weight:400; overflow-x:clip;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--pine-link)}
.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:200; border-radius:0 0 var(--r) 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}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--font-display); color:var(--ink); margin:0 0 .5em; line-height:1.05; font-weight:800}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem); font-weight:700}
h3{font-size:clamp(1.15rem,2vw,1.4rem); font-weight:700; line-height:1.12}
p{margin:0 0 1rem; max-width:66ch}
.svc-prose p, .prose p{color:var(--ink)}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-deep); margin-bottom:.6rem}
.eyebrow svg{width:15px; height:15px; flex:0 0 auto; fill:var(--pine)}
.eyebrow--pine{color:var(--pine)}
.eyebrow--onslate,.eyebrow--cream{color:var(--clay-bright)}
.eyebrow--onslate svg,.eyebrow--cream svg{fill:var(--clay-bright)}
/* clay strata bar above section headings */
.strata{display:block; width:44px; height:4px; border-radius:2px; background:var(--clay); margin:0 0 14px}
.band--dark .strata,.band--pine-solid .strata{background:var(--clay-bright)}
.sec-head{max-width:62ch; margin:0 0 30px}
.sec-head--center{margin-inline:auto; text-align:center}
.sec-head--center .strata{margin-inline:auto}
.sec-head p{color:var(--ink-2); font-size:1.05rem}
.lead{font-size:1.18rem; color:var(--ink)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 22px; border-radius:var(--r); border:2px solid transparent;
  font-family:var(--font-display); font-weight:700; font-size:1.05rem; letter-spacing:.01em;
  text-decoration:none; cursor:pointer; transition:background .15s,border-color .15s,transform .05s; text-align:center}
.btn:active{transform:translateY(1px)}
.btn{background:var(--clay); color:#fff; border-color:var(--clay)}
.btn:hover{background:var(--clay-deep); border-color:var(--clay-deep)}
.btn--pine{background:var(--pine); color:#fff; border-color:var(--pine)}
.btn--pine:hover{background:var(--pine-soft); border-color:var(--pine-soft)}
.btn--ghost{background:transparent; color:var(--clay-deep); border-color:var(--clay)}
.btn--ghost:hover{background:var(--clay-tint)}
.btn--cream{background:#fff; color:var(--clay-deep); border-color:#fff}
.btn--cream:hover{background:var(--clay-tint); border-color:var(--clay-tint)}
.btn--sm{min-height:42px; padding:0 16px; font-size:.98rem}
.btn--lg{min-height:58px; padding:0 30px; font-size:1.15rem; flex-direction:column; gap:1px; line-height:1.1}
.btn--lg .btn__sub{font-family:var(--font-body); font-weight:600; font-size:.72rem; letter-spacing:.02em; opacity:.9; text-transform:none}
.btn--block{display:flex; width:100%}

/* ---------- Chips ---------- */
.chips{display:flex; flex-wrap:wrap; gap:10px}
.chip{display:inline-flex; align-items:center; gap:7px; padding:6px 13px; border-radius:var(--r-pill);
  background:var(--surface-2); border:1px solid var(--line-strong); color:var(--ink);
  font-size:.86rem; font-weight:600}
.chip svg{width:15px; height:15px; fill:var(--pine); flex:0 0 auto}
.chip--pine{background:var(--pine-tint); border-color:#cfe0da}

/* ---------- Icon badge (FIXED box , never balloons) ---------- */
.ico{display:inline-flex; width:48px; height:48px; border-radius:8px; align-items:center; justify-content:center; flex:0 0 auto; background:var(--clay-tint)}
.ico svg{width:24px; height:24px; display:block}
.ico--clay{background:var(--clay); }
.ico--clay svg{fill:#fff}
.ico--pine{background:var(--pine-tint)}
.ico--pine svg{fill:var(--pine)}
.ico--clay-tint svg{fill:var(--clay-deep)}

/* ---------- Bands ---------- */
.band{padding:64px 0}
.band--tight{padding:44px 0}
.band--clay{background:var(--band-clay)}
.band--pine{background:var(--band-pine)}
.band--surface{background:var(--surface)}
.band--dark{background:var(--pine-deep); color:var(--cream)}
.band--dark h1,.band--dark h2,.band--dark h3{color:#fff}
.band--dark p{color:#dcece7}
.band--dark a{color:#fff}
.band--dark a.btn--cream{color:var(--clay-deep)}

/* ---------- Top bar ---------- */
.topbar{background:var(--pine-deep); color:var(--cream); font-size:.8rem; font-weight:600}
.topbar__in{display:flex; align-items:center; justify-content:space-between; min-height:38px; gap:14px}
.topbar__l{letter-spacing:.06em; text-transform:uppercase; font-size:.74rem; color:#cfe0da; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.topbar__r{display:flex; align-items:center; gap:14px; flex:0 0 auto}
.topbar__rating{color:var(--clay-bright); font-weight:700; letter-spacing:.02em; white-space:nowrap}
.topbar__phone{color:#fff; text-decoration:none; font-weight:700; white-space:nowrap}
.topbar__phone:hover{text-decoration:underline}

/* ---------- Sticky header (solid, NO backdrop-filter) ---------- */
.site-header{position:sticky; top:0; z-index:60; background:var(--surface); border-bottom:1px solid var(--line); transition:box-shadow .2s}
.site-header.is-scrolled{box-shadow:var(--shadow)}
.header__in{display:flex; align-items:center; gap:20px; min-height:72px; transition:min-height .2s}
.site-header.is-scrolled .header__in{min-height:62px}
.brand{display:inline-flex; align-items:center; gap:11px; text-decoration:none; flex:0 0 auto}
.brand__mark{flex:0 0 auto; display:block}
.brand__words{display:flex; flex-direction:column; line-height:1}
.brand__name{font-family:var(--font-display); font-weight:800; font-size:1.32rem; color:var(--ink); letter-spacing:.01em}
.brand__sub{font-family:var(--font-body); font-weight:600; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay-deep); margin-top:3px}

/* Nav */
.nav{display:flex; align-items:center; gap:4px; margin-left:auto}
.nav__link,.drop__toggle{display:inline-flex; align-items:center; gap:5px; font-family:var(--font-display); font-weight:600; font-size:1.06rem; color:var(--ink); text-decoration:none; background:none; border:0; cursor:pointer; padding:10px 12px; border-radius:var(--r); position:relative; font-feature-settings:normal}
.nav__link:hover,.drop__toggle:hover{color:var(--clay-deep)}
.nav__link::after,.drop__toggle::after{content:""; position:absolute; left:12px; right:12px; bottom:6px; height:3px; border-radius:2px; background:var(--clay); transform:scaleX(0); transform-origin:left; transition:transform .15s}
.nav__link:hover::after,.drop__toggle:hover::after,.drop.is-open .drop__toggle::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.caret{width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s}
.drop.is-open .caret{transform:rotate(-135deg) translateY(-1px)}
.drop{position:relative}
.drop__menu{position:absolute; top:calc(100% + 2px); left:0; min-width:288px;
  background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg); padding:8px; display:none; flex-direction:column;
  max-height:min(72vh,560px); overflow-y:auto; overscroll-behavior:contain; z-index:80}
.drop.is-open .drop__menu{display:flex}
.drop__menu::before{content:""; position:absolute; top:-10px; left:0; right:0; height:10px} /* hover bridge */
.drop__menu a{font-family:var(--font-body); font-weight:600; font-size:.98rem; color:var(--ink); text-decoration:none; padding:9px 12px; border-radius:var(--r); line-height:1.25}
.drop__menu a:hover{background:var(--clay-tint); color:var(--clay-deep)}

.header__cta{display:flex; align-items:center; gap:12px; flex:0 0 auto}
.header__phone{display:flex; flex-direction:column; line-height:1.05; text-decoration:none; font-family:var(--font-display); font-weight:800; font-size:1.14rem; color:var(--ink)}
.header__phone small{font-family:var(--font-body); font-weight:600; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.header__phone:hover{color:var(--clay-deep)}

/* Hamburger */
.nav-toggle{display:none; width:46px; height:46px; border:1px solid var(--line-strong); border-radius:var(--r); background:var(--surface); cursor:pointer; padding:0; align-items:center; justify-content:center; flex-direction:column; gap:5px}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--ink); transition:transform .2s,opacity .2s}
body.is-menu .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.is-menu .nav-toggle span:nth-child(2){opacity:0}
body.is-menu .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- HERO ---------- */
.hero{position:relative; background:var(--pine-deep)}
.hero__media{position:absolute; inset:0; z-index:0}
.hero__media img{width:100%; height:100%; object-fit:cover}
.hero__media::after{content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(15,74,65,.92) 0%,rgba(15,74,65,.7) 42%,rgba(15,74,65,.25) 78%,rgba(15,74,65,.1) 100%)}
.hero .wrap{position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,560px) 1fr; padding-top:56px; padding-bottom:56px}
.hero__card{background:var(--surface); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:30px 30px 26px; position:relative; overflow:hidden}
.hero__card::before{content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--clay)}
.hero__card h1{font-size:clamp(2.05rem,4.6vw,3.25rem); line-height:1; margin:0 0 12px}
.hero__card h1 .k{color:var(--clay)}
.hero__sub{font-size:1.1rem; color:var(--ink-2); margin:0 0 20px; max-width:46ch}
.hero__micro{font-size:.82rem; font-weight:600; color:var(--ink-3); letter-spacing:.04em; margin:10px 0 18px}
.hero__cta{display:flex; flex-wrap:wrap; gap:12px; align-items:center}
.hero__card .chips{margin-top:18px; padding-top:18px; border-top:1px solid var(--line)}

/* ---------- Trust strip ---------- */
.tstrip{background:var(--surface); border-bottom:1px solid var(--line)}
.tstrip__in{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 26px; padding:16px 0; font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--ink)}
.tstrip__i{display:inline-flex; align-items:center; gap:9px}
.tstrip__i svg{width:20px; height:20px; fill:var(--clay); flex:0 0 auto}
.tstrip__sep{color:var(--ink-3)}

/* ---------- Split (intro) ---------- */
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:44px; align-items:center}
.split__media img{border-radius:var(--r-lg); box-shadow:var(--shadow-lg); width:100%; object-fit:cover; aspect-ratio:4/3}
.split__media{position:relative}
.split__media .tag{position:absolute; left:16px; bottom:16px; background:var(--clay); color:#fff; font-family:var(--font-display); font-weight:700; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; padding:7px 13px; border-radius:var(--r)}
.prose a{color:var(--pine-link); text-decoration:underline; text-underline-offset:2px}
.prose a:hover{color:var(--clay-deep)}

/* ---------- Services grid ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
.svc-card{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); text-decoration:none; transition:transform .12s,box-shadow .15s; min-width:0}
.svc-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.svc-card__media{position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--surface-2)}
.svc-card__media img{width:100%; height:100%; object-fit:cover}
.svc-card__media::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; z-index:1; background:var(--clay)}
.svc-card:nth-child(2n) .svc-card__media::before{background:var(--pine)}
.svc-card__body{padding:16px 18px 18px; display:flex; flex-direction:column; flex:1}
.svc-card__body h3{margin:0 0 6px; color:var(--ink)}
.svc-card__body p{margin:0 0 12px; font-size:.95rem; color:var(--ink-2)}
.svc-card__go{margin-top:auto; font-family:var(--font-display); font-weight:700; font-size:.95rem; color:var(--clay-deep); letter-spacing:.02em}
.svc-card--all{align-items:flex-start; justify-content:center; background:var(--pine); color:#fff; padding:24px}
.svc-card--all h3{color:#fff}
.svc-card--all p{color:#cfe0da}
.svc-card--all .svc-card__go{color:var(--clay-bright)}

/* ---------- Dispatch band (dark pine call moment) ---------- */
.dispatch{position:relative; overflow:hidden}
.dispatch .wrap{display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:center; position:relative; z-index:1}
.dispatch__ridge{position:absolute; right:-40px; bottom:-30px; width:520px; max-width:60%; opacity:.14; z-index:0; pointer-events:none}
.dispatch__ridge path{fill:none; stroke:var(--clay-bright); stroke-width:2}
.dispatch h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.dispatch__call{display:flex; flex-direction:column; gap:14px; align-items:flex-start}
.dispatch__phone{font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,5vw,2.9rem); color:#fff; text-decoration:none; line-height:1}
.dispatch__phone:hover{color:var(--clay-bright)}

/* ---------- Why-us icon cards ---------- */
.why-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px}
.why-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 20px; box-shadow:var(--shadow); min-width:0}
.why-card .ico{margin-bottom:14px}
.why-card h3{margin:0 0 6px; color:var(--ink)}
.why-card p{margin:0; font-size:.95rem; color:var(--ink-2)}

/* ---------- Stats band ---------- */

/* ---------- Local hooks ---------- */
.hooks{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px}
.hook{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; box-shadow:var(--shadow); min-width:0}
.hook .ico{margin-bottom:14px}
.hook h3{margin:0 0 8px}
.hook p{margin:0; font-size:.97rem; color:var(--ink-2)}

/* ---------- Gallery ---------- */
.gallery{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px}
.gallery img{border-radius:var(--r); aspect-ratio:1/1; object-fit:cover; width:100%; box-shadow:var(--shadow)}

/* ---------- Recent Work case studies ---------- */
.case-card__media img{border-radius:0; aspect-ratio:4/3; object-fit:cover; width:100%; box-shadow:none}
.case-card__body{padding:18px 20px 22px}
.case-card__meta{display:block; font-family:var(--font-display); font-weight:700; font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; color:var(--clay-deep); margin-bottom:12px}
.case-card__facts{margin:0; display:flex; flex-direction:column; gap:10px}
.case-card__facts dt{font-family:var(--font-display); font-weight:700; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--pine); margin:0}
.case-card__facts dd{margin:2px 0 0; font-size:.92rem; color:var(--ink-2); line-height:1.55}

/* ---------- Reviews ---------- */
.rev-summary__stars{color:var(--clay); font-size:1.5rem; letter-spacing:2px}
.rev-summary__n{font-family:var(--font-display); font-weight:800; font-size:1.9rem; color:var(--ink)}
.rev-summary__t{color:var(--ink-2); font-weight:600}
.rev-card__stars{color:var(--clay); letter-spacing:1px; font-size:1rem; margin-bottom:8px}
.rev-card__body{margin:0 0 14px; font-size:.98rem; color:var(--ink)}
.rev-card__foot{margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; gap:10px; border-top:1px solid var(--line); padding-top:12px}
.rev-card__name{font-family:var(--font-display); font-weight:700; color:var(--ink)}
.rev-card__date{font-size:.78rem; color:var(--ink-3); font-weight:600}

/* ---------- Pricing ranges ---------- */
.price-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
.price-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 24px; box-shadow:var(--shadow); min-width:0; position:relative; overflow:hidden}
.price-card::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--clay)}
.price-card h3{margin:0 0 4px}
.price-card__range{font-family:var(--font-display); font-weight:800; font-size:1.7rem; color:var(--clay-deep); margin:8px 0}
.price-card ul{margin:12px 0 0; padding:0; list-style:none}
.price-card li{position:relative; padding-left:22px; margin-bottom:7px; font-size:.94rem; color:var(--ink-2)}
.price-note{text-align:center; margin-top:24px; color:var(--ink-2)}

/* ---------- Service area (chips + visible ZIPs) ---------- */
.area-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.area-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; min-width:0}
.area-card__city{font-family:var(--font-display); font-weight:700; font-size:1.08rem; color:var(--ink); display:flex; align-items:center; gap:8px}
.area-card__city svg{width:16px; height:16px; fill:var(--clay); flex:0 0 auto}
.area-card__zips{font-size:.86rem; color:var(--ink-3); margin-top:4px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere}

/* ---------- Carriers ---------- */

/* ---------- FAQ ---------- */
.faq2{display:grid; grid-template-columns:1.5fr 1fr; gap:28px; align-items:start}
.faq2__cols{display:flex; flex-direction:column; gap:12px}
.faq-item{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden}
.faq-item summary{list-style:none; cursor:pointer; padding:16px 20px; font-family:var(--font-display); font-weight:700; font-size:1.14rem; color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--clay); flex:0 0 auto; line-height:1}
.faq-item[open] summary::after{content:"\2013"}
.faq-item>div{padding:0 20px 18px}
.faq-item p{margin:0; color:var(--ink-2)}
.faq-callcard{background:var(--pine-deep); color:var(--cream); border-radius:var(--r-lg); padding:26px; position:sticky; top:96px}
.faq-callcard h3{color:#fff; margin:0 0 8px}
.faq-callcard p{color:#dcece7; font-size:.96rem}
.faq-callcard .big{display:block; font-family:var(--font-display); font-weight:800; font-size:1.9rem; color:var(--clay-bright); margin:10px 0 14px}

/* ---------- Dedicated NAP block ---------- */
.napblock{display:flex; flex-wrap:wrap; gap:12px 40px; align-items:center; justify-content:center; text-align:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; box-shadow:var(--shadow)}
.napblock__row{display:inline-flex; align-items:center; gap:9px; font-weight:600}
.napblock__row svg{width:19px; height:19px; fill:var(--clay); flex:0 0 auto}
.napblock__row a{color:var(--ink); text-decoration:none}
.napblock__name{font-family:var(--font-display); font-weight:800; font-size:1.2rem; color:var(--ink)}

/* ---------- Closing CTA ---------- */
.closing .wrap{display:grid; grid-template-columns:1.2fr 1fr; gap:36px; align-items:center; position:relative; z-index:1}
.closing .nap{display:flex; flex-direction:column; gap:9px; background:rgba(255,255,255,.06); border:1px solid var(--line-dark); border-radius:var(--r-lg); padding:22px}
.nap__name{font-family:var(--font-display); font-weight:800; font-size:1.25rem; color:#fff}
.nap__row{display:flex; align-items:center; gap:10px; color:#dcece7}
.nap__row svg{width:18px; height:18px; fill:var(--clay-bright); flex:0 0 auto}
.nap__row a{color:#fff; text-decoration:none}

/* ---------- Clay-rule call strip ---------- */
.callrule{background:var(--band-clay); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.callrule__in{display:flex; align-items:center; justify-content:center; gap:12px; padding:15px 0; text-align:center; flex-wrap:wrap; font-family:var(--font-display); font-weight:600; font-size:1.12rem; color:var(--ink)}
.callrule__in svg{width:18px; height:18px; fill:var(--pine); flex:0 0 auto}
.callrule a{color:var(--clay-deep); text-decoration:none; font-weight:800}
.callrule a:hover{text-decoration:underline}

/* ---------- Map ---------- */
.map-embed{line-height:0; border-top:1px solid var(--line); display:block}
.map-embed img{width:100%; height:340px; object-fit:cover; display:block; filter:saturate(.85)}

/* ---------- Footer ---------- */
.site-footer{background:var(--pine-deep); color:#cfe0da; padding:52px 0 26px; position:relative}
.foot-grid{display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:34px}
.foot-brand p{color:#bcd2cc; font-size:.94rem; max-width:40ch}
.foot-lock{display:inline-flex; align-items:center; gap:10px; margin-bottom:12px}
.foot-lock .brand__name{color:#fff}
.foot-lock .brand__sub{color:var(--clay-bright)}
.foot-contact{font-size:.9rem; margin-top:12px; line-height:1.7}
.foot-contact a{color:#fff; text-decoration:none}
.foot-contact .email{color:#bcd2cc}
.foot-col h3{color:#fff; font-size:1.08rem; margin:0 0 12px}
.foot-col ul{list-style:none; margin:0; padding:0}
.foot-col li{margin-bottom:8px}
.foot-col a{color:#cfe0da; text-decoration:none; font-size:.94rem}
.foot-col a:hover{color:#fff; text-decoration:underline}
.foot-bottom{margin-top:36px; padding-top:18px; border-top:1px solid var(--line-dark); display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; font-family:var(--font-display); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.78rem; color:#9fbcb4}
.disclaimer-note{margin:16px 0 0; font-size:.8rem; color:#8fada6; max-width:none; line-height:1.6}
.disclaimer-note a{color:#bcd2cc}
.foot-gbp{display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:8px 14px; border-radius:var(--r-pill); background:rgba(255,255,255,.08); border:1px solid var(--line-dark); color:#fff; text-decoration:none; font-size:.86rem; font-weight:700; font-family:var(--font-display)}
.foot-gbp svg{width:16px; height:16px; fill:#fff; flex:0 0 auto}
.foot-gbp:hover{background:rgba(255,255,255,.16); text-decoration:underline}

/* Body GBP link (About/Contact/Service-Area) , self-contained light badge, safe on both light bands and the dark .svc-hero (same treatment as .svc-hero .chip). "a.gbp-link" (element+class) so it always wins over ".prose a"/".svc-prose a" when the badge sits inside a prose block (contact.html), matching the .napblock__row a precedent. */
a.gbp-link{display:inline-flex; align-items:center; gap:8px; margin:14px 10px 0 0; padding:8px 14px; border-radius:var(--r-pill); background:var(--surface-2); border:1px solid var(--line-strong); color:var(--ink); text-decoration:none; font-size:.86rem; font-weight:700; font-family:var(--font-display)}
.gbp-link svg{width:16px; height:16px; fill:var(--clay-deep); flex:0 0 auto}
a.gbp-link:hover{background:var(--clay-tint); text-decoration:underline}

/* ---------- Sticky mobile callbar ---------- */
.callbar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:70; background:var(--clay); overflow-x:clip}
.callbar a{display:flex; align-items:center; justify-content:center; gap:10px; min-height:56px; color:#fff; text-decoration:none; font-family:var(--font-display); font-weight:800; font-size:1.2rem; letter-spacing:.02em}
.callbar svg{width:20px; height:20px; fill:#fff; flex:0 0 auto}
.callbar small{font-family:var(--font-body); font-weight:600; font-size:.72rem; opacity:.9}

/* ==========================================================================
   SERVICE PAGE
   ========================================================================== */
.bc{font-size:.85rem; font-weight:600; color:var(--ink-3); margin-bottom:12px}
.bc a{color:var(--ink-2); text-decoration:none}
.bc a:hover{color:var(--clay-deep)}
.svc-actionbar{background:var(--band-pine); border-bottom:1px solid var(--line)}
.svc-actionbar .wrap{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:34px; align-items:center; padding-top:40px; padding-bottom:40px}
.svc-actionbar .bc a{color:var(--pine)}
.svc-actionbar h1{font-size:clamp(2rem,4.4vw,3.1rem); line-height:1.02; margin:0 0 12px}
.svc-actionbar__lead{color:var(--ink-2); font-size:1.08rem; max-width:52ch; margin:0 0 18px}
.svc-actionbar__inset img{border-radius:var(--r-lg); box-shadow:var(--shadow-lg); width:100%; aspect-ratio:8/5; object-fit:cover}

.svc-facts{background:var(--band-clay); border-bottom:1px solid var(--line)}
.svc-facts .wrap{padding-top:22px; padding-bottom:22px}
.ataglance{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px}
.ataglance__item{min-width:0}
.ataglance__k{display:block; font-family:var(--font-display); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--clay-deep); margin-bottom:4px}
.ataglance__v{display:block; color:var(--ink); font-weight:500; font-size:.98rem}

.svc-block{padding:44px 0}
.svc-block--tint{background:var(--band-pine)}
.svc-prose{max-width:760px}
.svc-prose h2{position:relative; padding-top:16px; margin-top:0}
.svc-prose h2::before{content:""; position:absolute; top:0; left:0; width:44px; height:4px; border-radius:2px; background:var(--clay)}
.svc-prose p{color:var(--ink); margin:0 0 1rem}
.svc-prose ul{list-style:none; margin:0 0 1.1rem; padding:0}
.svc-prose li{position:relative; padding-left:26px; margin-bottom:9px; color:var(--ink)}
.svc-prose ul li::before{content:""; position:absolute; left:2px; top:9px; width:9px; height:9px; border-radius:0 60% 60% 60%; background:var(--pine); transform:rotate(45deg)}
.svc-prose a{color:var(--pine-link); text-decoration:underline; text-underline-offset:2px}
.svc-prose a:hover{color:var(--clay-deep)}

/* process timeline */
.svc-steps{list-style:none; counter-reset:s; margin:24px 0; padding:0; position:relative}
.svc-steps::before{content:""; position:absolute; left:19px; top:8px; bottom:8px; width:2px; background:var(--pine); opacity:.35}
.svc-steps li{position:relative; display:flex; gap:16px; padding:0 0 18px; align-items:flex-start}
.svc-steps .n{flex:0 0 auto; width:40px; height:40px; border-radius:50%; background:var(--clay); color:#fff; font-family:var(--font-display); font-weight:800; font-size:1.05rem; display:inline-flex; align-items:center; justify-content:center; position:relative; z-index:1}
.svc-steps li>span:last-child{padding-top:7px}
.svc-steps b{color:var(--ink)}

/* inline call card */
.callcard{background:var(--pine-deep); color:#fff; border-radius:var(--r-lg); padding:24px 26px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin:26px 0; box-shadow:var(--shadow)}
.callcard p{color:#eaf3f0; margin:0; max-width:44ch; font-weight:500}
.callcard .btn{background:#fff; color:var(--clay-deep); border-color:#fff}
.callcard .btn:hover{background:var(--clay-tint); border-color:var(--clay-tint)}

/* context callout */
.bk-callout{background:var(--surface); border:1px solid var(--line-strong); border-left:5px solid var(--clay); border-radius:var(--r); padding:18px 22px; margin:24px 0}
.bk-callout h3{margin:0 0 6px; color:var(--clay-deep)}
.bk-callout p{margin:0; color:var(--ink-2)}

/* testimonial card (reads on any band ground: surface fill + clay accent) */

/* why-us band (service page) */
.svc-why{padding:52px 0; background:var(--band-clay); border-top:1px solid var(--line)}
.svc-why__grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:28px}
.svc-why__card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 20px; box-shadow:var(--shadow); min-width:0}
.svc-why__ic{display:inline-flex; width:48px; height:48px; border-radius:8px; align-items:center; justify-content:center; background:var(--clay-tint); margin-bottom:14px}
.svc-why__ic svg{width:24px; height:24px; fill:var(--clay-deep)}
.svc-why__card h3{margin:0 0 6px; color:var(--ink)}
.svc-why__card p{margin:0; font-size:.94rem; color:var(--ink-2)}

/* related grid */
.related-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.related-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; box-shadow:var(--shadow); text-decoration:none; display:flex; flex-direction:column; gap:8px; transition:transform .12s,box-shadow .15s; min-width:0}
.related-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.related-card h3{margin:0; color:var(--ink)}
.related-card p{margin:0; font-size:.92rem; color:var(--ink-2)}
.related-card .go{margin-top:auto; font-family:var(--font-display); font-weight:700; color:var(--clay-deep)}

/* dispatch panel (closing, service + tools) */
.dispatch-panel{background:var(--pine-deep); color:#fff; padding:52px 0; position:relative; overflow:hidden}
.dispatch-panel .wrap{display:grid; grid-template-columns:1.25fr 1fr; gap:36px; align-items:center; position:relative; z-index:1}
.dispatch-panel h2{color:#fff; font-size:clamp(1.7rem,3.4vw,2.4rem)}
.dispatch-panel p{color:#dcece7}
.dispatch-panel .eyebrow{color:var(--clay-bright)}
.dispatch-panel .btn__num{font-size:1.2rem}
.dispatch-panel__nap .nap{display:flex; flex-direction:column; gap:9px; background:rgba(255,255,255,.06); border:1px solid var(--line-dark); border-radius:var(--r-lg); padding:22px}

/* generic section helper */
.section{padding:56px 0}
.section--fog{background:var(--band-pine)}
.section--white{background:var(--surface)}
.sec-head__idx{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:700; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-deep); margin-bottom:8px}
.sec-head__idx .node{width:15px; height:15px; flex:0 0 auto; background:var(--pine); border-radius:0 60% 60% 60%; transform:rotate(45deg)}

/* ==========================================================================
   TOOL PAGES
   ========================================================================== */
.tool-hero{background:var(--pine-deep); color:#fff; padding:44px 0}
.tool-hero .bc{color:#9fbcb4}
.tool-hero .bc a{color:#cfe0da}
.tool-hero h1{color:#fff; font-size:clamp(1.9rem,4vw,2.8rem); margin:6px 0 10px}
.tool-hero p{color:#dcece7; max-width:60ch}
.tool-hero .btn{margin-top:18px}
.tool{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:28px; position:relative; overflow:hidden; max-width:860px; margin-inline:auto}
.tool::before{content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--clay)}
.tool__grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px}
.optgroup{min-width:0}
.field,.optgroup__legend{display:block; font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--ink); margin-bottom:10px}
.optgroup select{width:100%; padding:11px 12px; border:1px solid var(--line-strong); border-radius:var(--r); font-family:var(--font-body); font-size:1rem; background:var(--bg); color:var(--ink)}
.opt-row{display:flex; flex-direction:column; gap:8px}
.opt{display:flex; align-items:flex-start; gap:10px; padding:11px 13px; border:1px solid var(--line-strong); border-radius:var(--r); background:var(--bg); cursor:pointer; font-size:.96rem; transition:border-color .12s,background .12s}
.opt:hover{border-color:var(--clay)}
.opt:has(input:checked){border-color:var(--clay); background:var(--clay-tint)}
.opt input{margin-top:3px; accent-color:var(--clay); flex:0 0 auto}
.opt label{cursor:pointer; color:var(--ink)}
.tool__result{margin-top:24px; border-top:1px dashed var(--line-strong); padding-top:22px}
.result-readout{display:flex; flex-direction:column; align-items:center; text-align:center; margin-bottom:14px}
.result-readout .k{font-family:var(--font-display); font-weight:700; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px}
.result__value{font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,5vw,3rem); color:var(--clay); line-height:1}
.tool-note{font-size:.86rem; color:var(--ink-2); text-align:center; max-width:60ch; margin:0 auto 16px}
.tool__result .btn{display:flex; max-width:340px; margin-inline:auto}

/* ==========================================================================
   SERVICE PAGE v2  ·  split hero · numbered process · editorial bands · coverage
   (Redland lane , clay + pine on cream, this site's own tokens + type)
   ========================================================================== */

/* ---------- Split hero (dark pine ground, one relevant photo) ---------- */
.svc-hero{position:relative; overflow:hidden; background:var(--pine-deep); color:var(--cream)}
.svc-hero__ridge{position:absolute; right:-30px; bottom:-26px; width:520px; height:160px; max-width:58%; background:url(../img/service-ridge.svg?v=c1be2bb9) right bottom / contain no-repeat; opacity:.13; z-index:0; pointer-events:none}
.svc-hero .wrap{position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:38px; align-items:center; padding-top:clamp(32px,4.2vw,54px); padding-bottom:clamp(32px,4.2vw,54px)}
.svc-hero .bc{color:#9fbcb4}
.svc-hero .bc a{color:#cfe0da; text-decoration:none}
.svc-hero .bc a:hover{color:#fff}
.svc-hero .eyebrow{color:var(--clay-bright)}
.svc-hero .eyebrow svg{fill:var(--clay-bright)}
.svc-hero h1{color:#fff; font-size:clamp(2rem,4.4vw,3.15rem); line-height:1.02; margin:0 0 12px}
.svc-hero__lead{color:#dcece7; font-size:1.12rem; max-width:52ch; margin:0 0 20px; line-height:1.6}
.svc-hero .chips{margin-top:18px}
.svc-hero .chip{background:var(--surface); border-color:var(--surface)}
.svc-hero__media{position:relative}
.svc-hero__media img{width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); border:5px solid #fff}

/* ---------- Numbered process strip ---------- */
.svc-process{background:var(--band-pine); padding:clamp(40px,4.6vw,58px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.pflow{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; position:relative; margin-top:26px}
.pflow::before{content:""; position:absolute; left:12%; right:12%; top:23px; height:2px; background:repeating-linear-gradient(90deg,var(--clay) 0 9px,transparent 9px 18px); opacity:.5}
.pstep{position:relative; z-index:1; display:flex; flex-direction:column; gap:9px; text-align:center; align-items:center; padding:0 6px; min-width:0}
.pstep__n{display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; flex:0 0 auto; border-radius:50%; background:var(--clay); color:#fff; font-family:var(--font-display); font-weight:800; font-size:1.15rem; box-shadow:0 0 0 6px var(--band-pine),0 0 0 7.5px var(--line)}
.pstep h3{font-size:1.06rem; margin:2px 0 .1em; color:var(--ink)}
.pstep p{font-size:.9rem; color:var(--ink-2); margin:0; line-height:1.5}

/* ---------- Lead prose + editorial topic bands (alternating warm/water) ---------- */
.svc-lead{background:var(--surface); padding:clamp(30px,4vw,48px) 0}
.svc-lead .svc-prose{max-width:840px}
.svc-lead .svc-prose>p:first-child{font-size:1.16rem; line-height:1.62; color:var(--ink)}
.svc-band{padding:clamp(32px,4.2vw,52px) 0; background:var(--band-clay); border-top:1px solid var(--line)}
.svc-band--rev{background:var(--band-pine)}
.svc-band--wide .svc-prose{max-width:860px}

/* ---------- Coverage / service area (real self-hosted map) ---------- */
.coverage{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:30px; align-items:start; margin-bottom:26px}
.coverage__map{margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--line-strong); background:var(--surface)}
.coverage__map img{width:100%; height:auto; display:block}
.coverage__map figcaption{display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; align-items:center; padding:12px 16px; border-top:1px solid var(--line)}
.coverage__pin{display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:.9rem; color:var(--ink)}
.coverage__pin svg{width:16px; height:16px; fill:var(--clay); flex:0 0 auto}
.coverage__credit{font-size:.72rem; color:var(--ink-3); letter-spacing:.01em}
.coverage--compact{align-items:center; margin-bottom:0}
.coverage__note p{font-size:1.05rem; color:var(--ink); line-height:1.62; margin:0 0 14px}
.coverage__all{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-weight:700; color:var(--clay-deep); text-decoration:none; border-bottom:2px solid var(--clay); padding-bottom:2px}
.coverage__all:hover{color:var(--pine)}
.zip-block{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px}
.zip-block h3{font-size:1.08rem; margin:0 0 .6em; color:var(--ink)}
.zip-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); gap:8px}
.zip{background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r); padding:8px 4px; text-align:center; font-family:var(--font-display); font-weight:700; font-size:.95rem; color:var(--pine); font-variant-numeric:tabular-nums}
.zip-note{font-size:.88rem; color:var(--ink-2); margin:14px 0 0}
.nbhd-groups{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px 24px; margin:0}
.nbhd-group h3{font-size:1.02rem; margin:0 0 .5em; color:var(--pine)}
.nbhd-group .chips{gap:8px}
.nbhd-group .chip{background:var(--surface); font-size:.82rem; padding:5px 11px; font-weight:600}

/* ---------- Service Area page: town cards ---------- */
.towns-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px}
.town-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; box-shadow:var(--shadow); min-width:0}
.town-card__head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:.5em}
.town-card__head h3{font-size:1.18rem; margin:0; color:var(--ink)}
.town-card__zip{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-weight:700; font-size:.82rem; color:var(--pine); font-variant-numeric:tabular-nums; white-space:nowrap}
.town-card__zip svg{width:14px; height:14px; fill:var(--clay); flex:0 0 auto}
.town-card p{margin:0; color:var(--ink-2); font-size:.98rem; line-height:1.6}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1040px){
  .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .why-grid,.svc-why__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:900px){
  /* nav becomes mobile overlay */
  .nav-toggle{display:inline-flex}
  .header__phone{display:none}
  .header__cta .btn--sm{display:none}
  .nav{position:fixed; inset:0; top:0; margin:0; z-index:90; background:var(--surface);
    flex-direction:column; align-items:stretch; gap:0; padding:84px 22px 40px;
    overflow-y:auto; transform:translateX(100%); transition:transform .25s ease; visibility:hidden}
  body.is-menu{overflow:hidden}
  body.is-menu .nav{transform:translateX(0); visibility:visible}
  body.is-menu .site-header{z-index:100}
  /* keep the logo + close (X) button above the full-screen overlay so it stays visible + tappable */
  body.is-menu .brand,
  body.is-menu .header__cta{position:relative; z-index:95}
  .nav__link,.drop__toggle{width:100%; font-size:1.24rem; padding:14px 6px; border-bottom:1px solid var(--line); border-radius:0; justify-content:space-between}
  .nav__link::after,.drop__toggle::after{display:none}
  .drop{width:100%}
  .drop__menu{position:static; display:none; box-shadow:none; border:0; border-bottom:1px solid var(--line); border-radius:0; min-width:0; max-height:none; overflow:visible; padding:2px 0 12px 6px; background:transparent}
  .drop.is-open .drop__menu{display:flex}
  .drop__menu a{font-size:1.05rem; padding:11px 8px}
  .caret{transform:rotate(45deg)}
  .drop.is-open .caret{transform:rotate(-135deg) translateY(2px)}
  .callbar{display:block}
  body{padding-bottom:56px}

  .hero .wrap{grid-template-columns:1fr; padding-top:34px; padding-bottom:34px}
  .hero__media::after{background:linear-gradient(180deg,rgba(15,74,65,.62) 0%,rgba(15,74,65,.86) 60%)}
  .split{grid-template-columns:1fr; gap:28px}
  .split__media{order:-1}
  .dispatch .wrap,.closing .wrap,.dispatch-panel .wrap{grid-template-columns:1fr; gap:24px}
  .faq2{grid-template-columns:1fr}
  .faq-callcard{position:static}
  .svc-actionbar .wrap{grid-template-columns:1fr; gap:22px; padding-top:30px; padding-bottom:30px}
  .svc-actionbar__inset{order:-1}
  .svc-hero .wrap{grid-template-columns:1fr; gap:24px; padding-top:30px; padding-bottom:30px}
  .svc-hero__media{order:-1}
  .pflow{grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px}
  .pflow::before{display:none}
  .coverage{grid-template-columns:1fr; gap:22px}
  .ataglance{grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
  .hooks{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .price-grid{grid-template-columns:1fr}
  .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:560px){
  body{font-size:1.05rem}
  .topbar__l{display:none}
  .topbar__in{justify-content:center}
  .why-grid,.svc-why__grid,.stats,.svc-grid,.area-grid{grid-template-columns:1fr}
  .pflow{grid-template-columns:1fr; gap:14px}
  .pstep{flex-direction:row; text-align:left; gap:14px; align-items:flex-start}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .callcard{flex-direction:column; align-items:flex-start}
  .callcard .btn{width:100%}
  .foot-grid{grid-template-columns:1fr}
  .foot-bottom{flex-direction:column; gap:4px}
  .hero__card{padding:24px 22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important; scroll-behavior:auto!important}}

/* self-hosted fonts (was Google Fonts; latin) */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/barlow-condensed-500.woff2?v=24f826a7) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-condensed-600.woff2?v=ba451349) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700.woff2?v=e1180918) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/barlow-condensed-800.woff2?v=b1b7dd5d) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/source-sans-3.woff2?v=30164609) format('woff2')}
/* Buttons inside .prose/.svc-prose: the prose link color (--pine-link) outranks the base
   .btn color and would paint a SOLID clay button pine-on-clay (~1.7:1, the owner-caught
   near-invisible call button). Restore per-ground button text: solid clay/pine -> white;
   light-ground variants (ghost / cream / callcard) -> dark. Order matters (light line last). */
.prose a.btn,.svc-prose a.btn{color:#fff}
.prose a.btn--ghost,.svc-prose a.btn--ghost,.prose a.btn--cream,.svc-prose a.btn--cream,.prose .callcard a.btn,.svc-prose .callcard a.btn{color:var(--clay-deep)}

/* ============================================================ COPY POLICY V2 additions */
/* honest attribute badges (How the dry-out works section) */
.attr-badges{display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-bottom:22px}
.attr-badge{display:flex; align-items:center; justify-content:center; text-align:center; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--clay); border-radius:var(--r-lg); padding:16px 22px; box-shadow:var(--shadow); max-width:230px}
.attr-badge span{font-family:var(--font-display); font-size:1rem; color:var(--ink); font-weight:700; line-height:1.3}
.insure-note{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; box-shadow:var(--shadow); max-width:720px; margin:0 auto; text-align:center}
.insure-note h3{margin:0 0 8px; color:var(--pine-deep)}
.insure-note p{margin:0; color:var(--ink-2)}

/* compact one-line strips (equipment, first-steps) */
.gear-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px}
.gear-list li{display:flex; align-items:flex-start; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:15px 16px; font-size:.97rem; color:var(--ink-2); line-height:1.45}
.gear-list li svg{width:22px; height:22px; fill:var(--clay); flex:0 0 auto; margin-top:1px}
@media (max-width:820px){.gear-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.gear-list{grid-template-columns:1fr}}

/* water categories (reuses .price-card + .price-grid, adds a per-card accent) */
.wcat-intro{text-align:center; max-width:64ch; margin:0 auto 24px; color:var(--ink-2)}
.wcat-grid{margin-bottom:0}
.wcat-card{display:flex; flex-direction:column}
.wcat-card h3{margin:0 0 8px}
.wcat-card p{color:var(--ink-2); font-size:.96rem; margin:0}
.wcat-card__link{margin-top:14px; font-family:var(--font-display); font-weight:700; color:var(--clay-deep); text-decoration:none; font-size:.95rem}
.wcat-card__link:hover{text-decoration:underline}
.wcat--clean::before{background:#2E6FB0}
.wcat--clean h3{color:#1E4E80}
.wcat--gray::before{background:var(--clay-bright)}
.wcat--gray h3{color:var(--clay-deep)}
.wcat--black::before{background:#4A3226}
.wcat--black h3{color:#4A3226}

/* Legibility: content paragraphs and list items at 16px minimum (owner legibility
   rule; brings this site to the same 0-FAIL bar as the approved orem-ut model). */
.svc-card__body p,.why-card p,.hook p,.faq-callcard p,.svc-why__card p,.related-card p,
.pstep p,.town-card p,.wcat-card p,.price-card li,.gear-list li,.zip-note,
.foot-brand p,.foot-contact,.tool-note{font-size:1rem}

/* Roslindale: shared V2 templates in the donor's clay, pine and cream system. */
.brand__name{font-family:var(--font-display);font-size:clamp(1.05rem,1.45vw,1.4rem);white-space:nowrap;line-height:1.15}
.brand__words{min-width:0}.header__in{gap:16px}.header__phone{flex-direction:row;align-items:center;gap:7px;white-space:nowrap}
.nav__link,.drop__toggle{padding:10px 8px}.drop__menu{max-height:min(72vh,560px);overflow-y:auto;overscroll-behavior:contain}
.btn svg,a[href^="tel:"] svg{width:1.1em;height:1.1em;flex:0 0 auto}.btn__stack{display:flex;flex-direction:column;gap:4px}.btn--call{background:var(--clay-deep);color:var(--cream)}
.btn--call:hover{background:var(--pine-deep);color:var(--cream)}.gsearch{display:inline-flex;align-items:center;gap:7px;text-decoration:underline;text-underline-offset:3px}.gsearch svg{width:18px;height:18px}
.foot-name{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--cream)}.foot-email{overflow-wrap:anywhere}.foot-list{list-style:none;padding:0;margin:0}.foot-list li{margin:8px 0}.foot-map{margin:32px 0 24px;border-radius:var(--r-lg);overflow:hidden}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:1rem;margin-bottom:20px}.crumbs svg{width:14px;height:14px}.crumbs a{color:inherit;text-decoration:underline}
.svc-hero__copy{min-width:0}.hero-img{display:block;max-width:100%;object-fit:cover}.hero__note{font-size:1rem;line-height:1.6;margin-top:18px;color:var(--ink-2)}
.hero--page{background:var(--band-pine);color:var(--ink)}.hero--page .wrap{display:block;padding-top:46px;padding-bottom:46px}.hero--page .hero__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:center}
.hero--page .hero__grid--solo{grid-template-columns:1fr}.hero__copy{min-width:0}.hero__lead{max-width:65ch;font-size:1.15rem;line-height:1.65}.hero--page .hero__media{position:relative;inset:auto;max-width:480px}.hero--page .hero__media::after{display:none}.hero--page .hero__media img{height:auto;max-height:380px;border-radius:var(--r-lg)}
.hero--legal{background:var(--band-clay)}.hero--legal h1{max-width:24ch}.porthole{margin:0;border-radius:var(--r-lg);overflow:hidden}.narrow{max-width:760px;margin-inline:auto}.prose p,.legal p{max-width:68ch;line-height:1.7}.legal h2{margin-top:30px}
.tiles{display:grid;gap:22px}.tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles--4{grid-template-columns:repeat(4,minmax(0,1fr))}.tile{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}.tile h2,.tile h3{margin-top:0}.tile__ic{display:inline-flex;width:36px;height:36px;color:var(--clay-deep);margin-bottom:12px}.tile__ic svg{width:30px;height:30px}
.band--sand{background:var(--band-clay)}.section-intro{max-width:70ch;margin:0 auto 28px;font-size:1.1rem;line-height:1.65}.price__amt{font-family:var(--font-display);font-size:1.9rem;font-weight:700;color:var(--clay-deep)}.big{font-variant-numeric:tabular-nums}.cost-note{max-width:74ch;margin:24px auto 0;line-height:1.65}
.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.svc-card{display:flex;flex-direction:column;min-width:0}.svc-card img{width:100%;height:205px;object-fit:cover}.svc-card__body{display:block;padding:22px}.svc-card__body p{font-size:1.05rem;line-height:1.6;color:var(--ink-2)}
.split img{max-height:360px;object-fit:cover;border-radius:var(--r-lg);width:100%}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery figure{margin:0}.gallery img{width:100%;height:220px;object-fit:cover;border-radius:var(--r-lg)}
#first-steps .gear-list{grid-template-columns:repeat(5,minmax(0,1fr))}#first-steps .gear-list li{display:block}#equipment .gear-list{grid-template-columns:repeat(3,minmax(0,1fr))}.hooks{list-style:none;padding:0;display:grid;gap:16px}.hooks li{padding-bottom:12px;border-bottom:1px solid var(--line)}.hooks h3{margin:0 0 6px}.hooks p{margin:0}
.chipset{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 20px}.tag{display:inline-block;padding:7px 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);font-size:1rem;line-height:1.4}.tag--zip{font-variant-numeric:tabular-nums}.coverage__note{min-width:0}.coverage__note h3{margin-top:20px}
.faq2__a{padding:0 20px 18px;color:var(--ink);font-size:1.0625rem;line-height:1.7}.faq-item{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.faq-item summary{padding:18px 20px;cursor:pointer;font-weight:650}.faq-item[open] summary{color:var(--pine-deep)}
.related-grid,.rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.rel-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.related-card{min-width:0}.related-card p{font-size:1.0625rem;line-height:1.6}.area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.area-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px}.sitemap-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.sitemap-cols a{overflow-wrap:anywhere}
.tool{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}.tool__form{min-width:0;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.tool__out{padding:28px;background:var(--band-pine);border:1px solid var(--line-strong);border-radius:var(--r-lg)}.tool__result{font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--pine-deep);line-height:1.2}.tool__note{font-size:1.0625rem;line-height:1.65}.field{margin-bottom:22px}.field label{display:block;font-weight:650;margin-bottom:7px}.field select{display:block;width:100%;max-width:100%;min-height:48px;padding:10px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r);font:inherit;color:var(--ink)}.checks{display:grid;gap:16px}.checks label{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid var(--line);line-height:1.6}.checks input{margin-top:6px;flex:0 0 auto;width:20px;height:20px;accent-color:var(--pine)}.checks__h{font-weight:700}
.post-wrap{max-width:728px;margin-inline:auto;padding-inline:24px}.post-hero{background:var(--band-pine)}.post-meta{color:var(--ink-2);font-size:1rem;line-height:1.6}.post-body{background:var(--bg)}.article{max-width:680px;margin-inline:auto;min-width:0}.article p,.article li{font-size:1.125rem;line-height:1.75;color:var(--ink)}.art-lede{font-size:1.25rem!important}.art-sec{margin:38px 0}.art-sec h2{margin:0 0 16px;scroll-margin-top:100px}.art-sec h3{margin-top:26px}.art-fig{margin:32px 0}.art-fig img{width:100%;height:auto;max-height:400px;object-fit:cover;border-radius:var(--r-lg)}.art-fig--lead{margin-top:0}.art-call{background:var(--pine-deep);border-radius:var(--r-lg);padding:28px;margin:36px 0;color:var(--cream)}.art-call p{color:var(--cream)}.art-call__h{font-family:var(--font-display);font-size:1.65rem!important;font-weight:700}.art-faq h3{color:var(--pine-deep)}.takeaways{padding:24px;background:var(--band-clay);border-left:5px solid var(--clay);border-radius:var(--r);margin:28px 0}.takeaways ul{padding:0;list-style:none}.takeaways li{display:flex;gap:12px;margin:12px 0}.takeaways svg{width:20px;height:20px;flex:0 0 auto;color:var(--pine);margin-top:6px}.toc{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.toc__h{font-weight:700}.toc a{color:var(--pine-link);text-decoration:underline}.related-pages{padding-top:26px;border-top:2px solid var(--line-strong)}.post-list{list-style:none;padding:0;display:grid;gap:24px}.post-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.post-card h2 a{color:var(--pine-link)}
.band--dark h2,.band--dark h3,.dispatch-panel h2,.dispatch-panel .eyebrow{color:var(--cream)}.band--dark p,.dispatch-panel p{color:var(--cream)}.band--dark .btn--cream,.dispatch-panel .btn--cream{color:var(--pine-deep)}.nap__row{overflow-wrap:anywhere}.callbar a{white-space:nowrap;font-size:1rem}
@media(min-width:1025px){.nav{display:flex}.brand{flex-shrink:0}.brand__mark{width:38px;height:38px;flex:0 0 38px}}
@media(max-width:1024px){.header__in{min-height:72px;justify-content:space-between}.brand__name{font-size:1.2rem}.nav-toggle{display:flex;position:relative;z-index:110}.nav{display:none;position:fixed;inset:0;padding:90px 24px 30px;background:var(--surface);overflow:auto;transform:none;visibility:visible}.header__phone{display:none}body.is-menu .nav{display:flex;flex-direction:column;align-items:stretch;gap:8px}.nav__link,.drop__toggle{font-size:1.25rem;min-height:48px;width:100%}.drop__menu{position:static;display:none;transform:none;visibility:visible;opacity:1;max-height:45vh}.drop.is-open .drop__menu{display:block}.svc-grid,.area-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#first-steps .gear-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.hero--page .hero__grid{grid-template-columns:1fr}.hero__copy{order:0}.hero--page .hero__media{order:1}.hero:not(.hero--page){display:flex;flex-direction:column}.hero:not(.hero--page)>.wrap{order:0;width:100%}.hero:not(.hero--page)>.hero__media{position:relative;order:1;height:240px}.hero:not(.hero--page)>.hero__media::after{display:none}.hero:not(.hero--page)>.hero__media img{height:240px}.hero--page .wrap{padding-block:32px}.svc-grid,.tiles--3,.tiles--4,.area-grid,.related-grid,.rel-grid,.rel-grid--2,.sitemap-cols,.tool{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery img{height:180px}.svc-card img{height:220px}#first-steps .gear-list,#equipment .gear-list{grid-template-columns:1fr}.brand__name{font-size:1.05rem}.brand__mark{width:32px;height:32px;flex:0 0 32px}.header__in{gap:8px}.nav-toggle{width:44px;flex:0 0 44px}.post-wrap{padding-inline:20px}.art-call{padding:22px}.callbar{z-index:80}.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.brand__name{font-size:.93rem}.brand{gap:6px}.brand__mark{width:28px;height:28px;flex-basis:28px}.header__in{gap:4px}.foot-grid{grid-template-columns:1fr}.hero__card{padding:22px 18px}}

/* Readable donor pine footer and closing-band accents. */
.site-footer h3{color:#fff;font-size:1.08rem;margin:0 0 12px}.site-footer a{color:#cfe0da;text-decoration:none}.site-footer a:hover{color:#fff;text-decoration:underline}.site-footer .foot-brand a{color:#fff}.closing .eyebrow{color:#f7b491}
.art-list{margin:20px 0 28px;padding-left:24px;color:var(--ink);line-height:1.75}.art-list li{margin:10px 0;padding-left:4px}.art-list li::marker{color:var(--clay)}

/* Audit 28, round 1: donor components shared by all page families. */
.attr-badges ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.attr-badges li{display:flex;align-items:flex-start;gap:10px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--clay);border-radius:var(--r-lg);color:var(--ink);line-height:1.5}
.attr-badges svg{width:1.1em;height:1.1em;flex:0 0 auto;color:var(--pine);margin-top:3px}
#insurance .attr-badges ul{display:grid;max-width:720px;width:100%;gap:10px}
#insurance .attr-badges li{border-top:1px solid var(--line);border-left:3px solid var(--pine)}
.ataglance__item b{display:block;font-family:var(--font-display);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--clay-deep);margin-bottom:4px}
.ataglance__item span{display:block;color:var(--ink);font-weight:500;font-size:1rem;line-height:1.5}
#process .pflow{grid-template-columns:1fr;gap:22px}
#process .pflow::before{display:none}
#process .pstep{flex-direction:row;align-items:flex-start;text-align:left;gap:20px;padding:0}
#process .pstep__n{width:40px;height:40px;box-shadow:none}
#process .pstep h3{font-size:1.2rem;margin:0 0 6px}
#process .split{align-items:start}
#process figure{margin-top:8px}
.split .hooks{grid-template-columns:1fr;margin-top:0}
#local-risk .split{align-items:start}
#local-risk .hooks h3{font-size:1.2rem}
.btn__num{display:block;white-space:nowrap;line-height:1.2}
.btn__sub{display:block;white-space:normal;line-height:1.35}
.btn__stack{min-width:0;text-align:center}
.napblock{gap:12px 28px;justify-content:space-between;text-align:left;border:0;border-block:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:24px 0}
.napblock__row{flex-wrap:wrap;min-width:0;font-weight:400}
.napblock__contact{font-weight:700;color:var(--pine-link);text-underline-offset:3px}
.foot-map{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 0;padding:20px 0;border-radius:0;border-block:1px solid rgba(255,255,255,.2);font-size:1rem}
.foot-map a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.post-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0}
.post-card{padding:0;overflow:hidden;border-top:4px solid var(--clay);box-shadow:var(--shadow);display:flex}
.post-card:nth-child(even){border-top-color:var(--pine)}
.post-card__link{display:flex;flex-direction:column;width:100%;text-decoration:none;color:var(--ink)}
.post-card__link:hover h2{text-decoration:underline;text-underline-offset:4px}
.post-card__link>img{display:block;width:100%;height:205px;object-fit:cover}
.post-card__body{padding:22px}
.post-card h2{font-size:1.5rem;line-height:1.2;margin:8px 0 12px;color:var(--pine-deep)}
.post-card p{font-size:1.0625rem;line-height:1.6;margin:0;color:var(--ink-2)}
.post-card .post-meta{font-size:.95rem;margin-bottom:8px}
@media(min-width:601px) and (max-width:1040px){
  .svc-grid,.related-grid,.rel-grid,.area-grid,.post-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .svc-grid,.related-grid,.rel-grid,.post-list,.area-grid{grid-template-columns:1fr}
  .svc-card img,.post-card__link>img{height:180px}
  .svc-card__body,.post-card__body{padding:20px}
  .attr-badges ul,.attr-badges li{width:100%}
  .napblock{align-items:flex-start;gap:12px;flex-direction:column}
  .napblock__row{gap:6px;font-size:1rem}
  .foot-map{align-items:flex-start;flex-direction:column}
  #process .pstep{gap:16px}
}
/* Photo cards retain the donor's related-card affordance and spacing. */
.svc-card.related-card{padding:0;gap:0;overflow:hidden}
.svc-card.related-card .go{display:block;margin-top:16px}
