:root {}
.city-map-shell {min-height:calc(100svh - 72px);color:var(--map-ink);background:var(--map-paper);display:flex;flex-direction:column}
.city-map-intro {padding:var(--s-6) var(--gutter) var(--s-4);max-width:820px}
.city-map-intro h1 {margin:var(--s-1) 0 var(--s-2);font-family:var(--serif);font-size:var(--t-display);line-height:var(--lh-head);font-weight:500;letter-spacing:var(--track-display)}
.city-map-intro p:last-child {max-width:600px;margin:0;color:var(--map-muted);font-size:var(--t-dense)}
.map-eyebrow {margin:0;color:var(--map-accent);font-size:var(--t-dense);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase}
.city-map-tools {display:flex;gap:var(--s-3);align-items:center;justify-content:space-between;padding:0 var(--gutter) var(--s-4);border-bottom:1px solid var(--map-line)}
.map-search {display:flex;align-items:center;gap:var(--s-2);min-height:44px;width:min(480px,100%);border-bottom:1px solid var(--map-ink)}
.map-search input {flex:1;border:0;outline:0;background:var(--clear);color:inherit;min-width:0;font:inherit;padding:var(--s-2) 0}
.map-search span {order:2;font-size:var(--t-head)}
.map-tool-actions {display:flex;align-items:center;gap:var(--s-1)}
.map-view-button,.map-layers summary {appearance:none;border:0;background:var(--clear);color:inherit;min-height:42px;padding:var(--s-2) var(--s-3);font:inherit;cursor:pointer;border-radius:var(--radius-ctl)}
.map-view-button.active {background:var(--map-green);color:var(--ink-inverse)}
.map-layers {position:relative}
.map-layers summary {list-style:none;border:1px solid var(--map-line)}
.map-layers summary::-webkit-details-marker {display:none}
.map-layers[open] fieldset {position:absolute;right:0;top:46px;z-index:5;display:grid;gap:var(--s-2);min-width:180px;padding:var(--s-3);border:1px solid var(--map-line);background:var(--map-paper);box-shadow:var(--shadow-overlay)}
.map-layers fieldset {border:0;margin:0}
.map-layers label {display:flex;gap:var(--s-2);align-items:center;white-space:nowrap}
.map-layers input,.map-result-visibility input {accent-color:var(--map-accent);width:18px;height:18px}
.city-map-workspace {display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);flex:1;min-height:540px}
.city-map-workspace.list-only {grid-template-columns:1fr}
.city-map-workspace.list-only .city-map-stage {display:none}
.city-map-workspace.list-only .city-map-results {max-height:none;border-right:0}
.city-map-results {min-width:0;border-right:1px solid var(--map-line);background:var(--lime);overflow:auto}
.map-results-head {display:flex;justify-content:space-between;padding:var(--s-4) var(--s-5) var(--s-3);color:var(--map-muted);font-size:var(--t-dense);letter-spacing:var(--track-label)}
.map-results-head strong {color:var(--map-ink);font-size:var(--t-dense)}
.city-map-list {padding-bottom:var(--s-4)}
.map-result {display:flex;align-items:stretch;gap:var(--s-1);border-top:1px solid var(--map-line)}
.map-result.selected {background:var(--lime-sunken);box-shadow:none}
.map-result-select {flex:1;display:flex;align-items:flex-start;gap:var(--s-3);min-width:0;padding:var(--s-4) var(--s-2) var(--s-4) var(--s-5);text-align:left;border:0;background:var(--clear);color:inherit;font:inherit;cursor:pointer}
.map-result-select span:last-child {min-width:0}
.map-result-select strong,.map-result-select small {display:block;overflow:hidden;text-overflow:ellipsis}
.map-result-select strong {font-size:var(--t-dense)}
.map-result-select small {margin-top:var(--s-1);color:var(--map-muted);line-height:var(--lh-dense);white-space:nowrap}
.map-result-marker {color:var(--map-accent);font-size:var(--t-dense);line-height:var(--lh-dense)}
.map-result-visibility {align-self:center;display:grid;place-items:center;padding:var(--s-3) var(--s-4) var(--s-3) var(--s-1);color:var(--map-green);cursor:pointer}
.map-result-visibility input {position:absolute;opacity:0;pointer-events:none}
.map-result-visibility span[aria-hidden] {font-size:var(--t-sub)}
.map-empty,.map-loading {padding:var(--s-5) var(--s-5);color:var(--map-muted)}
.city-map-stage {position:relative;min-width:0;min-height:540px;background:var(--lime-sunken)}
.city-map-canvas {position:absolute;inset:0}
.city-map-status {position:relative;margin:0 var(--gutter) var(--s-3);z-index:2;padding:var(--s-2) var(--s-3);border:1px solid var(--rule);background:var(--lime-raised);color:var(--map-muted);font-size:var(--t-dense)}
.city-map-status:empty {display:none}
.city-map-selected {position:absolute;left:24px;bottom:24px;z-index:3;width:min(380px,calc(100% - 48px));max-height:calc(100% - 48px);overflow:auto;padding:var(--s-5) var(--s-5) var(--s-4);background:var(--lime-raised);border:1px solid var(--rule);box-shadow:none}
.city-map-selected h2 {margin:var(--s-1) var(--s-6) var(--s-2) 0;font-family:var(--serif);font-weight:500;font-size:var(--t-head);line-height:var(--lh-head)}
.city-map-selected p {margin:0 0 var(--s-3);color:var(--map-muted);line-height:var(--lh-dense)}
.map-selected-close {position:absolute;right:12px;top:9px;border:0;background:var(--clear);color:var(--map-muted);font-size:var(--t-head);cursor:pointer}
.map-primary-action,.map-secondary-action {display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:var(--s-2) var(--s-3);border-radius:var(--radius);font:inherit;text-decoration:none;cursor:pointer}
.map-primary-action {background:var(--map-accent);color:var(--ink-inverse)}
.map-secondary-action {margin:var(--s-2) 0 var(--s-3);border:1px solid var(--map-accent);background:var(--clear);color:var(--map-accent)}
.map-muted {color:var(--map-muted);font-size:var(--t-dense)}
.map-section-label {display:flex;justify-content:space-between;padding-top:var(--s-3);margin-top:var(--s-3);border-top:1px solid var(--map-line);color:var(--map-ink);font-size:var(--t-dense);font-weight:700;text-transform:uppercase;letter-spacing:var(--track-label)}
.map-section-label span {font-weight:400;text-transform:none;letter-spacing:0}
.map-stop {padding:var(--s-3) 0;border-bottom:1px solid var(--map-line)}
.map-stop strong,.map-stop small {display:block}
.map-stop small {margin-top:var(--s-1);color:var(--map-muted);font-size:var(--t-dense)}
.map-services {display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);margin-top:var(--s-2)}
.map-services a {color:var(--map-accent);font-size:var(--t-dense);text-decoration:underline;text-underline-offset:2px}
.map-radius {display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-top:var(--s-3);color:var(--map-muted);font-size:var(--t-dense)}
.map-radius select {border:1px solid var(--map-line);padding:var(--s-2) var(--s-2);background:var(--map-paper);color:inherit;font:inherit}
.city-map-foot {display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--gutter);border-top:1px solid var(--map-line);color:var(--map-muted);font-size:var(--t-dense)}
.city-map-foot a {color:inherit}
.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}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible {outline:3px solid var(--celeste);outline-offset:3px}
@media (max-width:760px) {
  .city-map-shell {min-height:calc(100svh - 64px)}
  .city-map-intro {padding:var(--s-5) var(--s-4) var(--s-4)}
  .city-map-intro h1 {font-size:var(--t-display)}
  .city-map-tools {align-items:stretch;flex-direction:column;padding:0 var(--s-4) var(--s-3);gap:var(--s-2)}
  .map-search {width:100%}
  .map-tool-actions {justify-content:space-between}
  .city-map-workspace {display:flex;flex-direction:column;min-height:0}
  .city-map-stage {order:0;height:56svh;min-height:320px}
  .city-map-results {order:1;max-height:42svh;border-right:0;border-top:1px solid var(--map-line)}
  .city-map-workspace.list-only .city-map-stage {display:none}
  .city-map-workspace.list-only .city-map-results {max-height:none}
  .city-map-selected {left:12px;right:12px;bottom:12px;width:auto;max-height:58%;padding:var(--s-4)}
  .city-map-foot {flex-direction:column;padding:var(--s-2) var(--s-4)}
  .map-layers[open] fieldset {right:-2px}
}
@media (prefers-reduced-motion:reduce) { *,*:before,*:after {scroll-behavior:auto!important;transition:none!important;animation:none!important} }

