/* ============================================================================
   PROJ-051 — Regenerative Medicine Physician / Treatment Finder  (redesign 2026-07)
   World-class rebuild: quiet, high-tech, trustworthy-medical. Light-first, near-flat,
   hierarchy carried by type + whitespace + hairlines. One accent (Made green), split
   by contrast role. Two-pane split view (dense list + sticky companion map).
   Vanilla — no build, no runtime CDN. Fonts self-hosted (see assets/fonts).
   ========================================================================== */

/* ── Self-hosted fonts (no CDN) ─────────────────────────────────────────── */
@font-face{font-family:'Funnel Display';font-style:normal;font-weight:600;font-display:swap;
  src:url('assets/fonts/funnel-display-600.woff2') format('woff2')}
@font-face{font-family:'Funnel Display';font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/funnel-display-700.woff2') format('woff2')}
@font-face{font-family:'Funnel Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/funnel-sans-400.woff2') format('woff2')}
@font-face{font-family:'Funnel Sans';font-style:normal;font-weight:500;font-display:swap;
  src:url('assets/fonts/funnel-sans-500.woff2') format('woff2')}
@font-face{font-family:'Funnel Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('assets/fonts/funnel-sans-600.woff2') format('woff2')}

:root{
  /* Neutral ramp — green-tinted, never pure #000/#fff */
  --canvas:#ffffff; --canvas-1:#fafbfa; --canvas-2:#f4f7f3;
  --ink:#14201a; --ink-2:#4c5a52; --ink-3:#7c877f;
  --hairline:#e8ede8; --hairline-2:#cfd8cf;

  /* Brand green — ONE accent, split by contrast role */
  --green:#43B02A;      /* large fills only: map buckets, >=24px marks */
  --green-ink:#177a33;  /* text/links/CTA on white  -> 5.4:1 AA */
  --green-btn:#0d5d29;  /* white text on this fill  -> 8:1 AAA */
  --green-wash:#eef6ee; /* selected / hover tint */

  --info-border:#177a33; --info-bg:#f6faf6; --focus:#177a33;

  /* Vertical accent-bar colors (4px, single job) */
  --vert-ortho:#3f7cc4; --vert-medspa:#8a5bc4; --vert-long:#2f9e57; --vert-neuro:#c08a2e;

  /* Map density sequential ramp (single-hue, monotonic) */
  --d-none:#eef1ee; --d-1:#cfe6c4; --d-2:#86c46a; --d-3:#43B02A; --d-4:#177a33;

  /* Type */
  --ff-display:'Funnel Display',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ff-sans:'Funnel Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  /* Spacing (4px grid) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px;

  /* Radii */
  --r-tag:6px; --r-card:12px; --r-pill:999px;

  /* Elevation — hairline + inset, not heavy shadows */
  --shadow-sm:0 0 0 1px rgba(20,40,20,.05),0 1px 2px rgba(20,40,20,.06);
  --shadow-hover:0 0 0 1px rgba(23,122,51,.30),0 6px 16px -6px rgba(20,40,20,.14);
  --shadow-drawer:0 16px 40px -12px rgba(20,40,20,.22),0 0 0 1px rgba(20,40,20,.06);

  /* Motion */
  --dur-fast:120ms; --dur-base:180ms; --dur-mid:260ms; --dur-slow:420ms;
  --ease-standard:cubic-bezier(.2,0,0,1);
  --ease-decel:cubic-bezier(.05,.7,.1,1);
  --ease-accel:cubic-bezier(.3,0,.8,.15);
  --ease-pop:cubic-bezier(.34,1.4,.64,1);

  --maxw:1320px;
  --mast-h:64px; --tool-h:56px;
}

/* Dark mode — light stays default for medical trust */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --canvas:#111512; --canvas-1:#0b0e0c; --canvas-2:#161b17;
    --ink:#eef2ee; --ink-2:#b6c0b8; --ink-3:#7e8a80;
    --hairline:rgba(255,255,255,.09); --hairline-2:rgba(255,255,255,.16);
    --green:#54c23a; --green-ink:#6fd257; --green-btn:#2f8f24; --green-wash:#16241a;
    --info-bg:#12201a; --focus:#6fd257;
    --d-none:#161b17; --d-1:#22432a; --d-2:#2f7a3e; --d-3:#43B02A; --d-4:#7fd15f;
    --shadow-sm:0 0 0 1px rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.4);
    --shadow-hover:0 0 0 1px rgba(111,210,87,.35),0 6px 16px -6px rgba(0,0,0,.5);
    --shadow-drawer:0 16px 40px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);
  }
}
:root[data-theme="dark"]{
  --canvas:#111512; --canvas-1:#0b0e0c; --canvas-2:#161b17;
  --ink:#eef2ee; --ink-2:#b6c0b8; --ink-3:#7e8a80;
  --hairline:rgba(255,255,255,.09); --hairline-2:rgba(255,255,255,.16);
  --green:#54c23a; --green-ink:#6fd257; --green-btn:#2f8f24; --green-wash:#16241a;
  --info-bg:#12201a; --focus:#6fd257;
  --d-none:#161b17; --d-1:#22432a; --d-2:#2f7a3e; --d-3:#43B02A; --d-4:#7fd15f;
  --shadow-sm:0 0 0 1px rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.4);
  --shadow-hover:0 0 0 1px rgba(111,210,87,.35),0 6px 16px -6px rgba(0,0,0,.5);
  --shadow-drawer:0 16px 40px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);
}

