/* All additions are confined to the exhibition photography page. */
.exhibition-photo-page figure { margin: 0; }
.exhibition-photo-page figure a { display: block; background: var(--ivory); }
.exhibition-photo-page figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.exhibition-photo-page figure a:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.exhibition-photo-page figcaption { padding: 1rem 0; color: var(--muted); font-size: .9rem; line-height: 1.6; }
.exhibition-photo-page .photo-featured figcaption span { display: block; color: var(--red); letter-spacing: .08em; margin-bottom: .35rem; }
.exhibition-photo-page .photo-group-links { display: flex; flex-wrap: wrap; gap: 1.5rem; border-block: 1px solid var(--line); padding: 1rem 0; margin: 2rem 0 3rem; }
.exhibition-photo-page .photo-group-links a { color: var(--red); }
.exhibition-photo-page .photo-collection { margin-bottom: 3rem; scroll-margin-top: 1.5rem; }
.exhibition-photo-page .photo-collection h2 { color: var(--ink); }
.exhibition-photo-page .photo-collection > p { color: var(--muted); margin-bottom: 1.5rem; }
.exhibition-photo-page .photo-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 2rem; align-items: start; }
.exhibition-photo-page .photo-grid figure { border-bottom: 1px solid var(--line); }
.exhibition-photo-page .photo-portrait { grid-column: span 4; }
.exhibition-photo-page .photo-portrait a { aspect-ratio: 3 / 4; }
.exhibition-photo-page .photo-portrait img { height: 100%; }
.exhibition-photo-page .photo-landscape { grid-column: span 6; }
.exhibition-photo-page .photo-panorama { grid-column: 1 / -1; }
.exhibition-photo-page .photo-layout-item { display: contents; }
.exhibition-photo-page .photo-balanced-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; align-items: start; }
.exhibition-photo-page .photo-balanced-row figure { grid-column: auto; }
@media (min-width: 1001px) {
    .exhibition-photo-page #opening-remarks .photo-portrait { grid-column: span 3; }
}
.exhibition-photo-page .photo-schedule-archive { margin: 3rem 0; border-block: 1px solid var(--line); }
.exhibition-photo-page .photo-schedule-archive summary { padding: 1.25rem 0; color: var(--red); cursor: pointer; font-size: 1.15rem; }
.exhibition-photo-page .photo-schedule-archive summary:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.exhibition-photo-page .photo-schedule-archive .schedule-timeline { padding: 1rem 0; }
.exhibition-photo-page .photo-schedule-archive h2 { font-size: 1.25rem; }
.exhibition-photo-page .photo-return { margin: 3rem 0; }
.exhibition-photo-page .photo-lightbox { border: 0; padding: 1rem; width: min(1200px,96vw); max-width: 96vw; max-height: 96vh; background: var(--ink); color: var(--paper); }
.exhibition-photo-page .photo-lightbox::backdrop { background: rgba(26,24,21,.92); }
.exhibition-photo-page .photo-lightbox-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; }
.exhibition-photo-page .photo-lightbox button { border: 0; background: transparent; color: var(--paper); min-width: 44px; min-height: 44px; font-size: 2rem; }
.exhibition-photo-page .photo-lightbox button:focus-visible { outline: 2px solid var(--paper); }
.exhibition-photo-page .photo-lightbox-stage { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .5rem; }
.exhibition-photo-page .photo-lightbox-stage img { width: 100%; height: min(72vh,800px); object-fit: contain; }
.exhibition-photo-page .photo-lightbox-panel > p { text-align: center; margin: 1rem 0 .25rem; }
@media (min-width: 601px) and (max-width: 1000px) { .exhibition-photo-page .photo-portrait { grid-column: span 6; } }
@media (max-width: 600px) {
    .exhibition-photo-page .photo-balanced-row { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .exhibition-photo-page .photo-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
    .exhibition-photo-page .photo-grid figure { grid-column: 1; }
    .exhibition-photo-page .photo-lightbox { padding: .5rem; }
    .exhibition-photo-page .photo-lightbox-stage { gap: 0; }
}
