* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; }
body { color: #252331; background: #f4f1ec; font: 15px/1.4 Arial, sans-serif; }
#map { position: absolute; inset: 0; visibility: hidden; }
body.map-ready #map { visibility: visible; }
.map-fallback { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 14px 14px 65px; }
.map-fallback img { width: auto; max-width: 100%; height: min(65vh, 390px); }
.map-fallback p { margin: 0; text-align: center; font-size: 13px; }
[hidden] { display: none !important; }
.maplibregl-ctrl-top-right { top: 10px; right: 10px; }
.maplibregl-ctrl-group { border-radius: 12px; overflow: hidden; box-shadow: 0 3px 15px #2924311c !important; }
.maplibregl-ctrl-group button { width: 42px; height: 42px; }
.map-home { position: absolute; right: 20px; top: 111px; width: 42px; height: 42px; border: 0; border-radius: 12px; background: white; color: #35313c; box-shadow: 0 3px 15px #2924311c; cursor: pointer; }
.map-home svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.map-home:hover, .maplibregl-ctrl-group button:hover { background: #fff0df; }
.map-route { position: absolute; left: 16px; bottom: 34px; padding: 11px 15px; display: flex; gap: 20px; align-items: center; background: #fff; color: #40313a; font-weight: 700; border: 1px solid #eee4db; border-radius: 12px; box-shadow: 0 3px 15px #29243118; text-decoration: none; }
.map-route:hover { background: #fff0df; }
.map-route span { color: #ee6d05; font-size: 20px; line-height: 1; }
.studio-pin { display: flex; flex-direction: column; align-items: center; pointer-events: none; }
.studio-pin-label { padding: 10px 14px; background: #fff; border: 1px solid #f8b66c; border-radius: 13px; box-shadow: 0 5px 24px #3c293426; text-align: center; }
.studio-pin-label strong { display: block; color: #2b2230; font-size: 16px; }
.studio-pin-label span { color: #76666b; font-size: 13px; }
.studio-pin-point { margin-top: -1px; width: 18px; height: 18px; border: 4px solid #fff; border-radius: 50%; background: #ff7b12; box-shadow: 0 0 0 2px #ff7b12, 0 3px 9px #5a3a3a40; }
.maplibregl-ctrl-attrib { font-size: 10px; line-height: 16px; background: #fffffff0; }
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib { margin: 0; padding: 3px 7px; }
.maplibregl-ctrl-scale { border-color: #6f6266; color: #433b40; background: #ffffffd9; font-size: 10px; }
button:focus-visible, a:focus-visible { outline: 3px solid #fa7b13; outline-offset: 3px; }
@media (max-width: 460px) {
  .maplibregl-ctrl-top-right { top: 0; right: 0; }
  .map-home { right: 10px; top: 101px; }
  .map-route { left: 10px; bottom: 37px; font-size: 13px; padding: 9px 12px; }
  .studio-pin-label { padding: 8px 11px; }
  .studio-pin-label strong { font-size: 14px; }
  .studio-pin-label span { font-size: 12px; }
  .maplibregl-ctrl-attrib { font-size: 9px; }
}
