/* Water Damage Spokane - "Basalt & Pine" Inland-Northwest field-guide system.
   Light birch-paper ground, deep evergreen feature bands, basalt closing/footer,
   an ember trail-marker CTA, and an asymmetric left-spine "ledger" layout with
   slab-serif (Zilla Slab) headers over an Archivo grotesque body. Distinct shape
   language: squared cards with hairline keylines and a small corner tab, no soft
   clouds. Hand-tuned for the contrast gate: every dark ground sets its own light
   headings/eyebrows. */

/* ============================ Fonts (self-hosted) ============================ */
@font-face{font-family:'Zilla Slab';src:url(/assets/fonts/zilla-400.woff2?v=569320ae) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Zilla Slab';src:url(/assets/fonts/zilla-600.woff2?v=9914c0a5) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Zilla Slab';src:url(/assets/fonts/zilla-700.woff2?v=c9111882) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url(/assets/fonts/archivo.woff2?v=cd56e2ec) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

/* ============================ Tokens ============================ */
:root{
  --paper:#F5F1E7;      /* birch paper ground */
  --paper-2:#EFE8D8;    /* alt band */
  --paper-3:#E7DFCC;    /* inset / chip */
  --pine:#1E4034;       /* deep evergreen feature band */
  --pine-700:#26513F;
  --pine-300:#A9CAB4;   /* light sage accent on pine */
  --basalt:#23262B;     /* basalt closing + footer */
  --basalt-800:#2C3037;
  --basalt-700:#3A3F47;
  --ember:#A8431E;      /* trail-marker CTA */
  --ember-600:#8C3616;
  --ember-tint:#F2E3D6;
  --river:#2C6785;      /* water-cue link accent */
  --ink:#22262C;        /* body ink on paper */
  --ink-2:#363A41;      /* content copy on paper: >=7:1 on all birch grounds */
  --ink-3:#3A3E45;      /* captions/notes/labels: darkened to read (>=7:1) */
  --on-pine:#F1F1E6;
  --on-pine-2:#E4EDE6;  /* near-white body copy on evergreen band (>=7:1) */
  --on-basalt:#ECEAE1;
  --on-basalt-2:#D6DADF;/* near-white body copy on basalt band (>=7:1) */
  --line:#D9D0BC;
  --line-2:#C6BB9F;
  --shadow-sm:0 1px 2px rgba(34,38,44,.07);
  --shadow-md:0 10px 26px rgba(34,38,44,.12);
  --font-display:'Zilla Slab',Georgia,'Times New Roman',serif;
  --font-body:'Archivo',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --wrap:1200px;
  --r:4px;
}

/* ============================ Base ============================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);line-height:1.08;margin:0 0 .5em;font-weight:700}
h1{font-size:clamp(2rem,4.4vw,3.15rem);letter-spacing:-.01em}
h2{font-size:clamp(1.55rem,3.1vw,2.4rem);letter-spacing:-.005em}
h3{font-size:1.2rem;font-weight:600}
p{margin:0 0 1rem}
a{color:var(--river);text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.cy{color:var(--ember)}
.band--basalt .cy{color:#E8A98A}
.u-link{text-decoration:underline}
.muted{color:var(--ink-3)}

/* ============================ Buttons ============================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-body);font-weight:700;font-size:.98rem;letter-spacing:.01em;
  padding:.8em 1.35em;border-radius:var(--r);border:2px solid transparent;cursor:pointer;
  text-align:center;transition:transform .12s ease,background .15s ease,box-shadow .15s ease;line-height:1.1}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn--call,.btn--ember{background:var(--ember);color:#fff;box-shadow:var(--shadow-sm)}
.btn--call:hover,.btn--ember:hover{background:var(--ember-600);transform:translateY(-1px)}
.btn--lg{font-size:1.05rem;padding:.95em 1.6em}
.btn--block{display:flex;width:100%}
.btn--ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--pine);color:var(--pine)}
.btn--cream{background:var(--paper);color:var(--pine);border-color:var(--paper)}
.btn--cream:hover{background:#fff;transform:translateY(-1px)}
.band--pine .btn--ghost,.band--basalt .btn--ghost{border-color:rgba(255,255,255,.4);color:var(--on-pine)}
.band--pine .btn--ghost:hover,.band--basalt .btn--ghost:hover{border-color:#fff;color:#fff}

/* ============================ Ribbon ============================ */
.ribbon{background:var(--basalt);color:var(--on-basalt-2);font-size:.78rem}
.ribbon__row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;padding-top:6px;padding-bottom:6px}
.ribbon__list{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;margin:0;padding:0;font-weight:600;letter-spacing:.02em}
.ribbon__list li{position:relative;padding-left:16px;white-space:nowrap}
.ribbon__list li::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;background:var(--pine-300);border-radius:1px}
.ribbon__call{color:#fff;font-weight:700;white-space:nowrap}

/* ============================ Header / nav ============================ */
.header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .2s ease}
.header.is-stuck{box-shadow:var(--shadow-md)}
.header__row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px}
.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink)}
.brand__mark{width:42px;height:42px;flex:none;display:inline-flex}
.brand__mark svg{width:42px;height:42px}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em}
.brand__sub{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--pine);margin-top:3px}
.brand__tick{width:14px;height:2px;background:var(--ember);display:inline-block}

