/* ============================================================================
   WATER DAMAGE REMOVAL LAS VEGAS  ---  "DESERT NIGHT" DESIGN SYSTEM
   Dark-forward near-black charcoal, lit by electric blue (--volt) + cyan.
   Anton condensed poster display + Inter body. "The Charged Edge" motif:
   chamfered 45deg cut corners, 1px electric hairlines, cyan bloom.
   Deliberate dark/light banding: dark = mood + urgency, light = dense reading.
   ONE stylesheet drives the homepage AND every service / tool / about / contact
   / legal page. Service-page + tool + about/contact classes live near the end.
   ==========================================================================*/

/* ---------- 1. TOKENS ---------- */
:root{
  /* dark ramp (cool charcoal, faintly blue = "night") */
  --ink-950:#080B12;
  --ink-900:#0D131F;
  --ink-850:#121A28;
  --ink-800:#182132;
  --ink-700:#243248;
  --ink-600:#3A4A63;
  /* text on dark */
  --on-dark:#F2F6FF;
  --on-dark-2:#B4C0D6;
  --on-dark-3:#8593AC;
  /* electric accents */
  --volt:#2563FF;
  --volt-bright:#4D8BFF;
  --cyan:#22D3EE;
  --pulse:#FF3D9A;
  --on-volt:#FFFFFF;
  /* light surfaces */
  --paper:#FFFFFF;
  --paper-2:#F4F7FB;
  --paper-3:#EAF0F8;
  /* text on light */
  --ink:#0D131F;
  --ink-2:#48566E;
  --ink-3:#6B7A93;
  /* lines + tints */
  --line:#DCE4EF;
  --line-2:#C3CEDE;
  --volt-tint:#EAF1FF;
  --cyan-tint:#E2FBFE;
  /* radius */
  --r-xs:2px;
  --r-sm:4px;
  --chamfer:12px;
  --chamfer-lg:24px;
  /* shadow + glow */
  --edge-hair:inset 0 0 0 1px rgba(255,255,255,.07);
  --edge-volt:inset 0 0 0 1px rgba(37,99,255,.45);
  --edge-cyan:inset 0 0 0 1px rgba(34,211,238,.40);
  --edge-line:inset 0 0 0 1px var(--line);
  --glow-volt:0 6px 24px rgba(37,99,255,.40);
  --glow-cyan:0 0 22px rgba(34,211,238,.32);
  --shadow-sm:0 2px 8px rgba(13,19,31,.06);
  --shadow-md:0 12px 30px rgba(13,19,31,.10);
  /* signature chamfer clip-paths (one cut corner) */
  --clip-tr:polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
  --clip-bl:polygon(0 0, 100% 0, 100% 100%, 12px 100%, 0 calc(100% - 12px));
  --clip-tr-lg:polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
  --clip-bl-lg:polygon(0 0, 100% 0, 100% 100%, 24px 100%, 0 calc(100% - 24px));
  /* fonts */
  --font-display:'Anton','Arial Narrow',Impact,sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* layout */
  --wrap:1200px;
  --gutter:24px;
}

/* ---------- 2. 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:1.0625rem;
  line-height:1.6;
  color:var(--on-dark);
  background:var(--ink-950);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{margin:0;}
p{margin:0 0 1rem;}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ---------- 3. TYPOGRAPHY ---------- */
.display,h1,h2{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-.005em;line-height:.96;}
.kicker,.eyebrow{
  font-family:var(--font-body);font-weight:700;font-size:.8rem;
  text-transform:uppercase;letter-spacing:.14em;color:var(--cyan);
  margin:0 0 .6rem;display:block;
}
.kicker--volt{color:var(--volt);}
.h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:1.35rem;line-height:1.2;}
.lead{font-size:1.15rem;line-height:1.7;color:var(--on-dark-2);}
.muted{color:var(--on-dark-3);}

/* ---------- 4. LAYOUT / BANDS ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);width:100%;}
.section{padding:76px 0;position:relative;}
.section--tight{padding:52px 0;}
/* dark bands */
.band-d1{background:var(--ink-900);color:var(--on-dark);}
.band-d2{background:var(--ink-850);color:var(--on-dark);}
.band-d0{background:var(--ink-950);color:var(--on-dark);}
/* light bands */
.band-l1{background:var(--paper);color:var(--ink);}
.band-l2{background:var(--paper-2);color:var(--ink);}
.band-l3{background:var(--paper-3);color:var(--ink);}
/* seam: a bold 2px electric rule between bands (mobile-safe vs a diagonal notch) */
.seam-volt{border-top:2px solid var(--volt);}
.seam-cyan{border-top:2px solid rgba(34,211,238,.5);}
/* desert-night horizon glow (hero + closing) */
.glow-floor{position:relative;overflow:hidden;}
.glow-floor::before{
  content:"";position:absolute;left:50%;bottom:-40%;transform:translateX(-50%);
  width:120%;height:80%;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at center,rgba(37,99,255,.28),rgba(34,211,238,.10) 40%,transparent 70%);
}
.glow-floor>*{position:relative;z-index:1;}

.section-head{max-width:760px;margin:0 0 34px;}
.section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,4vw,3rem);}
.band-l1 .section-head h2,.band-l2 .section-head h2,.band-l3 .section-head h2{color:var(--ink);}
.band-l1 .kicker,.band-l2 .kicker,.band-l3 .kicker{color:var(--volt);}
.section-head p{margin-top:.5rem;}
.band-l1 .section-head p,.band-l2 .section-head p,.band-l3 .section-head p{color:var(--ink-2);}

/* ---------- 5. BUTTONS + CHIPS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;
  padding:.85rem 1.35rem;border:0;color:var(--on-dark);background:var(--ink-800);
  clip-path:var(--clip-tr);box-shadow:var(--edge-hair);transition:transform .15s,box-shadow .15s,background .15s,filter .15s;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);}
.btn--volt{background:var(--volt);color:var(--on-volt);box-shadow:none;filter:drop-shadow(0 6px 16px rgba(37,99,255,.42));}
.btn--volt:hover{background:var(--volt-bright);filter:drop-shadow(0 8px 22px rgba(37,99,255,.55));}
.btn--ghost{background:transparent;color:var(--on-dark);box-shadow:var(--edge-cyan);}
.btn--ghost:hover{box-shadow:var(--edge-cyan),var(--glow-cyan);}
.btn--lg{padding:1.1rem 1.7rem;font-size:1.05rem;}
.btn--block{display:flex;width:100%;}
/* on light bands, ghost button flips ink */
.band-l1 .btn--ghost,.band-l2 .btn--ghost,.band-l3 .btn--ghost{color:var(--ink);box-shadow:inset 0 0 0 1px var(--volt);}

.chip{
  display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.8rem;
  letter-spacing:.02em;padding:.4rem .7rem;background:var(--ink-800);color:var(--on-dark-2);
  clip-path:var(--clip-tr);box-shadow:var(--edge-hair);
}
.chip svg{width:14px;height:14px;flex:none;}
.chip--cyan{color:var(--cyan);box-shadow:var(--edge-cyan);}
.chip--rate{color:var(--cyan);}
.dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);flex:none;box-shadow:0 0 8px var(--cyan);}
.dot--pulse{background:var(--pulse);box-shadow:0 0 8px var(--pulse);animation:pulse 1.8s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.55;transform:scale(.82);}}

