/* ==========================================================================
   Genesis Water Restoration - Brooklyn, NY
   Tidewater design system (deep teal #0C3B37 + amber #F59E0B + porcelain #F3F6F5)
   Bricolage Grotesque (display) + Public Sans (body). Emergency-dispatch layout.
   Built fresh for Brooklyn - shares NO structure with the OKC build.

   MAIN COMPONENT CLASSES
   ----------------------
   Shell / utilities:  .wrap  .section  .section--fog  .section--teal
                       .sec-head .sec-head--center .sec-head__idx .node .sec-head__body
                       .eyebrow .dot-live .btn .btn--call .btn--ghost .btn--lg .btn__sub
                       .skip-link .mono .stars .pill
   Chrome:             .ribbon .ribbon__item  .site-header .brand .brand__name
                       .nav .drop .drop__menu .nav-toggle .header-cta .header-phone
                       .callbar
   Hero:               .hero .hero__media .hero__img .hero__scrim .hero__wrap
                       .dispatch-card .dispatch-card__eyebrow .hero-call .hero-note
                       .trust-row .trust-chip .rating-chip .hero__wave
   Overlap stats:      .stats-overlap .stat .stat__num .stat__label
   Emergency strip:    .emergency-strip .estrip__head .esteps .estep .estep__num
   Reviews (high):     .proof .proof__aggregate .agg-score .agg-stars .agg-note
                       .review-rail .review-card .review-card__head .review-card__meta
   Local authority:    .local .local__lead .risk-grid .risk-card .risk-card__icon .auth-links
   Services clusters:  .services .cluster .cluster__label .svc-grid
                       .svc-card .svc-card--featured .svc-card__media .svc-card__body .svc-card__cta
   Process timeline:   .process .ptimeline .pstep .pstep__num .pstep__body
   Gallery filmstrip:  .filmstrip .film .film__cap
                       .case-lead .case-grid .case-card .case-card__body .case-card__facts
   Why-us + creds:     .whyus .promise .promise__item .creds .cred-badges .cred-badge .license-line
   Coverage split:     .coverage .coverage__map .locator .coverage__body
                       .nbhd-groups .nbhd-group .chips .chip .zip-block .zip-grid .zip
   Cost + insurance:   .cost .range-cards .range-card .range-card--featured .range-card__price
                       .insure .carrier-wall .carrier
   FAQ (2-col):        .faq2 .faq2__cols .faq2__col .faq-item .faq-callcard
   Closing dispatch:   .dispatch-panel .dispatch-panel__nap .nap
   Map + footer:       .map-embed .site-footer .foot-grid .foot-list .foot-bottom
                       .gbp-badge .social .disclaimer-note
   Service page:       .svc-actionbar .bc .svc-actionbar__inset .ataglance .aag
                       .svc-article .callcard .bk-callout .related-grid .related-card
   About page:         .about-hero .story-split .stat-cluster .stat-cluster__item
                       .values-grid .value-card
   Contact page:       .contact-hero .call-panel .nap-block .tell-us
   Tools:              .tool .tool__grid .optgroup .optgroup__legend .opt
                       .tool__result .result-readout .result__value .tool-note
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --teal:#0C3B37;
  --teal-800:#0a322f;
  --teal-700:#0f4640;
  --teal-600:#155e56;
  --teal-500:#1c766c;
  --teal-tint:#e7efed;
  --amber:#F59E0B;
  --amber-600:#d98704;
  --amber-700:#b06f05;
  --amber-ink:#0C3B37;      /* dark text on amber, ~7.6:1 */
  --signal:#F59E0B;         /* accent for in-body testimonial rule */
  --porcelain:#F3F6F5;
  --porcelain-2:#eaf0ee;
  --white:#ffffff;
  --ink:#16241f;            /* body text on light, high contrast */
  --ink-soft:#43524e;       /* secondary text, ~8:1 on white */
  --ink-onteal:#eaf3f0;     /* body text on teal */
  --ink-onteal-soft:#b7cfca;/* secondary on teal */
  --line:#dce4e1;
  --line-soft:#e6ecea;
  --star:#F59E0B;
  --shadow-sm:0 1px 2px rgba(12,59,55,.05), 0 2px 6px rgba(12,59,55,.06);
  --shadow-md:0 8px 24px rgba(12,59,55,.10);
  --shadow-lg:0 22px 55px rgba(12,59,55,.20);
  --radius:16px;
  --radius-sm:10px;
  --radius-lg:26px;
  --wrap:1180px;
  --font-display:"Bricolage Grotesque","Public Sans",system-ui,sans-serif;
  --font-body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17.5px;
  line-height:1.7;
  color:var(--ink);
  background:var(--porcelain);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:var(--teal-600);text-underline-offset:2px}
a:hover{color:var(--teal)}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;color:var(--teal);margin:0 0 .5em;letter-spacing:-.01em;font-weight:700}
h1{font-size:clamp(2.05rem,5vw,3.2rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
h3{font-size:1.22rem}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem;padding-left:1.2em}
strong,b{font-weight:700}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px}
.mono{font-variant-numeric:tabular-nums;font-family:var(--font-body)}

/* ---------- Shell / utilities ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 22px}
.section{padding:74px 0}
.section--fog{background:var(--porcelain)}
.section--white{background:var(--white)}
.section--teal{background:var(--teal);color:var(--ink-onteal)}
.section--teal h2,.section--teal h3{color:var(--white)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--teal);
  padding:12px 18px;font-weight:700;border-radius:0 0 10px 0;z-index:200}
.skip-link:focus{left:0}

.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);
  font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-700)}
.section--teal .eyebrow,.dispatch-card__eyebrow{color:var(--amber)}
.dot-live{width:9px;height:9px;border-radius:50%;background:var(--amber);
  box-shadow:0 0 0 0 rgba(245,158,11,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(245,158,11,.55)}70%{box-shadow:0 0 0 10px rgba(245,158,11,0)}100%{box-shadow:0 0 0 0 rgba(245,158,11,0)}}
@media (prefers-reduced-motion:reduce){.dot-live{animation:none}html{scroll-behavior:auto}}

.sec-head{margin-bottom:38px;max-width:760px}
.sec-head--center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head__idx{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--amber-700);margin-bottom:12px}
.section--teal .sec-head__idx{color:var(--amber)}
.sec-head__idx .node{width:22px;height:2px;background:var(--amber);display:inline-block;border-radius:2px}
.sec-head__body p{color:var(--ink-soft);font-size:1.08rem;margin-top:6px}
.section--teal .sec-head__body p{color:var(--ink-onteal-soft)}

.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;
  font-size:.82rem;font-weight:700;background:var(--teal-tint);color:var(--teal);white-space:nowrap}

.stars{--pct:100%;display:inline-block;font-size:1rem;line-height:1;letter-spacing:2px;
  background:linear-gradient(90deg,var(--star) var(--pct),#c9d5d1 var(--pct));
  -webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--font-body)}
.stars::before{content:"\2605\2605\2605\2605\2605"}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-body);font-weight:700;font-size:1rem;line-height:1.1;
  padding:15px 24px;border-radius:12px;border:2px solid transparent;cursor:pointer;
  text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
  text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn--call{background:var(--amber);color:var(--amber-ink);box-shadow:0 8px 22px rgba(245,158,11,.34)}
.btn--call:hover{background:var(--amber-600);color:var(--amber-ink)}
.btn--ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.5)}
.btn--ghost:hover{background:rgba(255,255,255,.1);color:var(--white)}
.btn--teal{background:var(--teal);color:var(--white)}
.btn--teal:hover{background:var(--teal-700);color:var(--white)}
.btn--lg{font-size:1.18rem;padding:18px 30px;border-radius:14px;flex-direction:column;gap:3px}
.btn__sub{display:block;font-size:.76rem;font-weight:600;letter-spacing:.02em;opacity:.85}

/* ---------- Ribbon (credibility bar above header) ---------- */
.ribbon{background:var(--teal-800);color:var(--ink-onteal);font-size:.83rem}
.ribbon .wrap{display:flex;align-items:center;justify-content:center;gap:10px 22px;
  flex-wrap:wrap;padding-top:8px;padding-bottom:8px;text-align:center}