.nav{display:flex;align-items:center;gap:6px}
.nav__link{padding:9px 12px;font-weight:600;font-size:.95rem;color:var(--ink);border-radius:var(--r)}
.nav__link:hover{color:var(--pine);background:var(--paper-2)}
.nav__cta{margin-left:8px}
.drop{position:relative}
.drop__toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:0;font-family:var(--font-body);font-weight:600;font-size:.95rem;color:var(--ink);padding:9px 12px;border-radius:var(--r);cursor:pointer}
.drop__toggle:hover{color:var(--pine);background:var(--paper-2)}
.drop__caret{width:12px;height:12px;transition:transform .2s ease}
.drop.is-open .drop__caret{transform:rotate(180deg)}
.drop__menu{position:absolute;top:calc(100% + 2px);left:0;min-width:290px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-md);padding:8px;display:none;flex-direction:column;max-height:min(72vh,560px);overflow-y:auto;overscroll-behavior:contain;z-index:60}
.drop:hover .drop__menu,.drop.is-open .drop__menu{display:flex}
.drop__menu a{padding:9px 12px;font-size:.92rem;font-weight:500;color:var(--ink);border-radius:var(--r);border-left:3px solid transparent}
.drop__menu a:hover{background:var(--paper-2);border-left-color:var(--ember);color:var(--pine)}
.hamburger{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:46px;min-height:44px;background:none;border:0;padding:10px;cursor:pointer}
.hamburger span{width:26px;height:2.5px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.nav-scrim{position:fixed;inset:0;background:rgba(34,38,44,.55);z-index:40}

/* ============================ Sections / bands ============================ */
.section{padding:clamp(48px,7vw,88px) 0}
.section--tight{padding:clamp(30px,4vw,48px) 0}
.band--paper{background:var(--paper)}
.band--paper2{background:var(--paper-2)}
.band--inset{background:var(--paper-3)}
.band--pine{background:var(--pine);color:var(--on-pine)}
.band--pine h1,.band--pine h2,.band--pine h3,.band--pine h4{color:var(--on-pine)}
.band--pine p{color:var(--on-pine-2)}
.band--basalt{background:var(--basalt);color:var(--on-basalt)}
.band--basalt h1,.band--basalt h2,.band--basalt h3,.band--basalt h4{color:#fff}
.band--basalt p{color:var(--on-basalt-2)}

/* kicker / section head */
.kicker{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.76rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ember);margin-bottom:10px}
.kicker::before{content:"";width:22px;height:2px;background:var(--ember)}
.band--pine .kicker,.band--basalt .kicker{color:var(--pine-300)}
.band--pine .kicker::before,.band--basalt .kicker::before{background:var(--pine-300)}
.section-head{max-width:64ch;margin-bottom:34px}
.section-head p,.lead{color:var(--ink-2);font-size:1.08rem}
.band--pine .section-head p,.band--pine .lead{color:var(--on-pine-2)}

/* The signature LEDGER layout: a narrow left spine (number + kicker + heading)
   beside the content column. Collapses to one column on mobile. */
.ledger{display:grid;grid-template-columns:minmax(0,270px) 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.ledger__spine{position:sticky;top:96px}
.ledger__num{font-family:var(--font-display);font-weight:700;font-size:2.4rem;color:#4F4835;line-height:1;margin-bottom:10px}
.band--pine .ledger__num{color:var(--pine-700)}
.ledger__spine h2{margin-top:6px}

/* ============================ Hero (asymmetric split) ============================ */
.hero{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--line);position:relative}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,54px);align-items:center;padding:clamp(34px,5vw,64px) 0}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--pine);background:var(--paper-3);border:1px solid var(--line);border-radius:100px;padding:7px 14px;margin-bottom:18px}
.hero__eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--ember)}
.hero__h1{margin:0 0 14px}
.hero__sub{font-size:1.12rem;color:var(--ink-2);max-width:46ch;margin:0 0 22px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch;margin-bottom:20px}
.hero__callblock{display:flex;flex-direction:column;justify-content:center;background:var(--pine);color:var(--on-pine);border-radius:var(--r);padding:12px 20px;border-left:5px solid var(--ember)}
.hero__callblock small{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pine-300);font-weight:700}
.hero__callblock .num{font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:#fff;line-height:1.1}
.hero__trust{display:flex;flex-wrap:wrap;gap:9px}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--ink-2);background:var(--paper);border:1px solid var(--line-2);border-radius:100px;padding:6px 13px}
.chip svg{width:15px;height:15px;color:var(--ember)}
.chip--star{border-color:var(--ember);color:var(--ember-600);font-weight:700}