/* ---------- 6. CARDS (generic) ---------- */
.card{background:var(--ink-800);color:var(--on-dark);clip-path:var(--clip-tr);box-shadow:var(--edge-hair);padding:1.4rem;transition:box-shadow .18s,transform .18s;}
.card:hover{box-shadow:var(--edge-cyan);transform:translateY(-2px);}
.band-l1 .card,.band-l2 .card,.band-l3 .card{background:var(--paper);color:var(--ink);box-shadow:var(--edge-line);}
.band-l1 .card:hover,.band-l2 .card:hover,.band-l3 .card:hover{box-shadow:var(--edge-line);filter:drop-shadow(var(--shadow-sm));}

/* ---------- 7. RIBBON (top credibility strip) ---------- */
.ribbon{background:var(--ink-950);color:var(--on-dark-2);font-size:.78rem;border-bottom:1px solid var(--ink-700);}
.ribbon__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;padding:6px 0;}
.ribbon__list{display:flex;align-items:center;gap:0;flex-wrap:wrap;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.ribbon__list li{display:flex;align-items:center;}
.ribbon__list li:not(:last-child)::after{content:"";width:1px;height:12px;background:var(--cyan);margin:0 .8rem;opacity:.7;}
.ribbon__call{color:var(--cyan);font-weight:800;letter-spacing:.04em;white-space:nowrap;}
.ribbon__call:hover{color:var(--volt-bright);}

/* ---------- 8. HEADER / NAV ---------- */
.header{position:sticky;top:0;z-index:60;background:rgba(13,19,31,.92);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--ink-700);transition:background .2s,box-shadow .2s;}
.header.is-stuck{background:rgba(8,11,18,.97);box-shadow:0 6px 24px rgba(0,0,0,.4);}
.header__row{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;min-height:72px;}
/* brand / logo lockup */
.brand{display:flex;align-items:center;gap:.6rem;flex:none;}
.brand__mark{width:40px;height:40px;flex:none;filter:drop-shadow(0 0 10px rgba(37,99,255,.35));}
.brand__mark svg{width:100%;height:100%;display:block;}
.brand__txt{display:flex;flex-direction:column;line-height:1;}
.brand__name{font-family:var(--font-display);font-size:1.02rem;letter-spacing:.01em;color:var(--on-dark);text-transform:uppercase;}
.brand__sub{display:flex;align-items:center;gap:.35rem;font-weight:700;font-size:.62rem;letter-spacing:.22em;color:var(--on-dark-3);text-transform:uppercase;margin-top:2px;}
.brand__tick{width:10px;height:2px;background:var(--cyan);display:inline-block;}
/* nav */
.nav{display:flex;align-items:center;gap:.3rem;}
.nav__link{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .8rem;font-weight:600;font-size:.95rem;color:var(--on-dark-2);}
.nav__link:hover{color:var(--on-dark);}
.drop{position:relative;}
.drop__toggle{background:none;border:0;color:var(--on-dark-2);display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .8rem;font-weight:600;font-size:.95rem;}
.drop__toggle:hover,.drop.is-open .drop__toggle{color:var(--on-dark);}
.drop__caret{width:9px;height:9px;transition:transform .2s;}
.drop.is-open .drop__caret{transform:rotate(180deg);}
.drop__menu{
  position:absolute;top:calc(100% + 10px);left:0;min-width:290px;z-index:70;
  background:var(--ink-850);box-shadow:var(--edge-volt),0 20px 40px rgba(0,0,0,.5);
  clip-path:var(--clip-tr);padding:.5rem;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s;
}
/* transparent hover bridge so submenu doesn't close before the pointer arrives */
.drop__menu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px;}
.drop:hover .drop__menu,.drop:focus-within .drop__menu,.drop.is-open .drop__menu{opacity:1;visibility:visible;transform:translateY(0);}
.drop__menu a{display:block;padding:.6rem .7rem;font-size:.92rem;font-weight:500;color:var(--on-dark-2);border-left:2px solid transparent;}
.drop__menu a:hover{color:var(--on-dark);background:var(--ink-800);border-left-color:var(--cyan);}
.nav__cta{margin-left:.4rem;}
/* hamburger */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:0;padding:10px;}
.hamburger span{height:2px;background:var(--on-dark);transition:transform .2s,opacity .2s;}
.is-menu .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.is-menu .hamburger span:nth-child(2){opacity:0;}
.is-menu .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- 9. STICKY CALL ELEMENTS ---------- */
/* mobile bottom call bar */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;display:none;
  align-items:center;justify-content:space-between;gap:.75rem;
  background:var(--volt);color:var(--on-volt);padding:.7rem var(--gutter);
  box-shadow:0 -6px 20px rgba(0,0,0,.35);overflow-x:clip;
}
.callbar__label{display:flex;flex-direction:column;line-height:1.1;min-width:0;}
.callbar__label small{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-weight:700;}
.callbar__num{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.01em;}
.callbar__btn{background:var(--ink-950);color:var(--on-volt);font-weight:800;padding:.7rem 1rem;clip-path:var(--clip-tr);white-space:nowrap;display:flex;align-items:center;gap:.4rem;}
/* desktop persistent floating call button */
.floatcall{
  position:fixed;right:22px;bottom:22px;z-index:70;display:inline-flex;align-items:center;gap:.5rem;
  background:var(--volt);color:var(--on-volt);font-weight:800;letter-spacing:.03em;
  padding:.9rem 1.15rem;clip-path:var(--clip-tr);filter:drop-shadow(var(--glow-volt));
  animation:floatglow 3s ease-in-out infinite;
}
.floatcall:hover{background:var(--volt-bright);}
@keyframes floatglow{0%,100%{filter:drop-shadow(0 6px 18px rgba(37,99,255,.35));}50%{filter:drop-shadow(0 6px 26px rgba(34,211,238,.5));}}

/* ---------- 10. HERO (type-forward night poster + action rail) ---------- */
.hero{background:linear-gradient(180deg,var(--ink-900) 0%,var(--ink-950) 100%);color:var(--on-dark);position:relative;overflow:hidden;}
.hero::after{/* faint contour texture, very low alpha */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:
    radial-gradient(1200px 380px at 78% -8%,rgba(37,99,255,.18),transparent 60%),
    radial-gradient(900px 360px at 10% 108%,rgba(34,211,238,.14),transparent 60%);
}
.hero__inner{position:relative;z-index:2;padding:64px 0 0;}
.hero__eyebrow{color:var(--cyan);font-weight:700;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.1rem;}
.hero__statement{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2.75rem,6.5vw,5.5rem);line-height:.92;letter-spacing:-.01em;color:var(--on-dark);max-width:16ch;margin:0 0 .7rem;}
.hero__statement .cy{color:var(--cyan);}
.hero__h1{font-family:var(--font-body);font-weight:800;text-transform:none;letter-spacing:0;font-size:clamp(1.1rem,2.2vw,1.5rem);line-height:1.25;color:var(--on-dark-2);max-width:34ch;margin:0 0 1rem;}
.hero__sub{font-size:1.12rem;color:var(--on-dark-2);max-width:52ch;margin:0 0 1.5rem;}
.hero__trust{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2.4rem;}
/* action rail */
.rail{display:grid;grid-template-columns:1.4fr 3fr auto;gap:0;margin:0 -2px;}
.rail__call{
  background:var(--volt);color:var(--on-volt);padding:1.5rem 1.4rem;clip-path:var(--clip-bl-lg);
  filter:drop-shadow(0 10px 30px rgba(37,99,255,.5));display:flex;flex-direction:column;justify-content:center;gap:.15rem;
}
.rail__call small{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.9;}
.rail__num{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:.01em;line-height:1;}
.rail__call span.hint{font-size:.78rem;opacity:.9;font-weight:600;margin-top:.25rem;}
.rail__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--ink-700);box-shadow:var(--edge-hair);}
.rail__stat{background:var(--ink-850);padding:1.15rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.15rem;}
.rail__stat b{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--volt-bright);line-height:1;letter-spacing:.01em;}
.rail__stat b.cy{color:var(--cyan);}
.rail__stat span{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-3);font-weight:600;}
.rail__open{background:var(--ink-850);box-shadow:var(--edge-cyan);padding:1rem 1.1rem;display:flex;align-items:center;gap:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--cyan);clip-path:var(--clip-tr);}

