.gallery-page { padding: 145px 0 75px; background: #f8f6f3; color: var(--saca-ink); }
.gallery-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 30px; }
.gallery-heading h1 { font: 600 clamp(2.4rem, 4.5vw, 4rem)/1.08 var(--saca-serif); letter-spacing: -.04em; margin: 0; }
.gallery-heading > div > p:last-child { max-width: 620px; color: var(--saca-muted); line-height: 1.75; margin: 20px 0 0; }
.gallery-filter { flex: 0 0 260px; }
.gallery-filter label { font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; }
.gallery-filter select { width: 100%; min-height: 48px; padding: 12px; border: 1px solid var(--saca-line); border-radius: 4px; background: #fff; color: var(--saca-ink); font: inherit; font-size: .85rem; }
.site-gallery__stage { position: relative; aspect-ratio: 16/8.5; background: #17191c; overflow: hidden; }
.site-gallery__open { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.site-gallery__image { width: 100%; height: 100%; object-fit: contain; }
.site-gallery__controls, .site-gallery-modal__controls { display: flex; align-items: center; background: rgba(18,18,20,.88); color: #fff; }
.site-gallery__controls { position: absolute; right: 20px; bottom: 20px; }
.site-gallery__controls button, .site-gallery-modal button { width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: #fff; font-size: 1.2rem; cursor: pointer; }
.site-gallery__controls button:hover, .site-gallery-modal button:hover { background: var(--saca-red); }
.site-gallery__controls span, .site-gallery-modal__controls span { min-width: 90px; padding-inline: 8px; font-size: .75rem; text-align: center; }
.site-gallery__caption { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; }
.site-gallery__caption strong { font-size: 1rem; }
.gallery-model-link { color: var(--saca-red); font-size: .75rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; text-decoration: none; }
.site-gallery__thumbnails { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; padding: 4px 0 8px; }
.site-gallery__thumbnails button { position: relative; min-width: 0; padding: 0; border: 3px solid transparent; background: #ddd; cursor: pointer; }
.site-gallery__thumbnails button[aria-current=true], .site-gallery__thumbnails button:hover { border-color: var(--saca-red); }
.site-gallery__thumbnails img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.site-gallery__thumbnails button:has(.site-gallery__thumbnail-name) { background: #fff; }
.site-gallery__thumbnail-name { display: block; padding: 8px 6px; color: var(--saca-ink); font: 600 .7rem/1.4 var(--saca-sans); overflow-wrap: anywhere; }
.gallery-thumbnail-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.gallery-load-more, .gallery-show-fewer { display: block; min-height: 44px; padding: 10px 16px; border: 1px solid var(--saca-line); background: #fff; color: var(--saca-ink); font: 600 .8rem var(--saca-sans); cursor: pointer; }
.gallery-load-more:hover, .gallery-show-fewer:hover { color: var(--saca-red); border-color: var(--saca-red); }
.gallery-empty { padding: 60px 20px; text-align: center; color: var(--saca-muted); border: 1px solid var(--saca-line); }
.site-gallery-modal { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: 70px 20px 86px; border: 0; background: #0e0e10; color: #fff; }
.site-gallery-modal::backdrop { background: #0e0e10; }
.site-gallery-modal[open] { display: flex; justify-content: center; align-items: center; }
.site-gallery-modal > img { width: 100%; height: 100%; object-fit: contain; }
.site-gallery-modal__close { position: absolute; top: max(16px, env(safe-area-inset-top)); right: 16px; }
.site-gallery-modal__controls { position: absolute; bottom: max(18px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); }
html.site-gallery-open { overflow: hidden; }
.site-gallery [hidden] { display: none; }
.gallery-page a:focus-visible, .gallery-page button:focus-visible, .gallery-page select:focus-visible, .site-gallery__stage:focus-visible { outline: 2px solid var(--saca-red); outline-offset: 3px; }
.site-gallery-modal button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 850px) { .gallery-heading { flex-direction: column; align-items: stretch; gap: 24px; } .gallery-filter { flex-basis: auto; max-width: 400px; } }
@media (max-width: 850px) { .site-gallery__thumbnails { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 600px) { .site-gallery__thumbnails { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } }
@media (max-width: 600px) { .gallery-page { padding-top: 175px; } .site-gallery__stage { aspect-ratio: 4/3; } .site-gallery__controls { right: 8px; bottom: 8px; } .site-gallery__caption { align-items: flex-start; } }
@media (min-width: 768px) and (max-width: 1199.98px) { .gallery-page { padding-top: 190px; } }
