/* Photothèque : mêmes couleurs, caractères et liseuse que le Journal. */
.phototheque { padding-bottom: 80px; }
.phototheque-intro { max-width: 750px; color: var(--muted); }
.album-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 24px; }
.album-filters button { padding: 9px 16px; border: 1px solid var(--line); border-radius: 2px; color: var(--red-dark); background: transparent; cursor: pointer; }
.album-filters button[aria-pressed="true"] { color: white; background: var(--red-dark); }
.album-year { margin-block: 48px; scroll-margin-top: 110px; }
.album-year h2 { font: 500 3rem/1 var(--serif); color: var(--red-dark); padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.phototheque .album-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.phototheque .album-card { display: block; padding: 0; border: 1px solid var(--line); background: var(--cream); }
.album-card > a { display: block; height: 100%; font-weight: 400; text-decoration: none; }
.album-card figure { margin: 0; background: #ebe5d9; }
.album-card img { width: 100%; height: 220px; object-fit: contain; }
.album-card figcaption { padding: 6px 18px; color: var(--muted); font-size: .75rem; }
.album-card-copy { padding: 18px 22px 24px; }
.album-card h3 { margin: 0 0 12px; font: 500 1.8rem/1.15 var(--serif); color: var(--red-dark); }
.album-card .eyebrow { margin-bottom: 12px; font-size: .65rem; }
.album-card .eyebrow time { color: inherit; font-size: inherit; }
.album-venue, .album-attribution { margin: 8px 0 0; font-size: .8rem; color: var(--muted); }
.album-card a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.album-meta { color: var(--muted); }
.album-event-link { margin-block: 24px; color: var(--red-dark); }
.album-year[hidden], .album-card[hidden], .album-filters[hidden] { display: none; }
@media (max-width: 900px) { .phototheque .album-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .phototheque .album-grid { grid-template-columns: 1fr; gap: 22px; } .album-card img { height: 235px; } .album-filters button { min-height: 44px; } }
@media (max-width: 560px) {
  .phototheque .archive-years, .album-filters { flex-wrap: nowrap; overflow-x: auto; padding: 6px 2px 12px; gap: 8px; }
  .phototheque .archive-years a, .album-filters button { flex: 0 0 auto; }
  .phototheque .archive-years { margin-block: 20px; }
  .album-filters { margin-block: 14px; }
  .album-year { margin-block: 30px; }
}

.culture-lightbox figcaption { white-space: pre-line; }

/* Consolidated albums open where they are documented. */
.album-cover, .album-photo-count, .album-card-copy, .album-card-title, .album-card-copy > span { display: block; }
.album-cover { background: #ebe5d9; }
.album-photo-count { padding: 6px 18px; color: var(--muted); font-size: .75rem; }
.album-card-title { margin-bottom: 12px; font: 500 1.8rem/1.15 var(--serif); color: var(--red-dark); }
.album-inline > summary { cursor: pointer; list-style: none; }
.album-inline > summary::-webkit-details-marker { display: none; }
.album-open-label { display: block; padding: 0 22px 20px; color: var(--red-dark); font-size: .8rem; }
.album-inline[open] > summary .album-open-label { font-weight: 600; }
.phototheque .album-card:has(.album-inline[open]) { grid-column: 1 / -1; }
.album-inline[open] > summary { display: grid; grid-template-columns: 220px 1fr; }
.album-inline[open] > summary .album-open-label { grid-column: 1 / -1; padding-top: 12px; }
.heritage-album { padding: 24px; scroll-margin-top: 110px; min-width: 0; }
.heritage-album h3 { color: var(--red-dark); font: 500 1.8rem/1.2 var(--serif); margin-top: 0; }
.heritage-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.heritage-photo-grid figure { margin: 0; min-width: 0; scroll-margin-top: 110px; }
.heritage-photo-grid a { position: relative; display: block; background: var(--cream); }
.heritage-photo-grid img { width: auto; max-width: 100%; height: auto; max-height: 300px; object-fit: contain; margin-inline: auto; }
.heritage-photo-grid figcaption { padding: 12px 0; font-size: .8rem; color: var(--muted); }
.heritage-photo-grid figcaption p { margin-block: 6px; }
.ball-card > .heritage-album { border-top: 1px solid var(--line); }
@media (max-width:560px) { .heritage-photo-grid { grid-template-columns:1fr; } .heritage-album { padding:18px; } .album-inline[open] > summary { grid-template-columns:1fr; } }

.album-expanded-label { display: none; }
.album-inline[open] .album-expanded-label { display: inline; }
.album-inline[open] .album-closed-label { display: none; }
