/* Only Leaflet transforms marker positions. Children fade as one opaque surface. */
#map .leaflet-marker-icon{z-index:var(--marker-order,1)!important;pointer-events:none}
#map .leaflet-marker-icon *{pointer-events:none}
#map .leaflet-marker-icon.marker-interactive .marker-scale,#map .leaflet-marker-icon.marker-interactive .city-cluster{pointer-events:auto}
#map .marker-motion,#map .cluster-motion{transform:none!important;opacity:0;visibility:hidden;isolation:auto}
#map .marker-motion{width:100%;height:44px}
#map .cluster-motion{width:92px;height:76px}
#map.markers-ready .marker-motion,#map.markers-ready .cluster-motion{transition:opacity .42s cubic-bezier(.4,0,.2,1),visibility 0s .42s}
#map[data-marker-view="detail"] .marker-motion,#map .is-selected .marker-motion,#map[data-marker-view="overview"] .cluster-motion{opacity:1;visibility:visible;transition-delay:0s,0s}
#map .price-marker{transform-origin:66px 44px;will-change:transform}
#map .price-marker.marker-culled{display:none!important;will-change:auto}
#map .marker-scale{transform:none;transition:none;isolation:auto;contain:layout style}
/* Native Leaflet zoom interpolates the one outer transform. */
#map .leaflet-marker-icon.marker-interactive .selectable-pin button{pointer-events:auto}
#map .selectable-pin button .icon{pointer-events:none}
#map .map-pin{isolation:isolate;filter:none!important;transform:none!important;transition:box-shadow .22s ease}
#map .map-pin:after{z-index:-1}
#map .city-cluster{filter:none}
#map .city-cluster strong{box-shadow:0 3px 10px #12345126}
#map .city-cluster>span{box-shadow:0 2px 6px #12345116}
#map .leaflet-marker-icon.is-active{z-index:50000!important}
#map .map-pin.focused{box-shadow:0 0 0 3px #fff,0 3px 14px #12345155}
@media(hover:hover) and (pointer:fine){#map:not(.map-moving) .leaflet-marker-icon.marker-interactive:hover{z-index:60000!important}#map:not(.map-moving) .marker-interactive:hover .map-pin{box-shadow:0 0 0 2px #fff,0 4px 16px #12345140}}
@media(prefers-reduced-motion:reduce){#map.markers-ready .marker-motion,#map.markers-ready .cluster-motion,#map.markers-ready .leaflet-marker-icon,#map .marker-scale{transition:none!important}}
/* Lock page scrolling without removing its scrollbar and shifting the whole map. */
html{scrollbar-gutter:stable}
body.has-modal{overflow:clip}
.detail-dialog{transform-origin:50% 75%;will-change:transform,opacity}
.detail-dialog::backdrop{backdrop-filter:none;background:rgba(18,30,44,.42);animation:detail-backdrop-in .3s ease both}
.detail-dialog.detail-closing::backdrop{animation:detail-backdrop-out .21s ease both}
@keyframes detail-backdrop-in{from{background:rgba(18,30,44,0)}to{background:rgba(18,30,44,.42)}}
@keyframes detail-backdrop-out{from{background:rgba(18,30,44,.42)}to{background:rgba(18,30,44,0)}}
.detail-choose-market,.select-location{transition:background .18s ease,box-shadow .18s ease,transform .18s ease}
.detail-choose-market:active,.select-location:active{transform:scale(.98)}
.selection-stack{transition:box-shadow .25s ease}
@media(prefers-reduced-motion:reduce){.detail-dialog::backdrop,.detail-dialog.detail-closing::backdrop{animation:none}.detail-dialog{will-change:auto}.detail-choose-market,.select-location{transition:none}.detail-choose-market:active,.select-location:active{transform:none}}

#map .map-pin{box-shadow:0 2px 4px #17212b30}
#map .map-pin.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #17212b}

/* One lightweight copy confirms a map selection without moving the real label. */
.marker-selection-flight{position:fixed;z-index:1100;pointer-events:none;user-select:none;transform-origin:0 0;will-change:transform,opacity;contain:layout style}
.marker-selection-flight *{pointer-events:none!important}
.marker-selection-flight .map-pin{transform:none!important;filter:none!important;transition:none!important;isolation:isolate;box-shadow:0 0 0 2px #fff,0 3px 8px #12345126}
.marker-selection-flight .marker-quick-select,.marker-selection-flight .market-network-name{transition:none!important}
