/* MARCH PUMPEN – Rechtliche Seiten (Impressum, Datenschutz, AGB)
   Der Text nutzt bewusst die volle Inhaltsbreite. Ordnung kommt von Überschriften mit Trennlinie und dem Inhaltsverzeichnis. */

.legal-head__title,
.legal-body h2,
.legal-body h3,
.legal-toc__title {
	font-family: var(--font-display);
	font-weight: 700;
	text-wrap: balance;
}

.legal-head {
	background:
		radial-gradient(60rem 22rem at 8% 0%, rgba(71, 208, 255, .1), transparent 70%),
		linear-gradient(180deg, var(--color-bg-alt), var(--color-bg));
	padding-block: clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 3vw, 2.25rem);
}
.legal-head__title { margin: 0; font-size: clamp(2.4rem, 6vw, 5rem); line-height: .95; letter-spacing: -.025em; overflow-wrap: break-word; }
.legal-head__lead { margin: 1rem 0 0; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.55; }

.legal { padding-block: clamp(1.5rem, 3vw, 2.5rem) clamp(3rem, 7vw, 6rem); }

/* Inhaltsverzeichnis */
.legal-toc {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	padding: 1.25rem clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--color-line);
	border-radius: .375rem;
	background: var(--color-bg-alt);
}
.legal-toc__title { margin: 0 0 .75rem; font-size: 1.35rem; line-height: 1.15; }
.legal-toc ol { margin: 0; padding: 0; list-style: none; columns: 3 20rem; column-gap: 2.5rem; counter-reset: toc; }
.legal-toc li { break-inside: avoid; counter-increment: toc; padding-block: .2rem; }
.legal-toc li::before { content: counter(toc) "."; display: inline-block; min-width: 1.75rem; color: var(--color-cyan); font-weight: 700; }
.legal-toc--own li::before { content: none; }
.legal-toc a { text-decoration: none; }
.legal-toc a:hover { color: var(--color-cyan); text-decoration: underline; text-underline-offset: .2em; }

/* Text */
.legal-body { font-size: 1.125rem; line-height: 1.75; }
.legal-body > :first-child { margin-top: 0; }
.legal-body p { margin: 0 0 1.1rem; }
.legal-body h2 {
	margin: clamp(2rem, 4vw, 3rem) 0 1rem;
	padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
	border-top: 1px solid var(--color-line);
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	line-height: 1.1;
}
.legal-body > h2:first-child,
.legal-body > .legal-lead + h2 { border-top: 0; padding-top: 0; }
.legal-body h3 { margin: 1.75rem 0 .6rem; font-size: 1.4rem; line-height: 1.2; }
.legal-body a { color: var(--color-cyan); text-underline-offset: .2em; overflow-wrap: anywhere; }
.legal-body a:hover { text-decoration-thickness: 2px; }
.legal-body strong { font-weight: 700; }
.legal-body address { margin: 0 0 1.25rem; line-height: 1.6; padding: 1rem 1.25rem; border-left: 3px solid var(--color-cyan); background: var(--color-bg-alt); font-style: normal; }
.legal-body ul,
.legal-body ol { margin: 0 0 1.25rem; padding-left: 1.4rem; }
.legal-body ul { list-style: none; padding-left: 0; }
.legal-body ul li { position: relative; margin-bottom: .45rem; padding-left: 1.4rem; }
.legal-body ul li::before { content: ""; position: absolute; left: .1rem; top: .72em; width: .5rem; height: .5rem; background: var(--color-cyan); }
.legal-body li { line-height: 1.65; }
.legal-lead { color: var(--color-text-muted); font-size: 1.25rem; }

/* AGB: Absatznummern hängen links */
.legal-body p:has(> .legal-no:first-child) { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: .5rem; }
.legal-no { color: var(--color-cyan); font-weight: 700; font-variant-numeric: tabular-nums; }

@media (max-width: 48rem) {
	.legal-body { font-size: 1.05rem; }
	.legal-body p:has(> .legal-no:first-child) { grid-template-columns: 3rem minmax(0, 1fr); }
}
