/**
 * Componenti UI del percorso pratica.
 *
 * REGOLA ARCHITETTURALE (sez. 21): questo foglio descrive SOLO struttura,
 * disposizione e comportamento. Nessun colore, font o misura è scritto qui:
 * ogni valore visivo passa da una custom property con fallback neutro.
 *
 * Il tema può ridefinire i token e cambiare radicalmente l'aspetto senza che
 * una sola riga di questo file venga toccata. Se un giorno il tema viene
 * sostituito, i fallback garantiscono che l'interfaccia resti usabile.
 */

/* --------------------------------------------------------------------- */
/* Fallback dei token: il tema li sovrascrive tutti.                      */
/* --------------------------------------------------------------------- */
.pc-percorso,
.pc-pratica,
.pc-messaggio,
.pc-verifica,
.pc-come-funziona,
.pc-requisiti,
.pc-importo,
.pc-faq,
.pc-gestore {
	--pc-inchiostro: var(--pc-color-ink, #16181d);
	--pc-inchiostro-tenue: var(--pc-color-ink-muted, #5d6470);
	--pc-carta: var(--pc-color-paper, #ffffff);
	--pc-carta-alt: var(--pc-color-paper-alt, #f4f5f7);
	--pc-linea: var(--pc-color-rule, #d9dce2);
	--pc-accento: var(--pc-color-accent, #1b3a6b);
	--pc-accento-testo: var(--pc-color-accent-ink, #ffffff);
	--pc-errore: var(--pc-color-danger, #9b2226);
	--pc-conferma: var(--pc-color-confirm, #1f6f4a);

	--pc-testo: var(--pc-font-body, system-ui, -apple-system, "Segoe UI", sans-serif);
	--pc-mono: var(--pc-font-mono, ui-monospace, "SF Mono", Menlo, monospace);
	--pc-titolo-font: var(--pc-font-display, var(--pc-testo));

	--pc-s1: var(--pc-space-1, .25rem);
	--pc-s2: var(--pc-space-2, .5rem);
	--pc-s3: var(--pc-space-3, .75rem);
	--pc-s4: var(--pc-space-4, 1rem);
	--pc-s5: var(--pc-space-5, 1.5rem);
	--pc-s6: var(--pc-space-6, 2rem);
	--pc-s7: var(--pc-space-7, 3rem);

	--pc-raggio: var(--pc-radius, 4px);
	--pc-raggio-l: var(--pc-radius-lg, 8px);
	--pc-bordo: var(--pc-border-width, 1px);
	--pc-larghezza: var(--pc-measure, 34rem);
	--pc-transizione: var(--pc-motion, 160ms ease);

	color: var(--pc-inchiostro);
	font-family: var(--pc-testo);
}

/* Rispetta chi ha chiesto meno movimento. */
@media (prefers-reduced-motion: reduce) {
	.pc-percorso *,
	.pc-pratica * {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}
}

/* --------------------------------------------------------------------- */
/* Percorso                                                               */
/* --------------------------------------------------------------------- */
.pc-percorso {
	max-width: var(--pc-larghezza);
	margin-inline: auto;
	padding-inline: var(--pc-s4);
}

.pc-percorso__avanzamento {
	height: 2px;
	background: var(--pc-linea);
	margin-block-end: var(--pc-s6);
	overflow: hidden;
}

.pc-avanzamento__barra {
	/* Valore di runtime, impostato dal JS a ogni passo. Il prefisso
	   --pc-runtime- lo distingue dai design token del tema: non è qualcosa
	   che la grafica debba dichiarare. */
	--pc-runtime-avanzamento: 0;
	display: block;
	height: 100%;
	background: var(--pc-accento);
	transform-origin: left center;
	transform: scaleX(var(--pc-runtime-avanzamento, 0));
	transition: transform var(--pc-transizione);
}

.pc-passo[hidden] { display: none; }

.pc-passo__indice {
	font-family: var(--pc-mono);
	font-size: .75rem;
	letter-spacing: .12em;
	color: var(--pc-inchiostro-tenue);
	margin: 0 0 var(--pc-s2);
}

.pc-passo__titolo {
	font-family: var(--pc-titolo-font);
	font-size: clamp(1.35rem, 1.1rem + 1.2vw, 1.75rem);
	line-height: 1.2;
	margin: 0 0 var(--pc-s5);
}

.pc-passo__titolo:focus-visible { outline: 2px solid var(--pc-accento); outline-offset: 4px; }

.pc-passo__sottotitolo {
	color: var(--pc-inchiostro-tenue);
	margin: calc(var(--pc-s5) * -1 + var(--pc-s2)) 0 var(--pc-s5);
}

/* --------------------------------------------------------------------- */
/* Campi                                                                  */
/* --------------------------------------------------------------------- */
.pc-campo { margin-block-end: var(--pc-s5); }

.pc-campo--doppio {
	display: grid;
	gap: var(--pc-s4);
	grid-template-columns: 1fr;
}

@media (min-width: 30rem) {
	.pc-campo--doppio { grid-template-columns: 2fr 1fr; }
	.pc-campo--doppio:has(> div:nth-child(2) input[type="email"]),
	.pc-campo--doppio:has(> div:nth-child(1) input[autocomplete="given-name"]) {
		grid-template-columns: 1fr 1fr;
	}
}

.pc-campo__label {
	display: block;
	font-size: .8125rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pc-inchiostro-tenue);
	margin-block-end: var(--pc-s2);
}

.pc-campo__input {
	inline-size: 100%;
	box-sizing: border-box;
	/* 16px minimi: sotto questa soglia iOS ingrandisce la pagina al focus. */
	font-size: 1rem;
	font-family: inherit;
	color: var(--pc-inchiostro);
	background: var(--pc-carta);
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio);
	padding: var(--pc-s3);
	min-block-size: 2.75rem;
	transition: border-color var(--pc-transizione);
}

.pc-campo__input:focus-visible {
	outline: 2px solid var(--pc-accento);
	outline-offset: 1px;
	border-color: var(--pc-accento);
}

.pc-campo__input--codice {
	font-family: var(--pc-mono);
	letter-spacing: .08em;
}

.pc-campo__input.is-errato { border-color: var(--pc-errore); }

.pc-campo__aiuto,
.pc-campo__errore,
.pc-campo__conferma {
	font-size: .8125rem;
	margin: var(--pc-s2) 0 0;
}

.pc-campo__aiuto { color: var(--pc-inchiostro-tenue); }
.pc-campo__errore { color: var(--pc-errore); }
.pc-campo__errore:empty { display: none; }
.pc-campo__conferma { color: var(--pc-conferma); }

/* --------------------------------------------------------------------- */
/* Ente competente: conferma sobria, non una certificazione               */
/* --------------------------------------------------------------------- */
.pc-ente {
	border-inline-start: 2px solid var(--pc-accento);
	padding: var(--pc-s3) var(--pc-s4);
	margin-block-end: var(--pc-s5);
	background: var(--pc-carta-alt);
}

.pc-ente__etichetta {
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pc-inchiostro-tenue);
	margin: 0 0 var(--pc-s1);
}

.pc-ente__nome { margin: 0; font-weight: 600; }

/* --------------------------------------------------------------------- */
/* Avviso territorio non attivo                                           */
/* --------------------------------------------------------------------- */
.pc-avviso {
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio-l);
	padding: var(--pc-s4);
	margin-block-end: var(--pc-s5);
	background: var(--pc-carta-alt);
}

.pc-avviso__titolo { font-size: 1rem; margin: 0 0 var(--pc-s2); }
.pc-avviso__testo { margin: 0 0 var(--pc-s4); color: var(--pc-inchiostro-tenue); }

/* --------------------------------------------------------------------- */
/* Scelte e consensi                                                      */
/* --------------------------------------------------------------------- */
.pc-scelta,
.pc-consensi {
	border: 0;
	padding: 0;
	margin: 0 0 var(--pc-s5);
}

.pc-scelta__titolo,
.pc-consensi__titolo {
	padding: 0;
	font-size: .8125rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pc-inchiostro-tenue);
	margin-block-end: var(--pc-s3);
}

.pc-scelta__opzione,
.pc-consenso {
	display: flex;
	gap: var(--pc-s3);
	align-items: flex-start;
	padding: var(--pc-s3) 0;
	cursor: pointer;
	line-height: 1.5;
}

.pc-scelta__opzione input,
.pc-consenso input {
	/* Bersaglio ampio: il percorso è mobile-first. */
	inline-size: 1.25rem;
	block-size: 1.25rem;
	margin-block-start: .1rem;
	flex: none;
	accent-color: var(--pc-accento);
}

.pc-consenso span { font-size: .9375rem; }

.pc-spedizione[hidden] { display: none; }

/* --------------------------------------------------------------------- */
/* Riepilogo: impaginazione da documento                                  */
/* --------------------------------------------------------------------- */
.pc-riepilogo { margin: 0 0 var(--pc-s6); }

.pc-riepilogo__riga {
	display: grid;
	gap: var(--pc-s1);
	padding: var(--pc-s3) 0;
	border-block-end: var(--pc-bordo) solid var(--pc-linea);
}

.pc-riepilogo__riga:last-child { border-block-end: 0; }

.pc-riepilogo__etichetta {
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pc-inchiostro-tenue);
}

.pc-riepilogo__valore { margin: 0; font-size: 1rem; }
.pc-riepilogo__valore--codice { font-family: var(--pc-mono); letter-spacing: .06em; }

.pc-riepilogo__condizione {
	display: block;
	font-size: .8125rem;
	font-style: italic;
	color: var(--pc-inchiostro-tenue);
	margin-block-start: var(--pc-s1);
}

/* --------------------------------------------------------------------- */
/* Requisiti: leggibili, mai in corpo ridotto (vincolo sez. 7.2)          */
/* --------------------------------------------------------------------- */
.pc-requisiti {
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio-l);
	padding: var(--pc-s4);
	margin-block-end: var(--pc-s6);
}

.pc-requisiti__titolo { font-size: 1rem; margin: 0 0 var(--pc-s3); }

.pc-requisiti__elenco {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pc-requisiti__voce {
	/* Stessa dimensione dei valori del riepilogo: nessuna svalutazione
	   grafica dei requisiti. */
	font-size: 1rem;
	padding: var(--pc-s2) 0 var(--pc-s2) var(--pc-s5);
	position: relative;
}

.pc-requisiti__voce::before {
	content: "";
	position: absolute;
	inset-inline-start: var(--pc-s2);
	inset-block-start: calc(var(--pc-s2) + .55em);
	inline-size: .375rem;
	block-size: .375rem;
	border-radius: 50%;
	background: var(--pc-accento);
}

.pc-requisiti__nota {
	font-size: .875rem;
	color: var(--pc-inchiostro-tenue);
	margin: var(--pc-s3) 0 0;
}

/* --------------------------------------------------------------------- */
/* Importo                                                                */
/* --------------------------------------------------------------------- */
.pc-importo { margin-block-end: var(--pc-s6); }
.pc-importo__titolo { font-size: 1rem; margin: 0 0 var(--pc-s2); }

.pc-importo__valore {
	font-family: var(--pc-titolo-font);
	font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.25rem);
	line-height: 1;
	margin: 0 0 var(--pc-s2);
}

.pc-importo__nota { font-size: .875rem; color: var(--pc-inchiostro-tenue); margin: 0 0 var(--pc-s1); }

/* Più fasce attive: elenco leggibile, nessuna evidenziata come "migliore". */
.pc-importo__fasce { list-style: none; margin: 0 0 var(--pc-s3); padding: 0; display: grid; gap: var(--pc-s3); }
.pc-importo__fascia { display: grid; gap: var(--pc-s1); padding-block: var(--pc-s2); border-block-end: var(--pc-bordo) solid var(--pc-linea); }
.pc-importo__fascia:last-child { border-block-end: 0; }
.pc-importo__fascia-nome { font-weight: 600; }
.pc-importo__fascia-testo,
.pc-importo__fascia-tempi { font-size: .875rem; color: var(--pc-inchiostro-tenue); }
.pc-importo__rimborso { font-size: .875rem; font-style: italic; margin: var(--pc-s3) 0 0; }

/* --------------------------------------------------------------------- */
/* Bottoni                                                                */
/* --------------------------------------------------------------------- */
.pc-azioni {
	display: flex;
	gap: var(--pc-s3);
	align-items: center;
	flex-wrap: wrap;
	margin-block-start: var(--pc-s6);
}

.pc-azioni--principale { justify-content: space-between; }

.pc-bottone {
	font: inherit;
	font-size: 1rem;
	border: var(--pc-bordo) solid transparent;
	border-radius: var(--pc-raggio);
	padding: var(--pc-s3) var(--pc-s5);
	min-block-size: 2.75rem;
	cursor: pointer;
	transition: background-color var(--pc-transizione), border-color var(--pc-transizione), opacity var(--pc-transizione);
}

.pc-bottone:focus-visible { outline: 2px solid var(--pc-accento); outline-offset: 2px; }
.pc-bottone[disabled] { opacity: .55; cursor: progress; }

.pc-bottone--primario {
	background: var(--pc-accento);
	color: var(--pc-accento-testo);
}

.pc-bottone--secondario {
	background: transparent;
	color: var(--pc-inchiostro);
	border-color: var(--pc-linea);
}

.pc-bottone--testo {
	background: transparent;
	color: var(--pc-inchiostro-tenue);
	padding-inline: var(--pc-s2);
}

.pc-bottone--largo { flex: 1 1 14rem; text-align: center; }

.pc-link { color: var(--pc-accento); text-underline-offset: .2em; }

/* --------------------------------------------------------------------- */
/* Pagamento                                                              */
/* --------------------------------------------------------------------- */
.pc-pagamento { margin-block-start: var(--pc-s5); }
.pc-pagamento[hidden] { display: none; }
.pc-pagamento__elemento { min-block-size: 3rem; }

/* --------------------------------------------------------------------- */
/* Esito e pagina pratica                                                 */
/* --------------------------------------------------------------------- */
.pc-esito[hidden] { display: none; }
.pc-esito__titolo { font-family: var(--pc-titolo-font); font-size: 1.5rem; margin: 0 0 var(--pc-s5); }
.pc-esito__testo { margin: 0 0 var(--pc-s5); }

.pc-pratica {
	max-width: var(--pc-larghezza);
	margin-inline: auto;
	padding-inline: var(--pc-s4);
}

.pc-pratica__intestazione {
	border-block-end: 2px solid var(--pc-inchiostro);
	padding-block-end: var(--pc-s4);
	margin-block-end: var(--pc-s6);
}

/* Il numero pratica è un elemento identitario (sez. 23.4). */
.pc-pratica__numero {
	font-family: var(--pc-mono);
	font-size: .875rem;
	letter-spacing: .14em;
	color: var(--pc-inchiostro-tenue);
	margin: 0 0 var(--pc-s2);
}

.pc-pratica__titolo {
	font-family: var(--pc-titolo-font);
	font-size: clamp(1.4rem, 1.1rem + 1.4vw, 1.9rem);
	line-height: 1.15;
	margin: 0;
}

.pc-sezione__titolo {
	font-size: .75rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pc-inchiostro-tenue);
	margin: 0 0 var(--pc-s2);
}

.pc-stato { margin-block-end: var(--pc-s6); }
.pc-stato__valore { font-size: 1.25rem; font-weight: 600; margin: 0 0 var(--pc-s5); }
.pc-stato__prossimo { margin: 0; }

.pc-completamento,
.pc-completamento-dati,
.pc-dettagli,
.pc-cronologia,
.pc-assistenza,
.pc-completa,
.pc-messaggi,
.pc-checklist,
.pc-canali,
.pc-modelli,
.pc-ricevuti,
.pc-sorelle {
	margin-block-end: var(--pc-s6);
	padding-block-start: var(--pc-s5);
	border-block-start: var(--pc-bordo) solid var(--pc-linea);
}

.pc-completamento__intro,
.pc-completamento-dati > p:first-of-type { color: var(--pc-inchiostro-tenue); margin: 0 0 var(--pc-s5); }
.pc-completa__messaggio { font-size: 1.0625rem; margin: 0; }
.pc-completamento__mancanti { font-size: .9375rem; margin: 0 0 var(--pc-s5); }

/* --------------------------------------------------------------------- */
/* Checkout essenziale: fasce di servizio (MACRO 3 Blocco B)              */
/* --------------------------------------------------------------------- */
.pc-fasce {
	border: 0;
	padding: 0;
	margin: 0 0 var(--pc-s6);
	display: grid;
	gap: var(--pc-s3);
}

.pc-fascia {
	display: flex;
	gap: var(--pc-s3);
	align-items: flex-start;
	padding: var(--pc-s4);
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio-l);
	cursor: pointer;
	transition: border-color var(--pc-transizione), background-color var(--pc-transizione);
}

