.tsch-hero {
	position: relative;
	isolation: isolate;
	padding-block: clamp(var(--space-2xl), 8vw, var(--space-4xl)) var(--space-2xl);
	background: var(--color-ink);
	overflow: hidden;
}

/* Foto als Grundstimmung, stark abgedunkelt — der Text muss tragen, nicht das Bild. */
.tsch-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.tsch-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}
.tsch-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(to right, rgb(var(--color-ink-rgb) / 0.96) 0%, rgb(var(--color-ink-rgb) / 0.88) 50%, rgb(var(--color-ink-rgb) / 0.80) 100%),
		linear-gradient(to bottom, transparent 40%, rgb(var(--color-ink-rgb) / 0.55) 100%),
		radial-gradient(70% 60% at 20% 20%, rgb(var(--color-primary-rgb) / 0.18), transparent 70%);
}

.tsch-hero__content {
	max-width: 640px;
	margin-block-end: var(--space-2xl);
}

.tsch-hero__script {
	font-size: clamp(30px, 6vw, 52px);
	margin-block-end: -6px;
}

.tsch-hero__title {
	font-size: clamp(44px, 11vw, 104px);
	font-weight: var(--weight-bold);
	line-height: 0.95;
	letter-spacing: 0.005em;
	color: var(--color-cream);
	text-shadow: 0 6px 30px rgba(0, 0, 0, 0.55);
}

.tsch-hero__lead {
	max-width: 52ch;
	margin-block-start: var(--space-lg);
	color: var(--color-cream);
}

.tsch-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	margin-block-start: var(--space-xl);
}

/* Hero ist Above-the-fold: reine CSS-Einblendung, kein JS-Gating. */
@keyframes tsch-hero-in {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: none; }
}
.tsch-hero__content > * { animation: tsch-hero-in 700ms ease both; }
.tsch-hero__content > *:nth-child(2) { animation-delay: 90ms; }
.tsch-hero__content > *:nth-child(3) { animation-delay: 160ms; }
.tsch-hero__content > *:nth-child(4) { animation-delay: 230ms; }
.tsch-hero__content > *:nth-child(5) { animation-delay: 300ms; }

@media (prefers-reduced-motion: reduce) {
	.tsch-hero__content > * { animation: none; }
}

@media (max-width: 700px) {
	.tsch-hero::before {
		background:
			linear-gradient(to bottom, rgb(var(--color-ink-rgb) / 0.88) 0%, rgb(var(--color-ink-rgb) / 0.94) 60%, rgb(var(--color-ink-rgb) / 0.98) 100%);
	}
	.tsch-hero__actions .tsch-btn { flex: 1 1 100%; }
}

/* Die beiden Veranstaltungen direkt unter dem Einstieg — sie beantworten die
   erste Frage jedes Besuchers: wo und wann kann ich überhaupt buchen. */
.tsch-hero__events {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-lg) var(--space-2xl);
	margin-block: var(--space-lg) 0;
	padding: 0;
	list-style: none;
}
.tsch-hero__events li {
	position: relative;
	padding-inline-start: var(--space-md);
}
.tsch-hero__events li::before {
	content: "";
	position: absolute;
	inset-block: 2px;
	inset-inline-start: 0;
	width: 2px;
	background: var(--color-primary);
	border-radius: 1px;
}
.tsch-hero__event-name {
	display: block;
	font-family: var(--font-headline);
	font-size: var(--text-small);
	font-weight: var(--weight-semibold);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-primary-light);
}
.tsch-hero__event-name a { color: inherit; }
.tsch-hero__event-place {
	display: block;
	margin-block-start: 2px;
	font-size: var(--text-small);
	color: var(--color-cream-dim);
}
