/* Additive slideshow styling. Existing Record Red theme and hero are untouched. */
.approach-slideshow { min-width: 0; }
.on-set-gallery { --gallery-matte: #08080b; min-width: 0; width: 100%; }
.gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; margin-bottom: 10px; }
.gallery-kicker { color: var(--paper); font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.gallery-kicker::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--hot); margin-right: 9px; vertical-align: 1px; }
.gallery-buttons { display: flex; gap: 6px; align-items: center; }
.gallery-buttons[hidden] { display: none; }
.gallery-control { border: 1px solid var(--line); min-width: 44px; min-height: 44px; padding: 8px 12px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; font-size: 12px; line-height: 1.4; background: #151418; color: var(--paper); transition: background .2s, border-color .2s; }
.gallery-control:hover:not(:disabled) { background: var(--hot); border-color: var(--hot); color: #fff; }
.gallery-control:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.gallery-control:disabled { opacity: .65; }
.gallery-rotation { min-width: 85px; font-size: 10px; }
.gallery-stage { aspect-ratio: 4 / 3; width: 100%; position: relative; isolation: isolate; background: var(--gallery-matte); border: 1px solid #ffffff0d; }
.gallery-open { display: block; width: 100%; height: 100%; position: relative; touch-action: pan-y pinch-zoom; }
/* No cropping, distorting, colour filters or Ken Burns zoom. */
.gallery-photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: center; opacity: 0; transition: opacity 650ms ease-in-out; filter: none; }
.gallery-photo.is-active { opacity: 1; }
.gallery-photo[hidden] { display: none; }
.gallery-enlarge { position: absolute; bottom: 12px; right: 12px; z-index: 3; padding: 6px 9px; background: #08080be8; border: 1px solid #ffffff25; font-size: 9px; letter-spacing: .025em; opacity: 0; transition: opacity .2s; pointer-events: none; }
.gallery-open:hover .gallery-enlarge, .gallery-open:focus-visible .gallery-enlarge { opacity: 1; }
.gallery-caption { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-top: 16px; min-height: 48px; }
.gallery-caption p { font-size: 12px; line-height: 1.6; color: var(--paper); }
.gallery-counter { flex-shrink: 0; font-size: 10px; letter-spacing: .08em; font-variant-numeric: tabular-nums; color: var(--muted); padding-top: 2px; white-space: nowrap; }
.gallery-index { display: flex; gap: 5px; margin-top: 7px; }
.gallery-index span { height: 2px; flex: 1; min-width: 0; background: var(--line); }
.gallery-index span.is-current { background: var(--hot); }
.approach-gallery-note { margin-top: 26px; padding-top: 21px; border-top: 1px solid var(--line); }
.approach-gallery-note>span { color: var(--hot); font-size: 8px; letter-spacing: .14em; font-weight: 700; }
.approach-gallery-note p { margin-top: 10px; font-size: 16px; line-height: 1.6; }
.gallery-no-js { margin-top: 10px; color: var(--muted); font-size: 11px; }
.on-set-lightbox { width: min(1380px, calc(100vw - 40px)); height: min(1000px, calc(100dvh - 40px)); max-width: none; max-height: none; padding: 0; border: 1px solid #ffffff28; background: #08080b; color: var(--paper); overflow: hidden; }
.on-set-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.on-set-lightbox::backdrop { background: #050508ed; }
.lightbox-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.lightbox-toolbar>span { font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.lightbox-stage { position: relative; min-height: 0; touch-action: pan-y pinch-zoom; }
.lightbox-stage img { display: block; width: 100%; height: 100%; object-fit: contain; }
.lightbox-close { font-size: 11px; }
.lightbox-close span { font-size: 22px; line-height: 1; }
.lightbox-footer { display: flex; align-items: center; gap: 16px; padding: 12px 18px; border-top: 1px solid var(--line); }
.lightbox-footer p { flex: 1; font-size: 12px; }
.lightbox-footer .gallery-counter { padding: 0; }
@media (hover: none) { .gallery-enlarge { opacity: 1; } }
@media (max-width: 760px) {
  .gallery-stage { aspect-ratio: 4 / 3; }
  .gallery-toolbar { gap: 8px; }
  .gallery-kicker { font-size: 8px; letter-spacing: .08em; }
  .gallery-buttons { gap: 4px; }
  .gallery-control { padding: 8px 10px; }
  .gallery-rotation { min-width: 78px; }
  .gallery-caption p { font-size: 11px; }
  .approach-gallery-note p { font-size: 14px; }
  .on-set-lightbox { width: calc(100vw - 16px); height: calc(100dvh - 24px); }
  .lightbox-toolbar, .lightbox-footer { padding: 10px; gap: 10px; }
  .lightbox-footer { flex-wrap: wrap; }
  .lightbox-footer p { order: -1; flex-basis: 100%; text-align: center; font-size: 11px; }
  .lightbox-footer .gallery-counter { flex: 1; text-align: center; }
}
@media (max-width: 360px) {
  .gallery-kicker { max-width: 88px; font-size: 7px; }
  .gallery-kicker::before { margin-right: 5px; width: 5px; height: 5px; }
  .gallery-rotation { min-width: 72px; font-size: 9px; padding: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-photo, .gallery-control, .gallery-enlarge { transition: none; }
}
.motion-paused .gallery-photo { transition: none; }