/* ── Base ───────────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--mast-h) + var(--tool-h) + 16px);scroll-behavior:smooth}
body{margin:0;font-family:var(--ff-sans);color:var(--ink);background:var(--canvas-1);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5;
  font-variant-numeric:tabular-nums}
h1,h2,h3,h4{font-family:var(--ff-display);margin:0;color:var(--ink);line-height:1.15}
a{color:var(--green-ink);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-5)}
.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}
.skip-link{position:absolute;left:12px;top:-48px;z-index:300;background:var(--ink);color:#fff;
  padding:10px 16px;border-radius:8px;font-weight:600;font-size:13px;transition:top var(--dur-base)}
.skip-link:focus{top:12px;text-decoration:none}
:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 32%,transparent)}

/* ── Masthead ───────────────────────────────────────────────────────────── */
.lt-top{background:#0b0e0c;color:#fff;position:sticky;top:0;z-index:60;
  border-bottom:1px solid rgba(255,255,255,.08)}
.lt-top .wrap{display:flex;align-items:center;gap:var(--sp-4);height:var(--mast-h)}
.lt-top .brand{display:flex;align-items:center;gap:var(--sp-3)}
.lt-top .brand:hover{text-decoration:none}
.lt-top .brand img{height:24px}
.lt-top .brand .div{width:1px;height:24px;background:rgba(255,255,255,.2)}
.lt-top .brand .t{font-family:var(--ff-display);font-weight:600;font-size:14px;color:#fff}
.lt-top .brand .t small{display:block;font-family:var(--ff-sans);font-weight:600;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:#8CC63F;margin-top:2px}
.lt-top .spacer{flex:1}
.lt-top .asof{font-size:12px;color:rgba(255,255,255,.6);text-align:right;line-height:1.35}
.lt-top .asof b{color:#fff;font-weight:600}
.lt-top .backlink{font-size:13px;color:rgba(255,255,255,.82);font-weight:500;
  border:1px solid rgba(255,255,255,.18);padding:7px 12px;border-radius:8px;white-space:nowrap;
  transition:background var(--dur-fast),border-color var(--dur-fast)}
.lt-top .backlink:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.32);
  text-decoration:none;color:#fff}
.theme-toggle{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.18);
  background:none;color:rgba(255,255,255,.82);cursor:pointer;display:flex;align-items:center;
  justify-content:center;transition:background var(--dur-fast)}
.theme-toggle:hover{background:rgba(255,255,255,.08);color:#fff}

/* ── Compact header (replaces the hero) ─────────────────────────────────── */
.lt-head{position:relative;background:var(--canvas);border-bottom:1px solid var(--hairline);
  padding:var(--sp-6) 0 var(--sp-5);overflow:hidden}
.lt-head::before{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 80% at 88% -20%,rgba(67,176,42,.08),transparent 60%);pointer-events:none}
.lt-head .wrap{position:relative}
.eyebrow{font-family:var(--ff-sans);font-size:11px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--green-ink);margin-bottom:var(--sp-3)}
.lt-head h1{font-size:34px;font-weight:700;letter-spacing:-.022em;line-height:1.08;
  max-width:19ch;color:var(--ink)}