/* ---------- 11. EMERGENCY HELP BLOCK ---------- */
.emergency{border-top:2px solid var(--volt);}
.emergency__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start;}
.emg-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.emg-cell{background:var(--ink-800);box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:1.3rem 1.15rem;}
.emg-cell:nth-child(2){margin-top:18px;}
.emg-cell:nth-child(3){margin-top:36px;}
.emg-cell b.n{font-family:var(--font-display);font-size:2.5rem;color:var(--cyan);line-height:1;display:block;margin-bottom:.5rem;}
.emg-cell p{margin:0;font-size:.98rem;color:var(--on-dark-2);}
.emg-call{background:var(--ink-850);box-shadow:var(--edge-volt);clip-path:var(--clip-bl);padding:1.6rem;display:flex;flex-direction:column;justify-content:center;gap:.8rem;}
.emg-call h3{font-family:var(--font-display);font-size:1.6rem;text-transform:uppercase;line-height:1;color:var(--on-dark);}
.emg-call .big{font-family:var(--font-display);font-size:clamp(2rem,4vw,2.7rem);color:var(--cyan);line-height:1;letter-spacing:.01em;}

/* ---------- 12. SERVICES GRID (3 labeled clusters + commercial banner) ---------- */
.svc-cluster{margin-bottom:2rem;}
.svc-cluster__label{display:flex;align-items:center;gap:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;color:var(--volt);margin-bottom:1rem;}
.svc-cluster__label::after{content:"";flex:1;height:1px;background:var(--line);}
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;}
.svc-card{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s,filter .18s;min-width:0;}
.svc-card:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--volt);filter:drop-shadow(var(--glow-cyan));}
.svc-card__img{position:relative;aspect-ratio:16/10;background:var(--ink-800);overflow:hidden;}
.svc-card__img img{width:100%;height:100%;object-fit:cover;}
.svc-card__body{padding:1.05rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1;}
.svc-card__body h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.02em;font-size:1.02rem;line-height:1.2;color:var(--ink);}
.svc-card__body p{margin:0;font-size:.92rem;color:var(--ink-2);flex:1;}
.svc-card__cta{color:var(--volt);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.35rem;}
.svc-card--lead{box-shadow:inset 0 0 0 1.5px var(--volt);}
.svc-card--lead:hover{box-shadow:inset 0 0 0 1.5px var(--volt);filter:drop-shadow(var(--glow-cyan));}
.svc-card__tag{position:absolute;top:0;right:0;z-index:2;background:var(--volt);color:var(--on-volt);font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.32rem .55rem;clip-path:polygon(10px 0,100% 0,100% 100%,0 100%);}
.svc-card--featured{grid-column:span 2;}
.svc-card--featured .svc-card__img{aspect-ratio:auto;}
/* "Desert-home failures" bento (5 cards): lead spans 2 cols x 2 rows, the other
   four fill the 2x2 block beside it, so a 4-col grid packs with no orphan cell */
.svc-cluster--bento .svc-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;}
.svc-cluster--bento .svc-card--lead{grid-column:span 2;grid-row:span 2;}
.svc-cluster--bento .svc-card--lead .svc-card__img{aspect-ratio:auto;flex:1 1 auto;min-height:250px;}
.svc-cluster--bento .svc-card--lead .svc-card__body{flex:0 0 auto;}
.svc-banner{
  margin-top:1.4rem;background:linear-gradient(120deg,var(--ink-900),var(--ink-850));color:var(--on-dark);
  clip-path:var(--clip-tr-lg);box-shadow:var(--edge-volt);padding:1.7rem 1.8rem;
  display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
}
.svc-banner h3{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,2rem);text-transform:uppercase;line-height:1;color:var(--on-dark);}
.svc-banner p{margin:.5rem 0 0;color:var(--on-dark-2);max-width:56ch;font-size:.98rem;}
/* svc-banner is a DARK card; when it sits inside a light .band-lX the
   .band-lX .btn--ghost rule (color:var(--ink)) would paint the ghost button dark-on-dark
   (invisible). Restore light text + cyan edge for this dark-context ghost. */
.svc-banner .btn--ghost{color:var(--on-dark);box-shadow:var(--edge-cyan);}

/* ---------- 13. LOCAL RISK ("Desert rules") ---------- */
.risk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;}
.risk-card{position:relative;background:linear-gradient(180deg,var(--ink-850),var(--ink-900));box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:1.7rem 1.5rem 1.6rem;min-width:0;transition:box-shadow .18s,transform .18s;overflow:hidden;}
.risk-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--volt),var(--cyan));opacity:0;transition:opacity .18s;}
.risk-card:hover{box-shadow:var(--edge-cyan);transform:translateY(-3px);}
.risk-card:hover::before{opacity:1;}
/* icon badge: an inline-flex tile so width/height apply and the svg sits at a fixed size */
.risk-card__ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:1.1rem;background:rgba(34,211,238,.09);box-shadow:var(--edge-cyan);clip-path:var(--clip-tr);color:var(--cyan);}
.risk-card__ico svg{width:26px;height:26px;fill:none;stroke:var(--cyan);stroke-width:1.7;}
.risk-card h3{font-family:var(--font-body);font-weight:800;font-size:1.02rem;text-transform:uppercase;letter-spacing:.02em;color:var(--on-dark);margin-bottom:.45rem;line-height:1.25;}
.risk-card p{margin:0;font-size:.92rem;color:var(--on-dark-2);line-height:1.6;}
.risk-links{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.9rem;}
.risk-links a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px;}
.risk-links a:hover{color:var(--volt-bright);}

