/* One branded pin and popup across app, platform and public pages. */
.vb-map-pin { background:none; border:0; }
.vb-map-pin-body { position:relative; display:grid; place-items:center; box-sizing:border-box; width:54px; height:54px; border:1px solid #fff; border-radius:18px; background:white; box-shadow:0 5px 20px #27303d40,0 0 0 5px #ff52641a; }
.vb-map-pin-body::after { content:""; position:absolute; bottom:-7px; left:20px; width:12px; height:12px; transform:rotate(45deg); border-radius:0 0 3px 0; background:#fff; }
.vb-map-pin-body img { display:block; position:relative; z-index:1; width:42px!important; height:42px!important; max-width:none!important; border:0; border-radius:0; object-fit:contain; }
.vb-map-pin:focus-visible { outline:3px solid #ff4f60; outline-offset:6px; border-radius:18px; }
.leaflet-popup.vb-map-popup .leaflet-popup-content-wrapper { border-radius:16px; padding:0; border:1px solid #e5e7ed; box-shadow:0 8px 30px #20233224; color:#171a23; background:#fff; }
.leaflet-popup.vb-map-popup .leaflet-popup-content { margin:18px 28px 18px 18px; width:230px; max-width:calc(100vw - 112px); font:inherit; font-size:14px; line-height:1.45; font-weight:400; }
.vb-map-popup .vb-map-card { display:grid; gap:7px; text-align:left; }
.vb-map-popup .vb-map-card-label { font-size:11px; line-height:1.4; font-weight:500; color:#757985; }
.vb-map-popup .vb-map-card>strong { display:block; font-size:16px; line-height:1.35; font-weight:600; letter-spacing:-.015em; overflow-wrap:anywhere; color:#171a23; }
.vb-map-popup .vb-map-card-broker { display:grid; gap:2px; margin-top:5px; padding-top:11px; border-top:1px solid #edf0f4; }
.vb-map-popup .vb-map-card-broker small { font-size:11px; color:#757985; }
.vb-map-popup .vb-map-card-broker span { font-size:13px; font-weight:500; color:#444956; overflow-wrap:anywhere; }
.leaflet-container .vb-map-popup a.leaflet-popup-close-button { width:30px; height:30px; padding:3px; color:#777b87; font:20px/24px Arial,sans-serif; }
.vb-map-popup .leaflet-popup-tip { background:#fff; }
.vb-map-surface { height:380px; border-radius:16px; background:#edf0f4; z-index:0; color:#171a23; font-family:inherit; }
.vb-map-wrap { position:relative; min-width:0; }
.vb-map-provider-logo { position:absolute; bottom:0; left:0; z-index:500; }
.vb-map-provider-logo img { display:block; width:96px!important; height:auto!important; max-width:none!important; border-radius:0!important; }
.vb-map-surface .leaflet-control-zoom a { color:#171a23; font-family:Arial,sans-serif; font-size:22px; }
[data-property-map] { position:relative; min-width:0; }
.vb-map-loading { display:grid; place-items:center; box-sizing:border-box; height:380px; margin:0; padding:24px; border:1px solid #e3e6ed; border-radius:16px; background:#f1f3f6; color:#555b68; font:inherit; font-size:15px; text-align:center; }
[data-property-map]>.vb-map-status { margin:12px 0 0; font-size:13px; line-height:1.5; }
/* Reuse each pack's media column and radius; the live map replaces its decorative image. */
body .property-site .site-location-media[data-property-map] { position:relative; display:block; }
body .property-site .site-location-media[data-property-map]>.vb-map-wrap,
body .property-site .site-location-media[data-property-map] .vb-map-surface { width:100%; height:100%; border-radius:inherit; }
body .property-site .site-location-media[data-property-map]>[data-map-open],
body .property-site .site-location-media[data-property-map]>.vb-map-loading { position:absolute; inset:0; display:grid; align-content:center; justify-items:center; gap:14px; width:100%; height:100%; margin:0; padding:24px; border:1px solid #e3e6ed; border-radius:inherit; background:#f1f3f6; color:#555b68; font:inherit; font-size:15px; line-height:1.5; font-weight:500; }
body .property-site .site-location-media[data-property-map]>[data-map-open] { cursor:pointer; }
body .property-site .site-location-media[data-property-map]>.vb-map-status { position:absolute; z-index:600; bottom:40px; left:16px; right:16px; margin:0; padding:10px 12px; border-radius:10px; background:#fff; color:#555b68; }
/* Pack image rules must not resize tiles, marker artwork or attribution logos. */
body .property-site .site-location-media[data-property-map] .leaflet-tile { width:256px!important; height:256px!important; max-width:none!important; border:0; border-radius:0; object-fit:fill; }
body .property-site .site-location-media[data-property-map] .leaflet-marker-icon { max-width:none!important; }
.site-location-unset { margin:0; padding:24px; border:1px solid #e3e6ed; border-radius:12px; background:#f7f8fa; color:#555b68; }
@media(max-width:600px) { .vb-map-surface,.vb-map-loading { height:320px; } }
