/* EVF Tickets — öffentliche Seite.
 *
 * Durchgehend schwarz, Gelb #FFB400 als einziger Farbschlag. Alles auf
 * .evf-tickets gescoped, damit nichts ins Theme läuft. Radien: 0.
 * Werte aus TOKENS.css, unverändert übernommen.
 */

.evf-tickets {

	/* ---- Marke ---- */
	--evf-yellow: #FFB400;
	--evf-yellow-hover: #E6A200;
	--evf-yellow-deep: #C98A00;
	--evf-yellow-tint: #FFF3D6;
	--evf-black: #0B0B0C;
	--evf-white: #FFFFFF;

	/* ---- Neutralrampe ---- */
	--evf-ink-950: #08090A;
	--evf-ink-900: #0B0B0C;
	--evf-ink-800: #18191C;
	--evf-ink-700: #27282C;
	--evf-ink-600: #3C3E44;
	--evf-ink-500: #5A5D65;
	--evf-ink-400: #84878F;
	--evf-ink-300: #AEB2BB;
	--evf-ink-200: #D4D8DF;

	/* Der Prototyp schreibt --ink-950, die Tokens --evf-ink-950. Beide gelten. */
	--ink-950: #08090A;

	/* ---- Deckkraft auf Schwarz. Untergrenzen, nicht Vorschläge. ---- */
	--evf-copy: rgba(255, 255, 255, .86);
	--evf-copy-stark: rgba(255, 255, 255, .88);
	--evf-copy-basis: rgba(255, 255, 255, .82);
	--evf-label: rgba(255, 255, 255, .74);
	--evf-meta: rgba(255, 255, 255, .78);
	--evf-fuss: rgba(255, 255, 255, .66);
	--evf-rahmen: rgba(255, 255, 255, .22);
	--evf-rahmen-dash: rgba(255, 255, 255, .32);
	--evf-linie: rgba(255, 255, 255, .12);
	--evf-linie-kopf: rgba(255, 255, 255, .16);

	/* ---- Auf Gelb ---- */
	--evf-auf-gelb: rgba(0, 0, 0, .82);
	--evf-auf-gelb-label: rgba(0, 0, 0, .75);
	--evf-auf-gelb-linie: rgba(0, 0, 0, .22);

	/* ---- Typografie ---- */
	--evf-font-display: 'Anton', 'Arial Narrow', 'Haettenschweiler', sans-serif;
	--evf-font-sans: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;

	/* ---- Maße ---- */
	--evf-pad-x: 64px;
	--evf-pad-y: 56px;
	--evf-spalten: 4;

	/* Höhe einer klebenden Kopfzeile des Themes. Wird vom Plugin inline
	   gesetzt, wenn im Admin ein Wert hinterlegt ist. */
	--evf-header: 0px;

	box-sizing: border-box;
	background: var(--evf-black);
	color: var(--evf-white);
	font-family: var(--evf-font-sans);
	font-size: 15px;
	line-height: 1.65;
	scroll-behavior: auto;
	-webkit-font-smoothing: antialiased;
}

.evf-tickets *,
.evf-tickets *::before,
.evf-tickets *::after {
	box-sizing: inherit;
}

/* ---------- Theme-Abwehr ----------
 *
 * Divi und andere Themes setzen Listen und Absätze global über Selektoren
 * gleicher oder höherer Spezifität, etwa
 * `.et-l--body ul { list-style-type: disc; padding: 0 0 23px 1em }`.
 * Weil das Theme-CSS nach dem Plugin-CSS geladen wird, gewinnt es sonst und
 * legt Aufzählungspunkte in unsere Raster. Deshalb hier ausnahmsweise
 * !important — eng begrenzt auf Eigenschaften, die das Plugin an diesen
 * Elementen nie selbst braucht, und ausschließlich innerhalb von .evf-tickets.
 */

.evf-tickets ul,
.evf-tickets ol {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	line-height: inherit !important;
	background-image: none !important;
}