.lt-head .sub{font-size:15px;color:var(--ink-2);max-width:64ch;margin:var(--sp-3) 0 0;line-height:1.55}
.lt-head .sub b{color:var(--ink);font-weight:600}
.provenance{display:flex;flex-wrap:wrap;align-items:center;margin-top:var(--sp-4);
  font-size:13px;color:var(--ink-3)}
.provenance .dot,.pf-statline .dot{display:inline-block;vertical-align:middle;width:3px;height:3px;border-radius:50%;background:var(--hairline-2);margin:0 10px}
.pf-statline{display:flex;flex-wrap:wrap;align-items:center;margin-top:var(--sp-4);
  font-size:13px;color:var(--ink-3)}
.pf-statline b{font-family:var(--ff-display);font-weight:600;color:var(--ink);font-size:14px}

/* ── Sticky toolbar ─────────────────────────────────────────────────────── */
.lt-toolbar{background:color-mix(in srgb,var(--canvas) 82%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--hairline);position:sticky;top:var(--mast-h);z-index:40}
.lt-toolbar .wrap{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tool-h);
  padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.tb-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tb-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink-3);white-space:nowrap}
.tb-divider{width:1px;height:22px;background:var(--hairline);align-self:center}
.tb-tail{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto}
#result-count{font-size:13px;color:var(--ink-3);white-space:nowrap}
#result-count b{font-family:var(--ff-display);font-weight:600;color:var(--ink)}

.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{appearance:none;font-family:var(--ff-sans);font-weight:600;font-size:13px;
  background:var(--canvas-1);border:1px solid var(--hairline);color:var(--ink-2);
  padding:8px 12px;border-radius:var(--r-tag);cursor:pointer;display:inline-flex;align-items:center;
  gap:7px;transition:background var(--dur-fast) var(--ease-standard),
  border-color var(--dur-fast),color var(--dur-fast),transform var(--dur-fast) var(--ease-pop)}