.ribbon__item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-weight:600}
.ribbon__item b{color:var(--white);font-weight:700}
.ribbon__item svg{width:14px;height:14px;flex:none;fill:var(--amber)}
.ribbon a{color:var(--amber);font-weight:800;text-decoration:none}
.ribbon a:hover{text-decoration:underline}
.ribbon__sep{opacity:.35}
@media(max-width:640px){
  .ribbon{font-size:.74rem}
  .ribbon .wrap{gap:5px 12px;padding-top:6px;padding-bottom:6px}
  /* one clean line on mobile: keep 24/7 + call, drop city / on-site / license (all repeated in the hero) */
  .ribbon__item:nth-child(3),.ribbon__item:nth-child(5),.ribbon__item:nth-child(7),
  .ribbon__sep:nth-child(4),.ribbon__sep:nth-child(6),.ribbon__sep:nth-child(8){display:none}
}

/* ---------- Sticky header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);
  backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}
.site-header .wrap{display:flex;align-items:center;gap:20px;min-height:72px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand svg{display:block}
.brand__name{font-family:var(--font-display);font-weight:800;font-size:1.16rem;color:var(--teal);
  line-height:1.05;display:flex;flex-direction:column}
.brand__name span{font-family:var(--font-body);font-weight:600;font-size:.68rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft)}

.nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.nav > a,.drop > a{display:inline-flex;align-items:center;gap:5px;text-decoration:none;color:var(--teal);
  font-weight:600;padding:10px 13px;border-radius:9px;font-size:.98rem}
.nav > a:hover,.drop > a:hover{background:var(--porcelain-2);color:var(--teal)}
.drop{position:relative}
.drop > a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65}
.drop__menu{position:absolute;top:calc(100% + 6px);left:0;min-width:270px;background:var(--white);
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;
  display:none;flex-direction:column;gap:2px;z-index:70}
.drop:hover .drop__menu,.drop:focus-within .drop__menu{display:flex}
/* transparent bridge over the 6px gap so moving the cursor to the menu doesn't close it */
.drop__menu::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.drop__menu a{text-decoration:none;color:var(--teal);font-weight:600;font-size:.94rem;
  padding:10px 12px;border-radius:9px}
.drop__menu a:hover{background:var(--porcelain-2)}

.header-cta{display:flex;align-items:center;gap:12px;flex:none}
.header-phone{display:flex;flex-direction:column;text-decoration:none;color:var(--teal);
  font-family:var(--font-display);font-weight:800;font-size:1.12rem;line-height:1;text-align:right}
.header-phone small{font-family:var(--font-body);font-weight:600;font-size:.66rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:3px}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:42px;
  border:1px solid var(--line);border-radius:10px;background:var(--white);cursor:pointer;padding:0 11px}
.nav-toggle span{height:2.5px;background:var(--teal);border-radius:2px;display:block;transition:.2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- HERO: dispatch card over full-bleed flood photo ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--teal)}
.hero__media{position:absolute;inset:0;z-index:1}
.hero__img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero__scrim{position:absolute;inset:0;z-index:2;
  background:linear-gradient(90deg,rgba(9,42,38,.95) 0%,rgba(10,45,41,.78) 38%,rgba(12,59,55,.35) 66%,rgba(12,59,55,.08) 100%),
             linear-gradient(180deg,rgba(9,42,38,.45) 0%,rgba(9,42,38,0) 30%,rgba(9,42,38,.35) 100%)}
.hero__wrap{position:relative;z-index:3;display:flex;padding-top:66px;padding-bottom:118px}
.dispatch-card{width:min(100%,540px);background:rgba(9,42,38,.80);
  border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(7px);
  border-radius:var(--radius-lg);padding:32px 32px 30px;box-shadow:var(--shadow-lg);color:var(--white)}
.dispatch-card__eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.78rem;
  letter-spacing:.13em;text-transform:uppercase;margin-bottom:14px}
.dispatch-card h1{color:var(--white);margin-bottom:12px}
.dispatch-card > p{color:var(--ink-onteal);font-size:1.1rem;margin-bottom:22px;max-width:44ch}
.hero-call{width:100%;margin-bottom:12px}
.hero-call .btn__num{font-size:1.5rem;font-weight:800;font-family:var(--font-display);letter-spacing:.01em}
.hero-note{display:flex;align-items:center;gap:8px;color:var(--ink-onteal-soft);font-size:.92rem;
  font-weight:600;margin-bottom:20px}
.hero-note svg{width:16px;height:16px;fill:var(--amber);flex:none}
.trust-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.trust-chip{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;
  color:var(--white);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);
  padding:7px 12px;border-radius:999px}
.trust-chip svg{width:14px;height:14px;fill:var(--amber)}
.rating-chip{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;color:var(--white);
  background:rgba(245,158,11,.16);border:1px solid rgba(245,158,11,.4);padding:7px 12px;border-radius:999px}
.rating-chip b{font-family:var(--font-display);font-size:.95rem}

/* wavy mask that breaks the hero bottom into the page */
.hero__wave{position:absolute;left:0;right:0;bottom:-1px;z-index:3;line-height:0;pointer-events:none}
.hero__wave svg{display:block;width:100%;height:70px}

/* ---------- Overlapping stats bar (breaks hero/section boundary) ---------- */
.stats-wrap{background:var(--porcelain);padding-bottom:36px}
.stats-overlap{position:relative;z-index:6;max-width:1080px;margin:-62px auto 0;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:24px 22px;text-align:center;border-right:1px solid var(--line-soft)}
.stat:last-child{border-right:0}
.stat__num{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,2.5vw,2.2rem);
  color:var(--teal);line-height:1;letter-spacing:-.02em}