/* hero right: the stat ledger + a small framed photo */
.hero__aside{display:flex;flex-direction:column;gap:16px}
.stat-ledger{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}
.stat-ledger__head{background:var(--basalt);color:var(--on-basalt);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;display:flex;align-items:center;gap:8px}
.stat-ledger__head .dot{width:8px;height:8px;border-radius:50%;background:var(--pine-300)}
.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line)}
.stat-row:last-child{border-bottom:0}
.stat-row b{font-family:var(--font-display);font-weight:700;font-size:1.6rem;color:var(--pine)}
.stat-row span{font-size:.86rem;color:var(--ink-2);text-align:right}
.hero__photo{position:relative;border:1px solid var(--line-2);background:var(--paper);padding:7px;border-radius:var(--r)}
.hero__photo img{border-radius:2px;width:100%;height:170px;object-fit:cover}
.hero__photo figcaption{font-size:.78rem;color:var(--ink-3);padding:8px 2px 2px;font-weight:600}

/* corner-tab framed image utility (offset imagery motif) */
.framed{position:relative;border:1px solid var(--line-2);background:var(--paper);padding:7px;border-radius:var(--r)}
.framed::after{content:"";position:absolute;top:-1px;right:-1px;width:26px;height:26px;background:var(--ember);clip-path:polygon(100% 0,0 0,100% 100%)}
.framed img{border-radius:2px;display:block;width:100%}

