/* =============================================================================
 * PAGINE LEGALI — Termini · FAQ (con indice) · Privacy · Cookie (una colonna)
 * Markup da plugin/cgtv-legal.php. Panel 19 ott 2026, mockup «Pagine legali CGTV».
 * Solo token theme.json; ritmo Fibonacci locale (8/13/21/34/55) come checkout e PDP.
 * Testata = famiglia .dvd-exc__head (già in style.css). Prosa a 62ch, corpo `base`
 * (20px): vincolo over-45. Il rosso solo nel filetto, nel numero d'articolo e nella
 * voce ATTIVA dell'indice (stato), mai nel testo.
 * ========================================================================== */
.dvd-legal {
	--lg-s1: 8px; --lg-s2: 13px; --lg-s3: 21px; --lg-s4: 34px; --lg-s5: 55px;
	/* Offset per sticky e ancoraggi. Nelle pagine interne l'header NON è fisso (sta nel
	   flusso e scorre via, style.css «header is NOT sticky anymore»): la prima versione
	   lo dava per fisso (5,5rem) e su telefono la tendina si fermava a metà schermo,
	   «distanziata» — segnalato dall'utente. L'unica cosa fissa in cima è la barra admin
	   di chi è loggato in wp-admin. */
	--lg-top: 0px;
	width: 100%; box-sizing: border-box;
	padding: 0 var(--wp--style--root--padding-right, 1.5rem);
}
body.admin-bar .dvd-legal { --lg-top: var(--wp-admin--admin-bar--height, 32px); }
@media screen and (max-width: 782px) { body.admin-bar .dvd-legal { --lg-top: 46px; } }

/* ---- testata minimal: titolo, filetto, data ---- */
.dvd-legal__head { margin-bottom: var(--lg-s5); }
.dvd-legal__date {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-2);
	margin: var(--lg-s3) 0 0;
}

/* ---- A · spread: indice fisso + prosa ---- */
.dvd-legal__spread {
	display: grid;
	grid-template-columns: minmax(0, 15rem) minmax(0, 62ch);
	gap: var(--lg-s5); justify-content: center; align-items: start;
	max-width: 1180px; margin-inline: auto;
}
/* L'indice è fisso, quindi NON scorre con la pagina: se è più alto dello schermo le
   ultime voci restano irraggiungibili (segnalato dall'utente: 14 voci × 56px + offset
   = 870px, più di un portatile). Tetto all'altezza dello schermo e scroll proprio,
   voci più compatte (è desktop, puntatore: 44px bastano); il JS tiene la voce attiva
   dentro la parte visibile. */
.dvd-legal__index {
	position: sticky; top: calc(var(--lg-top) + 1.5rem);
	max-height: calc(100dvh - var(--lg-top) - 3rem);
	overflow-y: auto; overscroll-behavior: contain;
	scrollbar-width: thin; scrollbar-color: var(--wp--preset--color--line-2) transparent;
	padding-right: var(--lg-s1);
}
.dvd-legal__k {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.26em; text-transform: uppercase;
	color: var(--wp--preset--color--muted-2);
	margin: 0 0 var(--lg-s2);
}
.dvd-legal__list { list-style: none; margin: 0; padding: 0; }
.dvd-legal__list li { border-top: 1px solid var(--wp--preset--color--line); }
.dvd-legal__list li:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.dvd-legal__list a {
	display: flex; gap: var(--lg-s1); align-items: baseline;
	min-height: 44px; padding: 10px 0 10px var(--lg-s2);
	margin-left: -3px; border-left: 3px solid transparent;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small); font-weight: 600; line-height: 1.25;
	color: var(--wp--preset--color--muted); text-decoration: none;
	transition: color 120ms ease, border-color 120ms ease;
}
.dvd-legal__list a:hover { color: var(--wp--preset--color--contrast); }
.dvd-legal__list a.is-on { color: var(--wp--preset--color--contrast); border-left-color: var(--wp--preset--color--primary); }
.dvd-legal__n { flex: 0 0 2.2em; font-variant-numeric: tabular-nums; font-weight: 400; color: var(--wp--preset--color--muted-2); }
.dvd-legal__list a.is-on .dvd-legal__n { color: var(--wp--preset--color--accent); }
.dvd-legal__list a:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* tendina «In questa pagina»: solo sotto i 900px */
.dvd-legal__jump { display: none; }

/* ---- B · una colonna ---- */
.dvd-legal__single { max-width: 62ch; margin-inline: auto; }