.stat__num span{color:var(--amber-700)}
.stat__label{display:block;margin-top:8px;font-size:.86rem;font-weight:600;color:var(--ink-soft);line-height:1.3}

/* ---------- Emergency action strip (NEW type) ---------- */
.emergency-strip{background:var(--teal);color:var(--ink-onteal);position:relative}
.estrip__head{max-width:720px;margin-bottom:30px}
.estrip__head h2{color:var(--white)}
.estrip__head p{color:var(--ink-onteal-soft);font-size:1.06rem;margin:0}
.esteps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch;margin-bottom:30px}
.estep{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);
  padding:24px 22px}
.estep__num{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:12px;background:var(--amber);color:var(--amber-ink);font-family:var(--font-display);
  font-weight:800;font-size:1.3rem;margin-bottom:14px}
.estep h3{color:var(--white);margin-bottom:6px;font-size:1.12rem}
.estep p{color:var(--ink-onteal-soft);margin:0;font-size:.98rem}
.estrip__cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.estrip__cta .note{color:var(--ink-onteal-soft);font-weight:600;font-size:.95rem}

/* ---------- Proof / reviews pulled HIGH ---------- */
.proof{display:grid;grid-template-columns:320px 1fr;gap:34px;align-items:start}
.proof__aggregate{background:var(--teal);color:var(--white);border-radius:var(--radius-lg);
  padding:34px 30px;position:sticky;top:96px}
.agg-score{font-family:var(--font-display);font-weight:800;font-size:3.6rem;line-height:1;color:var(--white)}
.agg-score span{font-size:1.5rem;color:var(--ink-onteal-soft)}
.agg-stars{margin:10px 0 6px;font-size:1.3rem}
.proof__aggregate .agg-count{color:var(--ink-onteal);font-weight:700}
.agg-note{color:var(--ink-onteal-soft);font-size:.96rem;margin-top:16px;border-top:1px solid rgba(255,255,255,.14);padding-top:16px}
.review-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,340px);gap:18px;
  overflow-x:auto;padding:6px 4px 20px;scroll-snap-type:x mandatory;
  scrollbar-width:thin;scrollbar-color:var(--teal-500) var(--porcelain-2)}
.review-card{scroll-snap-align:start;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);padding:24px 22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.review-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.review-card .stars{font-size:1.05rem}
.review-card blockquote{margin:0 0 16px;font-size:1rem;color:var(--ink);line-height:1.6}
.review-card__meta{margin-top:auto;display:flex;align-items:center;gap:10px}
.review-card__meta .who{font-weight:800;color:var(--teal)}
.review-card__meta .where{font-size:.86rem;color:var(--ink-soft)}
.review-card__meta .date{margin-left:auto;font-size:.8rem;color:var(--ink-soft);font-weight:600}

/* ---------- Local authority + risk cards ---------- */
.local__lead{max-width:760px;margin-bottom:34px}
.local__lead p{font-size:1.12rem;color:var(--ink-soft)}
.risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}
.risk-card{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--amber);
  border-radius:var(--radius);padding:22px 22px;box-shadow:var(--shadow-sm)}
.risk-card__icon{width:44px;height:44px;border-radius:11px;background:var(--teal-tint);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.risk-card__icon svg{width:24px;height:24px;fill:var(--teal-600)}
.risk-card h3{font-size:1.08rem;margin-bottom:6px}
.risk-card p{margin:0;font-size:.96rem;color:var(--ink-soft)}
.auth-links{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
  border-top:1px solid var(--line);padding-top:22px}
.auth-links span{font-weight:700;color:var(--ink-soft);font-size:.9rem}
.auth-links a{font-weight:700;text-decoration:underline}

/* ---------- Services: three labeled clusters (still a grid) ---------- */
.cluster{margin-bottom:38px}
.cluster:last-child{margin-bottom:0}
.cluster__label{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.cluster__label h3{font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0;white-space:nowrap}
.cluster__label::after{content:"";height:1px;background:var(--line);flex:1}
.cluster__label .count{font-size:.8rem;font-weight:700;color:var(--amber-700);white-space:nowrap}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;
  transition:transform .14s ease,box-shadow .14s ease}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);color:inherit}
.svc-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--porcelain-2)}
.svc-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.svc-card:hover .svc-card__media img{transform:scale(1.05)}
.svc-card__body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.svc-card__body h4{font-family:var(--font-display);font-weight:700;font-size:1.16rem;color:var(--teal);margin:0 0 6px}
.svc-card__body p{margin:0 0 14px;font-size:.95rem;color:var(--ink-soft)}
.svc-card__cta{margin-top:auto;font-weight:800;color:var(--amber-700);font-size:.92rem;display:inline-flex;align-items:center;gap:7px}
.svc-card__cta::after{content:"\2192";transition:transform .15s ease}
.svc-card:hover .svc-card__cta::after{transform:translateX(4px)}
.svc-card--featured{grid-column:span 2;flex-direction:row}
.svc-card--featured .svc-card__media{aspect-ratio:auto;width:46%;flex:none}
.svc-card--featured .svc-card__body{padding:28px 30px;justify-content:center}
.svc-card--featured .svc-card__body h4{font-size:1.5rem}
.svc-card--featured .svc-card__body p{font-size:1.02rem}

/* ---------- Process timeline (NEW type) ---------- */
.ptimeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.pstep{position:relative;padding:0 16px;text-align:center}
.pstep::before{content:"";position:absolute;top:26px;left:50%;right:-50%;height:3px;
  background:repeating-linear-gradient(90deg,var(--teal-500) 0 10px,transparent 10px 18px)}
.pstep:last-child::before{display:none}
.pstep__num{position:relative;z-index:2;width:54px;height:54px;margin:0 auto 16px;border-radius:50%;
  background:var(--teal);color:var(--white);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:800;font-size:1.4rem;box-shadow:0 0 0 6px var(--porcelain)}
.pstep:nth-child(2) .pstep__num{background:var(--amber);color:var(--amber-ink)}
.pstep__body h3{font-size:1.04rem;margin-bottom:5px}
.pstep__body p{font-size:.92rem;color:var(--ink-soft);margin:0}
.section--white .pstep__num{box-shadow:0 0 0 6px var(--white)}

/* ---------- Gallery filmstrip ---------- */
.filmstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,300px);gap:16px;
  overflow-x:auto;padding:6px 4px 20px;scroll-snap-type:x mandatory;
  scrollbar-width:thin;scrollbar-color:var(--teal-500) var(--porcelain-2)}
.film{scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;background:var(--white);
  border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.film img{width:100%;aspect-ratio:4/3;object-fit:cover}
.film__cap{padding:12px 16px;font-size:.9rem;font-weight:600;color:var(--ink-soft)}

/* ---------- Recent work: featured case-study cards ---------- */
.case-lead{margin:36px 0 18px;font-size:1.08rem;font-weight:800;color:var(--teal-700)}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.case-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-sm)}
.case-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.case-card__body{padding:20px 22px}
.case-card__date{display:inline-block;font-size:.76rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--amber-700);margin-bottom:8px}
.case-card__body h3{font-size:1.05rem;margin:0 0 12px}
.case-card__facts{margin:0}
.case-card__facts div{padding:9px 0;border-top:1px solid var(--line-soft)}
.case-card__facts div:first-child{border-top:0;padding-top:0}
.case-card__facts dt{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal-600);margin:0 0 3px}
.case-card__facts dd{margin:0;font-size:.92rem;color:var(--ink-soft);line-height:1.5}