.pc-fascia:has(input:checked) {
	border-color: var(--pc-accento);
	background: var(--pc-carta-alt);
}

.pc-fascia input {
	inline-size: 1.25rem;
	block-size: 1.25rem;
	margin-block-start: .2rem;
	flex: none;
	accent-color: var(--pc-accento);
}

.pc-fascia__contenuto { display: grid; gap: var(--pc-s1); min-inline-size: 0; }
.pc-fascia__nome { font-weight: 600; font-size: 1.0625rem; }
.pc-fascia__descrizione { color: var(--pc-inchiostro-tenue); font-size: .9375rem; }
.pc-fascia__prezzo {
	font-family: var(--pc-titolo-font);
	font-size: 1.25rem;
	margin-block-start: var(--pc-s2);
}

.pc-fascia-unica {
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio-l);
	padding: var(--pc-s4);
	margin-block-end: var(--pc-s6);
}

.pc-non-disponibile {
	text-align: center;
	padding-block: var(--pc-s7);
	display: grid;
	gap: var(--pc-s3);
}

/* --------------------------------------------------------------------- */
/* Checklist e antirabbica della pagina privata                          */
/* --------------------------------------------------------------------- */
.pc-checklist__elenco,
.pc-messaggi__elenco,
.pc-canali__elenco,
.pc-modelli__elenco,
.pc-ricevuti__elenco,
.pc-sorelle__elenco {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--pc-s2);
}

