/* PermaZwerg Kurstermine */
.pz-kt {
	--pz-akzent: #76bc20;
	--pz-akzent-dunkel: color-mix(in srgb, var(--pz-akzent) 62%, #000);
	--pz-akzent-hell: color-mix(in srgb, var(--pz-akzent) 12%, #fff);
	--pz-text: #333;
	--pz-text-leise: #666;
	--pz-linie: #e3e6df;
	--pz-radius: 10px;
	color: var(--pz-text);
	font-family: var(--pz-schrift, 'Cabin', Helvetica, Arial, sans-serif);
	line-height: 1.5;
	white-space: normal;
	margin: 0 0 1.5em;
}
/* Schrift erzwingen, auch wenn Divi (Code-Modul, pre, code) eine Monospace-Schrift vererbt */
html body .pz-kt,
html body .pz-kt * {
	font-family: var(--pz-schrift, 'Cabin', Helvetica, Arial, sans-serif) !important;
	letter-spacing: normal;
}
html body pre .pz-kt, html body code .pz-kt { white-space: normal !important; background: none; padding: 0; border: 0; }
.pz-kt *, .pz-kt *::before, .pz-kt *::after { box-sizing: border-box; }
.pz-kt ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.pz-kt li { list-style: none !important; padding: 0; margin-left: 0 !important; }
.pz-kt li::before, .pz-kt li::marker { content: none; }

/* Badge */
.pz-kt-badge {
	display: inline-block;
	font-size: .8em;
	font-weight: 600;
	line-height: 1.2;
	padding: .3em .7em;
	border-radius: 999px;
	background: var(--pz-akzent-hell);
	color: var(--pz-akzent-dunkel);
	white-space: nowrap;
}
.pz-kt-status-ausgebucht .pz-kt-badge { background: #fdf0e1; color: #8a4b08; }
.pz-kt-status-abgesagt .pz-kt-badge { background: #f3e3e3; color: #8c1d1d; }

/* Terminbox (Kursseite) */
.pz-kt-box { display: grid; gap: 1em; }
.pz-kt-termin {
	border: 1px solid var(--pz-linie);
	border-left: 5px solid var(--pz-akzent);
	border-radius: var(--pz-radius);
	padding: 1.1em 1.25em;
	background: #fff;
}
.pz-kt-termin__kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5em; margin-bottom: .6em; }
.pz-kt .pz-kt-termin__datum { font-size: 1.25em; font-weight: 700; margin: 0; padding: 0; }
.pz-kt-termin__meta li { margin: .15em 0; }
.pz-kt-label { display: inline-block; min-width: 5.5em; color: var(--pz-text-leise); font-size: .9em; }
.pz-kt .pz-kt-termin__hinweis { margin: .6em 0 0; padding: 0; font-style: italic; }
.pz-kt-termin__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: .75em 1.25em; margin-top: 1em; }
.pz-kt a.pz-kt-btn {
	display: inline-block;
	background: var(--pz-akzent-dunkel);
	color: #fff;
	font-weight: 600;
	padding: .65em 1.3em;
	border-radius: 6px;
	text-decoration: none;
	transition: background .15s;
}
.pz-kt a.pz-kt-btn:hover, .pz-kt a.pz-kt-btn:focus-visible { background: color-mix(in srgb, var(--pz-akzent) 48%, #000); color: #fff; }
.pz-kt a.pz-kt-ics { color: var(--pz-akzent-dunkel); font-size: .95em; }
.pz-kt-status-abgesagt .pz-kt-termin__datum { text-decoration: line-through; }
.pz-kt-status-abgesagt { border-left-color: #c94a4a; opacity: .85; }
.pz-kt-status-ausgebucht { border-left-color: #e39a3b; }

/* Liste (Übersicht, Kategorien) */
.pz-kt .pz-kt-liste__monat {
	font-size: 1.05em;
	font-weight: 700;
	margin: 1.4em 0 .4em;
	padding: 0 0 .3em;
	border-bottom: 2px solid var(--pz-akzent);
}
.pz-kt .pz-kt-liste__monat:first-child { margin-top: 0; }
.pz-kt-liste { container-type: inline-size; }
.pz-kt-zeile {
	display: grid;
	grid-template-columns: 10.5em minmax(0, 1fr) auto auto auto;
	gap: .25em 1.25em;
	align-items: center;
	padding: .65em 0;
	border-bottom: 1px solid var(--pz-linie);
}
.pz-kt-zeile__datum { font-weight: 600; white-space: nowrap; }
.pz-kt-zeile__titel { overflow-wrap: anywhere; }
.pz-kt-zeile__titel a { color: inherit; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--pz-akzent); }
.pz-kt-zeile__titel a:hover { color: var(--pz-akzent-dunkel); }
.pz-kt-zeile__zeit, .pz-kt-zeile__preis { color: var(--pz-text-leise); white-space: nowrap; font-size: .95em; }
.pz-kt-zeile__status { justify-self: end; }
.pz-kt-zeile.pz-kt-status-abgesagt .pz-kt-zeile__titel { text-decoration: line-through; }

/* Schmale Spalten: Datum + Status oben, Titel, dann Zeit und Preis */
@container (max-width: 720px) {
	.pz-kt-zeile { grid-template-columns: auto 1fr; gap: .2em .9em; padding: .85em 0; }
	.pz-kt-zeile__datum { grid-column: 1; grid-row: 1; }
	.pz-kt-zeile__status { grid-column: 2; grid-row: 1; }
	.pz-kt-zeile__titel { grid-column: 1 / -1; grid-row: 2; }
	.pz-kt-zeile__zeit { grid-column: 1; grid-row: 3; }
	.pz-kt-zeile__preis { grid-column: 2; grid-row: 3; justify-self: end; }
}

/* Karten (Startseite) */
.pz-kt-naechste { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1em; }
.pz-kt-karte {
	display: flex;
	gap: 1em;
	align-items: flex-start;
	border: 1px solid var(--pz-linie);
	border-radius: var(--pz-radius);
	padding: 1em;
	background: #fff;
}
.pz-kt-karte__datum {
	flex: 0 0 auto;
	width: 3.6em;
	text-align: center;
	border-radius: 8px;
	background: var(--pz-akzent-dunkel);
	color: #fff;
	padding: .4em 0;
	line-height: 1.1;
}
.pz-kt-karte__tag { display: block; font-size: 1.5em; font-weight: 700; }
.pz-kt-karte__monat { display: block; font-size: .8em; text-transform: uppercase; letter-spacing: .04em; }
.pz-kt .pz-kt-karte__titel { font-size: 1.05em; margin: 0 0 .25em; padding: 0; line-height: 1.3; }
.pz-kt .pz-kt-karte__titel a { color: inherit; text-decoration: none; }
.pz-kt .pz-kt-karte__titel a:hover { color: var(--pz-akzent-dunkel); }
.pz-kt .pz-kt-karte__meta { margin: 0; padding: 0; font-size: .9em; color: var(--pz-text-leise); }

/* Leer und Fehler */
.pz-kt-leer { border: 1px dashed var(--pz-linie); border-radius: var(--pz-radius); padding: 1em 1.25em; background: var(--pz-akzent-hell); }
.pz-kt-leer p { margin: 0; padding: 0; }
.pz-kt-fehler { border: 2px solid #c94a4a; background: #fff5f5; color: #5c1010; border-radius: 8px; padding: .8em 1em; margin: 0 0 1em; font-size: .9em; }
.pz-kt-fehler ul { list-style: disc; margin: .4em 0 0 1.2em; padding: 0; }
.pz-kt .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
