/* ==========================================================================================================
   Tourplan-Tab der Attraktionsseite (assets/tourplan.js). Farben und Karten aus der Attraktions-Detailseite
   (Child-Theme style.css: .kt2-at, --kt-…). Das Theme färbt jeden button:hover mit !important dunkel
   (base.css) – die Knöpfe hier setzen ihre Hover-Farbe deshalb ebenfalls mit !important und höherer Spezifität.
   ========================================================================================================== */
.kt2-at {
	--tp-meer: #e4edf6;
	--tp-land: #f2eee7;
	--tp-land-aktiv: #fffdf9;
	--tp-kontur: #cfc6b8;
	--tp-kontur-aktiv: #b9ad9c;
	--tp-innen: #d3c7b6;
	--tp-schild: rgba(255, 255, 255, 0.94);
	--tp-grau: #8a8f99;
}
body.gt3_dark_mode .kt2-at {
	--tp-meer: #1f2732;
	--tp-land: #2d2d31;
	--tp-land-aktiv: #3c3c42;
	--tp-kontur: #4a4a52;
	--tp-kontur-aktiv: #6a6a73;
	--tp-innen: #57575f;
	--tp-schild: rgba(40, 40, 44, 0.94);
	--tp-grau: #7d828c;
}

.kt2-at .kt2-at__tour {
	padding: 20px;
	border-radius: 24px;
	background: var(--kt-feld);
}

/* Kopf: Jahreswahl und Zahl der Stationen */
.kt2-at .kt2-at__tour-kopf {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin-bottom: 16px;
}
.kt2-at .kt2-at__tour-jahre {
	display: flex;
	gap: 4px;
	max-width: 100%;
	padding: 4px;
	overflow-x: auto;
	border: 1px solid var(--kt-linie);
	border-radius: 14px;
	background: var(--kt-flaeche);
	scrollbar-width: none;
}
.kt2-at .kt2-at__tour-jahre::-webkit-scrollbar {
	display: none;
}
.kt2-at .kt2-at__tour-jahre button {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 7px;
	margin: 0;
	padding: 7px 12px 7px 14px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--kt-text);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}
.kt2-at .kt2-at__tour-jahre button small {
	min-width: 22px;
	padding: 1px 7px;
	border-radius: 99px;
	background: var(--kt-feld);
	color: var(--kt-leise);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
}
.kt2-at .kt2-at__tour-jahre button:hover {
	background-color: var(--kt-feld) !important;
	color: var(--kt-text);
}
.kt2-at .kt2-at__tour-jahre button[aria-pressed="true"],
.kt2-at .kt2-at__tour-jahre button[aria-pressed="true"]:hover {
	background-color: var(--kt-rot) !important;
	color: #fff;
	box-shadow: 0 4px 14px rgba(207, 71, 66, 0.28);
}
.kt2-at .kt2-at__tour-jahre button[aria-pressed="true"] small {
	background: rgba(255, 255, 255, 0.22);
	color: #fff;
}
.kt2-at .kt2-at__tour-jahre button:focus-visible {
	outline: 2px solid var(--kt-rot);
	outline-offset: 2px;
}
.kt2-at .kt2-at__tour-einjahr {
	padding: 6px 14px;
	border: 1px solid var(--kt-linie);
	border-radius: 99px;
	background: var(--kt-flaeche);
	font-size: 15px;
	font-weight: 700;
}
.kt2-at .kt2-at__tour-zahl {
	margin: 0;
	color: var(--kt-leise);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

/* Karte */
.kt2-at .kt2-at__tour-kartenbox {
	margin-bottom: 18px;
}
.kt2-at .kt2-at__tour-kartenbox.ist-leer {
	display: none;
}
.kt2-at .kt2-at__tour-karte {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	min-height: 300px;
	max-height: 560px;
	border: 1px solid var(--kt-linie);
	border-radius: 18px;
	background: var(--tp-meer);
	outline: none;
	touch-action: pan-y;
	-webkit-user-select: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
	cursor: grab;
}
.kt2-at .kt2-at__tour-karte.ist-ziehen {
	cursor: grabbing;
}
.kt2-at .kt2-at__tour-karte:focus-visible {
	outline: 2px solid var(--kt-rot);
	outline-offset: 2px;
}
.kt2-at .kt2-at__tour-karte.ist-laedt::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, 0.45) 50%, transparent 70%) 0 0 / 200% 100%;
	animation: kt2-tp-laden 1.2s linear infinite;
}
@keyframes kt2-tp-laden {
	to { background-position: -200% 0; }
}
.kt2-at .kt2-at__tour-svg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}
.kt2-at .kt2-at__tour-meer {
	fill: var(--tp-meer);
}
.kt2-at .kt2-at__tour-land {
	fill: var(--tp-land);
	stroke: var(--tp-kontur);
	stroke-width: 0.8;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}
