/* Schedule: a column per day from 720px, a day-by-day list below. */
.cms-block--schedule .cms-schedule__filter {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2);
    margin-bottom: var(--s-5);
}
.cms-block--schedule .cms-schedule__filter[hidden] { display: none; }
.cms-block--schedule .cms-schedule__chip {
    min-height: 2.75rem;
    padding: 0.4rem 1rem;
    border: 1px solid var(--c-border-strong, var(--c-border));
    border-radius: var(--r-pill);
    background: var(--c-surface);
    color: var(--c-text);
    font: inherit;
    font-size: var(--t-sm);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.cms-block--schedule .cms-schedule__chip:hover { border-color: var(--c-accent); }
.cms-block--schedule .cms-schedule__chip[aria-pressed="true"] {
    background: var(--c-accent);
    border-color: var(--c-accent);
    color: var(--c-accent-contrast);
}

.cms-block--schedule .cms-schedule__week {
    display: grid;
    gap: var(--s-5);
}
.cms-block--schedule .cms-schedule__day { min-width: 0; }
.cms-block--schedule .cms-schedule__day-title {
    margin: 0 0 var(--s-3);
    padding-bottom: var(--s-2);
    border-bottom: 2px solid var(--c-accent);
    font-size: var(--t-md);
    font-weight: var(--fw-heading);
}
.cms-block--schedule .cms-schedule__list {
    display: grid;
    gap: var(--s-3);
    margin: 0;
    padding: 0;
    list-style: none;
}
.cms-block--schedule .cms-schedule__list[hidden],
.cms-block--schedule .cms-schedule__item[hidden],
.cms-block--schedule .cms-schedule__none[hidden] { display: none; }
.cms-block--schedule .cms-schedule__item {
    display: flex;
    flex-direction: column;
    gap: var(--s-1);
    padding: var(--s-3) var(--s-4);
    border: var(--card-border);
    border-left: 3px solid var(--c-border-strong, var(--c-border));
    border-radius: var(--card-radius);
    background: var(--card-bg);
    font-size: var(--t-sm);
    line-height: var(--lh-ui);
    overflow-wrap: break-word;
    hyphens: auto;
}
.cms-block--schedule .cms-schedule__item.is-highlight {
    border-left-color: var(--c-mark);
    background: var(--c-mark-soft);
}
.cms-block--schedule .cms-schedule__time {
    display: flex;
    align-items: center;
    gap: var(--s-1);
    margin: 0;
    font-weight: 700;
    color: var(--c-accent);
    font-variant-numeric: tabular-nums;
}
.cms-block--schedule .cms-schedule__item.is-highlight .cms-schedule__time { color: var(--c-mark-text); }
.cms-block--schedule .cms-icon { width: 1em; height: 1em; flex: 0 0 auto; }
.cms-block--schedule .cms-schedule__title {
    margin: 0;
    font-size: var(--t-base);
    font-weight: var(--fw-heading);
    line-height: var(--lh-snug);
}
.cms-block--schedule .cms-schedule__title a { color: inherit; text-decoration: none; }
.cms-block--schedule .cms-schedule__title a:hover,
.cms-block--schedule .cms-schedule__title a:focus-visible { color: var(--c-link); text-decoration: underline; }
.cms-block--schedule .cms-schedule__meta {
    display: grid;
    gap: 0.15rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--c-text-muted);
}
.cms-block--schedule .cms-schedule__meta li { display: flex; align-items: flex-start; gap: var(--s-1); }
.cms-block--schedule .cms-schedule__meta .cms-icon { margin-top: 0.25em; }
.cms-block--schedule .cms-schedule__category {
    align-self: flex-start;
    margin-top: var(--s-1);
    padding: 0.1rem 0.55rem;
    border-radius: var(--r-pill);
    background: var(--c-accent-soft);
    color: var(--c-accent-hover, var(--c-accent));
    font-size: var(--t-xs);
    font-weight: 600;
}
.cms-block--schedule .cms-schedule__note { margin: 0; color: var(--c-text-muted); font-size: var(--t-xs); }
.cms-block--schedule .cms-schedule__none {
    margin: 0;
    padding: var(--s-3) var(--s-4);
    border: 1px dashed var(--c-border);
    border-radius: var(--card-radius);
    color: var(--c-text-muted);
    font-size: var(--t-sm);
}
.cms-block--schedule .cms-schedule__actions { margin-top: var(--s-6); }

@media (min-width: 45rem) {
    .cms-block--schedule .cms-schedule__scroll {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: var(--s-2);
    }
    .cms-block--schedule .cms-schedule__week {
        grid-template-columns: repeat(var(--schedule-days, 7), minmax(8.5rem, 1fr));
        gap: var(--s-3);
    }
    .cms-block--schedule .cms-schedule__day-title { font-size: var(--t-base); }
    .cms-block--schedule .cms-schedule__item { padding: var(--s-3); }
    .cms-block--schedule .cms-schedule__title { font-size: var(--t-sm); }
}
@media (max-width: 44.99rem) {
    /* phones: empty days collapse to a single line under their name */
    .cms-block--schedule .cms-schedule__day.is-empty .cms-schedule__day-title { margin-bottom: var(--s-2); }
}
@media (prefers-reduced-motion: reduce) {
    .cms-block--schedule .cms-schedule__chip { transition: none; }
}