[data-recharge-toggle][aria-pressed="true"]{background:var(--celeste);color:var(--ink-inverse)}

.city-map-intro { max-width:var(--page-max); width:100%; margin:auto; padding:var(--s-6) var(--gutter) var(--s-5); }
.city-map-intro h1 { font:500 var(--t-display)/var(--lh-display) var(--serif); }
.city-map-intro p:last-child { font:var(--t-body)/var(--lh-body) var(--sans); }
.city-map-tools { padding:0 var(--gutter) var(--s-4); gap:var(--s-4); }
.city-map-workspace { grid-template-columns:minmax(0,4fr) minmax(0,8fr); border-bottom:var(--zocalo-h) solid var(--zocalo-band); }
.city-map-results { background:var(--lime-raised); }
.map-result.selected { background:var(--ochre-pale); border-left:2px solid var(--celeste); }
.map-result-select strong { font-weight:600; }
.map-result-select small { white-space:normal; font-size:var(--t-dense); }
.city-map-selected { border-bottom:var(--zocalo-h) solid var(--zocalo-band); }
.map-tool-actions { flex-wrap:wrap; gap:var(--s-2); background:var(--clear); border:0; }
.map-tool-actions .g-button { flex:none; }
.map-layers[open] fieldset { min-width:min(24rem,90vw); max-width:calc(100vw - var(--s-6)); }
:root .map-result-visibility input { opacity:1; position:static; pointer-events:auto; }
.map-result-visibility span[aria-hidden] { display:none; }
.map-result-visibility { padding:var(--s-2); }
.city-map-foot { font-size:var(--t-dense); }
@media(max-width:760px) {
 .city-map-tools { padding-inline:var(--s-4); }
 .city-map-workspace { display:flex; }
 .city-map-intro { padding:var(--s-5) var(--s-4); }
 .city-map-stage { min-height:440px; }
 .map-tool-actions { justify-content:flex-start; }
 .map-layers[open] fieldset { position:fixed; inset:auto var(--s-4); width:auto; z-index:55; }
}
