.uk-sd-event-page,
.uk-sd-event-hero {
	--uk-blue: var(--ulmkolleg-sd-primary, #c7017f);
	--uk-blue-dark: var(--ulmkolleg-sd-primary-dark, #8a0058);
	--uk-orange: var(--ulmkolleg-sd-accent, #f59b00);
	--uk-teal: var(--ulmkolleg-sd-secondary, #009a9b);
	--uk-light-blue: #84cee4;
	--uk-magenta: var(--ulmkolleg-sd-primary, #c7017f);
	--uk-ink: #30343b;
	--uk-muted: #5a5a5a;
	--uk-line: #dfe7ec;
	--uk-surface: #f5f9fb;
	color: var(--uk-ink);
	font-family: Roboto, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.single-sd_cpt_event .breadcrumbs,
body.single-sd_cpt_event .breadcrumb,
body.single-sd_cpt_event .breadcrumb-trail,
body.single-sd_cpt_event .yoast-breadcrumb,
body.single-sd_cpt_event .rank-math-breadcrumb,
body.single-sd_cpt_event nav[aria-label="Breadcrumb"],
body.single-sd_cpt_event nav[aria-label="breadcrumb"] {
	display: none !important;
}

.uk-sd-event-page *,
.uk-sd-event-page *::before,
.uk-sd-event-page *::after {
	box-sizing: border-box;
}

.uk-sd-theme-detail-column {
	min-width: 0;
}

.uk-sd-theme-detail-column .uk-sd-event-page {
	width: 100%;
}

.uk-sd-event-inner {
	margin: 0 auto;
	max-width: 1217px;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	width: 100%;
}

.uk-sd-event-hero {
	background: linear-gradient(120deg, rgba(var(--ulmkolleg-sd-primary-rgb, 199, 1, 127), .2), rgba(var(--ulmkolleg-sd-primary-rgb, 199, 1, 127), .06));
	border-bottom: 5px solid var(--uk-magenta);
	margin-left: auto;
	margin-right: auto;
	max-width: 1217px;
	min-height: clamp(300px, 30vh, 360px);
	overflow: hidden;
	width: 100%;
}

.uk-sd-event-hero.has-image {
	background-image: var(--uk-event-image);
	background-position: center;
	background-size: cover;
}

.uk-sd-event-hero__overlay {
	/* Die Kategorie und der Titel beginnen unabhängig von der Titellänge immer oben. */
	align-items: flex-start;
	background: linear-gradient(90deg, rgba(var(--ulmkolleg-sd-primary-dark-rgb, 138, 0, 88), .95), rgba(var(--ulmkolleg-sd-primary-rgb, 199, 1, 127), .72) 62%, rgba(var(--ulmkolleg-sd-primary-rgb, 199, 1, 127), .2));
	color: var(--ulmkolleg-sd-hero-text, #fff);
	display: flex;
	min-height: clamp(300px, 30vh, 360px);
	padding: clamp(2.25rem, 4vw, 3.75rem) 0;
}

.uk-sd-event-labels {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: 1rem;
}

.uk-sd-event-labels span {
	background: var(--uk-orange);
	color: #fff;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .06em;
	padding: .35rem .65rem;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.uk-sd-event-labels span.is-online {
	align-items: center;
	background: var(--uk-orange);
	border-radius: 999px;
	color: #111;
	display: inline-flex;
	justify-content: center;
	min-height: 1.8rem;
	padding-left: .8rem;
	padding-right: .8rem;
	text-align: center;
}

.uk-sd-event-hero h1 {
	color: var(--ulmkolleg-sd-hero-heading, #fff);
	font-family: "Roboto Slab", Georgia, serif;
	/* Lange Kurstitel bleiben im gleichen Headerbereich, statt den Start zu verschieben. */
	font-size: clamp(2rem, 3.9vw, 3.25rem);
	font-weight: 800;
	hyphens: auto;
	line-height: 1.08;
	margin: 0;
	max-width: 980px;
	overflow-wrap: anywhere;
	text-shadow: 0 2px 5px rgba(0, 0, 0, .45);
}

.uk-sd-event-hero.is-theme-header {
	height: 100%;
	margin: 0;
	max-width: none;
	min-height: 300px;
}

.uk-sd-event-hero.is-theme-header .uk-sd-event-hero__overlay {
	height: 100%;
	min-height: 300px;
}

.uk-sd-event-subtitle {
	font-size: clamp(1rem, 2vw, 1.25rem);
	line-height: 1.6;
	margin: 1rem 0 0;
	max-width: 780px;
	overflow-wrap: anywhere;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
}

.uk-sd-event-grid {
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr);
	padding-bottom: clamp(3rem, 7vw, 6rem);
	/* Same compact side inset as the course overview. */
	padding-left: 1rem;
	padding-right: 1rem;
	/* Match the compact top spacing of the course overview on detail pages. */
	padding-top: clamp(1.5rem, 2.5vw, 2.5rem);
}

.uk-sd-event-grid.has-instructors {
	padding-bottom: 2rem;
}

.uk-sd-event-content h2,
.uk-sd-event-booking h2,
.uk-sd-event-facilitators h2,
.uk-sd-event-participants h2,
.uk-sd-event-materials h2 {
	color: var(--uk-blue);
	font-family: "Roboto Slab", Georgia, serif;
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	hyphens: auto;
	line-height: 1.25;
	margin: 0 0 1.25rem;
	overflow-wrap: anywhere;
}

.uk-sd-event-description {
	font-size: 1rem;
	line-height: 1.75;
}

.uk-sd-event-description p,
.uk-sd-event-description div {
	margin-bottom: .75rem;
}

.uk-sd-event-participants {
	background: var(--uk-surface);
	border-top: 5px solid var(--uk-teal);
	padding: 1.5rem;
}

.uk-sd-event-participants p:last-child {
	margin-bottom: 0;
}

.uk-sd-event-participants p {
	overflow-wrap: anywhere;
}

.uk-sd-event-sidebar {
	align-self: start;
	display: grid;
	gap: 1.5rem;
	position: sticky;
	top: 2rem;
}

.uk-sd-event-facilitators,
.uk-sd-event-participants,
.uk-sd-event-materials,
.uk-sd-event-booking {
	background: var(--uk-surface);
	padding: 1.5rem;
}

.uk-sd-event-facilitators {
	border-top: 5px solid var(--uk-teal);
}

.uk-sd-event-materials {
	border-top: 5px solid var(--uk-teal);
	font-size: .95rem;
	line-height: 1.65;
}

.uk-sd-event-instructors-bottom {
	padding-bottom: clamp(3rem, 7vw, 6rem);
}

.uk-sd-event-instructors-bottom .uk-sd-event-facilitators {
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

.uk-sd-event-instructors-bottom .uk-sd-event-facilitators h2 {
	color: var(--uk-blue);
	font-family: "Roboto Slab", Georgia, serif;
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 1.25rem;
}

.uk-sd-event-instructors-bottom .uk-sd-event-facilitator-list {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.uk-sd-event-booking {
	border-top: 5px solid var(--uk-orange);
}

.uk-sd-event-booking h2,
.uk-sd-event-facilitators h2,
.uk-sd-event-participants h2,
.uk-sd-event-materials h2 {
	font-size: 1.35rem;
}

.uk-sd-event-content > .uk-sd-event-booking {
	margin-top: 2rem;
}

.uk-sd-event-content > .uk-sd-event-booking .uk-sd-event-dates {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.uk-sd-event-materials p:first-of-type {
	margin-top: 0;
}

.uk-sd-event-materials p:last-child {
	margin-bottom: 0;
}

.uk-sd-event-facilitator-list {
	display: grid;
	gap: 1rem;
}

.uk-sd-event-facilitator {
	align-items: center;
	background: #fff;
	border: 1px solid var(--uk-line);
	display: grid;
	gap: .9rem;
	grid-template-columns: 76px minmax(0, 1fr);
	padding: .75rem;
}

.uk-sd-event-facilitator:not(:has(img)) {
	grid-template-columns: 1fr;
}

.uk-sd-event-facilitator img {
	aspect-ratio: 1;
	border-radius: 50%;
	height: 76px;
	margin: 0;
	object-fit: cover;
	width: 76px;
}

.uk-sd-event-facilitator strong,
.uk-sd-event-facilitator a {
	display: block;
}

.uk-sd-event-facilitator strong {
	color: var(--uk-blue);
	line-height: 1.35;
}

.uk-sd-event-facilitator a {
	color: var(--uk-teal);
	font-size: .82rem;
	font-weight: 700;
	margin-top: .35rem;
	text-decoration: none;
}

.uk-sd-event-dates {
	display: grid;
	gap: 1rem;
}

.uk-sd-event-date {
	background: #fff;
	border: 1px solid var(--uk-line);
	display: grid;
	gap: .45rem;
	padding: 1rem;
}

.uk-sd-event-date strong {
	color: var(--uk-blue);
	font-size: 1.05rem;
}

.uk-sd-event-date > span:not(.uk-sd-event-status) {
	color: var(--uk-muted);
	font-size: .88rem;
	line-height: 1.45;
}

.uk-sd-event-date .uk-sd-event-price {
	color: var(--uk-ink);
	font-weight: 800;
}

.uk-sd-event-status {
	align-items: center;
	display: inline-flex;
	font-size: .78rem;
	font-weight: 800;
	gap: .45rem;
}

.uk-sd-event-status i {
	background: var(--uk-teal);
	border-radius: 50%;
	display: inline-block;
	height: .65rem;
	width: .65rem;
}

.uk-sd-event-status.is-limited i {
	background: var(--uk-orange);
}

.uk-sd-event-status.is-wait_list i,
.uk-sd-event-status.is-fully_booked i {
	background: var(--uk-magenta);
}

.uk-sd-event-status.is-canceled i,
.uk-sd-event-status.is-cancelled i,
.uk-sd-event-status.is-unknown i {
	background: #70757a;
}

.uk-sd-booking-button {
	background: var(--uk-blue);
	color: #fff;
	display: block;
	font-weight: 800;
	margin-top: 1.25rem;
	padding: .95rem 1.2rem;
	text-align: center;
	text-decoration: none;
}

.uk-sd-booking-button:hover,
.uk-sd-booking-button:focus-visible {
	background: var(--uk-blue-dark);
	color: #fff;
}

body.uk-sd-booking-open {
	overflow: hidden;
}

.uk-sd-booking-modal[hidden] {
	display: none !important;
}

.uk-sd-booking-modal {
	align-items: center;
	background: rgba(0, 0, 0, .72);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 2vh 2.5vw;
	position: fixed;
	z-index: 999999;
}

.uk-sd-booking-dialog {
	background: #fff;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
	display: flex;
	flex-direction: column;
	height: 96vh;
	max-height: 900px;
	max-width: 1200px;
	width: 100%;
}

.uk-sd-booking-dialog__header {
	align-items: center;
	background: var(--uk-surface);
	border-bottom: 1px solid var(--uk-line);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	min-height: 64px;
	padding: .75rem 1.25rem;
}

.uk-sd-booking-dialog__header h2 {
	color: var(--uk-blue);
	font-family: "Roboto Slab", Georgia, serif;
	font-size: 1.35rem;
	margin: 0;
}

.uk-sd-booking-dialog__actions {
	align-items: center;
	display: flex;
	gap: 1rem;
}

.uk-sd-booking-dialog__actions a {
	color: var(--uk-blue);
	font-size: .9rem;
	font-weight: 700;
}

.uk-sd-booking-close {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--uk-ink);
	cursor: pointer;
	display: inline-flex;
	font-size: 2.25rem;
	height: 44px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 44px;
}

.uk-sd-booking-close:hover,
.uk-sd-booking-close:focus-visible {
	color: var(--uk-magenta);
}

.uk-sd-booking-dialog__body {
	flex: 1;
	min-height: 0;
}

.uk-sd-booking-iframe {
	border: 0;
	display: block;
	height: 100%;
	width: 100%;
}

.uk-sd-back-link {
	color: var(--uk-blue);
	display: inline-block;
	font-weight: 700;
	margin-top: 1.25rem;
	text-decoration: none;
}

.uk-sd-back-link:hover,
.uk-sd-back-link:focus-visible {
	color: var(--uk-magenta);
	text-decoration: underline;
}

.uk-sd-back-link--top {
	display: none;
}

.uk-sd-event-empty {
	margin: 3rem auto;
	max-width: 900px;
	padding: 1rem;
}

@media (max-width: 900px) {
	.uk-sd-event-grid {
		gap: 2rem;
		grid-template-columns: 1fr;
		padding-bottom: 3rem;
		padding-top: 3rem;
	}

	.uk-sd-event-sidebar {
		position: static;
	}
}

@media (min-width: 1024px) {
	/* Desktop: begin the course content almost directly below the theme header. */
	.uk-sd-event-grid {
		padding-top: 1rem;
	}

	.uk-sd-theme-detail-grid > .uk-sd-theme-detail-column {
		grid-column: span 3 / span 3;
	}
}

@media (min-width: 681px) and (max-width: 1023px) {
	.uk-sd-event-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.uk-sd-event-hero,
	.uk-sd-event-hero__overlay,
	.uk-sd-event-hero.is-theme-header,
	.uk-sd-event-hero.is-theme-header .uk-sd-event-hero__overlay {
		height: auto;
		min-height: 260px;
	}

	.uk-sd-event-hero__overlay {
		padding-bottom: 2rem;
		padding-top: 2rem;
	}

	.uk-sd-event-hero h1 {
		font-size: clamp(2.15rem, 5.5vw, 3rem);
		hyphens: none;
		overflow-wrap: break-word;
	}

	.uk-sd-event-grid {
		gap: 2rem;
		grid-template-columns: 1fr;
		padding-bottom: 3rem;
		padding-top: 3rem;
	}

	.uk-sd-event-sidebar {
		position: static;
	}
}

@media (max-width: 680px) {
	.uk-sd-back-link--top {
		align-items: center;
		background: #fff;
		border: 1px solid var(--uk-line);
		border-radius: .65rem;
		color: var(--uk-blue);
		display: inline-flex;
		font-size: .86rem;
		margin: 0 0 1.5rem;
		padding: .7rem .9rem;
	}

	.uk-sd-back-link--top:hover,
	.uk-sd-back-link--top:focus-visible {
		border-color: var(--uk-blue);
		box-shadow: 0 0 0 3px rgba(var(--ulmkolleg-sd-primary-rgb, 199, 1, 127), .14);
		text-decoration: none;
	}

	.uk-sd-booking-modal {
		align-items: stretch;
		padding: 0;
	}

	.uk-sd-booking-dialog {
		height: 100vh;
		max-height: none;
	}

	.uk-sd-booking-dialog__header {
		padding: .5rem .75rem;
	}

	.uk-sd-booking-dialog__actions {
		gap: .5rem;
	}

	.uk-sd-booking-dialog__actions a {
		font-size: .78rem;
	}

	.uk-sd-event-inner {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.uk-sd-event-hero,
	.uk-sd-event-hero__overlay {
		height: auto;
		min-height: 230px;
	}

	.uk-sd-event-hero__overlay {
		background: rgba(var(--ulmkolleg-sd-primary-dark-rgb, 138, 0, 88), .88);
		padding-bottom: 1.5rem;
		padding-top: 1.5rem;
	}

	.uk-sd-event-hero h1 {
		font-size: clamp(1.75rem, 8vw, 2.2rem);
		hyphens: none;
		line-height: 1.08;
		overflow-wrap: break-word;
	}

	.uk-sd-event-grid {
		padding-bottom: 2.5rem;
		padding-top: 1.5rem;
	}

	.uk-sd-event-date {
		gap: .35rem;
		padding: .85rem;
	}

	.uk-sd-event-participants,
	.uk-sd-event-materials,
	.uk-sd-event-booking,
	.uk-sd-event-instructors-bottom .uk-sd-event-facilitators {
		padding: 1.1rem;
	}
}
