/**
 * FAZ 10A — Legal document pages. Readability first: ~75ch measure, generous line
 * height, clear heading hierarchy, green section markers, sticky TOC on wide screens,
 * single column on mobile, print-friendly.
 */

.mt-legal {
	--mt-legal-measure: 74ch;
	padding-bottom: var(--mt-space-16);
	background: var(--mt-bg-page);
}

/* Hero ------------------------------------------------------------------ */
.mt-legal-hero {
	padding: var(--mt-space-4) 0 var(--mt-space-8);
	border-bottom: 1px solid var(--mt-border-subtle);
	background: linear-gradient(180deg, var(--mt-bg-soft-green) 0%, var(--mt-bg-page) 100%);
}

.mt-legal-hero .mt-breadcrumb {
	margin-bottom: var(--mt-space-5);
}

.mt-legal-hero__row {
	display: flex;
	align-items: flex-start;
	gap: var(--mt-space-5);
}

.mt-legal-hero__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border: 1px solid var(--mt-green-200);
	border-radius: var(--mt-radius-xl);
	background: var(--mt-bg-surface);
	color: var(--mt-color-primary);
	box-shadow: var(--mt-shadow-sm);
}

.mt-legal-hero__title {
	margin: 0;
	font-family: var(--mt-font-heading);
	font-size: var(--mt-fs-4xl);
	font-weight: var(--mt-fw-extrabold);
	letter-spacing: var(--mt-ls-tight);
	line-height: var(--mt-lh-tight);
	color: var(--mt-text-heading);
}

.mt-legal-hero__desc {
	max-width: 70ch;
	margin: var(--mt-space-3) 0 0;
	color: var(--mt-text-secondary);
	font-size: var(--mt-fs-lg);
	line-height: var(--mt-lh-normal);
}

.mt-legal-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mt-space-2) var(--mt-space-4);
	margin: var(--mt-space-4) 0 0;
	color: var(--mt-text-secondary);
	font-size: var(--mt-fs-sm);
}

.mt-legal-hero__meta > span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.mt-legal-hero__draft {
	padding: 2px var(--mt-space-2);
	border: 1px dashed var(--mt-warning);
	border-radius: var(--mt-radius-sm);
	background: var(--mt-warning-bg);
	color: var(--mt-warning);
	font-weight: var(--mt-fw-semibold);
}

/* Layout ---------------------------------------------------------------- */
.mt-legal__layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: var(--mt-space-12);
	align-items: start;
	padding-top: var(--mt-space-10);
}

.mt-legal__article {
	min-width: 0;
	max-width: calc(var(--mt-legal-measure) + 4rem);
}

/* TOC ------------------------------------------------------------------- */
.mt-legal-toc {
	position: sticky;
	top: calc(var(--mt-header-h-compact) + var(--mt-space-6));
	max-height: calc(100vh - var(--mt-header-h-compact) - var(--mt-space-12));
	overflow-y: auto;
}

.mt-legal-toc__box {
	padding: var(--mt-space-4);
	border: 1px solid var(--mt-border-subtle);
	border-radius: var(--mt-radius-lg);
	background: var(--mt-bg-surface);
}

.mt-legal-toc__title {
	display: flex;
	align-items: center;
	gap: var(--mt-space-2);
	font-family: var(--mt-font-heading);
	font-weight: var(--mt-fw-bold);
	color: var(--mt-text-heading);
	cursor: pointer;
	list-style: none;
}

.mt-legal-toc__title::-webkit-details-marker {
	display: none;
}

.mt-legal-toc__title .mt-icon {
	color: var(--mt-color-primary);
}

.mt-legal-toc__list {
	margin: var(--mt-space-3) 0 0;
	padding: 0;
	list-style: none;
	counter-reset: mt-toc;
}

.mt-legal-toc__list a {
	display: block;
	padding: 6px var(--mt-space-2) 6px var(--mt-space-3);
	border-left: 2px solid var(--mt-border-subtle);
	color: var(--mt-text-secondary);
	font-size: var(--mt-fs-sm);
	line-height: var(--mt-lh-snug);
	text-decoration: none;
}

.mt-legal-toc__list a:hover {
	color: var(--mt-text-heading);
	border-left-color: var(--mt-green-300);
}

.mt-legal-toc__list a[aria-current] {
	border-left-color: var(--mt-color-primary);
	color: var(--mt-color-primary-strong);
	font-weight: var(--mt-fw-semibold);
	background: var(--mt-color-primary-soft);
}

.mt-legal-toc__list a:focus-visible {
	outline: none;
	box-shadow: var(--mt-focus-ring);
}

/* Document body ---------------------------------------------------------- */
.mt-legal__content {
	color: var(--mt-text-body);
	font-size: var(--mt-fs-lg);
	line-height: 1.75;
}

.mt-legal__content > * {
	max-width: var(--mt-legal-measure);
}