.chip:hover{border-color:var(--hairline-2);background:var(--canvas)}
.chip:active{transform:scale(.94)}
.chip[aria-pressed="true"]{background:var(--green-btn);border-color:var(--green-btn);color:#fff}
.chip .cn{font-size:11px;font-weight:600;opacity:.55;font-variant-numeric:tabular-nums;
  transition:opacity var(--dur-fast)}
.chip[aria-pressed="true"] .cn{opacity:.85}
.chip:disabled{opacity:.4;cursor:not-allowed}
.chip:disabled:hover{border-color:var(--hairline);background:var(--canvas-1)}

.searchbox{position:relative;display:flex;align-items:center}
.searchbox svg{position:absolute;left:11px;color:var(--ink-3);pointer-events:none}
.searchbox input{font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--canvas);
  border:1px solid var(--hairline);border-radius:var(--r-tag);padding:9px 12px 9px 34px;
  width:230px;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.searchbox input::placeholder{color:var(--ink-3)}
.searchbox input:focus{border-color:var(--green-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 18%,transparent)}
.clear-btn{appearance:none;border:1px solid var(--hairline);background:var(--canvas);
  font-family:var(--ff-sans);font-weight:600;font-size:12px;color:var(--ink-2);cursor:pointer;
  white-space:nowrap;padding:8px 12px;border-radius:var(--r-tag);transition:border-color var(--dur-fast)}
.clear-btn:hover{border-color:var(--hairline-2);color:var(--ink)}

/* applied-filter pills (2nd line, only when active) */
.applied{display:flex;flex-wrap:wrap;gap:6px;width:100%;padding-bottom:2px}
.applied:empty{display:none}
.applied .ap{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  color:var(--green-btn);background:var(--green-wash);border:1px solid color-mix(in srgb,var(--green-ink) 24%,transparent);
  padding:5px 8px 5px 10px;border-radius:var(--r-pill)}
.applied .ap button{appearance:none;border:none;background:none;color:inherit;cursor:pointer;
  font-size:14px;line-height:1;padding:0;opacity:.7}
.applied .ap button:hover{opacity:1}

/* ── Disclaimer callout (calm, green) ───────────────────────────────────── */
.pf-disclaimer{background:var(--info-bg);border:1px solid var(--hairline);
  border-left:3px solid var(--info-border);border-radius:10px;padding:var(--sp-3) var(--sp-4);
  margin:var(--sp-5) 0 0;font-size:13.5px;color:var(--ink-2);line-height:1.5}
.pf-disclaimer h4{font-family:var(--ff-display);font-size:15px;font-weight:600;color:var(--ink);margin-bottom:2px}
.pf-disclaimer b{color:var(--ink);font-weight:600}
.pf-disclaimer details{margin-top:var(--sp-2)}
.pf-disclaimer summary{cursor:pointer;font-weight:600;color:var(--green-ink);font-size:13px;
  list-style:none;display:inline-flex;align-items:center;gap:5px}
.pf-disclaimer summary::-webkit-details-marker{display:none}
.pf-disclaimer summary::after{content:"▾";font-size:10px;transition:transform var(--dur-fast)}
.pf-disclaimer details[open] summary::after{transform:rotate(180deg)}
.pf-disclaimer .more{margin-top:var(--sp-2);color:var(--ink-2)}

/* ── Split layout ───────────────────────────────────────────────────────── */
.lt-main{padding:var(--sp-5) 0 var(--sp-7)}
.lt-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(380px,1fr);
  gap:var(--sp-5);align-items:start}
.pane-list{min-width:0}
.pane-map{position:sticky;top:calc(var(--mast-h) + var(--tool-h) + var(--sp-3));
  display:flex;flex-direction:column;gap:var(--sp-4);
  max-height:calc(100vh - var(--mast-h) - var(--tool-h) - var(--sp-5));overflow:visible}

/* results header */
.results-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);
  flex-wrap:wrap;margin-bottom:var(--sp-3)}
.results-head h2{font-size:20px;font-weight:600;letter-spacing:-.01em}
.results-head h2 .rc{color:var(--ink-3);font-weight:600;font-size:15px}
.results-head p{font-size:13px;color:var(--ink-3);margin:2px 0 0}
.sortbox{display:flex;align-items:center;gap:8px}
.sortbox label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.sortbox select{font-family:inherit;font-size:13px;color:var(--ink);background:var(--canvas);
  border:1px solid var(--hairline);border-radius:var(--r-tag);padding:8px 30px 8px 11px;cursor:pointer;
  outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237c877f' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center}
.sortbox select:focus{border-color:var(--green-ink)}

/* ── Provider list + compact row ────────────────────────────────────────── */
#pf-grid{display:flex;flex-direction:column;gap:var(--sp-2);position:relative}
.pf-row{display:grid;grid-template-columns:4px 1fr auto;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-card);
  background:var(--canvas);color:var(--ink);text-decoration:none;scroll-margin-top:136px;
  transition:transform var(--dur-base) var(--ease-standard),
    box-shadow var(--dur-base) var(--ease-standard),
    border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast)}