/* ---------- 14. REVIEWS (aggregate panel + horizontal rail) ---------- */
.reviews__split{display:grid;grid-template-columns:300px 1fr;gap:1.6rem;align-items:stretch;}
.agg-panel{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-bl);padding:1.7rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;}
.agg-panel .score{font-family:var(--font-display);font-size:3.6rem;line-height:1;color:var(--ink);}
.agg-panel .stars{color:#C77F0A;font-size:1.15rem;letter-spacing:.12em;}
.agg-panel .count{font-weight:700;color:var(--ink-2);font-size:.92rem;}
.agg-panel .since{font-size:.86rem;color:var(--ink-3);}
.review-rail{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.review-rail::-webkit-scrollbar{height:8px;}
.review-rail::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;}
.review-card{flex:0 0 300px;scroll-snap-align:start;background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.3rem;display:flex;flex-direction:column;gap:.6rem;min-width:0;}
.review-card .quote-mark{font-family:var(--font-display);font-size:2.4rem;color:#0C8DA0;line-height:.6;height:1rem;}
.review-card .stars{color:#C77F0A;font-size:.9rem;letter-spacing:.1em;}
.review-card p{margin:0;font-size:.94rem;color:var(--ink-2);line-height:1.6;flex:1;}
.review-card .who{font-weight:800;color:var(--ink);font-size:.92rem;}
.review-card .where{font-size:.82rem;color:var(--ink-3);}
.review-card .when{margin-top:-.35rem;font-size:.72rem;color:var(--ink-3);opacity:.75;letter-spacing:.06em;text-transform:uppercase;}

/* ---------- 15. COVERAGE (valley locator + cluster chips + zip grid) ---------- */
.coverage__split{display:grid;grid-template-columns:1fr 1.25fr;gap:2rem;align-items:center;}
.valley-locator{background:var(--ink-900);box-shadow:var(--edge-cyan);clip-path:var(--clip-tr-lg);padding:1.4rem;}
.valley-locator svg{width:100%;height:auto;display:block;}
.cluster-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.4rem;}
.cluster-chips .chip{color:var(--on-dark);box-shadow:var(--edge-cyan);background:var(--ink-800);}
.zip-head{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:var(--cyan);margin-bottom:.7rem;}
.zip-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.4rem;}
.zip-grid span{background:var(--ink-850);box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:.4rem 0;text-align:center;font-size:.82rem;font-weight:600;color:var(--on-dark-2);font-variant-numeric:tabular-nums;}
.coverage__note{margin-top:1.1rem;font-size:.9rem;color:var(--on-dark-3);}

/* ---------- 16. PROCESS TIMELINE (glowing cyan connector) ---------- */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;position:relative;}
.timeline::before{content:"";position:absolute;top:26px;left:8%;right:8%;height:2px;background:linear-gradient(90deg,var(--volt),var(--cyan));box-shadow:0 0 14px rgba(34,211,238,.6);z-index:0;}
.tl-step{position:relative;z-index:1;background:var(--ink-850);box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:1.2rem 1rem;text-align:left;}
.tl-step .num{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;color:var(--ink-950);background:var(--cyan);clip-path:var(--clip-tr);margin-bottom:.8rem;box-shadow:0 0 16px rgba(34,211,238,.5);}
.tl-step h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:.95rem;color:var(--on-dark);margin-bottom:.3rem;line-height:1.2;}
.tl-step p{margin:0;font-size:.88rem;color:var(--on-dark-2);}

/* ---------- 17. REASSURANCE (why-row + cost ranges + carriers + credentials) ---------- */
.why-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2.4rem;}
.why-cell{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.5rem 1.35rem;text-align:left;min-width:0;transition:box-shadow .18s,transform .18s;}
.why-cell:hover{box-shadow:inset 0 0 0 1px var(--volt);transform:translateY(-2px);}
/* icon badge: inline-flex tile so width/height apply and the svg sits at a fixed size */
.why-cell__ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:.9rem;background:var(--volt-tint);box-shadow:inset 0 0 0 1px rgba(37,99,255,.22);clip-path:var(--clip-tr);color:var(--volt);}
.why-cell__ico svg{width:24px;height:24px;fill:none;stroke:var(--volt);stroke-width:1.7;}
.why-cell h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;font-size:.92rem;letter-spacing:.02em;color:var(--ink);margin-bottom:.35rem;line-height:1.2;}
.why-cell p{margin:0;font-size:.88rem;color:var(--ink-2);line-height:1.55;}
.range-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-bottom:2.2rem;}
.range-card{background:var(--paper-2);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.4rem;min-width:0;}
.range-card h3{font-family:var(--font-display);text-transform:uppercase;font-size:1.3rem;color:var(--ink);line-height:1;margin-bottom:.5rem;}
.range-card .money{font-family:var(--font-display);font-size:1.7rem;color:var(--volt);line-height:1;letter-spacing:.01em;}
.range-card p{margin:.5rem 0 0;font-size:.88rem;color:var(--ink-2);}
.range-card .cov{margin-top:.7rem;font-size:.82rem;color:var(--ink-3);font-style:italic;}
.claim-row{display:grid;grid-template-columns:1fr 1.2fr;gap:1.6rem;align-items:center;background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.6rem;}
.claim-row p{margin:0;color:var(--ink-2);}
.carrier-wall{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 1.8rem;}
.carrier-wall img{height:30px;width:auto;opacity:.72;filter:grayscale(1);transition:opacity .2s,filter .2s;}
.carrier-wall img:hover{opacity:1;filter:grayscale(0);}
.credentials{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.4rem;font-size:.88rem;color:var(--ink-2);}
.credentials .logo{height:30px;width:auto;}
.credentials b{color:var(--ink);}

/* ---------- 18. GALLERY FILMSTRIP ---------- */
.filmstrip{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.filmstrip::-webkit-scrollbar{height:8px;}
.filmstrip::-webkit-scrollbar-thumb{background:var(--ink-700);border-radius:8px;}
.film-frame{flex:0 0 300px;scroll-snap-align:start;position:relative;clip-path:var(--clip-tr);box-shadow:var(--edge-hair);overflow:hidden;background:var(--ink-800);transition:box-shadow .18s;}
.film-frame:hover{box-shadow:var(--edge-cyan);}
.film-frame img{width:100%;height:210px;object-fit:cover;}
.film-frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:.7rem .9rem;font-size:.82rem;font-weight:600;color:var(--on-dark);background:linear-gradient(0deg,rgba(8,11,18,.9),transparent);}

/* ---------- 18b. FEATURED JOB CASE STUDIES (owner review 2026-09-09, rule #5) ---------- */
.jobs-cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;margin-bottom:1.8rem;}
.case-card{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);overflow:hidden;min-width:0;transition:box-shadow .18s,transform .18s;}
.case-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--volt);}
.case-card img{width:100%;height:190px;object-fit:cover;display:block;}
.case-card figcaption{padding:1.1rem 1.3rem 1.4rem;}
.case-card__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;}
.case-card__head h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.02em;font-size:.98rem;color:var(--ink);margin:0;line-height:1.25;}
.case-card__date{font-weight:700;font-size:.76rem;color:var(--volt);letter-spacing:.03em;font-variant-numeric:tabular-nums;white-space:nowrap;}
.case-card__area{margin:.2rem 0 0;font-size:.82rem;color:var(--ink-3);}
.case-card dl{margin:.8rem 0 0;display:grid;gap:.55rem;}
.case-card dl>div{min-width:0;}
.case-card dt{font-weight:800;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);}
.case-card dd{margin:.15rem 0 0;font-size:.86rem;color:var(--ink-2);line-height:1.55;overflow-wrap:anywhere;}

