.stks-events,
.stks-home-cards,
.stks-event-single,
.stks-event-document,
.stks-endpoint-page {
	--stks-accent: #2271b1;
	--stks-border: color-mix(in srgb, currentColor 16%, transparent);
}

.stks-events {
	display: grid;
	gap: clamp(18px, 3vw, 30px);
}

.stks-events__filters {
	display: grid;
	grid-template-columns: minmax(220px, 1.4fr) minmax(180px, 0.8fr);
	gap: 16px 20px;
	padding: clamp(16px, 2.5vw, 24px);
	border: 1px solid var(--stks-border);
	border-radius: 8px;
	background: color-mix(in srgb, var(--stks-accent) 5%, #fff);
}

.stks-events__filter-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 700;
}

.stks-events__filter-field input,
.stks-events__filter-field select {
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 8px 11px;
	border: 1px solid color-mix(in srgb, currentColor 32%, transparent);
	border-radius: 4px;
	background: #fff;
	color: inherit;
	font: inherit;
}

.stks-events__filters--with-year {
	grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, 0.7fr));
}

.stks-events__filter-field input:focus,
.stks-events__filter-field select:focus {
	border-color: var(--stks-accent);
	outline: 3px solid color-mix(in srgb, var(--stks-accent) 22%, transparent);
	outline-offset: 1px;
}

.stks-events__future-toggle {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 700;
}

.stks-events__future-toggle input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--stks-accent);
}

.stks-events__filter-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
}

.stks-events__filter-actions .stks-button {
	cursor: pointer;
	font: inherit;
}

.stks-events__section {
	display: grid;
	gap: 14px;
}

.stks-events__section--past {
	margin-top: clamp(6px, 1vw, 12px);
}

.stks-events__heading {
	margin: 0;
	color: inherit;
	font-size: clamp(1.3rem, 2.5vw, 1.75rem);
	line-height: 1.25;
}

.stks-events__list {
	display: grid;
	gap: clamp(18px, 3vw, 30px);
}

.stks-sc-cards__list {
	--stks-sc-card-count: 3;
	grid-template-columns: repeat(var(--stks-sc-card-count), minmax(0, 1fr));
}

.stks-sc-cards__list--count-1 {
	--stks-sc-card-count: 1;
}

.stks-sc-cards__list--count-2 {
	--stks-sc-card-count: 2;
}

.stks-sc-cards .stks-event-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.stks-sc-cards .stks-event-card__image img {
	height: clamp(170px, 18vw, 240px);
}

.stks-sc-cards .stks-event-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	overflow-wrap: anywhere;
}

.stks-sc-cards .stks-event-card__actions {
	margin-top: auto;
	padding-top: 20px;
}

.stks-events__list--past {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stks-events__list--past > :only-child {
	grid-column: 1 / -1;
}

.stks-events__list--past > :only-child .stks-event-card__image img {
	height: clamp(190px, 34vw, 340px);
}

.stks-event-card--past .stks-event-card__image img {
	height: clamp(160px, 18vw, 220px);
}

.stks-event-card--past .stks-event-card__body {
	padding: clamp(16px, 2.5vw, 24px);
}

.stks-home-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(18px, 2.5vw, 28px);
}

.stks-event-card {
	overflow: hidden;
	border: 1px solid var(--stks-border);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.stks-home-card {
	display: flex;
	flex-direction: column;
}

.stks-home-card .stks-event-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.stks-home-card .stks-event-card__actions {
	margin-top: auto;
	padding-top: 20px;
}

.stks-event-card__image {
	display: block;
	overflow: hidden;
	background: #f4f4f4;
}

.stks-event-card__image img {
	display: block;
	width: 100%;
	height: clamp(190px, 34vw, 340px);
	object-fit: cover;
}

.stks-home-card .stks-event-card__image img {
	height: clamp(185px, 20vw, 240px);
}

.stks-event-card__body {
	padding: clamp(18px, 3vw, 28px);
}

.stks-event-card__date,
.stks-event-single__date {
	margin: 0 0 8px;
	color: var(--stks-accent);
	font-weight: 700;
}

.stks-event-card__eyebrow {
	margin: 0 0 6px;
	color: var(--stks-accent);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.stks-event-card__title {
	margin: 0 0 10px;
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	line-height: 1.25;
}

.stks-event-card__title a {
	color: inherit;
	text-decoration: none;
}

.stks-event-card__title a:hover,
.stks-event-card__title a:focus-visible {
	color: var(--stks-accent);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.stks-event-card__location,
.stks-event-single__location {
	margin: 0 0 14px;
}

.stks-event-card__excerpt > :last-child {
	margin-bottom: 0;
}

.stks-event-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.stks-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 16px;
	border: 2px solid var(--stks-accent);
	border-radius: 4px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.stks-button--primary {
	background: var(--stks-accent);
	color: #fff;
}

.stks-button--secondary {
	background: transparent;
	color: var(--stks-accent);
}

.stks-button:hover,
.stks-button:focus-visible {
	transform: translateY(-1px);
	filter: brightness(0.92);
}

.stks-button--primary:hover,
.stks-button--primary:focus-visible {
	color: #fff;
}

.stks-button:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--stks-accent) 35%, transparent);
	outline-offset: 3px;
}

