/**
 * Struttura e composizione delle pagine.
 *
 * Nessun valore visivo è scritto qui: tutto arriva dai token. Questo file
 * descrive come le cose sono disposte, non che aspetto hanno.
 */

/* --------------------------------------------------------------------- */
/* Reset misurato                                                         */
/* --------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scrollbar-gutter: stable;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	margin: 0;
	background: var(--pc-color-paper);
	color: var(--pc-color-ink);
	font-family: var(--pc-font-body);
	font-size: var(--pc-text-base);
	line-height: var(--pc-leading-normal);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
	font-family: var(--pc-font-display);
	font-weight: var(--pc-weight-bold);
	line-height: var(--pc-leading-tight);
	letter-spacing: var(--pc-tracking-tight);
	margin: 0 0 var(--pc-space-4);
	text-wrap: balance;
}

p { margin: 0 0 var(--pc-space-4); overflow-wrap: break-word; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a { color: var(--pc-color-accent); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--pc-color-accent-hover); }

img, svg, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

:focus-visible {
	outline: 2px solid var(--pc-color-accent);
	outline-offset: 2px;
}
.testata :focus-visible, .chiusura :focus-visible { outline-color: #fff; }

::selection { background: var(--pc-color-accent-soft); color: var(--pc-color-accent-deep); }

/* Il salto al contenuto è visibile solo quando serve. */
.salta-al-contenuto {
	position: fixed;
	left: var(--pc-space-4);
	top: var(--pc-space-3);
	z-index: 200;
	background: var(--pc-color-paper);
	color: var(--pc-color-accent-deep);
	padding: var(--pc-space-3) var(--pc-space-4);
	border: 2px solid var(--pc-color-accent-deep);
	border-radius: var(--pc-radius);
	transform: translateY(-160%);
	font-weight: var(--pc-weight-bold);
}

.salta-al-contenuto:focus { transform: none; }

.solo-lettori-schermo,
.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip-path: inset(50%);
	white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------- */
/* Contenitori                                                            */
/* --------------------------------------------------------------------- */
.contenitore {
	width: 100%;
	max-width: var(--pc-measure-wide);
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}

.contenitore--stretto { max-width: var(--pc-measure-text); }

.sezione { padding-block: var(--pc-space-7); }
.sezione--ampia { padding-block: var(--pc-space-8); }
.sezione + .sezione { border-block-start: var(--pc-border-width) solid var(--pc-color-rule); }
.sezione--fondale { background: var(--pc-color-paper-alt); border-block: var(--pc-border-width) solid var(--pc-color-rule); }
.sezione--fondale + .sezione--fondale { border-block-start: 0; margin-block-start: calc(var(--pc-border-width) * -1); }

.sezione__intestazione {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	margin-block-end: var(--pc-space-6);
}

@media (min-width: 62rem) {
	.sezione__intestazione {
		grid-template-columns: minmax(220px, .7fr) minmax(360px, 1.2fr);
		align-items: end;
	}
}

.sezione__intestazione h2 { margin: 0; }
.sezione__intestazione p { margin: 0; max-width: 42rem; color: var(--pc-color-ink-muted); font-size: var(--pc-text-lead); }

/* --------------------------------------------------------------------- */
/* Testata                                                                */
/* Identità blu istituzionale, stabile su ogni pagina (direzione          */
/* approvata). Tre fasce: informazioni di servizio, marchio+navigazione,  */
/* pannelli di interazione (ricerca, pratica).                            */
/* --------------------------------------------------------------------- */
.testata {
	position: relative;
	z-index: 40;
	background: var(--pc-color-header-bg);
	color: var(--pc-color-header-ink);
}

.testata__fascia { border-block-end: var(--pc-border-width) solid var(--pc-color-header-line); }
.testata__fascia-interno {
	min-height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-space-5);
	font-size: var(--pc-text-micro);
}
.testata__fascia-testo {
	margin: 0;
	opacity: .92;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.testata__fascia-azioni { display: flex; align-items: center; gap: var(--pc-space-4); flex: 0 0 auto; }

.lingua-selettore {
	display: inline-flex;
	align-items: center;
	gap: var(--pc-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
	color: inherit;
	font-size: var(--pc-text-micro);
	font-weight: var(--pc-weight-bold);
	letter-spacing: var(--pc-tracking-label);
}
.lingua-selettore__corrente,
.lingua-selettore__link {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	color: inherit;
}
.lingua-selettore abbr { text-decoration: none; }
.lingua-selettore__link { opacity: .8; text-decoration: underline; text-underline-offset: 4px; }
.lingua-selettore__link:hover { opacity: 1; }

.testata__link-pratica {
	display: inline-flex;
	align-items: center;
	gap: var(--pc-space-2);
	min-height: 2.5rem;
	color: inherit;
	font-weight: var(--pc-weight-medium);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.testata__link-pratica svg { width: 16px; height: 16px; }

.testata__interno {
	display: grid;
	/* La colonna centrale si adatta alle voci: con un minimo fisso le
	   quattro voci del menu andavano a capo fra 1100 e 1400 px. */
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--pc-space-6);
	min-height: 5rem;
	padding-block: var(--pc-space-3);
}

.marchio { display: inline-flex; align-items: center; gap: var(--pc-space-3); text-decoration: none; color: inherit; min-width: 0; }
.marchio__testo { display: grid; gap: 2px; min-width: 0; }
.marchio__nome {
	font-family: var(--pc-font-display);
	font-weight: var(--pc-weight-bold);
	font-size: 1.25rem;
	letter-spacing: var(--pc-tracking-tight);
	line-height: 1.1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.marchio__qualifica { font-size: var(--pc-text-micro); letter-spacing: var(--pc-tracking-label); opacity: .8; line-height: 1; }

.timbro { flex: none; width: 2.5rem; height: 2rem; color: inherit; }
.timbro--chiusura { width: 2.75rem; height: 2.2rem; }

.navigazione { display: flex; align-items: center; justify-content: center; }
.navigazione__elenco {
	display: flex;
	flex-wrap: nowrap;
	white-space: nowrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: var(--pc-space-6);
	font-size: var(--pc-text-small);
	font-weight: var(--pc-weight-medium);
}
.navigazione__elenco a {
	position: relative;
	display: inline-block;
	padding-block: var(--pc-space-3);
	color: inherit;
	text-decoration: none;
}
.navigazione__elenco a::after {
	content: "";
	position: absolute;
	left: 0; right: 100%; bottom: 6px;
	height: 1px;
	background: currentColor;
	transition: right var(--pc-motion);
}
.navigazione__elenco a:hover::after,
.navigazione__elenco .current-menu-item > a::after { right: 0; }

.testata__azioni { display: flex; align-items: center; justify-content: flex-end; gap: var(--pc-space-4); }
.testata__separatore { width: 1px; height: 1.75rem; background: var(--pc-color-header-line); }

.cerchio-icona {
	width: 2.75rem; height: 2.75rem;
	border: 0; border-radius: 50%;
	background: var(--pc-color-paper);
	color: var(--pc-color-accent);
	display: grid; place-items: center;
	flex: none;
}
.cerchio-icona svg { width: 20px; height: 20px; }

.bottone-verifica {
	min-width: 9rem;
	min-height: 2.75rem;
	padding-inline: var(--pc-space-5);
	border: var(--pc-border-width) solid transparent;
	border-radius: var(--pc-radius);
	background: var(--pc-color-paper);
	color: var(--pc-color-accent-deep);
	font-size: var(--pc-text-small);
	font-weight: var(--pc-weight-bold);
	box-shadow: var(--pc-shadow-raised);
}

.menu-mobile__attivatore {
	display: none;
	width: 2.75rem; height: 2.75rem;
	border: var(--pc-border-width) solid var(--pc-color-header-line);
	background: rgba(255, 255, 255, .08);
	color: inherit;
	border-radius: var(--pc-radius);
	place-items: center;
}
.menu-mobile__attivatore svg { width: 20px; height: 20px; }

/* --------------------------------------------------------------------- */
/* Pannelli di interazione (ricerca, la tua pratica)                      */
/* --------------------------------------------------------------------- */
.testata__pannelli { position: relative; z-index: 60; }

.pannello {
	position: absolute;
	top: var(--pc-space-3);
	z-index: 70;
	width: min(30rem, calc(100vw - 2.5rem));
	background: var(--pc-color-paper);
	color: var(--pc-color-ink);
	border: var(--pc-border-width) solid var(--pc-color-rule);
	box-shadow: var(--pc-shadow-raised);
	padding: var(--pc-space-5);
	border-radius: var(--pc-radius-lg);
}
.pannello--ricerca { left: var(--pc-gutter); width: min(42rem, calc(100vw - 2.5rem)); }
.pannello--pratica { right: var(--pc-gutter); }
.pannello[hidden] { display: none; }

.pannello__intestazione { display: flex; align-items: center; justify-content: space-between; gap: var(--pc-space-3); margin-bottom: var(--pc-space-4); }
.pannello__intestazione strong { font-size: var(--pc-text-micro); text-transform: uppercase; letter-spacing: var(--pc-tracking-label); color: var(--pc-color-ink-muted); }
.pannello__chiudi {
	width: 2.75rem; height: 2.75rem;
	border: 0; background: var(--pc-color-paper-alt);
	color: var(--pc-color-ink);
	border-radius: var(--pc-radius);
	font-size: 1.25rem; line-height: 1;
	display: grid; place-items: center;
	margin: calc(var(--pc-space-2) * -1);
}

.pannello__campo-ricerca {
	display: grid;
	grid-template-columns: 20px 1fr;
	gap: var(--pc-space-3);
	align-items: center;
	min-height: 3rem;
	border: var(--pc-border-width) solid var(--pc-color-rule-strong);
	border-radius: var(--pc-radius);
	padding-inline: var(--pc-space-4);
}
.pannello__campo-ricerca svg { width: 18px; height: 18px; opacity: .7; }
.pannello__campo-ricerca input { width: 100%; height: 2.9rem; border: 0; outline: 0; background: transparent; color: inherit; }

.pannello__testo { margin: 0 0 var(--pc-space-4); color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); }

.pannello__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--pc-space-3);
	margin-top: var(--pc-space-3);
	font-size: var(--pc-text-small);
	color: var(--pc-color-ink-muted);
}
.pannello__invio {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding-inline: var(--pc-space-5);
	border: 0;
	border-radius: var(--pc-radius);
	background: var(--pc-color-accent);
	color: var(--pc-color-accent-ink);
	font-size: var(--pc-text-small);
	font-weight: var(--pc-weight-bold);
	text-decoration: none;
}
.pannello__invio:hover { background: var(--pc-color-accent-hover); color: var(--pc-color-accent-ink); }
.azione-secondaria { color: var(--pc-color-accent); font-size: var(--pc-text-small); font-weight: var(--pc-weight-medium); }

