/* Gallery and annuals only. PDFs load solely when a visitor follows a PDF link. */
.annual-introduction { max-width: 780px; }
.annual-library { margin-top: 52px; border-top: 2px solid var(--red); padding-top: 28px; }
.annual-library-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 28px; }
.annual-library-heading h2 { font-size: 2rem; }
.annual-library-heading p, .annual-card-meta, .annual-meta, .annual-help { color: var(--muted); font: .875rem/1.65 var(--sans); }
.annual-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 36px 24px; padding: 0; margin: 0; list-style: none; }
.annual-card { display: flex; flex-direction: column; height: 100%; text-decoration: none; }
.annual-card-cover { display: flex; align-items: center; justify-content: center; height: 275px; padding: 18px; background: #eee8dc; border: 1px solid var(--line); }
.annual-card-cover img { height: 100%; width: 100%; object-fit: contain; }
.annual-card-year { font-size: 1.8rem; line-height: 1.3; margin-top: 14px; }
.annual-card-title { color: var(--red); }
.annual-card:hover .annual-card-title { text-decoration: underline; }
.annual-card:hover .annual-card-cover { border-color: var(--red); }
.annual-card-meta { margin-top: 5px; }
.annual-detail { display: grid; grid-template-columns: minmax(0,320px) minmax(0,1fr); gap: 56px; align-items: start; }
.annual-cover { padding: 20px; background: #eee8dc; border: 1px solid var(--line); }
.annual-cover img { width: 100%; max-height: 450px; object-fit: contain; }
.annual-information { padding-top: 12px; }
.annual-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin: 22px 0; }
.annual-open { display: inline-block; padding: 13px 20px; background: var(--red); color: var(--white); font: 1rem/1.5 var(--sans); text-decoration: none; }
.annual-open:hover { color: var(--white); background: var(--ink); }
.annual-download { display: inline-block; padding-block: 12px; color: var(--red); font: .95rem/1.5 var(--sans); }
.annual-supplement { border-top: 1px solid var(--line); margin-top: 36px; padding-top: 26px; }
.annual-supplement h2 { font-size: 1.55rem; margin-bottom: 14px; }
.gallery-feature { display: grid; grid-template-columns: 180px 1fr; gap: 40px; align-items: center; padding: 28px; background: var(--white); border-top: 3px solid var(--red); margin-bottom: 30px; }
.gallery-feature img { width: 180px; height: 235px; object-fit: contain; }
.gallery-feature h2 { margin: 12px 0 20px; font-size: 2rem; color: var(--red); }
.gallery-destinations .history-entry h2 { font-size: 1.65rem; }
@media (max-width: 1000px) {
 .annual-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .annual-card-cover { height: 245px; padding: 12px; }
 .annual-detail { grid-template-columns: minmax(0,240px) minmax(0,1fr); gap: 30px; }
}
@media (max-width: 700px) {
 .annual-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 16px; }
 .annual-library-heading { display: block; }
 .annual-library-heading p { margin-top: 12px; }
 .annual-detail { grid-template-columns: 1fr; gap: 24px; }
 .annual-cover { max-width: 230px; width: 100%; margin-inline: auto !important; }
 .annual-information { padding-top: 0; }
 .gallery-feature { grid-template-columns: 1fr; padding: 24px; gap: 24px; }
 .gallery-feature img { margin-inline: auto; }
}
@media (max-width: 420px) {
 .annual-card-cover { height: 205px; padding: 10px; }
 .annual-card-year { font-size: 1.6rem; }
 .annual-card-title { font-size: 1rem; }
}
@media print {
 .annual-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
 .annual-card { break-inside: avoid; }
 .annual-card-cover { height: 45mm; padding: 3mm; }
 .annual-card-year { font-size: 16pt; }
 .annual-detail { grid-template-columns: 45mm 1fr; gap: 10mm; }
 .annual-cover { padding: 3mm; }
 .annual-cover img { max-height: 65mm; }
 .annual-open { color: black; background: none; border: 1px solid #999; padding: 6px; }
 .annual-download { display: none; }
 .annual-help { display: none; }
 .annual-supplement, .gallery-feature { break-inside: avoid; }
}
