/* Independent image rails; DOM order is also keyboard and reading order. */
.gallery-section { padding: 72px max(24px, 7vw); background: var(--white); border-top: 1px solid var(--line); }
.gallery-heading { width: min(1440px, 100%); margin: 0 auto 56px; }
.gallery-heading h2 { max-width: 760px; color: var(--gold); font-family: var(--font-label); font-weight: var(--font-weight-medium); text-transform: uppercase; }
.home-lightbox-open .gallery-track { overflow-x: hidden; }
.gallery-group { width: min(1440px, 100%); margin-inline: auto; }
.gallery-group + .gallery-group { margin-top: 48px; }
.gallery-group h3 { margin: 0 0 24px; color: var(--anthracite); font-size: var(--font-size-subheading); }
.gallery-stage { position: relative; }
.gallery-track { position: relative; display: flex; gap: 24px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--gold) transparent; cursor: grab; }
.gallery-item { flex: 0 0 calc((100% - 24px) / 2); min-width: 0; margin: 0; scroll-snap-align: start; }
.gallery-item button { display: block; width: 100%; padding: 0; border: 1px solid rgba(171, 143, 83, .65); aspect-ratio: 1920 / 1072; overflow: hidden; background: var(--light-grey); cursor: zoom-in; }
.gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; user-select: none; -webkit-user-drag: none; }
.gallery-item [data-gallery-src="assets/web/viz-7-1920.webp"] img { object-position: center top; }
.gallery-item button:focus-visible { outline: 3px solid var(--anthracite); outline-offset: -5px; }
.gallery-sides { position: absolute; inset: 0 0 auto; padding-top: calc((100% - 24px) / 2 * 1072 / 1920); pointer-events: none; }
.gallery-sides .gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: auto; }
.gallery-sides [data-gallery-prev] { left: 8px; }
.gallery-sides [data-gallery-next] { right: 8px; }
.gallery-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--gold); background: var(--anthracite); color: var(--gold); font: inherit; font-size: 24px; cursor: pointer; }
.gallery-arrow:hover:not([aria-disabled="true"]) { background: var(--gold); color: var(--anthracite); }
.gallery-arrow[aria-disabled="true"] { color: var(--white); border-color: var(--muted); cursor: default; }
.gallery-arrow:focus-visible, .gallery-track:focus-visible { outline: 2px solid var(--anthracite); outline-offset: 4px; }
.gallery-track.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.gallery-track.is-dragging button { cursor: grabbing; }
.gallery-counter { margin: 16px 0 0; text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
html.home-lightbox-open { overflow: hidden; }
body.home-lightbox-open { position: fixed; width: 100%; overflow: hidden; }
.lightbox { position: fixed; inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; margin: 0; padding: 16px; border: 0; color: var(--white); background: transparent; overscroll-behavior: contain; }
.lightbox::backdrop { background: rgba(20, 19, 18, .96); }
.lightbox[open] { display: grid; grid-template-rows: 44px minmax(0, 1fr) auto; gap: 12px; }
.lightbox-header { display: flex; justify-content: flex-end; pointer-events: none; }
.lightbox-header button { pointer-events: auto; }
.lightbox-stage { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; touch-action: pan-y pinch-zoom; }
.lightbox-stage img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.lightbox-stage .gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); }
.lightbox [data-lightbox-prev] { left: 0; }
.lightbox [data-lightbox-next] { right: 0; }
.lightbox .gallery-arrow:focus-visible { outline-color: var(--white); }
.lightbox-footer { display: flex; justify-content: flex-end; font-size: 14px; line-height: 1.4; font-variant-numeric: tabular-nums; }
@media (min-width: 1100px) {
  .gallery-sides [data-gallery-prev] { left: -56px; }
  .gallery-sides [data-gallery-next] { right: -56px; }
}
@media (max-width: 760px) {
  .gallery-section { padding: 48px 16px; }
  .gallery-track { gap: 16px; }
  .gallery-item { flex-basis: 100%; }
  .gallery-sides { padding-top: calc(100% * 1072 / 1920); }
}
@media (max-width: 760px), (max-height: 500px) {
  .lightbox { padding: 8px; }
  .lightbox[open] { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-track { scroll-behavior: auto; }
}