/* ============================ Emergency checklist strip ============================ */
.emergency{background:var(--pine);color:var(--on-pine)}
.emergency h2{color:#fff}
.emergency .section-head p{color:var(--on-pine-2)}
.emergency .kicker{color:var(--pine-300)}
.emergency .kicker::before{background:var(--pine-300)}
.emergency__grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(22px,3vw,44px);align-items:center}
.checklist{display:grid;gap:12px}
.check-cell{display:flex;gap:14px;align-items:flex-start;background:var(--pine-700);border-radius:var(--r);padding:14px 16px;border-left:4px solid var(--pine-300)}
.check-cell .mark{flex:none;width:26px;height:26px;border-radius:50%;background:var(--pine-300);color:var(--pine);display:inline-flex;align-items:center;justify-content:center}
.check-cell .mark svg{width:16px;height:16px}
.check-cell p{margin:0;color:var(--on-pine)}
.emg-call{background:var(--basalt);border-radius:var(--r);padding:22px;text-align:center;border-top:5px solid var(--ember)}
.emg-call h3{color:#fff;margin-bottom:12px}
.emg-call .big{display:block;font-family:var(--font-display);font-weight:700;font-size:2rem;color:#fff;margin-bottom:12px}

/* ============================ Services: field-guide index ============================ */
.svc-index{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.svc-row{display:grid;grid-template-columns:auto 74px 1fr auto;gap:16px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;color:var(--ink);transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}
.svc-row:hover{border-color:var(--pine);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.svc-row__n{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ember);width:26px;text-align:right}
.svc-row__img{width:74px;height:56px;border-radius:2px;overflow:hidden;border:1px solid var(--line)}
.svc-row__img img{width:100%;height:100%;object-fit:cover}
.svc-row__txt h3{margin:0 0 2px;font-size:1.05rem}
.svc-row__txt p{margin:0;font-size:1rem;color:var(--ink-3);line-height:1.6}
.svc-row__go{color:var(--pine);font-weight:700;font-size:1.2rem}
.svc-row--lead{grid-column:1 / -1;background:var(--paper-3);border-color:var(--line-2)}
.svc-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;
  background:var(--basalt);color:var(--on-basalt);border-radius:var(--r);padding:22px 24px;border-left:5px solid var(--ember)}
.svc-banner h3{color:#fff;margin:0 0 4px}
.svc-banner p{margin:0;color:var(--on-basalt-2);max-width:60ch}

/* ============================ Local causes (seasonal) ============================ */
.season{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.season__col{background:var(--pine-700);border-radius:var(--r);padding:18px;border-top:4px solid var(--pine-300)}
.season__col h3{color:#fff;font-size:1.15rem;margin-bottom:6px}
.season__tag{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pine-300);margin-bottom:12px;display:block}
.cause{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid rgba(255,255,255,.12)}
.cause:first-of-type{border-top:0}
.cause__ico{flex:none;width:34px;height:34px;border-radius:var(--r);background:var(--pine);display:inline-flex;align-items:center;justify-content:center}
.cause__ico svg{width:19px;height:19px;stroke:var(--pine-300);fill:none;stroke-width:1.7}
.cause b{color:#fff;font-size:.96rem;display:block;font-family:var(--font-display);font-weight:600}
.cause span{color:var(--on-pine-2);font-size:1rem;line-height:1.6}
.risk-links{margin-top:22px;font-size:.9rem;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;color:var(--on-pine-2)}
.risk-links a{color:var(--pine-300);text-decoration:underline}

/* ============================ Process route ============================ */
.route{display:grid;gap:0}
.route-step{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:0 0 22px;position:relative}
.route-step:last-child{padding-bottom:0}
.route-step__n{position:relative;flex:none;width:44px;height:44px;border-radius:50%;background:var(--paper);border:2px solid var(--pine);color:var(--pine);
  font-family:var(--font-display);font-weight:700;font-size:1.2rem;display:inline-flex;align-items:center;justify-content:center;z-index:1}
.route-step:not(:last-child) .route-step__n::after{content:"";position:absolute;top:44px;left:50%;transform:translateX(-50%);width:2px;height:calc(100% + 22px - 44px + 22px);background:var(--line-2)}
.route-step__b{padding-top:8px}
.route-step__b h3{margin:0 0 3px;font-size:1.12rem}
.route-step__b p{margin:0;color:var(--ink-2)}
.band--pine .route-step__n{background:var(--pine);border-color:var(--pine-300);color:#fff}
.band--pine .route-step__n::after{background:var(--pine-700)}
.band--pine .route-step__b p{color:var(--on-pine-2)}

/* ============================ Reviews (asymmetric proof) ============================ */
.reviews{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(22px,3vw,44px);align-items:start}
.agg{background:var(--pine);color:var(--on-pine);border-radius:var(--r);padding:26px;text-align:center;border-bottom:5px solid var(--ember)}
.agg .score{font-family:var(--font-display);font-weight:700;font-size:3.4rem;color:#fff;line-height:1}
.agg .stars{color:#F2C14E;font-size:1.3rem;letter-spacing:2px}
.agg .count{color:var(--pine-300);font-weight:700;margin-top:6px}
.agg .since{color:var(--on-pine-2);font-size:.88rem;margin-top:8px}
.review-stack{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.review-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);border-top:3px solid var(--pine-300)}
.review-card:nth-child(even){margin-top:16px}
.review-card .stars{color:#8A6412;letter-spacing:1px;font-size:.95rem}
.review-card p{font-size:1rem;line-height:1.6;margin:8px 0 12px;color:var(--ink)}
.review-card .who{font-weight:700;font-size:.92rem}
.review-card .where{color:var(--ink-3);font-size:.82rem}
.review-card .when{color:var(--ink-3);font-size:.78rem;margin-top:2px}

/* ============================ Cost + insurance ============================ */
.range-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}
.range-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;border-top:4px solid var(--pine)}
.range-card:nth-child(2){border-top-color:var(--ember)}
.range-card h3{font-size:1.1rem}
.range-card .money{font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:var(--pine);margin:4px 0 8px}
.range-card p{font-size:1rem;line-height:1.6;margin:0 0 6px;color:var(--ink-2)}
.range-card .cov{color:var(--ink-3);font-size:.83rem}
.why-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:8px}
.why-cell{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.why-cell__ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--r);background:var(--ember-tint);margin-bottom:10px}
.why-cell__ico svg{width:22px;height:22px;stroke:var(--ember-600);fill:none;stroke-width:1.8}
.why-cell h3{font-size:1rem;margin-bottom:4px}
.why-cell p{font-size:1rem;line-height:1.6;margin:0;color:var(--ink-2)}
.band--pine .why-cell{background:var(--pine-700);border-color:var(--pine-700)}
.band--pine .why-cell h3{color:#fff}
.band--pine .why-cell p{color:var(--on-pine-2)}
.band--pine .why-cell__ico{background:var(--pine)}
.band--pine .why-cell__ico svg{stroke:var(--pine-300)}
.claim-row{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:center;margin-top:8px}
.claim-row p{color:var(--ink-2)}
.carrier-wall{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center}
.carrier-wall img{height:30px;width:auto;opacity:.9}
.credentials{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink-2)}
.credentials .logo{height:34px;width:auto}
.credentials b{color:var(--ink)}

/* ============================ Cases + gallery ============================ */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm)}
.case-card>img{width:100%;height:180px;object-fit:cover;border-bottom:3px solid var(--ember)}
.case-card figcaption{padding:16px}
.case-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.case-card__head h3{font-size:1.05rem;margin:0}
.case-card__date{font-size:.78rem;color:var(--ink-3);font-weight:600;white-space:nowrap}
.case-card__area{font-size:.82rem;color:var(--ember-600);font-weight:600;margin:2px 0 10px}
.case-card dl{margin:0;display:grid;gap:8px}
.case-card dt{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);font-weight:700}
.case-card dd{margin:0 0 2px;font-size:1rem;color:var(--ink-2);line-height:1.6}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}
.gallery figure{margin:0;position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.gallery img{width:100%;height:130px;object-fit:cover}
.gallery figcaption{font-size:.78rem;color:var(--ink-2);padding:8px 10px;font-weight:600}
.gallery figure:nth-child(3n){grid-row:span 1}

/* ============================ Coverage ============================ */
.cov{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,3vw,40px);align-items:start}
.cov--compact{grid-template-columns:1fr 1fr}
.cov__map{margin:0;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--paper);padding:6px}
.cov__map iframe{display:block;border-radius:2px}
.cov__map figcaption{font-size:1rem;line-height:1.6;color:var(--ink-2);padding:8px 4px 2px}
.cov__pin{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.cov__pin svg{width:15px;height:15px;fill:var(--ember)}
.zip-head{font-weight:700;font-family:var(--font-display);margin-bottom:10px}
.zip-grid{display:flex;flex-wrap:wrap;gap:7px}
.zip-grid span{font-size:.82rem;font-weight:600;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:4px 9px}
.coverage__note{font-size:1rem;line-height:1.6;color:var(--ink-3);margin-top:12px}
.cov__note p{color:var(--ink-2)}
.cov__all{font-weight:700;color:var(--pine);text-decoration:underline}
.nbhd-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.nbhd-group h3{font-size:1rem;margin-bottom:8px;color:var(--pine)}
.band--pine .nbhd-group h3{color:var(--pine-300)}
.cluster-chips{display:flex;flex-wrap:wrap;gap:7px}
.cluster-chips .chip{background:var(--paper);font-size:.8rem}
.band--pine .cluster-chips .chip{background:var(--pine-700);border-color:var(--pine-700);color:var(--on-pine)}
.areas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.area-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;border-left:4px solid var(--pine)}
.area-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.area-card__head h3{margin:0;font-size:1.08rem}
.area-card__zip{font-size:.76rem;color:var(--ink-3);font-weight:700}
.area-card p{margin:0;font-size:1rem;line-height:1.6;color:var(--ink-2)}
.area-lead{font-size:1.1rem;color:var(--ink-2);max-width:70ch}
.gbp-inline{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--pine);text-decoration:underline;margin-top:6px}
.gbp-inline svg{width:16px;height:16px;fill:var(--ember)}

