.gallerySection{padding:110px 0;border-bottom:1px solid var(--line)}
.gallerySection .sectionHead{margin-bottom:48px}
.galleryGrid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.photo{grid-column:span 4;margin:0;cursor:zoom-in}
.photo:nth-child(5n+1){grid-column:span 7}.photo:nth-child(5n+2){grid-column:span 5}
.photo img{width:100%;height:330px;object-fit:cover;display:block;filter:saturate(.82);transition:.25s}
.photo:hover img{filter:saturate(1);transform:translateY(-3px)}
.photo figcaption{display:flex;justify-content:space-between;gap:15px;padding:12px 0;font:12px Arial}
.photo figcaption span{color:var(--muted)}
.visitor{max-width:390px;margin:0;color:var(--muted);font:11px/1.7 Arial;letter-spacing:.08em;text-align:right}
.visitorCount{margin:7px 0 0;color:var(--ink);font:700 10px/1.6 Arial;letter-spacing:.1em;text-align:right}
.visitorMap{grid-column:1/-1;margin:72px 0 70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.visitorMapHead{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:24px 0}
.mapKicker{margin:0 0 8px;color:var(--red);font:700 10px Arial;letter-spacing:.2em}
.visitorMap h3{margin:0;font-size:25px;font-weight:500}
.mapFrame{position:relative;min-height:390px;overflow:hidden;background:#ddd8cc;border:1px solid var(--line)}
#visitorMap{width:100%;height:390px;background:#ddd8cc;filter:grayscale(.72) sepia(.13) saturate(.38) brightness(1.04);transition:filter .25s}
#visitorMap:hover,#visitorMap:focus-within{filter:grayscale(.52) sepia(.08) saturate(.55) brightness(1.02)}
.leaflet-container{font-family:Arial,sans-serif}.leaflet-popup-content strong{font-family:Georgia,serif;font-size:15px;font-weight:500}
.leaflet-popup-content p{margin:5px 0 0;color:#706d64;font-size:11px}
.leaflet-control-zoom a{background:#f3efe5!important;color:#171713!important;border-color:#cbc5b7!important}
.leaflet-control-attribution{background:#f3efe5cc!important;color:#706d64!important;font-size:9px!important}
.mapLegend{position:absolute;z-index:500;left:14px;bottom:14px;display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f3efe5dc;color:#706d64;font:9px Arial;letter-spacing:.06em;pointer-events:none}
.mapLegend span{width:8px;height:8px;border-radius:50%;background:#c44a32;box-shadow:0 0 0 3px #c44a3222}
.mapFallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;color:var(--muted);font:11px Arial;letter-spacing:.1em}
.mapFallback[hidden]{display:none}
.mapPulse{width:16px;height:16px;border:2px solid var(--red);border-radius:50%;box-shadow:0 0 0 0 #c44a3266;animation:mapPulse 1.8s infinite}
.mapMeta{display:flex;justify-content:space-between;gap:30px;padding:14px 0;color:var(--muted);font:10px/1.6 Arial;letter-spacing:.06em}
.mapMeta p{margin:0}.mapMeta a{color:var(--ink);white-space:nowrap}
@keyframes mapPulse{70%{box-shadow:0 0 0 18px #c44a3200}100%{box-shadow:0 0 0 0 #c44a3200}}
#lightbox{width:min(980px,calc(100% - 30px));text-align:center}
#lightbox img{width:100%;max-height:68vh;object-fit:contain;background:#e9e3d6}
#lightbox h2{font-size:28px;margin:22px 0 8px}
#lightbox p{color:var(--muted);line-height:1.7}
@media(max-width:760px){
  .gallerySection{padding:75px 0}.galleryGrid{grid-template-columns:1fr}
  .photo,.photo:nth-child(n){grid-column:auto}.photo img{height:280px}
  .navLinks{gap:14px;font-size:10px}
  .visitorMap{margin:45px 0 70px}.visitorMapHead{align-items:start;flex-direction:column;gap:12px}
  .visitor,.visitorCount{text-align:left}.mapFrame,#visitorMap{height:310px;min-height:310px}
  .mapMeta{align-items:start;flex-direction:column;gap:8px}
}
