html,body{background:#03141c}
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(../fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}
:root{--deep:#03141c;--deep2:#062430;--ink:#0b1a20;--paper:#f3f5f1;--paper2:#e8ece6;--fg:#eef6f4;
--muted-d:rgba(238,246,244,.74);--dim-d:rgba(238,246,244,.55);--muted-l:rgba(11,26,32,.70);--dim-l:rgba(11,26,32,.66);
--line-d:rgba(238,246,244,.14);--line-l:rgba(11,26,32,.13);--accent:#41e0c6;--accent-ink:#0a6f63;
--ease:cubic-bezier(.16,1,.3,1);--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--serif:"Instrument Serif",Georgia,serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--gut:clamp(20px,4.4vw,64px);--max:1240px}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:16.5px;line-height:1.6;color:var(--fg);overflow-x:clip;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--deep)}
a{color:inherit}
img,svg,canvas{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--accent);color:var(--deep);padding:8px 14px;border-radius:99px}
.skip:focus{left:12px}
/* grain */
.grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* nav */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;width:min(calc(100% - 24px),1180px);display:flex;align-items:center;gap:18px;padding:8px 8px 8px 18px;border-radius:99px;background:rgba(3,20,28,.85);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid var(--line-d);color:var(--fg)}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:500;letter-spacing:-.02em;font-size:15px;white-space:nowrap}
.brand sup{font-family:var(--mono);font-size:9px;letter-spacing:.12em;opacity:.6;margin-left:2px}
.brand svg{width:22px;height:22px}
.nav-links{display:flex;gap:4px;margin-left:auto}
.nav-links a{font-size:14px;text-decoration:none;color:var(--muted-d);padding:8px 12px;border-radius:99px;transition:color .2s,background .2s}
.nav-links a:hover{color:var(--fg);background:rgba(238,246,244,.07)}
.btn{display:inline-flex;align-items:center;gap:10px;font:500 14px/1 var(--sans);border:0;cursor:pointer;text-decoration:none;border-radius:99px;padding:12px 14px 12px 20px;min-height:44px;transition:transform .2s var(--ease),background .2s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#032019}
.btn-primary .arr{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#032019;color:var(--accent);transition:transform .3s var(--ease)}
.btn-primary:hover .arr{transform:rotate(-45deg)}
.roll{display:inline-block;height:1.1em;overflow:hidden;line-height:1.1}
.roll span{display:block;transition:transform .35s var(--ease)}
.btn:hover .roll span{transform:translateY(-100%)}
.burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-d);background:transparent;color:var(--fg);cursor:pointer}
.menu{position:fixed;inset:0;z-index:60;background:rgba(3,20,28,.97);display:none;flex-direction:column;justify-content:center;padding:0 28px;gap:6px}
.menu.open{display:flex}
.menu a{font-size:34px;letter-spacing:-.03em;text-decoration:none;padding:6px 0}
.menu .close{position:absolute;top:22px;right:22px}
/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:
 radial-gradient(120% 90% at 78% 30%,#0f6e80 0%,#0a4a5c 35%,#062b38 65%,#03141c 100%)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1.2s ease}
.hero canvas.on{opacity:1}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:
 linear-gradient(100deg,rgba(3,20,28,.80) 0%,rgba(3,20,28,.55) 34%,rgba(3,20,28,.08) 62%,rgba(3,20,28,0) 100%),
 linear-gradient(to bottom,rgba(3,20,28,.5) 0%,transparent 22%,transparent 70%,#03141c 100%)}
.hero-in{position:relative;z-index:10;width:100%;padding-bottom:clamp(40px,8vh,88px);padding-top:120px}
.hud{color:var(--muted-d);display:flex;align-items:center;gap:10px;margin:0 0 22px}
.dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(65,224,198,.18)}
.hero h1{font-weight:500;font-size:clamp(2.5rem,6.4vw,5.6rem);line-height:.98;letter-spacing:-.035em;margin:0 0 22px;max-width:12.5ch}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln>span{display:inline-block}
.hero h1 .it{color:rgba(238,246,244,.78);font-size:1.08em}
.lede{color:var(--muted-d);max-width:34rem;font-size:clamp(16px,1.35vw,18px);margin:0 0 30px}
.search{display:flex;align-items:center;gap:6px;padding:6px;border-radius:99px;background:rgba(3,20,28,.55);border:1px solid var(--line-d);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);max-width:640px}
.search label{flex:1;min-width:0;display:flex;flex-direction:column;padding:4px 16px;border-right:1px solid var(--line-d)}
.search label:nth-of-type(2){border-right:0}
.search label small{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-d)}
.search select{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:var(--fg);font:500 15px/1.3 var(--sans);padding:2px 0;cursor:pointer;width:100%}
.search select option{color:#0b1a20}
.hero-meta{display:flex;gap:22px;margin-top:22px;color:var(--dim-d);flex-wrap:wrap}
.hero-meta a{color:var(--muted-d);text-underline-offset:4px}
/* marquee */
.marquee{background:var(--deep);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d);overflow:hidden;color:var(--dim-d);padding:16px 0}
.marquee-track{display:flex;width:max-content;animation:mq 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee span{padding:0 22px;white-space:nowrap}
.marquee i{font-style:normal;color:var(--accent);padding:0 0 0 22px}
@keyframes mq{to{transform:translateX(-50%)}}
/* light acts */
.act{padding:clamp(72px,11vw,140px) 0}
.light{background:var(--paper);color:var(--ink)}
.dark{background:var(--deep);color:var(--fg)}
.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.light .eyebrow{color:var(--dim-l)}
.dark .eyebrow{color:var(--dim-d)}
.idx{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 8px;border-radius:99px;border:1px solid currentColor;font-size:10px;letter-spacing:.1em}
h2{font-weight:500;font-size:clamp(1.9rem,4.2vw,3.3rem);line-height:1.04;letter-spacing:-.03em;margin:0 0 16px;max-width:20ch}
.light h2 .it{color:var(--accent-ink)}
.dark h2 .it{color:rgba(238,246,244,.78)}
.sub{max-width:40rem;margin:0 0 36px}
.light .sub{color:var(--muted-l)}
.dark .sub{color:var(--muted-d)}
/* finder */
.filters{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:end;padding:18px;border-radius:24px;background:#fff;border:1px solid var(--line-l);box-shadow:0 4px 14px rgba(11,26,32,.05);position:sticky;top:84px;z-index:5}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>span{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim-l)}
.field select,.field input[type=search],.field input[type=text]{font:400 15px/1.3 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line-l);border-radius:12px;padding:11px 12px;min-height:44px;width:100%}
.f-state{grid-column:span 3}.f-q{grid-column:span 3}.f-zip{grid-column:span 2}.f-toggles{grid-column:span 4;display:flex;gap:16px;flex-wrap:wrap;padding-bottom:10px}
.chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.chip{font:500 13.5px/1 var(--sans);border:1px solid var(--line-l);background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:99px;cursor:pointer;min-height:40px;transition:background .2s,border-color .2s}
.chip:hover{border-color:rgba(11,26,32,.35)}
.chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip[aria-pressed=true]::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}
.tog{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted-l);cursor:pointer;min-height:32px}
.tog input{width:18px;height:18px;accent-color:#0b1a20}
.result-bar{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:26px 2px 14px;color:var(--muted-l);font-size:14.5px;flex-wrap:wrap}
.result-bar strong{color:var(--ink);font-weight:500}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:20px;background:#fff;border:1px solid var(--line-l);text-decoration:none;color:var(--ink);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;min-width:0}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(11,26,32,.08);border-color:rgba(11,26,32,.24)}
.card h3{font-size:17px;font-weight:500;letter-spacing:-.015em;line-height:1.3;margin:0;overflow-wrap:anywhere}
.card .where{font-size:14px;color:var(--muted-l)}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.card .go{position:absolute;top:18px;right:18px;opacity:.35;transition:transform .25s var(--ease),opacity .25s}
.card:hover .go{opacity:1;transform:translate(2px,-2px)}
.tag{display:inline-flex;align-items:center;gap:6px;font:500 12px/1 var(--sans);padding:6px 9px;border-radius:99px;background:var(--paper);border:1px solid var(--line-l);color:var(--ink);white-space:nowrap}
.tag .lv{width:7px;height:7px;border-radius:50%}
.lv-certified{background:#0a6f63}.lv-group{background:transparent;border:1.5px solid #0a6f63}.lv-partial{background:linear-gradient(90deg,#0a6f63 50%,transparent 50%);border:1.5px solid #0a6f63}.lv-subcontracted{background:#b9852a}
.badge{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;border-radius:6px}
.b-yes{background:#e1f6f1;color:#0a5a50}.b-no{background:#f6ece1;color:#7a4b12}.b-unk{background:var(--paper2);color:var(--muted-l)}
.more{display:flex;justify-content:center;margin-top:24px}
.btn-ghost{background:transparent;border:1px solid var(--line-l);color:var(--ink);padding:12px 20px}
.empty{padding:40px;text-align:center;color:var(--muted-l);border:1px dashed var(--line-l);border-radius:20px;grid-column:1/-1}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted-l);margin-top:14px}
.legend span{display:inline-flex;align-items:center;gap:6px}
/* proof */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d);border-radius:24px;overflow:hidden;margin:10px 0 40px}
.stat{background:var(--deep);padding:28px 26px}
.stat b{display:block;font-weight:300;font-size:clamp(44px,7vw,84px);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat span{color:var(--dim-d);font-size:14px}
.srcs{width:100%;border-collapse:collapse;font-size:14.5px}
.srcs th{text-align:left;font:500 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim-d);padding:12px 10px;border-bottom:1px solid var(--line-d)}
.srcs td{padding:14px 10px;border-bottom:1px solid var(--line-d);vertical-align:top;color:var(--muted-d)}
.srcs td:first-child{color:var(--fg);font-weight:500}
.srcs a{text-underline-offset:3px}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* learn */
.learn{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lcard{display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:24px;background:#fff;border:1px solid var(--line-l);text-decoration:none;color:var(--ink);min-height:280px;transition:transform .3s var(--ease),box-shadow .3s}
.lcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,26,32,.08)}
.lcard .num{font-weight:300;font-size:52px;letter-spacing:-.04em;line-height:1}
.lcard .num small{font-size:16px;letter-spacing:0;color:var(--muted-l);margin-left:6px}
.lcard h3{margin:0;font-weight:500;font-size:22px;letter-spacing:-.02em}
.lcard p{margin:0;color:var(--muted-l);font-size:15px}
.lcard .cta{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--accent-ink)}
.lcard:hover .cta svg{transform:translateX(3px)}
.lcard .cta svg{transition:transform .25s var(--ease)}
/* footer */
.foot{background:var(--deep);color:var(--muted-d);padding:70px 0 40px;border-top:1px solid var(--line-d);font-size:14.5px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.foot .fh{font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim-d);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.foot a{text-decoration:none;display:inline-block;padding:6px 0;min-height:32px}
.foot a:hover{color:var(--fg)}
.foot .fine{margin-top:44px;padding-top:20px;border-top:1px solid var(--line-d);color:var(--dim-d);font-size:13px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
/* inner pages */
.band{position:relative;background:radial-gradient(90% 140% at 85% 0%,#0d5f70 0%,#073342 45%,#03141c 100%);color:var(--fg);padding:130px 0 54px;overflow:hidden}
.band h1{font-weight:500;font-size:clamp(2rem,4.8vw,3.8rem);line-height:1.02;letter-spacing:-.035em;margin:10px 0 14px;max-width:22ch;overflow-wrap:anywhere}
.band p{color:var(--muted-d);max-width:44rem;margin:0}
.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-d)}
.crumbs a{text-decoration:none;color:var(--muted-d)}
.crumbs a:hover{color:var(--fg)}
.page{background:var(--paper);color:var(--ink);padding:54px 0 90px}
.cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:start}
.panel{background:#fff;border:1px solid var(--line-l);border-radius:22px;padding:24px;min-width:0}
.panel h2{font-size:20px;letter-spacing:-.02em;margin:0 0 14px;max-width:none}
.facts{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;margin:0}
.facts dt{font:500 10px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim-l);padding:13px 0;border-top:1px solid var(--line-l)}
.facts dd{margin:0;padding:11px 0;border-top:1px solid var(--line-l);overflow-wrap:anywhere}
.facts a{color:var(--accent-ink);text-underline-offset:3px}
.matrix{width:100%;border-collapse:collapse;font-size:15px}
.matrix td,.matrix th{padding:11px 8px;border-top:1px solid var(--line-l);text-align:left;vertical-align:top}
.matrix th{font:500 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim-l);border-top:0}
.matrix .na{color:var(--dim-l)}
.asof{border-radius:18px;background:var(--ink);color:var(--fg);padding:22px}
.asof .mono{color:var(--dim-d)}
.asof b{display:block;font-weight:500;font-size:20px;letter-spacing:-.02em;margin:6px 0 10px}
.asof p{color:var(--muted-d);font-size:14px;margin:0 0 12px}
.asof a{color:var(--accent);text-underline-offset:3px;overflow-wrap:anywhere}
.note{font-size:14px;color:var(--muted-l)}
.stack{display:grid;gap:18px}
.prose{max-width:46rem}
.prose h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:38px 0 12px}
.prose p,.prose li{color:#24343a}
.prose a{color:var(--accent-ink);text-underline-offset:3px}
.cite{font-size:13.5px;color:var(--muted-l);border-left:2px solid var(--accent-ink);padding-left:14px;margin:26px 0}
.city{margin:28px 0 10px;font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim-l)}
.statelist{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.statelist a{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-radius:18px;background:#fff;border:1px solid var(--line-l);text-decoration:none;color:var(--ink);font-weight:500}
.statelist a span{font:500 11px/1 var(--mono);color:var(--dim-l)}
/* reveal gate */
html.js .rv{opacity:0;transform:translateY(28px)}
html.js.done .rv,html.reduce .rv{opacity:1!important;transform:none!important}
/* responsive */
@media (max-width:1060px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.f-state{grid-column:span 6}.f-q{grid-column:span 6}.f-zip{grid-column:span 4}.f-toggles{grid-column:span 8;padding-bottom:0}.learn{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr}.cols>aside{order:-1}}
@media (max-width:960px){.nav-links,.nav .btn{display:none}.burger{display:grid;place-items:center}.filters{position:static}}
@media (max-width:640px){
 body{font-size:16px}
 .grid,.learn,.stats,.foot-grid{grid-template-columns:1fr}
 .search{flex-direction:column;align-items:stretch;border-radius:22px;padding:8px}
 .search label{border-right:0;border-bottom:1px solid var(--line-d);padding:8px 12px}
 .search label:nth-of-type(2){border-bottom:0}
 .search .btn{justify-content:center}
 .hero-in{padding-top:110px}
 .filters{padding:14px;border-radius:20px}
 .f-state,.f-q,.f-zip,.f-toggles{grid-column:1/-1!important}
 .chips{gap:6px}.chip{padding:9px 12px;font-size:13px}
 .facts{grid-template-columns:1fr}.facts dt{padding-bottom:0}.facts dd{border-top:0;padding-top:4px}
 .stat{padding:22px}
 .srcs th:nth-child(3),.srcs td:nth-child(3){display:none}
}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}*{scroll-behavior:auto!important}.card,.lcard,.btn{transition:none}}
@media (hover:none){.card:hover,.lcard:hover{transform:none;box-shadow:none}}

