.tour-page figure { margin: 0; }
.tour-page figcaption { margin-top: .75rem; color: var(--color-text-muted); font-size: .85rem; }
.tour-section-intro { max-width: 660px; }
.tour-visit { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: center; }
.tour-address { font-style: normal; }
#video-tour { scroll-margin-top: 12rem; }
@media (max-width: 720px) {
 .tour-visit { grid-template-columns: 1fr; }
 #video-tour { scroll-margin-top: 8rem; }
}

.tour-compilation { width: min(100%, 480px); justify-self: center; }
.tour-compilation video { display: block; width: 100%; height: auto; aspect-ratio: 512 / 910; background: #202820; border-radius: var(--radius-lg); }
.tour-compilation .small-note { margin-top: .5rem; }

/* Native scrolling keeps every photo available without JavaScript. */
.tour-gallery { max-width: 900px; width: 100%; margin-inline: auto; min-width: 0; }
.tour-gallery-track { position: relative; display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; border-radius: var(--radius-lg); }
.tour-gallery-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.tour-gallery-image { position: relative; width: 100%; aspect-ratio: 3 / 2; display: grid; place-items: center; background: var(--color-bg-alt); border-radius: var(--radius-lg); overflow: hidden; }
.tour-gallery-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.tour-gallery-slide figcaption { padding: 0 .25rem .5rem; }
.tour-gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.tour-gallery-controls p { margin: 0; text-align: center; }
.tour-gallery-controls button { cursor: pointer; min-height: 44px; }
.tour-gallery-controls button:disabled { opacity: .45; cursor: default; }
.tour-gallery-track:focus-visible { outline: 2px solid var(--color-primary-deep); outline-offset: 4px; }
@media (max-width: 540px) {
  .tour-gallery-image { aspect-ratio: 4 / 3; }
  .tour-gallery-controls .button-secondary { padding: .65rem .75rem; font-size: .85rem; }
  .tour-gallery-controls p { font-size: .75rem; }
}

.photo-hero-grid > .tour-gallery { align-self: center; }
.photo-hero-grid .tour-gallery-image { aspect-ratio: 4 / 3; }