/* --------------------------------------------------------------------- */
/* Menu mobile                                                            */
/* --------------------------------------------------------------------- */
.menu-mobile {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: var(--pc-color-accent-deep);
	color: #fff;
	padding: 6.5rem var(--pc-gutter) var(--pc-space-6);
	opacity: 0;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity var(--pc-motion), transform var(--pc-motion-slow);
	overflow-y: auto;
}
.menu-mobile.aperto { opacity: 1; pointer-events: auto; transform: none; }
.menu-mobile__chiudi {
	position: absolute;
	top: var(--pc-space-4);
	right: var(--pc-gutter);
	width: 2.75rem; height: 2.75rem;
	border: var(--pc-border-width) solid rgba(255, 255, 255, .35);
	background: rgba(255, 255, 255, .08);
	color: #fff;
	border-radius: var(--pc-radius);
	font-size: 1.5rem; line-height: 1;
	display: grid; place-items: center;
}
.menu-mobile__elenco { list-style: none; margin: 0; padding: 0; border-top: var(--pc-border-width) solid rgba(255, 255, 255, .22); }
.menu-mobile__elenco li { border-bottom: var(--pc-border-width) solid rgba(255, 255, 255, .18); }
.menu-mobile__elenco a { display: flex; align-items: center; min-height: 3.5rem; color: inherit; text-decoration: none; font-size: 1.1rem; font-weight: var(--pc-weight-medium); }
.menu-mobile small { display: block; margin-top: var(--pc-space-6); max-width: 32rem; color: rgba(255, 255, 255, .78); line-height: var(--pc-leading-normal); }
/* --------------------------------------------------------------------- */
/* Briciole (breadcrumb)                                                  */
/* --------------------------------------------------------------------- */
.briciole { padding-block-start: var(--pc-space-4); color: var(--pc-color-ink-faint); font-size: var(--pc-text-small); }
.briciole__elenco { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: var(--pc-space-2); margin: 0; padding: 0; }
.briciole__elenco li + li::before { content: "/"; margin-inline-end: var(--pc-space-2); color: var(--pc-color-rule-strong); }
.briciole__elenco a { color: inherit; text-decoration: none; }
.briciole__elenco a:hover { color: var(--pc-color-accent); }

/* --------------------------------------------------------------------- */
/* Apertura (hero home)                                                   */
/* Il prezzo non domina: prima si capisce il servizio (sez. 24.2).        */
/* --------------------------------------------------------------------- */
.apertura {
	position: relative;
	overflow: hidden;
	background: var(--pc-color-accent);
	color: #fff;
	padding-block: var(--pc-space-8) var(--pc-space-7);
}

/* Globo cartografico decorativo (direzione approvata). Stessa resa e lo
   stesso movimento del riferimento grafico, ma con la texture a puntini
   drasticamente alleggerita: era un singolo livello da 253KB di dati
   vettoriali per un elemento puramente decorativo, qui sotto i 33KB
   sorgente (pochi KB dopo la compressione), senza cambiarne l'aspetto. */
.apertura__globo {
	position: absolute;
	top: 50%;
	right: -6%;
	width: min(38rem, 60vw);
	height: auto;
	aspect-ratio: 1 / 1;
	transform: translateY(-50%);
	opacity: .5;
	pointer-events: none;
	z-index: 0;
}
.apertura__globo img {
	width: 100%;
	height: 100%;
	display: block;
	animation: pc-globo-rotazione 420s linear infinite, pc-globo-pulsazione 17s ease-in-out infinite;
	transform-origin: 50% 50%;
	/* Solo transform e opacity (compositor-only): sicuro da animare in modo
	   continuo senza costo di layout/paint (fixing-motion-performance). */
	will-change: transform, opacity;
}
.apertura__griglia, .apertura .nota-servizio, .apertura .distintivo-territorio { position: relative; z-index: 1; }

@keyframes pc-globo-rotazione {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
@keyframes pc-globo-pulsazione {
	0%, 100% { opacity: .56; }
	50% { opacity: .49; }
}
@media (prefers-reduced-motion: reduce) {
	.apertura__globo img { animation: none; }
}
@media (max-width: 68.75rem) {
	.apertura__globo { width: min(24rem, 62vw); right: -10%; opacity: .4; }
}
@media (max-width: 47.5rem) {
	.apertura__globo { width: 15rem; right: -18%; top: auto; bottom: -3rem; transform: none; opacity: .32; }
}

.apertura__griglia {
	display: grid;
	gap: var(--pc-space-7);
	align-items: start;
}

@media (min-width: 62rem) {
	.apertura__griglia { grid-template-columns: 1.3fr .9fr; }
}

/* Riga scenografica: comunicazione ed estetica, non l'H1 (sez. 6). */
.apertura__display {
	font-family: var(--pc-font-display);
	font-weight: var(--pc-weight-bold);
	font-size: var(--pc-text-hero);
	line-height: var(--pc-leading-tight);
	letter-spacing: var(--pc-tracking-tight);
	max-width: 14ch;
	margin: 0 0 var(--pc-space-3);
	color: #fff;
}

/* L'H1 reale, visibile e semanticamente corretto, discreto per disegno. */
.apertura__titolo {
	font-size: clamp(1.25rem, 1.05rem + .7vw, 1.5rem);
	font-weight: var(--pc-weight-medium);
	max-width: 34ch;
	margin-block-end: var(--pc-space-5);
	color: rgba(255, 255, 255, .92);
}

.apertura__testo {
	font-size: var(--pc-text-lead);
	max-width: 46ch;
	color: rgba(255, 255, 255, .88);
	margin-block-end: var(--pc-space-3);
}

.apertura__azioni {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-3);
	margin-block-start: var(--pc-space-6);
}

.apertura .bottone--primario { background: #fff; color: var(--pc-color-accent-deep); }
.apertura .bottone--primario:hover { background: var(--pc-color-accent-soft); color: var(--pc-color-accent-deep); }
.apertura .bottone--contorno { border-color: rgba(255, 255, 255, .55); color: #fff; }
.apertura .bottone--contorno:hover { border-color: #fff; color: #fff; }

.apertura__stats {
	display: grid;
	gap: var(--pc-space-4);
	padding: var(--pc-space-5);
	background: rgba(255, 255, 255, .08);
	border: var(--pc-border-width) solid rgba(255, 255, 255, .2);
	border-radius: var(--pc-radius-lg);
}
.apertura__stats div { display: grid; gap: 2px; }
.apertura__stats strong { font-size: var(--pc-text-lead); }
.apertura__stats span { font-size: var(--pc-text-small); color: rgba(255, 255, 255, .8); }

/* Nota sulla natura del servizio: chiara, mai trasformata in titolo. */
.nota-servizio {
	font-size: var(--pc-text-small);
	color: rgba(255, 255, 255, .78);
	border-inline-start: var(--pc-border-strong) solid rgba(255, 255, 255, .35);
	padding-inline-start: var(--pc-space-4);
	margin-block-start: var(--pc-space-6);
	max-width: 52ch;
}

.apertura .distintivo-territorio { margin-block-start: var(--pc-space-5); background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .3); }
.apertura .distintivo-territorio svg { fill: #8fd6b0; }

/* --------------------------------------------------------------------- */
/* Bottoni condivisi con il plugin                                        */
/* --------------------------------------------------------------------- */
.bottone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pc-space-2);
	min-height: 2.9rem;
	padding: var(--pc-space-3) var(--pc-space-5);
	font: inherit;
	font-weight: var(--pc-weight-medium);
	border: var(--pc-border-width) solid transparent;
	border-radius: var(--pc-radius);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--pc-motion), border-color var(--pc-motion), color var(--pc-motion);
}

.bottone--primario { background: var(--pc-color-accent); color: var(--pc-color-accent-ink); }
.bottone--primario:hover { background: var(--pc-color-accent-hover); color: var(--pc-color-accent-ink); }

.bottone--contorno { border-color: var(--pc-color-rule-strong); color: var(--pc-color-ink); }
.bottone--contorno:hover { border-color: var(--pc-color-ink); color: var(--pc-color-ink); }

/* --------------------------------------------------------------------- */
/* Distintivo territoriale · Lombardia (sez. 11)                          */
/* Elemento neutro: nessun logo ufficiale di Regione Lombardia.           */
/* --------------------------------------------------------------------- */
.distintivo-territorio {
	display: inline-flex;
	align-items: center;
	gap: var(--pc-space-2);
	margin: 0;
	padding: var(--pc-space-2) var(--pc-space-4);
	border: var(--pc-border-width) solid var(--pc-color-confirm);
	border-radius: 999px;
	background: var(--pc-color-confirm-soft);
	color: var(--pc-color-confirm);
	font-size: var(--pc-text-small);
	font-weight: var(--pc-weight-medium);
}
.distintivo-territorio svg { flex: none; fill: var(--pc-color-confirm); }