.pc-checklist__voce {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-s2) var(--pc-s3);
	align-items: baseline;
	padding: var(--pc-s2) 0;
	border-block-end: var(--pc-bordo) solid var(--pc-linea);
}

.pc-checklist__voce:last-child { border-block-end: 0; }
.pc-checklist__etichetta { font-weight: 600; flex: 1 1 auto; }
.pc-checklist__stato { font-size: .875rem; color: var(--pc-inchiostro-tenue); }
.pc-checklist__nota { flex-basis: 100%; font-size: .8125rem; font-style: italic; color: var(--pc-inchiostro-tenue); }

.pc-antirabbica {
	margin-block-start: var(--pc-s5);
	padding-block-start: var(--pc-s4);
	border-block-start: var(--pc-bordo) solid var(--pc-linea);
}

.pc-antirabbica__titolo { font-size: 1rem; margin: 0 0 var(--pc-s2); }
.pc-antirabbica__breve { margin: 0 0 var(--pc-s3); }
.pc-antirabbica__dettagli summary { cursor: pointer; color: var(--pc-accento); }
.pc-antirabbica__percorso { padding-inline-start: var(--pc-s5); }
.pc-antirabbica__percorso li { padding-block: var(--pc-s1); }

.pc-messaggi__voce,
.pc-ricevuti__voce,
.pc-sorelle__voce {
	display: grid;
	gap: var(--pc-s1);
	padding: var(--pc-s3) 0;
	border-block-end: var(--pc-bordo) solid var(--pc-linea);
}