/* ---------- 19. FAQ (two-column accordion) ---------- */
.faq__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.6rem;align-items:start;}
.faq-item{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);overflow:hidden;}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.2rem;font-weight:700;color:var(--ink);font-size:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .pm{width:20px;height:20px;flex:none;position:relative;}
.faq-item summary .pm::before,.faq-item summary .pm::after{content:"";position:absolute;background:var(--volt);}
.faq-item summary .pm::before{top:9px;left:2px;right:2px;height:2px;}
.faq-item summary .pm::after{left:9px;top:2px;bottom:2px;width:2px;transition:transform .2s;}
.faq-item[open] summary .pm::after{transform:scaleY(0);}
.faq-item__a{padding:0 1.2rem 1.15rem;color:var(--ink-2);font-size:.95rem;}
.faq-item__a a{color:var(--volt);text-decoration:underline;text-underline-offset:3px;}
.faq-callcard{background:var(--ink-900);color:var(--on-dark);clip-path:var(--clip-bl);box-shadow:var(--edge-volt);padding:1.5rem;align-self:start;}
.faq-callcard h3{font-family:var(--font-display);font-size:1.5rem;text-transform:uppercase;line-height:1;margin-bottom:.6rem;}
.faq-callcard p{color:var(--on-dark-2);font-size:.92rem;}

/* ---------- 20. CLOSING DISPATCH PANEL + NAP ---------- */
.closing__panel{
  background:linear-gradient(160deg,var(--ink-900),var(--ink-950));clip-path:var(--clip-tr-lg);
  box-shadow:var(--edge-volt);padding:3rem 2.4rem;display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;
}
.closing__panel h2{font-size:clamp(2rem,4.4vw,3.2rem);color:var(--on-dark);margin-bottom:1rem;}
.closing__panel h2 .cy{color:var(--cyan);}
.closing__cta{display:flex;flex-direction:column;gap:.7rem;}
.closing__phone{font-family:var(--font-display);font-size:clamp(2rem,4vw,2.8rem);color:var(--cyan);line-height:1;letter-spacing:.01em;}
.nap{background:var(--ink-850);box-shadow:var(--edge-hair);clip-path:var(--clip-bl);padding:1.5rem;font-size:.95rem;color:var(--on-dark-2);}
.nap b{color:var(--on-dark);display:block;font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem;}
.nap p{margin:0 0 .35rem;}
.nap .open{color:var(--cyan);font-weight:700;}

/* ---------- 21. ADDRESS-PIN MAP ---------- */
.map-band{padding:0;line-height:0;background:var(--ink-950);}
.map-embed{display:block;}
.map-band img,.map-embed img{width:100%;height:360px;object-fit:cover;display:block;filter:grayscale(.35) invert(.9) hue-rotate(180deg) contrast(.9);}

/* ---------- 22. FOOTER ---------- */
.footer{background:var(--ink-950);color:var(--on-dark-2);padding:56px 0 28px;border-top:1px solid var(--ink-700);}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2rem;margin-bottom:2rem;}
.footer__brand .brand{margin-bottom:1rem;}
.footer__brand p{font-size:.92rem;color:var(--on-dark-3);max-width:34ch;}
/* "Find us on Google" GBP badge (owner review 2026-09-09, rule #3) */
.footer__gbp{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.1rem;padding:.55rem .9rem;font-weight:700;font-size:.82rem;letter-spacing:.01em;color:var(--on-dark-2);background:var(--ink-800);clip-path:var(--clip-tr);box-shadow:var(--edge-hair);transition:box-shadow .18s,color .18s;}
.footer__gbp svg{width:15px;height:15px;flex:none;fill:var(--cyan);}
.footer__gbp:hover{color:var(--on-dark);box-shadow:var(--edge-cyan);}
.footer h4{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:var(--on-dark);margin-bottom:.9rem;}
.footer__links a{display:block;padding:.28rem 0;font-size:.92rem;color:var(--on-dark-2);}
.footer__links a:hover{color:var(--cyan);}
.footer__contact p{font-size:.92rem;margin:0 0 .5rem;color:var(--on-dark-2);}
.footer__contact a.tel{color:var(--cyan);font-weight:800;font-size:1.05rem;}
.footer__email{color:var(--on-dark-2);}
.footer__bottom{border-top:1px solid var(--ink-700);padding-top:1.3rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:var(--on-dark-3);}
.footer__bottom a{color:var(--on-dark-3);text-decoration:underline;text-underline-offset:2px;}
.footer__bottom a:hover{color:var(--cyan);}
.footer__legal{display:flex;gap:1.2rem;flex-wrap:wrap;}
/* referral / illustrative-ratings disclosure (matches the sibling sites) */
.footer__disclaimer{margin:1.3rem 0 0;padding-top:1.1rem;border-top:1px solid var(--ink-700);font-size:.8rem;line-height:1.6;color:var(--on-dark-3);}
.footer__disclaimer a{color:var(--on-dark-2);text-decoration:underline;text-underline-offset:2px;}
.footer__disclaimer a:hover{color:var(--cyan);}
/* keep the disclosure clear of the fixed desktop call button (bottom-right) */
@media (min-width:901px){.footer__disclaimer{max-width:calc(100% - 230px);}}

/* ============================================================================
   SERVICE-PAGE CLASSES (used by service_build.py in wave 2)
   Sectioned layout: action-bar hero -> at-a-glance -> banded body ->
   timeline -> testimonial -> why-us -> FAQ -> related -> closing.
   ==========================================================================*/
/* breadcrumbed action-bar hero */
.svc-hero{background:linear-gradient(180deg,var(--ink-900),var(--ink-850));color:var(--on-dark);padding:52px 0;position:relative;overflow:hidden;}
.svc-hero__grid{display:grid;grid-template-columns:1.3fr .9fr;gap:2rem;align-items:center;}
.breadcrumb{font-size:.82rem;color:var(--on-dark-3);margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.breadcrumb a{color:var(--on-dark-2);text-decoration:underline;text-underline-offset:2px;}
.breadcrumb a:hover{color:var(--cyan);}
.breadcrumb span.sep{color:var(--ink-3);}
.svc-hero h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2.1rem,4.5vw,3.4rem);line-height:1;color:var(--on-dark);margin-bottom:1rem;letter-spacing:-.005em;}
.svc-hero__lead{font-size:1.12rem;color:var(--on-dark-2);margin-bottom:1.4rem;max-width:52ch;}
.svc-hero__img{clip-path:var(--clip-tr-lg);box-shadow:var(--edge-cyan);overflow:hidden;aspect-ratio:4/3;background:var(--ink-800);}
.svc-hero__img img{width:100%;height:100%;object-fit:cover;}
.svc-hero__actions{display:flex;gap:.8rem;flex-wrap:wrap;}

/* at-a-glance quick-facts strip */
.svc-facts{background:var(--cyan-tint);padding:0;}
.svc-facts__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--line);}
.svc-facts__item{background:var(--cyan-tint);padding:1.3rem 1.2rem;min-width:0;}
.svc-facts__item .__k{display:block;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--volt);margin-bottom:.35rem;}
.svc-facts__item .__v{font-size:.98rem;color:var(--ink);font-weight:600;line-height:1.35;}
/* (ataglance markup coming from JSON is hoisted into .svc-facts; hide the raw source copy) */
.ataglance{display:contents;}