/* ---- prosa (comune) ---- */
.dvd-legal__prose { min-width: 0; }
.dvd-legal__art {
	padding: 0 0 var(--lg-s4); margin: 0 0 var(--lg-s4);
	border-bottom: 1px solid var(--wp--preset--color--line);
	scroll-margin-top: calc(var(--lg-top) + var(--lg-s3));
}
.dvd-legal__art:last-of-type { border-bottom: 0; }
.dvd-legal__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--lg-s1);
}
.dvd-legal__h {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: var(--wp--preset--font-size--large); letter-spacing: -0.02em; line-height: 1.1;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 var(--lg-s3); text-wrap: balance;
}
/* nelle pagine a una colonna il numero sta DENTRO il titolo (capitoli brevi) */
.dvd-legal--num:not(.dvd-legal--nav) .dvd-legal__num { display: none; }
.dvd-legal--num:not(.dvd-legal--nav) .dvd-legal__prose { counter-reset: lgch; }
.dvd-legal--num:not(.dvd-legal--nav) .dvd-legal__h { counter-increment: lgch; }
.dvd-legal--num:not(.dvd-legal--nav) .dvd-legal__h::before {
	content: counter(lgch) ". ";
	color: var(--wp--preset--color--accent); font-variant-numeric: tabular-nums;
}
.dvd-legal__prose p,
.dvd-legal__prose li {
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.7; color: var(--wp--preset--color--contrast);
}
.dvd-legal__prose p { margin: 0 0 1.2em; }
.dvd-legal__prose ul, .dvd-legal__prose ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.dvd-legal__prose li { margin: 0 0 0.35em; }
.dvd-legal__prose li > ol, .dvd-legal__prose li > ul { margin-top: 0.5em; }
.dvd-legal__prose h3 {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	font-size: var(--wp--preset--font-size--medium); letter-spacing: -0.01em; line-height: 1.2;
	color: var(--wp--preset--color--contrast);
	margin: var(--lg-s4) 0 var(--lg-s2); text-wrap: balance;
}
.dvd-legal__prose h3:first-child { margin-top: 0; }
.dvd-legal__prose strong { font-weight: 700; color: var(--wp--preset--color--contrast); }
/* link nel corpo: bianchi punteggiati, come nelle News (il rosso resta all'azione) */
.dvd-legal__prose a {
	color: var(--wp--preset--color--contrast);
	text-decoration: underline dotted; text-decoration-color: var(--wp--preset--color--line-2);
	text-underline-offset: 4px; overflow-wrap: anywhere;
}
.dvd-legal__prose a:hover { text-decoration-color: var(--wp--preset--color--contrast); }
.dvd-legal__lead p:first-child { font-size: var(--wp--preset--font-size--medium); }
.dvd-legal__tail p { color: var(--wp--preset--color--muted-2); font-size: var(--wp--preset--font-size--small); }
.dvd-legal__tail { margin-top: var(--lg-s4); }
.dvd-legal__top {
	display: inline-flex; align-items: center; gap: 6px; min-height: 48px;
	margin-top: var(--lg-s2);
	font-family: var(--wp--preset--font-family--heading); font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted); text-decoration: none;
}
.dvd-legal__top::before { content: "↑"; }
.dvd-legal__top:hover { color: var(--wp--preset--color--contrast); }
/* su desktop l'indice è fisso a fianco: il «Torna all'indice» sotto ogni sezione sarebbe
   rumore ripetuto 14 volte. Serve dove l'indice è la tendina in cima (sotto i 900px). */
@media (min-width: 901px) { .dvd-legal__top { display: none; } }

/* card dei contatti (chiusura delle informative) */
.dvd-legal__prose p.dvd-legal__contact {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--surface);
	padding: var(--lg-s3); line-height: 1.55;
}
.dvd-legal__prose p.dvd-legal__contact a { color: var(--wp--preset--color--contrast); }

/* tabella cookie */
.dvd-legal__tblwrap { overflow-x: auto; margin: var(--lg-s3) 0 var(--lg-s2); }
.dvd-legal__tbl { border-collapse: collapse; width: 100%; min-width: 560px; font-size: var(--wp--preset--font-size--small); }
.dvd-legal__tbl th, .dvd-legal__tbl td {
	text-align: left; vertical-align: top;
	padding: var(--lg-s2); border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--contrast); line-height: 1.5;
}
.dvd-legal__tbl th {
	font-family: var(--wp--preset--font-family--heading); font-weight: 600;
	font-size: var(--wp--preset--font-size--x-small); letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.dvd-legal__tbl code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; color: var(--wp--preset--color--contrast); }
.dvd-legal__note { color: var(--wp--preset--color--muted-2) !important; font-size: var(--wp--preset--font-size--small) !important; }

/* ---- responsive ---- */
@media (max-width: 900px) {
	.dvd-legal__spread { grid-template-columns: minmax(0, 1fr); max-width: 62ch; }
	.dvd-legal__index { display: none; }
	.dvd-legal__jump {
		display: block; position: sticky; top: var(--lg-top); z-index: 5;
		background: var(--wp--preset--color--base);
		max-width: 62ch; margin: 0 auto var(--lg-s3);
		padding: var(--lg-s2) 0; border-bottom: 1px solid var(--wp--preset--color--line);
	}
	.dvd-legal__jump label {
		display: block; margin: 0 0 6px;
		font-size: var(--wp--preset--font-size--x-small);
		letter-spacing: 0.26em; text-transform: uppercase;
		color: var(--wp--preset--color--muted-2);
	}
	.dvd-legal__jump select { width: 100%; min-height: 48px; }
	.dvd-legal__art { scroll-margin-top: calc(var(--lg-top) + 6rem); }
}
@media (max-width: 520px) {
	.dvd-legal__meta { gap: 6px var(--lg-s3); }
}
@media (prefers-reduced-motion: no-preference) {
	.dvd-legal-page { scroll-behavior: smooth; }
}