.pc-messaggi__voce:last-child,
.pc-ricevuti__voce:last-child,
.pc-sorelle__voce:last-child { border-block-end: 0; }

.pc-messaggi__data,
.pc-ricevuti__data {
	font-family: var(--pc-mono);
	font-size: .75rem;
	color: var(--pc-inchiostro-tenue);
}

.pc-sorelle__voce { grid-auto-flow: column; grid-auto-columns: max-content; justify-content: start; gap: var(--pc-s3); align-items: baseline; }
.pc-canali__voce { padding-block: var(--pc-s2); }

.pc-modelli__voce {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-s2) var(--pc-s3);
	align-items: baseline;
	padding: var(--pc-s2) 0;
	border-block-end: var(--pc-bordo) solid var(--pc-linea);
}
.pc-modelli__voce:last-child { border-block-end: 0; }
.pc-modelli__nome { font-weight: 600; flex: 1 1 auto; }

.pc-pratica__sottotitolo { color: var(--pc-inchiostro-tenue); margin: var(--pc-s2) 0 0; }
.pc-stato__fascia { font-size: 1.0625rem; font-weight: 600; margin: 0 0 var(--pc-s5); }

/* --------------------------------------------------------------------- */
/* Delega e firma                                                         */
/* --------------------------------------------------------------------- */
.pc-delega { margin-block-end: var(--pc-s6); }
.pc-delega__titolo { font-size: 1rem; margin: 0 0 var(--pc-s3); }
.pc-delega__testo { margin: 0 0 var(--pc-s4); }

