.legal-page .legal-body {
	--legal-ink: #2b2f38;
	--legal-text: #474c57;
	--legal-muted: #6b7180;
	--legal-line: #e4e6ef;
	--legal-tint: #f7f7ff;
	--legal-accent: var(--primary, #6b39f4);

	padding: 64px 0 96px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--legal-text);
}

/* ---------- Layout: text on the left, "On this page" on the right ---------- */

.legal-page .legal-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	row-gap: 28px;
}

@media (min-width: 992px) {
	.legal-page .legal-layout {
		grid-template-columns: minmax(0, 740px) minmax(260px, 340px);
		justify-content: space-between;
		grid-template-rows: auto 1fr;
		grid-template-areas:
			"intro aside"
			"main  aside";
		column-gap: 56px;
		row-gap: 0;
	}
	.legal-page .legal-intro { grid-area: intro; }
	.legal-page .legal-main  { grid-area: main; }
	.legal-page .legal-aside { grid-area: aside; }
}

/* ---------- Text ---------- */

.legal-page .legal-body p,
.legal-page .legal-body li,
.legal-page .legal-body dd,
.legal-page .legal-body td,
.legal-page .legal-body th {
	font-family: "Roboto", sans-serif;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	letter-spacing: 0;
}

.legal-page .legal-body p {
	margin: 0 0 16px;
}

.legal-page .legal-body .legal-updated {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--legal-muted);
}

.legal-page .legal-body .legal-lead {
	margin: 0;
	font-size: 20px;
	line-height: 1.6;
	color: var(--legal-ink);
}

.legal-page .legal-body a:not(.btn) {
	color: var(--legal-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
	overflow-wrap: anywhere;
}

.legal-page .legal-body a:not(.btn):hover {
	text-decoration-thickness: 2px;
}

.legal-page .legal-body a:focus-visible,
.legal-page .legal-body button:focus-visible {
	outline: 2px solid var(--legal-accent) !important;
	outline-offset: 3px;
	border-radius: 3px;
}

.legal-page .legal-body strong {
	color: var(--legal-ink);
	font-weight: 600;
}

.legal-page .legal-body ul,
.legal-page .legal-body ol {
	margin: 0 0 16px;
	padding-left: 22px;
}

.legal-page .legal-body ul li,
.legal-page .legal-body ol li {
	margin-bottom: 8px;
}

.legal-page .legal-body ul li::marker {
	color: var(--legal-accent);
}

/* ---------- "On this page" ---------- */

.legal-page .legal-toc {
	padding: 24px 28px;
	background: var(--legal-tint);
	border-radius: 10px;
}

.legal-page .legal-toc .legal-toc-title {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--legal-muted);
}

.legal-page .legal-toc ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.legal-page .legal-toc ol li {
	margin: 0;
	padding: 4px 0;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.45;
}

.legal-page .legal-toc ol a:not(.btn) {
	display: flex;
	color: var(--legal-ink);
	text-decoration: none;
	overflow-wrap: normal;
}

.legal-page .legal-toc ol a:not(.btn):hover,
.legal-page .legal-toc ol a:not(.btn):focus-visible {
	color: var(--legal-accent);
	text-decoration: underline;
}

.legal-page .legal-toc .legal-num {
	flex: 0 0 2em;
	color: var(--legal-muted);
	font-variant-numeric: tabular-nums;
}

/* two columns of links while the list sits above the text on tablets */
@media (min-width: 576px) and (max-width: 991px) {
	.legal-page .legal-toc ol {
		columns: 2;
		column-gap: 40px;
	}
	.legal-page .legal-toc ol li {
		break-inside: avoid;
	}
}

/* ---------- Sections ---------- */

.legal-page .legal-section {
	padding-top: 40px;
	scroll-margin-top: 64px;
}

.legal-page .legal-section + .legal-section {
	margin-top: 40px;
	border-top: 1px solid var(--legal-line);
}

@media (min-width: 992px) {
	.legal-page .legal-main > .legal-section:first-child {
		padding-top: 44px;
	}
}

.legal-page .legal-section h2 {
	margin: 0 0 16px;
	font-size: clamp(22px, 19px + 0.6vw, 27px);
	line-height: 1.25;
	font-weight: 600;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--dark, #212529);
}

.legal-page .legal-section h2 .legal-num {
	margin-right: 8px;
	color: var(--legal-accent);
	font-variant-numeric: tabular-nums;
}