/* ---------- Why-us + credentials (fused) ---------- */
.whyus{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.promise{display:flex;flex-direction:column;gap:18px}
.promise__item{display:flex;gap:16px;align-items:flex-start}
.promise__item .mk{width:48px;height:48px;flex:none;border-radius:13px;background:var(--teal);
  display:flex;align-items:center;justify-content:center}
.promise__item .mk svg{width:26px;height:26px;fill:var(--amber)}
.promise__item h3{font-size:1.14rem;margin-bottom:4px}
.promise__item p{margin:0;color:var(--ink-soft);font-size:.98rem}
.creds{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:30px;box-shadow:var(--shadow-md)}
.creds > h3{font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
  margin-bottom:20px;font-family:var(--font-body);font-weight:800}
.cred-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:center;margin-bottom:22px}
.cred-badge{display:flex;align-items:center;justify-content:center;height:64px;padding:8px;
  background:var(--porcelain);border-radius:12px}
.cred-badge img{max-height:46px;width:auto;object-fit:contain}
.cred-badge .logo-txt{font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--teal);text-align:center;line-height:1.15}
.carrier .logo-txt{font-weight:700;font-size:.9rem;color:var(--ink-soft);text-align:center;line-height:1.2}
.license-line{border-top:1px solid var(--line);padding-top:18px;font-size:.95rem;color:var(--ink-soft)}
.license-line b{color:var(--teal)}

/* ---------- Coverage: map-anchored split ---------- */
.coverage{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px;align-items:start}
.coverage__map{position:sticky;top:96px}
.locator{width:100%;background:var(--teal);border-radius:var(--radius-lg);padding:26px;
  box-shadow:var(--shadow-md);color:var(--white)}
.locator svg{width:100%;height:auto;display:block;border-radius:14px;overflow:hidden}
.locator__cap{margin-top:16px}
.locator__cap b{color:var(--white);font-family:var(--font-display);font-size:1.05rem}
.locator__cap p{margin:4px 0 0;color:var(--ink-onteal-soft);font-size:.92rem}
.nbhd-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin-bottom:28px}
.nbhd-group h3{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-700);margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--white);
  border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--teal)}
.zip-block{border-top:1px solid var(--line);padding-top:22px}
.zip-block h3{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-700);margin-bottom:12px}
.zip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px}
.zip{text-align:center;padding:8px 4px;border-radius:9px;background:var(--porcelain-2);
  font-weight:700;font-size:.86rem;color:var(--teal);font-variant-numeric:tabular-nums}
.zip-note{margin-top:14px;font-size:.9rem;color:var(--ink-soft)}

/* ---------- Cost + insurance (fused) ---------- */
.cost{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.range-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.range-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 20px;box-shadow:var(--shadow-sm)}
.range-card h3{font-size:1.06rem;margin-bottom:4px}
.range-card__price{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--teal);margin:8px 0 12px}
.range-card ul{list-style:none;padding:0;margin:0 0 14px}
.range-card li{position:relative;padding-left:22px;font-size:.92rem;color:var(--ink-soft);margin-bottom:6px}
.range-card li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:10px;border-radius:50%;
  background:var(--teal-tint);border:2px solid var(--teal-500)}
.range-card .cover{font-size:.86rem;font-weight:700;color:var(--teal-600)}
.range-card--featured{border:2px solid var(--amber);box-shadow:var(--shadow-md);position:relative}
.range-card--featured::after{content:"Most jobs";position:absolute;top:-11px;left:20px;background:var(--amber);
  color:var(--amber-ink);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 10px;border-radius:999px}
.insure{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm)}
.insure h3{font-size:1.2rem;margin-bottom:8px}
.insure p{font-size:.98rem;color:var(--ink-soft)}
.carrier-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.carrier{height:52px;display:flex;align-items:center;justify-content:center;padding:8px;
  background:var(--porcelain);border-radius:10px}
.carrier img{max-height:30px;max-width:100%;width:auto;object-fit:contain;filter:grayscale(.2)}

/* ---------- FAQ: two-column accordion ---------- */
.faq2{display:grid;grid-template-columns:1fr 320px;gap:34px;align-items:start}
.faq2__cols{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);
  overflow:hidden;height:fit-content}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 46px 18px 20px;position:relative;
  font-weight:700;color:var(--teal);font-size:1.02rem;line-height:1.4}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";position:absolute;right:20px;top:50%;width:11px;height:11px;
  border-right:2.5px solid var(--amber-700);border-bottom:2.5px solid var(--amber-700);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-item summary:hover{background:var(--porcelain)}
.faq-item > div{padding:0 20px 20px;color:var(--ink-soft);font-size:.97rem}
.faq-item > div p:last-child{margin-bottom:0}
.faq-callcard{background:var(--teal);color:var(--white);border-radius:var(--radius);padding:28px 24px;
  position:sticky;top:96px;text-align:center}
.faq-callcard h3{color:var(--white);font-size:1.24rem;margin-bottom:8px}
.faq-callcard p{color:var(--ink-onteal-soft);font-size:.95rem;margin-bottom:18px}
.faq-callcard .big{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--white);margin-bottom:16px;display:block}

/* ---------- Closing dispatch panel (final CTA + NAP fused) ---------- */
.dispatch-panel{background:linear-gradient(135deg,var(--teal) 0%,var(--teal-800) 100%);color:var(--white);
  border-radius:0}
.dispatch-panel .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.dispatch-panel h2{color:var(--white);font-size:clamp(1.9rem,3.4vw,2.6rem)}
.dispatch-panel p{color:var(--ink-onteal);font-size:1.08rem}
.dispatch-panel__call .big{font-family:var(--font-display);font-weight:800;font-size:2.1rem;color:var(--white);
  display:block;margin-bottom:6px}
.dispatch-panel__nap{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius);padding:26px}
.nap{display:flex;flex-direction:column;gap:12px}
.nap .nap__name{font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--white)}
.nap .nap__row{display:flex;gap:11px;align-items:flex-start;color:var(--ink-onteal);font-size:.98rem}
.nap .nap__row svg{width:18px;height:18px;fill:var(--amber);flex:none;margin-top:2px}
.nap a{color:var(--white);font-weight:700}

/* ---------- Map + footer ---------- */
.map-embed{line-height:0;background:var(--porcelain-2);display:block}
.map-embed iframe{display:block}
.site-footer{background:var(--teal-800);color:var(--ink-onteal);padding:60px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px;padding-bottom:34px;
  border-bottom:1px solid rgba(255,255,255,.12)}