.pc-firma__area {
	inline-size: 100%;
	block-size: 11rem;
	border: var(--pc-bordo) dashed var(--pc-linea);
	border-radius: var(--pc-raggio);
	background: var(--pc-carta);
	/* Il gesto di firma non deve far scorrere la pagina. */
	touch-action: none;
	cursor: crosshair;
	display: block;
}

.pc-firma__azioni {
	display: flex;
	gap: var(--pc-s3);
	justify-content: space-between;
	margin-block-start: var(--pc-s3);
}

/* --------------------------------------------------------------------- */
/* Caricamento documenti                                                  */
/* --------------------------------------------------------------------- */
.pc-upload {
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio-l);
	padding: var(--pc-s4);
	margin-block-end: var(--pc-s4);
	transition: border-color var(--pc-transizione);
}

.pc-upload.is-completo { border-color: var(--pc-conferma); }
.pc-upload__titolo { font-size: 1rem; margin: 0 0 var(--pc-s3); }

.pc-upload__campo { display: block; cursor: pointer; }
.pc-upload__campo input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }

.pc-upload__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 2.75rem;
	padding: var(--pc-s3) var(--pc-s5);
	border: var(--pc-bordo) solid var(--pc-linea);
	border-radius: var(--pc-raggio);
}

.pc-upload__campo input:focus-visible + .pc-upload__cta {
	outline: 2px solid var(--pc-accento);
	outline-offset: 2px;
}

.pc-upload__stato { font-size: .875rem; color: var(--pc-inchiostro-tenue); margin: var(--pc-s3) 0 0; }
.pc-upload__stato:empty { display: none; }

/* --------------------------------------------------------------------- */
/* Cronologia                                                             */
/* --------------------------------------------------------------------- */
.pc-cronologia__elenco { list-style: none; margin: 0; padding: 0; }

.pc-cronologia__voce {
	display: grid;
	gap: var(--pc-s1);
	padding: var(--pc-s3) 0;
	border-block-end: var(--pc-bordo) solid var(--pc-linea);
}

.pc-cronologia__voce:last-child { border-block-end: 0; }

.pc-cronologia__data {
	font-family: var(--pc-mono);
	font-size: .75rem;
	letter-spacing: .06em;
	color: var(--pc-inchiostro-tenue);
}

