/* Base design system carried over from the MMJ Cards prototype v17 (styles from template + styles8.css). */

/* Layout: rental-search grammar — sticky search header, filter chip bar, list|map split; spec pages use a 68ch reading column. */
:root{
  --bg:#f4f7f5; --surface:#ffffff; --sunk:#e9efec; --ink:#14211d; --muted:#5a6a64; --line:#d8e1dd;
  --brand:#0f5c4e; --brand-ink:#ffffff; --brand-soft:#dcefe9; --sun:#e39a2d; --sun-soft:#fbebd2; --sun-ink:#5b3906;
  --water:#cfe4ea; --land:#eef3ee; --road:#d9cfb8; --good:#1f8a5b; --bad:#b4442f; --note:#fff4bf; --note-ink:#4a3c00; --note-line:#e6cf5c;
  --st-adult:#2f7d6b; --st-med:#7fbfa9; --st-lim:#e7dcc0; --st-none:#e3e7e5; --st-ink:#14211d;
  --m1:#2f6f63; --m2:#7a5a2f; --m3:#3d5a80; --m4:#7b4b63; --m5:#4f6b2c; --m6:#80553d;
  --f-display:"Unbounded", "Onest", system-ui, sans-serif; --f-body:"Onest", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r:10px; --shadow:0 1px 2px rgb(20 33 29 / .06), 0 4px 14px rgb(20 33 29 / .06);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --st-adult:#3fa58c; --st-med:#2c5f52; --st-lim:#4a4330; --st-none:#232e2a; --st-ink:#e4ece8;
  --bg:#0d1412; --surface:#141e1b; --sunk:#1b2723; --ink:#e4ece8; --muted:#97a8a1; --line:#2a3833;
  --brand:#3fb39a; --brand-ink:#06201a; --brand-soft:#173a32; --sun:#f0b455; --sun-soft:#3a2c14; --sun-ink:#fbe3b8;
  --water:#13303a; --land:#18221f; --road:#3a3628; --good:#4cc38a; --bad:#e07a62; --note:#3a3412; --note-ink:#f5e7a1; --note-line:#6d5f1d;
  --m1:#3d8c7d; --m2:#9a7442; --m3:#5577a3; --m4:#9a6380; --m5:#6a8b3d; --m6:#a06d50; color-scheme:dark}}
:root[data-theme="dark"]{
  --st-adult:#3fa58c; --st-med:#2c5f52; --st-lim:#4a4330; --st-none:#232e2a; --st-ink:#e4ece8;
  --bg:#0d1412; --surface:#141e1b; --sunk:#1b2723; --ink:#e4ece8; --muted:#97a8a1; --line:#2a3833;
  --brand:#3fb39a; --brand-ink:#06201a; --brand-soft:#173a32; --sun:#f0b455; --sun-soft:#3a2c14; --sun-ink:#fbe3b8;
  --water:#13303a; --land:#18221f; --road:#3a3628; --good:#4cc38a; --bad:#e07a62; --note:#3a3412; --note-ink:#f5e7a1; --note-line:#6d5f1d;
  --m1:#3d8c7d; --m2:#9a7442; --m3:#5577a3; --m4:#9a6380; --m5:#6a8b3d; --m6:#a06d50; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--surface)}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{text-wrap:balance;margin:0}
h1{font-family:var(--f-display);font-weight:700;font-size:clamp(26px,4vw,42px);line-height:1.12;letter-spacing:-.01em}
h2{font-family:var(--f-display);font-weight:500;font-size:clamp(19px,2.2vw,24px);line-height:1.2}
h3{font-size:17px;font-weight:600}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
.stack{display:flex;flex-direction:column;gap:var(--g,16px)}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--g,10px)}
.section{padding-block:36px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--surface);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:18px;min-height:60px}
.logo{font-family:var(--f-display);font-weight:700;font-size:18px;text-decoration:none;display:flex;align-items:center;gap:8px;white-space:nowrap}
.logo i{display:inline-grid;place-items:center;height:28px;padding:0 7px;border-radius:8px;background:var(--brand);color:var(--brand-ink);font-style:normal;font-size:13px}
.nav{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.nav a{padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:500;white-space:nowrap}
.nav a:hover,.nav a.on{color:var(--ink);background:var(--sunk)}
.tools{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 14px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.sun{background:var(--sun);border-color:var(--sun);color:#2b1a00}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}
.toggle-notes[aria-pressed="true"]{background:var(--note);border-color:var(--note-line);color:var(--note-ink)}
@media (max-width:860px){.nav{display:none}.tools .hide-sm{display:none}.nav.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 16px;box-shadow:var(--shadow)}.nav.open a{padding:12px 10px}}
@media (min-width:861px){.menu-btn{display:none}}


/* annotations */
.anno{display:none;background:var(--note);color:var(--note-ink);border:1px dashed var(--note-line);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.45;margin-block:8px}
.anno b{font-weight:700}
.anno::before{content:"✎ ТЗ  ";font-weight:700;letter-spacing:.04em}
body.notes .anno{display:block}
body.notes .anno.inline{display:inline-block}

/* search bar */
.searchbar{display:grid;grid-template-columns:1.4fr 1fr auto;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.searchbar label{display:flex;flex-direction:column;padding:10px 16px;border-right:1px solid var(--line);min-width:0}
.searchbar label span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
.searchbar input,.searchbar select{border:0;background:transparent;padding:2px 0;font-size:16px;outline:none;min-width:0;width:100%}
.searchbar .go{margin:8px;border-radius:10px;padding:0 22px}
@media (max-width:640px){.searchbar{grid-template-columns:1fr}.searchbar label{border-right:0;border-bottom:1px solid var(--line)}.searchbar .go{padding:12px}}

/* hero */
.hero{background:linear-gradient(180deg,var(--brand-soft),var(--bg));padding-block:44px 30px}
.hero h1{max-width:18ch}
.hero p.lead{font-size:17px;color:var(--muted);max-width:56ch;margin:12px 0 22px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
.chip:hover{border-color:var(--muted)}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip .x{opacity:.7}
.chip.dropdown::after{content:"▾";font-size:10px;opacity:.6}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stat{background:var(--surface);padding:14px 16px}
.stat b{display:block;font-family:var(--f-display);font-weight:500;font-size:24px;font-variant-numeric:tabular-nums}
.stat span{font-size:13px;color:var(--muted)}

/* grids */
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(var(--min,260px),1fr))}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;text-decoration:none;display:flex;flex-direction:column;gap:6px;min-width:0}
a.tile:hover{border-color:var(--brand)}
.tile .big{font-family:var(--f-display);font-size:20px;font-weight:500}
.tile.soon{opacity:.6}

/* catalog */
.crumbs{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;padding-top:14px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}
.filterbar{position:sticky;top:calc(env(safe-area-inset-top,0px) + 61px);z-index:30;background:var(--bg);border-bottom:1px solid var(--line);padding-block:10px}
.filterbar .row{--g:8px}
.pop{position:relative}
.panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgb(0 0 0 / .15);padding:14px;min-width:260px;max-width:calc(100vw - 32px)}
.panel label.ck{display:flex;gap:8px;align-items:center;padding:4px 0;cursor:pointer}
.panel h4{margin:8px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}
@media (max-width:560px){.more-grid{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start;padding-block:16px}
.split .mapcol{position:sticky;top:calc(env(safe-area-inset-top,0px) + 128px);height:calc(100vh - 150px);min-height:420px}
@media (max-width:980px){.split{grid-template-columns:1fr}.split .mapcol{position:relative;top:0;height:420px}.split.list-only .mapcol{display:none}.split.map-only .listcol{display:none}}
@media (min-width:981px){.viewtoggle{display:none}}
.resultbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.resultbar select{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:6px 8px}
.cards{display:flex;flex-direction:column;gap:12px}
.card{display:grid;grid-template-columns:150px minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .15s, box-shadow .15s}
.card.hl{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.card.sponsored{border-color:var(--sun);background:linear-gradient(90deg,var(--sun-soft),var(--surface) 40%)}
.card .ph{position:relative;min-height:150px}
.card .body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.card .t{display:flex;justify-content:space-between;gap:8px;align-items:start}
.card .name{font-weight:600;font-size:16px;text-decoration:none;line-height:1.3}
.card .name:hover{text-decoration:underline}
.card .price{font-weight:600}
.card .acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:4px}
@media (max-width:520px){.card{grid-template-columns:1fr}.card .ph{min-height:110px}}
.mono{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:var(--f-display);font-weight:700;font-size:28px;letter-spacing:.02em}
.mono small{position:absolute;left:8px;bottom:8px;font:600 11px var(--f-body);background:rgb(0 0 0 / .35);padding:2px 7px;border-radius:999px}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:999px;white-space:nowrap}
.badge.partner{background:var(--sun);color:#2b1a00}
.badge.verified{background:var(--brand-soft);color:var(--brand)}
.badge.spons{background:transparent;color:var(--sun-ink);border:1px solid var(--sun);font-weight:600}
.mono .badge{position:absolute;top:8px;left:8px}
.tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:12px;background:var(--sunk);border-radius:6px;padding:2px 7px;color:var(--ink);white-space:nowrap}
.tag.svc{background:var(--brand-soft);color:var(--brand)}
.stars{color:var(--sun);font-weight:700}
.open{color:var(--good);font-weight:600}.closed{color:var(--bad);font-weight:600}
.heart{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:34px;height:30px;cursor:pointer}
.heart[aria-pressed="true"]{color:var(--bad);border-color:var(--bad)}
.cmp{font-size:13px;display:inline-flex;gap:5px;align-items:center;cursor:pointer}
.promo{border:1px dashed var(--sun);background:var(--sun-soft);border-radius:12px;padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.promo .ad{font-size:11px;color:var(--sun-ink);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.empty{padding:30px;text-align:center;border:1px dashed var(--line);border-radius:12px}

/* map */
.map{position:relative;width:100%;height:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--water);touch-action:none;user-select:none}
.map svg{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}
.map.picking svg{cursor:crosshair}
.map .pins{position:absolute;inset:0;pointer-events:none}
.pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;background:var(--surface);color:var(--ink);border:1.5px solid var(--brand);border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:0 1px 4px rgb(0 0 0 / .2);font-variant-numeric:tabular-nums}
.pin::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--brand)}
.pin.partner{background:var(--sun);border-color:var(--sun);color:#2b1a00}
.pin.partner::after{border-top-color:var(--sun)}
.pin.on,.pin:hover{background:var(--brand);color:var(--brand-ink);z-index:5}
.pin.dim{opacity:.35}
.me{position:absolute;width:16px;height:16px;border-radius:50%;background:#2a7de1;border:3px solid #fff;transform:translate(-50%,-50%);box-shadow:0 0 0 6px rgb(42 125 225 / .25)}
.mapctl{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:6}
.mapctl button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:700}
.maptop{position:absolute;left:10px;top:10px;right:56px;display:flex;gap:6px;flex-wrap:wrap;z-index:6}
.maptop .btn{box-shadow:var(--shadow)}
.mappop{position:absolute;z-index:8;width:250px;max-width:calc(100% - 20px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgb(0 0 0 / .2);padding:12px}
.maplegend{position:absolute;left:10px;bottom:10px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:11.5px;color:var(--muted);z-index:6}
.m-label{font:600 13px var(--f-body);fill:var(--muted)}
.m-label.city{font-size:15px;fill:var(--ink);opacity:.75}
.m-water-label{font:italic 13px var(--f-body);fill:var(--muted);opacity:.8}

/* clinic page */
.clinic-head{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;padding-block:16px 40px;align-items:start}
@media (max-width:980px){.clinic-head{grid-template-columns:1fr}}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:120px 120px;gap:6px;border-radius:14px;overflow:hidden}
.gallery>div{position:relative}
.gallery>div:first-child{grid-row:span 2}
@media (max-width:560px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:140px 80px}.gallery>div:first-child{grid-column:span 2;grid-row:auto}.gallery>div:nth-child(n+4){display:none}}
.box{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}
.sticky-box{position:sticky;top:calc(env(safe-area-inset-top,0px) + 76px)}
.pricelist{display:flex;flex-direction:column}
.pricelist div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.pricelist div:last-child{border-bottom:0}
.form{display:flex;flex-direction:column;gap:8px}
.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--bg);width:100%}
.form .fine{font-size:11.5px;color:var(--muted)}
.copy{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:6px 6px 6px 12px;justify-content:space-between}
.copy code{font:600 15px var(--f-body);user-select:all}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:5px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.hours tr.today td{font-weight:700}
.dist{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;font-size:13px}
.bar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}
.bar i{display:block;height:100%;background:var(--sun)}
.review{border-top:1px solid var(--line);padding-block:14px;display:flex;flex-direction:column;gap:6px}
.reply{background:var(--sunk);border-radius:8px;padding:8px 12px;font-size:14px}
.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;flex:none}
.prose{max-width:68ch}
.prose p{margin:0 0 12px}
.cols2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
@media (max-width:760px){.cols2{grid-template-columns:1fr}}