.stks-events__empty {
	margin: 0;
	padding: 18px 20px;
	border-left: 4px solid var(--stks-accent);
	background: color-mix(in srgb, var(--stks-accent) 7%, #fff);
}

.stks-event-single {
	margin-bottom: 28px;
	padding: 18px 20px;
	border-left: 4px solid var(--stks-accent);
	border-radius: 0 8px 8px 0;
	background: color-mix(in srgb, var(--stks-accent) 6%, #fff);
	overflow: hidden;
}

.stks-event-single > :last-child {
	margin-bottom: 0;
}

.stks-event-single__image {
	margin: -18px -20px 22px;
	background: #f4f4f4;
}

.stks-event-single__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1.9 / 1;
	object-fit: cover;
}

.stks-event-single__intro {
	margin-top: 22px;
	font-size: 1.05em;
	line-height: 1.65;
}

.stks-event-single__intro > :last-child {
	margin-bottom: 0;
}

.stks-event-summary,
.stks-event-roles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 14px 24px;
	margin: 0;
}

.stks-event-summary > div,
.stks-event-roles > div {
	min-width: 0;
}

.stks-event-summary dt,
.stks-event-roles dt {
	margin: 0 0 3px;
	color: var(--stks-accent);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.stks-event-summary dd,
.stks-event-roles dd {
	margin: 0;
}

.stks-event-document {
	display: grid;
	gap: clamp(24px, 3.5vw, 34px);
	margin-top: clamp(28px, 4vw, 46px);
}

.stks-event-section {
	padding-bottom: 0;
}

.stks-event-section:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.stks-event-section h2 {
	margin: 0 0 10px;
	color: var(--stks-accent);
	font-size: clamp(1.25rem, 2.4vw, 1.7rem);
}

.stks-event-section p {
	margin: 0 0 0.8em;
	line-height: 1.5;
}

.stks-event-section > :last-child {
	margin-bottom: 0;
}

.stks-endpoint-page {
	display: grid;
	gap: 18px;
}

.stks-endpoint-page h2,
.stks-endpoint-page p {
	margin: 0;
}

.stks-endpoint-page__date,
.stks-participants-page__count {
	color: color-mix(in srgb, currentColor 78%, transparent);
}

.stks-registration-page__form {
	padding: clamp(16px, 3vw, 28px);
	border: 1px solid var(--stks-border);
	border-radius: 8px;
	background: #fff;
}

.stks-participant-groups {
	display: grid;
	gap: 24px;
}

.stks-participant-group {
	display: grid;
	gap: 10px;
}

.stks-participant-group h3 {
	margin: 0;
	color: var(--stks-accent);
}

.stks-table-scroll {
	overflow-x: auto;
	border: 1px solid var(--stks-border);
	border-radius: 8px;
	background: #fff;
}

.stks-participants-table {
	width: 100%;
	min-width: 680px;
	border: 0;
	border-collapse: collapse;
	table-layout: fixed;
}

.stks-participants-table th,
.stks-participants-table td {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--stks-border);
	text-align: left;
	vertical-align: top;
}