/* stale / partial source lists */
.panel.stale{border-left:3px solid #d9a441;background:color-mix(in srgb,#d9a441 9%,var(--paper))}
.asof.asof-stale{outline:2px solid #d9a441;outline-offset:-2px}
.stale-note{margin-top:12px;padding:10px 12px;border-left:3px solid #d9a441;background:color-mix(in srgb,#d9a441 9%,transparent)}
/* claim / lead forms, affiliate box */
.claim-form{display:grid;gap:14px;max-width:34rem}.claim-form label{display:grid;gap:6px;font:500 13px/1.3 var(--sans);color:var(--ink)}
.claim-form input,.claim-form textarea{font:400 16px/1.4 var(--sans);padding:11px 12px;border:1px solid var(--line-l);border-radius:10px;background:#fff;color:var(--ink)}
.claim-form button[disabled]{opacity:.55;cursor:not-allowed}
.kit{border-style:dashed}.kit .fine-print{font-size:13px;margin-top:12px}
article .panel{margin-top:18px}
/* ===== redesign 2026-11-01: film hero, tile map, film acts ===== */
.hero{background:#062b38 url(/assets/media/hero-cave-poster.jpg) 55% 50%/cover no-repeat}
.film{position:absolute;inset:0;z-index:0;overflow:hidden;background:#062b38}
.film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero canvas.fx{opacity:1;z-index:1;pointer-events:none}
.hero-scrim{z-index:2}
.hero-in{z-index:10}
.scrollcue{position:absolute;right:var(--gut);bottom:clamp(28px,6vh,60px);z-index:10;display:flex;align-items:center;gap:12px;color:var(--muted-d);text-decoration:none}
.scrollcue i{display:block;width:1px;height:46px;background:linear-gradient(var(--fg),transparent);transform-origin:top;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* finder head + tile map */
.finder-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(28px,5vw,72px);align-items:center;margin-bottom:46px}
.finder-head h2{max-width:14ch}
.mapcol{min-width:0}
.tilemap{display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(8,1fr);gap:clamp(3px,.55vw,6px);aspect-ratio:11/8;width:100%}
.tile{display:grid;place-content:center;justify-items:center;gap:2px;border-radius:clamp(5px,.9vw,10px);font:500 clamp(9px,1.1vw,12px)/1 var(--mono);letter-spacing:.04em;text-decoration:none;
 transform:translateY(calc(var(--lift,0)*-8px)) scale(calc(1 + var(--lift,0)*.14));transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .3s;transition-delay:var(--dl,0ms);will-change:transform}
.tile b{font-weight:500}.tile small{font-size:.82em;opacity:.85}
.tile.off{background:rgba(11,26,32,.045);border:1px solid rgba(11,26,32,.07);color:rgba(11,26,32,.62)}
.tile.live{background:linear-gradient(150deg,#084f5e 0%,#0a6f7a 55%,#0b8a87 100%);color:#fff;box-shadow:0 8px 20px rgba(8,79,94,.28),inset 0 1px 0 rgba(255,255,255,.22);position:relative}
.tile.live::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(70% 60% at 50% 0%,rgba(65,224,198,.55),transparent 70%);opacity:0;transition:opacity .4s}
.tile.live:hover::after,.tile.live:focus-visible::after{opacity:1}
.tile.live:hover,.tile.live:focus-visible{box-shadow:0 14px 30px rgba(8,79,94,.38),inset 0 1px 0 rgba(255,255,255,.35)}
.maplegend{display:flex;gap:18px;align-items:center;color:var(--dim-l);margin:14px 0 0;justify-content:flex-end}
.lg{display:inline-block;width:12px;height:12px;border-radius:4px;background:rgba(11,26,32,.07);border:1px solid rgba(11,26,32,.12);margin-right:-8px}
.lg.on{background:linear-gradient(150deg,#084f5e,#0b8a87);border:0}
/* film acts */
.film-act{position:relative;overflow:hidden;background:#062b38}
.film-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(95deg,rgba(3,20,28,.82) 0%,rgba(3,20,28,.58) 46%,rgba(3,20,28,.3) 100%)}
.film-in{position:relative;z-index:5}
.glass{background:rgba(3,20,28,.46);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(238,246,244,.18);border-radius:24px}
.film-act .stats{background:none;border:0;gap:14px;overflow:visible}
.film-act .stat{background:rgba(3,20,28,.46);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(238,246,244,.18);border-radius:24px}
.film-act .stat span{color:var(--muted-d)}
.srcdetails{padding:6px 22px}
.srcdetails summary{cursor:pointer;padding:16px 0;color:var(--muted-d);list-style:none;display:flex;justify-content:space-between;align-items:center}
.srcdetails summary::-webkit-details-marker{display:none}
.srcdetails summary::after{content:"+";font-size:18px;color:var(--accent)}
.srcdetails[open] summary::after{content:"\2212"}
.srcdetails .srcs td,.srcdetails .srcs th{border-color:rgba(238,246,244,.16)}
.srcdetails .srcs td{color:var(--fg)}
.cta-act{padding:clamp(90px,13vw,170px) 0}
.cta-panel{max-width:720px;padding:clamp(28px,4vw,52px)}
.cta-panel h2{max-width:16ch}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px}
.btn-glass{background:rgba(238,246,244,.12);border:1px solid rgba(238,246,244,.32);color:var(--fg);padding:12px 22px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-glass:hover{background:rgba(238,246,244,.22)}
.note-d{color:var(--muted-d);margin:22px 0 0;font-size:10.5px}
.note-d a{text-underline-offset:3px}
/* contaminant cards */
.lcard{position:relative;overflow:hidden;background:radial-gradient(120% 85% at 100% 0%,color-mix(in srgb,var(--h,#41e0c6) 24%,transparent),transparent 62%),#fff}
.lcard::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--h,#41e0c6)}
.lcard .num{font-size:clamp(46px,5vw,64px)}
/* inner-page header band gets the same film still */
.band{background:linear-gradient(95deg,rgba(3,20,28,.86) 0%,rgba(3,20,28,.62) 55%,rgba(3,20,28,.35) 100%),#062b38 url(/assets/media/hero-cave-poster.jpg) 60% 40%/cover no-repeat}
/* lab cards: calmer glass lift */
.card{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(11,26,32,.1)}
@media (max-width:960px){.finder-head{grid-template-columns:1fr}.finder-head h2{max-width:20ch}.scrollcue{display:none}.film-act .stats{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.scrollcue i{animation:none}.tile{transition:none}}
.lcard .num{display:block}
.lcard .num small{display:block;margin:10px 0 0;font-size:14px;line-height:1.4;color:var(--muted-l)}
.filter-note{max-width:60rem;margin:22px 0 0;color:var(--muted-l);font-size:14px}
.film.flip video{transform:scaleX(-1)}
.cta-scrim{background:linear-gradient(270deg,rgba(3,20,28,.5) 0%,rgba(3,20,28,.12) 60%,rgba(3,20,28,0) 100%)}
.cta-act .film-in{display:flex;justify-content:flex-end}
@media (max-width:960px){.cta-act .film-in{justify-content:flex-start}}
@media (max-width:760px){.hero-scrim{background:linear-gradient(to bottom,rgba(3,20,28,.5) 0%,rgba(3,20,28,.62) 38%,rgba(3,20,28,.88) 100%)}.cta-scrim{background:linear-gradient(to bottom,rgba(3,20,28,.15),rgba(3,20,28,.45))}}

/* long-form articles (content_lib.py, 2026-11-01) */
.byline{color:var(--dim-d);font-size:12.5px;margin-top:14px}
.cols.long{grid-template-columns:minmax(0,1fr) 300px;gap:48px}
.sticky{position:sticky;top:96px}
.toc{border:1px solid var(--line-l);border-radius:16px;padding:16px 18px;background:#fff}
.toc .mono{color:var(--dim-l);font-size:12px}
.toc ol{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px}
.toc a{color:var(--ink);text-decoration:none}.toc a:hover{color:var(--accent-ink);text-decoration:underline}
.prose{max-width:44rem;font-size:17.5px;line-height:1.7}
.prose h3{font-size:1.18rem;margin:26px 0 8px}
.prose ul,.prose ol{padding-left:22px}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:18px 0;background:#fff}
.prose th,.prose td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line-l)}
.prose thead th{background:var(--paper2);font-weight:600}
.prose .callout{background:#fff;border-left:3px solid var(--accent-ink);border-radius:0 12px 12px 0;padding:14px 18px;margin:22px 0}
.prose .callout.warn{border-left-color:#c7811f}
.chart{margin:26px 0;padding:18px 18px 12px;background:#fff;border:1px solid var(--line-l);border-radius:16px}
.chart figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.chart figcaption .mono{color:var(--dim-l);font-size:12px}
.chart svg{width:100%;height:auto;display:block;font-family:inherit}
.chart .cl{font-size:13px;fill:var(--ink)}.chart .cv{font-size:13px;fill:var(--muted-l);font-variant-numeric:tabular-nums}
.chart .cb{fill:var(--accent-ink)}.chart .cm{stroke:#c7811f;stroke-width:2;stroke-dasharray:4 4}.chart .cml{font-size:12px;fill:#8a5a14}
.chart details{font-size:14px;margin-top:6px}.chart summary{cursor:pointer;color:var(--accent-ink)}
.chart-src{font-size:12.5px;color:var(--muted-l);margin:8px 0 0}
.faq{display:grid;gap:10px}
.qa{background:#fff;border:1px solid var(--line-l);border-radius:12px;padding:12px 16px}
.qa summary{cursor:pointer;font-weight:600}.qa div{margin-top:8px}
@media (max-width:1060px){.cols.long{grid-template-columns:1fr}.sticky{position:static}}

/* which-tests quiz (2026-11-01) */
.quiz{display:grid;gap:18px}
.qstate{display:flex;flex-direction:column;gap:6px;max-width:320px;font-weight:600}
.qstate select{padding:10px 12px;border-radius:10px;border:1px solid var(--line-l);font:inherit;background:#fff}
.qset{border:1px solid var(--line-l);border-radius:16px;padding:14px 16px;background:#fff;margin:0}
.qset legend{font-weight:600;padding:0 6px}
.qgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.qbox{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;cursor:pointer}
.qbox:hover{background:var(--paper)}.qbox input{margin-top:4px;accent-color:var(--accent-ink);width:18px;height:18px;flex:none}
.quiz-out{margin-top:28px}
.qwhen{padding:12px 16px;border-radius:12px;background:#fff;border-left:3px solid var(--accent-ink)}.qwhen.urgent{border-left-color:#c7811f;background:#fff8ec}
.qlist{display:grid;gap:10px;padding-left:22px}
.qtest{background:#fff;border:1px solid var(--line-l);border-radius:12px;padding:12px 14px}
.qtest b{display:block}.qwhy{display:block;font-size:14px;color:var(--muted-l);margin-top:4px}.qlinks{display:block;margin-top:6px;font-size:14.5px}
.qlinks a,.qwhy a{color:var(--accent-ink)}.qnote{font-size:14.5px;color:var(--muted-l)}
.qtable td,.qtable th{font-size:14.5px}
@media (max-width:640px){.qgrid{grid-template-columns:1fr}}
.qtag{display:inline-block;font-size:12.5px;background:var(--paper);border:1px solid var(--line-l);border-radius:99px;padding:2px 10px;margin:4px 6px 0 0;color:var(--ink)}
.qsrc{margin-top:6px;font-size:13.5px}.qsrc summary{cursor:pointer;color:var(--accent-ink)}.qsrc ul{padding-left:18px;margin:6px 0 0}
.qsrc a{color:var(--accent-ink)}

/* state testing guidance (2026-11-01) */
.guide-st{margin:10px 0 34px}
.guide-st>h2,.labs-h{font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 14px}
.ggrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gcard{background:#fff;border:1px solid var(--line-l);border-radius:16px;padding:16px 18px}
.gcard h3{font-size:1.05rem;margin:0 0 8px}.gcard ul{margin:0;padding-left:18px;display:grid;gap:6px}.gcard p,.gcard li{font-size:15px;color:#24343a}
.gwide{grid-column:1/-1}.gsub{font-size:13px;color:var(--muted-l)}
.gtable{width:100%;border-collapse:collapse;font-size:15px}.gtable th,.gtable td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-l)}.gtable thead th{background:var(--paper2)}
.srcref{font-size:12px;color:var(--accent-ink);text-decoration:none;vertical-align:super}
.guide-st .cite ol{padding-left:18px}
@media (max-width:760px){.ggrid{grid-template-columns:1fr}}
.chart svg{max-width:720px}
.guide-st>h2,.labs-h{max-width:none}
/* HTML bar charts (replace SVG: text stays readable on phones) */
.cbars{display:grid;gap:10px;margin:10px 0 4px;max-width:760px}
.crow{display:grid;grid-template-columns:minmax(80px,auto) 1fr 3.6em;gap:12px;align-items:center;font-size:14.5px}
.crow .cl{color:var(--ink)}.crow .cv{color:var(--muted-l);font-variant-numeric:tabular-nums}
.ctrack{position:relative;height:22px;background:var(--paper);border-radius:6px}
.cbar{position:absolute;left:0;top:0;bottom:0;background:var(--accent-ink);border-radius:6px}
.cmk{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px dashed #c7811f;z-index:1}
.clegend{font-size:13px;color:#8a5a14;margin:6px 0 0}.cmk-key{display:inline-block;width:14px;border-top:2px dashed #c7811f;vertical-align:middle;margin-right:6px}
@media (max-width:520px){.crow{grid-template-columns:1fr 3.2em}.crow .cl{grid-column:1/-1;margin-bottom:-6px}}

/* result checker (2026-11-01) */
.rc-row{display:grid;grid-template-columns:1.4fr 1fr 1.3fr auto;gap:10px;align-items:end}
.rc-row label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px}
.rc-row select,.rc-row input{padding:11px 12px;border-radius:10px;border:1px solid var(--line-l);font:inherit;background:#fff;min-width:0}
.rc-row input[aria-invalid=true]{border-color:#b3261e;outline:2px solid #b3261e}
.rres{margin:8px 0;padding:10px 12px;border-radius:10px;background:var(--paper)}
.rr-ok{border-left:3px solid var(--accent-ink)}.rr-mid{border-left:3px solid #c7811f;background:#fff8ec}.rr-hi{border-left:3px solid #b3261e;background:#fdf0ef}
.rbar{margin:10px 0 2px}.cbar.rr-mid{background:#c7811f}.cbar.rr-hi{background:#b3261e}.cbar.rr-ok{background:var(--accent-ink)}
.rcard{position:relative}.rc-x{position:absolute;top:10px;right:12px;border:0;background:none;color:var(--muted-l);cursor:pointer;font:inherit;font-size:13px;text-decoration:underline}
@media (max-width:760px){.rc-row{grid-template-columns:1fr 1fr}.rc-row label:first-child{grid-column:1/-1}.rc-row .btn{grid-column:1/-1;justify-content:center}}
/* wide tables become cards on phones (content_lib.stack_tables) */
@media (max-width:640px){
.prose table.stackable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.prose table.stackable,.prose table.stackable tbody,.prose table.stackable tr,.prose table.stackable td,.prose table.stackable th{display:block;width:100%}
.prose table.stackable tr{border:1px solid var(--line-l);border-radius:12px;margin:0 0 12px;padding:6px 12px;background:#fff}
.prose table.stackable td,.prose table.stackable tbody th{border:0;padding:6px 0;text-align:left}
.prose table.stackable td[data-label]::before,.prose table.stackable tbody th[data-label]::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;color:var(--muted-l);text-transform:uppercase;letter-spacing:.04em}
.prose table.stackable tr>:first-child{font-weight:600}
.prose .table-scroll{overflow:visible}
}
/* county pages (2026-11-01) */
.kgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 30px}
.kcard{background:#fff;border:1px solid var(--line-l);border-radius:16px;padding:16px 18px}
.kcard .mono{font-size:12px;color:var(--dim-l)}.kcard b{display:block;font-size:26px;font-weight:500;letter-spacing:-.02em;margin:6px 0}
.kcard p{font-size:14px;color:var(--muted-l);margin:0}
@media (max-width:1060px){.kgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kgrid{grid-template-columns:1fr}}
.crow{grid-template-columns:14rem 1fr 4.2em}
@media (max-width:520px){.crow{grid-template-columns:1fr 3.4em}.crow .cl{grid-column:1/-1;margin-bottom:-6px}}
.crow .cl{overflow-wrap:anywhere}
/* notices + contact form (2026-11-02) */
.topnote{font-size:13.5px;color:var(--muted-d);margin-top:10px;max-width:46rem}.topnote a{color:var(--accent)}
.callout.safety{border-left-width:4px}
.contact{max-width:40rem}.cfield{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px}
.cfield input,.cfield select,.cfield textarea{padding:11px 12px;border-radius:10px;border:1px solid var(--line-l);font:inherit;font-weight:400;background:#fff}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
/* contaminant x state pages (2026-11-03) */
.lvt{display:inline-flex;align-items:baseline;gap:7px}
.lvt .lv{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%}
/* finder distance + Check my ZIP (2026-11-04) */
.field input[aria-invalid=true]{border-color:#b3261e;outline:2px solid #b3261e}
.card .dist{font-size:12px;color:var(--accent-ink);font-weight:500;letter-spacing:.02em}
#f-zip-note{margin:-6px 2px 14px;font-size:13.5px}#f-zip-note a{color:var(--accent-ink)}
.zc-page h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:38px 0 12px;max-width:none}
.zc{display:grid;gap:8px;max-width:34rem}.zc>label{font-weight:600;font-size:15px}
.zc-row{display:flex;gap:10px;align-items:stretch}
.zc-row input{flex:1;min-width:0;padding:11px 14px;border-radius:12px;border:1px solid var(--line-l);font:500 20px/1.2 var(--sans);letter-spacing:.06em;background:#fff;color:var(--ink);min-height:50px}
.zc-row input[aria-invalid=true]{border-color:#b3261e;outline:2px solid #b3261e}
.zc-status{min-height:1.6em;margin:14px 0 0;font-size:15px;color:var(--ink)}.zc-status.err{color:#8a1c14;font-weight:500}
.zc-page .callout{background:#fff;border-left:3px solid var(--accent-ink);border-radius:0 12px 12px 0;padding:14px 18px;margin:22px 0}
.zc-sec{margin-top:8px}.zc-sec p,.zc-sec li{color:#24343a}.zc-sec a{color:var(--accent-ink);text-underline-offset:3px}
.zc-kgrid{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 14px}.zc-kgrid .kcard b{font-size:23px}
.zc-others{padding-left:20px;margin:0 0 6px;font-size:15px}
.zc-tests{padding-left:20px;display:grid;gap:10px}
.zc-filters{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line-l);margin:14px 0 0}
.zc-filters .chips{flex-basis:100%}
.zc-count{margin:18px 2px 12px;color:var(--muted-l);font-size:14.5px}.zc-count strong{color:var(--ink);font-weight:500}
.zc-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.zc-list .card a,.zc-sec .card{color:var(--ink);text-decoration:none}
.gcard details summary{cursor:pointer;color:var(--accent-ink);font-size:15px}.gcard details[open] summary{margin-bottom:8px}
.zc-how{margin-top:0}
@media (max-width:760px){.zc-kgrid{grid-template-columns:1fr}}
@media (max-width:640px){.zc-list{grid-template-columns:1fr}.zc-row{flex-direction:column}.zc-row .btn{justify-content:center}}
.nav-links a{white-space:nowrap}
@media (max-width:1180px){.nav-links a:first-child{display:none}.nav-links a{padding:8px 9px}}
.zc-page [hidden]{display:none!important}
/* well volume + bleach calculator (2026-11-04) */
.wv-page [hidden]{display:none!important}
.wv-page>.wrap>.wv-main>h2,.wv-res>h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:38px 0 12px;max-width:none}
.wv-page .callout{background:#fff;border-left:3px solid var(--accent-ink);border-radius:0 12px 12px 0;padding:14px 18px;margin:0 0 22px}
.wv-page .callout.warn{border-left-color:#c7811f}
.wv{display:grid;gap:16px}
.wv-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin-top:8px}
.wv-f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px;min-width:0}
.wv-f input,.wv-f select{padding:11px 12px;border-radius:10px;border:1px solid var(--line-l);font:inherit;font-weight:400;background:#fff;color:var(--ink);min-width:0;min-height:46px}
.wv-f input[aria-invalid=true]{border-color:#b3261e;outline:2px solid #b3261e}
.wv-radios{display:flex;flex-wrap:wrap;gap:4px 18px;font-weight:400}
.wv-radios label{display:flex;gap:8px;align-items:center;cursor:pointer;min-height:40px;font-size:15px}
.wv-radios input,.wv-only input{accent-color:var(--accent-ink);width:18px;height:18px;flex:none}
.wv-hint{font-size:13.5px;color:var(--muted-l);font-weight:400;margin:8px 0 0}
.wv-only{margin-top:10px}.wv-only .wv-hint{display:inline;margin:0}
.wv-status{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#fff;border-left:3px solid var(--accent-ink);font-size:15.5px;color:var(--ink);min-height:1.6em}
.wv-status.err{border-left-color:#b3261e;background:#fdf0ef;color:#8a1c14;font-weight:500}
.wv-res h3,.wv-next h3{font-size:1.18rem;margin:26px 0 10px}
.wv-k{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 10px}.wv-k .kcard b{font-size:24px}
.wv-basis{padding-left:20px;margin:0 0 6px;font-size:15px;color:#24343a;display:grid;gap:4px}
.wv-res a{color:var(--accent-ink);text-underline-offset:3px}
.wv-ags{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}
.wv-ag h4{margin:0 0 4px;font-size:1.02rem}
.wv-amt{font-size:21px;font-weight:500;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}
.wv-ag .qwhy{font-size:14.5px;margin-top:6px;color:#3d4d52}
.wv-src{font-size:13.5px;margin:8px 0 0;color:var(--muted-l)}
.wv-math{background:var(--paper2);border-style:dashed}
.wv-cta{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:20px}
.wv-cta2{font-size:15px}
.wv-type{grid-column:1/-1}
@media (max-width:760px){.wv-row{grid-template-columns:1fr}.wv-k{gap:8px}.wv-k .kcard{padding:12px 10px}.wv-k .kcard b{font-size:19px}.wv-k .kcard p{font-size:12.5px}.wv-k .mono{font-size:10px;letter-spacing:.08em}}
.prose .wv-cta a.btn-primary{color:#032019;text-decoration:none}
/* backflow section (build_backflow.py): company cards on utility pages reuse .grid/.card spacing, no hover lift (not a link card) */
.bfcard{display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:20px;background:#fff;border:1px solid var(--line-l);color:var(--ink);min-width:0}
.bfcard h3,.bfcard h4{font-size:17px;font-weight:500;letter-spacing:-.015em;line-height:1.3;margin:0;overflow-wrap:anywhere}
.bfcard h3 a,.bfcard h4 a{color:var(--ink);text-underline-offset:3px}
.bfcard .where{font-size:14px;color:var(--muted-l);overflow-wrap:anywhere}
.bfcard .where a,.bfcard .note a{color:var(--accent-ink)}
.bfcard .note{margin:0}
.bfbadge{margin:auto 0 0;font:500 12.5px/1.45 var(--sans);color:#0a5a50;background:#e1f6f1;border-radius:10px;padding:8px 10px}
.panel .bfbadge{margin:0 0 12px}
.bfcard.bf-base{border-style:dashed}
.bfpanel h3{font-size:17px;font-weight:500;letter-spacing:-.015em;margin:0 0 6px}
.bfpanel h3 a{color:var(--accent-ink);text-underline-offset:3px}
.bfhub .city a{color:inherit;text-underline-offset:3px}
.bfhub .statelist a{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px}
.bfhub .statelist a span{line-height:1.5;letter-spacing:.02em}
/* nav gained "Backflow testers" (2026-11-04): tighten links just above the burger breakpoint so the CTA keeps its inset */
@media (min-width:961px) and (max-width:1060px){.nav-links a{padding:8px 7px;font-size:13.5px}}
/* A-Z jump bar on long utility pages (build_backflow.AZ_MIN); plain anchors, no JS */
.bfaz{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.bfaz a{display:inline-grid;place-items:center;min-width:36px;min-height:36px;padding:0 8px;border-radius:10px;background:#fff;border:1px solid var(--line-l);color:var(--accent-ink);font:500 13px/1 var(--mono);text-decoration:none}
.bfaz a:hover{border-color:rgba(11,26,32,.3)}
.bfletter{scroll-margin-top:96px}
@media (max-width:640px){.bfcard{padding:16px;gap:6px}.bfgrid{gap:10px}.bfaz a{min-width:40px;min-height:40px}}
/* results v2 (2026-11-14): whole-report grid, urgent box, print view */
.rc2 .rc-top{margin-bottom:12px}.rc2 .rc-top label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px;max-width:420px}
.rc2 select,.rc2 input{padding:9px 10px;border-radius:10px;border:1px solid var(--line-l);font:inherit;background:#fff;min-width:0;width:100%}
.rc2 input[aria-invalid=true]{border-color:#b3261e;outline:2px solid #b3261e}
.rc-grid{width:100%;border-collapse:collapse}.rc-grid th,.rc-grid td{padding:6px 8px;border-bottom:1px solid var(--line-l);text-align:left;vertical-align:middle}
.rc-grid thead th{font-size:13px;color:var(--muted-l);font-weight:600}.rc-grid tbody th{font-weight:600;font-size:14.5px}
.rc-more{margin:10px 0}.rc-more summary{cursor:pointer;color:var(--accent-ink);font-weight:600}
.rc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.rc-urgent h3{margin:0 0 6px}.rc-urgent ul{margin:0 0 6px;padding-left:18px}.rc-print-row{margin-top:14px}
.loan-box ul{padding-left:18px}
@media (max-width:760px){.rc-grid thead{display:none}.rc-grid tr{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 0;border-bottom:1px solid var(--line-l)}.rc-grid tbody th{grid-column:1/-1;border:0;padding:0}.rc-grid td{border:0;padding:0}}
@media print{header,nav,footer,.site-header,.site-footer,.crumbs,#rc,#table,.stack.sticky,.rc-print-row,.qlinks,.btn,#table~*:not(.cite),.skip{display:none!important}
 body{background:#fff;color:#000}.band{padding:8px 0}.qsrc{display:block}.qsrc[open] summary,.qsrc summary{display:none}.qsrc p{display:block}
 .rcard{break-inside:avoid}.rr-hi,.rr-mid{background:none!important}a[href^="http"]::after{content:" (" attr(href) ")";font-size:10px;word-break:break-all}}
/* entity pages (labs, hazard labs, backflow): wide main column, slim sticky source rail (owner feedback 2026-11-15) */
.cols.wide{grid-template-columns:minmax(0,1fr) 250px;gap:32px}
.cols.wide .gtable td .note{font-size:12.5px}
.cols.wide .gtable td:first-child{min-width:170px}
@media (max-width:1060px){.cols.wide{grid-template-columns:1fr}.cols.wide .sticky{position:static}}