.site-footer .brand__name{color:var(--white)}
.site-footer .brand__name span{color:var(--ink-onteal-soft)}
.site-footer p{color:var(--ink-onteal-soft);font-size:.94rem}
.site-footer h3{color:var(--white);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  font-family:var(--font-body);font-weight:800;margin-bottom:14px}
.foot-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.foot-list a{color:var(--ink-onteal);text-decoration:none;font-size:.95rem}
.foot-list a:hover{color:var(--white);text-decoration:underline}
.site-footer a{color:var(--ink-onteal)}
.gbp-badge{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:9px 16px;
  border:1px solid rgba(255,255,255,.24);border-radius:999px;color:var(--white);
  font-weight:700;font-size:.88rem;text-decoration:none}
.gbp-badge svg{width:16px;height:16px;fill:var(--amber);flex:none}
.gbp-badge:hover{border-color:var(--amber);color:var(--amber)}
/* Light-background variant of .gbp-badge for body placements (About/Contact/
   Service-Area) that sit on porcelain/white sections, not the dark footer. */
.gbp-link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 16px;
  border:1px solid var(--line);border-radius:999px;color:var(--teal);background:var(--white);
  font-weight:700;font-size:.88rem;text-decoration:none}
.gbp-link svg{width:16px;height:16px;fill:var(--amber);flex:none}
.gbp-link:hover{border-color:var(--amber);color:var(--teal-700)}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;
  font-size:.8rem;letter-spacing:.04em;color:var(--ink-onteal-soft)}
.social{display:flex;gap:10px;margin-top:16px}
.social a{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center}
.social svg{width:18px;height:18px;fill:var(--ink-onteal)}
.social a:hover{background:rgba(255,255,255,.16)}
.social a:hover svg{fill:var(--white)}
.disclaimer-note{margin:20px 0 0;font-size:.82rem;color:var(--ink-onteal-soft);max-width:900px}
.disclaimer-note a{color:var(--ink-onteal);text-decoration:underline}

/* ---------- Sticky mobile call bar ---------- */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--amber);
  overflow-x:clip;box-shadow:0 -4px 20px rgba(12,59,55,.22)}
.callbar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;min-width:0;
  color:var(--amber-ink);font-weight:800;font-size:1.08rem;text-decoration:none;white-space:nowrap}
.callbar small{font-weight:600;opacity:.85}

/* ======================================================================
   SERVICE PAGE COMPONENTS
   ====================================================================== */
.svc-actionbar{background:linear-gradient(120deg,var(--teal) 0%,var(--teal-700) 100%);color:var(--white);
  padding:26px 0 30px}
.svc-actionbar .wrap{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.bc{font-size:.86rem;color:var(--ink-onteal-soft);margin-bottom:14px;font-weight:600}
.bc a{color:var(--ink-onteal);text-decoration:none}
.bc a:hover{color:var(--white);text-decoration:underline}
.svc-actionbar h1{color:var(--white);margin:6px 0 10px}
.svc-actionbar__lead{color:var(--ink-onteal);font-size:1.08rem;max-width:60ch;margin:0 0 18px}
.svc-actionbar__inset{width:340px;flex:none;border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.18);box-shadow:var(--shadow-md)}
.svc-actionbar__inset img{width:100%;aspect-ratio:4/3;object-fit:cover}

.ataglance{background:var(--white);border-bottom:1px solid var(--line)}
.ataglance .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.aag{padding:22px 24px;border-right:1px solid var(--line-soft)}
.aag:last-child{border-right:0}
.aag .k{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-700);font-weight:800;margin-bottom:6px}
.aag .v{font-weight:700;color:var(--teal);font-size:1rem;line-height:1.35}

.svc-article{max-width:760px;margin:0 auto;font-size:1.06rem}
.svc-article h2{margin-top:1.8em}
.svc-article h2:first-child{margin-top:0}
.svc-article h3{margin-top:1.4em;font-size:1.16rem}
.svc-article ul,.svc-article ol{margin-bottom:1.2em}
.svc-article li{margin-bottom:.5em}
.svc-article a{text-decoration:underline;font-weight:600}
/* numbered in-body process steps */
.svc-steps{list-style:none;counter-reset:none;margin:1.2em 0 1.4em;padding:0;display:grid;gap:14px}
.svc-steps li{display:flex;gap:14px;align-items:flex-start;margin:0}
.svc-steps li .n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--teal);color:var(--white);
  font-family:var(--font-display);font-weight:800;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center}
.svc-steps li>span:last-child{padding-top:4px}
.svc-steps li b{color:var(--teal)}
/* at-a-glance summary (in-body variant, opens each service article) */
.svc-article .ataglance{display:grid;grid-template-columns:repeat(2,1fr);gap:0;background:var(--porcelain);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:0 0 1.7em}
.ataglance__item{padding:15px 18px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.ataglance__item:nth-child(2n){border-right:0}
.ataglance__item:nth-child(n+3){border-bottom:0}
.ataglance__k{display:block;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--amber-700);font-weight:800;margin-bottom:5px}
.ataglance__v{font-weight:700;color:var(--teal);font-size:.96rem;line-height:1.35}
.callcard{background:var(--teal);color:var(--white);border-radius:var(--radius);padding:26px 28px;
  margin:34px 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.callcard .txt h3{color:var(--white);margin-bottom:4px;font-size:1.24rem}
.callcard .txt p{margin:0;color:var(--ink-onteal-soft);font-size:.96rem}
.bk-callout{background:var(--porcelain);border:1px solid var(--line);border-left:5px solid var(--amber);
  border-radius:var(--radius);padding:26px 28px;margin:34px 0}
.bk-callout h3{font-size:1.16rem;margin-bottom:8px}
.bk-callout p:last-child{margin-bottom:0}
.bk-callout a{text-decoration:underline;font-weight:700}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.related-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform .14s ease}
.related-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);color:inherit}
.related-card h3{font-size:1.06rem;margin-bottom:6px}
.related-card p{margin:0;font-size:.92rem;color:var(--ink-soft)}
.related-card .go{margin-top:12px;display:inline-block;font-weight:800;color:var(--amber-700);font-size:.9rem}

