/* Legal / utility pages: the 404 and the privacy notice. Scoped to .lg-*. */
.lg-hero {
	position: relative;
	padding-top: clamp(var(--sv-10), 12vh, var(--sv-16));
}
.lg-inner {
	position: relative;
	max-width: 760px;
}
.lg-hero h1 {
	margin: var(--sv-3) 0 var(--sv-4);
	font-family: var(--sv-font-display);
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
}
.lg-lede {
	color: var(--sv-text-secondary);
	max-width: 58ch;
}
.lg-updated {
	margin-top: var(--sv-4);
	color: var(--sv-text-muted);
}
.lg-routes {
	list-style: none;
	margin: var(--sv-6) 0 0;
	padding: 0;
	display: grid;
	gap: var(--sv-2);
}
.lg-routes a {
	display: grid;
	gap: 4px;
	padding: var(--sv-4);
	border: 1px solid var(--sv-border-hairline);
	background: var(--sv-graphite-850);
	color: var(--sv-text);
	text-decoration: none;
	transition: border-color 200ms var(--sv-ease-settle), background 200ms var(--sv-ease-settle);
}
.lg-routes a:hover,
.lg-routes a:focus-visible {
	border-color: var(--sv-mist-500);
	background: var(--sv-graphite-800);
}
.lg-routes b {
	font-family: var(--sv-font-display);
	font-weight: 600;
}
.lg-routes span {
	font-size: 0.92rem;
	color: var(--sv-text-secondary);
}
.lg-body {
	padding-top: 0;
}
.lg-prose h2 {
	margin: var(--sv-8) 0 var(--sv-2);
	font-family: var(--sv-font-display);
	font-size: 1.25rem;
	font-weight: 600;
}
.lg-prose h2:first-child {
	margin-top: 0;
}
.lg-prose p,
.lg-prose li {
	color: var(--sv-text-secondary);
	line-height: 1.6;
	max-width: 68ch;
}
.lg-prose ul {
	padding-left: 1.2em;
}
.lg-prose li {
	margin-bottom: var(--sv-2);
}
.lg-prose li b {
	color: var(--sv-text);
}
.lg-prose a {
	color: var(--sv-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---- Legal pages: pending-confirmation marker, definition table, contents ---- */
.lg-pending {
	margin: var(--sv-4) 0;
	padding: var(--sv-3) var(--sv-4);
	border: 1px dashed var(--sv-border-strong);
	border-left: 2px solid var(--sv-brass, #b08a3e);
	background: rgba(176, 138, 62, 0.06);
	max-width: 68ch;
}
.lg-pending p,
.lg-pending li {
	color: var(--sv-text-secondary);
}
.lg-pending p:first-child {
	margin-top: 0;
	font-family: var(--sv-font-mono);
	font-size: var(--sv-micro);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sv-text);
}
.lg-pending p:last-child,
.lg-pending ul:last-child {
	margin-bottom: 0;
}
.lg-contents {
	list-style: none;
	margin: var(--sv-5) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--sv-2) var(--sv-4);
}
.lg-contents a {
	/* 24px touch target; the negative margin keeps the list rhythm */
	display: inline-block;
	padding: 5px 0;
	margin: -5px 0;
	font-family: var(--sv-font-mono);
	font-size: var(--sv-micro);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-text-muted);
	text-decoration: none;
}
.lg-contents a:hover,
.lg-contents a:focus-visible {
	color: var(--sv-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.lg-table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--sv-4) 0;
	font-size: var(--sv-body-s);
}
.lg-table th,
.lg-table td {
	padding: var(--sv-3) var(--sv-3) var(--sv-3) 0;
	border-bottom: 1px solid var(--sv-border-hairline);
	vertical-align: top;
	text-align: left;
	color: var(--sv-text-secondary);
	line-height: 1.5;
}
.lg-table th {
	font-family: var(--sv-font-mono);
	font-size: var(--sv-micro);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sv-text-muted);
	font-weight: 500;
}
.lg-table td:first-child {
	color: var(--sv-text);
	white-space: nowrap;
}
.lg-table code {
	font-family: var(--sv-font-mono);
	font-size: 0.85em;
	color: var(--sv-text);
}
.lg-prose dl {
	margin: var(--sv-3) 0;
	max-width: 68ch;
}
.lg-prose dt {
	color: var(--sv-text);
	font-weight: 500;
	margin-top: var(--sv-3);
}
.lg-prose dd {
	margin: 2px 0 0;
	color: var(--sv-text-secondary);
	line-height: 1.6;
}
.lg-prose h2[id] {
	scroll-margin-top: 96px;
}
@media (max-width: 760px) {
	.lg-table,
	.lg-table thead,
	.lg-table tbody,
	.lg-table tr,
	.lg-table td,
	.lg-table th {
		display: block;
	}
	.lg-table thead {
		display: none;
	}
	.lg-table tr {
		padding: var(--sv-3) 0;
		border-bottom: 1px solid var(--sv-border-hairline);
	}
	.lg-table td {
		border: 0;
		padding: 2px 0;
		white-space: normal;
	}
	/* The item cell lists several storage keys; on a phone they wrap
	   rather than widen the page. */
	.lg-table td:first-child {
		white-space: normal;
	}
	.lg-table code {
		overflow-wrap: anywhere;
	}
	.lg-table td::before {
		content: attr(data-label) " · ";
		font-family: var(--sv-font-mono);
		font-size: var(--sv-micro);
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--sv-text-muted);
	}
	.lg-table td:first-child::before {
		content: "";
	}
}
.lg-prose h3 {
	margin: var(--sv-5) 0 var(--sv-2);
	font-family: var(--sv-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--sv-text);
}