.legal-page .legal-section h3 {
	margin: 26px 0 10px;
	font-size: 18px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--legal-ink);
}

.legal-page .legal-section > :last-child {
	margin-bottom: 0;
}

/* ---------- Tables ---------- */

.legal-page .legal-table {
	width: 100%;
	margin: 8px 0 20px;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.55;
}

.legal-page .legal-table th,
.legal-page .legal-table td {
	padding: 12px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--legal-line);
}

.legal-page .legal-table th:first-child,
.legal-page .legal-table td:first-child {
	padding-left: 0;
}

.legal-page .legal-table th:last-child,
.legal-page .legal-table td:last-child {
	padding-right: 0;
}

.legal-page .legal-table thead th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--legal-muted);
	border-bottom: 2px solid var(--legal-line);
	white-space: nowrap;
}

.legal-page .legal-table tbody th {
	font-weight: 600;
	color: var(--legal-ink);
}

.legal-page .legal-table code {
	padding: 2px 6px;
	font-size: 13px;
	color: var(--legal-ink);
	background: var(--legal-tint);
	border-radius: 4px;
	overflow-wrap: anywhere;
}

.legal-page .legal-tag {
	display: inline-block;
	padding: 2px 10px;
	font-size: 13px;
	line-height: 1.5;
	font-weight: 500;
	color: var(--legal-ink);
	background: var(--quaternary, #d6efe8);
	border-radius: 999px;
	white-space: nowrap;
}

.legal-page .legal-tag.is-optional {
	background: var(--tertiary, #c5d4fb);
}

@media (min-width: 768px) {
	.legal-page .legal-table code,
	.legal-page .legal-table .legal-nowrap {
		white-space: nowrap;
	}
}

/* ---------- Boxes ---------- */

.legal-page .legal-box {
	margin: 24px 0;
	padding: 24px 28px;
	background: var(--legal-tint);
	border-radius: 10px;
}

.legal-page .legal-intro .legal-box {
	margin: 28px 0 0;
}

.legal-page .legal-box > :last-child {
	margin-bottom: 0;
}

.legal-page .legal-box .legal-box-title {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--legal-ink);
}

.legal-page .legal-box .legal-actions {
	margin: 16px 0 0;
}

.legal-page .legal-box .legal-actions + p {
	margin-top: 14px;
	font-size: 15px;
}

.legal-page .legal-details {
	margin: 0;
}

.legal-page .legal-details > div {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr);
	gap: 4px 20px;
	padding: 10px 0;
	border-bottom: 1px solid var(--legal-line);
}

.legal-page .legal-details > div:first-child {
	padding-top: 0;
}

.legal-page .legal-details > div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.legal-page .legal-details dt {
	font-size: 14px;
	font-weight: 600;
	color: var(--legal-muted);
}

.legal-page .legal-details dd {
	margin: 0;
	color: var(--legal-ink);
}

.legal-page .legal-body .legal-related {
	margin: 48px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--legal-line);
	font-size: 15px;
	color: var(--legal-muted);
}

.legal-page .legal-live-list[hidden],
.legal-page .legal-box [hidden] {
	display: none;
}

/* ---------- Smaller screens ---------- */

@media (max-width: 991px) {
	.legal-page .legal-body {
		padding: 40px 0 64px;
	}
	.legal-page .legal-main > .legal-section:first-child {
		padding-top: 12px;
	}
}

@media (max-width: 767px) {
	.legal-page .legal-toc,
	.legal-page .legal-box {
		padding: 20px;
	}
	.legal-page .legal-details > div {
		grid-template-columns: minmax(0, 1fr);
	}

	.legal-page .legal-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.legal-page .legal-table,
	.legal-page .legal-table tbody,
	.legal-page .legal-table tr,
	.legal-page .legal-table th,
	.legal-page .legal-table td {
		display: block;
		width: 100%;
	}
	.legal-page .legal-table tr {
		padding: 14px 0;
		border-bottom: 1px solid var(--legal-line);
	}
	.legal-page .legal-table tbody th,
	.legal-page .legal-table td {
		padding: 3px 0;
		border: 0;
	}
	.legal-page .legal-table td[data-label]::before {
		content: attr(data-label) ": ";
		font-weight: 600;
		color: var(--legal-muted);
	}
}

@media print {
	.legal-page .legal-aside {
		display: none;
	}
}
