.gallery-page { padding-top: 64px; }
.gallery-hero { position: relative; width: 100%; background: #661028; }
.gallery-hero img { display: block; width: 100%; height: auto; }
.gallery-content { width: 100%; padding: 48px 24px 80px; text-align: center; }
.gallery-empty { margin: 20px 0; font-size: 1.1rem; color: var(--text-muted); }
.gallery-empty[hidden] { display: none; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; align-items: start; }
.gallery-photo { border: 0; padding: 0; background: transparent; cursor: pointer; }
.gallery-photo img { display: block; width: 100%; height: auto; object-fit: cover; }
.gallery-photo:nth-child(even) { margin-top: 26px; }
.gallery-photo:focus-visible, .gallery-viewer button:focus-visible { outline: 2px solid #d8ad80; outline-offset: 3px; }
.gallery-viewer { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 56px 12px; border: 0; background: rgba(32, 12, 18, .96); color: white; }
.gallery-viewer[open] { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; }
.gallery-viewer::backdrop { background: rgba(0, 0, 0, .6); }
.gallery-full-image { display: block; width: 100%; max-height: calc(100vh - 112px); object-fit: contain; }
.gallery-viewer button { border: 0; background: transparent; color: white; font: 36px/1 Georgia, serif; min-width: 44px; min-height: 44px; cursor: pointer; }
.gallery-viewer button[hidden] { display: none; }
.gallery-close { position: absolute; right: 16px; top: 12px; }
.gallery-full-image { grid-column: 2; }
.gallery-previous { grid-column: 1; grid-row: 1; }
.gallery-next { grid-column: 3; grid-row: 1; }