.evf-tickets li {
	margin: 0 !important;
	list-style: none !important;
	line-height: inherit !important;
	text-indent: 0 !important;
}

.evf-tickets li::marker {
	content: "" !important;
}

.evf-tickets li::before {
	content: none !important;
}

.evf-tickets p {
	margin: 0 !important;
	padding: 0 !important;
}

.evf-tickets h1,
.evf-tickets h2,
.evf-tickets h3,
.evf-tickets h4 {
	margin: 0 !important;
	padding: 0 !important;
	text-transform: uppercase;
}

.evf-tickets a {
	text-decoration: none;
	box-shadow: none;
}

.evf-tickets b,
.evf-tickets strong {
	color: var(--evf-white);
	font-weight: 700;
}

.evf-tickets .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Abschnitte ---------- */

.evf-tickets__sektion {
	position: relative;
	padding: var(--evf-pad-y) var(--evf-pad-x);
	scroll-margin-top: calc(var(--evf-header) + 80px);
}

.evf-tickets__sektion--a {
	background: var(--evf-black);
}

.evf-tickets__sektion--b {
	background: var(--evf-ink-950);
	border-top: 1px solid rgba(255, 255, 255, .1);
}

.evf-tickets__sektion--gelb {
	background: var(--evf-yellow);
	color: var(--evf-black);
}

.evf-tickets__sektion--hero {
	padding: 60px var(--evf-pad-x) 64px;
	overflow: hidden;
}

.evf-tickets__sektion--fristen {
	padding: 26px var(--evf-pad-x);
}

.evf-tickets__sektion--kontakt {
	padding: 44px var(--evf-pad-x);
	border-top: 3px solid var(--evf-black);
}

.evf-tickets__sektion--footer {
	padding: 22px var(--evf-pad-x);
}

/* ---------- Typografie ---------- */

.evf-tickets__eyebrow {
	margin-bottom: 14px;
	color: var(--evf-yellow);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.evf-tickets__eyebrow--dunkel {
	margin-bottom: 12px;
	color: var(--evf-auf-gelb-label);
}

.evf-tickets__h1 {
	font-family: var(--evf-font-display);
	font-size: 82px;
	font-weight: 400;
	line-height: .92;
	letter-spacing: .005em;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--evf-white);
}

.evf-tickets__akzent {
	box-shadow: inset 0 -.16em 0 var(--evf-yellow);
}

.evf-tickets__h2 {
	font-family: var(--evf-font-display);
	font-size: 42px;
	font-weight: 400;
	line-height: .98;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--evf-white);
}

.evf-tickets__sektion--dauerkarten .evf-tickets__h2 {
	font-size: 46px;
}

.evf-tickets__h2--dunkel {
	font-size: 38px;
	line-height: 1;
	color: var(--evf-black);
}