/* banded body: each <h2> topic becomes its own full-width band, alternating tints */
.svc-block{padding:56px 0;}
.svc-block--l1{background:var(--paper);color:var(--ink);}
.svc-block--l2{background:var(--paper-2);color:var(--ink);}
.svc-block--dark{background:var(--ink-900);color:var(--on-dark);}
.svc-block__kicker{font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--volt);margin-bottom:.6rem;display:block;}
.svc-block--dark .svc-block__kicker{color:var(--cyan);}
.svc-block h2{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.02;color:var(--ink);margin-bottom:1rem;max-width:22ch;}
.svc-block--dark h2{color:var(--on-dark);}
/* prose inside a band */
.svc-prose{max-width:760px;font-size:1.15rem;line-height:1.7;color:var(--ink-2);}
.svc-block--dark .svc-prose{color:var(--on-dark-2);}
.svc-prose p{margin:0 0 1.1rem;}
.svc-prose ul{margin:0 0 1.2rem;display:grid;gap:.55rem;}
.svc-prose ul li{position:relative;padding-left:1.5rem;}
.svc-prose ul li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;background:var(--cyan);clip-path:var(--clip-tr);box-shadow:0 0 8px rgba(34,211,238,.5);}
.svc-prose a{color:var(--volt);text-decoration:underline;text-underline-offset:3px;font-weight:600;}
.svc-block--dark .svc-prose a{color:var(--cyan);}
.svc-prose a:hover{color:var(--volt-bright);}

/* numbered process TIMELINE inside body / a dark band (vertical connector) */
.svc-steps{list-style:none;margin:1.4rem 0;padding:0;position:relative;max-width:760px;}
.svc-steps::before{content:"";position:absolute;left:23px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--volt),var(--cyan));box-shadow:0 0 12px rgba(34,211,238,.5);}
.svc-steps li{position:relative;display:flex;gap:1.1rem;align-items:flex-start;padding:0 0 1.2rem;}
.svc-steps li .n{position:relative;z-index:1;flex:none;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.35rem;color:var(--ink-950);background:var(--cyan);clip-path:var(--clip-tr);box-shadow:0 0 14px rgba(34,211,238,.5);}
.svc-steps li>span:last-child{padding-top:.5rem;}
.svc-steps li b{color:var(--ink);}
.svc-block--dark .svc-steps li b{color:var(--on-dark);}

/* in-flow "call now" cell (replaces a sticky aside) */
.callcard{background:linear-gradient(120deg,var(--volt),#1E52D6);color:var(--on-volt);clip-path:var(--clip-tr);padding:1.5rem 1.7rem;display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;filter:drop-shadow(0 10px 24px rgba(37,99,255,.35));margin:1.6rem 0;}
.callcard h3{font-family:var(--font-display);font-size:1.5rem;text-transform:uppercase;line-height:1;}
.callcard p{margin:.3rem 0 0;opacity:.92;font-size:.95rem;}
.callcard .big{font-family:var(--font-display);font-size:2rem;line-height:1;}
/* high-contrast white CTA so the call button clearly pops on the blue card */
.callcard .btn{background:var(--on-volt);color:var(--volt);box-shadow:none;font-size:1.02rem;}
.callcard .btn:hover{background:var(--volt-tint);color:var(--volt);}

/* insurance / info callout */
.bk-callout{background:var(--volt-tint);border-left:3px solid var(--volt);clip-path:var(--clip-tr);padding:1.2rem 1.4rem;margin:1.6rem 0;color:var(--ink-2);font-size:1rem;}
.bk-callout b{color:var(--ink);}
.svc-block--dark .bk-callout{background:var(--ink-850);border-left-color:var(--cyan);color:var(--on-dark-2);}
.svc-block--dark .bk-callout b{color:var(--on-dark);}

/* single testimonial review card on a service page */
.svc-quote{max-width:760px;background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.6rem 1.8rem;}
.svc-quote .quote-mark{font-family:var(--font-display);font-size:3rem;color:#0C8DA0;line-height:.5;height:1.4rem;}
.svc-quote blockquote{margin:0;font-size:1.1rem;line-height:1.6;color:var(--ink);}
.svc-quote .who{margin-top:.9rem;font-weight:800;color:var(--ink);}
.svc-quote .where{color:var(--ink-3);font-size:.88rem;}

/* reusable "why us" icon-card band (dark) --- premium redesign */
.svc-why{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;}
.svc-why .why-cell{background:linear-gradient(180deg,var(--ink-850),var(--ink-900));box-shadow:var(--edge-hair);padding:1.6rem 1.3rem;}
.svc-why .why-cell:hover{box-shadow:var(--edge-cyan);transform:translateY(-3px);}
.svc-why .why-cell h3{color:var(--on-dark);}
.svc-why .why-cell p{color:var(--on-dark-2);}
.svc-why .why-cell__ico{background:rgba(34,211,238,.09);box-shadow:var(--edge-cyan);color:var(--cyan);}
.svc-why .why-cell__ico svg{stroke:var(--cyan);}

/* related services mini-grid */
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;}
.related-card{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.3rem;min-width:0;transition:box-shadow .18s,transform .18s;}
.related-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--volt);}
.related-card h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;font-size:.98rem;color:var(--ink);margin-bottom:.4rem;line-height:1.2;}
.related-card p{margin:0 0 .6rem;font-size:.88rem;color:var(--ink-2);}
.related-card a{color:var(--volt);font-weight:700;font-size:.84rem;text-transform:uppercase;letter-spacing:.03em;}

/* ============================================================================
   TOOL PAGES (3 client-side calculators)
   ==========================================================================*/
.tool-hero{background:linear-gradient(180deg,var(--ink-900),var(--ink-850));color:var(--on-dark);padding:52px 0;}
.tool-hero h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1;margin-bottom:.9rem;}
.tool-hero p{color:var(--on-dark-2);max-width:56ch;font-size:1.08rem;}
.tool-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:1.8rem;align-items:start;}
.tool-form{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.7rem;}
.tool-field{margin-bottom:1.2rem;}
.tool-field label{display:block;font-weight:700;font-size:.9rem;color:var(--ink);margin-bottom:.45rem;}
.tool-field input,.tool-field select{
  width:100%;padding:.75rem .85rem;font-family:inherit;font-size:1rem;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r-xs);
}
.tool-field input:focus,.tool-field select:focus{outline:2px solid var(--volt);border-color:var(--volt);}
.tool-result{background:var(--ink-900);color:var(--on-dark);box-shadow:var(--edge-volt);clip-path:var(--clip-bl);padding:1.7rem;position:sticky;top:96px;}
.tool-result .rk{font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--cyan);margin-bottom:.5rem;}
.tool-result .rv{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--on-dark);line-height:1.05;}
.tool-result .rsub{font-size:.9rem;color:var(--on-dark-2);margin-top:.5rem;}
.tool-result .tier{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--ink-700);}
.tool-note{margin-top:1.1rem;font-size:.82rem;color:var(--on-dark-3);font-style:italic;}
.tool-result .btn{margin-top:1.2rem;}

/* ============================================================================
   ABOUT + CONTACT
   ==========================================================================*/