/* ===== Service page: sectioned layout (homepage-style bands, not a wall of text) ===== */
.svc-facts{background:var(--teal);color:var(--white)}
.svc-facts .ataglance{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent;border:0;border-radius:0;margin:0}
.svc-facts .ataglance__item{padding:22px;border-right:1px solid rgba(255,255,255,.16);border-bottom:0}
.svc-facts .ataglance__item:last-child{border-right:0}
.svc-facts .ataglance__k{display:block;margin-bottom:6px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--amber)}
.svc-facts .ataglance__v{font-weight:700;font-size:1rem;line-height:1.35;color:var(--white)}
.svc-block{padding:54px 0}
.svc-block--tint{background:var(--porcelain)}
.svc-prose{max-width:750px;margin:0 auto;font-size:1.07rem;line-height:1.72}
.svc-prose>*:first-child{margin-top:0}
.svc-prose h2{font-family:var(--font-display);font-weight:800;font-size:1.75rem;line-height:1.15;color:var(--teal);margin:0 0 .55em}
.svc-prose h2::before{content:"";display:block;width:46px;height:4px;background:var(--amber);border-radius:2px;margin-bottom:18px}
.svc-prose h3{font-size:1.18rem;margin:1.4em 0 .4em;color:var(--teal)}
.svc-prose p{margin:0 0 1.05em}
.svc-prose a{text-decoration:underline;font-weight:600}
.svc-prose ul,.svc-prose ol:not(.svc-steps){margin:0 0 1.1em;padding-left:1.2em}
.svc-prose li{margin-bottom:.5em}
/* numbered steps -> connected timeline */
.svc-steps{list-style:none;margin:1.5em 0;padding:0}
.svc-steps li{position:relative;display:flex;gap:16px;align-items:flex-start;padding-bottom:22px}
.svc-steps li:last-child{padding-bottom:0}
.svc-steps li .n{position:relative;z-index:1;flex:none;width:38px;height:38px;border-radius:50%;background:var(--teal);color:var(--white);font-family:var(--font-display);font-weight:800;font-size:1rem;display:inline-flex;align-items:center;justify-content:center}
.svc-steps li:not(:last-child)::before{content:"";position:absolute;left:18px;top:40px;bottom:2px;width:2px;background:var(--line)}
.svc-steps li>span:last-child{padding-top:7px}
.svc-steps li b{color:var(--teal)}
/* testimonial -> review card */
.svc-quote{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:14px;padding:22px 26px;margin:30px 0;box-shadow:var(--shadow-sm);font-size:1.12rem;line-height:1.55}
.svc-quote p{margin:0 0 10px}
.svc-quote span{font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--ink-soft)}
/* why-us furniture band */
.svc-why{background:var(--teal-800);color:var(--white);padding:56px 0}
.svc-why .sec-head__body h2{color:var(--white)}
.svc-why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}
.svc-why__card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:26px 22px}
.svc-why__ic{display:inline-flex;width:44px;height:44px;border-radius:12px;background:var(--amber);align-items:center;justify-content:center;margin-bottom:14px}
.svc-why__ic svg{width:24px;height:24px;fill:var(--amber-ink)}
.svc-why__card h3{color:var(--white);font-size:1.08rem;margin-bottom:8px}
.svc-why__card p{color:var(--ink-onteal);font-size:.95rem;margin:0;line-height:1.55}
@media(max-width:760px){
  .svc-facts .ataglance{grid-template-columns:1fr 1fr}
  .svc-facts .ataglance__item:nth-child(2n){border-right:0}
  .svc-facts .ataglance__item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.16)}
  .svc-block{padding:38px 0}
  .svc-prose h2{font-size:1.5rem}
  .svc-why{padding:40px 0}
  .svc-why__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){ .svc-why__grid{grid-template-columns:1fr} }

/* ======================================================================
   ABOUT PAGE
   ====================================================================== */
.about-hero{background:var(--teal);color:var(--white);padding:44px 0}
.about-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:center}
.about-hero h1{color:var(--white)}
.about-hero p{color:var(--ink-onteal);font-size:1.1rem}
.about-hero__img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.story-split{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:start}
.stat-cluster{display:grid;gap:14px}
.stat-cluster__item{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;box-shadow:var(--shadow-sm)}
.stat-cluster__item .n{font-family:var(--font-display);font-weight:800;font-size:2rem;color:var(--teal);line-height:1}
.stat-cluster__item .l{font-size:.92rem;color:var(--ink-soft);margin-top:4px}
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.value-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;box-shadow:var(--shadow-sm)}
.value-card .mk{width:46px;height:46px;border-radius:12px;background:var(--teal-tint);display:flex;
  align-items:center;justify-content:center;margin-bottom:14px}
.value-card .mk svg{width:24px;height:24px;fill:var(--teal-600)}
.value-card h3{font-size:1.08rem;margin-bottom:6px}
.value-card p{margin:0;font-size:.94rem;color:var(--ink-soft)}

/* ======================================================================
   CONTACT PAGE
   ====================================================================== */
.contact-hero{background:var(--teal);color:var(--white);padding:44px 0 40px;text-align:center}
.contact-hero h1{color:var(--white)}
.contact-hero p{color:var(--ink-onteal);font-size:1.1rem;max-width:60ch;margin:0 auto}
.call-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);padding:40px;text-align:center;max-width:620px;margin:-70px auto 0;position:relative;z-index:5}
.call-panel .k{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.8rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--amber-700);margin-bottom:14px}
.call-panel .big{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,5vw,2.8rem);
  color:var(--teal);display:block;margin-bottom:8px;text-decoration:none}
.call-panel p{color:var(--ink-soft);margin-bottom:20px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.nap-block{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-sm);overflow-wrap:anywhere}
.nap-block .row>*{min-width:0}
.nap-block h2{font-size:1.3rem}
.nap-block .row{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;color:var(--ink-soft)}
.nap-block .row svg{width:20px;height:20px;fill:var(--teal-600);flex:none;margin-top:2px}
.nap-block .row b{color:var(--teal);display:block}
.tell-us{background:var(--porcelain);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.tell-us h2{font-size:1.3rem}
.tell-us ul{list-style:none;padding:0;margin:0}
.tell-us li{position:relative;padding-left:32px;margin-bottom:14px;color:var(--ink);font-weight:600}
.tell-us li::before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:6px;
  background:var(--amber);color:var(--amber-ink)}
.tell-us li::after{content:"\2713";position:absolute;left:4px;top:0;color:var(--amber-ink);font-weight:800}

/* ======================================================================
   TOOL PAGES
   ====================================================================== */