.evf-tickets__label {
	color: var(--evf-label);
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.evf-tickets__label--gelb {
	margin-bottom: 9px;
	color: var(--evf-yellow);
	letter-spacing: .1em;
}

.evf-tickets__fliess {
	color: var(--evf-copy-basis);
	font-size: 14px;
	line-height: 1.65;
	text-wrap: pretty;
}

.evf-tickets__fliess--eng {
	max-width: 36ch;
}

.evf-tickets__fliess--breit {
	max-width: 78ch;
	margin-top: 10px;
}

.evf-tickets__intro {
	margin-bottom: 22px;
	color: var(--evf-copy);
	font-size: 15.5px;
	line-height: 1.7;
	text-wrap: pretty;
}

.evf-tickets [class*="__preis"],
.evf-tickets__be-zahl,
.evf-tickets__frist-wert {
	font-variant-numeric: tabular-nums;
	font-feature-settings: 'tnum' 1, 'lnum' 1;
}

/* ---------- Shop-Button ---------- */

.evf-tickets__shop {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	min-height: 44px;
	padding: 18px 24px;
	border: 2px solid var(--evf-black);
	background: var(--evf-yellow);
	box-shadow: 5px 5px 0 rgba(255, 255, 255, .22);
	color: var(--evf-black);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 180ms cubic-bezier(.2, .7, .2, 1), background-color 180ms cubic-bezier(.2, .7, .2, 1);
}

.evf-tickets__shop--kompakt {
	gap: 9px;
	padding: 12px 16px;
	box-shadow: none;
	font-size: 11.5px;
	letter-spacing: .09em;
}

.evf-tickets__shop:hover,
.evf-tickets__shop:focus-visible {
	background: var(--evf-yellow-hover);
	color: var(--evf-black);
	transform: translateY(-1px);
}

.evf-tickets__shop--gross:active {
	transform: translate(5px, 5px);
	box-shadow: 0 0 0 rgba(255, 255, 255, .22);
}

.evf-tickets__shop--kompakt:active {
	transform: translateY(0);
}

.evf-tickets__pfeil {
	flex: none;
}

.evf-tickets__shop-zusatz {
	margin-top: 12px;
	color: var(--evf-meta);
	font-size: 12.5px;
	line-height: 1.5;
}

/* ---------- Hero ---------- */

.evf-tickets__hero {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 56px;
	align-items: end;
}

/* ---------- Sprungnavigation ---------- */

.evf-tickets__nav {
	padding: 0 var(--evf-pad-x);
	border-top: 1px solid rgba(255, 255, 255, .14);
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.evf-tickets__nav-liste {
	display: flex;
	align-items: center;
	gap: 26px;
	min-height: 56px;
	margin: 0;
	overflow-x: auto;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
}

.evf-tickets__nav-liste::-webkit-scrollbar {
	display: none;
}

.evf-tickets__nav-liste > li {
	flex: none;
	scroll-snap-align: start;
}

.evf-tickets__jump {
	display: flex;
	align-items: center;
	min-height: 44px;
	color: rgba(255, 255, 255, .78);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .09em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

.evf-tickets__jump:hover,
.evf-tickets__jump.ist-aktiv {
	color: var(--evf-yellow);
}

@media screen and (min-width: 1024px) {

	.evf-tickets__nav {
		position: sticky;
		top: var(--evf-header);
		z-index: 20;
	}
}

@media (prefers-reduced-motion: no-preference) {

	.evf-tickets {
		scroll-behavior: smooth;
	}
}

/* ---------- Fristenband ---------- */

.evf-tickets__fristen {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.evf-tickets__frist {
	padding: 0 24px;
	border-left: 1px solid var(--evf-auf-gelb-linie);
}

.evf-tickets__frist:first-child {
	padding-left: 0;
	border-left: 0;
}

.evf-tickets__frist:last-child {
	padding-right: 0;
}

.evf-tickets__frist .evf-tickets__label {
	margin-bottom: 7px;
	color: var(--evf-auf-gelb-label);
	letter-spacing: .1em;
}

.evf-tickets__frist-wert {
	font-family: var(--evf-font-display);
	font-size: 38px;
	font-weight: 400;
	line-height: 1;
	color: var(--evf-black);
}

.evf-tickets__frist-text {
	margin-top: 6px;
	color: var(--evf-auf-gelb);
	font-size: 12.5px;
	line-height: 1.5;
}

/* ---------- Kopfzeile eines Abschnitts ---------- */

.evf-tickets__kopfzeile {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 30px;
}

.evf-tickets__kopfzeile-text {
	max-width: 42ch;
	color: var(--evf-meta);
	font-size: 13.5px;
	line-height: 1.6;
	text-align: right;
	text-wrap: pretty;
}

.evf-tickets__zweispalt {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 52px;
	align-items: start;
}

.evf-tickets__zweispalt--erm {
	grid-template-columns: .85fr 1.15fr;
}

.evf-tickets__zweispalt .evf-tickets__h2 {
	margin-bottom: 14px;
}

/* ---------- Preiskarten ---------- */

.evf-tickets__karten {
	display: grid;
	gap: 24px;
}

.evf-tickets__karten--2 {
	grid-template-columns: 1fr 1fr;
}

.evf-tickets__karten--3 {
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

/* Vorbereitung · Hauptrunde · Playoffs — die Spaltenzahl kommt aus der Zahl
   der eingeschalteten Kategorien, nicht aus dem Stylesheet. */
.evf-tickets__karten--auto {
	grid-template-columns: repeat(var(--evf-spalten, 2), minmax(0, 1fr));
	gap: 20px;
}

.evf-tickets__karte {
	border: 2px solid var(--evf-rahmen);
	transition: border-color 180ms cubic-bezier(.2, .7, .2, 1);
}

.evf-tickets__karte:hover {
	border-color: var(--evf-yellow);
}

.evf-tickets__karte--dk {
	border-top: 5px solid var(--evf-yellow);
}

.evf-tickets__karte--familie {
	border-color: var(--evf-yellow);
}

.evf-tickets__karte-kopf {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px 16px;
	border-bottom: 1px solid var(--evf-linie-kopf);
}

.evf-tickets__karte--familie .evf-tickets__karte-kopf {
	align-items: center;
	padding: 13px 20px;
	border-bottom: 0;
	background: var(--evf-yellow);
}

.evf-tickets__karte--familie .evf-tickets__karte-name {
	font-size: 26px;
	color: var(--evf-black);
}

.evf-tickets__karte--familie .evf-tickets__label {
	color: var(--evf-auf-gelb-label);
}

.evf-tickets__karte-name {
	font-family: var(--evf-font-display);
	font-size: 32px;
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
	color: var(--evf-white);
}

.evf-tickets__karte--einzel .evf-tickets__karte-name {
	font-size: 28px;
}

.evf-tickets__karte-leib {
	padding: 6px 24px 20px;
}

.evf-tickets__karte--familie .evf-tickets__karte-leib {
	padding: 4px 22px 18px;
}

.evf-tickets__zeile {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 0;
	border-bottom: 1px solid var(--evf-linie);
}

.evf-tickets__zeile--einzel {
	padding: 11px 0;
	gap: 16px;
}

.evf-tickets__karte-leib > .evf-tickets__zeile:last-child {
	border-bottom: 0;
}

.evf-tickets__zeile-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.evf-tickets__tarif {
	color: var(--evf-copy);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
}

.evf-tickets__zeile--einzel .evf-tickets__tarif {
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.4;
}

.evf-tickets__zeile--familie .evf-tickets__tarif {
	color: var(--evf-copy-stark);
	font-size: 14px;
	font-weight: 400;
}

.evf-tickets__tarif-unter {
	color: var(--evf-label);
	font-size: 12.5px;
	line-height: 1.4;
}

.evf-tickets__preis-gross {
	flex: none;
	font-family: var(--evf-font-display);
	font-size: 30px;
	font-weight: 400;
	line-height: 1;
	color: var(--evf-yellow);
}

.evf-tickets__zeile--familie .evf-tickets__preis-gross {
	font-size: 28px;
}

.evf-tickets__preis-klein {
	flex: none;
	color: var(--evf-yellow);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}

.evf-tickets__karte-fuss {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 16px;
}

.evf-tickets__karte-zusatz {
	color: var(--evf-meta);
	font-size: 12.5px;
	line-height: 1.5;
}

.evf-tickets__hinweise {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	margin-top: 22px;
	color: var(--evf-meta);
	font-size: 13px;
	line-height: 1.55;
}

/* ---------- Raster im 1-px-Gitter ---------- */

.evf-tickets__raster {
	display: grid;
	gap: 1px;
	background: var(--evf-linie-kopf);
}

.evf-tickets__raster--2 {
	grid-template-columns: 1fr 1fr;
}

/* Break-even-Raster.
 *
 * Die Trennlinien liegen als Rahmen an den Zellen, nicht als Lücken über einer
 * hinterlegten Fläche. Nur so bleibt eine kurz gebliebene letzte Reihe leer,
 * ohne einen helleren Rest oder eine ins Nichts laufende Linie zu zeigen —
 * und die senkrechten Linien beider Reihen stehen exakt übereinander.
 */

.evf-tickets__raster--be {
	grid-template-columns: repeat(var(--evf-spalten), minmax(0, 1fr));
	gap: 0;
	margin-top: 28px;
	background: none;
}

.evf-tickets__be {
	border-top: 1px solid var(--evf-linie-kopf);
	border-left: 1px solid var(--evf-linie-kopf);
}

/* Erste Reihe ohne Oberkante, erste Spalte ohne linke Kante. Die Regelsätze
   gibt es für jede mögliche Spaltenzahl, weil CSS kein variables nth-child
   kennt. */

.evf-tickets__raster--be[data-spalten="4"] > .evf-tickets__be:nth-child(-n+4),
.evf-tickets__raster--be[data-spalten="3"] > .evf-tickets__be:nth-child(-n+3),
.evf-tickets__raster--be[data-spalten="2"] > .evf-tickets__be:nth-child(-n+2),
.evf-tickets__raster--be[data-spalten="1"] > .evf-tickets__be:nth-child(-n+1) {
	border-top: 0;
}

.evf-tickets__raster--be[data-spalten="4"] > .evf-tickets__be:nth-child(4n+1),
.evf-tickets__raster--be[data-spalten="3"] > .evf-tickets__be:nth-child(3n+1),
.evf-tickets__raster--be[data-spalten="2"] > .evf-tickets__be:nth-child(2n+1),
.evf-tickets__raster--be[data-spalten="1"] > .evf-tickets__be {
	border-left: 0;
}

.evf-tickets__vorteil {
	padding: 20px 22px;
	background: var(--evf-ink-950);
}

.evf-tickets__vorteil-titel {
	margin-bottom: 7px;
	color: var(--evf-yellow);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.3;
}

.evf-tickets__vorteil-text {
	color: var(--evf-copy-basis);
	font-size: 13.5px;
	line-height: 1.6;
}

.evf-tickets__be {
	padding: 22px 24px;
}

.evf-tickets__be .evf-tickets__label {
	display: block;
	margin-bottom: 12px;
	color: rgba(255, 255, 255, .72);
}

.evf-tickets__be-zahl {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.evf-tickets__be-zahl b {
	font-family: var(--evf-font-display);
	font-size: 46px;
	font-weight: 400;
	line-height: 1;
	color: var(--evf-yellow);
}

.evf-tickets__be-zahl span {
	color: var(--evf-white);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
}

.evf-tickets__be-rechnung {
	margin-top: 10px;
	color: var(--evf-meta);
	font-size: 12.5px;
	line-height: 1.5;
}

/* ---------- Zuschläge ---------- */

.evf-tickets__zuschlaege {
	margin-top: 20px;
}

.evf-tickets__zuschlag {
	padding: 18px 22px;
	border: 2px solid var(--evf-yellow);
	background: rgba(255, 180, 0, .08);
}

.evf-tickets__zuschlag-text {
	color: var(--evf-copy-stark);
	font-size: 13.5px;
	line-height: 1.6;
}

/* ---------- Familienkarte ---------- */

.evf-tickets__familie {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: 24px;
	align-items: start;
}

.evf-tickets__familie:has(> :only-child) {
	grid-template-columns: minmax(0, 1.15fr);
}

/* ---------- Ermäßigung ---------- */

.evf-tickets__raster--erm {
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	background: none;
}

.evf-tickets__erm {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	border: 2px solid var(--evf-rahmen);
}

.evf-tickets__erm-kurz {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background: var(--evf-yellow);
	color: var(--evf-black);
	font-family: var(--evf-font-display);
	font-size: 15px;
	line-height: 1;
}

.evf-tickets__erm-text {
	color: var(--evf-white);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.4;
}

/* ---------- Vorverkauf ---------- */

.evf-tickets__vv {
	padding: 22px 24px;
	border: 2px solid var(--evf-rahmen);
}

.evf-tickets__vv--empfohlen {
	border-color: var(--evf-yellow);
	background: rgba(255, 180, 0, .08);
}

.evf-tickets__vv .evf-tickets__fliess {
	margin-bottom: 16px;
	color: var(--evf-copy-stark);
}

.evf-tickets__vv .evf-tickets__label {
	display: block;
	margin-bottom: 10px;
}

/* ---------- Downloads ---------- */

.evf-tickets__downloads {
	margin-top: 20px;
	gap: 20px;
}

.evf-tickets__download {
	display: flex;
	align-items: center;
	gap: 13px;
	min-height: 44px;
	padding: 15px 18px;
	border: 2px solid var(--evf-rahmen);
	text-decoration: none;
	transition: background-color 180ms cubic-bezier(.2, .7, .2, 1);
}

.evf-tickets__download:hover {
	background: rgba(255, 255, 255, .06);
}

.evf-tickets__download-titel {
	color: var(--evf-white);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.evf-tickets__badge {
	flex: none;
	padding: 5px 7px;
	background: var(--evf-yellow);
	color: var(--evf-black);
	font-size: 9.5px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* ---------- Platzhalter ---------- */

.evf-tickets__platzhalter {
	padding: 18px 22px;
	border: 2px dashed var(--evf-rahmen-dash);
}

.evf-tickets__platzhalter-kopf {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}

.evf-tickets__platzhalter-label {
	color: var(--evf-copy-basis);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.evf-tickets__offene {
	display: grid;
	gap: 12px;
	color: var(--evf-copy-basis);
	font-size: 13.5px;
	line-height: 1.6;
}

.evf-tickets__platzhalter-fuss {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--evf-linie-kopf);
	color: rgba(255, 255, 255, .7);
	font-size: 12.5px;
	line-height: 1.5;
}

/* ---------- Kontakt ---------- */

.evf-tickets__kontakt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	flex-wrap: wrap;
}

.evf-tickets__kontakt-text {
	margin-top: 10px;
	max-width: 60ch;
	color: var(--evf-auf-gelb);
	font-size: 14px;
	line-height: 1.65;
	text-wrap: pretty;
}

.evf-tickets__mail {
	display: inline-flex;
	flex: none;
	align-items: center;
	min-height: 52px;
	padding: 16px 24px;
	background: var(--evf-black);
	color: var(--evf-white);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .04em;
	text-decoration: none;
	transition: transform 180ms cubic-bezier(.2, .7, .2, 1);
}

.evf-tickets__mail:hover {
	transform: translateY(-1px);
	color: var(--evf-yellow);
}

.evf-tickets__sektion--gelb .evf-tickets__platzhalter {
	border-color: rgba(0, 0, 0, .32);
}

.evf-tickets__sektion--gelb .evf-tickets__fliess,
.evf-tickets__sektion--gelb .evf-tickets__platzhalter-label {
	color: var(--evf-auf-gelb);
}

/* ---------- Footer ---------- */

.evf-tickets__footer {
	color: var(--evf-fuss);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-align: right;
}

/* ---------- Nur der Button (Shortcode) ---------- */

.evf-tickets--button {
	display: inline-block;
	background: none;
	padding: 0;
}

/* ---------- Fokus. Nie entfernen. ---------- */

.evf-tickets a:focus-visible {
	outline: 3px solid var(--evf-yellow);
	outline-offset: 2px;
}

.evf-tickets__sektion--gelb a:focus-visible {
	outline-color: var(--evf-black);
}

@media (prefers-reduced-motion: reduce) {

	.evf-tickets *,
	.evf-tickets *::before,
	.evf-tickets *::after {
		transition: none !important;
		animation: none !important;
	}

	.evf-tickets {
		scroll-behavior: auto;
	}
}

/* ================= Breakpoints ================= */

@media screen and (max-width: 1279px) {

	.evf-tickets {
		--evf-pad-x: 64px;
	}
}

@media screen and (max-width: 1023px) {

	.evf-tickets {
		--evf-pad-x: 40px;
	}

	.evf-tickets__h1 {
		font-size: 62px;
	}

	.evf-tickets__hero {
		grid-template-columns: 1fr;
		gap: 32px;
		align-items: start;
	}

	.evf-tickets__zweispalt,
	.evf-tickets__zweispalt--erm {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.evf-tickets__raster--be {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.evf-tickets__raster--be > .evf-tickets__be {
		border-top: 1px solid var(--evf-linie-kopf);
		border-left: 1px solid var(--evf-linie-kopf);
	}

	.evf-tickets__raster--be > .evf-tickets__be:nth-child(-n+2) {
		border-top: 0;
	}

	.evf-tickets__raster--be > .evf-tickets__be:nth-child(2n+1) {
		border-left: 0;
	}

	.evf-tickets__karten--3 {
		grid-template-columns: 1fr 1fr;
	}

	.evf-tickets__familie {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 767px) {

	.evf-tickets {
		--evf-pad-x: 24px;
		--evf-pad-y: 40px;
	}

	.evf-tickets__h1 {
		font-size: 42px;
	}

	.evf-tickets__h2,
	.evf-tickets__sektion--dauerkarten .evf-tickets__h2 {
		font-size: 32px;
	}

	.evf-tickets__h2--dunkel {
		font-size: 30px;
	}

	.evf-tickets__karten--2,
	.evf-tickets__karten--3,
	.evf-tickets__karten--auto,
	.evf-tickets__raster--2,
	.evf-tickets__raster--be {
		grid-template-columns: minmax(0, 1fr);
	}

	.evf-tickets__raster--be > .evf-tickets__be {
		border-left: 0;
		border-top: 1px solid var(--evf-linie-kopf);
	}

	.evf-tickets__raster--be > .evf-tickets__be:first-child {
		border-top: 0;
	}

	.evf-tickets__raster--2 {
		gap: 1px;
	}

	.evf-tickets__kopfzeile {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.evf-tickets__kopfzeile-text {
		text-align: left;
	}

	.evf-tickets__shop {
		display: flex;
		width: 100%;
		justify-content: center;
		box-shadow: none;
	}

	.evf-tickets__karte-fuss .evf-tickets__shop {
		width: auto;
	}

	.evf-tickets__nav-liste {
		gap: 20px;
	}

	.evf-tickets__mail {
		width: 100%;
		justify-content: center;
	}

	.evf-tickets__footer {
		text-align: left;
	}
}

@media screen and (max-width: 479px) {

	.evf-tickets__fristen {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.evf-tickets__frist {
		padding: 0 0 20px;
		border-left: 0;
		border-bottom: 1px solid var(--evf-auf-gelb-linie);
	}

	.evf-tickets__frist:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}

	.evf-tickets__raster--erm {
		grid-template-columns: 1fr;
	}

	/* Preiszeile bricht auf zwei Zeilen: Name oben, Preis rechts darunter. */
	.evf-tickets__zeile {
		flex-direction: column;
		align-items: stretch;
		gap: 6px;
	}

	.evf-tickets__preis-gross,
	.evf-tickets__preis-klein {
		text-align: right;
	}
}

/* ---------- Vereinswappen (optional) ---------- */

.evf-tickets__wasserzeichen {
	position: absolute;
	top: -40px;
	right: -70px;
	width: 420px;
	height: auto;
	opacity: .05;
	pointer-events: none;
}

.evf-tickets__fusszeile {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.evf-tickets__wappen {
	flex: none;
	width: 28px;
	height: 28px;
}
