/**
 * Legal policy pages (legal-notice, privacy-policy, cookie-policy).
 * Scoped to .legal-page; body.is-legal-page is set in PHP for layout hooks.
 */

.legal-page {
	--legal-page-ink: var(--sb-color-ink, #2e2c38);
	--legal-page-ink-soft: var(--sb-color-ink-soft, #434150);
	--legal-page-muted: var(--sb-color-muted-strong, #7c7d93);
	--legal-page-border: var(--sb-color-border, rgba(75, 73, 88, 0.14));
	--legal-page-border-strong: var(--sb-color-border-strong, rgba(75, 73, 88, 0.24));
	--legal-page-accent: var(--sb-color-accent, #9ea1b5);
	--legal-page-surface-veil: var(--sb-color-surface-strong, #e0e3ec);
	--legal-page-font-heading: var(--sb-font-heading, "Satoshi", system-ui, sans-serif);
	--legal-page-font-body: var(--sb-font-body, "Satoshi", system-ui, sans-serif);
	--legal-page-gutter: var(--sb-gutter, 5%);
	--legal-page-measure: var(--sb-content, 980px);

	background: transparent;
	color: var(--legal-page-ink);
}

.legal-page__article {
	padding: clamp(5.75rem, 10vw, 8.5rem) 0 clamp(4.5rem, 8vw, 7rem);
}

.legal-page__container {
	width: 100%;
	max-width: calc(var(--sb-container-md, 1440px) + var(--legal-page-gutter) * 2);
	padding-right: var(--legal-page-gutter);
	padding-left: var(--legal-page-gutter);
	margin: 0 auto;
}

.legal-page__hero {
	margin-bottom: clamp(2.25rem, 4.5vw, 3.75rem);
}

.legal-page__title {
	max-width: min(100%, 28ch);
	margin: 0;
	color: var(--legal-page-ink);
	font-family: var(--legal-page-font-heading);
	font-size: var(--sb-type-step-4, clamp(3rem, 2.2rem + 3vw, 5rem));
	font-weight: 520;
	letter-spacing: var(--sb-tracking-display, -0.06em);
	line-height: var(--sb-leading-display, 0.92);
	text-wrap: balance;
}

.legal-page__content {
	max-width: var(--legal-page-measure);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--legal-page-ink-soft);
	font-family: var(--legal-page-font-body);
	font-size: var(--sb-type-step-0, clamp(1rem, 0.96rem + 0.18vw, 1.14rem));
	font-weight: 300;
	line-height: 1.82;
}

.legal-page__content > * {
	max-width: 100%;
}

.legal-page__content > * + * {
	margin-top: 1.35rem;
}

.legal-page__content :where(p, ul, ol) {
	color: var(--legal-page-ink-soft);
}

.legal-page__content :where(p + p) {
	margin-top: 1.1em;
}

.legal-page__content :where(h2, h3, h4, h5, h6) {
	color: var(--legal-page-ink);
	font-family: var(--legal-page-font-heading);
	font-weight: 520;
	letter-spacing: -0.045em;
	line-height: 1.12;
	text-wrap: pretty;
}

.legal-page__content :where(h2, h3) {
	padding-top: clamp(1.5rem, 3.5vw, 2.5rem);
	border-top: 1px solid var(--legal-page-border);
}

.legal-page__content > :first-child:is(h2, h3) {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.legal-page__content h2 {
	margin-top: clamp(2.5rem, 5vw, 3.75rem);
	margin-bottom: 0.4em;
	font-size: var(--sb-type-step-3, clamp(2.2rem, 1.6rem + 1.85vw, 3.45rem));
}

.legal-page__content h3 {
	margin-top: clamp(2rem, 4vw, 3rem);
	margin-bottom: 0.35em;
	font-size: var(--sb-type-step-2, clamp(1.55rem, 1.2rem + 0.98vw, 2.1rem));
}

.legal-page__content h4 {
	margin-top: 2rem;
	margin-bottom: 0.3em;
	font-size: var(--sb-type-step-1, clamp(1.22rem, 1.08rem + 0.42vw, 1.48rem));
}

.legal-page__content :where(ul, ol) {
	padding-left: 1.4rem;
}

.legal-page__content :where(li + li) {
	margin-top: 0.65rem;
}

.legal-page__content :where(a) {
	color: var(--legal-page-ink);
	font-weight: 450;
	text-decoration: underline;
	text-decoration-color: rgba(75, 73, 88, 0.34);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition:
		color var(--sb-transition-base, 220ms ease),
		text-decoration-color var(--sb-transition-base, 220ms ease);
}

.legal-page__content :where(a:hover) {
	color: var(--legal-page-accent);
	text-decoration-color: currentColor;
}

.legal-page__content :where(a:focus-visible) {
	outline: 2px solid var(--legal-page-ink);
	outline-offset: 0.18em;
	border-radius: 0.18rem;
	color: var(--legal-page-ink);
	text-decoration-color: currentColor;
}

.legal-page__content :where(strong, b) {
	color: var(--legal-page-ink);
	font-weight: 620;
}

.legal-page__content :where(hr, .wp-block-separator) {
	width: 100%;
	height: 1px;
	margin: clamp(2.25rem, 5vw, 3.75rem) 0;
	border: 0;
	background: var(--legal-page-border-strong);
}

.legal-page__content :where(blockquote) {
	margin: clamp(2rem, 4vw, 2.75rem) 0;
	padding: 0 0 0 clamp(1rem, 2vw, 1.35rem);
	border: 0;
	border-left: 2px solid var(--legal-page-accent);
	border-radius: 0;
	background: transparent;
	color: var(--legal-page-ink-soft);
	font-style: italic;
}

@media (max-width: 700px) {
	.legal-page__article {
		padding-top: clamp(5rem, 16vw, 6.5rem);
	}

	.legal-page__title {
		max-width: 100%;
		font-size: var(--sb-type-step-3, clamp(2.2rem, 1.6rem + 1.85vw, 3.45rem));
	}

	.legal-page__content {
		line-height: 1.78;
	}
}

@media (prefers-reduced-motion: reduce) {
	.legal-page__content :where(a) {
		transition: none;
	}
}
