.tkd-training-schedule {
	--tkd-schedule-blue: var(--wp--preset--color--buttons-background, var(--buttons-background-color, #005a9a));
	--tkd-schedule-line: var(--wp--preset--color--border, #e1e1e3);
	--tkd-schedule-muted: #515761;
	padding: 0;
	margin-block: 2em;
}

.tkd-training-schedule [hidden] {
	display: none !important;
}

.tkd-training-schedule .tkd-training-schedule__label {
	margin: 0 0 0.6em;
	color: var(--tkd-schedule-blue);
	font-size: 0.8em;
	font-weight: 700;
	line-height: 1.4;
}

.tkd-training-schedule .tkd-training-schedule__status {
	margin-block: 0.8em;
}

.tkd-training-schedule .tkd-training-schedule__notice {
	background: var(--wp--preset--color--light-background, #f1f1f3);
	padding: 0.6em 0.9em;
	margin-block-end: 1.2em;
}

.tkd-training-schedule .tkd-training-schedule__notice p {
	margin: 0;
	white-space: pre-line;
}

.tkd-training-schedule .tkd-training-schedule__overview {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1em 2.7em;
	overflow-wrap: anywhere;
}

.tkd-training-schedule .tkd-training-schedule__meta,
.tkd-training-schedule .tkd-training-schedule__time {
	display: block;
	color: var(--tkd-schedule-muted);
	font-size: 0.78em;
}

.tkd-training-schedule .tkd-training-schedule__meta {
	margin: 0;
}

.tkd-training-schedule .tkd-training-schedule__name {
	margin: 0 0 0.15em;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.3;
}

.tkd-training-schedule .tkd-training-schedule__first .tkd-training-schedule__name {
	font-size: clamp(25px, 3.4vw, 39px);
	line-height: 1.14;
	margin-block-end: 0.42em;
}

.tkd-training-schedule .tkd-training-schedule__first .tkd-training-schedule__time {
	color: inherit;
	font-size: 0.95em;
	font-weight: 600;
	margin-block-end: 0.2em;
}

.tkd-training-schedule .tkd-training-schedule__places {
	margin: 0;
	color: var(--tkd-schedule-muted);
	font-size: 0.78em;
	font-weight: 700;
}

.tkd-training-schedule .tkd-training-schedule__first .tkd-training-schedule__places {
	margin-block-start: 0.9em;
}

.tkd-training-schedule .tkd-training-schedule__places[data-places="available"] {
	color: #1e5e3c;
}

.tkd-training-schedule .tkd-training-schedule__places[data-places="low"] {
	color: #855015;
}

.tkd-training-schedule .tkd-training-schedule__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tkd-training-schedule .tkd-training-schedule__list li {
	margin: 0;
	padding: 0;
	border-block-start: 1px solid var(--tkd-schedule-line);
}

.tkd-training-schedule a.tkd-training-schedule__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 9em) auto;
	align-items: center;
	gap: 0.15em 0.6em;
	min-height: 44px;
	padding-block: 0.45em;
	color: inherit;
	text-decoration: none;
}

.tkd-training-schedule .tkd-training-schedule__row:hover .tkd-training-schedule__name {
	text-decoration: underline;
}

.tkd-training-schedule .tkd-training-schedule__arrow {
	grid-column: -2 / -1;
	color: var(--tkd-schedule-blue);
}

.tkd-training-schedule a:is(.tkd-training-schedule__details, .tkd-training-schedule__calendar) {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--tkd-schedule-blue);
	font-size: 0.86em;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.tkd-training-schedule .tkd-training-schedule__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.25em 1em;
	padding-block-start: 0.8em;
	margin-block-start: 0.85em;
	border-block-start: 1px solid var(--tkd-schedule-line);
}

.tkd-training-schedule .tkd-training-schedule__actions .wp-block-button {
	margin: 0;
}

.tkd-training-schedule .tkd-training-schedule__actions .tkd-training-schedule__app {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	box-sizing: border-box;
	min-height: 44px;
	border-radius: 3px;
	background-color: var(--tkd-schedule-app-background, var(--wp--preset--color--accent, var(--accent-color, #d10a11)));
	color: var(--tkd-schedule-app-text, var(--wp--preset--color--buttons-text, #fff));
	font-size: var(--wp--preset--font-size--small, 16px);
	font-weight: 600;
}

.tkd-training-schedule a:focus-visible {
	outline: 2px solid var(--tkd-schedule-blue);
	outline-offset: 3px;
}

@media (min-width: 800px) {
	.tkd-training-schedule .tkd-training-schedule__overview {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}
}

@media (max-width: 510px) {
	.tkd-training-schedule a.tkd-training-schedule__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.tkd-training-schedule .tkd-training-schedule__arrow {
		grid-row: 1 / 3;
	}

	.tkd-training-schedule .tkd-training-schedule__actions .tkd-training-schedule__app {
		padding: 0.7em 0.95em;
	}
}