.mt-legal__content h2 {
	position: relative;
	margin: var(--mt-space-12) 0 var(--mt-space-4);
	padding-left: var(--mt-space-4);
	font-family: var(--mt-font-heading);
	font-size: var(--mt-fs-2xl);
	font-weight: var(--mt-fw-bold);
	line-height: var(--mt-lh-snug);
	color: var(--mt-text-heading);
	scroll-margin-top: calc(var(--mt-header-h-compact) + var(--mt-space-6));
}

.mt-legal__content h2::before {
	content: "";
	position: absolute;
	top: 0.2em;
	bottom: 0.2em;
	left: 0;
	width: 4px;
	border-radius: var(--mt-radius-pill);
	background: var(--mt-color-primary);
}

.mt-legal__content > h2:first-child {
	margin-top: 0;
}

.mt-legal__content h2:focus {
	outline: none;
}

.mt-legal__content h3 {
	margin: var(--mt-space-8) 0 var(--mt-space-2);
	font-family: var(--mt-font-heading);
	font-size: var(--mt-fs-xl);
	font-weight: var(--mt-fw-bold);
	color: var(--mt-text-heading);
}

.mt-legal__content p,
.mt-legal__content ul,
.mt-legal__content ol {
	margin: 0 0 var(--mt-space-4);
}

.mt-legal__content ul,
.mt-legal__content ol {
	padding-left: 1.4em;
}

.mt-legal__content li {
	margin-bottom: var(--mt-space-2);
}

.mt-legal__content li::marker {
	color: var(--mt-color-primary);
	font-weight: var(--mt-fw-bold);
}

.mt-legal__content a {
	color: var(--mt-text-link);
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

.mt-legal__content strong {
	color: var(--mt-text-heading);
}

/* Tables: scroll container (wp:table figure) */
.mt-legal__content .wp-block-table {
	max-width: none;
	margin: var(--mt-space-4) 0 var(--mt-space-6);
	overflow-x: auto;
	border: 1px solid var(--mt-border-subtle);
	border-radius: var(--mt-radius-lg);
}

.mt-legal__content table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	font-size: var(--mt-fs-base);
	line-height: var(--mt-lh-normal);
}

.mt-legal__content th,
.mt-legal__content td {
	padding: var(--mt-space-3);
	border-bottom: 1px solid var(--mt-border-subtle);
	text-align: left;
	vertical-align: top;
}

.mt-legal__content thead th {
	background: var(--mt-bg-subtle);
	color: var(--mt-text-heading);
	font-weight: var(--mt-fw-bold);
	white-space: nowrap;
}

.mt-legal__content tbody tr:last-child td {
	border-bottom: 0;
}

.mt-legal__content figcaption {
	padding: var(--mt-space-2) var(--mt-space-3);
	color: var(--mt-text-muted);
	font-size: var(--mt-fs-sm);
}

/* Highlight box (core/group with class mt-legal-note) */
.mt-legal__content .mt-legal-note {
	max-width: var(--mt-legal-measure);
	margin: var(--mt-space-4) 0 var(--mt-space-6);
	padding: var(--mt-space-4) var(--mt-space-5);
	border-left: 4px solid var(--mt-color-primary);
	border-radius: 0 var(--mt-radius-md) var(--mt-radius-md) 0;
	background: var(--mt-bg-soft-green);
}

.mt-legal__content .mt-legal-note > :last-child {
	margin-bottom: 0;
}

/* Editor-only: sentences hidden from visitors until verified */
.mt-legal__content [data-mt-unverified] {
	outline: 2px dashed var(--mt-warning);
	outline-offset: 3px;
	background: var(--mt-warning-bg);
}

.mt-legal-review {
	margin: 0 0 var(--mt-space-8);
	padding: var(--mt-space-4) var(--mt-space-5);
	border: 1px dashed var(--mt-warning);
	border-radius: var(--mt-radius-lg);
	background: var(--mt-warning-bg);
	color: var(--mt-text-body);
	font-size: var(--mt-fs-sm);
}

.mt-legal-review p {
	margin: 0 0 var(--mt-space-2);
}

.mt-legal-review__title {
	display: flex;
	align-items: center;
	gap: var(--mt-space-2);
	font-weight: var(--mt-fw-bold);
	color: var(--mt-warning);
}

.mt-legal-review ul {
	margin: 0 0 var(--mt-space-2);
	padding-left: 1.2em;
	columns: 2;
}

.mt-legal-review a {
	color: var(--mt-text-link);
	font-weight: var(--mt-fw-semibold);
}

.mt-legal__prefs,
.mt-legal__print {
	margin: var(--mt-space-8) 0 0;
}

.mt-legal__prefs .mt-btn {
	border-radius: var(--mt-radius-pill);
}

.mt-legal__print .mt-btn {
	padding: 0;
	color: var(--mt-text-secondary);
}

