/*
 * ASR Quiz Patente – v3 "Night Drive": integrazione nei template (DESIGN-V3 §6 Mappa di applicazione).
 * Caricato DOPO asr-site.css / asr-trial.css / asr-app.css, asr-ambient.css e asr-motion.css (dipendenze WordPress).
 *
 * Regole:
 * - solo transform / opacity / stroke-dash* animati; nessuna animazione con prefers-reduced-motion o .asr-reduce-motion;
 * - nessuno strato dietro alla prosa; testo solo su superfici verificate (docs/v3-motion.md §9, docs/QA-V3.md);
 * - tavole e icone decorative: aria-hidden nel markup; le informazioni restano nel testo.
 */

/* ------------------------------------------------------------------ */
/* 0. Tavole line-art (img/vehicles/asr-ill-*.svg in linea)             */
/* ------------------------------------------------------------------ */
:is(.asr-site, .asr-scope, .asr-trial) svg.asr-ill {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	color: var(--asr-ill-line, #E6E6E6);
}
/* Strada I6: un solo scale(1 → 1.6) attorno al punto di fuga = loop perfetto (docs/v3-icons.md). */
@keyframes asr-nd-flow { from { transform: scale(1); } to { transform: scale(1.6); } }
@keyframes asr-nd-lamps { from { transform: scale(1); } to { transform: scale(4.096); } }
@media (prefers-reduced-motion: no-preference) {
	:is(.asr-site, .asr-scope, .asr-trial) .asr-ill--road.is-inview:not(.asr-reduce-motion *) .asr-ill__flow {
		animation: asr-nd-flow var(--asr-lane-speed, 1.6s) linear infinite;
	}
	:is(.asr-site, .asr-scope, .asr-trial) .asr-ill--road.is-inview:not(.asr-reduce-motion *) .asr-ill__lamps {
		animation: asr-nd-lamps calc(var(--asr-lane-speed, 1.6s) * 3) linear infinite;
	}
	/* Fuori dall'hero (che ha il pulsante pausa) il loop si ferma da solo entro 5 s (WCAG 2.2.2). */
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-hero--compact .asr-ill--road.is-inview .asr-ill__flow { animation-iteration-count: 3; }
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-hero--compact .asr-ill--road.is-inview .asr-ill__lamps { animation-iteration-count: 1; }
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-final__road.is-inview::before { animation-iteration-count: 3 !important; }
}
html.asr-motion-paused .asr-ill--road :is(.asr-ill__flow, .asr-ill__lamps),
html.asr-motion-suspended .asr-ill--road :is(.asr-ill__flow, .asr-ill__lamps),
[data-asr-loops="paused"] .asr-ill--road :is(.asr-ill__flow, .asr-ill__lamps) { animation-play-state: paused !important; }

/* Icone v3 grandi: tratto non scalato (DESIGN-V3 §2.1). */
.asr-site .asr-site-icon--32 * { vector-effect: non-scaling-stroke; stroke-width: 1.75; }
.asr-site .asr-site-icon--48 * { vector-effect: non-scaling-stroke; stroke-width: 2; }
.asr-site .asr-site-icon :is([fill="currentColor"]) { stroke: none; }

/* ------------------------------------------------------------------ */
/* 1. Sito pubblico – hero                                             */
/* ------------------------------------------------------------------ */
/* Scena 3D: la scrim v2 non serve (la scena ha la sua), il testo resta sopra. */
.asr-site .asr-site-hero--scene .asr-site-hero__inner { z-index: 1; }
.asr-site .asr-site-hero--scene .asr-site-hero__down,
.asr-site .asr-site-hero--scene .asr-site-hero__pause { z-index: 3; }
/* Barre bianche del titolo (firma del sito): con M3 si accendono dopo le righe (--asr-split-bars 0 → 1). */
@media (min-width: 768px) {
	.asr-site .asr-site-hero__title .asr-site-hero__bars {
		border-left-color: rgb(255 255 255 / var(--asr-split-bars, 1));
		border-right-color: rgb(255 255 255 / var(--asr-split-bars, 1));
	}
}
/* Hero a tutto schermo senza media né scena: strada I6 nella metà destra. */
.asr-site .asr-site-hero__road {
	position: absolute;
	z-index: -1;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 46%;
	pointer-events: none;
	opacity: 0.5;
	-webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent);
	mask-image: linear-gradient(to bottom, #000 40%, transparent);
}
.asr-site .asr-site-hero--full .asr-site-hero__road { top: 0; bottom: auto; height: 40%; }
.asr-site .asr-site-hero__road svg { width: 100%; height: 100%; }
@media (min-width: 1024px) {
	.asr-site .asr-site-hero--full .asr-site-hero__road {
		top: 0;
		width: 52%;
		height: 100%;
		opacity: 0.6;
		-webkit-mask-image: linear-gradient(to right, transparent, #000 30%);
		mask-image: linear-gradient(to right, transparent, #000 30%);
	}
}
/* Hero compatto: I6 al 35% nella metà destra (da 768 px); sotto, la sola luce ambient. */
.asr-site .asr-site-hero__road--compact { display: none; }
@media (min-width: 768px) {
	.asr-site .asr-site-hero__road--compact {
		display: block;
		top: 0;
		width: 50%;
		height: 100%;
		opacity: 0.35;
		/* il primo lampione nasce a ~15%: sfumato fino al 60% per non toccare la fine delle righe di testo */
		-webkit-mask-image: linear-gradient(to right, transparent 15%, #000 60%);
		mask-image: linear-gradient(to right, transparent 15%, #000 60%);
	}
}
/* Il testo delle testate compatte non si sovrappone alla strada: colonna sinistra da 1024 px. */
@media (min-width: 1024px) {
	.asr-site .asr-site-hero--compact:not(.asr-site-hero--media) .asr-site-hero__inner > :not(.asr-site-breadcrumb, .asr-site-hero__vehicle, .asr-site-facts, .asr-site-hero__actions) { max-width: min(60%, 720px); }
}
.asr-site .asr-site-hero__eyebrow-icon,
.asr-site .asr-site-eyebrow__icon {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: -3px 10px 0 0;
	vertical-align: middle;
	color: var(--asr-brand-petrol-hero, #8CC4D6);
}
.asr-site .asr-site-eyebrow__icon { color: var(--asr-color-accent-text); }

/* Testata della pagina patente: tavola grande del veicolo (§7.2). */
.asr-site .asr-site-hero__vehicle {
	position: relative;
	width: min(100%, 420px);
	margin: 8px 0 20px;
	pointer-events: none;
}
@media (min-width: 1024px) {
	.asr-site .asr-site-hero--vehicle .asr-site-hero__inner { min-height: 300px; }
	.asr-site .asr-site-hero__vehicle {
		position: absolute;
		top: 50%;
		right: var(--asr-gutter);
		width: min(40%, 520px);
		margin: 0;
		transform: translateY(-50%);
	}
	.asr-site .asr-site-hero--vehicle .asr-site-hero__inner > :not(.asr-site-hero__vehicle) { max-width: 56%; }
}

/* ------------------------------------------------------------------ */
/* 2. Sito pubblico – sezioni, card, blocchi                           */
/* ------------------------------------------------------------------ */
.asr-site .asr-lane-divider { position: relative; z-index: 1; }

/* Card patente: fascia di 132 px con la tavola, il veicolo "esce" a destra (§2.4). */
.asr-site .asr-site-card--vehicle { overflow: hidden; }
.asr-site .asr-site-card__vehicle {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	height: 132px;
	margin: -24px -24px 0;
	padding-top: 8px;
	overflow: hidden;
	border-bottom: 1px solid var(--asr-color-border);
	background: radial-gradient(70% 90% at 70% 100%, rgb(1 67 89 / 0.22), transparent 70%);
}
@media (min-width: 768px) {
	.asr-site .asr-site-card__vehicle { margin: -32px -32px 0; }
}
/* Il veicolo resta dentro la card: camion e autobus, più lunghi, prima perdevano la cabina oltre il bordo. */
.asr-site .asr-site-card__vehicle svg.asr-ill { width: auto; height: 100%; max-width: calc(100% - 24px); flex: none; margin-right: 12px; }
.asr-site .asr-site-card__badge { position: absolute; top: 14px; left: 16px; width: 32px; height: 32px; color: var(--asr-color-accent-text); }
.asr-site .asr-site-card__facts { display: inline-flex; align-items: center; gap: 10px; }
.asr-site .asr-site-card__facts-icon { width: 20px; height: 20px; flex: none; }

/* Card percorso di teoria: il veicolo sopra la strada, mai sotto il testo. */
.asr-site .asr-site-card--cover { container-type: inline-size; }
/* Card strette (colonna di un tema, 4 colonne a 1024–1279): veicolo e titolo più compatti, così un titolo su
   4 righe (CQC) non spinge il veicolo oltre il bordo alto del 4:5 e non lo sovrappone all'icona. */
@container (max-width: 300px) {
	.asr-site .asr-site-card__ride { width: 64%; margin-bottom: 6px; }
	.asr-site .asr-site-card--cover .asr-site-card__body { gap: 12px; padding: 24px; }
	.asr-site .asr-site-card--cover .asr-site-card__title { font-size: 19px; }
}
@container (max-width: 220px) {
	.asr-site .asr-site-card__ride, .asr-site .asr-site-card__ride-icon { display: none; }
}
.asr-site .asr-site-card__ride {
	position: relative;
	z-index: 1;
	width: 78%;
	max-width: 280px;
	margin: 0 0 10px auto; /* staccato dalla targa sotto (CQC: il camion la copriva) */
	pointer-events: none;
}
.asr-site .asr-site-card__ride-icon { position: absolute; z-index: 1; top: 20px; left: 24px; color: var(--asr-color-accent-text); }
.asr-site .asr-site-card__ride-icon svg { width: 32px; height: 32px; }

/* Banda CTA petrolio: gradiente 105° (DESIGN-V3 §1.3), testo solo bianco. */
.asr-site .asr-site-band { background: linear-gradient(105deg, #014359 0%, #01384A 55%, #012C3A 100%); }
/* Le colonne dipendono dalla larghezza reale della banda (anche dentro la colonna stretta di un tema). */
.asr-site .asr-site-band--split { container-type: inline-size; }
.asr-site .asr-site-band__split { display: grid; gap: 32px; align-items: center; }
@container (min-width: 760px) {
	.asr-site .asr-site-band__split { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; }
}
.asr-site .asr-site-band__aside { position: relative; min-width: 0; }
.asr-site .asr-site-dash {
	margin: 0;
	padding: 16px 16px 20px;
	background: #080808;
	border: 1px solid rgb(255 255 255 / 0.16);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.06);
	--asr-needle-speed: 84deg;   /* 85% del fondo scala: "sali verso il verde" */
	--asr-needle-rpm: 12deg;
	--asr-arc-speed: 0.85;
	--asr-arc-rpm: 0.55;
}
.asr-site .asr-site-dash svg.asr-ill { max-width: 440px; margin-inline: auto; }
.asr-site .asr-site-dash__caption { margin-top: 8px; text-align: center; font-size: var(--asr-text-sm); line-height: 1.5; color: #E6E6E6; }
@keyframes asr-nd-needle-speed { from { transform: rotate(-120deg); } }
@keyframes asr-nd-needle-rpm { from { transform: rotate(-120deg); } }
@keyframes asr-nd-arc { from { stroke-dasharray: 0 1; } }
@media (prefers-reduced-motion: no-preference) {
	.asr-site .asr-site-dash.is-inview:not(.asr-reduce-motion *) .asr-ill__needle--speed { animation: asr-nd-needle-speed var(--asr-dur-needle, 1400ms) var(--asr-ease-brake, ease-out) 300ms both; }
	.asr-site .asr-site-dash.is-inview:not(.asr-reduce-motion *) .asr-ill__needle--rpm { animation: asr-nd-needle-rpm var(--asr-dur-needle, 1400ms) var(--asr-ease-brake, ease-out) 450ms both; }
	.asr-site .asr-site-dash.is-inview:not(.asr-reduce-motion *) .asr-ill__arc { animation: asr-nd-arc var(--asr-dur-needle, 1400ms) var(--asr-ease-brake, ease-out) 300ms both; }
}
.asr-site .asr-site-checklist--icons li { gap: 14px; }
.asr-site .asr-site-checklist--icons .asr-site-icon { width: 24px; height: 24px; flex: none; margin-top: 0; }

/* Il percorso in 4 passi: carreggiata orizzontale con l'auto (M15) da 1024 px, linea verticale con catarifrangenti sotto. */
.asr-site .asr-site-route { display: none; }
@media (min-width: 1024px) {
	.asr-site .asr-site-route { display: block; margin: 0 0 8px; color: #FFFFFF; }
	.asr-site .asr-site-route__svg { display: block; width: 100%; height: auto; overflow: visible; }
}
.asr-site .asr-site-route__base { stroke: #1B1E21; stroke-width: 12; }
.asr-site .asr-site-route__lane { stroke: rgb(255 255 255 / 0.22); stroke-width: 1.5; stroke-dasharray: 12 12; }
.asr-site .asr-site-route__path { stroke: var(--asr-brand-petrol-line, #3A8BA6); stroke-width: 2; }
.asr-site .asr-site-route__stop rect { fill: #090909; stroke: var(--asr-brand-petrol-light, #6FB0C6); stroke-width: 2; }
.asr-site .asr-site-route__flag path { stroke: #FFFFFF; stroke-width: 1.5; fill: rgb(255 255 255 / 0.08); }
.asr-site .asr-site-route__car { color: #FFFFFF; }
.asr-site .asr-site-steps__head { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.asr-site .asr-site-steps__head .asr-site-steps__num { order: 2; margin-bottom: 0; }
.asr-site .asr-site-steps__icon { width: 32px; height: 32px; flex: none; color: var(--asr-color-accent-text); }
@media (max-width: 1023.98px) {
	.asr-site .asr-site-steps.asr-edgeline { --asr-edge-x: 0px; padding-left: 28px; }
}
@media (min-width: 1024px) {
	.asr-site .asr-site-steps.asr-edgeline::before,
	.asr-site .asr-site-steps.asr-edgeline::after { display: none; }
}

/* Perché Raso: icone 48 (gearshift, persone, tachimetro, bandiera). */
.asr-site .asr-site-values__icon { width: 48px; height: 48px; }

/* Finale: mezzeria che scorre sotto il titolo (3 cicli). */
.asr-site .asr-site-final__road { width: min(240px, 60%); margin: 28px auto 0; }

/* Footer: la grana v3 resta sotto ai contenuti. */
.asr-site .asr-site-footer.asr-amb > * { position: relative; }

/* ------------------------------------------------------------------ */
/* 3. Sito pubblico – pagine interne                                   */
/* ------------------------------------------------------------------ */
.asr-site .asr-site-facts__label { display: inline-flex; align-items: center; justify-content: inherit; gap: 8px; }
.asr-site .asr-site-facts__icon { width: 18px; height: 18px; flex: none; color: var(--asr-color-accent-text); }
.asr-site .asr-site-facts--hero .asr-site-facts__icon { color: var(--asr-brand-petrol-hero, #8CC4D6); }
.asr-site .asr-site-doc__icon { display: block; width: 24px; height: 24px; margin-bottom: 10px; color: var(--asr-color-accent-text); -webkit-text-stroke: 0; }

/* Capitoli: icona del capitolo + linea continua con catarifrangenti (M14). */
.asr-site .asr-site-chapters.asr-edgeline { --asr-edge-x: 0px; padding-left: 20px; }
.asr-site .asr-site-chapters__link { grid-template-columns: 48px 28px minmax(0, 1fr) 24px; }
.asr-site .asr-site-chapters__icon { width: 24px; height: 24px; color: var(--asr-color-accent-text); }
.asr-site .asr-site-article__icon { display: block; width: 48px; height: 48px; margin-bottom: 16px; color: var(--asr-color-accent-text); }
.asr-site .asr-site-callout__label { display: inline-flex; align-items: center; gap: 8px; }
.asr-site .asr-site-callout__icon { width: 18px; height: 18px; flex: none; }
.asr-site .asr-site-choice__icon { width: 32px; height: 32px; margin-left: auto; flex: none; color: var(--asr-color-accent-text); }

/* Contatti: mappa stilizzata originale (nessuna geografia reale). */
.asr-site .asr-site-map::before { opacity: 0.6; }
.asr-site .asr-site-map__art { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.asr-site .asr-site-map__blocks { stroke: #2A2E33; }
.asr-site .asr-site-map__main { stroke: #3A3F45; }
.asr-site .asr-site-map__route { stroke: var(--asr-brand-petrol-line, #3A8BA6); stroke-width: 3; stroke-dasharray: 0.02 0.012; }
.asr-site .asr-site-map__halo { fill: rgb(111 176 198 / 0.12); stroke: rgb(111 176 198 / 0.5); }
.asr-site .asr-site-map__dot { fill: var(--asr-brand-petrol-light, #6FB0C6); }
.asr-site .asr-site-map__placeholder {
	z-index: 1;
	justify-content: flex-end;
	background: linear-gradient(to top, rgb(8 8 8 / 0.94) 0%, rgb(8 8 8 / 0.86) 45%, rgb(8 8 8 / 0) 78%);
}
.asr-site .asr-site-map__placeholder .asr-site-map__pin { display: none; }
.asr-site .asr-site-map__title { display: inline-flex; align-items: center; gap: 8px; }
.asr-site .asr-site-map__title-icon { width: 20px; height: 20px; }
.asr-site .asr-site-map iframe { z-index: 2; }

/* ------------------------------------------------------------------ */
/* 3b. Blocchi incorporati in una colonna stretta del tema             */
/* ------------------------------------------------------------------ */
/* Le griglie v2 seguono il viewport; dentro la colonna di un tema (es. 610 px a 1280) si stringevano fino a
   colonne da 60 px. Qui seguono la larghezza reale del contenitore degli shortcode. */
.asr-site.asr-site--embed { container: asr-embed / inline-size; }
@container asr-embed (max-width: 1023.98px) {
	.asr-site--embed .asr-site-why { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.asr-site--embed .asr-site-intro { grid-template-columns: minmax(0, 1fr); }
	.asr-site--embed .asr-site-contact { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.asr-site--embed .asr-site-grid--cards,
	.asr-site--embed .asr-site-grid--paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asr-site--embed .asr-site-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asr-site--embed .asr-site-steps__item,
	.asr-site--embed .asr-site-steps__item + .asr-site-steps__item { padding: 32px 24px 32px 0; border-left: 0; }
	.asr-site--embed .asr-site-steps__item + .asr-site-steps__item::before { left: 0; }
	.asr-site--embed .asr-site-route { display: none; }
	.asr-site--embed .asr-site-steps.asr-edgeline { --asr-edge-x: 0px; padding-left: 28px; }
	.asr-site--embed .asr-site-steps.asr-edgeline::before,
	.asr-site--embed .asr-site-steps.asr-edgeline::after { display: block; }
}
@container asr-embed (max-width: 559.98px) {
	.asr-site--embed .asr-site-grid--cards,
	.asr-site--embed .asr-site-grid--paths,
	.asr-site--embed .asr-site-steps,
	.asr-site--embed .asr-site-values { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------ */
/* 4. Quiz di prova                                                    */
/* ------------------------------------------------------------------ */
.asr-trial .asr-trial__dash { display: none; }
@media (min-width: 768px) {
	.asr-trial .asr-trial__dash { display: block; width: min(100%, 360px); margin: 0 auto 24px; }
}
.asr-trial .asr-trial__plate-vehicle {
	position: absolute;
	right: 14px;
	bottom: 14px;
	width: 32px;
	height: 32px;
	color: var(--asr-color-accent-text, #6FB0C6);
	pointer-events: none;
}
.asr-trial .asr-trial__plate-vehicle * { vector-effect: non-scaling-stroke; stroke-width: 1.75; }
/* (i temi classici stilano "input[type=radio] + label": si ribadisce il layout della card) */
.asr-trial .asr-trial__radio + .asr-trial__plate-label { display: flex; width: 100%; margin: 0; padding: var(--asr-space-5, 1.5rem) var(--asr-space-4, 1rem) 3.25rem; }
/* La "DRL" della card scelta: barra 2 px che si accende in cima. */
.asr-trial .asr-trial__plate-label::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	height: 2px;
	background: var(--asr-brand-petrol-light, #6FB0C6);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 300ms var(--asr-ease-drive, ease-out);
}
.asr-trial .asr-trial__radio:checked + .asr-trial__plate-label::before { transform: scaleX(1); }
.asr-trial .asr-trial__fact dt { display: inline-flex; align-items: center; gap: 6px; }
.asr-trial .asr-trial__fact dt .asr-trial__icon { width: 16px; height: 16px; color: var(--asr-color-accent-text, #6FB0C6); }

/* Barra del quiz: la strada di avanzamento (M12) sostituisce la riga da 2 px. */
.asr-trial .asr-trial__progress { display: none; }
.asr-trial .asr-trial__road-wrap {
	max-width: calc(var(--asr-container, 72rem) + 2 * var(--asr-trial-gutter));
	margin-inline: auto;
	padding: 4px var(--asr-trial-gutter) 10px;
}
.asr-trial .asr-trial__road .asr-trial__icon { width: 100%; height: 100%; }
/* Allarme del timer (M18): un impulso, niente lampeggio continuo. */
.asr-trial .asr-trial__timer.is-danger .asr-trial__icon { animation: none; }

/* Esito: semaforo + sigillo, poi tachimetro delle corrette. */
.asr-trial .asr-trial__signal { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: var(--asr-space-6, 2rem); }
.asr-trial .asr-trial__signal .asr-trial__seal { margin: 0; }
.asr-trial .asr-trial__outcome .asr-trial__eyebrow { display: inline-flex; align-items: center; gap: 8px; }
.asr-trial .asr-trial__outcome .asr-trial__eyebrow .asr-trial__icon { width: 18px; height: 18px; }
.asr-trial .asr-trial__gauge-wrap { display: flex; justify-content: center; margin-top: var(--asr-space-6, 2rem); --asr-gauge-surface: var(--asr-color-bg, #090909); }

/* ------------------------------------------------------------------ */
/* 4b. Pulsanti dentro i temi classici                                 */
/* ------------------------------------------------------------------ */
/* Twenty Twenty-One (e i temi che ne copiano lo schema) colora ogni <button> con
   "button:not(:hover):not(:active):not(.has-background)" (specificità 0,3,1): fondo #28303D e testo #D1E4DD
   su risposte Vero/Falso, pallini, Avanti/Consegna, schede e figure dell'esito, pausa della scena. La risposta
   scelta non diventava petrolio e le figure dell'esito perdevano il fondo bianco. Stesso schema + contenitore
   (0,4,1): tornano i colori dei componenti nello stato di riposo; hover/active restano ai componenti. */
.asr-trial button:not(:hover):not(:active):is(.asr-trial__btn, .asr-trial__icon-btn, .asr-trial__answer) { background-color: transparent; color: var(--asr-color-heading, #FFFFFF); }
.asr-trial button:not(:hover):not(:active):is(.asr-trial__dot, .asr-trial__tab) { background-color: transparent; color: var(--asr-color-text-muted, #A3A3A3); }
.asr-trial button.asr-trial__btn--primary:not(:hover):not(:active),
.asr-trial button.asr-trial__answer[aria-pressed="true"]:not(:hover):not(:active),
.asr-trial button.asr-trial__dot.is-answered:not(:hover):not(:active) { background-color: var(--asr-color-primary, #014359); color: #FFFFFF; }
.asr-trial button.asr-trial__btn--danger:not(:hover):not(:active) { color: var(--asr-color-danger, #F2A097); }
.asr-trial button.asr-trial__btn--ghost:not(:hover):not(:active) { color: var(--asr-color-accent-text, #6FB0C6); }
.asr-trial button:not(:hover):not(:active):is(.asr-trial__dot.is-current, .asr-trial__tab[aria-pressed="true"]) { color: var(--asr-color-heading, #FFFFFF); }
.asr-trial button.asr-trial__rfigure:not(:hover):not(:active) { background-color: var(--asr-color-media-bg, #FFFFFF); }
.asr-trial button.asr-trial__zoom:not(:hover):not(:active) { background-color: rgba(8, 8, 8, .88); color: #FFFFFF; }
.asr-site button.asr-site-btn:not(:hover):not(:active) { background-color: transparent; color: var(--asr-color-heading, #FFFFFF); }
.asr-site button:not(:hover):not(:active):is(.asr-site-burger, .asr-site-menu__close, .asr-site-dialog__close) { background-color: transparent; color: #FFFFFF; }
.asr-site button.asr-site-btn--primary:not(:hover):not(:active) { background-color: var(--asr-brand-petrol, #014359); color: #FFFFFF; }
.asr-site button.asr-site-hero__pause:not(:hover):not(:active) { background-color: rgba(8, 8, 8, 0.35); color: #FFFFFF; }
/* Link a fuoco, stesso tema: ".site a:focus:not(.wp-block-button__link):not(.wp-block-file__button)" (0,4,1; 0,5,1
   con .is-dark-theme) dà a ogni link fondo bianco al 90 %, contorno trasparente e sottolineatura puntinata: le CTA
   e i titoli delle card diventavano testo bianco su fondo chiaro (circa 1.1:1) e l'anello di fuoco spariva.
   ":not(#asr-tema)" porta la specificità sopra quella del tema senza !important; tornano fondo e anello del plugin. */
:is(.asr-site, .asr-trial) a:focus:not(#asr-tema) { background-color: transparent; background-image: none; }
:is(.asr-site, .asr-trial) a:focus:not(#asr-tema):is(.asr-site-btn, .asr-trial__btn, .asr-site-card__link, .asr-site-row-link, .asr-site-chapnav__link, .asr-site-pager__link, .asr-site-hero__down) { text-decoration: none; }
.asr-site a.asr-site-btn--primary:focus:not(#asr-tema),
.asr-trial a.asr-trial__btn--primary:focus:not(#asr-tema) { background-color: var(--asr-brand-petrol, #014359); }
.asr-site .asr-site-chapnav__item.is-current a.asr-site-chapnav__link:focus:not(#asr-tema) { background-color: var(--asr-color-surface, #141618); }
:is(.asr-site, .asr-trial) a:focus-visible:not(#asr-tema) { outline-color: var(--asr-color-focus, #6FB0C6); }
.asr-site a.asr-site-card__link:focus-visible:not(#asr-tema) { outline-color: transparent; }
.asr-trial .asr-trial__cta a:focus-visible:not(#asr-tema) { outline-color: #FFFFFF; }
/* Stesso tema: "h1…h6", "ul, ol" e "dt" ricevono il font di sistema; nell'esito del quiz di prova verdetto,
   titoli, correzione (dentro un <ol>) e contatti uscivano senza Raleway. */
.asr-trial :where(h1, h2, h3, h4, h5, h6, ul, ol, dt) { font-family: inherit; }

/* ------------------------------------------------------------------ */
/* 5. Area allievi (SPA)                                               */
/* ------------------------------------------------------------------ */
/* Esame/simulazione in corso: nessun ambient, superficie piena (§6.3). */
.asr-scope.asr-app[data-layout="focus"].asr-amb { background: var(--asr-color-bg, #090909); }
.asr-scope.asr-app[data-layout="focus"].asr-amb::after { display: none; }
.asr-scope .asr-icon--v3 { width: 24px; height: 24px; flex: none; color: var(--asr-color-accent-text); }
.asr-scope .asr-chapicon { width: 24px; height: 24px; flex: none; color: var(--asr-color-accent-text); }
.asr-scope .asr-row .asr-chapicon { margin-right: 2px; }
.asr-scope .asr-chapter .asr-chapicon { margin-top: 4px; }
.asr-scope .asr-row__main .asr-road-progress { display: block; width: min(100%, 180px); margin-top: 8px; }
.asr-scope .asr-ready-light { display: inline-flex; align-items: center; gap: 12px; }
.asr-scope .asr-ready-gauge { --asr-gauge-w: 200px; --asr-gauge-surface: var(--asr-color-surface); flex: none; }
/* Il semaforo accanto all'etichetta fa già da spia: il pallino del badge sarebbe un doppione. */
.asr-scope .asr-ready-light:has(.asr-traffic-light) .asr-ready__dot { display: none; }
/* 375 px: il tachimetro da 200 px lasciava all'etichetta una colonna da 60 px ("Non / ancora / pronto"). */
@container (max-width: 400px) {
	.asr-scope .asr-ready-gauge { --asr-gauge-w: 156px; }
	.asr-scope .asr-ready-card__top { gap: var(--asr-space-4, 1rem); }
}
.asr-scope .asr-stat--odometer .asr-stat__value { font-size: var(--asr-text-2xl, 1.5rem); }
.asr-scope .asr-stat > .asr-icon--v3 { margin-bottom: 2px; }
.asr-scope .asr-stat--ok > .asr-icon--v3 { color: var(--asr-color-success); }
.asr-scope .asr-stat--bad > .asr-icon--v3 { color: var(--asr-color-danger); }
.asr-scope .asr-cta__vehicle { color: inherit; }
.asr-scope .asr-outcome__signal { display: flex; align-items: center; justify-content: center; gap: 20px; }
.asr-scope .asr-outcome__signal .asr-outcome__seal { margin: 0; }
.asr-scope .asr-outcome__gauge { margin: var(--asr-space-4) auto 0; --asr-gauge-surface: var(--asr-color-surface); }
.asr-scope .asr-choice .asr-between { align-items: flex-start; }
.asr-scope .asr-choice__facts span .asr-icon { margin-right: 4px; vertical-align: -3px; }
/* Barra dell'esame come carreggiata (asfalto + mezzeria), senza animazioni. */
.asr-scope .asr-exam__progress {
	height: 6px;
	background: #1B1E21;
	background-image: repeating-linear-gradient(90deg, rgb(255 255 255 / 0.22) 0 6px, transparent 6px 12px);
	background-size: 100% 1px;
	background-position: 0 50%;
	background-repeat: no-repeat;
}
.asr-scope .asr-exam__progress::-webkit-progress-bar { background: transparent; }
.asr-scope .asr-exam__progress::-webkit-progress-value { background: var(--asr-color-accent); transition: none; }
/* Login: strada notturna nel pannello del marchio (da 768 px), nello spazio libero sopra il titolo. */
.asr-scope .asr-auth__panel .asr-ill-slot { display: none; }
@media (min-width: 768px) {
	.asr-scope .asr-auth__panel .asr-ill-slot {
		display: block;
		position: absolute;
		/* tra il marchio e il titolo: mai dietro al testo (contrasto del testo invariato) */
		inset: 9% 0 auto 0;
		height: 40%;
		opacity: 0.45;
		pointer-events: none;
		-webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent);
		mask-image: linear-gradient(to bottom, #000 55%, transparent);
	}
	.asr-scope .asr-auth__panel .asr-ill-slot svg { display: block; width: 100%; height: 100%; color: #E6E6E6; }
	.asr-scope .asr-auth__brand,
	.asr-scope .asr-auth__hero { z-index: 1; }
}

/* ------------------------------------------------------------------ */
/* 6. Riduci movimento, contrasto forzato, stampa                       */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	:is(.asr-site, .asr-scope, .asr-trial) :is(.asr-ill__flow, .asr-ill__lamps, .asr-ill__needle, .asr-ill__arc) { animation: none !important; }
	.asr-trial .asr-trial__plate-label::before { transition: none; }
}
.asr-reduce-motion :is(.asr-ill__flow, .asr-ill__lamps, .asr-ill__needle, .asr-ill__arc) { animation: none !important; }
@media (forced-colors: active) {
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-hero__road,
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-card__vehicle,
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-card__ride,
	:is(.asr-site, .asr-scope, .asr-trial) .asr-site-map__art,
	:is(.asr-site, .asr-scope, .asr-trial) .asr-ill-slot { display: none; }
}
@media print {
	:is(.asr-site, .asr-scope, .asr-trial) :is(.asr-site-hero__road, .asr-site-card__vehicle, .asr-site-card__ride, .asr-site-route, .asr-site-map__art, .asr-ill-slot, .asr-trial__dash, .asr-traffic-light) { display: none !important; }
}