.pf-row:hover{border-color:var(--green-ink);transform:translateY(-1px);box-shadow:var(--shadow-hover);text-decoration:none}
.pf-row.is-active{background:var(--green-wash);box-shadow:inset 3px 0 0 var(--green-ink)}
.pf-accent{align-self:stretch;width:4px;min-height:40px;border-radius:2px;background:var(--vert-medspa)}
.pf-row[data-vert="orthopedic_pain"] .pf-accent{background:var(--vert-ortho)}
.pf-row[data-vert="longevity_clinic"] .pf-accent{background:var(--vert-long)}
.pf-row[data-vert="neurology"] .pf-accent{background:var(--vert-neuro)}
.pf-main{min-width:0}
.pf-namerow{display:flex;align-items:center;gap:8px;min-width:0}
.pf-name{font-family:var(--ff-display);font-weight:600;font-size:15px;letter-spacing:-.006em;
  line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pf-state{flex:none;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--ink-3);
  border:1px solid var(--hairline-2);padding:2px 6px;border-radius:5px}
.pf-meta{font-size:13px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:nowrap;overflow:hidden}
.pf-tag{font-family:var(--ff-sans);font-weight:600;font-size:11px;line-height:1;padding:4px 8px;
  border-radius:var(--r-tag);border:1px solid var(--hairline-2);color:var(--ink-2);
  background:var(--canvas-1);white-space:nowrap;font-variant-numeric:tabular-nums}
.pf-tag.pf-more{color:var(--ink-3);background:none;border-color:var(--hairline)}
.pf-cta{flex:none;width:32px;height:32px;border-radius:var(--r-pill);border:1px solid var(--hairline-2);
  display:flex;align-items:center;justify-content:center;color:var(--green-ink);font-size:15px;
  transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}
.pf-row:hover .pf-cta{background:var(--green-wash);border-color:var(--green-ink);transform:translateX(2px)}
.pf-hi{background:rgba(67,176,42,.2);border-radius:2px}

@keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pf-row.enter{animation:cardIn var(--dur-slow) var(--ease-decel) both;
  animation-delay:calc(min(var(--i,0),14) * 34ms)}

/* ── Map card ───────────────────────────────────────────────────────────── */
.card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-card);
  box-shadow:var(--shadow-sm)}
.map-card{padding:var(--sp-3) var(--sp-4) var(--sp-2)}
.map-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}
.map-head h3{font-size:14px;font-weight:600}
.map-head .hint{font-size:12px;color:var(--ink-3)}
.map-frame{font-size:12px;color:var(--ink-3);margin:2px 0 var(--sp-1);line-height:1.4}
.map-frame b{color:var(--ink-2);font-weight:600}
#us-map{width:100%;height:auto;display:block;overflow:visible}
#us-map path.state{stroke:var(--canvas);stroke-width:1;vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;transition:opacity var(--dur-fast),filter var(--dur-fast)}
#us-map path.state.has{cursor:pointer}
#us-map path.state.has:hover,#us-map path.state.is-active{filter:brightness(1.08) saturate(1.06);
  stroke:#0c130b;stroke-width:1.4}
#us-map path.state:focus-visible{stroke:var(--focus);stroke-width:2;outline:none}
#us-map path.state.dim{opacity:.32}
#us-map path.state.sel{stroke:#0c130b;stroke-width:1.8}
#us-map .st-label{font-family:var(--ff-sans);font-weight:600;font-size:8px;fill:#fff;
  pointer-events:none;text-anchor:middle}
#us-map .st-label.ink{fill:var(--ink-2)}
#us-map .pinwrap{transition:opacity var(--dur-fast)}
#us-map .pinwrap.dim{opacity:.32}
#us-map circle.pin{fill:var(--canvas);stroke:#0c130b;stroke-width:1.1;pointer-events:none}
#us-map text.pin-n{font-family:var(--ff-display);font-weight:600;font-size:9px;fill:#0c130b;
  pointer-events:none;text-anchor:middle}

.map-tip{position:fixed;z-index:120;pointer-events:none;background:#0c130b;color:#fff;
  border-radius:10px;padding:9px 12px;box-shadow:0 14px 34px rgba(0,0,0,.32);font-size:12.5px;
  max-width:250px;opacity:0;transform:translateY(3px);transition:opacity var(--dur-fast),transform var(--dur-fast);
  border:1px solid rgba(255,255,255,.12)}