.tool-hero{background:var(--teal);color:var(--white);padding:40px 0}
.tool-hero .bc{margin-bottom:12px}
.tool-hero h1{color:var(--white)}
.tool-hero p{color:var(--ink-onteal);max-width:60ch}
.tool{display:grid;grid-template-columns:1.3fr .9fr;gap:30px;align-items:start;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);padding:32px;max-width:960px;margin:0 auto}
.tool__grid{display:flex;flex-direction:column;gap:22px}
.optgroup{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
.optgroup__legend{font-weight:800;color:var(--teal);font-size:1rem;margin-bottom:12px;display:block}
.opt-row{display:flex;flex-wrap:wrap;gap:10px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt label,.opt > span{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:10px;
  border:2px solid var(--line);background:var(--white);font-weight:700;color:var(--ink-soft);cursor:pointer;
  font-size:.94rem;transition:.12s}
.opt input:checked + label,.opt input:checked + span{border-color:var(--amber);background:#fff8ec;color:var(--teal)}
.opt input:focus-visible + label{outline:3px solid var(--amber);outline-offset:2px}
.tool select,.tool input[type="number"],.tool input[type="text"]{width:100%;padding:12px 14px;border:2px solid var(--line);
  border-radius:10px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:var(--white)}
.tool label.field{display:block;font-weight:700;color:var(--teal);margin-bottom:7px;font-size:.94rem}
.tool__result{background:var(--teal);color:var(--white);border-radius:var(--radius);padding:26px;
  position:sticky;top:96px}
.tool__result h2,.tool__result h3{color:var(--white);font-size:1.1rem}
.result-readout{margin:14px 0}
.result-readout .k{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-onteal-soft);font-weight:800}
.result__value{font-family:var(--font-display);font-weight:800;font-size:2.2rem;color:var(--white);line-height:1.1;margin:4px 0}
.result__value.amber{color:var(--amber)}
.tool-note{font-size:.85rem;color:var(--ink-onteal-soft);border-top:1px solid rgba(255,255,255,.15);
  margin-top:16px;padding-top:14px}
.tool-note--light{color:var(--ink-soft);border-color:var(--line)}

/* ======================================================================
   RESPONSIVE
   ====================================================================== */
@media (max-width:1020px){
  .whyus,.cost,.coverage,.proof,.faq2,.dispatch-panel .wrap,.story-split,
  .about-hero .wrap,.contact-grid,.tool,.svc-actionbar .wrap{grid-template-columns:minmax(0,1fr)}
  /* let single-column grid items shrink below their content's min-content (prevents wide-child blowout) */
  .contact-grid>*,.tool>*,.story-split>*,.about-hero .wrap>*,.svc-actionbar .wrap>*{min-width:0}
  .proof__aggregate,.coverage__map,.faq-callcard,.tool__result{position:static}
  .svc-actionbar__inset{width:100%;max-width:420px}
  .values-grid{grid-template-columns:repeat(2,1fr)}
  .ataglance .wrap{grid-template-columns:repeat(2,1fr)}
  .aag:nth-child(2){border-right:0}
  .aag{border-bottom:1px solid var(--line-soft)}
}
@media (max-width:820px){
  .section{padding:56px 0}
  .risk-grid,.svc-grid,.range-cards,.cred-badges,.nbhd-groups,.faq2__cols,.case-grid{grid-template-columns:1fr 1fr}
  .esteps{grid-template-columns:1fr}
  .svc-card--featured{grid-column:span 1;flex-direction:column}
  .svc-card--featured .svc-card__media{width:100%;aspect-ratio:16/10}
  .ptimeline{grid-template-columns:1fr;gap:14px;text-align:left}
  .pstep{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:center;padding:0}
  .pstep__num{margin:0}
  .pstep::before{display:none}
  .carrier-wall{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  /* nav -> hamburger */
  .nav-toggle{display:flex}
  .header-phone{display:none}
  /* header 'Call now' is redundant with the sticky bottom call bar on mobile; hiding it keeps the hamburger on-screen */
  .header-cta .btn--call{display:none}
  .brand__name{font-size:1.04rem}
  .nav{position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:stretch;gap:2px;
    background:var(--white);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);
    padding:12px 16px 18px;margin:0;transform:translateY(-140%);transition:transform .22s ease;
    max-height:calc(100vh - 72px);overflow-y:auto;z-index:55}
  .nav.is-open{transform:translateY(0)}
  .nav > a,.drop > a{padding:13px 12px;border-radius:10px;font-size:1.05rem}
  .drop__menu{position:static;display:flex;box-shadow:none;border:0;border-left:2px solid var(--line);
    border-radius:0;margin:2px 0 6px 12px;padding:2px 0}
  .drop > a::after{margin-left:auto}

  /* HERO copy-first: heading, call, chips, THEN photo */
  .hero{background:var(--teal);display:flex;flex-direction:column}
  .hero__wrap{display:flex;flex-direction:column;padding:34px 0 30px;order:1}
  .hero__media{position:static;order:2;height:260px}
  .hero__img{height:260px}
  .hero__scrim{display:none}
  .hero__wave{display:none}
  .dispatch-card{width:100%;background:transparent;border:0;backdrop-filter:none;box-shadow:none;padding:0}
  .hero-call{max-width:none}

  .stats-overlap{grid-template-columns:1fr 1fr;margin:0;border-radius:0;border-left:0;border-right:0}
  .stat:nth-child(odd){border-right:1px solid var(--line-soft)}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}

  .whyus,.cost{gap:26px}
  .nbhd-groups,.faq2__cols,.cred-badges{grid-template-columns:1fr}
  .risk-grid,.svc-grid,.range-cards,.related-grid,.case-grid{grid-template-columns:1fr}
  .values-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .dispatch-panel__call .big,.dispatch-panel h2{text-align:left}
  .callcard{flex-direction:column;align-items:flex-start}
  .review-rail{grid-auto-columns:minmax(260px,86%)}

  /* sticky call bar on mobile; keep footer clear */
  .callbar{display:block}
  body{padding-bottom:64px}
}
@media (max-width:420px){
  body{font-size:17px}
  .wrap{padding:0 24px}
  .callbar a{font-size:1rem;padding:14px 12px}
  .foot-grid{grid-template-columns:1fr}
  .carrier-wall{grid-template-columns:repeat(2,1fr)}
  .zip-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}
  .dispatch-card h1{font-size:1.9rem}
  .stat{padding:18px 12px}
}

/* ======================================================================
   v2 SERVICE-PAGE UPGRADE (Tidewater)  —  split hero eyebrow/chips,
   numbered process strip, alternating editorial bands, real-map coverage
   (full + compact), and the Service Area page cards.
   ====================================================================== */
/* CTA icon guard: any inline <svg> in a button stays glyph-sized (never balloons) */
.btn svg{width:1.2em;height:1.2em;flex:none}

/* split action-bar hero: amber eyebrow + trust chips on the teal band */
.svc-actionbar .eyebrow{color:var(--amber);margin-bottom:14px}
.svc-actionbar__lead{margin-bottom:18px}
.svc-actionbar .trust-row{margin-top:18px}
.svc-actionbar .btn--lg .btn__num{font-size:1.3rem;font-family:var(--font-display)}

/* numbered process strip: 4-up variant of the homepage timeline */
.ptimeline--4{grid-template-columns:repeat(4,1fr)}

/* visible alternation for the editorial topic bands */
.svc-block{background:var(--white)}
.svc-block--tint{background:var(--porcelain-2)}

/* interactive Google Maps embed, framed in a teal card inside the coverage map cell */
.coverage__fig{margin:0;background:var(--teal);border-radius:var(--radius-lg);padding:14px;
  box-shadow:var(--shadow-md)}
.coverage__fig iframe{width:100%;display:block;border-radius:14px}
.coverage__fig figcaption{margin-top:12px;display:flex;flex-direction:column;gap:6px}
.coverage__pin{display:flex;align-items:center;gap:8px;color:var(--white);font-weight:700;font-size:.95rem}
.coverage__pin svg{width:18px;height:18px;fill:var(--amber);flex:none}

