/**
 * Pagine Cookie Policy e Privacy Policy.
 *
 * Regola guida: il documento è del cliente, non nostro. Qui NON si imposta
 * mai il carattere — si eredita quello del tema — e i colori arrivano da
 * variabili valorizzate con la palette già rilevata dal sito. Nessun
 * !important: se il tema vuole comandare, comanda lui.
 */

.kcc-policy {
	--kcc-p-accent: #2563eb;
	--kcc-p-ink: currentColor;
	--kcc-p-line: rgba(0, 0, 0, 0.1);
	--kcc-p-soft: rgba(0, 0, 0, 0.035);

	font: inherit;
	line-height: 1.65;
	/* Nessun limite di larghezza: il contenitore lo decide il tema. Se il
	   testo risulta troppo lungo da leggere, la misura giusta si imposta
	   nel tema o nell'editor, non qui: la pagina è del cliente. */
}

/* Quasi tutti i temi lo impostano già, ma non tutti: senza, la larghezza
   al 100% più il padding fa uscire il testo dal riquadro su telefono. */
.kcc-policy,
.kcc-policy *,
.kcc-policy *::before { box-sizing: border-box; }

.kcc-policy > p { margin: 0 0 1em; }

/* --- Titoli: si eredita la scala del tema, si aggiunge solo il ritmo --- */
.kcc-policy h2 {
	margin: 2.2em 0 0.6em;
	padding-left: 0.6em;
	border-left: 4px solid var(--kcc-p-accent);
	line-height: 1.25;
}
.kcc-policy h3 {
	margin: 1.6em 0 0.4em;
	line-height: 1.3;
}
.kcc-policy h2:first-child,
.kcc-policy h3:first-child { margin-top: 0; }

.kcc-policy ul { margin: 0 0 1em; padding-left: 1.4em; }
.kcc-policy li { margin: 0.35em 0; }

/* --- Dati mancanti del titolare: devono saltare all'occhio --- */
.kcc-policy mark {
	background: #fff3cd;
	color: #664d03;
	padding: 0.1em 0.4em;
	border-radius: 4px;
}

/* --- Tabelle dei cookie --- */
.kcc-policy-scroll {
	overflow-x: auto;
	margin: 0 0 1.6em;
	-webkit-overflow-scrolling: touch;
}
.kcc-policy-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.94em;
	margin: 0;
}
.kcc-policy-table th,
.kcc-policy-table td {
	text-align: left;
	padding: 0.7em 0.85em;
	border-bottom: 1px solid var(--kcc-p-line);
	vertical-align: top;
}
.kcc-policy-table thead th {
	font-weight: 600;
	border-bottom-width: 2px;
	white-space: nowrap;
}
.kcc-policy-table tbody tr:last-child th,
.kcc-policy-table tbody tr:last-child td { border-bottom: 0; }
.kcc-policy-table tbody tr:nth-child(odd) td { background: var(--kcc-p-soft); }
/* La cella del servizio unisce più righe: niente striatura, o si spezza. */
.kcc-policy-table td[rowspan] { background: transparent; }

.kcc-policy-table code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.92em;
	background: var(--kcc-p-soft);
	border: 1px solid var(--kcc-p-line);
	border-radius: 4px;
	padding: 0.1em 0.4em;
	/* Un nome di cookie spezzato a metà non è più un nome di cookie: se non
	   ci sta, scorre il contenitore. */
	white-space: nowrap;
}
.kcc-policy-table a { color: var(--kcc-p-accent); }

.kcc-policy-meta { opacity: 0.7; margin-top: 2em; }

/* --- Telefono: la tabella a 4 colonne diventa un elenco leggibile --- */
@media (max-width: 640px) {
	.kcc-policy-table,
	.kcc-policy-table tbody,
	.kcc-policy-table tr,
	.kcc-policy-table td { display: block; width: 100%; }

	.kcc-policy-table thead { display: none; }

	.kcc-policy-table tr {
		border: 1px solid var(--kcc-p-line);
		border-radius: 8px;
		margin-bottom: 0.9em;
		padding: 0.3em 0.2em;
	}
	.kcc-policy-table td {
		border-bottom: 1px solid var(--kcc-p-line);
		padding: 0.55em 0.85em;
		background: transparent;
	}
	.kcc-policy-table tr td:last-child { border-bottom: 0; }

	/* L'intestazione di colonna riappare davanti al valore. */
	.kcc-policy-table td[data-label]::before {
		content: attr(data-label);
		display: block;
		font-size: 0.78em;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		opacity: 0.65;
		margin-bottom: 0.15em;
	}
	/* Su telefono la cella unita non ha senso: torna una riga come le altre. */
	.kcc-policy-table td[rowspan] { font-weight: 600; }

	/* Qui la cella occupa tutta la larghezza: il nome può andare a capo. */
	.kcc-policy-table code { white-space: normal; overflow-wrap: anywhere; }
}
