/* Shared map experience. Cartography colors live in the style, never a filter. */
.map-shell { isolation:isolate; --map-control-bg:#fffffff2; --map-control-text:#41545b; }
.map-shell .branch-map { filter:none; }
.map-shell .handy-map-marker .handy-marker-pin { transform-origin:50% 100%; transition:transform .22s ease,opacity .22s ease,filter .22s ease; }
.map-shell .handy-map-marker.is-highlighted .handy-marker-pin { transform:scale(1.1); opacity:1; filter:brightness(1.06); }
.map-shell .map-status { position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px; color:var(--blue); background:var(--surface); text-align:center; }
.brand-shoecare .map-shell .map-status { color:var(--shoe-red,#c10808); }
.map-status .map-drawing { width:min(250px,85%); height:auto; overflow:visible; }
.map-status strong { color:var(--text); font:inherit; font-weight:500; font-size:16px; line-height:1.45; }
.map-status .map-pin_center { fill:var(--surface); }
.map-status .map-art-pin { animation:handy-map-float 3s ease-in-out infinite; }
.map-status .map-pulse { transform-origin:142px 91px; animation:handy-map-pulse 3s ease-in-out infinite; }
.map-status .map-route { animation:handy-map-route 6s linear infinite; }
.map-status .map-retry { border:1px solid currentColor; border-radius:999px; padding:10px 22px; min-height:44px; color:inherit; background:transparent; font:inherit; font-size:14px; cursor:pointer; }
.map-status .map-retry:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.map-shell .map-status[hidden],.map-status [hidden],.map-shell .handy-map-zoom[hidden] { display:none; }
.map-shell .maplibregl-ctrl-group,.map-shell .maplibregl-control-container .handy-map-credits { background:var(--map-control-bg); color:var(--map-control-text); }
.map-shell .maplibregl-ctrl-group button { color:inherit; }
.map-shell .maplibregl-ctrl-group button+button { border-top-color:color-mix(in srgb,var(--map-control-text) 15%,transparent); }
.map-shell .maplibregl-ctrl-group button:hover { background-color:color-mix(in srgb,var(--map-control-text) 8%,transparent); }
.map-shell .maplibregl-ctrl-group button:focus-visible { outline:2px solid var(--map-control-text); outline-offset:-3px; }
.map-shell .maplibregl-cooperative-gesture-screen { font-family:inherit; background:#122c3ab8; }
/* Use actual input, not the device's primary pointer/hover capability. */
.map-shell .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message { display:block; }
.map-shell .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { display:none; }
.map-shell:is([data-map-input=touch],[data-map-input=pen]) .maplibregl-desktop-message { display:none; }
.map-shell:is([data-map-input=touch],[data-map-input=pen]) .maplibregl-mobile-message { display:block; }
:root[data-theme=dark] .map-shell { --map-control-bg:#292f3af2; --map-control-text:#d6deeb; }
:root[data-theme=dark] .map-shell .maplibregl-ctrl-icon { filter:invert(1); }
:root[data-theme=dark] .map-shell .maplibregl-ctrl-attrib-button { filter:invert(1); }
@keyframes handy-map-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@keyframes handy-map-pulse { 0%,100% { transform:scale(1); opacity:.8; } 50% { transform:scale(.75); opacity:.4; } }
@keyframes handy-map-route { to { stroke-dashoffset:-54; } }
@media(prefers-reduced-motion:reduce) { .map-status .map-drawing * { animation:none; }.map-shell .handy-map-marker .handy-marker-pin { transition:none; } }