.pc-assistenza__riferimento {
	font-family: var(--pc-mono);
	font-size: .8125rem;
	letter-spacing: .1em;
	color: var(--pc-inchiostro-tenue);
	margin-block-start: var(--pc-s3);
}

/* --------------------------------------------------------------------- */
/* Blocchi informativi                                                    */
/* --------------------------------------------------------------------- */
.pc-passaggi {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--pc-s5);
}

@media (min-width: 48rem) {
	.pc-passaggi { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
}

.pc-passaggio { margin: 0; }

.pc-passaggio__numero {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 1.75rem;
	block-size: 1.75rem;
	border: var(--pc-bordo) solid var(--pc-inchiostro);
	border-radius: 50%;
	font-family: var(--pc-mono);
	font-size: .8125rem;
	margin-block-end: var(--pc-s3);
}

.pc-passaggio__titolo { font-size: 1rem; margin: 0 0 var(--pc-s2); }
.pc-passaggio__testo { margin: 0; color: var(--pc-inchiostro-tenue); font-size: .9375rem; }

.pc-faq__voce { border-block-end: var(--pc-bordo) solid var(--pc-linea); }

.pc-faq__domanda {
	padding: var(--pc-s4) 0;
	cursor: pointer;
	font-weight: 600;
	list-style: none;
}

.pc-faq__domanda::-webkit-details-marker { display: none; }
.pc-faq__domanda::after { content: " +"; font-family: var(--pc-mono); color: var(--pc-inchiostro-tenue); }
.pc-faq__voce[open] .pc-faq__domanda::after { content: " −"; }
.pc-faq__risposta { margin: 0 0 var(--pc-s4); color: var(--pc-inchiostro-tenue); }

.pc-gestore { font-size: .8125rem; color: var(--pc-inchiostro-tenue); }
.pc-gestore__natura { margin: 0 0 var(--pc-s2); }
.pc-gestore__dati { margin: 0 0 var(--pc-s1); }
.pc-gestore__contatto { margin: 0; }

/* --------------------------------------------------------------------- */
/* Messaggi                                                               */
/* --------------------------------------------------------------------- */
.pc-messaggio,
.pc-verifica {
	max-width: var(--pc-larghezza);
	margin-inline: auto;
	padding: var(--pc-s7) var(--pc-s4);
}

.pc-messaggio__titolo,
.pc-verifica__titolo {
	font-family: var(--pc-titolo-font);
	font-size: clamp(1.4rem, 1.1rem + 1.4vw, 1.9rem);
	margin: 0 0 var(--pc-s5);
}

.pc-messaggio__testo,
.pc-verifica__testo { margin: 0 0 var(--pc-s4); }

.pc-modifica { margin-block: var(--pc-s5); }
.pc-modifica summary { cursor: pointer; padding-block: var(--pc-s3); font-weight: 600; }
.pc-modifica form { margin-block-start: var(--pc-s4); }
.pc-riepilogo__valore, .pc-stato__prossimo, .pc-campo__errore { overflow-wrap: anywhere; }
.pc-bottone { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }

.pc-firma__area { background: #fff; color: #111; }

/* Data numerica rapida: nessun calendario, solo GG / MM / AAAA. */
.pc-data-rapida {
	display: grid;
	grid-template-columns: minmax(3.4rem, .8fr) auto minmax(3.4rem, .8fr) auto minmax(5.4rem, 1.25fr);
	align-items: center;
	gap: var(--pc-s2);
}
.pc-data-rapida__campo { text-align: center; font-variant-numeric: tabular-nums; }
.pc-data-rapida__separatore { color: var(--pc-inchiostro-tenue); text-align: center; }
@media (max-width: 24rem) {
	.pc-data-rapida { gap: var(--pc-s1); }
	.pc-data-rapida__campo { padding-inline: var(--pc-s2); }
}

/* Conferma territoriale nel flusso pratica. */
.pc-campo__conferma--cap {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 650;
}
.pc-campo__conferma--cap::before {
	content: "✓";
	display: inline-grid;
	place-items: center;
	width: 1.05rem;
	height: 1.05rem;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: .7rem;
	line-height: 1;
}
.pc-campo__conferma--cap[hidden] { display: none; }
.pc-ente {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-s4);
}
.pc-ente__testo { min-width: 0; }
.pc-ente__territorio {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding-inline-start: var(--pc-s4);
	border-inline-start: 1px solid var(--pc-linea);
	color: var(--pc-inchiostro);
	flex: 0 0 auto;
}
.pc-ente__territorio[hidden] { display: none; }
.pc-ente__territorio-marchio {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	color: var(--pc-accento);
}
.pc-ente__territorio-marchio svg { width: 100%; height: 100%; }
.pc-ente__territorio small,
.pc-ente__territorio strong { display: block; }
.pc-ente__territorio small {
	font-size: .65rem;
	line-height: 1.15;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--pc-inchiostro-tenue);
}
.pc-ente__territorio strong { margin-top: .1rem; font-size: .85rem; }
@media (max-width: 36rem) {
	.pc-ente { align-items: flex-start; flex-direction: column; }
	.pc-ente__territorio { padding: var(--pc-s3) 0 0; border-inline-start: 0; border-top: 1px solid var(--pc-linea); width: 100%; }
}

