/**
 * Legal documents (T14.5). Loaded only in legal context.
 * Reading measure, TOC (not sticky), print. No cookie banner.
 */

.po-page--legal.po-main,
main.po-page--legal {
	padding-block-start: var(--po-space-inset, 2.5rem);
	padding-block-end: 4rem;
	min-width: 0;
}

body.po-legal {
	scroll-padding-top: max(6.5rem, calc(env(safe-area-inset-top, 0px) + 8.75rem));
}

.po-page--legal .po-legal__intro,
.po-page--legal .po-page__intro {
	display: grid;
	gap: 0.75rem;
	margin-block-end: 2rem;
	min-width: 0;
}

.po-page--legal .po-page__title {
	margin: 0;
	max-width: min(22ch, 100%);
	color: var(--po-color-text);
	font-family: var(--po-font-display);
	font-size: clamp(1.85rem, 5vw, 3rem);
	font-weight: var(--po-font-weight-display);
	letter-spacing: -0.04em;
	line-height: 1.1;
	overflow-wrap: anywhere;
}

.po-page--legal .po-page__meta {
	margin: 0;
	max-width: 40rem;
	color: var(--po-color-muted);
}

.po-page--legal .po-legal__toc,
.po-page--legal .po-legal__content,
.po-page--legal .po-editorial,
.po-page--legal .po-page__empty {
	min-width: 0;
	max-width: 40rem;
	overflow-wrap: anywhere;
}

.po-page--legal .po-legal__toc {
	margin-block-end: 2rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--po-color-border);
	background: var(--po-color-surface);
	position: static;
}

.po-page--legal .po-legal__toc-title {
	margin: 0 0 0.75rem;
	font-family: var(--po-font-display);
	font-size: 1.1rem;
}

.po-page--legal .po-legal__toc-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.po-page--legal .po-legal__toc-item {
	margin: 0.35rem 0;
}

.po-page--legal .po-legal__toc-item--h3 {
	padding-inline-start: 1rem;
}

.po-page--legal .po-legal__toc-item--h4 {
	padding-inline-start: 2rem;
}

.po-page--legal .po-editorial > * + * {
	margin-block-start: 1.15rem;
}

.po-page--legal .po-editorial :is(h2, h3, h4) {
	margin: 2.25rem 0 0.65rem;
	scroll-margin-top: 6.5rem;
	font-family: var(--po-font-display);
	font-size: 1.35rem;
	letter-spacing: -0.03em;
	line-height: 1.25;
}

.po-page--legal .po-editorial h3 { font-size: 1.15rem; }
.po-page--legal .po-editorial h4 { font-size: 1rem; }

.po-page--legal .po-editorial :is(p, li) {
	line-height: 1.7;
}

.po-page--legal .po-editorial :is(ul, ol) {
	padding-inline-start: 1.35rem;
}

.po-page--legal .po-editorial :is(ul, ol) :is(ul, ol) {
	margin-block: 0.4rem;
}

.po-page--legal .po-editorial :is(blockquote, .wp-block-quote, .wp-block-pullquote) {
	margin: 0;
	padding: 1rem 1.15rem;
	border-inline-start: 3px solid var(--po-color-cyan);
	background: var(--po-color-surface);
}

.po-page--legal .po-editorial :is(figure, .wp-block-table, table) {
	max-width: 100%;
	overflow-x: auto;
}

.po-page--legal .po-editorial table {
	width: 100%;
	border-collapse: collapse;
}

.po-page--legal .po-editorial :is(th, td) {
	padding: 0.65rem 0.45rem;
	text-align: start;
	vertical-align: top;
	border-bottom: 1px solid var(--po-color-border);
}

.po-page--legal .po-legal__back {
	max-width: 40rem;
	margin-block-start: 2.5rem;
}

.po-page--legal :is(a, button, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 3px solid var(--po-color-cyan);
	outline-offset: 3px;
}

@media (max-width: 400px) {
	.po-page--legal .po-page__title {
		font-size: clamp(1.6rem, 11vw, 2rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.po-page--legal,
	body.po-legal {
		scroll-padding-top: max(6.5rem, calc(env(safe-area-inset-top, 0px) + 8.75rem));
	}
}

@media print {
	.po-header,
	.po-site-footer,
	.po-breadcrumbs,
	.po-promo,
	.po-loader,
	.po-particles,
	.skip-link,
	.po-legal__toc,
	.po-legal__back {
		display: none !important;
	}

	.po-page--legal.po-main,
	main.po-page--legal {
		padding: 0;
		max-width: none;
		color: #000;
		background: #fff;
	}

	.po-page--legal .po-legal__content,
	.po-page--legal .po-editorial {
		max-width: none;
	}

	.po-page--legal .po-editorial :is(h2, h3, h4) {
		break-after: avoid;
		page-break-after: avoid;
	}

	.po-page--legal a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 0.85em;
		overflow-wrap: anywhere;
	}
}
