/* Interactive city-orientation maps for the unpublished Tennis guide review. */
.location-map-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.9fr);gap:24px;align-items:start}
.location-map-figure,.location-map-key{min-width:0;margin:0}
.location-map{position:relative;isolation:isolate;width:100%;height:420px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#e8ede6;box-shadow:var(--shadow)}
.location-map .leaflet-container{width:100%;height:100%;background:#e8ede6;color:var(--secondary);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:12px;line-height:1.4}
.location-map .leaflet-bar a{width:44px;height:44px;line-height:42px;font-size:24px}
.location-map .leaflet-control-attribution{font-size:11px;line-height:1.4}
.location-map .leaflet-control-attribution a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.location-map-marker{background:none;border:0}
.location-map-pin{display:grid;place-items:center;width:40px;height:40px;border:3px solid var(--surface);border-radius:50%;background:var(--secondary);box-shadow:0 3px 10px rgba(24,51,46,.28);color:#fffefa;font:800 12px/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.02em}
.location-map-pin--venue{background:var(--primary)}
.location-map-pin--city{background:var(--secondary)}
.location-map-pin--airport{background:var(--warning)}
.location-map-label{max-width:132px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:rgba(255,254,250,.96);box-shadow:0 2px 8px rgba(24,51,46,.16);color:var(--secondary);font:700 11px/1.25 Inter,ui-sans-serif,system-ui,sans-serif;text-align:center;white-space:normal}
.location-map-label::before{display:none}
.location-map-fallback{position:absolute;z-index:1000;right:16px;bottom:48px;left:16px;margin:0!important;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:rgba(255,254,250,.96);box-shadow:0 2px 8px rgba(24,51,46,.12);color:var(--secondary)!important;font-size:12px!important;line-height:1.5!important}
.location-map--unavailable{background:var(--filter-surface)}
.location-map-caption{margin-top:12px;color:var(--muted);font-size:12px;line-height:1.6}
.location-map-caption a{font-size:12px}
.location-map-key{padding:20px;background:var(--background);border:1px solid var(--border);border-radius:12px}
.location-map-key h3{margin:0 0 12px;font-size:20px}
.location-map-key>p{margin:12px 0 0;font-size:13px;line-height:1.6}
.location-key-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.location-key-list li{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:4px 10px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.location-key-list .location-map-pin{grid-row:1 / span 2;width:36px;height:36px;font-size:11px}
.location-key-copy{min-width:0;color:var(--muted);font-size:13px;line-height:1.45}
.location-key-copy strong{color:var(--secondary)}
.location-key-list li>a{grid-column:2;display:inline-flex;align-items:center;min-height:44px;width:max-content;max-width:100%;color:var(--primary);font-size:12px;font-weight:700}
.location-map--ready .location-map-fallback{display:none}
@media(max-width:1100px){.location-map-layout{grid-template-columns:minmax(0,1fr)}.location-key-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.location-map{height:360px}.location-map-key{padding:16px}.location-key-list{grid-template-columns:1fr}.location-map-label{display:none}}
@media(prefers-reduced-motion:reduce){.location-map *{scroll-behavior:auto;transition:none!important;animation:none!important}}
