/**
 * c-legal - text pages (Impressum, Datenschutz)
 * =============================================
 *   .c-legal                 <section>, the whole page body
 *     .c-legal__inner        content box
 *       .c-legal__head       eyebrow, h1 (.c-title), lead
 *       .c-legal__body       glass card holding the text (.c-prose)
 *
 *   .c-prose                 long-form text from a Bricks Rich Text element:
 *                            h2 / h3 / p / ul / ol / a / strong, readable measure
 *
 * The page ends above the footer wave, so the section keeps
 * --c-footer-wave-h of room at the bottom (see c-footer.css).
 * Added 2026-10-20 (Blueprint One-pager).
 */

.c-legal {
	position: relative;
	overflow: clip;
	padding: calc(var(--c-header-space, 11.2rem) + 4rem) 0 calc(var(--c-footer-wave-h, 12rem) + 8rem);
	background: linear-gradient(170deg, #F4EFE8 0%, #EEF1EA 45%, var(--surface, #FBF8F4) 100%);
}

.c-legal::before {
	content: "";
	position: absolute;
	right: -20rem;
	top: -20rem;
	width: 64rem;
	height: 64rem;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(140, 192, 222, 0.4), rgba(140, 192, 222, 0) 65%);
	filter: blur(24px);
	pointer-events: none;
}

.c-legal__inner {
	position: relative;
	width: min(100% - 2 * var(--content-gutter, 2.4rem), var(--content-width, 129.6rem));
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.c-legal__head {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
	max-width: 80rem;
}

.c-legal__head .c-title {
	font-size: clamp(4rem, 2.8rem + 3vw, 6.4rem);
}

.c-legal__lead {
	margin: 0;
	font-size: clamp(1.6rem, 1.4rem + 0.4vw, 1.9rem);
	line-height: 1.6;
	color: var(--ink-muted);
}

.c-legal__body {
	max-width: 88rem;
	padding: clamp(2.4rem, 1.6rem + 3vw, 5.6rem);
	border-radius: var(--radius-2xl, 4rem);
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid var(--glass-border);
	box-shadow: 0 40px 80px -56px rgba(27, 47, 69, 0.45);
}

/* ---------- prose ---------- */
.c-prose {
	max-width: 72ch;
	font-size: 1.6rem;
	line-height: 1.7;
	color: var(--ink);
}

.c-prose > :first-child {
	margin-top: 0;
}

.c-prose > :last-child {
	margin-bottom: 0;
}

.c-prose h2 {
	margin: 4.8rem 0 1.4rem;
	font-size: clamp(2.4rem, 2rem + 0.8vw, 3rem);
	line-height: 1.15;
}

.c-prose h3 {
	margin: 3.2rem 0 0.8rem;
	font-family: var(--font-body);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
}

.c-prose p,
.c-prose ul,
.c-prose ol {
	margin: 0 0 1.4rem;
}

.c-prose ul,
.c-prose ol {
	padding-left: 2.2rem;
}

.c-prose li + li {
	margin-top: 0.4rem;
}

.c-prose a {
	color: var(--secondary-d-1, #0E6F8C);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	overflow-wrap: anywhere;
}

.c-prose a:hover {
	color: var(--primary);
}

/* bracketed notes for whoever writes the final text: clearly not final copy */
.c-prose .c-prose__todo {
	display: block;
	margin: 0 0 1.4rem;
	padding: 1.2rem 1.6rem;
	border-left: 3px solid var(--tertiary);
	border-radius: 0 1.2rem 1.2rem 0;
	background: var(--mint, #EAF3F1);
	font-size: 1.4rem;
	line-height: 1.55;
	color: var(--ink-muted);
}

@media (max-width: 767px) {
	.c-legal {
		padding-top: 12rem;
	}

	.c-legal__inner {
		width: calc(100% - 3.2rem);
		gap: 2.4rem;
	}

	.c-legal__body {
		border-radius: 2.8rem;
	}

	.c-prose {
		font-size: 1.5rem;
	}
}
