:root {
	--ces-color-primary: #155eef;
	--ces-color-primary-contrast: #ffffff;
	--ces-color-text: #172b4d;
	--ces-color-muted: #5e6c84;
	--ces-color-border: #dfe1e6;
	--ces-color-surface: #ffffff;
	--ces-color-soft: #f4f5f7;
	--ces-color-open: #087443;
	--ces-color-alert: #a54800;
	--ces-color-danger: #b42318;
	--ces-radius: 0.5rem;
	--ces-space: 1rem;
	--ces-shadow: 0 0.125rem 0.5rem rgb(9 30 66 / 12%);
}
.ces { box-sizing: border-box; color: var(--ces-color-text); }
.ces *, .ces *::before, .ces *::after { box-sizing: inherit; }
.ces-table-wrap { overflow-x: auto; }
.ces-table { border-collapse: collapse; inline-size: 100%; min-inline-size: 42rem; }
.ces-table th, .ces-table td { border-block-end: 0.0625rem solid var(--ces-color-border); padding: calc(var(--ces-space) * .75); text-align: start; }
.ces-cards { display: grid; gap: var(--ces-space); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.ces-card { background: var(--ces-color-surface); border: 0.0625rem solid var(--ces-color-border); border-radius: var(--ces-radius); box-shadow: var(--ces-shadow); padding: var(--ces-space); }
.ces-card__title { margin-block: calc(var(--ces-space) * .5); }
.ces-button { background: var(--ces-color-primary); border-radius: var(--ces-radius); color: var(--ces-color-primary-contrast); display: inline-block; padding: calc(var(--ces-space) * .55) var(--ces-space); text-decoration: none; }
.ces-button:focus-visible, .ces-accordion__toggle:focus-visible, .ces-table-wrap:focus-visible { outline: 0.1875rem solid var(--ces-color-primary); outline-offset: 0.1875rem; }
.ces-status { color: var(--ces-color-muted); font-size: .875em; font-weight: 700; }
.ces-status--open { color: var(--ces-color-open); }
.ces-status--closing-soon { color: var(--ces-color-alert); }
.ces-status--full, .ces-status--cancelled { color: var(--ces-color-danger); }
.ces-timeline { border-inline-start: 0.125rem solid var(--ces-color-primary); list-style: none; margin-inline-start: .5rem; padding-inline-start: calc(var(--ces-space) * 1.5); }
.ces-timeline__item { margin-block-end: calc(var(--ces-space) * 1.5); position: relative; }
.ces-timeline__item::before { background: var(--ces-color-primary); border-radius: 50%; content: ''; inline-size: .75rem; block-size: .75rem; inset-inline-start: calc(var(--ces-space) * -1.94); position: absolute; inset-block-start: .35rem; }
.ces-accordion__item { border-block-end: .0625rem solid var(--ces-color-border); }
.ces-accordion__item h3 { margin: 0; }
.ces-accordion__toggle { align-items: center; background: var(--ces-color-surface); border: 0; color: inherit; cursor: pointer; display: flex; font: inherit; font-weight: 700; inline-size: 100%; justify-content: space-between; padding: var(--ces-space); text-align: start; }
.ces-accordion__panel { background: var(--ces-color-soft); padding: var(--ces-space); }
.ces-calendar { display: grid; gap: var(--ces-space); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.ces-calendar__month { border: .0625rem solid var(--ces-color-border); border-radius: var(--ces-radius); padding: var(--ces-space); }
.ces-calendar__events { list-style: none; margin: 0; padding: 0; }
.ces-calendar__events li { border-block-start: .0625rem solid var(--ces-color-border); display: grid; gap: .25rem; padding-block: .75rem; }
.ces-calendar__events small { color: var(--ces-color-muted); }
.ces-countdown { font-size: clamp(1.5rem, 4vw, 3rem); font-variant-numeric: tabular-nums; font-weight: 700; }
.ces-pagination { align-items: center; display: flex; flex-wrap: wrap; gap: calc(var(--ces-space) * .5); justify-content: center; margin-block-start: var(--ces-space); }
.ces-pagination__page { background: var(--ces-color-surface); border: .0625rem solid var(--ces-color-border); border-radius: var(--ces-radius); color: var(--ces-color-text); cursor: pointer; font: inherit; min-inline-size: 2.25rem; padding: calc(var(--ces-space) * .35) calc(var(--ces-space) * .6); }
.ces-pagination__page:hover { border-color: var(--ces-color-primary); }
.ces-pagination__page.is-active { background: var(--ces-color-primary); border-color: var(--ces-color-primary); color: var(--ces-color-primary-contrast); }
.ces-pagination__page:focus-visible, .ces-pagination__load-more:focus-visible { outline: 0.1875rem solid var(--ces-color-primary); outline-offset: 0.1875rem; }
.ces-pagination__load-more { background: var(--ces-color-primary); border: 0; border-radius: var(--ces-radius); color: var(--ces-color-primary-contrast); cursor: pointer; font: inherit; padding: calc(var(--ces-space) * .55) var(--ces-space); }
.ces-pagination__load-more:hover, .ces-pagination__load-more:focus { filter: brightness(0.92); }
.ces-event-description { color: var(--ces-color-muted); }
.ces-table .ces-event-description { display: block; font-weight: 400; margin-block-start: .25rem; }
.ces-hide-title .ces-event-title, .ces-hide-title .ces-accordion__toggle > span { display: none; }
.ces-hide-description .ces-event-description { display: none; }
.ces-hide-date .ces-event-date { display: none; }
.ces-hide-time .ces-event-time, .ces-hide-time .ces-countdown { display: none; }
.ces-hide-location .ces-event-location { display: none; }
.ces-hide-status .ces-status, .ces-hide-status .ces-event-status { display: none; }
.ces-hide-seats .ces-event-seats { display: none; }
.ces-hide-registration .ces-button, .ces-hide-registration .ces-table td:last-child { display: none; }
.ces-hide-title .ces-table tr > :nth-child(1), .ces-hide-location .ces-table tr > :nth-child(3), .ces-hide-status .ces-table tr > :nth-child(4), .ces-hide-registration .ces-table tr > :nth-child(5) { display: none; }
@media (prefers-reduced-motion: reduce) { .ces * { scroll-behavior: auto; } }