.stks-participants-table th {
	background: color-mix(in srgb, var(--stks-accent) 8%, #fff);
	color: inherit;
	font-size: 0.82rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.stks-participants-table tbody tr:last-child td {
	border-bottom: 0;
}

@media (min-width: 601px) {
	.stks-participants-table th:nth-child(1),
	.stks-participants-table td:nth-child(1) {
		width: 13%;
	}

	.stks-participants-table th:nth-child(2),
	.stks-participants-table td:nth-child(2) {
		width: 24%;
		overflow-wrap: anywhere;
	}

	.stks-participants-table th:nth-child(3),
	.stks-participants-table td:nth-child(3) {
		width: 25%;
		overflow-wrap: anywhere;
	}

	.stks-participants-table th:nth-child(4),
	.stks-participants-table td:nth-child(4) {
		width: 22%;
		overflow-wrap: anywhere;
	}

	.stks-participants-table th:nth-child(5),
	.stks-participants-table td:nth-child(5) {
		width: 16%;
		overflow-wrap: anywhere;
	}
}

.stks-start-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 3.4rem;
	min-height: 2rem;
	padding: 0.25rem 0.45rem;
	border: 2px solid #231F20;
	border-radius: 5px;
	background: #f0f0f1;
	color: #231F20;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	line-height: 1;
	text-align: center;
}

.stks-start-number--utv {
	background: var(--stks-class-utv-background, #F58220);
	color: var(--stks-class-utv-text, #231F20);
}

.stks-start-number--tt {
	background: var(--stks-class-tt-background, #0FA14A);
	color: var(--stks-class-tt-text, #231F20);
}

.stks-start-number--original {
	background: var(--stks-class-original-background, #223F99);
	color: var(--stks-class-original-text, #231F20);
}

.stks-start-number--standard {
	background: var(--stks-class-standard-background, #FFFFFF);
	color: var(--stks-class-standard-text, #231F20);
}

.stks-start-number--modified {
	background: var(--stks-class-modified-background, #FFDC01);
	color: var(--stks-class-modified-text, #231F20);
}

.stks-start-number--promodified {
	background: var(--stks-class-promodified-background, #231F20);
	color: var(--stks-class-promodified-text, #FFFFFF);
}

.stks-start-number--prototype {
	background: var(--stks-class-prototype-background, #EE1D23);
	color: var(--stks-class-prototype-text, #231F20);
}

.stks-start-number--fun {
	background: var(--stks-class-fun-background, #EC008C);
	color: var(--stks-class-fun-text, #231F20);
}

.stks-program {
	display: grid;
	gap: 6px;
}

.stks-program__row {
	display: grid;
	grid-template-columns: minmax(7.8rem, auto) minmax(0, 1fr);
	gap: 14px;
	align-items: baseline;
	line-height: 1.45;
}

.stks-program__time {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}

.stks-program__day {
	margin: 16px 0 2px;
	font-size: 1rem;
	letter-spacing: 0.04em;
}

.stks-program__day:first-child {
	margin-top: 0;
}

.stks-program__note {
	margin: 2px 0 !important;
}

.stks-program__awards {
	margin-top: 16px;
}

@media (max-width: 600px) {
	.stks-events__filters,
	.stks-events__list--past,
	.stks-sc-cards__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.stks-events__list--past > :only-child {
		grid-column: auto;
	}

	.stks-events__filter-actions {
		display: grid;
		justify-content: stretch;
	}

	.stks-event-card__actions {
		display: grid;
	}

	.stks-button {
		width: 100%;
	}

	.stks-program__row {
		grid-template-columns: 7rem minmax(0, 1fr);
		gap: 10px;
	}

	.stks-table-scroll {
		overflow: visible;
		border: 0;
		background: transparent;
	}

	.stks-participants-table {
		display: block;
		min-width: 0;
	}

	.stks-participants-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.stks-participants-table tbody,
	.stks-participants-table tr,
	.stks-participants-table td {
		display: block;
	}

	.stks-participants-table tbody {
		display: grid;
		gap: 14px;
	}

	.stks-participants-table tr {
		padding: 12px 14px;
		border: 1px solid var(--stks-border);
		border-radius: 8px;
		background: #fff;
	}

	.stks-participants-table td {
		display: grid;
		grid-template-columns: minmax(7.5rem, 0.42fr) minmax(0, 1fr);
		gap: 10px;
		padding: 7px 0;
		border-bottom: 1px solid var(--stks-border);
	}

	.stks-participants-table tbody tr:last-child td {
		border-bottom: 1px solid var(--stks-border);
	}

	.stks-participants-table tr td:last-child {
		border-bottom: 0;
	}

	.stks-participants-table td::before {
		content: attr(data-label);
		font-weight: 700;
	}
}

@media (prefers-reduced-motion: reduce) {
	.stks-button {
		transition: none;
	}
}