.kt2-at .kt2-at__tour-land.ist-aktiv {
	fill: var(--tp-land-aktiv);
	stroke: var(--tp-kontur-aktiv);
	stroke-width: 1.3;
}
.kt2-at .kt2-at__tour-grenze {
	display: none;
	fill: none;
	stroke: var(--tp-innen);
	stroke-width: 0.9;
	stroke-dasharray: 3 3;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}
.kt2-at .kt2-at__tour-grenze.ist-aktiv {
	display: inline;
}
.kt2-at .kt2-at__tour-linie {
	fill: none;
	stroke: var(--kt-rot);
	stroke-width: 2.2;
	stroke-dasharray: 7 6;
	stroke-linecap: round;
	opacity: 0.7;
	vector-effect: non-scaling-stroke;
}

/* Marker und Ortsnamen (HTML über dem SVG, damit die Schrift scharf und bedienbar bleibt) */
.kt2-at .kt2-at__tour-ebene {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.kt2-at .kt2-at__tour-pin {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	margin: 0;
	padding: 0 8px;
	border: 2px solid #fff;
	border-radius: 99px;
	background: var(--kt-rot);
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	box-shadow: 0 3px 10px rgba(17, 24, 39, 0.28);
	pointer-events: auto;
	cursor: pointer;
	transition: box-shadow 0.15s, background-color 0.15s;
}
.kt2-at .kt2-at__tour-pin:hover,
.kt2-at .kt2-at__tour-pin.ist-hervor {
	z-index: 4;
	background-color: var(--kt-rot-dunkel, #b33934) !important;
	color: #fff;
	box-shadow: 0 0 0 5px rgba(207, 71, 66, 0.25), 0 3px 10px rgba(17, 24, 39, 0.28);
}
.kt2-at .kt2-at__tour-pin.ist-aktiv {
	z-index: 5;
	box-shadow: 0 0 0 4px var(--kt-text), 0 3px 10px rgba(17, 24, 39, 0.28);
}
.kt2-at .kt2-at__tour-pin:focus-visible {
	outline: 3px solid var(--kt-text);
	outline-offset: 2px;
}
.kt2-at .kt2-at__tour-pin.ist-vorlaeufig,
.kt2-at .kt2-at__tour-pin.ist-vorlaeufig:hover,
.kt2-at .kt2-at__tour-pin.ist-vorlaeufig.ist-hervor {
	border: 2px dashed var(--kt-rot);
	background-color: #fff !important;
	color: var(--kt-rot);
}
.kt2-at .kt2-at__tour-pin.ist-vorbei {
	background-color: var(--tp-grau);
}
.kt2-at .kt2-at__tour-pin.ist-vorbei:hover,
.kt2-at .kt2-at__tour-pin.ist-vorbei.ist-hervor {
	background-color: #6b7280 !important;
}
.kt2-at .kt2-at__tour-pin.ist-vorbei.ist-vorlaeufig {
	border-color: var(--tp-grau);
	color: var(--tp-grau);
}
.kt2-at .kt2-at__tour-pin.ist-live::after {
	content: "";
	position: absolute;
	inset: -7px;
	border: 2px solid var(--kt-rot);
	border-radius: inherit;
	animation: kt2-tp-puls 1.8s ease-out infinite;
	pointer-events: none;
}
@keyframes kt2-tp-puls {
	from { opacity: 0.85; transform: scale(0.75); }
	to { opacity: 0; transform: scale(1.35); }
}
.kt2-at .kt2-at__tour-name {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	padding: 2px 7px;
	border-radius: 6px;
	background: var(--tp-schild);
	color: var(--kt-text);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	box-shadow: 0 1px 4px rgba(17, 24, 39, 0.16);
	pointer-events: none;
}
.kt2-at .kt2-at__tour-name.ist-weg {
	visibility: hidden;
}

/* Bedienung, Legende, Hinweise */
.kt2-at .kt2-at__tour-zoom {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 6;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.kt2-at .kt2-at__tour-zoom button {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--kt-linie);
	border-radius: 10px;
	background: var(--kt-flaeche);
	color: var(--kt-text);
	box-shadow: 0 2px 8px rgba(17, 24, 39, 0.12);
	cursor: pointer;
}
.kt2-at .kt2-at__tour-zoom button:hover {
	background-color: var(--kt-feld) !important;
	color: var(--kt-rot);
}
.kt2-at .kt2-at__tour-zoom button:focus-visible {
	outline: 2px solid var(--kt-rot);
	outline-offset: 2px;
}
.kt2-at .kt2-at__tour-zoom .kt2-at__icon {
	width: 18px;
	height: 18px;
	stroke-width: 2.2;
}
.kt2-at .kt2-at__tour-legende {
	position: absolute;
	bottom: 12px;
	left: 12px;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	max-width: calc(100% - 72px);
	padding: 6px 10px;
	border-radius: 10px;
	background: var(--tp-schild);
	color: var(--kt-leise);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	pointer-events: none;
}
.kt2-at .kt2-at__tour-legende span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.kt2-at .kt2-at__tour-probe {
	width: 13px;
	height: 13px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--kt-rot);
	box-shadow: 0 0 0 1px rgba(17, 24, 39, 0.15);
}
.kt2-at .kt2-at__tour-probe.ist-vorlaeufig {
	border: 2px dashed var(--kt-rot);
	background: #fff;
	box-shadow: none;
}
.kt2-at .kt2-at__tour-probe.ist-vorbei {
	background: var(--tp-grau);
}
.kt2-at .kt2-at__tour-probe.ist-live {
	box-shadow: 0 0 0 3px rgba(207, 71, 66, 0.3);
}
.kt2-at .kt2-at__tour-karte:has(.kt2-at__tour-popup:not([hidden])) .kt2-at__tour-legende {
	visibility: hidden;
}
.kt2-at .kt2-at__tour-zoomhinweis {
	position: absolute;
	top: 14px;
	left: 50%;
	z-index: 7;
	max-width: calc(100% - 120px);
	padding: 7px 14px;
	border-radius: 99px;
	background: rgba(17, 24, 39, 0.82);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	opacity: 0;
	transform: translateX(-50%);
	transition: opacity 0.2s;
	pointer-events: none;
}
.kt2-at .kt2-at__tour-karte.ist-hinweis .kt2-at__tour-zoomhinweis {
	opacity: 1;
}
.kt2-at .kt2-at__tour-hinweis {
	margin: 8px 4px 0;
	color: var(--kt-leise);
	font-size: 12.5px;
	line-height: 1.45;
}

/* Stationskarte in der Karte (Klick auf einen Marker) */
.kt2-at .kt2-at__tour-popup {
	position: absolute;
	bottom: 12px;
	left: 12px;
	z-index: 8;
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: min(400px, calc(100% - 24px));
	max-height: calc(100% - 24px);
	padding: 8px;
	overflow: auto;
	border-radius: 16px;
	background: var(--kt-flaeche);
	box-shadow: 0 14px 36px rgba(17, 24, 39, 0.24);
	cursor: auto;
	-webkit-user-select: text;
	user-select: text;
}
.kt2-at .kt2-at__tour-popup[hidden] {
	display: none;
}
.kt2-at .kt2-at__tour-popup .kt2-at__termin {
	padding: 10px;
	background: var(--kt-feld);
	box-shadow: none;
}
.kt2-at .kt2-at__tour-popup .kt2-at__termin:hover {
	transform: none;
}
.kt2-at .kt2-at__tour-popup .kt2-at__tour-station.ist-vorbei {
	opacity: 1;
}
.kt2-at .kt2-at__tour-popup > a:first-of-type {
	padding-right: 44px;
}
.kt2-at .kt2-at__tour-popup-zu {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--kt-flaeche);
	color: var(--kt-text);
	font-family: inherit;
	font-size: 20px;
	line-height: 1;
	box-shadow: 0 1px 4px rgba(17, 24, 39, 0.15);
	cursor: pointer;
}
.kt2-at .kt2-at__tour-popup-zu:hover {
	background-color: var(--kt-linie) !important;
	color: var(--kt-text);
}