/* ============================ FAQ ============================ */
.faq__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.faq-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:0;overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:15px 18px;font-weight:600;font-size:1rem;display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .pm{position:relative;flex:none;width:16px;height:16px}
.faq-item .pm::before,.faq-item .pm::after{content:"";position:absolute;background:var(--ember);left:50%;top:50%;transform:translate(-50%,-50%)}
.faq-item .pm::before{width:16px;height:2px}
.faq-item .pm::after{width:2px;height:16px;transition:transform .2s ease}
.faq-item[open] .pm::after{transform:translate(-50%,-50%) scaleY(0)}
.faq-item__a{padding:0 18px 16px;color:var(--ink-2);font-size:1rem;line-height:1.6}
.faq-item__a a{text-decoration:underline}
.faq-callcard{background:var(--pine);color:var(--on-pine);border-radius:var(--r);padding:22px;border-top:4px solid var(--ember)}
.faq-callcard h3{color:#fff}
.faq-callcard p{color:var(--on-pine-2);font-size:1rem;line-height:1.6;margin-bottom:14px}

/* ============================ Closing dispatch ============================ */
.closing__panel{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(24px,4vw,48px);align-items:center;
  background:var(--basalt-800);border-radius:var(--r);padding:clamp(26px,4vw,44px);border-left:6px solid var(--ember)}
.closing__cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:16px}
.closing__phone{font-family:var(--font-display);font-weight:700;font-size:2.2rem;color:#fff}
.nap{color:var(--on-basalt-2);font-size:1rem;line-height:1.6}
.nap b{color:#fff;font-family:var(--font-display);font-size:1.1rem}
.nap p{margin:4px 0;color:var(--on-basalt-2)}
.nap a{color:var(--pine-300)}
.nap .open{color:var(--pine-300);font-weight:600}

/* ============================ Service page ============================ */
.svc-hero{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--line);padding:clamp(28px,4vw,52px) 0}
.svc-hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,48px);align-items:center}
.breadcrumb{font-size:.82rem;color:var(--ink-3);margin-bottom:14px}
.breadcrumb a{color:var(--ink-2);text-decoration:underline}
.breadcrumb .sep{margin:0 6px;color:var(--ink-3)}
.eyebrow{display:inline-block;font-weight:700;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ember);margin-bottom:10px}
.svc-hero__lead{font-size:1.12rem;color:var(--ink-2);max-width:52ch;margin:0 0 20px}
.svc-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.svc-hero__img{border:1px solid var(--line-2);background:var(--paper);padding:7px;border-radius:var(--r);position:relative}
.svc-hero__img::after{content:"";position:absolute;top:-1px;right:-1px;width:28px;height:28px;background:var(--ember);clip-path:polygon(100% 0,0 0,100% 100%)}
.svc-hero__img img{border-radius:2px;width:100%;height:300px;object-fit:cover}

