/* VDF Veranstaltungskalender */
.vdf-kal {
	--kal-gelb: #FBBA00;
	--kal-gelb-hell: #FEF1C7;
	--kal-linie: #e4e4e4;
	--kal-grau: #686868;
	margin: 0 0 var(--wp--preset--spacing--50, 40px);
	font-family: inherit;
}

.vdf-kal .vdf-kal__kopf {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.vdf-kal .vdf-kal__titel {
	flex: 1;
	margin: 0;
	text-align: center;
	font-size: var(--wp--preset--font-size--x-large);
}
.vdf-kal .vdf-kal__nav,
.vdf-kal .vdf-kal__heute {
	border: 1px solid var(--kal-linie);
	background: #fff;
	color: #0a0a0a;
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	line-height: 1;
}
.vdf-kal .vdf-kal__nav { width: 2.5rem; height: 2.5rem; font-size: 1.5rem; }
.vdf-kal .vdf-kal__heute { padding: 0.6rem 1rem; font-size: var(--wp--preset--font-size--small); }
.vdf-kal .vdf-kal__nav:hover,
.vdf-kal .vdf-kal__heute:hover { border-color: var(--kal-gelb); background: var(--kal-gelb-hell); }
.vdf-kal :focus-visible { outline: 3px solid var(--kal-gelb); outline-offset: 2px; }

.vdf-kal .vdf-kal__legende {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	margin-bottom: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--kal-grau);
}
.vdf-kal .vdf-kal__leg::before {
	content: "";
	display: inline-block;
	width: 0.9em;
	height: 0.9em;
	margin-right: 0.4em;
	border-radius: 3px;
	vertical-align: -0.1em;
	background: var(--typ, var(--kal-gelb));
}
.vdf-kal .vdf-kal__legende { flex-direction: column; align-items: center; gap: 0.4rem; }
.vdf-kal .vdf-kal__legtypen { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; justify-content: center; }

