.calendar-archive { max-width: 1000px; padding-bottom: 48px; }
.calendar-archive .journal-lead { margin: 0 0 12px; }
.calendar-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 32px; }
.calendar-toc a { border: 1px solid var(--line); padding: 6px 14px; color: var(--red-dark); text-decoration: none; font-size: .85rem; }
.calendar-season { margin-bottom: 32px; }
.calendar-season > header { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.calendar-season h2 { margin: 0; font: 500 2.2rem/1.2 var(--serif); color: var(--red-dark); }
.calendar-season > header a { color: var(--muted); font-size: .75rem; }
.calendar-month { display: grid; grid-template-columns: 130px minmax(0, 1fr) 70px; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.calendar-month h3 { margin: 0; color: var(--red-dark); font: 600 .86rem/1.6 var(--sans); }
.calendar-events { min-width: 0; font-size: .86rem; line-height: 1.65; overflow-wrap: anywhere; }
.calendar-events .archive-paragraph { margin: 0; }
.calendar-events ul { padding-left: 18px; margin: 2px 0 8px; }
.calendar-events li { margin: 2px 0; }
.calendar-events ul:last-child { margin-bottom: 0; }
.calendar-empty { margin: 0; color: var(--muted); font-size: .8rem; }
.calendar-thumbnails { display: flex; gap: 6px; justify-content: flex-end; align-items: flex-start; }
.calendar-thumbnails a { display: block; }
.calendar-thumbnails img { width: 28px; height: 68px; object-fit: contain; object-position: top; margin: 0; }
.calendar-introduction { margin-top: 12px; font-size: .85rem; }
.calendar-introduction summary { cursor: pointer; color: var(--muted); }
.calendar-introduction .archive-source { margin-top: 16px; }
.calendar-season, .calendar-month { scroll-margin-top: 110px; }
@media (max-width: 600px) {
  .calendar-month { grid-template-columns: minmax(0, 1fr) 70px; gap: 6px 12px; }
  .calendar-month h3 { grid-column: 1; }
  .calendar-events { grid-column: 1; }
  .calendar-thumbnails { grid-column: 2; grid-row: 1 / span 2; }
}