.map-tip.on{opacity:1;transform:none}
.map-tip .tt-name{font-family:var(--ff-display);font-weight:600;font-size:14px;margin-bottom:3px}
.map-tip .tt-row{color:rgba(255,255,255,.72);font-size:11.5px;line-height:1.5}
.map-tip .tt-row b{color:#fff}
.map-tip .tt-cta{margin-top:5px;color:#8CC63F;font-size:11px;font-weight:600}

/* ── Rail ───────────────────────────────────────────────────────────────── */
.rail{display:flex;flex-direction:column;gap:var(--sp-4);overflow-y:auto;min-height:0}
.panel{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-card);
  box-shadow:var(--shadow-sm);overflow:hidden}
.panel h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink-3);padding:var(--sp-3) var(--sp-4) 0}
.panel .p-body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}
.legend-row{display:flex;align-items:center;gap:8px;padding:4px 0}
.legend-row .sw{width:14px;height:14px;border-radius:4px;flex:none;border:1px solid rgba(0,0,0,.06)}
.legend-row .lg-t{font-size:13px;font-weight:600;color:var(--ink)}
.legend-row .lg-c{font-size:11.5px;color:var(--ink-3);margin-left:5px}
.legend-note{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--hairline);
  font-size:11.5px;color:var(--ink-3);line-height:1.45}
.legend-note b{color:var(--ink-2);font-weight:600}
.rail-state{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--hairline);
  cursor:pointer;width:100%;background:none;border-left:none;border-right:none;border-top:none;
  font-family:inherit;text-align:left;transition:background var(--dur-fast);border-radius:6px}
.rail-state:last-of-type{border-bottom:none}
.rail-state:hover,.rail-state.is-active{background:var(--green-wash)}
.rail-state .sw{width:12px;height:12px;border-radius:4px;flex:none}
.rail-state .rs-name{font-size:13px;font-weight:600;color:var(--ink);flex:1}
.rail-state .rs-n{font-family:var(--ff-display);font-weight:600;font-size:15px;color:var(--ink)}
.rail-state .rs-c{font-size:11px;color:var(--ink-3)}
.rail-note{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--hairline);
  font-size:11.5px;color:var(--ink-3);line-height:1.45}
.ask-list{list-style:none;padding:0;margin:0}
.ask-list li{font-size:12.5px;color:var(--ink-2);padding:5px 0 5px 16px;position:relative;line-height:1.45}
.ask-list li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;
  border-radius:50%;background:var(--green-ink)}
.ask-list li em{font-style:normal;color:var(--ink);font-weight:600}

/* ── Empty + skeleton ───────────────────────────────────────────────────── */
.pf-empty{padding:var(--sp-7) var(--sp-4);text-align:center;border:1px dashed var(--hairline-2);
  border-radius:var(--r-card);background:var(--canvas)}
.pf-empty .pe-ico{width:48px;height:48px;border-radius:50%;background:var(--green-wash);color:var(--green-ink);
  display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-3)}
.pf-empty h4{font-size:17px;font-weight:600;margin-bottom:5px}
.pf-empty p{font-size:13px;color:var(--ink-3);margin:0 0 var(--sp-3)}
.pe-btn{appearance:none;border:none;background:var(--green-btn);color:#fff;font-family:var(--ff-display);
  font-size:14px;font-weight:600;padding:10px 20px;border-radius:9px;cursor:pointer;transition:filter var(--dur-fast)}
.pe-btn:hover{filter:brightness(1.08)}
.skel-row{height:96px;border:1px solid var(--hairline);border-radius:var(--r-card);margin-bottom:var(--sp-2);
  background:var(--canvas);display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-4)}