/* --------------------------------------------------------------------- */
/* Introduzione di pagina (kicker + H1 + testo + meta)                    */
/* --------------------------------------------------------------------- */
.pagina__intestazione {
	padding-block: var(--pc-space-7) var(--pc-space-6);
	border-block-end: var(--pc-border-width) solid var(--pc-color-rule);
	margin-block-end: 0;
}

.pagina__griglia {
	display: grid;
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: end;
}

@media (min-width: 58rem) {
	.pagina__griglia { grid-template-columns: minmax(0, .85fr) minmax(360px, 1.1fr); }
}

.pagina__eyebrow {
	margin: 0 0 var(--pc-space-2);
	font-size: var(--pc-text-micro);
	font-weight: var(--pc-weight-bold);
	text-transform: uppercase;
	letter-spacing: var(--pc-tracking-label);
	color: var(--pc-color-accent);
}

.pagina__titolo { font-size: var(--pc-text-h1); margin: 0; max-width: 20ch; color: var(--pc-color-accent-deep); }

.pagina__copy { margin: 0; max-width: 44rem; color: var(--pc-color-ink-muted); font-size: var(--pc-text-lead); line-height: var(--pc-leading-normal); }

.pagina__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-6);
	margin-block-start: var(--pc-space-5);
	padding-block-start: var(--pc-space-4);
	border-block-start: var(--pc-border-width) solid var(--pc-color-rule);
	color: var(--pc-color-ink-muted);
	font-size: var(--pc-text-small);
}
.pagina__meta strong { display: block; color: var(--pc-color-accent-deep); }

/* --------------------------------------------------------------------- */
/* Griglia informativa (content-grid / info-block)                       */
/* --------------------------------------------------------------------- */
.griglia-info {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-block-start: var(--pc-border-width) solid var(--pc-color-rule);
	border-inline-start: var(--pc-border-width) solid var(--pc-color-rule);
}
.blocco-info {
	min-height: 12rem;
	padding: var(--pc-space-5) var(--pc-space-6);
	border-inline-end: var(--pc-border-width) solid var(--pc-color-rule);
	border-block-end: var(--pc-border-width) solid var(--pc-color-rule);
	background: var(--pc-color-paper);
}
.sezione--fondale .blocco-info { background: var(--pc-color-paper); }
.blocco-info small {
	display: block;
	margin-bottom: var(--pc-space-4);
	color: var(--pc-color-accent);
	font-size: var(--pc-text-micro);
	font-weight: var(--pc-weight-bold);
	letter-spacing: var(--pc-tracking-label);
	text-transform: uppercase;
}
.blocco-info h3 { margin: 0 0 var(--pc-space-2); font-size: var(--pc-text-h3); color: var(--pc-color-accent-deep); }
.blocco-info p { margin: 0; color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); }
.blocco-info a { display: inline-flex; margin-top: var(--pc-space-4); color: var(--pc-color-accent); font-size: var(--pc-text-small); font-weight: var(--pc-weight-bold); text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------- */
/* Righe numerate (rows)                                                  */
/* --------------------------------------------------------------------- */
.righe { border-block-start: var(--pc-border-width) solid var(--pc-color-rule); }
.riga {
	display: grid;
	grid-template-columns: 3.25rem minmax(200px, .65fr) minmax(0, 1.35fr);
	gap: var(--pc-space-5);
	align-items: start;
	padding-block: var(--pc-space-5);
	border-block-end: var(--pc-border-width) solid var(--pc-color-rule);
}
.riga__numero { font-family: var(--pc-font-mono); font-size: var(--pc-text-small); font-weight: var(--pc-weight-bold); letter-spacing: var(--pc-tracking-code); color: var(--pc-color-ink-faint); }
.riga h3 { margin: 0; font-size: var(--pc-text-h3); color: var(--pc-color-accent-deep); }
.riga p { margin: 0; max-width: 42rem; color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); }

/* --------------------------------------------------------------------- */
/* Avviso e nota segnaposto                                               */
/* --------------------------------------------------------------------- */
.avviso {
	margin-block-start: var(--pc-space-6);
	padding: var(--pc-space-4) var(--pc-space-5);
	border-inline-start: var(--pc-border-strong) solid var(--pc-color-accent);
	background: var(--pc-color-accent-soft);
	color: var(--pc-color-ink);
	font-size: var(--pc-text-small);
	line-height: var(--pc-leading-normal);
}
.avviso strong { color: var(--pc-color-accent-deep); }

.nota-bozza {
	padding: var(--pc-space-5);
	border: var(--pc-border-width) solid var(--pc-color-rule-strong);
	background: var(--pc-color-paper-alt);
	color: var(--pc-color-ink-muted);
	font-size: var(--pc-text-small);
	line-height: var(--pc-leading-normal);
}
.nota-bozza strong { color: var(--pc-color-ink); }
.nota-bozza + .scheda,
.avviso + .scheda,
.nota-bozza + .griglia-info,
.nota-bozza + .righe,
.nota-bozza + .definizioni { margin-block-start: var(--pc-space-5); }

/* --------------------------------------------------------------------- */
/* Elenco link (link-list)                                                */
/* --------------------------------------------------------------------- */
.elenco-link { border-block-start: var(--pc-border-width) solid var(--pc-color-rule); }
.elenco-link__riga {
	display: grid;
	grid-template-columns: minmax(180px, .55fr) minmax(0, 1.3fr) auto;
	gap: var(--pc-space-5);
	align-items: center;
	min-height: 5rem;
	border-block-end: var(--pc-border-width) solid var(--pc-color-rule);
}
.elenco-link__riga strong { color: var(--pc-color-accent-deep); font-size: var(--pc-text-base); }
.elenco-link__riga span { color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); }
.elenco-link__riga a { color: var(--pc-color-accent); font-size: var(--pc-text-small); font-weight: var(--pc-weight-bold); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* --------------------------------------------------------------------- */
/* Elenco di definizioni (documenti, dati del gestore…)                  */
/* --------------------------------------------------------------------- */
.definizioni { display: grid; grid-template-columns: 16rem minmax(0, 1fr); border-block-start: var(--pc-border-width) solid var(--pc-color-rule); }
.definizioni dt, .definizioni dd { margin: 0; padding-block: var(--pc-space-4); border-block-end: var(--pc-border-width) solid var(--pc-color-rule); }
.definizioni dt { color: var(--pc-color-accent-deep); font-weight: var(--pc-weight-bold); font-size: var(--pc-text-small); padding-inline-end: var(--pc-space-5); }
.definizioni dd { color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); line-height: var(--pc-leading-normal); }

/* --------------------------------------------------------------------- */
/* FAQ (details/summary) — condivisa con .pc-faq del plugin               */
/* --------------------------------------------------------------------- */
.faq, .pc-faq__elenco { border-block-start: var(--pc-border-width) solid var(--pc-color-rule); }
.faq details, .pc-faq__voce { border-block-end: var(--pc-border-width) solid var(--pc-color-rule); }
.faq summary, .pc-faq__domanda {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: var(--pc-space-4) 2.75rem var(--pc-space-4) 0;
	color: var(--pc-color-accent-deep);
	font-size: var(--pc-text-lead);
	font-weight: var(--pc-weight-bold);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after, .pc-faq__domanda::after {
	content: "+";
	position: absolute;
	right: 3px; top: var(--pc-space-3);
	font-size: 1.5rem; font-weight: 400;
	color: var(--pc-color-ink-faint);
}
.faq details[open] summary::after { content: "−"; }
.faq details p { margin: 0; padding: 0 3.5rem var(--pc-space-5) 0; max-width: 50rem; color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); line-height: var(--pc-leading-normal); }

/* --------------------------------------------------------------------- */
/* Fascia di invito (CTA di fondo pagina)                                 */
/* --------------------------------------------------------------------- */
.invito { background: var(--pc-color-accent-soft); border-block: var(--pc-border-width) solid var(--pc-color-rule); }
.invito__interno { padding-block: var(--pc-space-6); display: flex; align-items: center; justify-content: space-between; gap: var(--pc-space-5); flex-wrap: wrap; }
.invito h2 { margin: 0 0 var(--pc-space-1); font-size: var(--pc-text-h2); color: var(--pc-color-accent-deep); }
.invito p { margin: 0; color: var(--pc-color-ink-muted); }

/* --------------------------------------------------------------------- */
/* Scheda dati: l'impaginazione da documento amministrativo               */
/* --------------------------------------------------------------------- */
.scheda {
	border: var(--pc-border-width) solid var(--pc-color-rule);
	border-radius: var(--pc-radius-lg);
	padding: var(--pc-space-5);
	background: var(--pc-color-paper);
}

.etichetta-micro {
	font-size: var(--pc-text-micro);
	text-transform: uppercase;
	letter-spacing: var(--pc-tracking-label);
	color: var(--pc-color-ink-muted);
	margin: 0 0 var(--pc-space-2);
}

.dato-codice { font-family: var(--pc-font-mono); letter-spacing: var(--pc-tracking-code); }

.titolo-sezione { font-size: var(--pc-text-h2); margin-block-end: var(--pc-space-5); color: var(--pc-color-accent-deep); }

.occhiello {
	font-size: var(--pc-text-micro);
	font-weight: var(--pc-weight-bold);
	text-transform: uppercase;
	letter-spacing: var(--pc-tracking-label);
	color: var(--pc-color-accent);
	margin: 0 0 var(--pc-space-3);
}

/* --------------------------------------------------------------------- */
/* Risultato fisico (sez. 24.3)                                           */
/* --------------------------------------------------------------------- */
.risultato { display: grid; gap: var(--pc-space-6); align-items: center; }

