.catalog-controls{display:flex;justify-content:flex-end;margin:-10px 0 22px}
.listing-grid[hidden],.map-view[hidden]{display:none!important}
.view-switch{display:inline-flex;padding:4px;background:#f2f8f5;border:1px solid #dce8e3;border-radius:14px}
.view-switch button{border:0;background:transparent;color:#60777b;padding:9px 15px;border-radius:10px;font-weight:800;cursor:pointer}
.view-switch button.active{background:#fff;color:#132b31;box-shadow:0 3px 12px rgba(25,66,68,.1)}
.map-view{border:1px solid #dce8e3;border-radius:24px;overflow:hidden;background:#f2f8f5}
#map{height:620px;width:100%;z-index:1}
.map-hint{margin:0;padding:12px 18px;color:#60777b;font-size:13px;background:#fff;border-top:1px solid #dce8e3}
.map-price-marker{background:transparent;border:0}
.map-price-marker span{display:block;width:max-content;min-width:64px;transform:translate(-50%,-50%);background:#fff;border:2px solid #146f78;border-radius:999px;padding:7px 10px;color:#132b31;font:800 13px Arial,sans-serif;box-shadow:0 8px 20px rgba(25,66,68,.22)}
.map-price-marker.active span,.map-price-marker:hover span{background:#146f78;color:#fff;transform:translate(-50%,-50%) scale(1.07)}
.map-price-marker.vip span{background:linear-gradient(135deg,#ffe16e,#bd7a06);border-color:#fff;color:#452b00;box-shadow:0 8px 24px rgba(126,80,0,.38);font-size:14px}.map-price-marker.vip span i{font-style:normal}.map-price-marker.vip.active span,.map-price-marker.vip:hover span{background:linear-gradient(135deg,#ffed9c,#d79416);color:#382200}.vip-map-legend{display:inline-flex;background:#f6c94f;color:#4c3000;padding:3px 7px;border-radius:7px;font-weight:900}.map-popup{position:relative}.map-popup-vip{position:absolute;left:8px;top:8px;background:linear-gradient(135deg,#ffe16e,#bd7a06);color:#432900;padding:4px 8px;border-radius:8px;font-size:11px;font-weight:900;z-index:2}.map-popup-rating{color:#c77f00;font-weight:900;font-size:12px;margin:2px 0 5px}.map-popup-rating.muted{color:#60777b;font-weight:400}
.leaflet-control-attribution .leaflet-attribution-flag{display:none!important}
.map-popup{width:220px}.map-popup img{width:100%;height:115px;object-fit:cover;border-radius:10px;margin-bottom:10px}.map-popup b{display:block;font-size:16px;line-height:1.25;margin-bottom:4px}.map-popup p{font-size:12px;color:#60777b;margin:0 0 9px}.map-popup-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.map-popup-row strong{font-size:16px}.map-popup-row a{background:#ff725e;color:#fff!important;padding:7px 10px;border-radius:9px;font-weight:800;text-decoration:none}.address.show-on-map{display:block}.address.show-on-map:hover,.object-address-link:hover{color:#146f78;text-decoration:underline}.object-address-link{color:#60777b;margin-bottom:18px}
@media(max-width:620px){#map{height:520px}.catalog-controls{justify-content:stretch}.view-switch{width:100%}.view-switch button{flex:1}.map-popup{width:190px}}

/* Interactive map on an individual accommodation page */
.object-location{overflow:hidden;border:1px solid #dce8e3;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(25,66,68,.08)}
.object-location-head{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;background:linear-gradient(135deg,#e0f5ee,#f9f5e9)}
.object-location-head p{margin:3px 0 0;color:#60777b}
.object-location-head a{color:#146f78;font-weight:800;text-align:right}
.object-location-head a:hover{text-decoration:underline}
.object-mini-map{width:100%;height:360px;z-index:1;background:#eef4f1}
.object-map-hint{margin:0;padding:9px 15px;border-top:1px solid #dce8e3;background:#fff;color:#60777b;font-size:12px;text-align:center}
.object-map-marker{background:transparent!important;border:0!important}
.object-map-marker span{position:relative;display:grid;place-items:center;width:42px;height:42px;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#ff725e;color:#fff;font:900 24px/1 Arial,sans-serif;box-shadow:0 8px 22px rgba(19,43,49,.3)}
.object-map-marker span:before{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(19,43,49,.08)}
.object-map-marker span{padding-bottom:1px}.object-map-marker span::after{content:'⌂';transform:rotate(45deg)}
.object-map-marker span{font-size:0}
.object-map-popup{display:grid;gap:3px;min-width:180px}.object-map-popup b{font-size:15px}.object-map-popup span{color:#60777b;font-size:12px}
@media(max-width:620px){.object-location-head{align-items:flex-start;flex-direction:column;padding:18px}.object-location-head a{text-align:left}.object-mini-map{height:300px}.object-map-hint{font-size:11px}}