.skel-row .b{background:var(--canvas-2);border-radius:6px;position:relative;overflow:hidden}
.skel-row .b::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--canvas) 60%,transparent),transparent);
  animation:shimmer 1.5s var(--ease-standard) infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.lt-foot{background:#0b0e0c;color:rgba(255,255,255,.7);padding:var(--sp-7) 0;margin-top:var(--sp-6)}
.lt-foot .wrap{display:flex;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;align-items:flex-start}
.lt-foot .footer-logo{height:30px;margin-bottom:var(--sp-4)}
.lt-foot .footer-line{font-size:15px;color:rgba(255,255,255,.9);margin:0 0 var(--sp-3);font-weight:600}
.lt-foot .fl{font-size:12px;color:rgba(255,255,255,.5);line-height:1.6;max-width:68ch}
.lt-foot .fl b{color:rgba(255,255,255,.82)}
.lt-foot .fr{font-size:11.5px;color:rgba(255,255,255,.4);text-align:right;white-space:nowrap}

/* ── State drawer ───────────────────────────────────────────────────────── */
.drawer-scrim{position:fixed;inset:0;background:rgba(12,19,11,.42);z-index:200;opacity:0;
  pointer-events:none;transition:opacity var(--dur-base)}
.drawer-scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(560px,94vw);background:var(--canvas);
  z-index:210;box-shadow:var(--shadow-drawer);transform:translateX(100%);visibility:hidden;
  transition:transform 220ms var(--ease-accel),visibility 0s linear 220ms;display:flex;flex-direction:column}
.drawer.on{transform:translateX(0);visibility:visible;
  transition:transform var(--dur-mid) var(--ease-decel),visibility 0s}
.drawer .dh{padding:var(--sp-5) var(--sp-5) var(--sp-4);color:#fff;position:relative;flex:none;
  background:linear-gradient(150deg,#1b7a2f,#0d4a1c)}
.drawer .dh .close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:9px;
  border:none;background:rgba(255,255,255,.16);color:#fff;font-size:19px;cursor:pointer;line-height:1;
  transition:background var(--dur-fast)}
.drawer .dh .close:hover{background:rgba(255,255,255,.28)}
.drawer .dh .d-eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  opacity:.82;margin-bottom:5px}
.drawer .dh h2{font-size:26px;font-weight:700;color:#fff;margin-bottom:4px}
.drawer .dh .d-stats{display:flex;gap:22px;margin-top:14px}
.drawer .dh .d-stats .ds .n{font-family:var(--ff-display);font-weight:700;font-size:20px}
.drawer .dh .d-stats .ds .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;opacity:.78;
  font-weight:600;margin-top:2px}
.drawer .db{padding:var(--sp-4) var(--sp-5) var(--sp-6);overflow-y:auto;flex:1}
.drawer .d-blurb{font-size:13px;color:var(--ink-2);background:var(--canvas-2);border-radius:10px;
  padding:11px 14px;margin-bottom:var(--sp-4);line-height:1.5}
.drawer .dw-none{font-size:13px;color:var(--ink-3);line-height:1.55;padding:8px 0}

/* rich provider card (drawer only) */
.pf-detail{border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--sp-4);
  margin-bottom:var(--sp-3);background:var(--canvas);opacity:0;transform:translateY(8px);
  animation:cardIn var(--dur-mid) var(--ease-decel) forwards;animation-delay:calc(120ms + var(--i,0)*24ms)}
.pf-detail .d-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.pf-detail .d-name{font-family:var(--ff-display);font-weight:600;font-size:16px;color:var(--ink);flex:1;line-height:1.25}
.pf-detail .d-city{font-size:13px;color:var(--ink-3);margin-bottom:12px}
.pf-detail .d-sec{margin-bottom:10px}
.pf-detail .d-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink-3);margin-bottom:5px}
.pf-detail .d-chips{display:flex;flex-wrap:wrap;gap:5px}
.pf-detail .d-tag{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:var(--r-tag);
  background:var(--canvas-1);color:var(--ink-2);border:1px solid var(--hairline-2)}
