.sw-holy { min-width: 0; max-width: 100%; }
.sw-holy .event-year { margin-block: 1.5rem; min-width: 0; max-width: 100%; }
.sw-holy .event-year-title { margin-block-end: .75rem; }
.sw-holy .event-table-scroll { overflow-x: auto; min-width: 0; max-width: 100%; contain: inline-size; }
.sw-holy .event-list { border-collapse: collapse; width: 100%; }
.sw-holy .event-list th,
.sw-holy .event-list td { padding: .75rem; text-align: start; vertical-align: top; border-bottom: 1px solid #ccc; }
.sw-holy .event-date { width: 1%; min-width: var(--event-date-min-width, 110px); white-space: var(--event-date-white-space, nowrap); font-variant-numeric: tabular-nums; }
.sw-holy .event-location { min-width: var(--event-location-min-width, 140px); white-space: var(--event-location-white-space, nowrap); }
.sw-holy .event-title { min-width: var(--event-title-min-width, 240px); white-space: var(--event-title-white-space, pre-line); overflow-wrap: anywhere; }
/* Collapse template whitespace around the span; preserve line breaks only in the actual title. */
.sw-holy td.event-title { white-space: normal; }
.sw-holy .event-title-text { white-space: var(--event-title-white-space, pre-line); }
.sw-holy .event-document { min-width: var(--event-announcement-min-width, 140px); white-space: var(--event-announcement-white-space, nowrap); }
.sw-holy .event-actions { display: flex; flex-direction: column; gap: .45rem; }
.sw-holy .event-action { display: inline-flex; align-items: baseline; gap: .35em; }
.sw-holy .event-action > span { overflow-wrap: anywhere; }
.sw-holy .event-icon { flex: 0 0 auto; width: auto; max-width: none; object-fit: contain; align-self: flex-start; margin-top: .2em; }
.sw-holy .event-calendar { font-size: .875em; }
.sw-holy .event-past { background: #f1f1f1; color: #595959; }
.sw-holy .event-past a { color: #505050; text-decoration: underline; }
.sw-holy a:focus-visible,
.sw-holy .event-table-scroll:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.sw-holy .event-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 40rem) {
    .sw-holy .event-list th,
    .sw-holy .event-list td { padding: .5rem; }
}