.svc-facts{background:var(--paper-3);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc-facts__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.svc-facts__item{background:var(--paper-3);padding:18px clamp(16px,3vw,28px)}
.svc-facts__item .__k{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember-600);font-weight:700;margin-bottom:5px}
.svc-facts__item .__v{font-size:1rem;line-height:1.6;color:var(--ink);font-weight:500}

.svc-process{padding:clamp(40px,6vw,72px) 0;background:var(--paper-2)}
.pflow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pstep{display:flex;gap:12px;align-items:flex-start}
.pstep__n{flex:none;width:38px;height:38px;border-radius:50%;background:var(--pine);color:#fff;font-family:var(--font-display);font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.pstep h3{font-size:1rem;margin:0 0 3px}
.pstep p{font-size:1rem;line-height:1.6;margin:0;color:var(--ink-2)}
.section-head--center{text-align:center;margin-left:auto;margin-right:auto}
.section-head--center .kicker{justify-content:center}

.svc-block{padding:clamp(34px,5vw,60px) 0}
.svc-block--l1{background:var(--paper)}
.svc-block--l2{background:var(--paper-2)}
.svc-block--feature{background:var(--pine);color:var(--on-pine)}
.svc-block--feature h2,.svc-block--feature h3{color:#fff}
.svc-block--feature p,.svc-block--feature li{color:var(--on-pine-2)}
.svc-block--feature a{color:var(--pine-300)}
.svc-prose{max-width:70ch}
.svc-prose h2{margin-top:0}
.svc-prose p,.svc-prose li{font-size:1.12rem;line-height:1.7;color:var(--ink)}
.svc-block--l1 .svc-prose p,.svc-block--l1 .svc-prose li,.svc-block--l2 .svc-prose p,.svc-block--l2 .svc-prose li{color:var(--ink)}
.svc-prose ul{padding-left:20px;margin:0 0 1rem}
.svc-prose li{margin-bottom:7px}
.svc-prose a{text-decoration:underline;color:var(--river)}
.svc-block--feature .svc-prose p,.svc-block--feature .svc-prose li{color:var(--on-pine)}
.svc-block--feature .svc-prose a{color:var(--pine-300)}
.callcard{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--ember-tint);border-left:4px solid var(--ember);border-radius:var(--r);padding:18px 22px;margin:24px 0}
.callcard p{margin:0;font-weight:600;color:var(--ink)}
.callcard .btn--call,.callcard .btn{color:#fff}
.svc-quote{max-width:70ch;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--pine);border-radius:var(--r);padding:24px 26px;box-shadow:var(--shadow-sm)}
.svc-quote .quote-mark{font-family:var(--font-display);font-size:3rem;color:var(--pine);line-height:.6}
.svc-quote blockquote{margin:6px 0 12px;font-size:1.12rem;color:var(--ink)}
.svc-quote .who{font-weight:700}
.svc-quote .where{color:var(--ink-3);font-size:.86rem}

.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.related-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;color:var(--ink);border-top:3px solid var(--pine-300);transition:transform .12s ease,box-shadow .15s ease}
.related-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.related-card h3{font-size:1.05rem;margin:0 0 6px}
.related-card p{font-size:.86rem;color:var(--ink-2);margin:0 0 10px}
.svc-card__cta{font-weight:700;color:var(--pine)}