/* Monatsraster (kompakt: nur Anzahl pro Tag) */
.vdf-kal .vdf-kal__hinweis { color: var(--kal-grau); font-style: italic; }
.vdf-kal .vdf-kal__raster {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	border-top: 1px solid var(--kal-linie);
	border-left: 1px solid var(--kal-linie);
}
.vdf-kal .vdf-kal__wt {
	padding: 0.35rem 0;
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	background: #fafafa;
	border-right: 1px solid var(--kal-linie);
	border-bottom: 1px solid var(--kal-linie);
}
.vdf-kal .vdf-kal__tag {
	position: relative;
	min-height: 3.4rem;
	padding: 0.25rem 0.1rem;
	text-align: center;
	border-right: 1px solid var(--kal-linie);
	border-bottom: 1px solid var(--kal-linie);
	background: #fff;
}
.vdf-kal .vdf-kal__tag.is-fremd { background: #fafafa; }
.vdf-kal .vdf-kal__tag.is-fremd .vdf-kal__nr { color: #bbb; }
.vdf-kal .vdf-kal__nr {
	display: inline-block;
	min-width: 1.6em;
	font-size: var(--wp--preset--font-size--small);
	text-align: center;
	border-radius: 999px;
}
.vdf-kal .vdf-kal__tag.is-heute .vdf-kal__nr { box-shadow: 0 0 0 2px #0a0a0a; font-weight: 700; }
.vdf-kal .vdf-kal__tag.has-termine { cursor: pointer; }
.vdf-kal .vdf-kal__tag.has-termine:hover { box-shadow: inset 0 0 0 2px #0a0a0a33; }
.vdf-kal .vdf-kal__tag.is-gewaehlt,
.vdf-kal .vdf-kal__tag.is-gewaehlt:hover { box-shadow: inset 0 0 0 3px #0a0a0a; }

/* Farbintensität nach Anzahl: 1 / 2–3 / 4–9 / 10+ */
.vdf-kal .vdf-kal__tag.stufe-1 { background: #FFF8E1; }
.vdf-kal .vdf-kal__tag.stufe-2 { background: #FEEBB0; }
.vdf-kal .vdf-kal__tag.stufe-3 { background: #FDD666; }
.vdf-kal .vdf-kal__tag.stufe-4 { background: var(--kal-gelb); }
.vdf-kal .vdf-kal__anzahl {
	display: block;
	margin: 0.15rem auto 0;
	min-width: 1.5rem;
	width: max-content;
	height: 1.5rem;
	padding: 0 0.3rem;
	line-height: 1.5rem;
	border-radius: 999px;
	background: #0a0a0a;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	box-sizing: border-box;
}

/* Farbpunkte je Typ im Tagesfeld */
.vdf-kal .vdf-kal__punkte { display: flex; justify-content: center; gap: 3px; margin-top: 0.25rem; }
.vdf-kal .vdf-kal__punkt {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 999px;
	background: var(--typ, #9E9E9E);
	box-shadow: 0 0 0 1px #fff;
}

/* Ein oder zwei Monate nebeneinander */
.vdf-kal .vdf-kal__monate { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.vdf-kal .vdf-kal__monate.is-zwei { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.vdf-kal .vdf-kal__mtitel {
	margin: 0 0 0.4rem;
	text-align: center;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
}

/* Tagesliste unter dem Raster */
.vdf-kal .vdf-kal__tagesliste { margin-top: 1.25rem; scroll-margin-top: 1rem; }
.vdf-kal .vdf-kal__tagtitel {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin: 0 0 0.6rem;
	font-size: var(--wp--preset--font-size--large);
}
.vdf-kal .vdf-kal__taganzahl {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	color: var(--kal-grau);
}
/* Zweispaltig, aber chronologisch von oben nach unten gelesen */
.vdf-kal .vdf-kal__eintraege { column-gap: 0.75rem; }
@media (min-width: 900px) {
	.vdf-kal .vdf-kal__eintraege { columns: 2; }
}
.vdf-kal .vdf-kal__eintrag {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	width: 100%;
	margin: 0 0 0.4rem;
	padding: 0.55rem 0.75rem;
	break-inside: avoid;
	border: 1px solid var(--kal-linie);
	border-left: 5px solid var(--typ, var(--kal-gelb));
	border-radius: 6px;
	background: #fff;
	color: #0a0a0a;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.35;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	white-space: normal !important;
	overflow: visible !important;
	cursor: pointer;
	box-sizing: border-box;
}
.vdf-kal .vdf-kal__eintrag:hover { background: var(--kal-gelb-hell); border-color: var(--kal-gelb); }
.vdf-kal .vdf-kal__ezeit {
	flex: 0 0 3.2rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.vdf-kal .vdf-kal__etext { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vdf-kal .vdf-kal__ebuehne { font-weight: 700; }
.vdf-kal .vdf-kal__estueck { color: #333; }
.vdf-kal .vdf-kal__ebadge {
	flex: 0 0 auto;
	align-self: center;
	padding: 0.1rem 0.5rem;
	border-radius: 999px;
	background: var(--kal-gelb);
	font-size: 0.72rem;
	font-weight: 700;
	white-space: nowrap;
}
.vdf-kal .vdf-kal__leer { color: var(--kal-grau); text-align: center; }

@media (max-width: 700px) {
	.vdf-kal .vdf-kal__titel { font-size: var(--wp--preset--font-size--large); }
	.vdf-kal .vdf-kal__tag { min-height: 3rem; }
	.vdf-kal .vdf-kal__heute { padding: 0.55rem 0.7rem; }
	.vdf-kal .vdf-kal__hinweis { flex-basis: 100%; text-align: center; }
}

/* Detailfenster */
.vdf-kal__dialog {
	width: min(640px, calc(100vw - 2rem));
	max-height: calc(100vh - 2rem);
	padding: 0;
	border: 0;
	border-radius: 12px;
	overflow: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.vdf-kal__dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.vdf-kal__schliessen {
	position: sticky;
	top: 0.5rem;
	float: right;
	margin: 0.5rem 0.5rem -3rem 0;
	width: 2.5rem;
	height: 2.5rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	z-index: 1;
}
.vdf-kal__bild { display: block; width: 100%; max-height: 360px; object-fit: cover; }
.vdf-kal__inhalt { padding: 1.25rem 1.5rem 1.5rem; }
.vdf-kal__kicker {
	margin: 0 0 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--kal-grau);
}
.vdf-kal__dtitel { margin: 0 0 0.5rem; font-size: var(--wp--preset--font-size--x-large); }
.vdf-kal__badge {
	display: inline-block;
	margin-bottom: 0.75rem;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: var(--kal-gelb);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}
.vdf-kal__fakten {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.25rem 1rem;
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--small);
}
.vdf-kal__fakten dt { font-weight: 700; }
.vdf-kal__fakten dd { margin: 0; }
.vdf-kal__text { font-size: var(--wp--preset--font-size--small); }
.vdf-kal__text p { margin: 0 0 0.75em; }
.vdf-kal__button {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.7rem 1.2rem;
	border-radius: 999px;
	background: #0a0a0a;
	color: #fff !important;
	text-decoration: none;
	font-weight: 700;
}
.vdf-kal__button:hover { background: var(--kal-gelb); color: #0a0a0a !important; }

/* Erklärtext zwischen Kalender und Filtern */
.vdf-kal-hinweistext { margin-top: var(--wp--preset--spacing--40, 2rem); margin-bottom: 1rem; }

/* =========================================================
   Tabelle (wpDataTables, Skin "aqua") an das VDF-Design anpassen
   ========================================================= */
.wpdt-c,
.wpdt-c .wpDataTablesWrapper,
.wpdt-c .wpDataTablesWrapper table.wpDataTable,
.wpdt-c .wpDataTablesWrapper table.wpDataTable th,
.wpdt-c .wpDataTablesWrapper table.wpDataTable td,
.wpdt-c .wpDataTableFilterSection,
.wpdt-c .wpDataTableFilterSection *,
.wpdt-c .dataTables_info,
.wpdt-c .dataTables_paginate,
.wpdt-c .dataTables_length {
	font-family: var(--wp--preset--font-family--noto-sans, "Noto Sans", sans-serif) !important;
}

/* Abgerundete Tabelle */
.wpdt-c .wpDataTablesWrapper table.wpDataTable {
	border-collapse: separate !important;
	border-spacing: 0;
	border: 1px solid #e4e4e4 !important;
	border-radius: 12px;
	overflow: hidden;
}

/* Kopfzeile: Schwarz mit exaktem VDF-Gelb */
.wpdt-c .wpDataTablesWrapper table.wpDataTable thead th {
	background: #0a0a0a !important;
	color: #FBBA00 !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	padding: 0.8rem 0.75rem !important;
	border: 0 !important;
}

/* Zellen: kompakt, vollständig, Umbruch statt "…" */
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td {
	font-size: 0.95rem !important;
	line-height: 1.4 !important;
	color: #0a0a0a !important;
	padding: 0.6rem 0.75rem !important;
	white-space: normal !important;
	text-overflow: clip !important;
	overflow: visible !important;
	vertical-align: middle !important;
	border: 0 !important;
	border-top: 1px solid #eeeeee !important;
}
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-termin {
	white-space: nowrap !important;
	font-variant-numeric: tabular-nums;
}
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-name { font-weight: 700; }

/* Zebra + Hover */
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr,
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr td { background: #fff !important; }
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr:nth-child(even) td { background: #f7f7f7 !important; }
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr:hover td { background: #FEF1C7 !important; }
.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.sorting_1 { background-color: inherit; }

/* Link als Button "Zur Bühne" (URL bleibt für Screenreader lesbar) */
.wpdt-c .wpDataTablesWrapper table.wpDataTable td.column-veranstaltungslink a {
	display: inline-block;
	font-size: 0 !important;
	line-height: 0;
	text-decoration: none !important;
	white-space: nowrap;
}
.wpdt-c .wpDataTablesWrapper table.wpDataTable td.column-veranstaltungslink a::after {
	content: "Zur Bühne";
	display: inline-block;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: #0a0a0a;
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.2;
}
.wpdt-c .wpDataTablesWrapper table.wpDataTable td.column-veranstaltungslink a:hover::after {
	background: #FBBA00;
	color: #0a0a0a;
}

/* Filter, Auswahlfelder und Seitennavigation weicher */
.wpdt-c .wpDataTableFilterSection input,
.wpdt-c .wpDataTableFilterSection .btn,
.wpdt-c .wpDataTableFilterSection .bootstrap-select > .dropdown-toggle,
.wpdt-c .dataTables_length .btn,
.wpdt-c .dataTables_length select,
.wpdt-c .dataTables_filter input {
	border-radius: 8px !important;
}
.wpdt-c .dataTables_paginate .paginate_button {
	border-radius: 999px !important;
}
.wpdt-c .dataTables_paginate .paginate_button.current {
	background: #FBBA00 !important;
	border-color: #FBBA00 !important;
	color: #0a0a0a !important;
}

/* Handy: jede Zeile als Karte statt gequetschter Spalten */
@media (max-width: 700px) {
	.wpdt-c .wpDataTablesWrapper table.wpDataTable {
		display: block;
		width: 100% !important;
		table-layout: auto !important;
		border: 0 !important;
		border-radius: 0;
		overflow: visible;
	}
	.wpdt-c .wpDataTablesWrapper table.wpDataTable thead { display: none !important; }
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody { display: block; }
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		margin: 0 0 0.6rem;
		padding: 0.75rem 0.9rem;
		border: 1px solid #e4e4e4;
		border-left: 4px solid #FBBA00;
		border-radius: 10px;
		background: #fff !important;
	}
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr td,
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr:nth-child(even) td,
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody tr:hover td {
		display: block;
		width: auto !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-termin { grid-column: 1; grid-row: 1; font-size: 0.85rem !important; color: #686868 !important; }
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-name { grid-column: 1; grid-row: 2; }
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-titel { grid-column: 1; grid-row: 3; }
	.wpdt-c .wpDataTablesWrapper table.wpDataTable tbody td.column-veranstaltungslink { grid-column: 1; grid-row: 4; margin-top: 0.5rem !important; }
}

/* Drucken-Button: feste Breite des Skins aufheben, an VDF-Buttons angleichen */
.wpdt-c .dt-buttons .dt-button:not(.DTTT_button_spacer) {
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	padding: 0.55rem 1.1rem !important;
	border: 1px solid #0a0a0a !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: #0a0a0a !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	box-shadow: none !important;
}
.wpdt-c .dt-buttons .dt-button:not(.DTTT_button_spacer):hover {
	background: #FBBA00 !important;
	border-color: #FBBA00 !important;
}