/* compact coverage on service pages: map + short note + link to the Service Area page */
.coverage--compact{grid-template-columns:.9fr 1.1fr;align-items:center}
.coverage--compact .coverage__map{position:static}
.coverage__note{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:28px 30px;box-shadow:var(--shadow-sm)}
.coverage__note p{color:var(--ink-soft);font-size:1.02rem;margin:0 0 12px}
.coverage__note p:first-child{color:var(--ink);font-weight:600}
.coverage__all{display:inline-block;margin-top:4px;font-weight:800;color:var(--amber-700);
  font-size:.98rem;text-decoration:none}
.coverage__all:hover{color:var(--teal)}

/* Service Area page: a card per neighborhood with a real local note */
.areas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.area-card{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--amber);
  border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow-sm)}
.area-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.area-card__head h3{margin:0;font-size:1.12rem}
.area-card__zip{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;
  color:var(--teal-600);white-space:nowrap;font-variant-numeric:tabular-nums}
.area-card__zip svg{width:15px;height:15px;fill:var(--amber);flex:none}
.area-card p{margin:0;color:var(--ink-soft);font-size:.97rem}

@media (max-width:1020px){
  /* compact coverage must collapse to one column on tablets/phones (higher specificity
     than the base .coverage rule, so it needs its own mobile override) */
  .coverage--compact{grid-template-columns:1fr}
}
@media (max-width:820px){
  .ptimeline--4{grid-template-columns:1fr}
  .areas-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .areas-grid{grid-template-columns:1fr}
  .area-card__head{flex-direction:column;align-items:flex-start;gap:4px}
}

/* self-hosted fonts (was Google Fonts; latin) */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/bricolage-grotesque.woff2?v=ad33cbc6) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/public-sans.woff2?v=e4c9b081) format('woff2')}

/* in-content prose links underlined (accessibility: link-in-text-block) */
.svc-prose a,.prose a,.about-prose a,.legal a,.cost-note a,.foot-nap a{text-decoration:underline;text-underline-offset:2px}

/* ======================================================================
   STATIC PAGES  (about / contact / privacy / terms / disclaimer)
   These pages come from build_static_pages.py, which was seeded from the
   OKC kit and emits the class names below (.subhead .split .frame
   .section--navy .stats .cta-band .contact-cards .cc, and .cr inside
   .creds). Brooklyn's fresh Tidewater styles.css documents a parallel
   .about-hero/.story-split/.contact-hero set the builder never emitted, so
   these bands rendered as unstyled stacked HTML. The rules below dress the
   markup the builder ACTUALLY emits, in the Tidewater palette. Shared
   chrome (header/nav/footer) and .section/.sec-head were already styled.
   Every selector here is confined to classes used only by these pages.
   ====================================================================== */

/* page-title band (all five static pages) */
.subhead{background:var(--teal);color:var(--ink-onteal);padding:52px 0;border-bottom:1px solid var(--teal-800)}
.subhead .eyebrow{color:var(--amber)}
.subhead h1{color:var(--white);margin:0}

/* About: intro split with framed photo (image .9fr, copy 1.1fr) */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.frame{position:relative;border:1px solid var(--teal);border-radius:var(--radius-sm)}
.frame img{width:100%;display:block;border-radius:var(--radius-sm)}
.frame::after{content:"";position:absolute;inset:12px -12px -12px 12px;background:var(--teal-tint);
  border-radius:var(--radius-sm);z-index:-1}

/* About: stats band on a deep-teal ground (dark-section: force light heads +
   readable numbers/captions; .stat is shared with .stats-overlap, so beat its
   base + mobile rules with the 3-class .section--navy .stats .stat selector) */
.section--navy{background:var(--teal-800);color:var(--ink-onteal)}
.section--navy h1,.section--navy h2,.section--navy h3{color:var(--white)}
.section--navy .eyebrow,.section--navy .sec-head__idx{color:var(--amber)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.section--navy .stats .stat{border:0;padding:6px 12px;text-align:center}
.section--navy .stats .stat .n{font-family:var(--font-display);font-weight:800;
  font-size:clamp(2.1rem,4.4vw,3rem);line-height:1;color:var(--white)}
.section--navy .stats .stat .n em{font-style:normal;color:var(--amber)}
.section--navy .stats .stat .c{margin-top:10px;font-size:.82rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-onteal-soft)}

/* About: credential badges as a neat centered row. Scoped to .creds--row so
   index.html's .creds card (which holds .cred-badges, not .cr) is untouched.
   .cr img caps the logo height (beats the global img{height:auto}, which had
   let EPA/BBB render at intrinsic ~600-900px); .mk sizes the two SVG badges
   (Licensed / 24-7) so their inline <svg> can't balloon. */
.creds--row{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:10px 6px;padding:20px 16px}
.creds--row .cr{display:flex;align-items:center;gap:13px;padding:12px 22px;min-width:0}
.creds--row .cr + .cr{border-left:1px solid var(--line)}
.creds--row .cr img{max-height:42px;width:auto;flex:none;object-fit:contain}
.creds--row .cr .mk{width:46px;height:46px;flex:none;border-radius:12px;background:var(--teal-tint);
  color:var(--teal);display:inline-flex;align-items:center;justify-content:center}
.creds--row .cr .mk svg{width:24px;height:24px;flex:none}
.creds--row .cr b{display:block;font-weight:800;font-size:.98rem;color:var(--teal);line-height:1.2}
.creds--row .cr small{display:block;margin-top:2px;font-size:.74rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink-soft)}

/* About: closing CTA band */
.cta-band{background:var(--teal);text-align:center;padding:70px 24px;border-top:1px solid var(--teal-800)}
.cta-band .eyebrow{color:var(--amber)}
.cta-band h2{color:var(--white)}
.cta-band p{color:var(--ink-onteal);max-width:52ch;margin:0 auto 22px}

/* Contact: 2x2 info-card grid */
.contact-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:26px 0}
.contact-cards .cc{padding:24px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact-cards .cc:nth-child(2n){border-right:0}
.contact-cards .cc:nth-last-child(-n+2){border-bottom:0}
.contact-cards .cc h2{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal-600);margin:0 0 .4em}
.contact-cards .cc p{margin:0;color:var(--ink-soft)}
.contact-cards .cc a{overflow-wrap:anywhere}

/* static-page responsive */
@media (max-width:820px){
  .split{grid-template-columns:1fr;gap:30px}
  .split .frame{max-width:520px}
}
@media (max-width:760px){
  .section--navy .stats{grid-template-columns:repeat(2,1fr);gap:26px 14px}
  .contact-cards{grid-template-columns:1fr}
  .contact-cards .cc{border-right:0}
  .contact-cards .cc:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .contact-cards .cc:last-child{border-bottom:0}
  .creds--row .cr{flex:1 1 200px;justify-content:center;border:1px solid var(--line);border-radius:12px}
  .creds--row .cr + .cr{border-left:1px solid var(--line)}
  .frame::after{inset:8px -8px -8px 8px}
}
