/* ==========================================================================
   Terms of Service page — page-specific tweaks on top of the shared
   .pv-list component set (tool-shared.css). Mirrors the Privacy Policy
   page's table-of-contents pattern so the two legal pages read as one
   family. Reuses main.css design tokens only, no new palette.
   ========================================================================== */

.pv-terms__updated {
	margin: 14px 0 0;
	color: var(--pv-muted);
	font-size: 13.5px;
	font-weight: 600;
}
.pv-terms__updated time { color: var(--pv-ink-2); }

/* ---------- Table of contents ---------- */

.pv-terms-toc {
	max-width: 760px;
	margin: 30px auto 0;
	padding: 20px 22px;
	border: 1px solid var(--pv-line);
	border-radius: var(--pv-r);
	background: var(--pv-soft-2);
	text-align: left;
}
.pv-terms-toc__label {
	margin: 0 0 12px;
	color: var(--pv-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.pv-terms-toc ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pv-terms-toc;
}
.pv-terms-toc li { counter-increment: pv-terms-toc; }
.pv-terms-toc a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 14px 8px 8px;
	border: 1px solid var(--pv-line-2);
	border-radius: 999px;
	background: #fff;
	color: var(--pv-ink-2);
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .18s ease, color .18s ease;
}
.pv-terms-toc a::before {
	content: counter(pv-terms-toc);
	display: inline-grid;
	place-items: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--pv-soft);
	color: var(--pv-muted);
	font-size: 9.5px;
	font-weight: 700;
}
.pv-terms-toc a:hover { border-color: var(--pv-cyan); color: var(--pv-cyan); }

@media (max-width: 640px) {
	.pv-terms-toc { padding: 16px; }
}