/* Liste der Stationen: dieselben Karten wie „Aktuelle Kirmestermine“, mit Nummer und Status */
.kt2-at .kt2-at__tour-liste {
	margin: 0;
	padding: 0;
	list-style: none;
}
.kt2-at .kt2-at__tour-liste > li {
	margin: 0;
	padding: 0;
}
.kt2-at .kt2-at__tour-liste > li::before,
.kt2-at .kt2-at__tour-liste > li::marker {
	content: none;
	display: none;
}
.kt2-at .kt2-at__tour-liste .kt2-at__termin {
	height: 100%;
}
.kt2-at .kt2-at__tour-jahrtitel {
	margin: 0 0 12px;
	color: var(--kt-text);
	font-size: 16px;
	line-height: 1.35;
}
.kt2-at .kt2-at__tour-jahr + .kt2-at__tour-jahr {
	margin-top: 24px;
}
.kt2-at .kt2-at__tour--js .kt2-at__tour-jahrtitel {
	display: none;
}
.kt2-at .kt2-at__tour--js .kt2-at__tour-jahr + .kt2-at__tour-jahr {
	margin-top: 0;
}
.kt2-at .kt2-at__tour-nr {
	position: absolute;
	top: 6px;
	left: 6px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0 6px;
	border: 2px solid #fff;
	border-radius: 99px;
	background: var(--kt-rot);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(17, 24, 39, 0.22);
}
.kt2-at .kt2-at__tour-station[data-status="vorlaeufig"] .kt2-at__tour-nr {
	border: 2px dashed var(--kt-rot);
	background: #fff;
	color: var(--kt-rot);
}
.kt2-at .kt2-at__tour-station.ist-vorbei .kt2-at__tour-nr {
	background: var(--tp-grau);
}
.kt2-at .kt2-at__tour-station.ist-vorbei[data-status="vorlaeufig"] .kt2-at__tour-nr {
	border-color: var(--tp-grau);
	background: #fff;
	color: var(--tp-grau);
}
.kt2-at .kt2-at__tour-station.ist-vorbei {
	opacity: 0.72;
}
.kt2-at .kt2-at__tour-station.ist-vorbei:hover,
.kt2-at .kt2-at__tour-station.ist-hervor {
	opacity: 1;
}
.kt2-at .kt2-at__tour-station.ist-hervor {
	box-shadow: 0 0 0 2px var(--kt-rot), var(--kt-schatten);
}
.kt2-at .kt2-at__tour-station.ist-abgesagt {
	opacity: 0.6;
}
.kt2-at .kt2-at__tour-station.ist-abgesagt strong {
	text-decoration: line-through;
}