.page-hero{background:linear-gradient(180deg,var(--ink-900),var(--ink-850));color:var(--on-dark);padding:56px 0;position:relative;overflow:hidden;}
.page-hero h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1;margin-bottom:.8rem;}
.page-hero p{color:var(--on-dark-2);max-width:56ch;font-size:1.08rem;}
.story-split{display:grid;grid-template-columns:1.3fr .9fr;gap:2rem;align-items:center;}
.stat-cluster{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.stat-cluster .cell{background:var(--paper-2);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.3rem;}
.stat-cluster .cell b{font-family:var(--font-display);font-size:2.1rem;color:var(--volt);line-height:1;display:block;}
.stat-cluster .cell span{font-size:.82rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.values-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;}
/* contact call panel */
.call-panel{background:linear-gradient(160deg,var(--ink-900),var(--ink-950));clip-path:var(--clip-tr-lg);box-shadow:var(--edge-volt);padding:2.6rem;text-align:center;}
.call-panel .big{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,4rem);color:var(--cyan);line-height:1;letter-spacing:.01em;display:inline-block;margin:.6rem 0;}
.call-panel p{color:var(--on-dark-2);}
.nap-block{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.nap-block .cell{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.5rem;}
.nap-block .cell h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;color:var(--ink);margin-bottom:.7rem;}
.nap-block .cell p{margin:0 0 .4rem;color:var(--ink-2);font-size:.95rem;}
.checklist{max-width:720px;display:grid;gap:.7rem;}
.checklist li{display:flex;gap:.8rem;align-items:flex-start;background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:.9rem 1.1rem;color:var(--ink-2);}
.checklist li .ck{flex:none;width:24px;height:24px;color:var(--volt);}
.checklist li .ck svg{width:100%;height:100%;fill:none;stroke:var(--volt);stroke-width:2;}

/* legal / prose pages */
.legal{max-width:800px;margin:0 auto;padding:56px var(--gutter);color:var(--ink-2);}
.legal h1{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:1rem;}
.legal h2{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:1.15rem;color:var(--ink);margin:1.8rem 0 .7rem;}
.legal p,.legal li{font-size:1rem;line-height:1.7;}
.legal ul{margin:0 0 1rem;padding-left:1.2rem;list-style:disc;}
.legal a{color:var(--volt);text-decoration:underline;}

/* in-content underline helper */
.u-link{color:var(--volt);text-decoration:underline;text-underline-offset:3px;font-weight:600;}
.band-d1 .u-link,.band-d2 .u-link,.band-d0 .u-link{color:var(--cyan);}

/* ============================================================================
   24. SERVICE-PAGE NUMBERED PROCESS STRIP (.svc-process / .pflow / .pstep)
   A 4-step "how it works" flow on a dark band: chamfered cyan number tiles,
   a glowing volt-to-cyan connector on desktop, stacked on mobile. Template
   level (not from the body), matches the homepage .timeline visual language.
   ==========================================================================*/
.svc-process{background:var(--ink-900);color:var(--on-dark);padding:64px 0;border-top:1px solid var(--ink-700);border-bottom:1px solid var(--ink-700);}
.pflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;position:relative;}
.pflow::before{content:"";position:absolute;top:26px;left:11%;right:11%;height:2px;background:linear-gradient(90deg,var(--volt),var(--cyan));box-shadow:0 0 14px rgba(34,211,238,.6);z-index:0;}
.pstep{position:relative;z-index:1;background:var(--ink-850);box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:1.3rem 1.15rem;min-width:0;}
.pstep__n{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;color:var(--ink-950);background:var(--cyan);clip-path:var(--clip-tr);margin-bottom:.85rem;box-shadow:0 0 16px rgba(34,211,238,.5);}
.pstep h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:.98rem;color:var(--on-dark);margin-bottom:.3rem;line-height:1.2;}
.pstep p{margin:0;font-size:.9rem;color:var(--on-dark-2);line-height:1.55;}

/* ============================================================================
   25. REAL-MAP COVERAGE (.cov*) --- the self-hosted static map, framed on the
   dark ground in a light paper card with a legible caption. FULL (map + grouped
   chips + ZIP grid) on the homepage and Service Area page; COMPACT (map + note +
   link) on service pages. Distinct from the legacy .coverage__split used on
   about/contact so those pages are untouched.
   ==========================================================================*/
.cov{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:2rem;align-items:start;margin-bottom:1.8rem;}
.cov--compact{align-items:center;margin-bottom:0;}
.cov__map{align-self:start;margin:0;background:var(--paper);box-shadow:var(--edge-cyan);clip-path:var(--clip-tr-lg);overflow:hidden;}
.cov__map img{width:100%;height:auto;display:block;}
.cov__map figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;align-items:center;padding:.75rem 1.05rem;background:var(--paper);border-top:1px solid var(--line);}
.cov__pin{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.85rem;color:var(--ink);}
.cov__pin svg{width:15px;height:15px;fill:var(--volt);flex:none;}
.cov__credit{font-size:.68rem;color:var(--ink-3);letter-spacing:.01em;}
.cov__note p{font-size:1.05rem;color:var(--on-dark-2);line-height:1.65;margin:0 0 1rem;}
.cov__note p b{color:var(--on-dark);}
.cov__all{display:inline-flex;align-items:center;gap:.4rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.86rem;color:var(--cyan);border-bottom:2px solid var(--volt);padding-bottom:2px;}
.cov__all:hover{color:var(--volt-bright);}
.cov__zips{background:var(--ink-850);box-shadow:var(--edge-hair);clip-path:var(--clip-tr);padding:1.4rem;}
.cov__zips .zip-head{margin-bottom:.7rem;}
.cov__zips .coverage__note{margin-top:.9rem;}
.nbhd-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.3rem 1.5rem;}
.nbhd-group h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:var(--cyan);margin-bottom:.7rem;}
.nbhd-group .cluster-chips{margin-bottom:0;}

/* ============================================================================
   26. SERVICE AREA PAGE (.area-*) --- brand intro + a card per valley area with
   a real local blurb, on the Desert Night lane.
   ==========================================================================*/
.area-lead{max-width:760px;font-size:1.15rem;line-height:1.7;color:var(--on-dark-2);}
.area-lead b{color:var(--on-dark);}
.areas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem;}
.area-card{background:var(--paper);box-shadow:var(--edge-line);clip-path:var(--clip-tr);padding:1.4rem 1.5rem 1.5rem;min-width:0;transition:box-shadow .18s,transform .18s;}
.area-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--volt);}
.area-card__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;margin-bottom:.5rem;}
.area-card__head h3{font-family:var(--font-body);font-weight:800;text-transform:uppercase;letter-spacing:.02em;font-size:1.06rem;color:var(--ink);margin:0;line-height:1.2;}
.area-card__zip{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.78rem;color:var(--volt);letter-spacing:.03em;font-variant-numeric:tabular-nums;}
.area-card p{margin:0;color:var(--ink-2);font-size:.96rem;line-height:1.6;}

/* ============================================================================
   23. RESPONSIVE  ---  tablet then phone. Verify scrollWidth==clientWidth @375
   ==========================================================================*/
