.archive-index, .archive-body { max-width: 850px; padding-bottom: 80px; }
.archive-index h2, .archive-body h2 { color: var(--red-dark); font: 500 2.4rem/1.15 var(--serif); }
.archive-years { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0; }
.archive-years a { padding: 8px 18px; border: 1px solid var(--line); }
.archive-list { padding: 0; list-style: none; }
.archive-list li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.archive-list time { color: var(--muted); font-size: .85rem; }
.archive-list a { font-weight: 600; }
.archive-notice { padding: 24px; border-left: 3px solid var(--gold); background: var(--cream); font-size: .9rem; }
.archive-note { color: var(--muted); font-size: .85rem; }
.archive-source { margin-top: 48px; overflow-wrap: anywhere; }
.archive-source img { width: auto; max-width: 100%; max-height: 700px; object-fit: contain; margin: 22px auto; }
.archive-paragraph { margin-block: 16px; }
.archive-paragraph:empty { display: none; }
.archive-source a { color: var(--red-dark); }
.archive-related { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); }
.archive-source ul { padding-left: 22px; }
.archive-source details, .archive-index details { margin-block: 24px; }
.archive-source li { margin-block: 6px; }
.archive-source .archive-month-links { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 0; list-style: none; }
.archive-source img[src*="/calendriers/"] { max-height: none; }
.archive-photo-grid { margin-top: 40px; }
.archive-photo-grid figure { scroll-margin-top: 110px; }
.archive-photo-grid figcaption p { margin-block: 6px; }
@media (max-width: 600px) { .archive-list li { grid-template-columns: 1fr; gap: 6px; } .archive-notice { padding: 18px; } }
