.site-gallery-trigger { display: block; height: 100%; cursor: zoom-in; }
.site-gallery-trigger:focus-visible { outline: 2px solid var(--color-accent, #b8955e); outline-offset: 4px; }
.site-gallery { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(20, 19, 18, 0.985); color: #f3efe7; }
.site-gallery::backdrop { background: rgba(20, 19, 18, 0.96); }
.site-gallery[open] { display: grid; place-items: center; }
.site-gallery-panel { position: relative; display: grid; width: min(calc(100% - 2 * clamp(1rem, 4vw, 4rem)), 96rem); min-height: 100%; grid-template-columns: 3.5rem minmax(0, 1fr) 3.5rem; align-items: center; gap: clamp(0.75rem, 2vw, 1.5rem); padding-block: clamp(4.75rem, 8vh, 6rem) clamp(3.75rem, 7vh, 5rem); touch-action: pan-y; }
.site-gallery-figure { display: grid; min-width: 0; grid-column: 2; justify-items: center; margin: 0; }
.site-gallery-figure img { width: auto; max-width: 100%; height: auto; max-height: min(76dvh, 76vh); object-fit: contain; }
.site-gallery-figure figcaption { margin-top: 1rem; color: rgba(243, 239, 231, 0.78); font-size: 0.75rem; letter-spacing: 0.11em; line-height: 1.45; text-align: center; text-transform: uppercase; }
.site-gallery-close, .site-gallery-control { display: inline-grid; min-width: 2.75rem; min-height: 2.75rem; place-items: center; border: 1px solid rgba(243, 239, 231, 0.28); background: rgba(20, 19, 18, 0.58); color: #f3efe7; cursor: pointer; }
.site-gallery-close:hover, .site-gallery-control:hover, .site-gallery-close:focus-visible, .site-gallery-control:focus-visible { border-color: #f3efe7; outline: 2px solid #b8955e; outline-offset: 3px; }
.site-gallery-close { position: absolute; z-index: 2; top: max(1rem, env(safe-area-inset-top)); right: 0; padding-inline: 0.9rem; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; }
.site-gallery-control { font-size: 1.35rem; }
.site-gallery-previous { grid-column: 1; }
.site-gallery-next { grid-column: 3; }
.site-gallery-position { position: absolute; right: 0; bottom: max(1rem, env(safe-area-inset-bottom)); left: 0; margin: 0; color: rgba(243, 239, 231, 0.62); font-size: 0.72rem; letter-spacing: 0.1em; text-align: center; }
html.is-gallery-open, body.is-gallery-open { overflow: hidden; }
body.is-gallery-open { position: fixed; width: 100%; }
@media (max-width: 48rem) {
  .site-gallery-panel { width: calc(100% - 2rem); grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem; gap: 0.5rem; }
  .site-gallery-figure img { max-height: min(70dvh, 70vh); }
}
@media (max-width: 30rem) {
  .site-gallery-panel { grid-template-columns: 1fr 1fr; align-content: center; padding-bottom: max(4rem, calc(3rem + env(safe-area-inset-bottom))); }
  .site-gallery-figure { grid-column: 1 / -1; grid-row: 1; }
  .site-gallery-previous { grid-column: 1; grid-row: 2; justify-self: start; }
  .site-gallery-next { grid-column: 2; grid-row: 2; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
  .site-gallery *, .site-gallery-trigger { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