@media (max-width:1040px){
  .rail{grid-template-columns:1fr 1fr;}
  .rail__open{display:none;}
  .rail__call{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;}
  .svc-card--featured{grid-column:span 3;}
  /* bento -> 2 columns, lead becomes a full-width feature banner above the 2x2 */
  .svc-cluster--bento .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;}
  .svc-cluster--bento .svc-card--lead{grid-column:1/-1;grid-row:auto;}
  .svc-cluster--bento .svc-card--lead .svc-card__img{aspect-ratio:auto;height:230px;min-height:0;flex:none;}
  .why-row,.svc-why,.values-cards{grid-template-columns:repeat(3,minmax(0,1fr));}
  .zip-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .svc-hero__grid,.tool-wrap,.story-split,.coverage__split,.cov,.cov--compact,.reviews__split,.closing__panel,.claim-row,.emergency__grid,.nap-block{grid-template-columns:minmax(0,1fr);}
  /* let grid children shrink below their min-content so large Anton text wraps
     instead of stretching the panel past the viewport (BUILD-CONTRACT rule) */
  .emergency__grid>*,.closing__panel>*,.reviews__split>*,.coverage__split>*,.cov>*,.claim-row>*,.story-split>*,.tool-wrap>*,.svc-hero__grid>*,.nap-block>*{min-width:0;}
  /* process flow: 2-up on tablet, drop the horizontal connector */
  .pflow{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;}
  .pflow::before{display:none;}
  .closing__phone,.emg-call .big,.rail__num,.callbar__num{overflow-wrap:anywhere;}
  .reviews__split .agg-panel{clip-path:var(--clip-tr);}
  .tool-result{position:static;}
}
@media (max-width:900px){
  .section{padding:56px 0;}
  /* full-viewport overlay (inset:0 = never sits off-screen, so it cannot add
     horizontal scroll; no root overflow hack needed, sticky header unaffected) */
  .nav{
    position:fixed;inset:0;width:auto;flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink-900);padding:88px 7vw 2rem;
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .22s ease,transform .22s ease,visibility .22s;
    overflow-y:auto;z-index:65;
  }
  /* when the menu is open, drop the header's backdrop-filter so the fixed nav
     escapes the header's containing block and fills the whole viewport (a
     backdrop-filter ancestor otherwise traps position:fixed to the header box),
     and lift the header's stacking context above the scrim and the call bar so
     the opaque overlay, its links, and the close button all take taps. */
  .is-menu .header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--ink-900);z-index:90;box-shadow:none;}
  .is-menu .brand{position:relative;z-index:66;}
  .is-menu .callbar{display:none;}
  .is-menu .nav{opacity:1;visibility:visible;transform:translateY(0);}
  .nav__link,.drop__toggle{width:100%;justify-content:space-between;padding:.9rem .4rem;border-bottom:1px solid var(--ink-700);font-size:1.02rem;}
  .drop{width:100%;}
  .drop__menu{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:transparent;
    min-width:0;padding:0 0 .4rem;clip-path:none;max-height:0;overflow:hidden;transition:max-height .25s;
  }
  .drop.is-open .drop__menu{max-height:760px;}
  .drop__menu a{padding:.6rem .8rem;color:var(--on-dark-3);}
  .nav__cta{display:none;}       /* header call hidden on mobile; callbar covers it */
  .hamburger{display:flex;z-index:66;}
  .nav-scrim{position:fixed;inset:0;background:rgba(8,11,18,.6);opacity:0;visibility:hidden;transition:opacity .2s;z-index:64;}
  .is-menu .nav-scrim{opacity:1;visibility:visible;}
  .callbar{display:flex;}
  .floatcall{display:none;}
  body{padding-bottom:66px;}       /* room for the sticky callbar */
  .timeline{grid-template-columns:1fr;gap:0;}
  .timeline::before{top:0;bottom:0;left:26px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,var(--volt),var(--cyan));}
  .tl-step{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin-bottom:1rem;padding:1rem;}
  .tl-step .num{margin-bottom:0;}
  .svc-hero__grid{gap:1.4rem;}
  .svc-hero__img{order:2;}   /* service img follows the heading on mobile (heading-before-image rule) */
  .closing__panel{padding:2rem 1.4rem;}
  .footer__grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  :root{--gutter:24px;}          /* phones keep a 24px gutter, never 16px */
  .section{padding:48px 0;}
  .ribbon{font-size:.7rem;}
  .ribbon__row{min-height:34px;}
  .ribbon__list{display:none;}    /* ribbon collapses to ONE line: keep the rating + call only */
  .ribbon__row::before{content:"IICRC CERTIFIED  ·  30 TO 60 MIN VALLEY RESPONSE  ·  OPEN 24/7";white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-3);flex:1;min-width:0;}
  /* compact the hero on phones so the phone-rail CTA sits nearer the fold */
  .hero__inner{padding:30px 0 0;}
  .hero__eyebrow{margin-bottom:.8rem;}
  .hero__statement{font-size:clamp(2.4rem,9vw,3.2rem);margin-bottom:.55rem;}
  .hero__h1{margin-bottom:.7rem;}
  .hero__sub{font-size:1.02rem;margin-bottom:1.1rem;}
  .hero__trust{gap:.45rem;margin-bottom:1.4rem;}
  .rail{grid-template-columns:1fr;margin:0;}
  .rail__call{clip-path:var(--clip-tr);}
  .rail__stats{grid-template-columns:1fr 1fr;}       /* stats collapse to 2x2 */
  .emergency__grid{grid-template-columns:minmax(0,1fr);}
  .emg-steps{grid-template-columns:minmax(0,1fr);}
  .emg-steps>*,.emg-call>*{min-width:0;}
  .emg-cell:nth-child(2),.emg-cell:nth-child(3){margin-top:0;}
  .svc-grid,.risk-grid,.range-cards,.related-grid,.faq__grid,.jobs-cases{grid-template-columns:1fr;}
  /* process flow + service-area grids collapse to one column on phones */
  .pflow{grid-template-columns:1fr;gap:.9rem;}
  .pstep{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;}
  .pstep__n{margin-bottom:0;}
  .areas-grid,.nbhd-groups{grid-template-columns:1fr;}
  .svc-card--featured{grid-column:span 1;}
  .svc-cluster--bento .svc-grid{grid-template-columns:1fr;}
  .svc-cluster--bento .svc-card--lead{grid-column:auto;grid-row:auto;}
  .svc-cluster--bento .svc-card--lead .svc-card__img{aspect-ratio:16/10;height:auto;}
  .why-row,.svc-why,.values-cards,.nap-block,.stat-cluster{grid-template-columns:1fr 1fr;}
  .svc-facts__grid{grid-template-columns:1fr 1fr;}
  .zip-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .review-card,.film-frame{flex-basis:78vw;}
  .agg-panel{clip-path:var(--clip-tr);}
  .svc-banner,.callcard,.claim-row,.closing__panel,.svc-banner{padding-left:1.3rem;padding-right:1.3rem;}
  .footer__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;}
  h1,h2,.hero__statement{overflow-wrap:anywhere;}
  .zip-grid span,.chip,.nav__link{overflow-wrap:anywhere;}
}
@media (max-width:380px){
  .why-row,.svc-why,.values-cards,.nap-block,.stat-cluster,.svc-facts__grid,.rail__stats{grid-template-columns:1fr;}
}
/* respect reduced motion */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important;transition:none!important;}
}

/* self-hosted fonts (was Google Fonts; latin) */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/anton.woff2?v=912c3c9f) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/inter.woff2?v=260c81a4) format('woff2')}
