/* Station location tab: map panel and details card */
.map-panel { height: 100%; display: flex; flex-direction: column; }
.location-map { flex: 1; min-height: 30rem; margin-top: 1.25rem; border-radius: var(--vw-radius-sm); }
@media (max-width: 991.98px) { .location-map { min-height: 22rem; } }

.location-empty { display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: 3rem 1rem; color: var(--vw-muted); text-align: center; }
.location-empty i { font-size: 2.5rem; color: var(--vw-offline); }


.photo-lightbox { max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; padding: 0; border: 0; background: transparent; }
.photo-lightbox[open] { display: grid; place-items: center; }
.photo-lightbox::backdrop { background: rgb(20 16 10 / .88); }
.photo-lightbox img { max-width: calc(100vw - 2rem); max-height: calc(100vh - 2rem); border-radius: var(--vw-radius-sm); box-shadow: 0 12px 40px rgb(0 0 0 / .4); }
.lightbox-button {
    position: fixed; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%;
    background: rgb(255 255 255 / .15); color: #fff; font-size: 1.15rem;
}
.lightbox-button:hover { background: rgb(255 255 255 / .3); }
.lightbox-close { top: 1rem; right: 1rem; }
.lightbox-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.photo-lightbox.single .lightbox-prev, .photo-lightbox.single .lightbox-next { display: none; }

/* Place + coordinates card above the marker (a permanent Leaflet tooltip) */
.map-panel > .location-card { display: none; } /* until the script moves it into the tooltip */
.leaflet-tooltip.location-tooltip {
    padding: .65rem 1rem; border: 0; border-radius: var(--vw-radius-sm); background: var(--vw-surface); color: var(--vw-text);
    box-shadow: var(--vw-shadow); font-family: inherit; font-size: .95rem; line-height: 1.7; white-space: nowrap;
}
.leaflet-tooltip-top.location-tooltip::before { border-top-color: var(--vw-surface); }
.location-card i { width: 1.1rem; margin-right: .5rem; text-align: center; }
.location-card .fa-location-dot { color: var(--vw-primary); }
.location-card .fa-crosshairs { color: var(--vw-muted); }
.coordinates { display: flex; align-items: center; font-variant-numeric: tabular-nums; }
.copy-button { margin-left: .35rem; border: 0; background: none; padding: .1rem .35rem; border-radius: var(--vw-radius-sm); color: var(--vw-muted); line-height: 1; }
.copy-button i { width: auto; margin: 0; }
.copy-button:hover { background: var(--vw-primary-soft); color: var(--vw-primary); }
.copy-button.copied { color: var(--vw-online); }

/* Photos: large photo with a scrollable thumbnail strip, lightbox on click */
.photo-gallery { height: 100%; display: flex; flex-direction: column; }
.gallery-main { display: block; width: 100%; margin-top: 1.25rem; padding: 0; border: 0; background: none; border-radius: var(--vw-radius-sm); overflow: hidden; cursor: zoom-in; }
.gallery-main img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.gallery-strip-wrap { position: relative; margin-top: .75rem; }
.gallery-strip { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 1.5rem) / 3); gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-strip::-webkit-scrollbar { display: none; }
.gallery-strip li { scroll-snap-align: start; }
.gallery-item { display: block; border-radius: var(--vw-radius-sm); overflow: hidden; border: 2px solid transparent; }
.gallery-item.active { border-color: var(--vw-primary); }
.gallery-item img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.gallery-scroll {
    position: absolute; right: -.75rem; top: 50%; transform: translateY(-50%); display: grid; place-items: center;
    width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: var(--vw-surface); color: var(--vw-primary); box-shadow: var(--vw-shadow);
}
.gallery-scroll:hover { background: var(--vw-primary-soft); }
.gallery-scroll[hidden] { display: none; }