.pf-detail .d-tag.ind{background:var(--canvas-2)}
.pf-detail .d-line{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin-top:8px}
.pf-detail .d-line b{color:var(--ink-2);font-weight:600}
.pf-detail .d-visit{margin-top:12px;padding-top:11px;border-top:1px solid var(--hairline);
  font-size:13px;font-weight:600;color:var(--green-ink);display:inline-flex;align-items:center;gap:5px}
.pf-detail .d-verify{font-size:11.5px;color:var(--ink-3);margin-top:8px}

/* ── Mobile map/list FAB ────────────────────────────────────────────────── */
.view-toggle{display:none;position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  height:44px;padding:0 20px;border-radius:var(--r-pill);background:var(--ink);color:#fff;
  border:none;font-family:var(--ff-sans);font-weight:600;font-size:14px;cursor:pointer;
  box-shadow:0 6px 20px rgba(0,0,0,.28);z-index:50;align-items:center;gap:8px}

/* ── Reveal-on-scroll ───────────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-decel),
  transform var(--dur-slow) var(--ease-decel)}
.reveal.in{opacity:1;transform:none}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width:1199px){ .pf-cta{width:30px;height:30px} }
@media (max-width:1099px){
  .lt-grid{grid-template-columns:1fr}
  .pane-map{position:static;max-height:none;order:-1}
  .rail{flex-direction:row;flex-wrap:wrap}
  .rail .panel{flex:1;min-width:240px}
  .lt-head h1{font-size:28px}
}
@media (max-width:820px){ .lt-top .asof{display:none} }
@media (max-width:699px){
  .wrap{padding:0 var(--sp-4)}
  .lt-head h1{font-size:25px}
  .lt-head .sub{font-size:14px}
  .tb-tail{margin-left:0;width:100%}
  .searchbox,.searchbox input{width:100%;flex:1}
  .tb-divider{display:none}
  .rail{flex-direction:column}
  .view-toggle{display:inline-flex}
  .lt-grid .pane-map{display:none}
  .lt-grid.show-map .pane-list{display:none}
  .lt-grid.show-map .pane-map{display:flex;position:fixed;inset:calc(var(--mast-h) + var(--tool-h)) 0 0 0;
    z-index:45;background:var(--canvas-1);padding:var(--sp-4);overflow-y:auto}
  .drawer{width:100vw}
}

/* ── Reduced motion ─────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  :root{--dur-fast:.01ms;--dur-base:.01ms;--dur-mid:.01ms;--dur-slow:.01ms}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important}
  .skel-row .b::after{display:none}
  .pf-row:hover{transform:none}
  .pf-row.enter,.pf-detail{animation:none;opacity:1;transform:none}
}

/* ── Location / distance ────────────────────────────────────────────────── */
.results-tools{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.geo-btn{appearance:none;display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-sans);
  font-weight:600;font-size:13px;color:var(--green-btn);background:var(--green-wash);
  border:1px solid color-mix(in srgb,var(--green-ink) 26%,transparent);padding:8px 12px;
  border-radius:var(--r-tag);cursor:pointer;white-space:nowrap;
  transition:border-color var(--dur-fast),background var(--dur-fast)}
.geo-btn:hover{border-color:var(--green-ink)}
.geo-btn svg{flex:none}
.geo-btn.on{background:var(--green-btn);border-color:var(--green-btn);color:#fff}
.geo-btn.loading{opacity:.7;cursor:progress}
.geo-btn.loading svg{animation:geopulse 1s var(--ease-standard) infinite}
@keyframes geopulse{50%{opacity:.35}}
.geo-status{font-size:12.5px;color:var(--green-ink);margin:4px 0 0;max-width:60ch;line-height:1.4}
.geo-status.err{color:var(--amber,#a86a12)}
:root{--amber:#a86a12}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--amber:#d9a441}}
:root[data-theme="dark"]{--amber:#d9a441}
.pf-dist{font-family:var(--ff-display);font-weight:600;color:var(--green-ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.pf-detail .d-contact .d-visit{margin-top:6px}
