/* Critical Leaflet layout is kept locally so the map cannot fall apart when
   the CDN stylesheet is blocked or arrives late. */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}
.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}
.leaflet-marker-icon,.leaflet-marker-shadow{display:block}
.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;padding:0}
.leaflet-tile{visibility:hidden}.leaflet-tile-loaded{visibility:inherit}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}
.leaflet-control{position:relative;z-index:800;float:left;clear:both;pointer-events:auto}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-zoom-animated{transform-origin:0 0}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab{cursor:grabbing}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{text-align:left}.leaflet-popup-content{line-height:1.3}.leaflet-popup-tip-container{position:absolute;left:50%;width:40px;height:20px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;margin:-10px auto 0;transform:rotate(45deg)}.leaflet-popup-close-button{position:absolute;z-index:2;top:0;right:0;border:0!important;background:transparent!important;padding:4px 4px 0 0;color:#aaa!important;font:22px/20px Tahoma,Verdana,sans-serif;text-align:center;text-decoration:none}.leaflet-popup-close-button:hover{color:#fff!important}
.leaflet-control-zoom a{display:block;width:30px;height:30px;background:#fff;color:#111;text-align:center;text-decoration:none;font:700 22px/30px Arial,sans-serif}.leaflet-control-zoom a:first-child{border-bottom:1px solid #ccc}.leaflet-control-attribution{padding:0 5px;font-size:11px;line-height:1.4}
.locations-page{background:#111;color:#f5f5f5}
.locations-main{min-height:calc(100vh - 150px);padding:60px clamp(18px,4vw,58px) 48px}
.locations-intro{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 24px;max-width:1600px;margin:0 auto 22px}
.locations-intro p{grid-column:1/-1;margin:0;color:#aaa;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.locations-intro h1{margin:0;font-size:clamp(2rem,4vw,4rem);font-weight:400;letter-spacing:-.035em}
.locations-intro span{padding-bottom:.5em;color:#aaa;font-size:.9rem}
.map-shell{position:relative;max-width:1600px;margin:0 auto}
#locations-map{height:min(72vh,820px);min-height:520px;background:#172020;border:1px solid rgba(255,255,255,.13);isolation:isolate}
#locations-map .leaflet-tile{width:256px!important;height:256px!important;max-width:none!important;max-height:none!important;padding:0!important}
#locations-map .leaflet-popup{max-width:calc(100vw - 32px)}
#locations-map .leaflet-popup-content-wrapper{max-width:390px;overflow:hidden}
.map-help{position:absolute;z-index:500;left:12px;bottom:12px;margin:0;padding:8px 11px;background:rgba(17,17,17,.82);color:#ddd;font-size:.75rem;letter-spacing:.02em;pointer-events:none}
.photo-location-marker{background:transparent;border:0}
.photo-location-marker span{display:grid;place-items:center;min-width:38px;height:38px;padding:0 8px;border:2px solid #fff;border-radius:999px;background:#111;color:#fff;font:600 .84rem/1 Arial,sans-serif;box-shadow:0 4px 18px rgba(0,0,0,.45);transition:transform .16s ease,background .16s ease,color .16s ease}
.photo-location-marker.is-cluster span{min-width:42px;height:42px;background:#f5f5f5;color:#111;border-color:#111}
.photo-location-marker:hover span,.photo-location-marker:focus span{transform:scale(1.1);background:#fff;color:#111}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#171717;color:#f5f5f5;box-shadow:0 10px 38px rgba(0,0,0,.55)}
.leaflet-popup-content-wrapper{border-radius:2px}
.leaflet-popup-content{width:min(360px,calc(100vw - 66px))!important;max-width:360px;margin:16px;overflow:hidden}
.location-popup{min-width:0;max-width:100%}
.location-popup h2{margin:0 0 3px;font-size:1rem;font-weight:600}
.location-popup p{margin:0 0 12px;color:#aaa;font-size:.75rem}
.location-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:84px;align-content:start;gap:5px;width:100%;max-height:255px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.location-thumbs>a,.location-thumb{position:relative;display:block;min-width:0;height:84px;background:#222;overflow:hidden}
.location-thumbs img{display:block;width:100%!important;max-width:100%!important;height:100%!important;object-fit:cover;transition:transform .18s ease,opacity .18s ease}
.location-thumbs a:hover img,.location-thumbs a:focus img{transform:scale(1.05);opacity:.78}
.location-album-links{position:absolute;inset:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;padding:7px;background:rgba(10,10,10,.82);opacity:0;transition:opacity .18s ease}
.location-thumb-multiple:hover .location-album-links,.location-thumb-multiple:focus-within .location-album-links{opacity:1}
.location-album-links a{display:block;min-height:0!important;aspect-ratio:auto!important;padding:4px 5px;background:rgba(255,255,255,.12);color:#fff;font-size:9px;line-height:1.2;text-align:center;text-decoration:none;overflow:visible}
.location-album-links a:hover,.location-album-links a:focus{background:#fff;color:#111}
.leaflet-control-attribution{background:rgba(17,17,17,.82)!important;color:#bbb}
.leaflet-control-attribution a{color:#fff}
@media(max-width:700px){.locations-main{padding:45px 12px 30px}.locations-intro{grid-template-columns:1fr;margin-bottom:15px}.locations-intro span{padding:0}.locations-intro h1{font-size:2.3rem}#locations-map{height:70vh;min-height:440px}.map-help,.leaflet-control-zoom{display:none}.location-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:96px}.location-thumbs>a,.location-thumb{height:96px}}
@media(hover:none){.location-album-links{justify-content:flex-end;background:linear-gradient(transparent 25%,rgba(10,10,10,.9));opacity:1}.location-album-links a{padding:3px;font-size:8px}}
