.map-section{border:1px solid var(--line);border-radius:10px;padding:25px 25px 15px;margin:0 0 20px;background:#f7fafc}
.map-heading h2{font-size:30px;margin-bottom:8px}
.map-heading p{color:var(--muted);font-size:15px;margin-bottom:14px}
.us-map{display:block;width:100%;height:auto;max-width:1000px;margin:auto;overflow:visible}
.map-state{cursor:pointer}
.map-state .boundary{fill:#b7ccdc;stroke:#fff;stroke-width:1.25;transition:fill .15s ease}
.map-state:hover .boundary,.map-state:focus-visible .boundary{fill:#39729b}
.map-state.is-selected .boundary{fill:var(--accent)}
.map-state text{fill:var(--ink);stroke:none;font:700 16px system-ui,sans-serif;pointer-events:none}
.map-state rect{fill:white;stroke:var(--line)}
.map-state:focus-visible{outline:none}
.map-state:focus-visible .boundary{stroke:var(--accent);stroke-width:3}
.map-credit{font-size:12px;color:var(--muted);margin:0}
.state-detail{background:var(--blue);border-left:4px solid var(--accent);padding:22px 26px;margin:0 0 28px;border-radius:0 6px 6px 0}
.state-detail .eyebrow{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0 0 5px}
.state-detail h2{font-size:30px;margin:0 0 8px}
.state-detail p{margin-bottom:12px}
.state-detail .button{margin-top:2px}
#selected-state-link[hidden]{display:none}
.states button{border:0;padding:0;background:none;color:#205c87;font:inherit;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:4px}
.states button:hover{text-decoration-thickness:2px}
.states button[aria-pressed="true"]{color:var(--accent)}
.states .state-guide-link{font-size:13px;font-weight:400;margin-top:5px}
@media(max-width:600px){.map-section{padding:16px 10px 12px}.map-heading{padding:0 8px}.map-heading h2{font-size:26px}.state-detail{padding:18px}}
@media(prefers-reduced-motion:reduce){.map-state .boundary{transition:none}}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0 0 14px;font-size:13px}
.map-legend li{display:flex;align-items:center;gap:7px}
.map-legend li::before{content:"";display:inline-block;width:17px;height:17px;border:1px solid #637587;border-radius:3px;background:var(--status-fill)}
.status-adult-use{--status-fill:#76b6a3}
.status-medical-only{--status-fill:#85a9d3}
.status-limited-medical{--status-fill:#c2a7d6}
.status-prohibited{--status-fill:#dfaa86}
.map-state .boundary{fill:var(--status-fill)}
.map-state:hover .boundary,.map-state:focus-visible .boundary,.map-state.is-selected .boundary{fill:var(--status-fill);stroke:#17334b;stroke-width:3}
.map-state.is-selected .boundary{stroke:#733d00;stroke-width:3.5}
.map-state.is-muted{opacity:.33}
.map-state.is-muted:hover,.map-state.is-muted:focus-visible{opacity:1}
.state-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px 18px;margin-top:16px}
.state-filters label{font-size:14px;margin-bottom:4px}
.state-filters select,.state-filters button{font:inherit;font-size:14px;padding:9px 11px;border:1px solid #8ba1b3;border-radius:4px;background:white;color:var(--ink)}
.state-filters button{text-decoration:underline;color:#205c87}
.state-sources{font-size:14px;margin-bottom:18px;overflow-wrap:anywhere}
.state-detail .meta{font-size:13px}
@media(max-width:600px){.state-filters>div,.state-filters select{width:100%}.map-legend{gap:7px 12px}}
.legend-note{font-size:13px;color:var(--muted);margin-bottom:10px}
.filter-note{border-left:3px solid var(--accent);padding-left:10px;font-weight:700;font-size:14px}
.filter-note[hidden]{display:none}