/* Related documents ------------------------------------------------------ */
.mt-legal-related {
	margin-top: var(--mt-space-16);
	padding: var(--mt-space-10) 0 0;
	border-top: 1px solid var(--mt-border-subtle);
}

.mt-legal-related__title {
	position: relative;
	margin: 0 0 var(--mt-space-5);
	padding-left: var(--mt-space-3);
	font-family: var(--mt-font-heading);
	font-size: var(--mt-fs-2xl);
	color: var(--mt-text-heading);
}

.mt-legal-related__title::before {
	content: "";
	position: absolute;
	top: 0.15em;
	bottom: 0.15em;
	left: 0;
	width: 4px;
	border-radius: var(--mt-radius-pill);
	background: var(--mt-color-primary);
}

.mt-legal-related__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--mt-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mt-legal-related__card {
	display: flex;
	align-items: center;
	gap: var(--mt-space-3);
	height: 100%;
	padding: var(--mt-space-4) var(--mt-space-5);
	border: 1px solid var(--mt-border-subtle);
	border-radius: var(--mt-radius-lg);
	background: var(--mt-bg-surface);
	color: var(--mt-text-heading);
	font-weight: var(--mt-fw-semibold);
	text-decoration: none;
	transition: border-color var(--mt-dur-fast), box-shadow var(--mt-dur-fast);
}

a.mt-legal-related__card:hover {
	border-color: var(--mt-color-primary);
	box-shadow: var(--mt-shadow-md);
}

a.mt-legal-related__card:focus-visible {
	outline: none;
	box-shadow: var(--mt-focus-ring);
}

.mt-legal-related__card.is-current {
	border-color: var(--mt-green-200);
	background: var(--mt-bg-soft-green);
}

.mt-legal-related__card.is-disabled {
	color: var(--mt-text-muted);
}

.mt-legal-related__icon {
	display: inline-flex;
	color: var(--mt-color-primary);
}

.mt-legal-related__name {
	flex: 1 1 auto;
	min-width: 0;
}

.mt-legal-related__arrow {
	color: var(--mt-color-primary);
}

.mt-legal-related__note {
	color: var(--mt-text-muted);
	font-size: var(--mt-fs-xs);
	font-weight: var(--mt-fw-regular);
}

/* Responsive ----------------------------------------------------------- */
@media (max-width: 1365px) {
	.mt-legal__layout {
		grid-template-columns: 250px minmax(0, 1fr);
		gap: var(--mt-space-8);
	}
}

@media (max-width: 1023px) {
	.mt-legal__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--mt-space-6);
		padding-top: var(--mt-space-6);
	}

	.mt-legal-toc {
		position: static;
		max-height: none;
	}

	.mt-legal-toc__title::after {
		content: "";
		width: 10px;
		height: 10px;
		margin-left: auto;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translateY(-2px);
		transition: transform var(--mt-dur-fast);
	}

	.mt-legal-toc__box[open] .mt-legal-toc__title::after {
		transform: rotate(-135deg) translateY(-2px);
	}

	.mt-legal__article {
		max-width: none;
	}

	.mt-legal-related__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.mt-legal-hero {
		padding-bottom: var(--mt-space-6);
	}

	.mt-legal-hero__row {
		gap: var(--mt-space-3);
	}

	.mt-legal-hero__icon {
		width: 48px;
		height: 48px;
	}

	.mt-legal-hero__icon svg {
		width: 24px;
		height: 24px;
	}

	.mt-legal-hero__title {
		font-size: var(--mt-fs-3xl);
	}

	.mt-legal-hero__desc {
		font-size: var(--mt-fs-md);
	}

	.mt-legal__content {
		font-size: var(--mt-fs-md);
		line-height: 1.7;
	}

	.mt-legal__content h2 {
		margin-top: var(--mt-space-10);
		font-size: var(--mt-fs-xl);
	}

	.mt-legal__content h3 {
		font-size: var(--mt-fs-lg);
	}

	.mt-legal-review ul {
		columns: 1;
	}

	.mt-legal-related__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 479px) {
	.mt-legal-hero__row {
		flex-direction: column;
	}
}

/* Print ------------------------------------------------------------------ */
@media print {
	.site-header,
	.mt-topbar,
	.site-footer,
	.mt-bottom-nav,
	.mt-legal-toc,
	.mt-legal-related,
	.mt-legal__prefs,
	.mt-legal__print,
	.mt-legal-review,
	.mt-breadcrumb {
		display: none !important;
	}

	.mt-legal__layout {
		display: block;
		padding: 0;
	}

	.mt-legal-hero {
		background: none;
		border: 0;
	}

	.mt-legal__content {
		font-size: 12pt;
		line-height: 1.5;
	}

	.mt-legal__content a::after {
		content: " (" attr(href) ")";
		font-size: 9pt;
	}
}