/* Etiketten (Teilnahmestatus, beendet) */
.kt2-at .kt2-at__marken {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 1px;
}
.kt2-at .kt2-at__marke {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 2px 8px;
	border-radius: 99px;
	background: #f0f0f3;
	color: #5b616e;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
}
.kt2-at .kt2-at__marke .kt2-at__icon {
	width: 12px;
	height: 12px;
	stroke-width: 3;
}
.kt2-at .kt2-at__marke--bestaetigt {
	background: #e5f5ec;
	color: #16703c;
}
.kt2-at .kt2-at__marke--angekuendigt {
	background: #e7f0fa;
	color: #1d5c94;
}
.kt2-at .kt2-at__marke--vorlaeufig {
	background: #fff2d9;
	color: #8a5200;
}
body.gt3_dark_mode .kt2-at .kt2-at__marke {
	background: rgba(255, 255, 255, 0.08);
	color: #c4c8cf;
}
body.gt3_dark_mode .kt2-at .kt2-at__marke--bestaetigt {
	background: rgba(31, 157, 85, 0.2);
	color: #7fdca6;
}
body.gt3_dark_mode .kt2-at .kt2-at__marke--angekuendigt {
	background: rgba(64, 140, 220, 0.2);
	color: #9cc8f2;
}
body.gt3_dark_mode .kt2-at .kt2-at__marke--vorlaeufig {
	background: rgba(230, 160, 40, 0.2);
	color: #f2c879;
}

@media (max-width: 767px) {
	.kt2-at .kt2-at__tour {
		margin: 0 -4px;
		padding: 14px;
		border-radius: 20px;
	}
	.kt2-at .kt2-at__tour-kopf {
		margin-bottom: 12px;
	}
	.kt2-at .kt2-at__tour-karte {
		aspect-ratio: 4 / 5;
		max-height: 72vh;
		border-radius: 14px;
	}
	.kt2-at .kt2-at__tour-zoom {
		top: 10px;
		right: 10px;
	}
	.kt2-at .kt2-at__tour-legende {
		bottom: 10px;
		left: 10px;
		gap: 2px 10px;
		font-size: 11px;
	}
	.kt2-at .kt2-at__tour-popup {
		right: 10px;
		bottom: 10px;
		left: 10px;
		width: auto;
	}
}

/* Schmale Smartphones: kompaktere Karten, damit Name und Datum nicht ständig umbrechen */
@media (max-width: 480px) {
	.kt2-at .kt2-at__tour {
		margin: 0 -8px;
		padding: 12px;
	}
	.kt2-at .kt2-at__tour .kt2-at__termin {
		gap: 12px;
		padding: 12px;
	}
	.kt2-at .kt2-at__tour .kt2-at__termin-bild {
		width: 56px;
		height: 56px;
		border-radius: 10px;
	}
	.kt2-at .kt2-at__tour .kt2-at__termin > .kt2-at__icon {
		display: none;
	}
	.kt2-at .kt2-at__tour .kt2-at__termin-text strong {
		font-size: 15px;
	}
	.kt2-at .kt2-at__tour .kt2-at__tour-nr {
		top: 4px;
		left: 4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kt2-at .kt2-at__tour-pin.ist-live::after,
	.kt2-at .kt2-at__tour-karte.ist-laedt::after {
		animation: none;
	}
}