/* about / contact helpers */
.page-hero{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--line);padding:clamp(30px,4vw,56px) 0}
.story-split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,48px);align-items:center}
.story-split .framed img{height:340px;object-fit:cover}
.stat-cluster{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.stat-block{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;border-top:4px solid var(--ember)}
.stat-block b{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--pine);display:block}
.stat-block span{font-size:.86rem;color:var(--ink-2)}
.call-panel{background:var(--pine);color:var(--on-pine);border-radius:var(--r);padding:clamp(26px,4vw,44px);text-align:center;border-bottom:5px solid var(--ember)}
.call-panel .big{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3rem);color:#fff;display:block;margin:8px 0 16px}
.nap-block{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;border-left:4px solid var(--pine)}
.nap-block h3{margin-top:0}
.nap-block a{color:var(--river);text-decoration:underline}
.nap-block p{margin:4px 0;color:var(--ink-2)}
.tellus{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.tellus ul{padding-left:18px;margin:8px 0 0}
.tellus li{margin-bottom:7px;color:var(--ink-2)}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.legal-prose{max-width:74ch}
.legal-prose h2{margin-top:1.6em}
.legal-prose p,.legal-prose li{color:var(--ink-2);font-size:1rem}
.legal-prose a{text-decoration:underline}

/* ============================ Tools ============================ */
.tool-hero{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--line);padding:clamp(28px,4vw,52px) 0}
.tool-hero h1{margin:6px 0 12px}
.tool-hero p{max-width:56ch;color:var(--ink-2);font-size:1.08rem}
.tool-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start;margin-top:26px}
.tool-form{display:grid;gap:16px}
.tool-field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px;color:var(--ink)}
.tool-field select{width:100%;padding:11px 13px;font-family:var(--font-body);font-size:.98rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r)}
.tool-field select:focus{outline:2px solid var(--pine);border-color:var(--pine)}
.tool-result{background:var(--pine);color:var(--on-pine);border-radius:var(--r);padding:24px;border-bottom:5px solid var(--ember)}
.tool-result .rk{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--pine-300);font-weight:700}
.tool-result .rv{font-family:var(--font-display);font-weight:700;font-size:2.2rem;color:#fff;margin:6px 0}
.tool-result .rsub{color:var(--on-pine-2);font-size:.9rem;margin-bottom:14px}
.tool-result .tier{margin-top:16px;padding-top:16px;border-top:1px solid var(--pine-700)}
.tool-note{font-size:.8rem;color:var(--on-pine-2);margin:14px 0}
.tool-result .btn--ember{margin-top:6px}

/* ============================ Sticky call ============================ */
.floatcall{position:fixed;right:20px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:8px;
  background:var(--ember);color:#fff;font-weight:700;padding:12px 18px;border-radius:100px;box-shadow:var(--shadow-md)}
.floatcall svg{fill:#fff}
.callbar{display:none}
.dot--pulse{position:relative}
.dot--pulse{width:9px;height:9px;border-radius:50%;background:#fff;display:inline-block}

/* ============================ Footer ============================ */
.map-band{background:var(--basalt)}
.map-band iframe{display:block;width:100%;height:340px;border:0}
.footer{background:var(--basalt);color:var(--on-basalt-2);padding:48px 0 28px}
.footer h4{color:#fff;font-size:.95rem;margin:0 0 12px;font-family:var(--font-display)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:28px}
.footer .brand__name,.footer .brand{color:#fff}
.footer .brand__sub{color:var(--pine-300)}
.footer__brand p{font-size:1rem;line-height:1.6;margin:14px 0;color:var(--on-basalt-2);max-width:38ch}
.footer__gbp{display:inline-flex;align-items:center;gap:8px;color:var(--pine-300);font-weight:700;text-decoration:underline}
.footer__gbp svg{width:18px;height:18px;fill:var(--pine-300)}
.footer__links{display:flex;flex-direction:column;gap:8px}
.footer__links a{color:var(--on-basalt-2);font-size:1rem;line-height:1.6}
.footer__links a:hover{color:#fff}
.footer__contact p{margin:5px 0;font-size:1rem;line-height:1.6}
.footer__contact .tel{color:#fff;font-weight:700;font-size:1.15rem}
.footer__email{color:var(--on-basalt-2)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid var(--basalt-700);font-size:.82rem;color:var(--on-basalt-2)}
.footer__legal{display:flex;gap:16px}
.footer__legal a{color:var(--on-basalt-2)}
.footer__disclaimer{margin:14px 0 0;font-size:.8rem}
.footer__disclaimer a{color:var(--on-basalt-2);text-decoration:underline}

/* ============================ Responsive ============================ */
@media (max-width:960px){
  .ledger{grid-template-columns:1fr}
  .ledger__spine{position:static}
  .ledger__num{font-size:1.8rem}
  .hero__grid{grid-template-columns:1fr}
  .hero__aside{order:2}
  .season{grid-template-columns:1fr}
  .why-row{grid-template-columns:1fr 1fr}
  .range-cards{grid-template-columns:1fr}
  .reviews{grid-template-columns:1fr}
  .review-stack{grid-template-columns:1fr}
  .review-card:nth-child(even){margin-top:0}
  .cases{grid-template-columns:1fr}
  .cov,.cov--compact{grid-template-columns:1fr}
  .nbhd-groups{grid-template-columns:1fr 1fr}
  .areas-grid{grid-template-columns:1fr}
  .claim-row{grid-template-columns:1fr}
  .emergency__grid{grid-template-columns:1fr}
  .svc-hero__grid,.story-split,.contact-cards,.tool-wrap{grid-template-columns:1fr}
  .svc-facts__grid,.pflow{grid-template-columns:1fr 1fr}
  .related-grid{grid-template-columns:1fr}
  .closing__panel{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .hamburger{display:flex}
  .nav{position:fixed;inset:0;top:0;background:var(--paper);flex-direction:column;align-items:stretch;justify-content:flex-start;
    padding:88px 24px 32px;gap:4px;transform:translateX(100%);transition:transform .25s ease;z-index:55;overflow-y:auto}
  body.is-menu .nav{transform:translateX(0)}
  body.is-menu .header{box-shadow:none}
  body.is-menu{overflow:hidden}
  /* open menu: lift hamburger above the nav overlay and morph bars into a close X */
  body.is-menu .hamburger{position:relative;z-index:60}
  body.is-menu .hamburger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  body.is-menu .hamburger span:nth-child(2){opacity:0}
  body.is-menu .hamburger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .nav__link,.drop__toggle{width:100%;text-align:left;font-size:1.05rem;padding:13px 8px;border-bottom:1px solid var(--line)}
  .drop{width:100%}
  .drop__menu{position:static;display:none;box-shadow:none;border:0;border-left:2px solid var(--line);border-radius:0;min-width:0;margin:2px 0 6px 8px;max-height:none}
  .drop.is-open .drop__menu{display:flex}
  .drop:hover .drop__menu{display:none}
  .drop.is-open .drop__menu{display:flex}
  .nav__cta{margin:12px 0 0;justify-content:center}
  .svc-index{grid-template-columns:1fr}
  .svc-row--lead{grid-column:auto}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:46;background:var(--ember);color:#fff;
    align-items:center;justify-content:space-between;gap:12px;padding:9px 16px;box-shadow:0 -2px 10px rgba(0,0,0,.2)}
  .callbar__label{display:flex;flex-direction:column;line-height:1.1}
  .callbar__label small{font-size:.72rem;color:#FFF3EC}
  .callbar__num{font-family:var(--font-display);font-weight:700;font-size:1.15rem}
  .callbar__btn{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ember-600);font-weight:700;padding:9px 16px;border-radius:100px}
  .callbar__btn .dot--pulse{background:var(--ember)}
  .floatcall{display:none}
  body{padding-bottom:58px}
}
@media (max-width:620px){
  .ribbon{display:none}
  .why-row,.svc-facts__grid,.pflow,.nbhd-groups,.gallery,.stat-cluster,.footer__grid,.review-stack{grid-template-columns:1fr}
  .hero__grid{padding-top:22px}
  .hero__sub{margin-bottom:16px}
  .hero__cta{flex-direction:column;align-items:stretch}
  .hero__callblock{align-items:flex-start}
  .closing__panel{padding:22px}
  .closing__phone{font-size:1.8rem}
}