/* US tile map */
.usmap{width:100%;max-width:760px;display:block}
.usmap a rect{transition:filter .15s}
.usmap a:hover rect,.usmap a:focus rect{filter:brightness(1.12);stroke:var(--ink);stroke-width:2}
.usmap text{font:700 13px var(--f-body);pointer-events:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;counter-reset:st}
.step{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px}
.step .n{width:30px;height:30px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:700}
.check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.check li::before{content:"✓";color:var(--good);font-weight:700;margin-right:8px}
details.faq{border-bottom:1px solid var(--line);padding:12px 0}
details.faq summary{cursor:pointer;font-weight:600}
details.faq p{margin:8px 0 0;color:var(--muted);max-width:70ch}
/* charts */
.hbar{display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;gap:6px 10px;align-items:center;font-size:13.5px}
.hbar .bar{height:14px;border-radius:4px}
.hbar .bar i{background:var(--brand)}
.hbar .bar i.alt{background:var(--sun)}

/* newsletter */
.news-band{background:var(--brand);color:var(--brand-ink);border-radius:16px;padding:26px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:center}
.news-band h2{color:inherit}
.news-band .form input,.news-band .form select{background:var(--surface);color:var(--ink);border-color:transparent}
@media (max-width:760px){.news-band{grid-template-columns:1fr}}
.article-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column}
.article-card .cover{height:120px;position:relative}
.article-card .in{padding:12px 14px;display:flex;flex-direction:column;gap:6px}

