/* Real street geography, with a villa identity instead of a provider pin. */
.location-map{position:relative;isolation:isolate;z-index:0}
.villa-map-canvas{position:relative;flex:1;min-height:0;width:100%;background:#e6e7d9;touch-action:pan-y}
.location-map .villa-map-canvas.leaflet-container{font-family:var(--sans);font-size:13px;color:var(--ink);touch-action:pan-y pinch-zoom}
.location-map .map-caption{position:relative;z-index:2;flex-shrink:0}
.location-map .map-status{position:absolute;z-index:1000;inset:0 0 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:var(--paper);color:var(--ink);text-align:center;font-size:14px;line-height:1.7}
.location-map .map-status>span{max-width:32ch}
.map-status .map-load-message{font-family:var(--serif);font-size:27px;line-height:1.2;letter-spacing:-.02em}
.map-status>a{font-size:13px;text-decoration:underline;text-underline-offset:4px}
.map-retry{border:1px solid var(--line);padding:8px 14px;min-height:44px;font-size:13px}
.location-map[data-map-state="error"] .villa-map-canvas{visibility:hidden}
.villa-map-canvas .leaflet-control-zoom,.villa-map-canvas .villa-map-reset{border:1px solid #29352c40;border-radius:0;box-shadow:0 2px 8px #29352c12}
.villa-map-canvas .leaflet-control-zoom a,.villa-map-canvas .villa-map-reset button{display:grid;place-items:center;width:36px;height:36px;min-height:36px;border-radius:0;background:var(--paper);color:var(--ink)}
.villa-map-canvas .leaflet-control-zoom a{font-size:23px;font-weight:400;border-color:var(--line)}
.villa-map-canvas .leaflet-control-zoom a:hover,.villa-map-canvas .villa-map-reset button:hover{background:#e9ecdf}
.villa-map-reset button{padding:8px}
.villa-map-reset svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}
.villa-map-canvas .leaflet-control-attribution{background:#f6f4edf2;color:#46513e;font-size:12px;line-height:1.6;padding:2px 6px;text-align:right}
.villa-map-canvas .leaflet-control-attribution a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.villa-map-canvas .leaflet-control-scale-line{border-color:#46513e;color:#29352c;background:#f6f4edd9;font-family:var(--sans);font-size:12px;line-height:1.2;text-shadow:none}
.villa-map-marker{background:none;border:0}
.villa-map-pin-link{display:block;position:relative;width:74px;height:92px;filter:drop-shadow(0 4px 5px #24332a42)}
.villa-map-pin-disc{display:grid;place-items:center;position:absolute;inset:0 0 auto;height:74px;border:2px solid #29352c;border-radius:50%;background:#f6f4ed;z-index:1}
.villa-map-pin-disc:before{content:"";position:absolute;inset:5px;border:1px solid #29352c3b;border-radius:50%;pointer-events:none}
.villa-map-pin-disc img{width:54px;height:54px;object-fit:contain}
.villa-map-pin-tail{display:block;position:absolute;left:27px;top:66px;width:20px;height:26px;background:#29352c;clip-path:polygon(0 0,100% 0,50% 100%)}
.villa-map-pin-tail:after{content:"";position:absolute;inset:0 3px 5px;background:#f6f4ed;clip-path:polygon(0 0,100% 0,50% 100%)}
.villa-map-pin-link:focus-visible{outline:3px solid #29352c;outline-offset:5px;border-radius:38px 38px 4px 4px}
.villa-map-canvas .villa-map-label{background:#f6f4edf5;border:1px solid #29352c30;border-radius:0;padding:5px 10px;box-shadow:0 2px 6px #29352c12;color:#29352c;font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.015em;line-height:1.5}
.villa-map-canvas .villa-map-label:before{display:none}
@media(max-width:600px){
 .villa-map-canvas{touch-action:pan-y}
 .location-map .villa-map-canvas .leaflet-control-zoom a,.location-map .villa-map-canvas .villa-map-reset button{width:44px;height:44px;min-height:44px}
 .location-map .map-status{padding:20px}
 .villa-map-canvas .leaflet-control-attribution{font-size:12px;max-width:100%}
 .villa-map-canvas .leaflet-control-scale{margin-bottom:27px}
}
