/* =============================================================
   KirkeTjek — Legal / document page (PWTC, DPA, etc.)
   Reuses the design tokens; adds prose + table-of-contents layout.
   ============================================================= */

.legal-hero {
	padding-top: calc(var(--kt-header-h) + var(--kt-space-8));
	padding-bottom: var(--kt-space-6);
	background:
		radial-gradient(circle at 85% -10%, rgba(139, 114, 168, 0.18), transparent 55%),
		var(--kt-surface);
	border-bottom: 1px solid var(--kt-line);
}

.legal-hero__inner {
	max-width: 880px;
	margin-inline: auto;
}

.legal-hero h1 {
	font-size: var(--kt-fs-800);
	margin-block: var(--kt-space-3) var(--kt-space-3);
}

.legal-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--kt-space-2) var(--kt-space-5);
	color: var(--kt-ink-faint);
	font-size: var(--kt-fs-300);
}

.legal-meta strong {
	color: var(--kt-ink-soft);
	font-weight: 600;
}

/* ---- Body layout: sticky TOC + content ---- */
.legal-body {
	padding-block: var(--kt-space-8);
}

.legal-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--kt-space-8);
	align-items: start;
	max-width: 1080px;
	margin-inline: auto;
}

.legal-toc {
	position: sticky;
	top: calc(var(--kt-header-h) + var(--kt-space-4));
	max-height: calc(100vh - var(--kt-header-h) - var(--kt-space-6));
	overflow-y: auto;
	padding-right: var(--kt-space-3);
}

.legal-toc h2 {
	font-size: var(--kt-fs-300);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--kt-ink-faint);
	margin-bottom: var(--kt-space-3);
}

.legal-toc ol {
	list-style: none;
	counter-reset: toc;
	display: grid;
	gap: 2px;
}

.legal-toc a {
	display: block;
	padding: 0.4rem 0.6rem;
	border-radius: var(--kt-radius-sm);
	color: var(--kt-ink-soft);
	font-size: var(--kt-fs-300);
	line-height: 1.4;
	transition: background-color var(--kt-dur-fast) var(--kt-ease),
		color var(--kt-dur-fast) var(--kt-ease);
}

.legal-toc a:hover {
	background: var(--kt-surface-2);
	color: var(--kt-primary);
}

/* ---- Prose ---- */
.legal-prose {
	max-width: 760px;
	color: var(--kt-ink-soft);
}

.legal-prose > .legal-intro {
	font-size: var(--kt-fs-500);
	color: var(--kt-ink);
	margin-bottom: var(--kt-space-6);
}

.legal-prose address {
	font-style: normal;
	margin: var(--kt-space-4) 0;
	padding: var(--kt-space-4) var(--kt-space-5);
	background: var(--kt-surface-2);
	border-radius: var(--kt-radius-md);
	border: 1px solid var(--kt-line);
	font-size: var(--kt-fs-400);
	line-height: var(--kt-lh-snug);
}

.legal-section {
	padding-top: var(--kt-space-5);
	margin-top: var(--kt-space-5);
	border-top: 1px solid var(--kt-line);
	scroll-margin-top: calc(var(--kt-header-h) + var(--kt-space-4));
}

.legal-section:first-of-type {
	border-top: 0;
}

.legal-section > h2 {
	font-size: var(--kt-fs-600);
	color: var(--kt-ink);
	margin-bottom: var(--kt-space-4);
}

.legal-section h3 {
	font-size: var(--kt-fs-500);
	color: var(--kt-ink);
	margin-top: var(--kt-space-5);
	margin-bottom: var(--kt-space-2);
}

/* Numbered clause: hanging clause number + text */
.clause {
	display: grid;
	grid-template-columns: 3.2rem 1fr;
	gap: 0.5rem;
	margin-bottom: var(--kt-space-3);
	line-height: var(--kt-lh-base);
}

.clause__no {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--kt-primary);
}

.clause--sub {
	grid-template-columns: 3.2rem 1fr;
	padding-left: var(--kt-space-4);
}

.legal-section p {
	margin-bottom: var(--kt-space-3);
}

.legal-callout {
	margin: var(--kt-space-4) 0;
	padding: var(--kt-space-4) var(--kt-space-5);
	background: var(--kt-primary-container);
	color: var(--kt-on-primary-container);
	border-radius: var(--kt-radius-md);
}

.back-home {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: var(--kt-fs-300);
	font-weight: 600;
	color: var(--kt-primary);
}

.back-home svg { width: 18px; height: 18px; }

@media (max-width: 920px) {
	.legal-layout {
		grid-template-columns: 1fr;
		gap: var(--kt-space-6);
	}

	.legal-toc {
		position: static;
		max-height: none;
		border: 1px solid var(--kt-line);
		border-radius: var(--kt-radius-md);
		padding: var(--kt-space-4);
		background: var(--kt-surface);
	}
}

@media (max-width: 560px) {
	.legal-hero h1 { font-size: var(--kt-fs-700); }
	.clause { grid-template-columns: 2.6rem 1fr; }
	.clause--sub { padding-left: var(--kt-space-2); }
}