/* v0.3.2: resume, optional booklet and a single error below the date group. */
.pc-ripresa{border:1px solid var(--pc-bordo,#dce1e7);padding:24px;margin:0 0 24px;background:var(--pc-superficie,#f7f9fb)}
.pc-ripresa p{margin:8px 0 0;line-height:1.6}.pc-ripresa__azioni{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.pc-salvataggio{min-height:1.4em;font-size:12px;line-height:1.5;color:var(--pc-testo-secondario,#596978);margin:0 0 18px}
.pc-test-banner{font-size:13px;border:1px solid #b9cde0;border-radius:4px;background:#f0f5fa;padding:14px 18px}
[data-pc-data-rapida]+.pc-campo__errore{display:block;width:100%;max-width:none;white-space:normal;word-break:normal;line-height:1.5;margin-top:7px}
.pc-campo__errore[hidden],.pc-ripresa[hidden]{display:none!important}
[data-pc-libretto-bozza]{max-width:100%;font-size:14px}[data-pc-libretto-esito]{font-size:12px;color:#276140}
@media(max-width:480px){.pc-ripresa{padding:18px}.pc-ripresa__azioni{flex-direction:column;align-items:flex-start}}

/* Verifica pratica: ricerca per numero pratica + email. */
.pc-verifica__modulo { max-width: 32rem; margin-block: var(--pc-s5); }
.pc-verifica__trappola { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pc-verifica__nota { font-size: .92rem; color: var(--pc-inchiostro-tenue); }

/* --------------------------------------------------------------------- */
/* Pagina pratica: guida in 3 passaggi (dati, firma, libretto)            */
/* --------------------------------------------------------------------- */
.pc-guida { margin-block: 0 2rem; padding: clamp(1rem, .6rem + 2vw, 1.75rem); border: 1px solid #c9d6ea; border-radius: 16px; background: #f4f7fc; }
.pc-guida__titolo { margin: 0 0 .5rem; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); color: var(--pc-color-notte, #0a2550); }
.pc-guida__avviso { margin: 0 0 1.25rem; padding: .7rem .9rem; border-left: 4px solid var(--pc-color-star, #f2c230); border-radius: 6px; background: #fff; font-weight: 600; line-height: 1.45; color: var(--pc-color-notte, #0a2550); }
.pc-guida__passi { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.pc-guida__passo { padding: 1rem; border: 1px solid #d5deec; border-radius: 12px; background: #fff; }
.pc-guida__passo.is-attesa { opacity: .7; }
.pc-guida__passo.is-fatto { border-color: #9fd3b4; }
.pc-guida__intestazione { display: flex; align-items: center; gap: .7rem; margin-bottom: .6rem; }
.pc-guida__numero { display: grid; place-items: center; flex: none; width: 2rem; height: 2rem; border-radius: 50%; background: var(--pc-color-notte, #0a2550); color: #fff; font-weight: 700; }
.pc-guida__passo.is-fatto .pc-guida__numero { background: #1f8a4c; }
.pc-guida__nome { margin: 0; font-size: 1.0625rem; color: var(--pc-color-notte, #0a2550); }
.pc-guida__testo { margin: 0 0 .75rem; }
.pc-guida__nota { margin: 0; font-size: .9375rem; color: #4a5568; }
.pc-guida__nota--ok { color: #1f6b3d; font-weight: 600; }
.pc-guida__nota--attenzione { margin-bottom: .9rem; padding: .55rem .75rem; border-radius: 6px; background: #fff8e1; color: #5a4300; }

.pc-schede-dati { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-bottom: .75rem; }
.pc-scheda-dati { padding: .7rem .85rem; border-radius: 10px; background: #f4f7fc; }
.pc-scheda-dati__titolo { margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5b6b85; }
.pc-scheda-dati__riga { margin: 0; font-size: .9375rem; line-height: 1.4; overflow-wrap: anywhere; }
.pc-scheda-dati__riga--forte { font-weight: 700; }

.pc-modifica-dati__apri { display: inline-block; cursor: pointer; font-weight: 600; color: var(--pc-color-accent, #1d4f91); text-decoration: underline; text-underline-offset: 3px; padding: .25rem 0; }
.pc-modifica-dati[open] .pc-modifica-dati__apri { margin-bottom: .75rem; }
.pc-modifica-dati__griglia { display: grid; gap: 0 .9rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.pc-modifica-dati__form .pc-consenso { margin-block: .5rem; }

.pc-firma__suggerimento { margin: 0 0 .35rem; font-weight: 700; color: var(--pc-color-notte, #0a2550); }
.pc-firma__freccia { display: inline-block; transform: rotate(90deg); color: var(--pc-color-star, #e0a800); font-size: 1.2rem; animation: pc-freccia 1.2s ease-in-out infinite; }
@keyframes pc-freccia { 0%, 100% { translate: 0 0; } 50% { translate: 0 4px; } }
@media (prefers-reduced-motion: reduce) { .pc-firma__freccia { animation: none; } }
.pc-firma__foglio { position: relative; }
.pc-firma__foglio .pc-firma__area { block-size: 12rem; border: 2px dashed #9db3d6; border-radius: 12px; background: #fff; }
.pc-firma__riga { position: absolute; left: 1rem; right: 1rem; bottom: 2.4rem; border-bottom: 1.5px solid #c5d1e4; font-size: .9rem; line-height: 1; color: #9db3d6; pointer-events: none; }
.pc-firma__foglio.ha-tratto .pc-firma__riga { opacity: .35; }

.pc-guida .pc-upload { background: #fff; margin-block-end: .6rem; }
.pc-guida .pc-upload__titolo { font-weight: 600; }
.pc-guida .pc-upload__cta { background: var(--pc-color-notte, #0a2550); border-color: var(--pc-color-notte, #0a2550); color: #fff; font-weight: 600; }
.pc-upload__riga { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.pc-upload__ricevute { font-size: .8125rem; font-weight: 700; color: #1f6b3d; white-space: nowrap; }
.pc-upload__suggerimento { margin: .35rem 0 0; font-size: .8125rem; color: #5b6b85; }
.pc-guida .pc-upload.is-completo .pc-upload__cta { background: #fff; color: var(--pc-color-notte, #0a2550); }

/* Recesso online (art. 54-bis). */
.pc-recesso-area { margin-block: var(--pc-s5); }
.pc-recesso-area__box { border: 1px solid var(--pc-color-bordo, #d5dbe5); border-radius: 10px; padding: var(--pc-s3) var(--pc-s4); background: #fff; }
.pc-recesso-area__apri { cursor: pointer; font-weight: 600; color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.pc-recesso-area__box[open] .pc-recesso-area__apri { margin-bottom: var(--pc-s3); }
.pc-recesso-area__testo { margin: 0 0 var(--pc-s3); }
.pc-recesso-area .pc-verifica__modulo { margin-block: 0; }
.pc-pagamento__modifica { margin: .75rem 0 0; text-align: right; }

/* Suggerimenti sotto il campo (comune, razza): sostituiscono il datalist. */
.pc-suggerimenti-ancora { position: relative; }
.pc-suggerimenti {
	position: absolute;
	inset-inline: 0;
	z-index: 30;
	margin: .25rem 0 0;
	padding: .25rem 0;
	list-style: none;
	max-block-size: 14rem;
	overflow-y: auto;
	background: var(--pc-carta, #fff);
	border: var(--pc-bordo, 1px) solid var(--pc-linea, #c9d3e3);
	border-radius: var(--pc-raggio, 8px);
	box-shadow: 0 10px 28px rgba(18, 61, 120, .16);
	-webkit-overflow-scrolling: touch;
}
.pc-suggerimenti[hidden] { display: none; }
.pc-suggerimenti [role="option"] {
	padding: .7rem .9rem;
	min-block-size: 2.75rem;
	box-sizing: border-box;
	font-size: 1rem;
	line-height: 1.35;
	cursor: pointer;
	color: var(--pc-inchiostro, #14213d);
}
.pc-suggerimenti [role="option"]:hover,
.pc-suggerimenti [role="option"][aria-selected="true"] { background: rgba(18, 61, 120, .08); }

/* Apple Pay / Google Pay in evidenza sopra la carta. */
.pc-pagamento__express { margin-block-end: .25rem; }
.pc-pagamento__express[hidden], .pc-pagamento__oppure[hidden] { display: none; }
.pc-pagamento__oppure { display: flex; align-items: center; gap: .75rem; margin: .9rem 0; font-size: .875rem; color: var(--pc-inchiostro-tenue, #5a6478); }
.pc-pagamento__oppure::before, .pc-pagamento__oppure::after { content: ""; flex: 1; block-size: 1px; background: var(--pc-linea, #c9d3e3); }
.pc-pagamento__scelta { margin: 0 0 .9rem; padding: .7rem .9rem; border-radius: var(--pc-raggio, 8px); background: rgba(18, 61, 120, .07); font-weight: 600; }
