/* ---------- service area: map, rings, city pages ---------- */
:root{--k-city:#ffffff;--k-attraction:#f5b942;--k-park:#4cc38a;--k-dealer:#6ea8ff}
.flmap{width:100%;height:auto;display:block;transition:all .3s}
.flmap .land{fill:#20262b;stroke:#4a535b;stroke-width:1.2;stroke-linejoin:round}
.flmap .ring{fill:rgba(242,106,27,.07);stroke:#f26a1b;stroke-width:1.4;stroke-dasharray:5 4}
.flmap .ring-central{fill:rgba(242,106,27,.035);stroke-opacity:.7}
.flmap .hub{fill:#f26a1b;stroke:#fff;stroke-width:1.6;cursor:pointer}
.flmap .hub-glow{fill:rgba(242,106,27,.28)}
.flmap .pin{stroke:#14171a;stroke-width:1;cursor:pointer}
.flmap .pin:hover,.flmap .pin:focus,.flmap .pin.sel{stroke:#fff;stroke-width:2;outline:none}
.flmap .k-city{fill:var(--k-city)}
.flmap .k-attraction{fill:var(--k-attraction)}
.flmap .k-park{fill:var(--k-park)}
.flmap .k-dealer{fill:var(--k-dealer)}
.flmap .k-city.hl{fill:#f26a1b;r:6;stroke:#fff;stroke-width:1.6}
.flmap .lbl{font:600 11px Inter,sans-serif;fill:#c5cbd1;paint-order:stroke;stroke:#14171a;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.flmap .lbl.minor{display:none}
.flmap .lbl.hl{fill:#fff;font-size:13px;display:block}
.flmap .hublbl{fill:#fff;font-weight:800;font-size:12px}
.flmap.z .lbl{font-size:4.2px;stroke-width:1.4px}
.flmap.z .lbl.minor{display:block}
.flmap.z .hublbl{font-size:5px}
.flmap.z .pin{r:1.7;stroke-width:.5}
.flmap.z .pin.sel{stroke-width:.9}
.flmap.z .hub{r:3;stroke-width:.8}
.flmap.z .hub-glow{r:5.5}
.flmap.z .ring{stroke-width:.6}
.flmap.hide-city .k-city,.flmap.hide-attraction .k-attraction,.flmap.hide-park .k-park,.flmap.hide-dealer .k-dealer{display:none}
.flmap.hide-city .lbl{display:none}

.mapsec{padding-top:40px}
.maptools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:16px}
.views,.filters{display:flex;flex-wrap:wrap;gap:8px}
.vbtn,.fbtn{font:inherit;font-size:14px;font-weight:600;border-radius:999px;padding:8px 14px;cursor:pointer;border:1px solid #3a4148;background:transparent;color:#fff}
.vbtn.on{background:#f26a1b;border-color:#f26a1b}
.fbtn{display:inline-flex;align-items:center;gap:8px}
.fbtn span{width:11px;height:11px;border-radius:50%;display:inline-block}
.f-city span{background:var(--k-city)}.f-attraction span{background:var(--k-attraction)}.f-park span{background:var(--k-park)}.f-dealer span{background:var(--k-dealer)}
.fbtn.off{opacity:.45;text-decoration:line-through}
.mapgrid{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}
@media (max-width:900px){.mapgrid{grid-template-columns:1fr}}
.mapbox{background:#101315;border:1px solid #2c3238;border-radius:16px;padding:14px}
.ringkey{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;color:#aab2ba;margin-top:10px}
.rk{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px dashed #f26a1b;margin-right:-8px}
.rk-central{opacity:.6}.rk-state{border:2px solid #4a535b;background:#20262b}
.mapinfo{background:#1d2125;border:1px solid #2c3238;border-radius:16px;padding:22px;position:sticky;top:90px}
.mapinfo h3{margin:4px 0 6px;font-size:21px}
.mapinfo p{color:#b8bfc6;font-size:15px;margin:0 0 10px}
.mapinfo .mi-k{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#f26a1b}
.mapinfo .mi-note a{color:#fff}
.mapinfo .btn{margin-top:4px}

.ringcols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.ringcols{grid-template-columns:1fr}}
.ringcol{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:#fff}
.ringcol h3{display:flex;align-items:center;gap:10px}
.ringcol p{color:var(--muted);font-size:15px}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:2px dashed #f26a1b;flex:none}
.r-central .dot{opacity:.6}.r-state .dot{border:2px solid #9aa3ad}
.citychips{display:flex;flex-wrap:wrap;gap:8px}
.citychips a{font-size:14px;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--bg-2)}
.citychips a:hover{border-color:var(--accent);color:var(--accent-ink)}
.citychips.light{margin-top:14px}
.ringmini{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:1px solid #2c3238;font-size:15px}
.ringmini b{display:flex;align-items:center;gap:8px}
.ringmini span{color:#b8bfc6}
.ringmini a{color:#e6e9ec;text-decoration:none}
.ringmini a:hover{color:var(--accent)}
.citymap{background:#101315;border:1px solid #2c3238;border-radius:16px;padding:12px}

.svcchips{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.svcchip{text-decoration:none;font-weight:600;font-size:15px;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#fff}
.svcchip:hover{border-color:var(--accent);color:var(--accent-ink)}
.nearcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.nearcol{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.nearcol h3{font-size:18px}
.nearlist{list-style:none;padding:0;margin:0}
.nearlist li{padding:9px 0 9px 20px;border-bottom:1px solid var(--line);position:relative}
.nearlist li:last-child{border-bottom:0}
.nearlist li:before{content:"";position:absolute;left:0;top:16px;width:10px;height:10px;border-radius:50%;border:1px solid #14171a}
.nearlist.k-park li:before{background:var(--k-park)}.nearlist.k-dealer li:before{background:var(--k-dealer)}.nearlist.k-attraction li:before{background:var(--k-attraction)}
.nearlist b{display:block;font-size:16px}
.nearlist span{color:var(--muted);font-size:14px}
.flmap.z .k-city.hl{r:3;stroke-width:.8}
.flmap.z .lbl.hl{font-size:6px}
