/* ── OVERLAYS (impressum, datenschutz) ── */
.legal-overlay {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 55;
	background: var(--color-white);
	display: flex;
	flex-direction: column;
	opacity: 0;
	pointer-events: none;
}

.legal-overlay.open {
	opacity: 1;
	pointer-events: all;
}

.overlay-content,
.legal-overlay footer {
	opacity: 0;
	transition: opacity 0.6s ease;
}

.legal-overlay.open .overlay-content,
.legal-overlay.open footer {
	opacity: 1;
	transition-delay: 0.1s;
}

.overlay-content {
	flex: 1;
	overflow-y: auto;
	padding: 16px;
	padding-top: 40px;
}

.legal-overlay footer {
	flex-shrink: 0;
}

.info-headline {
	font-size: var(--text-display-size);
	font-weight: 400;
	letter-spacing: var(--text-display-tracking);
	line-height: var(--text-display-leading);
	margin-bottom: 24px;
}

.info-body {
	max-width: 1080px;
	color: var(--color-dark);
	font-size: var(--text-body-size);
	font-weight: 400;
	letter-spacing: var(--text-body-tracking);
	line-height: var(--text-body-leading);
}

.info-body p + p {
	margin-top: 16px;
}

@media (max-width: 1199.98px) {
	.info-body p + p {
		margin-top: 12px;
	}
}

@media (max-width: 809.98px) {
	.info-body p + p {
		margin-top: 8px;
	}
}

.info-body h3,
.info-body h2 {
	font-size: var(--text-caption-size);
	font-weight: 400;
	letter-spacing: var(--text-caption-tracking);
	line-height: var(--text-caption-leading);
	margin-top: 40px;
	margin-bottom: 24px;
}

.info-body > *:first-child {
	margin-top: 0;
}

.info-body ul {
	padding-left: 20px;
}

/* ── LEGAL PAGES (standalone fallback) ── */
body.legal main {
	padding-top: 80px;
}