@media (min-width: 48rem) {
	.risultato { grid-template-columns: 1fr 1fr; }
}

.risultato__figura { margin: 0; }

.risultato__segnaposto {
	aspect-ratio: 3 / 2;
	background: var(--pc-color-paper-deep);
	border: var(--pc-border-width) solid var(--pc-color-rule);
	border-radius: var(--pc-radius-lg);
	display: grid;
	place-items: center;
	color: var(--pc-color-ink-faint);
	font-size: var(--pc-text-small);
	text-align: center;
	padding: var(--pc-space-5);
}

.risultato__didascalia {
	font-size: var(--pc-text-micro);
	text-transform: uppercase;
	letter-spacing: var(--pc-tracking-label);
	color: var(--pc-color-ink-faint);
	margin-block-start: var(--pc-space-2);
}

/* --------------------------------------------------------------------- */
/* Contenuto editoriale                                                   */
/* --------------------------------------------------------------------- */
.contenuto { max-width: var(--pc-measure-text); }
.contenuto h2 { font-size: var(--pc-text-h2); margin-block-start: var(--pc-space-7); }
.contenuto h3 { font-size: var(--pc-text-h3); margin-block-start: var(--pc-space-6); }
.contenuto ul, .contenuto ol { padding-inline-start: var(--pc-space-5); margin-block-end: var(--pc-space-4); }
.contenuto li { margin-block-end: var(--pc-space-2); }

.contenuto blockquote {
	margin: var(--pc-space-5) 0;
	padding-inline-start: var(--pc-space-4);
	border-inline-start: var(--pc-border-strong) solid var(--pc-color-rule);
	color: var(--pc-color-ink-muted);
}

.contenuto table { width: 100%; border-collapse: collapse; margin-block-end: var(--pc-space-5); }
.contenuto th, .contenuto td {
	text-align: start;
	padding: var(--pc-space-3);
	border-block-end: var(--pc-border-width) solid var(--pc-color-rule);
}
.contenuto th { font-size: var(--pc-text-small); text-transform: uppercase; letter-spacing: var(--pc-tracking-label); color: var(--pc-color-ink-muted); }

/* --------------------------------------------------------------------- */
/* Chiusura                                                               */
/* I dati del gestore stanno in fondo a ogni pagina (sez. 3): sono una    */
/* misura di fiducia, non un obbligo da nascondere.                       */
/* --------------------------------------------------------------------- */
.chiusura {
	background: var(--pc-color-footer-bg);
	color: #fff;
	padding-block: var(--pc-space-7) 0;
	margin-block-start: var(--pc-space-8);
}