/* pricing */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.tier{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px}
.tier.best{border:2px solid var(--sun)}
.tier .p{font-family:var(--f-display);font-size:28px;font-weight:500}
.tier ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:14px}

/* spec */
.spec{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;padding-block:24px 60px}
.spec nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 76px);display:flex;flex-direction:column;gap:2px;font-size:14px}
.spec nav a{text-decoration:none;padding:5px 8px;border-radius:6px;color:var(--muted)}
.spec nav a:hover{background:var(--sunk);color:var(--ink)}
@media (max-width:900px){.spec{grid-template-columns:1fr}.spec nav{position:static;flex-direction:row;flex-wrap:wrap}}
.spec section{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:30px}
.spec h2{margin-bottom:12px}
.spec h3{margin:18px 0 6px}
.spec p,.spec li{max-width:76ch}
.spec ul{padding-left:20px;margin:6px 0}
.spec li{margin-bottom:4px}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin:10px 0}
.tbl table{border-collapse:collapse;width:100%;min-width:640px;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{background:var(--sunk);font-weight:600;font-size:13px}
.tbl tr:last-child td{border-bottom:0}
.tree{font:13.5px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow-x:auto;white-space:pre}
.compare{overflow-x:auto}
.compare table{border-collapse:collapse;min-width:600px;width:100%}
.compare td,.compare th{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
.cmpbar{position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--ink);color:var(--bg);padding-bottom:env(safe-area-inset-bottom,0px)}
.cmpbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:56px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:70;font-weight:600;max-width:calc(100vw - 32px)}
footer{border-top:1px solid var(--line);margin-top:30px;background:var(--surface)}
footer .wrap{padding-block:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;font-size:14px}
footer a{display:block;text-decoration:none;color:var(--muted);padding:2px 0}
footer a:hover{color:var(--ink)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.iconbtn{width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.iconbtn svg{width:22px;height:22px}
@media (min-width:861px){.menu-btn{display:none}}
@media (max-width:860px){.nav{display:none}.tools .hide-sm{display:none}.nav.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px max(16px,env(safe-area-inset-left,0px));box-shadow:var(--shadow);z-index:80}.nav.open a{padding:12px 10px}.top .wrap{gap:8px}.logo{margin-right:auto}}


/* v8 layout: lun.ua-style catalog (list column + full-height map, filters drawer) with Leafly-style cards. */
:root{
  --hdr:60px; --list-w:clamp(440px,38vw,600px);
  --ink2:#0e1714; --chip:#eef1f0; --chip-ink:#1d2925; --dark:#111816; --dark-ink:#ffffff;
  --map-water:#a9d4e6; --map-land:#e4efdc; --map-land2:#d6e2cf; --map-urban:#eef1ea; --map-road:#ffffff; --map-road2:#f7f8f4; --map-road-case:#a9b8a6;
  --map-street:#ffffff; --map-street-case:#c8d3c3;
  --map-border:#6f7f74; --map-border2:#b5c3b1; --map-county:#c4d3bd; --map-label:#3f4744; --map-halo:#ffffff;
  --map-dot:#f05a1a; --map-dot-ring:#ffffff; --map-radius:#4c8fd6; --tag-bg:#c2410c; --tag-ink:#ffffff; --near:#c2410c; --near-ink:#ffffff; --star:#94570a; --good:#177049;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --ink2:#e9f1ed; --chip:#1f2b27; --chip-ink:#e4ece8; --dark:#e9f1ed; --dark-ink:#0d1412;
  --map-water:#123040; --map-land:#1a2a20; --map-land2:#15221a; --map-urban:#24302a; --map-road:#4d5b53; --map-road2:#38443d; --map-road-case:#101a14;
  --map-street:#3e4a43; --map-street-case:#15201a;
  --map-border:#7d8c83; --map-border2:#2f3d34; --map-county:#2a3a30; --map-label:#c9d4cf; --map-halo:#0d1412;
  --map-dot:#ff7a3d; --map-dot-ring:#0d1412; --map-radius:#6aa8ea; --tag-bg:#ff7a3d; --tag-ink:#0d1412; --near:#ff7a3d; --near-ink:#0d1412; --star:#f0b455; --good:#4cc38a}}
:root[data-theme="dark"]{
  --ink2:#e9f1ed; --chip:#1f2b27; --chip-ink:#e4ece8; --dark:#e9f1ed; --dark-ink:#0d1412;
  --map-water:#123040; --map-land:#1a2a20; --map-land2:#15221a; --map-urban:#24302a; --map-road:#4d5b53; --map-road2:#38443d; --map-road-case:#101a14;
  --map-street:#3e4a43; --map-street-case:#15201a;
  --map-border:#7d8c83; --map-border2:#2f3d34; --map-county:#2a3a30; --map-label:#c9d4cf; --map-halo:#0d1412;
  --map-dot:#ff7a3d; --map-dot-ring:#0d1412; --map-radius:#6aa8ea; --tag-bg:#ff7a3d; --tag-ink:#0d1412; --near:#ff7a3d; --near-ink:#0d1412; --star:#f0b455; --good:#4cc38a}
html.noscroll,html.noscroll body{overflow:hidden}
/* header */
.top .wrap{min-height:var(--hdr)}
.top{box-shadow:0 1px 0 var(--line)}
body.is-cat .top .wrap{max-width:none}
body.is-cat main{max-width:none}
body.is-cat footer{display:none}
.btn.dark{background:var(--dark);border-color:var(--dark);color:var(--dark-ink)}
.btn.wide{width:100%}
.iconsvg,.lb-ic,.lb-go svg,.qf svg,.m8-ctl svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* location search (LUN "Київ + 40 км") */
.locbar{display:flex;align-items:center;gap:6px;background:var(--surface);border:1.5px solid var(--ink2);border-radius:12px;padding:4px 4px 4px 12px;min-width:0}
.locbar .lb-ic{width:19px;height:19px;flex:none;color:var(--map-dot)}
.locbar input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;font-weight:500;padding:8px 2px;outline:none}
.locbar select{border:0;background:var(--chip);color:var(--chip-ink);border-radius:8px;padding:8px 8px;font-weight:600;font-size:14px}
.locbar .lb-scope{font-size:13px;color:var(--muted);white-space:nowrap;padding-inline:4px}
.lb-go{flex:none;width:40px;height:40px;border-radius:9px;border:0;background:var(--dark);color:var(--dark-ink);display:grid;place-items:center;cursor:pointer}
.lb-go svg{width:18px;height:18px}
.locbar:focus-within{box-shadow:none;border-color:var(--brand)}
.locbar input:focus-visible{outline:none}
.locbar.big{max-width:640px;padding:6px 6px 6px 16px;border-radius:14px}
.locbar.big .btn{padding:11px 22px;border-radius:10px}
/* catalog grid: desktop list | map, mobile head / map / list */
.cat{display:grid;grid-template-columns:var(--list-w) minmax(0,1fr);grid-template-areas:"head map" "list map";align-items:start;position:relative}
.cat-head{grid-area:head;display:flex;flex-direction:column;gap:12px;padding:14px max(16px,env(safe-area-inset-left,0px)) 6px;min-width:0}
.cat-list{grid-area:list;padding:6px max(16px,env(safe-area-inset-left,0px)) 40px;min-width:0}
.cat-map{grid-area:map;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr));height:calc(100dvh - var(--hdr) - env(safe-area-inset-top,0px));min-height:420px;border-left:1px solid var(--line)}
.cat .crumbs{padding-top:0}
.cat-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.cat-title h1{font-size:clamp(21px,2.1vw,28px)}
.cat-count{color:var(--muted);font-weight:500}
.quick{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.quick::-webkit-scrollbar{display:none}
.qf{flex:none}
.qf{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--chip);color:var(--chip-ink);border-radius:10px;padding:9px 13px;font-weight:500;font-size:15px;cursor:pointer;white-space:nowrap}
.qf .num{opacity:.6;font-weight:400}
.qf.on{background:var(--dark);color:var(--dark-ink)}
.qf.on .num{opacity:.75}
.qf-filters{background:var(--dark);color:var(--dark-ink)}
.qf-filters svg{width:18px;height:18px}
.qf-filters b{background:var(--map-dot);color:#fff;border-radius:999px;padding:0 7px;font-size:12px}
.achips{display:flex;gap:6px;flex-wrap:wrap}
.achips:empty{display:none}
.fchip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.fchip .num{color:var(--muted);font-size:12px}
.fchip.on{background:var(--dark);border-color:var(--dark);color:var(--dark-ink)}
.fchip.on .num{color:inherit;opacity:.7}
.fchip.sm{padding:4px 10px;font-size:12px}
.sortrow{display:flex;justify-content:flex-end;margin-bottom:8px}
.sortrow select{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:5px 8px;margin-left:6px}
.map-reopen{display:none}
.cat.map-hidden{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "list"}
.cat.map-hidden .cat-map{display:none}
.cat.map-hidden .map-reopen{display:inline-flex;position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;border:0;background:var(--dark);color:var(--dark-ink);padding:12px 18px;border-radius:999px;font-weight:700;box-shadow:var(--shadow);cursor:pointer}
.cat.map-hidden .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px}
.cat.map-full .cat-map{position:fixed;inset:0;z-index:70;height:auto;min-height:0;border:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:var(--map-water)}
.mapbox{position:relative;width:100%;height:100%}
/* provider card: equal height, 4 actions in one row */
.cards{display:flex;flex-direction:column;gap:12px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));gap:12px}
.pc{display:grid;grid-template-columns:112px minmax(0,1fr) 40px;grid-template-rows:1fr auto;height:226px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.pc:hover{border-color:var(--ink2);box-shadow:var(--shadow)}
.pc.is-partner{border-color:var(--map-dot)}
.pc-ph{position:relative;display:grid;place-items:center;color:#fff;font-family:var(--f-display);font-weight:700;font-size:26px;text-decoration:none}
.pc-ph .badge{position:absolute;left:8px;top:8px}
.pc-b{padding:12px 4px 6px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.pc-top{display:flex;gap:8px;align-items:center;min-width:0}
.pc-type{font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pc-ok{font-size:12px;color:var(--good);font-weight:500;white-space:nowrap}
.pc-name{font-weight:700;font-size:17px;line-height:1.3;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-name:hover{text-decoration:underline}
.pc-addr,.pc-meta,.pc-price{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-addr{color:var(--muted)}
.pc-meta{display:flex;gap:8px;align-items:center}
.pc-star,.stars{color:var(--star);font-weight:500}
.pc .open,.pc .closed,.m8-pop .open,.m8-pop .closed{font-weight:500}
.pc-price b{font-weight:700}
.pc-tags{display:flex;gap:5px;flex-wrap:nowrap;overflow:hidden;mask-image:linear-gradient(90deg,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);margin-top:2px}
.pc-tags .tag{flex:none}
.pc-side{display:flex;flex-direction:column;gap:6px;padding:10px 8px 0 0;align-items:flex-end}
.pc-icon{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;font-size:16px;position:relative;color:var(--ink)}
.pc-icon[aria-pressed="true"]{color:var(--bad);border-color:var(--bad)}
.pc-cmp input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.pc-cmp:has(input:checked){background:var(--dark);color:var(--dark-ink);border-color:var(--dark)}
.pc-cmp:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.pc-acts{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px 10px 10px;border-top:1px solid var(--line)}
.pc-btn{display:flex;align-items:center;justify-content:center;text-align:center;min-height:36px;padding:4px 6px;border-radius:9px;background:var(--chip);color:var(--chip-ink);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-btn:hover{filter:brightness(.96)}
.pc-btn.sun{background:var(--sun);color:#2b1a00}
.pc-btn.dark{background:var(--dark);color:var(--dark-ink)}
.pc-btn.is-off{opacity:.45}
/* filters drawer (LUN): covers the list column */
.fdrawer{position:fixed;z-index:60;top:calc(env(safe-area-inset-top,0px) + var(--hdr));bottom:0;left:0;width:var(--list-w);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;box-shadow:8px 0 30px rgb(0 0 0 / .12)}
.fd-head{display:flex;justify-content:space-between;align-items:center;padding:14px max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);font-size:18px}
.fd-x{border:0;background:var(--chip);width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:16px;color:var(--ink)}
.fd-body{flex:1;overflow:auto;padding:4px max(16px,env(safe-area-inset-left,0px)) 20px;overscroll-behavior:contain}
.fd-sec{padding:16px 0;border-bottom:1px solid var(--line)}
.fd-sec h3{font-size:15px;margin-bottom:10px}
.fd-chips{display:flex;flex-wrap:wrap;gap:8px}
.fd-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fd-sel{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}
.fd-sel select{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--bg);font-size:15px;color:var(--ink)}
.fd-range{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.fd-range input{flex:1;accent-color:var(--map-dot)}
.fd-foot{display:grid;grid-template-columns:1fr 2fr;gap:10px;padding:12px max(16px,env(safe-area-inset-left,0px)) calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.fd-foot .btn{padding:13px}
/* Leaflet map */
.m8{position:absolute;inset:0;background:var(--map-water);font-family:var(--f-body)}
.m8 .leaflet-container,.m8.leaflet-container{background:var(--map-water);font:inherit}
.m8-dots{position:absolute;left:0;top:0}
.m8-city,.m8-st{display:block;text-align:center;white-space:nowrap;font-size:12px;font-weight:500;color:var(--map-label);text-shadow:0 0 3px var(--map-halo),0 0 3px var(--map-halo),0 0 2px var(--map-halo);pointer-events:none;line-height:15px}
.m8-city.big{font-size:13px;font-weight:600}
.m8-st{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.65;font-weight:500}
.m8-tag{background:var(--tag-bg);color:var(--tag-ink);font-size:12px;font-weight:600;line-height:24px;height:24px;border-radius:6px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 4px rgb(0 0 0 / .25);position:relative;cursor:pointer;text-align:center}
.m8-tag::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border:5px solid transparent;border-bottom:0;border-top-color:var(--tag-bg)}
.m8-tag.is-partner{background:var(--dark);color:var(--dark-ink)}
.m8-tag.is-partner::after{border-top-color:var(--dark)}
.m8-pin{width:30px;height:40px;position:relative;filter:drop-shadow(0 3px 4px rgb(0 0 0 / .35))}
.m8-pin::before{content:"";position:absolute;left:1px;top:0;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);transform-origin:center;background:var(--map-dot);border:2px solid #fff;top:2px}
.m8-pin span{position:absolute;left:10px;top:9px;width:10px;height:10px;border-radius:50%;background:#fff;z-index:1}
.m8-pin.is-hover::before{background:var(--dark)}
.m8-me{display:block;width:18px;height:18px;border-radius:50%;background:#2a7de1;border:3px solid #fff;box-shadow:0 0 0 6px rgb(42 125 225 / .25)}
.m8-tip{position:absolute;z-index:700;transform:translate(-50%,calc(-100% - 12px));background:var(--dark);color:var(--dark-ink);font-size:12.5px;font-weight:600;padding:4px 8px;border-radius:6px;white-space:nowrap;pointer-events:none}
.m8-ctl{position:absolute;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:800;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.m8-ctl button{width:42px;height:42px;border-radius:12px;border:0;background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgb(0 0 0 / .2);display:grid;place-items:center;cursor:pointer}
.m8-ctl button svg{width:20px;height:20px}
.m8-zoom{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgb(0 0 0 / .2)}
.m8-zoom button{box-shadow:none;border-radius:0}
.m8-zoom button+button{border-top:1px solid var(--line)}
.m8-area{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:800;border:0;background:var(--dark);color:var(--dark-ink);font-weight:700;padding:10px 16px;border-radius:999px;box-shadow:0 2px 10px rgb(0 0 0 / .25);cursor:pointer}
.m8 .leaflet-popup-content-wrapper{border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 8px 28px rgb(0 0 0 / .25)}
.m8 .leaflet-popup-tip{background:var(--surface)}
.m8 .leaflet-popup-content{margin:14px 16px}
.m8 a.leaflet-popup-close-button{color:var(--muted)}
.m8-pop{display:flex;flex-direction:column;gap:5px;font-size:13px}
.m8-pop-n{font-weight:700;font-size:15px;text-decoration:none;color:var(--ink)}
.m8-pop .pc-btn{margin-top:4px}
.home-map{position:relative;height:460px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
#miniMap,#docMap{position:relative;overflow:hidden;border-radius:12px}
/* expand / hide map (top right) */
.m8-view{position:absolute;right:calc(12px + env(safe-area-inset-right,0px));top:12px;z-index:800;display:flex;gap:6px}
.m8-view button{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--surface);color:var(--ink);font-weight:500;font-size:13px;padding:8px 12px;border-radius:999px;box-shadow:0 2px 8px rgb(0 0 0 / .2);cursor:pointer}
.m8-view svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.m8-view .v-off{display:none}
.cat.map-full .m8-view .v-on{display:none}.cat.map-full .m8-view .v-off{display:inline}
.cat.map-full .m8-view [data-a="collapse"]{display:none}
.cat-list .cat-notes{order:9}
/* mobile sheet (split: map above, provider below) */
.msheet{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:0 -10px 30px rgb(0 0 0 / .2);padding:10px max(12px,env(safe-area-inset-left,0px)) calc(12px + env(safe-area-inset-bottom,0px))}
.ms-grip{width:42px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 8px}
.ms-x{position:absolute;right:12px;top:10px;width:34px;height:34px;border-radius:50%;border:0;background:var(--chip);color:var(--ink);z-index:2;cursor:pointer}
.msheet .pc{border:0;box-shadow:none}
/* home */
.hero8{background:linear-gradient(180deg,var(--brand-soft),var(--bg));padding-block:40px 28px}
.hero8 .wrap{display:flex;flex-direction:column;gap:14px}
.hero8 h1{max-width:18ch}
.hero8 .lead{font-size:17px;color:var(--muted);max-width:56ch;margin:0}
.cats{display:flex;flex-wrap:wrap;gap:8px}
.cat-chip{display:inline-flex;gap:6px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-weight:500;font-size:15px;text-decoration:none}
.cat-chip .num{color:var(--muted);font-weight:400;font-size:13px}
.cat-chip:hover{border-color:var(--ink2)}
/* mobile: head / map (50-60% of screen) / list */
@media (max-width:900px){
  :root{--hdr:56px}
  .cat{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "map" "list"}
  .cat-head{gap:10px;padding-top:10px}
  .cat .crumbs{display:none}
  .quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
  .quick::-webkit-scrollbar{display:none}
  .qf-x{display:none}
  .cat-map{position:relative;top:0;height:56svh;min-height:300px;border:0;border-block:1px solid var(--line)}
  .cat-title h1{font-size:19px}
  .m8-ctl button{width:38px;height:38px;border-radius:11px}
  .m8-ctl{gap:6px;bottom:12px}
  .cat-map{height:50svh}
  .sortrow{display:none}
  .cat-list{padding-top:12px}
  .locbar input{padding:6px 2px}
  .lb-go{width:36px;height:36px}
  .sortrow{justify-content:space-between}
  .pc{height:auto;min-height:0;grid-template-columns:64px minmax(0,1fr) 36px}
  .pc-ph{height:64px;margin:12px 0 0 12px;border-radius:12px;font-size:20px}
  .pc-ph .badge{display:none}
  .pc-b{padding:10px 2px 6px 12px;gap:2px}
  .pc-tags{display:none}
  .pc-side{padding:10px 8px 0 0;gap:4px}
  .pc-icon{width:30px;height:30px}
  .pc-acts{gap:4px;padding:6px 8px 8px}
  .pc-btn{font-size:12px;min-height:34px;padding:2px 3px}
  .fdrawer{left:0;right:0;width:auto;top:0;padding-top:env(safe-area-inset-top,0px)}
  .cat.map-hidden .cards{display:flex}
  .home-map{height:56svh}
  .hero8{padding-block:26px 20px}
  .cats{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
  .cats::-webkit-scrollbar{display:none}
  .cat-chip{flex:none}
}

/* header is the same on every page: full width */
.top .wrap{max-width:none;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.btn-near{display:inline-flex;align-items:center;gap:6px;background:var(--near);color:var(--near-ink);border:0;border-radius:10px;padding:8px 14px;font-weight:600;text-decoration:none;white-space:nowrap}
.btn-near svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.btn-near:hover,.btn-near.on{filter:brightness(1.08);box-shadow:0 0 0 3px color-mix(in srgb,var(--map-dot) 25%,transparent)}
.lb-clear{border:0;background:var(--chip);color:var(--ink);width:30px;height:30px;border-radius:50%;cursor:pointer;flex:none}
/* pagination */
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin:18px 0 6px}
.pg-n{min-width:40px;height:40px;display:inline-grid;place-items:center;padding:0 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);text-decoration:none;font-weight:600;font-variant-numeric:tabular-nums}
.pg-n.on{background:var(--dark);color:var(--dark-ink);border-color:var(--dark)}
.pg-n.off{opacity:.4}
.pg-gap{color:var(--muted);padding:0 2px}
/* provider page mini map: links out for street view */
.m8-ext{position:absolute;left:10px;bottom:10px;z-index:800;display:flex;gap:6px;flex-wrap:wrap}
.m8-ext a{background:var(--surface);color:var(--ink);font-weight:700;font-size:13px;padding:8px 11px;border-radius:10px;box-shadow:0 2px 8px rgb(0 0 0 / .2);text-decoration:none}
@media (max-width:900px){
  .btn-near{padding:8px 10px}
  .btn-near span{display:none}
  .m8-area{top:auto;bottom:14px;left:12px;transform:none;padding:9px 13px;font-size:13px}
  .m8-view button{padding:7px 10px;font-size:12.5px}
  .top .wrap{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
}

.pc-btn .sm{display:none}
@media (max-width:900px){.pc-btn .lg{display:none}.pc-btn .sm{display:inline}}
#leadOk,.form input[type=checkbox]{width:24px!important;height:24px!important;flex:none}
.cat .crumbs>*{display:inline-block;padding:6px 2px}

/* type scale 12/13/15/17/20/28; weight: 700 only for names, prices and headings */
.tag{font-weight:400}
.top .nav a{font-weight:500}
.top .btn{font-weight:500}
.sortrow select{font-size:13px}
.pager .pg-n{font-weight:500}
@media (max-width:900px){.pc-btn{font-size:12px}.pc-name{font-size:15px}}

/* audit pass 2: weight on home blocks, focus on the input itself, 24px targets, interaction states */
.usmap text{font-weight:500}
.stat b,.tile b,.chip b,.chip .num,.hbar b{font-weight:500}
.step b,.tile .big{font-weight:600}
.badge{font-weight:600}
.eyebrow{font-weight:500}
.locbar input,.locbar input:focus,.locbar input:focus-visible{outline:none;box-shadow:none}
.pc-name{display:block;padding-block:2px;min-height:24px}
.crumbs>*{display:inline-block;padding:6px 2px}
button:active,.btn:active,.pc-btn:active,.qf:active,.fchip:active,.cat-chip:active{transform:translateY(1px)}
button:disabled,.btn:disabled,[aria-disabled="true"],.pc-btn.is-off{opacity:.45;cursor:not-allowed}
.qf-filters[aria-expanded="true"]{box-shadow:0 0 0 3px var(--brand-soft)}
[aria-busy="true"]{cursor:progress}

.sticky-box a.muted{display:inline-block;padding-block:4px}
/* audit pass 3: provider page weights (decorative placeholders, badges and buttons drop to 500) */
.mono{font-weight:500}
.mono small{font-weight:400}
.badge,.badge.verified,.badge.spons{font-weight:500}
.badge.partner{font-weight:600}
.open,.closed{font-weight:500}
.copy code{font-weight:500}
.btn{font-weight:500}
.btn.primary,.btn.sun,.btn.dark{font-weight:600}
.sticky-box a.muted{padding-block:5px}

/* UX pass: clusters, highlight, map auto-search, mobile Map/List, suggestions, card link, provider action bar, telehealth block */
.pc{position:relative}
.pc-stretch::after{content:"";position:absolute;inset:0;z-index:1}
.pc-side,.pc-acts a,.pc-acts span,.pc-acts button,.pc-ph{position:relative;z-index:2}
.pc-hl{border-color:var(--map-dot)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--map-dot) 30%,transparent)!important}
.pc-acts{grid-template-columns:auto auto 1fr auto;align-items:center}
.pc-link{font-size:13px;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line);padding:8px 4px;white-space:nowrap}
.pc-link:hover{text-decoration-color:currentColor}
.pc-link.is-off{opacity:.45;text-decoration:none}
.pc-acts .pc-btn.primary{background:var(--dark);color:var(--dark-ink);justify-self:end;padding-inline:14px;min-width:120px}
.pc-acts .pc-btn.primary+.pc-btn.dark{display:none}
.m8-auto{position:absolute;left:12px;top:12px;z-index:800;display:flex;gap:8px;align-items:center;background:var(--surface);color:var(--ink);font-size:13px;font-weight:500;padding:8px 12px;border-radius:999px;box-shadow:0 2px 8px rgb(0 0 0 / .2);cursor:pointer}
.m8-auto input{width:18px;height:18px;accent-color:var(--brand);margin:0}
.ml-toggle{display:none}
.sug{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:90;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgb(0 0 0 / .18);max-height:min(420px,60vh);overflow:auto;padding:6px}
.locbar{position:relative}
.sug-g{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}
.sug-i{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14.5px}
.sug-i b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sug-i span{white-space:nowrap;font-size:13px}
.sug-i:hover,.sug-i.on{background:var(--chip)}
.sug-empty{padding:12px;color:var(--muted);font-size:14px}
.tele-block{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.tb-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.tb-head a{font-size:13px;white-space:nowrap}
.tb-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tb-item{display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:10px;background:var(--chip);text-decoration:none;min-width:0}
.tb-item b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-item span{font-size:13px}
.act-bar{display:none}
@media (max-width:900px){
  .m8-auto{display:none}
  .ml-toggle{display:inline-flex;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:85;border:0;background:var(--dark);color:var(--dark-ink);font-weight:600;font-size:15px;padding:12px 20px;border-radius:999px;box-shadow:0 6px 20px rgb(0 0 0 / .3);cursor:pointer}
  .cat.map-full~.ml-toggle,html.noscroll .ml-toggle{display:none}
  body:has(.cat.sheet-open) .ml-toggle,body:has(.cat.map-full) .ml-toggle{display:none}
  .tb-row{grid-template-columns:1fr}
  .pc-acts{grid-template-columns:auto auto 1fr}
  .pc-acts .pc-btn.primary{min-width:0}
  .act-bar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgb(0 0 0 / .12);padding:10px max(12px,env(safe-area-inset-left,0px)) calc(10px + env(safe-area-inset-bottom,0px))}
  .ab-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;border-radius:12px;background:var(--chip);color:var(--chip-ink);font-weight:600;font-size:14px;text-decoration:none;line-height:1.2}
  .ab-btn small{font-weight:400;font-size:11.5px;opacity:.75}
  .ab-btn.primary{background:var(--dark);color:var(--dark-ink)}
  #app:has(.act-bar){padding-bottom:84px}
}

.pc-link .sm{display:none}
@media (max-width:900px){.pc-link .lg{display:none}.pc-link .sm{display:inline}}
.crumbs{align-items:center}


