.calendar-strip { padding: 9px 0 13px; border-bottom: 1px solid var(--rule); }
.calendar-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.calendar-heading h2 { font: 700 15px/1.25 var(--sans); letter-spacing: normal; }
.calendar-full { display: inline-block; padding-block: 4px; color: var(--accent); font-size: 14px; font-weight: 650; }
.calendar-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 6px 0 0; padding: 0; list-style: none; }
.calendar-items li { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: start; gap: 12px; min-width: 0; padding-inline: 13px; }
.calendar-items li + li { border-left: 1px solid var(--rule); }
.calendar-items li:first-child { padding-left: 0; }
.calendar-items li:last-child { padding-right: 0; }
.calendar-when { display: grid; gap: 2px; font: 15px/1.2 var(--sans); }
.calendar-when strong { color: var(--accent); }
.calendar-time { color: var(--muted); font-size: 13px; }
.calendar-event { font: 650 16px/1.22 var(--sans); }
.calendar-summary { margin-top: 8px; }
.calendar-summary h2 { font: 700 15px/1.25 var(--sans); letter-spacing: normal; }
.calendar-summary p { margin: 3px 0 7px; color: var(--muted); font: 14px/1.3 var(--sans); }
.calendar-summary:has(> h2) > :not(h2:nth-of-type(-n+3), h2:nth-of-type(-n+3) + p) { display: none; }

@media (max-width: 680px) {
    .calendar-items li { grid-template-columns: 1fr; gap: 5px; padding-inline: 8px; }
    .calendar-event { font-size: 14px; }
}