.chiusura__marchio {
	display: flex;
	align-items: center;
	gap: var(--pc-space-4);
	flex-wrap: wrap;
	padding-block-end: var(--pc-space-6);
	margin-block-end: var(--pc-space-7);
	border-block-end: var(--pc-border-width) solid rgba(255, 255, 255, .22);
}
.chiusura__marchio strong { display: block; font-size: 1.2rem; letter-spacing: var(--pc-tracking-tight); }
.chiusura__marchio span { display: block; margin-block-start: 3px; font-size: var(--pc-text-small); color: rgba(255, 255, 255, .78); }
.chiusura .distintivo-territorio { margin-inline-start: auto; background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .35); }
.chiusura .distintivo-territorio svg { fill: #8fd6b0; }

.chiusura__griglia { display: grid; gap: var(--pc-space-6); }

@media (min-width: 58rem) {
	.chiusura__griglia { grid-template-columns: 1.3fr 1fr 1fr 1fr; }
}

.chiusura__titolo {
	font-size: var(--pc-text-micro);
	text-transform: uppercase;
	letter-spacing: var(--pc-tracking-label);
	color: rgba(255, 255, 255, .7);
	margin: 0 0 var(--pc-space-3);
}

.chiusura__colonna p { color: rgba(255, 255, 255, .84); font-size: var(--pc-text-small); margin: 0 0 var(--pc-space-2); }
/* Il blocco [pcani_dati_gestore] è pensato per sfondi chiari: su questo
   fondale scuro ne forziamo i colori senza toccare il template del plugin. */
.chiusura__colonna .pc-gestore,
.chiusura__colonna .pc-gestore__natura,
.chiusura__colonna .pc-gestore__dati { color: rgba(255, 255, 255, .84); }
.chiusura__colonna .pc-link,
.chiusura__colonna .pc-gestore__contatto a { color: #fff; font-weight: var(--pc-weight-bold); text-decoration: underline; text-underline-offset: 3px; }

.chiusura__elenco { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pc-space-2); }
.chiusura__elenco a { color: rgba(255, 255, 255, .84); text-decoration: none; font-size: var(--pc-text-small); display: inline-flex; min-height: 1.9rem; align-items: center; }
.chiusura__elenco a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.chiusura__legale {
	margin-block-start: var(--pc-space-7);
	padding-block-start: var(--pc-space-5);
	border-block-start: var(--pc-border-width) solid rgba(255, 255, 255, .2);
	max-width: 60rem;
	color: rgba(255, 255, 255, .74);
	font-size: var(--pc-text-micro);
	line-height: var(--pc-leading-normal);
}

.chiusura__fondo { background: var(--pc-color-footer-deep); margin-block-start: var(--pc-space-6); padding-block: var(--pc-space-4); font-size: var(--pc-text-micro); color: rgba(255, 255, 255, .74); }
.chiusura__fondo-interno { display: flex; align-items: center; justify-content: space-between; gap: var(--pc-space-5); flex-wrap: wrap; }
.chiusura__link-legali { display: flex; gap: var(--pc-space-4); flex-wrap: wrap; }
.chiusura__link-legali a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------- */
/* Stampa: la pagina pratica deve poter diventare un foglio               */
/* --------------------------------------------------------------------- */
@media print {
	.testata, .chiusura, .menu-mobile, .apertura__azioni, .pc-completamento { display: none !important; }
	body { background: #fff; color: #000; }
	.contenitore { max-width: none; padding: 0; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
}

/* --------------------------------------------------------------------- */
/* Elenco articoli (aggiornamenti e avvisi di servizio)                   */
/* --------------------------------------------------------------------- */
.elenco-articoli { display: grid; gap: var(--pc-space-6); max-width: var(--pc-measure-text); }
.articolo { padding-block-end: var(--pc-space-6); border-block-end: var(--pc-border-width) solid var(--pc-color-rule); }
.articolo:last-child { border-block-end: 0; }
.articolo__titolo { font-size: var(--pc-text-h3); margin-block-end: var(--pc-space-3); }
.articolo__titolo a { color: inherit; text-decoration: none; }
.articolo__titolo a:hover { text-decoration: underline; }

.articolo__miniatura {
	display: block;
	max-width: 22rem;
	margin-block-end: var(--pc-space-4);
	border: var(--pc-border-width) solid var(--pc-color-rule);
	border-radius: var(--pc-radius-lg);
	overflow: hidden;
}
.articolo__miniatura img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* --------------------------------------------------------------------- */
/* Articolo singolo: immagine, argomenti, firma (sez. 25)                */
/* --------------------------------------------------------------------- */
.articolo__immagine { max-width: var(--pc-measure-text); margin: 0 0 var(--pc-space-6); }
.articolo__immagine img {
	display: block;
	width: 100%;
	height: auto;
	border: var(--pc-border-width) solid var(--pc-color-rule);
	border-radius: var(--pc-radius-lg);
}
.articolo__immagine figcaption {
	margin-block-start: var(--pc-space-2);
	color: var(--pc-color-ink-faint);
	font-size: var(--pc-text-micro);
}

.articolo__tag {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-2);
	max-width: var(--pc-measure-text);
	margin: var(--pc-space-6) 0 0;
	padding: 0;
	list-style: none;
}
.articolo__tag-link {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding-inline: var(--pc-space-3);
	border: var(--pc-border-width) solid var(--pc-color-rule);
	border-radius: 999px;
	color: var(--pc-color-ink-muted);
	font-size: var(--pc-text-small);
	text-decoration: none;
}
.articolo__tag-link:hover { border-color: var(--pc-color-rule-strong); color: var(--pc-color-ink); }
.articolo__tag-link { max-width: 100%; overflow-wrap: anywhere; }

/* Contenuto degli articoli: didascalie dell'editor classico (larghezza in
   linea in px) e incorporamenti (iframe con larghezza fissa) non devono
   uscire dallo schermo sui telefoni. */
.contenuto .wp-caption { max-width: 100%; margin-inline: 0; }
.contenuto figure { max-width: 100%; }
.contenuto .wp-caption-text,
.contenuto figcaption { margin-block-start: var(--pc-space-2); color: var(--pc-color-ink-faint); font-size: var(--pc-text-small); }
.contenuto iframe,
.contenuto embed,
.contenuto object { max-width: 100%; }

.articolo__autore {
	max-width: var(--pc-measure-text);
	margin: var(--pc-space-6) 0 0;
	padding-block-start: var(--pc-space-5);
	border-block-start: var(--pc-border-width) solid var(--pc-color-rule);
	color: var(--pc-color-ink-muted);
	font-size: var(--pc-text-small);
}
.articolo__autore a { color: var(--pc-color-accent); font-weight: var(--pc-weight-bold); text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------- */
/* Paginazione                                                            */
/* --------------------------------------------------------------------- */
.pagination, .pagina__paginazione {
	margin-block: var(--pc-space-7);
	padding-block-start: var(--pc-space-5);
	border-block-start: var(--pc-border-width) solid var(--pc-color-rule);
}
.pagination .nav-links, .pagina__paginazione { display: flex; flex-wrap: wrap; gap: var(--pc-space-2); align-items: center; }
.pagination .page-numbers, .pagina__paginazione a {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 2.5rem; min-height: 2.5rem; padding-inline: var(--pc-space-3);
	border: var(--pc-border-width) solid var(--pc-color-rule); border-radius: var(--pc-radius);
	font-family: var(--pc-font-mono); font-size: var(--pc-text-small);
	text-decoration: none; color: var(--pc-color-ink-muted);
}
.pagination .page-numbers:hover { border-color: var(--pc-color-rule-strong); color: var(--pc-color-ink); }
.pagination .page-numbers.current { background: var(--pc-color-accent); border-color: var(--pc-color-accent); color: var(--pc-color-accent-ink); }
/* Paginazione interna di un articolo (<!--nextpage-->): la pagina corrente è
   uno <span>, non un link, e deve avere la stessa casella delle altre. */
.pagina__paginazione .current {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 2.5rem; min-height: 2.5rem; padding-inline: var(--pc-space-3);
	border: var(--pc-border-width) solid var(--pc-color-accent); border-radius: var(--pc-radius);
	background: var(--pc-color-accent); color: var(--pc-color-accent-ink);
	font-family: var(--pc-font-mono); font-size: var(--pc-text-small);
}

/* Desktop stretto: meno spazio fra le voci perché il menu resti su una riga. */
/* Sotto i 1200 px le quattro voci non entrano accanto a marchio e azioni:
   si passa al menu a scomparsa. */
@media (max-width: 75rem) {
	.testata__interno { grid-template-columns: 1fr auto auto; }
	.navigazione { display: none; }
	.testata__azioni { grid-column: 2; }
	.menu-mobile__attivatore { display: grid; grid-column: 3; }
}
@media (min-width: 75.0625rem) and (max-width: 85rem) {
	.navigazione__elenco { gap: var(--pc-space-5); }
	.testata__interno { gap: var(--pc-space-5); }
}

/* --------------------------------------------------------------------- */
/* Adattamento tablet                                                     */
/* --------------------------------------------------------------------- */
@media (max-width: 68.75rem) {
	:root { --pc-gutter: var(--pc-space-4); }
	.testata__interno { grid-template-columns: 1fr auto auto; }
	.navigazione { display: none; }
	.testata__azioni { grid-column: 2; }
	.menu-mobile__attivatore { display: grid; grid-column: 3; }
	.apertura__griglia { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------- */
/* Adattamento mobile                                                     */
/* --------------------------------------------------------------------- */
@media (max-width: 47.5rem) {
	:root { --pc-gutter: var(--pc-space-3); }
	.testata__fascia-interno { min-height: 2.25rem; font-size: .625rem; }
	.testata__fascia-testo { max-width: 48%; }
	.testata__fascia-azioni { gap: var(--pc-space-2); }
	.testata__interno { grid-template-columns: 1fr auto; min-height: 4.25rem; }
	.testata__azioni { grid-column: 2; gap: var(--pc-space-2); }
	.bottone-verifica { display: none; }
	.marchio__qualifica { display: none; }
	.marchio__nome { font-size: 1.05rem; }
	.timbro { width: 2.1rem; height: 1.7rem; }

	.pannello { left: var(--pc-space-3) !important; right: var(--pc-space-3) !important; top: var(--pc-space-3) !important; width: auto !important; }
	.pannello__meta { flex-direction: column; align-items: flex-start; }
	.pannello__invio { width: 100%; }

	.pagina__intestazione { padding-block: var(--pc-space-6) var(--pc-space-5); }
	.pagina__titolo { font-size: 1.75rem; }
	.pagina__copy { font-size: 1rem; }
	.pagina__meta { gap: var(--pc-space-4); flex-direction: column; }

	.apertura { padding-block: var(--pc-space-7) var(--pc-space-6); }
	.apertura__titolo { font-size: 2.1rem; }

	.sezione { padding-block: var(--pc-space-6); }
	.sezione__intestazione { margin-block-end: var(--pc-space-5); }

	.griglia-info { grid-template-columns: 1fr; }
	.blocco-info { min-height: 0; padding: var(--pc-space-5) var(--pc-space-4); }

	.riga { grid-template-columns: 2.5rem 1fr; gap: var(--pc-space-3); padding-block: var(--pc-space-4); }
	.riga p { grid-column: 2; }

	.elenco-link__riga { grid-template-columns: 1fr; gap: var(--pc-space-2); padding-block: var(--pc-space-4); min-height: 0; }
	.elenco-link__riga a { justify-self: start; }

	.definizioni { grid-template-columns: 1fr; }
	.definizioni dt { padding-block-end: var(--pc-space-1); border-block-end: 0; }
	.definizioni dd { padding-block-start: 0; }

	.invito__interno { flex-direction: column; align-items: flex-start; }

	.chiusura__griglia { grid-template-columns: 1fr; gap: 0; }
	.chiusura__colonna { padding-block: var(--pc-space-5); border-block-end: var(--pc-border-width) solid rgba(255, 255, 255, .16); }
	.chiusura__colonna:last-child { border-block-end: 0; }
	.chiusura__fondo-interno { flex-direction: column; align-items: flex-start; gap: var(--pc-space-3); }
	.chiusura .distintivo-territorio { margin-inline-start: 0; }
}

@media (max-width: 26.25rem) {
	.contenitore { padding-inline: var(--pc-space-3); }
	.pagina__titolo { font-size: 1.6rem; }
}

/* ===================================================================== */
/* Ritorno alla direzione grafica del template HTML                       */
/* Il comportamento resta quello del tema: questi override sono solo UI. */
/* ===================================================================== */

/* Marchio passaporto: unica presenza gialla del frontend, nella zampa. */
.timbro {
	width: 4.875rem;
	height: 3.625rem;
	filter: drop-shadow(0 8px 18px rgb(0 0 0 / .08));
}
.timbro--chiusura { width: 4.5rem; height: 3.25rem; }
.marchio-passaporto__fondo {
	fill: rgb(6 39 81 / .22);
	stroke: rgb(255 255 255 / .54);
	stroke-width: 1.3;
}
.marchio-passaporto__zampa { fill: var(--pc-color-star); }

/* Fascia e testata: stessa meccanica, proporzioni più vicine al template. */
.testata__fascia-interno { min-height: 2.625rem; }
.testata__fascia-testo { font-size: .75rem; }
.testata__interno {
	min-height: 6.75rem;
	grid-template-columns: minmax(310px, 1.25fr) minmax(360px, 1fr) auto;
	gap: 2.25rem;
	padding-block: .75rem;
}
.marchio { gap: 1rem; }
.marchio__nome { font-size: 1.55rem; letter-spacing: -.03em; }
.marchio__qualifica {
	font-size: .78rem;
	letter-spacing: 0;
	opacity: .82;
	line-height: 1.25;
}
.navigazione__elenco { gap: 2.25rem; font-size: .875rem; font-weight: 650; }
.navigazione__elenco a::after { background: currentColor; bottom: .35rem; }
.cerchio-icona {
	border-radius: 50%;
	border: 1px solid #fff;
	background: #fff;
	color: var(--pc-color-accent);
}
.bottone-verifica { min-height: 3rem; padding-inline: 1.25rem; }

/* Selettore lingua compatto con freccia e menu nativo leggerissimo. */
.lingua-selettore { display: none; }
.lingua-menu { position: relative; }
.lingua-menu details { position: relative; }
.lingua-menu summary {
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: .38rem;
	min-height: 2.5rem;
	padding-inline: .15rem;
	color: #fff;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .07em;
	cursor: pointer;
}
.lingua-menu summary::-webkit-details-marker { display: none; }
.lingua-menu summary svg { width: .7rem; height: .45rem; transition: transform var(--pc-motion); }
.lingua-menu details[open] summary svg { transform: rotate(180deg); }
.lingua-menu__elenco {
	position: absolute;
	top: calc(100% + .35rem);
	right: 0;
	z-index: 90;
	min-width: 10.5rem;
	padding: .35rem;
	background: #fff;
	border: 1px solid var(--pc-color-rule);
	box-shadow: var(--pc-shadow-raised);
	color: var(--pc-color-ink);
}
.lingua-menu__elenco a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.5rem;
	padding: .45rem .65rem;
	color: var(--pc-color-ink);
	text-decoration: none;
	font-size: .78rem;
	font-weight: 650;
}
.lingua-menu__elenco a:hover,
.lingua-menu__elenco a[aria-current="page"] { background: var(--pc-color-accent-soft); color: var(--pc-color-accent-deep); }
.lingua-menu__elenco a span { color: var(--pc-color-ink-faint); font-size: .68rem; letter-spacing: .06em; }

/* Apertura home: grafica del template, ma con il blocco dati del tema. */
.apertura {
	max-width: none;
	padding: 0;
	background: linear-gradient(90deg, #123d78 0%, #123f7c 48%, #10366c 100%);
	color: #fff;
	position: relative;
	overflow: hidden;
}
.apertura > .apertura__griglia,
.apertura > .apertura__contenuto {
	width: 100%;
	max-width: var(--pc-measure-wide);
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}
.apertura__griglia {
	min-height: 31.25rem;
	grid-template-columns: minmax(0, 1fr) minmax(210px, 16.25rem);
	gap: clamp(3rem, 7vw, 8rem);
	align-items: center;
	padding-block: 3.25rem 3.75rem;
}
.apertura__griglia > div:first-child { max-width: 39rem; position: relative; z-index: 2; }
.apertura__display {
	font-size: .6875rem;
	max-width: none;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: rgb(255 255 255 / .72);
	margin-block-end: .9rem;
}
.apertura__titolo {
	font-size: clamp(2.375rem, 3vw, 2.875rem);
	line-height: 1.04;
	letter-spacing: -.034em;
	max-width: 37.5rem;
	text-wrap: pretty;
	margin-block-end: 1.35rem;
}
.apertura__testo {
	max-width: 38rem;
	font-size: 1.125rem;
	line-height: 1.58;
	color: rgb(255 255 255 / .92);
	margin-block-end: .85rem;
}
.apertura__azioni { gap: 1.25rem; margin-block-start: 1.6rem; }
.apertura .nota-servizio {
	border: 0;
	padding-inline-start: 0;
	max-width: 39rem;
	margin-block-start: 1.3rem;
	font-size: .72rem;
	line-height: 1.55;
	color: rgb(255 255 255 / .68);
}
.apertura__globo {
	left: auto;
	right: 13%;
	top: 50%;
	width: min(44vw, 36rem);
	height: min(44vw, 36rem);
	transform: translateY(-50%);
	opacity: .5;
}
.apertura__stats {
	position: relative;
	z-index: 3;
	align-self: center;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	grid-column: 2;
	background: none;
	border-radius: 0;
	box-shadow: none;
	width: 100%;
	padding: 0;
	margin: 0;
	border: 0;
}
.apertura__stats div {
	padding: 1.3rem 0;
	border: 0;
	border-bottom: 1px solid rgb(255 255 255 / .24);
}
.apertura__stats div:first-child { padding-top: 0; }
.apertura__stats div:last-child { border-bottom: 0; padding-bottom: 0; }
.apertura__stats strong { display: block; font-size: 1rem; line-height: 1.4; margin-bottom: .35rem; }
.apertura__stats span { display: block; font-size: .8125rem; line-height: 1.5; color: rgb(255 255 255 / .84); }
.apertura__link { color: #fff; font-weight: 650; font-size: .9rem; text-decoration: underline; text-underline-offset: .3em; }
.apertura__link:hover { color: #fff; text-decoration-thickness: 2px; }
.apertura .distintivo-territorio { display: none; }

/* Home e pagine interne: ritmo, griglie e bordi del file HTML. */
.sezione { padding-block: 3.625rem 3.875rem; }
.sezione--fondale { background: #f5f7fa; }
.sezione__intestazione {
	grid-template-columns: minmax(250px, .72fr) minmax(420px, 1.28fr);
	gap: clamp(2.625rem, 6vw, 5.125rem);
	align-items: end;
	margin-block-end: 1.875rem;
}
.sezione__intestazione h2,
.titolo-sezione { color: var(--pc-color-accent-deep); font-size: clamp(1.6rem, 2.2vw, 1.9rem); line-height: 1.14; }
.sezione__intestazione p { font-size: .94rem; line-height: 1.66; }

.griglia-info {
	gap: 0;
	border-top: 1px solid var(--pc-color-rule);
	border-left: 1px solid var(--pc-color-rule);
}
.blocco-info {
	min-height: 11.875rem;
	padding: 1.7rem 1.85rem;
	border: 0;
	border-right: 1px solid var(--pc-color-rule);
	border-bottom: 1px solid var(--pc-color-rule);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	transition: background-color var(--pc-motion), box-shadow var(--pc-motion);
}
a.blocco-info:hover { background: var(--pc-color-accent-soft); box-shadow: inset 0 2px 0 var(--pc-color-accent); transform: none; }
.blocco-info small { margin-bottom: 1.1rem; font-size: .625rem; letter-spacing: .11em; }
.blocco-info h3 { font-size: 1.1rem; }
.blocco-info p { font-size: .84rem; line-height: 1.62; }

/* Aperture delle pagine informative. */
.pagina__intestazione {
	padding-block: 2.75rem 3rem;
	border-block-end: 1px solid var(--pc-color-rule);
}
.pagina__griglia {
	grid-template-columns: minmax(250px, .9fr) minmax(420px, 1.1fr);
	gap: clamp(2.75rem, 6vw, 5.5rem);
	align-items: start;
}
.pagina__eyebrow { margin-bottom: .85rem; color: var(--pc-color-accent); font-size: .7rem; letter-spacing: .11em; }
.pagina__titolo { font-size: clamp(2.05rem, 2.6vw, 2.4rem); line-height: 1.06; letter-spacing: -.03em; }
.pagina__copy { font-size: 1rem; line-height: 1.66; }
.pagina__meta { margin-top: 1.65rem; padding-top: 1.1rem; border-top: 1px solid var(--pc-color-rule); font-size: .78rem; }

.righe { border-top: 1px solid var(--pc-color-rule); }
.riga {
	grid-template-columns: 4.5rem minmax(220px, .7fr) minmax(0, 1.3fr);
	gap: 1.75rem;
	padding-block: 1.625rem;
}
.riga__numero { color: #7895af; font-size: .72rem; }
.riga h3 { font-size: 1.1rem; }
.riga p { font-size: .85rem; line-height: 1.65; }

.definizioni dt,
.definizioni dd { padding-block: 1.3rem; }
.avviso { border-left-color: var(--pc-color-accent); background: var(--pc-color-accent-soft); color: #49647d; }

/* Fascia editoriale della home. */
.home-editoriale {
	display: grid;
	grid-template-columns: minmax(0, .71fr) minmax(0, .29fr);
	border-bottom: 1px solid var(--pc-color-rule);
}
.home-editoriale__principale {
	display: grid;
	grid-template-columns: minmax(220px, 20rem) minmax(0, 1fr);
	gap: 2.875rem;
	align-items: center;
	padding: 4.125rem 3.375rem 4.375rem 0;
	border-right: 1px solid var(--pc-color-rule);
}
.home-editoriale__media {
	min-height: 17.5rem;
	margin: 0;
	background: linear-gradient(145deg, #6a635a, #49433d 55%, #2f2b29);
	position: relative;
	overflow: hidden;
}
.home-editoriale__media img { width: 100%; height: 100%; min-height: 17.5rem; object-fit: cover; }
.home-editoriale__segnaposto {
 position: absolute; left: 50%; top: 50%;
 transform: translate(-50%, -50%) rotate(6deg);
 width: 132px; height: 198px; display: flex; flex-direction: column;
 align-items: center; justify-content: flex-start; padding: 20px 12px 18px; gap: 18px;
 background: linear-gradient(145deg, #104b90, #0a3469);
 box-shadow: 0 14px 25px rgb(0 0 0 / .35); color: #fff; text-align: center;
}
.home-editoriale__segnaposto .timbro { width: 58px; height: 42px; margin-top: 4px; }
.home-editoriale__segnaposto span { display: grid; place-items: center; width: 100%; min-height: 28px; padding: 4px 6px; background: #fff; color: #10376f; font-size: 10px; letter-spacing: .12em; font-weight: 800; margin-top: auto; }
.home-editoriale__segnaposto .passaporto-unione { width: 76%; min-height: 22px; font-size: 7px; letter-spacing: .09em; margin-top: 0; }
.home-editoriale__copy h2 { margin-bottom: .9rem; color: var(--pc-color-accent-deep); font-size: 1.75rem; line-height: 1.08; }
.home-editoriale__copy p { color: var(--pc-color-ink-muted); font-size: .92rem; line-height: 1.62; }
.home-editoriale__evidenza { padding: 4.125rem 0 4.375rem 3.375rem; align-self: center; }
.home-editoriale__evidenza h2 { font-size: 1.2rem; color: var(--pc-color-accent-deep); margin-bottom: 1.1rem; }
.home-editoriale__link {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1rem;
	align-items: center;
	min-height: 4.5rem;
	padding-block: .95rem;
	border-bottom: 1px solid var(--pc-color-rule);
	color: #315778;
	font-size: .88rem;
	text-decoration: none;
}
.home-editoriale__link:last-child { border-bottom: 0; }
.home-editoriale__link span:last-child { color: var(--pc-color-accent); }

/* Tre fasi come nel template HTML. */
.percorso-home { background: #f5f7fa; }
.percorso-home__testa {
	display: grid;
	grid-template-columns: minmax(320px, .9fr) minmax(420px, 1.1fr);
	gap: 5.5rem;
	align-items: end;
	margin-bottom: 2.65rem;
}
.percorso-home__testa h2 { max-width: 38rem; font-size: clamp(2rem, 2.6vw, 2.4rem); color: var(--pc-color-accent-deep); line-height: 1.08; }
.percorso-home__testa p { margin: 0; max-width: 41rem; color: var(--pc-color-ink-muted); font-size: 1rem; line-height: 1.64; }
.percorso-home__griglia {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--pc-color-rule);
	border-bottom: 1px solid var(--pc-color-rule);
}
.percorso-home__fase { min-height: 17.75rem; padding: 1.85rem 2rem; border-right: 1px solid var(--pc-color-rule); background: #fff; }
.percorso-home__fase:last-child { border-right: 0; }
.percorso-home__fase small { color: var(--pc-color-accent); font-size: .62rem; font-weight: 800; letter-spacing: .13em; }
.percorso-home__fase .home-phase-title { margin: 3.5rem 0 .75rem; font-size: 1.3125rem; color: var(--pc-color-accent-deep); }
.percorso-home__fase p { color: var(--pc-color-ink-muted); font-size: .85rem; line-height: 1.58; }
.percorso-home__fase a { display: inline-flex; margin-top: 1.35rem; font-size: .8rem; font-weight: 750; }
.percorso-home__nota {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr) auto;
	gap: 1.5rem;
	align-items: center;
	margin-top: 1.9rem;
	padding: 1.25rem 0;
	border-top: 1px solid #ccd8e3;
	border-bottom: 1px solid #ccd8e3;
}
.percorso-home__nota b { color: var(--pc-color-accent); font-size: .64rem; letter-spacing: .12em; }
.percorso-home__nota span { color: #405872; font-size: .82rem; }
.percorso-home__nota a { font-size: .8rem; font-weight: 750; }

/* Footer: struttura esistente, solo proporzioni e nuovo marchio. */
.chiusura { padding-block-start: 4rem; }
.chiusura__marchio { gap: 1rem; padding-bottom: 1.95rem; margin-bottom: 2.2rem; }
.chiusura__marchio strong { font-size: 1.35rem; letter-spacing: -.02em; }
.chiusura__marchio span { font-size: .75rem; }
.chiusura__griglia { gap: clamp(2rem, 4vw, 4.25rem); }
.chiusura__titolo { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.chiusura__legale { max-width: 60rem; }

@media (max-width: 68.75rem) {
	.testata__interno { grid-template-columns: 1fr auto auto; }
	.apertura__griglia { min-height: auto; }
	.apertura__griglia > div:first-child { max-width: 37.5rem; }
	.apertura__globo { right: -7rem; top: 42%; width: 30rem; height: 30rem; }
	.home-editoriale { grid-template-columns: 1fr; }
	.home-editoriale__principale { border-right: 0; border-bottom: 1px solid var(--pc-color-rule); padding-right: 0; }
	.home-editoriale__evidenza { padding-left: 0; }
	.percorso-home__testa { gap: 3rem; }
}

@media (max-width: 47.5rem) {
	.testata__interno { min-height: 5.35rem; }
	.timbro { width: 3.9rem; height: 2.9rem; }
	.marchio__nome { font-size: 1.18rem; }
	.testata__fascia-testo { max-width: 55%; }
	.lingua-menu summary { min-height: 2.25rem; }

	.apertura__griglia { grid-template-columns: 1fr; padding-block: 2.55rem 2.25rem; gap: 2rem; }
	.apertura__titolo { font-size: 2.125rem; max-width: 25rem; }
	.apertura__testo { font-size: 1rem; }
	.apertura__globo { width: 22rem; height: 22rem; top: 54%; right: -9rem; opacity: .18; }
	.apertura__stats { grid-column: 1; grid-template-columns: 1fr; gap: 0; margin-top: 0; border-top: 1px solid rgb(255 255 255 / .24); padding-top: 1.1rem; }
	.apertura__stats div { padding: .8rem 0; border-bottom: 1px solid rgb(255 255 255 / .24); }
	.apertura__stats div:last-child { border-bottom: 0; }

	.pagina__intestazione { padding-block: 2.1rem 2.35rem; }
	.pagina__griglia,
	.sezione__intestazione,
	.percorso-home__testa { grid-template-columns: 1fr; gap: 1.15rem; }
	.pagina__titolo { font-size: 1.9rem; }
	.sezione { padding-block: 2.75rem 3rem; }

	.home-editoriale { padding-block: 3rem 3.25rem; }
	.home-editoriale__principale { grid-template-columns: 1fr; gap: 1.65rem; padding: 0 0 2.25rem; }
	.home-editoriale__media { min-height: 14.75rem; }
	.home-editoriale__media img { min-height: 14.75rem; }
	.home-editoriale__copy h2 { font-size: 1.625rem; }
	.home-editoriale__evidenza { padding-top: 1.75rem; padding-bottom: 0; }

	.percorso-home__griglia { grid-template-columns: 1fr; }
	.percorso-home__fase { min-height: 0; border-right: 0; border-bottom: 1px solid var(--pc-color-rule); padding: 1.55rem 1.4rem; }
	.percorso-home__fase:last-child { border-bottom: 0; }
	.percorso-home__fase .home-phase-title { margin-top: 1.9rem; }
	.percorso-home__nota { grid-template-columns: 1fr; gap: .45rem; }

	.riga { grid-template-columns: 3rem 1fr; gap: .95rem; }
	.riga p { grid-column: 2; }
}

/* FAQ editoriale, senza script e senza componenti pesanti. */
.faq-editoriale { border-top: 1px solid var(--pc-color-rule); }
.faq-editoriale__voce { border-bottom: 1px solid var(--pc-color-rule); }
.faq-editoriale__voce summary {
	list-style: none;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1.5rem;
	align-items: center;
	min-height: 4.9rem;
	padding: 1.15rem 0;
	cursor: pointer;
	color: var(--pc-color-accent-deep);
	font-size: 1rem;
	font-weight: 700;
}
.faq-editoriale__voce summary::-webkit-details-marker { display: none; }
.faq-editoriale__voce summary span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; color: var(--pc-color-accent); font-size: 1.35rem; font-weight: 400; transition: transform var(--pc-motion); }
.faq-editoriale__voce[open] summary span { transform: rotate(45deg); }
.faq-editoriale__voce > div { max-width: 48rem; padding: 0 3.3rem 1.5rem 0; }
.faq-editoriale__voce p { margin: 0; color: var(--pc-color-ink-muted); line-height: 1.7; }
.griglia-info--contatti { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.griglia-info--contatti .blocco-info a { display: inline-flex; margin-top: 1rem; font-size: .82rem; font-weight: 750; }
@media (max-width: 47.5rem) { .griglia-info--contatti { grid-template-columns: 1fr; } }

/* v0.3.2: home reference composition and compact navigation. */
.pc-home-page { background: linear-gradient(90deg, #123d78 0%, #123f7c 48%, #10366c 100%); }
.pc-home-page .testata { background: transparent; }
.pc-home-page .testata__interno { border-bottom: 1px solid rgb(255 255 255 / .24); }
.pc-home-page .principale { background: #fff; }
.apertura__display, .pagina__eyebrow, .blocco-info small, .percorso-home__fase small {
	font-size: .6875rem; font-weight: 750; line-height: 1.45; letter-spacing: .1em; text-transform: uppercase;
}
.home-servizi { padding-block: 3.625rem 4rem; border-bottom: 1px solid var(--pc-color-rule); }
.home-servizi .sezione__intestazione { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.home-servizi .sezione__intestazione > :first-child { margin: 0; font-size: 1.75rem; line-height: 1.2; }
.home-servizi__tutti { font-size: .8125rem; flex-shrink: 0; }
.home-servizi .griglia-info { grid-template-columns: repeat(4, minmax(0, 1fr)); border-left: 0; }
.home-servizi .blocco-info { padding: 1.8125rem 1.6875rem 1.6875rem; min-height: 12rem; }
.home-servizi .blocco-info:last-child { border-right: 0; }
.home-servizi .blocco-info .home-card-title { font-size: 1.125rem; margin: 1.15rem 0 .5rem; }
.home-servizi .blocco-info p { font-size: .875rem; line-height: 1.58; }
.home-servizi .service-icon { width: 2.375rem; height: 2.375rem; }
.chiusura__link-legali ul { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.chiusura__link-legali li { margin: 0; padding: 0; }
.chiusura__link-legali a { display: inline; white-space: normal; }
.pannello--ricerca { left: auto; right: var(--pc-gutter); width: min(26rem, calc(100vw - 2rem)); }
.menu-mobile__marchio { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 0 3rem 1.5rem 0; border-bottom: 1px solid rgb(255 255 255 / .24); color: inherit; text-decoration: none; font-size: 1.05rem; font-weight: 650; }
.menu-mobile__marchio small { display: block; margin: .3rem 0 0; padding: 0; border: 0; font-size: .65rem; font-weight: 400; }
.timbro--menu { width: 3.5rem; height: 2.6rem; flex-shrink: 0; }
.menu-mobile__secondario { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.5rem; padding: 1.5rem 0; border-top: 1px solid rgb(255 255 255 / .24); }
.menu-mobile__secondario a { color: inherit; font-size: .8125rem; line-height: 1.5; text-decoration: none; }
.menu-mobile > small { display: block; margin-top: 1rem; font-size: .6875rem; max-width: 30rem; opacity: .72; }
.come-preparare .griglia-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.come-preparare .avviso { margin-top: 1.5rem; }
.come-procedura .riga { align-items: start; }
.come-procedura .riga > :last-child { margin: 0; }
@media (max-width: 62rem) {
	.home-servizi .griglia-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home-servizi .blocco-info:nth-child(2n) { border-right: 0; }
}
@media (max-width: 47.5rem) {
	.home-servizi .sezione__intestazione > :first-child { font-size: 1.5rem; }
	.menu-mobile { overflow-y: auto; overscroll-behavior: contain; }
	.menu-mobile__elenco, .menu-mobile .navigazione__elenco { margin: 1.5rem 0; }
}
@media (max-width: 30rem) {
	.home-servizi .griglia-info, .come-preparare .griglia-info { grid-template-columns: 1fr; }
	.home-servizi .blocco-info { border-right: 0; }
	.home-servizi .sezione__intestazione { align-items: baseline; }
	.menu-mobile__secondario { grid-template-columns: 1fr 1fr; }
}

/* Rifiniture verificate sui template a 1440px e 390px. */
.home-servizi .blocco-info { text-decoration: none; }
.home-servizi .blocco-info:hover h3 { text-decoration: underline; text-underline-offset: .18em; }
.percorso-home__testa .occhiello { font-size: .6875rem; letter-spacing: .11em; margin-bottom: .8rem; }
.pc-home-page .chiusura { margin-block-start: 0; }
.chiusura a { color: inherit; }
.come-procedura .sezione__intestazione h2 { max-width: 18ch; }
.pagina__meta span { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .35rem; }
.apertura__azioni { align-items: center; }

@media (max-width: 30rem) {
 .testata__interno { column-gap: .75rem; }
 .marchio { gap: .6rem; }
 .marchio .timbro { width: 2.8rem; height: 2.1rem; }
 .marchio__nome { font-size: 1rem; }
 .menu-mobile { padding-top: 4.75rem; }
}

.menu-mobile__marchio, .menu-mobile__marchio > span { color: #fff; }
.menu-mobile__marchio { border-bottom: 0; }
.menu-mobile__marchio:hover, .menu-mobile__marchio:focus-visible { color: #fff; }

/* ===================================================================== */
/* Rifiniture di controllo qualità (contrasto, hover, target touch).      */
/* ===================================================================== */

/* Su fondo blu il colore generico dei link al passaggio del mouse
   (blu scuro) rendeva illeggibili logo e link: qui restano bianchi. */
.testata a:hover,
.testata a:focus-visible,
.chiusura a:hover,
.chiusura a:focus-visible,
.menu-mobile a:hover,
.sportello a:not(.bottone):hover,
.sportello a:not(.bottone):focus-visible { color: #fff; }
.marchio:hover .marchio__nome,
.marchio:focus-visible .marchio__nome { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.testata__link-pratica:hover span { text-decoration-thickness: 2px; }
.lingua-menu__elenco a:hover { color: var(--pc-color-accent-deep); }

/* Numerazioni decorative leggibili anche su fondo chiaro. */
.riga__numero { color: #5d7084; }

/* Target touch: almeno 44px per i comandi isolati. */
.lingua-menu summary { min-height: 2.75rem; min-width: 2.75rem; }
@media (max-width: 56rem) {
	.marchio { min-height: 2.75rem; }
	.azione-secondaria:not(p .azione-secondaria):not(li .azione-secondaria) { display: inline-flex; align-items: center; min-height: 2.75rem; }
}

/* Selezione del testo e cursore nei colori del servizio. */
::selection { background: #cfe3f7; color: var(--pc-color-ink); }
.testata ::selection, .sportello ::selection, .chiusura ::selection { background: #fff; color: var(--pc-color-accent-deep); }
input, textarea { caret-color: var(--pc-color-accent); }

/* ---- Pagine guida --------------------------------------------------- */
.guida { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; padding-block: var(--pc-space-6) var(--pc-space-8); }
.guida__contenuto > :first-child { margin-top: 0; }
.guida__contenuto .in-breve { margin: 0 0 var(--pc-space-6); padding: 1.25rem 1.5rem; border: 1px solid var(--pc-color-rule-strong); border-top: 3px solid var(--pc-color-ink); background: var(--pc-color-paper-alt); }
.guida__contenuto .in-breve h2 { margin-top: 0; font-size: 1.15rem; }
.guida__contenuto .in-breve ul { margin-bottom: 0; }
.guida__contenuto .fonti { font-size: var(--pc-text-small); color: var(--pc-color-ink-muted); }
.guida__contenuto th { text-transform: none; letter-spacing: 0; font-size: var(--pc-text-base); color: var(--pc-color-ink); text-align: left; }
.guida__laterale { position: sticky; top: 1.5rem; padding: 1.5rem; border: 1px solid var(--pc-color-rule-strong); border-radius: var(--pc-radius-lg); background: #fff; }
.guida__laterale p { margin: 0 0 .9rem; line-height: 1.5; color: var(--pc-color-ink-muted); }
.guida__laterale .guida__laterale-titolo { font-weight: var(--pc-weight-bold); font-size: 1.1rem; color: var(--pc-color-ink); }
.guida__laterale .guida__laterale-prezzo { font-weight: var(--pc-weight-bold); color: var(--pc-color-ink); }
@media (max-width: 56rem) {
	.guida { grid-template-columns: 1fr; }
	.guida__laterale { position: static; }
}

/* Pulsante "Avvia pratica" in testata (link, non più pannello). */
a.bottone-verifica { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.testata a.bottone-verifica:hover,
.testata a.bottone-verifica:focus-visible { color: var(--pc-color-accent-deep); background: #fff; text-decoration: none; }

/* Foto negli articoli News. */
.contenuto .news-figura { margin: var(--pc-space-6) 0; }
.contenuto .news-figura img { display: block; width: 100%; height: auto; border-radius: var(--pc-radius-lg); }

/* Elenco News a griglia (schede con foto in alto). */
.elenco-articoli { max-width: none; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.75rem; align-items: stretch; }
@media (max-width: 64rem) { .elenco-articoli { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .elenco-articoli { grid-template-columns: 1fr; } }
.elenco-articoli .articolo { display: flex; flex-direction: column; padding: 0 0 1.4rem; border: var(--pc-border-width) solid var(--pc-color-rule); border-radius: var(--pc-radius-lg); background: #fff; overflow: hidden; }
.elenco-articoli .articolo:last-child { border-block-end: var(--pc-border-width) solid var(--pc-color-rule); }
.elenco-articoli .articolo__miniatura { order: -1; max-width: none; margin: 0 0 1.1rem; border: 0; border-radius: 0; }
.elenco-articoli .articolo > :not(.articolo__miniatura) { margin-inline: 1.25rem; }
.elenco-articoli .articolo .etichetta-micro { margin-block: 0 .5rem; }
.elenco-articoli .articolo__titolo { font-size: 1.2rem; line-height: 1.3; }
.elenco-articoli .articolo .contenuto { color: var(--pc-color-ink-muted); font-size: var(--pc-text-small); line-height: 1.55; }
.elenco-articoli .articolo .contenuto p { margin: 0; }

/* ===================================================================== */
/* Testata D1: fascia con garanzie + barra classica                       */
/* ===================================================================== */
.testata { box-shadow: none; }
.testata__fascia { background: rgba(0, 10, 35, .35); border-block-end: 0; }
.testata__fascia-interno { min-height: 2.6rem; }
.testata__garanzie { display: flex; align-items: center; gap: 1.6rem; margin: 0; padding: 0; list-style: none; font-size: .78rem; color: #fff; min-width: 0; }
.testata__garanzia { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.testata__spunta { width: 15px; height: 15px; flex: none; color: #f3c84d; }
.testata__link-pratica { text-decoration: none; }
.testata__link-pratica span { text-decoration: none; font-size: .78rem; font-weight: 500; letter-spacing: 0; }
.testata__link-pratica svg { width: 15px; height: 15px; }
.testata__interno { min-height: 4.75rem; grid-template-columns: auto 1fr auto; gap: 2.25rem; }
.navigazione { justify-content: flex-start; }
.navigazione__elenco { gap: 1.9rem; font-size: .9rem; }
.navigazione__elenco a::after { height: 3px; bottom: -1.45rem; background: #f3c84d; border-radius: 3px 3px 0 0; }
.testata__azioni { gap: .5rem; }
.testata .cerchio-icona { width: 2.75rem; height: 2.75rem; border: 0; border-radius: 999px; background: transparent; color: #fff; box-shadow: none; }
.testata .cerchio-icona:hover { background: rgba(255, 255, 255, .1); }
.testata__separatore { margin-inline: .5rem; height: 1.6rem; background: rgba(255, 255, 255, .22); }
a.bottone-verifica { gap: .5rem; height: 2.75rem; min-height: 2.75rem; padding-inline: 1.2rem; border-radius: .6rem; background: #fff; color: #123d78; font-size: .875rem; font-weight: 700; box-shadow: none; }
a.bottone-verifica svg { width: 16px; height: 16px; }
.menu-mobile__attivatore { width: 2.75rem; height: 2.75rem; border: 0; border-radius: .6rem; background: rgba(255, 255, 255, .1); color: #fff; }
.menu-mobile__attivatore svg { width: 22px; height: 22px; }
@media (max-width: 75rem) {
	.testata__interno { grid-template-columns: 1fr auto auto; gap: .75rem; }
}
@media (max-width: 56rem) {
	.testata__garanzia--lunga { display: none; }
	a.bottone-verifica { display: inline-flex; }
}
@media (max-width: 40rem) {
	.testata__fascia-interno { min-height: 2.3rem; }
	.testata__garanzie { font-size: .72rem; }
	.testata__fascia-azioni .lingua-menu { display: none; }
	.testata__interno { min-height: 3.9rem; grid-template-columns: 1fr auto; gap: .5rem; }
	.marchio__testo { display: none; }
	.testata .cerchio-icona, .testata__separatore { display: none; }
	a.bottone-verifica { height: 2.5rem; min-height: 2.5rem; padding-inline: .95rem; font-size: .82rem; }
	a.bottone-verifica svg { display: none; }
	.menu-mobile__attivatore { width: 2.5rem; height: 2.5rem; }
}

/* ===================================================================== */
/* Rifinitura: in testata il giallo resta solo sulle stelle; raggi,       */
/* blu e collegamenti coerenti in tutto il sito.                          */
/* ===================================================================== */
.testata__fascia { background: rgba(4, 18, 46, .42); }
.testata__garanzie { gap: 1.75rem; font-size: .8rem; color: rgba(255, 255, 255, .9); }
.testata__spunta { color: rgba(255, 255, 255, .7); }
.navigazione__elenco a { color: rgba(255, 255, 255, .86); transition: color var(--pc-motion); }
.navigazione__elenco a:hover, .navigazione__elenco .current-menu-item > a, .navigazione__elenco a[aria-current] { color: #fff; }
.navigazione__elenco a::after { height: 2px; background: #fff; border-radius: 0; }
a.bottone-verifica, .menu-mobile__attivatore { border-radius: var(--pc-radius); }
a.bottone-verifica { color: var(--pc-color-header-bg); font-weight: 650; transition: background var(--pc-motion); }
a.bottone-verifica:hover { background: #e8eef7; color: var(--pc-color-header-bg); }
.azione-secondaria { font-weight: 600; text-decoration: none; }
.azione-secondaria:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
.bottone { font-weight: 600; transition: background var(--pc-motion), border-color var(--pc-motion), color var(--pc-motion); }
.chiusura .distintivo-territorio { border-radius: var(--pc-radius); background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .2); }
.chiusura__titolo { color: rgba(255, 255, 255, .64); }
/* Un solo blu pieno per testata e apertura, con una linea sottile a tutta larghezza. */
.testata, .pc-home-page .testata { background: var(--pc-color-header-bg); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.pc-home-page { background: var(--pc-color-paper); }
.pc-home-page .testata__interno { border-bottom: 0; }
@media (max-width: 40rem) {
	:root { --pc-gutter: 1.125rem; }
	.contenitore { padding-inline: var(--pc-gutter); }
}
