/*
 * I blocchi del magazine. Usano i token del tema (style.css di
 * tema/ciclismo); i valori dopo la virgola valgono solo se il tema
 * cambiasse, perché il calendario resti leggibile anche così.
 */

.nastro,
.hub,
.testata-corsa,
.fasi,
.scheda-corsa,
.segui,
.prossime,
.notizie-home,
.elenco,
.cronometro,
.percorso,
.firma,
.condividi,
.autore,
.da-leggere,
.iscrizione,
.lingua,
.pronostico,
.vento,
.fagiano-breve,
.diecimila,
.registro-fagiano,
.diretta,
.oggi,
.oggi-richiamo,
.presentazione,
.flusso {
	--b-asfalto: var(--cicl-band, #0D0F12);
	--b-su-asfalto: var(--cicl-band-strong, #F4F5F2);
	--b-su-asfalto-2: var(--cicl-band-text, #C3C8CF);
	--b-spento: var(--cicl-band-muted, #7D848E);
	--b-filo-scuro: var(--cicl-band-line, #2A2F36);
	--b-cobalto: var(--cicl-band-cobalt, #8C9DFF);
	--b-fluo: var(--cicl-fluo, #D4FF3F);
	--b-su-fluo: var(--cicl-on-fluo, #0D0F12);
	--b-testo: var(--cicl-text, #0D0F12);
	--b-secondario: var(--cicl-muted, #5A6069);
	--b-filo: var(--cicl-line, #DEE1DC);
	--b-sabbia: var(--cicl-sabbia, #EEE1C6);
	--b-sabbia-forte: var(--cicl-sabbia-forte, #E3D3B2);
	--b-ghiaccio: var(--cicl-ghiaccio, #DFE9F5);
	--b-ghiaccio-forte: var(--cicl-ghiaccio-forte, #CFDCEC);
	--b-nebbia-forte: var(--cicl-nebbia-forte, #E4E6E1);
	--b-mono: var(--cicl-font-numeri, ui-monospace, monospace);
	--b-titoli: var(--cicl-font-titoli, Georgia, serif);
	--b-conclusa: #4A515B;
}

/* ------------------------------------------------------------------
   Nastro della stagione: le schede STRADA · CROSS · PISTA, la linea
   dell'anno della disciplina scelta e la prossima gara
   ------------------------------------------------------------------ */

.nastro {
	display: block;
	background: var(--b-asfalto);
	color: var(--b-su-asfalto-2);
}
.nastro__dentro {
	max-width: 1240px;
	min-height: 50px;
	margin: 0 auto;
	padding: 10px var(--wp--style--root--padding-right, 1.25rem);
	display: flex;
	gap: 10px 24px;
	align-items: center;
	box-sizing: content-box; /* 1240 di contenuto, come l'alignwide della testata */
}

/* Le schede: senza JavaScript link ai calendari, con vista.js un role="tablist" */
.nastro__schede {
	display: flex;
	flex-shrink: 0;
	border: 1px solid var(--b-filo-scuro);
}
.nastro__scheda {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	height: 44px;
	margin: 0;
	padding: 0 13px;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--b-spento);
	font-family: var(--b-mono);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
.nastro__scheda + .nastro__scheda { border-left: 1px solid var(--b-filo-scuro); }
.nastro__scheda:hover { color: var(--b-su-asfalto); }
/* La scheda scelta: chiara, con il filo fluo sotto (non solo il colore) */
.nastro__scheda--attiva { color: var(--b-su-asfalto); box-shadow: inset 0 -3px 0 var(--b-fluo); }

.nastro__pannello {
	flex: 1 1 auto;
	align-self: stretch;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 24px;
}
.nastro__pannello[hidden] { display: none; }

.nastro__testo {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--b-su-asfalto-2);
	text-decoration: none;
}
.nastro__testo strong { color: var(--b-fluo); font-weight: 600; }
.nastro__breve { display: none; }
/* Al passaggio il nastro non diventa cobalto (l'hover dei link del tema, illeggibile sull'asfalto): resta com'è e si sottolinea la gara */
.nastro__testo:hover,
.nastro__linea:hover { color: var(--b-su-asfalto-2); }
.nastro__testo:hover strong { text-decoration: underline; text-underline-offset: 3px; }

/* La linea dell'anno */
.nastro__linea {
	display: block;
	flex: 1 1 320px;
	min-width: 0;
	min-height: 0; /* la linea è un link, ma alta quanto il disegno: il bersaglio è tutta la sua larghezza */
	position: relative;
	height: 28px;
}
.nastro__linea::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 13px;
	height: 2px;
	background: var(--b-filo-scuro);
}
.nastro__corsa { position: absolute; background: var(--b-fluo); }
.nastro__corsa--tappe { top: 9px; height: 10px; min-width: 2px; }
.nastro__corsa--linea { top: 4px; height: 20px; width: 2px; }
.nastro__corsa--grande { background: var(--b-su-asfalto); }
/* Cross e pista hanno molte gare piccole: tacche sottili, alte solo Mondiali, Europei, Coppa del Mondo e italiani */
:is(.nastro__pannello--ciclocross, .nastro__pannello--pista) .nastro__corsa--linea { top: 8px; height: 12px; width: 1px; }
:is(.nastro__pannello--ciclocross, .nastro__pannello--pista) .nastro__corsa--forte.nastro__corsa--linea { top: 4px; height: 20px; width: 2px; }
:is(.nastro__pannello--ciclocross, .nastro__pannello--pista) .nastro__corsa--forte.nastro__corsa--tappe { top: 6px; height: 16px; }
.nastro__corsa--conclusa { background: var(--b-conclusa); }
.nastro__corsa--in-corso { box-shadow: 0 0 0 2px var(--b-asfalto), 0 0 0 3px var(--b-fluo); }
.nastro__oggi {
	position: absolute;
	top: 0; bottom: 0;
	width: 2px;
	background: var(--b-su-asfalto);
}
/* Le sigle sotto la linea: una seconda riga solo se due sono troppo vicine (render.php lo misura sulla linea del telefono) */
.nastro__linea--sigle { height: 40px; }
.nastro__linea--due-righe { height: 50px; }
.nastro__linea--sigle .nastro__oggi { bottom: auto; height: 28px; }
.nastro__sigla-corsa {
	position: absolute;
	top: 29px;
	transform: translateX(-50%);
	font-family: var(--b-mono);
	font-size: 0.5625rem;
	line-height: 1;
	letter-spacing: 0.06em;
	white-space: nowrap;
	color: var(--b-su-asfalto);
}
.nastro__sigla-corsa--giu { top: 40px; }
.nastro__sigla-corsa--destra { transform: translateX(calc(-100% + 2px)); }
.nastro__sigla-corsa--sinistra { transform: none; }
.nastro__sigla-corsa--conclusa { color: var(--b-spento); }

/* Fino a 1100 px i conti stanno nel calendario */
@media (max-width: 1100px) {
	.nastro__conti { display: none; }
}
/* Fino a 900 px: sulla prima riga le schede e a destra la prossima, sotto la linea a tutta larghezza */
@media (max-width: 900px) {
	.nastro__dentro { flex-wrap: wrap; padding-top: 10px; padding-bottom: 8px; }
	.nastro__pannello:not([hidden]) { display: contents; }
	.nastro__linea { order: 3; flex: 1 1 100%; }
	.nastro__testo { order: 2; flex: 0 1 auto; min-width: 0; margin-left: auto; overflow: hidden; text-overflow: ellipsis; }
}
/* Al telefono la prossima col nome corto, senza «Prossima»; le schede più strette */
@media (max-width: 600px) {
	.nastro__dentro { width: calc(100% - 32px); padding-left: 0; padding-right: 0; margin: 0 auto; gap: 6px 10px; }
	.nastro__scheda { padding: 0 9px; font-size: 0.6875rem; letter-spacing: 0.08em; }
	.nastro__testo { flex: 1 1 0; text-align: right; font-size: 0.6875rem; letter-spacing: 0.06em; }
	.nastro__lungo { display: none; }
	.nastro__breve { display: inline; }
	.nastro__linea--due-righe { height: 48px; }
	.nastro__sigla-corsa { top: 28px; }
	.nastro__sigla-corsa--giu { top: 38px; }
}
/* Sui telefoni più stretti la sigla che non trova posto in nessuna delle due righe resta solo nel title */
@media (max-width: 379px) {
	.nastro__sigla-corsa--fitta { display: none; }
}

/* ------------------------------------------------------------------
   L'hub delle corse (blocchi/calendario; /corse/, /corse/ciclocross/,
   /corse/pista/): le discipline, uomini o donne, la linea del tempo e
   le corse in tre blocchi (tela di design «3a · /corse/»)
   ------------------------------------------------------------------ */

.hub { --hub-colonne: 76px 120px minmax(0, 1.3fr) minmax(0, 1.5fr) 150px 24px; color: var(--b-testo); }
.hub__dentro {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin: 0 auto;
	padding: 20px var(--wp--style--root--padding-right, 1.25rem) 64px;
	box-sizing: content-box;
}
.hub__briciole { margin-bottom: 20px; }

.hub__testa { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 24px; margin-bottom: 24px; }
.hub__briciole { flex-basis: 100%; }
.hub__titolo { margin: 0; font-family: var(--b-titoli); font-size: clamp(2.75rem, 6vw, 4.5rem); line-height: 1; font-weight: 500; }
.hub__sommario { margin: 10px 0 0; font-size: 1.1875rem; line-height: 1.45; color: var(--cicl-body, #2E3238); }
.hub__stagione { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.hub__stagione-campi { display: flex; gap: 8px; }
.hub__stagione select,
.hub__vai {
	height: 44px;
	border: 1.5px solid var(--b-testo);
	border-radius: 0;
	background: var(--cicl-bg, #FFFFFF);
	color: var(--b-testo);
	font-family: var(--b-mono);
	font-size: 0.9375rem;
}
.hub__stagione select { padding: 0 12px; min-width: 7.5rem; }
.hub__vai { padding: 0 14px; cursor: pointer; }
.hub__vai[hidden] { display: none; }
.hub__anno { font-family: var(--b-mono); font-size: 0.9375rem; }
.hub__stagione--una { flex-direction: row; align-items: baseline; gap: 8px; }

/* Le schede delle discipline e uomini o donne: una volta sola, sopra il filo forte */
.hub__barra { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 20px; border-bottom: 2px solid var(--b-testo); }
.hub__discipline ul { list-style: none; margin: 0; padding: 0; display: flex; }
.hub__disciplina {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 52px;
	padding: 0 24px;
	font-size: 1.0625rem;
	font-weight: 650;
	color: var(--b-testo);
	text-decoration: none;
}
.hub__disciplina:hover { background: var(--cicl-surface, #F2F3F0); color: var(--b-testo); }
.hub__disciplina[aria-current="page"] { background: var(--b-testo); color: var(--cicl-bg, #FFFFFF); }
.hub__conto { font-family: var(--b-mono); font-size: 0.6875rem; font-weight: 400; color: var(--b-secondario); }
.hub__disciplina[aria-current="page"] .hub__conto { color: inherit; opacity: 0.75; }
.hub__scelte { display: flex; flex-wrap: wrap; border: 1.5px solid var(--b-testo); }
.hub__scelte a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--b-testo);
	text-decoration: none;
}
.hub__scelte a:hover { background: var(--cicl-surface, #F2F3F0); color: var(--b-testo); }
.hub__scelte a[aria-current] { background: var(--b-testo); color: var(--cicl-bg, #FFFFFF); }

/* La linea del tempo: punti le corse in linea, barre quelle a tappe; piene le concluse, vuote quelle da correre */
.hub__tempo { margin: 24px 0 8px; }
.hub__linea { position: relative; height: 74px; }
.hub__filo { position: absolute; left: 0; right: 0; top: 40px; height: 2px; background: var(--b-filo); }
.hub__filo--fatto { right: auto; background: var(--b-testo); }
.hub__mese { position: absolute; top: 58px; font-family: var(--b-mono); font-size: 0.625rem; letter-spacing: 0.1em; color: var(--b-secondario); }
.hub__segno { position: absolute; box-sizing: border-box; background: var(--b-testo); border: 1.5px solid var(--b-testo); }
.hub__segno--punto { top: 37px; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; }
.hub__segno--punto.hub__segno--maggiore { top: 35px; width: 12px; height: 12px; margin-left: -6px; }
.hub__segno--barra { top: 38px; height: 6px; min-width: 4px; }
.hub__segno--barra.hub__segno--maggiore { top: 36px; height: 10px; }
.hub__segno--prima { background: var(--cicl-bg, #FFFFFF); }
.hub__segno--in-corsa { background: var(--b-fluo); z-index: 1; }
.hub__sigla { position: absolute; top: 14px; transform: translateX(-50%); font-family: var(--b-mono); font-size: 0.625rem; letter-spacing: 0.08em; color: var(--b-secondario); white-space: nowrap; }
.hub__sigla--adesso { top: 2px; font-weight: 700; color: var(--b-testo); }
.hub__avanzamento { display: none; }
.hub__legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 4px; font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.hub__legenda span { display: inline-flex; align-items: center; gap: 8px; }
.hub__chiave { display: inline-block; box-sizing: border-box; background: var(--b-testo); }
.hub__chiave--punto { width: 8px; height: 8px; border-radius: 50%; }
.hub__chiave--barra { width: 18px; height: 6px; }
.hub__chiave--adesso { width: 18px; height: 8px; background: var(--b-fluo); border: 1.5px solid var(--b-testo); }
.hub__ics { display: inline-flex; align-items: center; min-height: 44px; margin-left: auto; color: var(--b-testo); text-decoration: underline; text-underline-offset: 3px; }

/* I tre blocchi */
.hub__blocco { margin-top: 36px; }
.hub__capo-blocco { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.hub__titolo-blocco { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.5rem; font-weight: 650; }
.hub__quante, .hub__ordine { font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 400; color: var(--b-secondario); }
.hub__punto { width: 10px; height: 10px; border-radius: 50%; background: var(--b-fluo); border: 1.5px solid var(--b-testo); box-sizing: border-box; }
.hub__nessuna {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 20px;
	margin: 0;
	padding: 18px 12px;
	border-top: 2px solid var(--b-testo);
	border-bottom: 1px solid var(--b-filo);
	font-size: 1rem;
	color: var(--cicl-body, #2E3238);
}
.hub__dopo { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-testo); }
.hub__vuoto { margin: 32px 0; color: var(--b-secondario); }
.hub__colonne {
	display: grid;
	grid-template-columns: var(--hub-colonne);
	gap: 20px;
	padding: 8px 12px;
	border-top: 2px solid var(--b-testo);
	font-family: var(--b-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.hub__mese-titolo { margin: 0; padding: 18px 12px 8px; border-bottom: 1px solid var(--b-testo); font-family: var(--b-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.hub__righe { list-style: none; margin: 0; padding: 0; }
.hub__titolo-blocco + .hub__righe { border-top: 2px solid var(--b-testo); }

/* Una riga: tutta cliccabile quando la corsa ha la sua pagina (il nome si allarga sulla riga) */
.hub__riga {
	position: relative;
	display: grid;
	grid-template-columns: var(--hub-colonne);
	gap: 20px;
	align-items: center;
	padding: 14px 12px;
	border-bottom: 1px solid var(--b-filo);
}
.hub__riga--link:hover { background: var(--cicl-surface, #F2F3F0); }
/* La corsa in corso: il filo forte a sinistra, non la nebbia, che nelle liste dei pezzi vuol dire «strada» */
.hub__riga--in-corsa { box-shadow: inset 3px 0 0 var(--cicl-text, #0D0F12); padding-top: 18px; padding-bottom: 18px; }
.hub__tipo { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; color: var(--b-testo); }
.icona-corsa { display: block; }
.icona-corsa__vuoto { fill: var(--cicl-bg, #FFFFFF); }
.hub__tipo-nome { font-family: var(--b-mono); font-size: 0.625rem; letter-spacing: 0.12em; }
.hub__date { font-family: var(--b-mono); font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.hub__corsa { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hub__nome { font-family: var(--cicl-font-testo, sans-serif); font-size: 1.125rem; font-weight: 650; line-height: 1.25; color: var(--b-testo); text-decoration: none; min-height: 0; }
.hub__riga--in-corsa .hub__nome { font-size: 1.25rem; }
a.hub__nome::after { content: ""; position: absolute; inset: 0; }
a.hub__nome:hover { color: var(--b-testo); text-decoration: underline; }
.hub__meta { font-family: var(--b-mono); font-size: 0.6875rem; letter-spacing: 0.12em; line-height: 1.45; color: var(--b-secondario); }
.hub__esito { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 0.9375rem; line-height: 1.4; }
.hub__podio { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.hub__podio li:first-child { font-weight: 700; }
.hub__podio a { position: relative; z-index: 1; color: inherit; text-decoration: underline; text-decoration-color: var(--b-filo); text-underline-offset: 3px; }
.hub__podio a:hover { text-decoration-color: currentColor; }
.hub__posto { margin-right: 4px; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; text-decoration: none; }
.hub__altre { font-weight: 400; color: var(--b-secondario); }
.hub__adesso { font-weight: 600; }
.hub__poi, .hub__attesa { color: var(--b-secondario); }
.hub__attesa { font-family: var(--b-mono); font-size: 0.8125rem; }
.hub__profilo svg { display: block; width: 150px; height: 36px; }
.hub__profilo .tappe__profilo-area { fill: var(--b-testo); opacity: 1; }
.hub__profilo .tappe__profilo-linea { display: none; }
.hub__freccia { color: var(--b-testo); }

@media (max-width: 1100px) {
	.hub { --hub-colonne: 64px 104px minmax(0, 1.2fr) minmax(0, 1.3fr) 110px 18px; }
	.hub__profilo svg { width: 110px; }
}

/* Al telefono: le schede su tre colonne, la riga in tre righe, l'avanzamento al posto della linea del tempo */
@media (max-width: 760px) {
	.hub__dentro { padding-top: 14px; }
	.hub__barra { display: block; border-bottom: 0; }
	.hub__discipline ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 2px solid var(--b-testo); }
	.hub__disciplina { justify-content: center; padding: 0 6px; height: 48px; font-size: 1rem; }
	.hub__conto { display: none; }
	.hub__linea, .hub__legenda > span { display: none; }
	.hub__ics { margin-left: 0; }
	.hub__avanzamento { display: block; }
	.hub__avanzamento-testo { display: block; font-family: var(--b-mono); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; }
	.hub__avanzamento-barra { display: block; position: relative; height: 6px; margin-top: 6px; background: var(--b-filo); }
	.hub__avanzamento-barra span { position: absolute; left: 0; top: 0; bottom: 0; background: var(--b-testo); }
	.hub__colonne { display: none; }
	.hub__titolo-blocco { font-size: 1.25rem; }
	.hub__riga {
		grid-template-columns: 64px minmax(0, 1fr) 16px;
		grid-template-areas: "date corsa freccia" "tipo esito freccia" ". profilo freccia";
		gap: 6px 10px;
		align-items: start;
		padding: 12px 0;
	}
	.hub__riga--in-corsa { padding: 14px 8px; }
	.hub__mese-titolo { padding-left: 0; }
	.hub__nessuna { padding-left: 0; padding-right: 0; }
	.hub__tipo { grid-area: tipo; align-self: start; }
	.hub__tipo-nome { letter-spacing: 0.04em; white-space: nowrap; }
	.hub__tipo .icona-corsa { width: 36px; height: 11px; }
	.hub__date { grid-area: date; font-size: 0.8125rem; font-weight: 700; }
	.hub__corsa { grid-area: corsa; }
	.hub__esito { grid-area: esito; }
	.hub__esito:empty { display: none; }
	.hub__profilo { grid-area: profilo; }
	.hub__profilo:empty { display: none; }
	.hub__profilo svg { width: 100%; max-width: 220px; height: 28px; }
	.hub__freccia { grid-area: freccia; align-self: center; }
	.hub__nome { font-size: 1rem; }
	.hub__meta { font-size: 0.625rem; }
}

/* Il podio nella scheda di una corsa finita: la scheda è scura */
.scheda-corsa__podio { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 6px; font-size: 1.0625rem; }
.scheda-corsa__podio a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.scheda-corsa__posto { display: inline-block; min-width: 1.6em; font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; }

/* ------------------------------------------------------------------
   Scheda della corsa
   ------------------------------------------------------------------ */

.scheda-corsa {
	background: var(--b-asfalto);
	color: var(--b-su-asfalto);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	box-sizing: border-box;
}
.scheda-corsa p { margin: 0; }
.scheda-corsa__capo {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #A7ADB6;
}
.scheda-corsa__stato { color: var(--b-fluo); text-align: right; }
.scheda-corsa--conclusa .scheda-corsa__stato { color: #A7ADB6; }
.scheda-corsa__nome {
	font-family: var(--b-titoli);
	font-size: 2.125rem;
	line-height: 1.05;
	font-weight: 600;
}
.scheda-corsa__tipo { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; color: #A7ADB6; }
.scheda-corsa__numeri {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--b-filo-scuro);
}
.scheda-corsa__numeri div {
	background: var(--b-asfalto);
	padding: 14px 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.scheda-corsa__numeri div:nth-child(even) { padding-left: 16px; }
.scheda-corsa__numeri div:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* Tre numeri (km, dislivello, data): tutti e tre in fila */
.scheda-corsa__numeri:has(> div:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scheda-corsa__numeri:has(> div:nth-child(3):last-child) div { grid-column: auto; padding-left: 16px; }
.scheda-corsa__numeri:has(> div:nth-child(3):last-child) div:first-child { padding-left: 0; }
.scheda-corsa__numeri:has(> div:nth-child(3):last-child) dd { font-size: clamp(1.25rem, 6vw, 1.75rem); white-space: nowrap; }
.scheda-corsa__numeri:has(> div:nth-child(3):last-child) dt { letter-spacing: 0.06em; overflow-wrap: normal; word-break: normal; }
/* Le date lunghe di una corsa a tappe: km e dislivello in fila, le date sotto, su tutta la riga */
.scheda-corsa__numeri.scheda-corsa__numeri--date-sotto:has(> div:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.scheda-corsa__numeri.scheda-corsa__numeri--date-sotto:has(> div:nth-child(3):last-child) div:nth-child(odd) { padding-left: 0; }
.scheda-corsa__numeri.scheda-corsa__numeri--date-sotto:has(> div:nth-child(3):last-child) div:last-child { grid-column: 1 / -1; }
@media (max-width: 400px) {
	.scheda-corsa__numeri:has(> div:nth-child(3):last-child) div { padding-left: 10px; }
	.scheda-corsa__numeri:has(> div:nth-child(3):last-child) dt { letter-spacing: 0.02em; }
}
.scheda-corsa__numeri dd { margin: 0; font-family: var(--b-mono); font-size: 2rem; font-weight: 500; line-height: 1.05; }
.scheda-corsa__numeri dt { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; color: #A7ADB6; }
.scheda-corsa__primo dd { color: var(--b-fluo); }
.scheda-corsa__testo dd { font-size: 1.5rem; line-height: 1.2; }
.scheda-corsa__percorso {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: #A7ADB6;
}
.scheda-corsa__link {
	margin-top: auto;
	height: 48px;
	border: 1px solid var(--b-su-asfalto);
	color: var(--b-su-asfalto);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
}
.scheda-corsa__link:hover { background: var(--b-su-asfalto); color: var(--b-asfalto); }
/* Nella pagina della corsa (templates/single-corsa.html) la scheda c'è due volte: nella colonna di destra e, per il
   telefono, subito sotto il titolo, dove le colonne una sotto l'altra la portavano in fondo alla pagina. Se ne vede
   una sola, e display: none la toglie anche ai lettori di schermo */
.scheda-corsa--telefono { margin-block: 1.5rem 2rem; }
@media (min-width: 782px) {
	.scheda-corsa.scheda-corsa--telefono { display: none; }
}
@media (max-width: 781px) {
	.scheda-corsa.scheda-corsa--largo { display: none; }
}
/* La colonna di destra è corta (la scheda e i link ufficiali), quella di sinistra lunga metri: la colonna intera,
   non i suoi pezzi, resta in vista mentre si legge. Solo se ci sta nello schermo, se no il fondo non si vedrebbe */
@media (min-width: 782px) and (min-height: 700px) {
	.wp-block-column:has(> .scheda-corsa--largo) { position: sticky; top: 1.5rem; align-self: flex-start; }
}

/* ------------------------------------------------------------------
   Segui la corsa
   ------------------------------------------------------------------ */

.segui { display: flex; flex-direction: column; gap: 14px; }
.segui__titolo { margin: 0; font-family: var(--b-titoli); font-size: 1.75rem; font-weight: 600; line-height: 1.1; }
.segui__titolo em { font-weight: 500; }
.segui__elenco { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--b-testo); }
.segui__elenco li { border-bottom: 1px solid var(--b-filo); }
.segui__elenco a,
.segui__tv {
	display: grid;
	grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto;
	gap: 4px 16px;
	align-items: baseline;
	padding: 14px 0;
	color: var(--b-testo);
	text-decoration: none;
}
.segui__elenco a:hover strong { text-decoration: underline; }
.segui__elenco span { color: var(--b-secondario); font-size: 0.9375rem; }
.segui__freccia { font-family: var(--b-mono); }
@media (max-width: 480px) {
	.segui__elenco a, .segui__tv { grid-template-columns: minmax(0, 1fr) auto; }
	.segui__elenco a span:not(.segui__freccia), .segui__tv span { grid-column: 1; }
}

/* ------------------------------------------------------------------
   Prossime corse
   ------------------------------------------------------------------ */

.prossime { display: flex; flex-direction: column; gap: 14px; }
.prossime__capo { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.prossime__titolo { margin: 0; font-family: var(--b-titoli); font-size: 2rem; font-weight: 600; }
.prossime__tutte { font-family: var(--b-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--b-testo); }
.prossime__elenco { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--b-testo); }
.prossime__corsa {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr) auto;
	gap: 4px 16px;
	align-items: baseline;
	padding: 14px 0;
	border-bottom: 1px solid var(--b-filo);
}
.prossime__date { font-family: var(--b-mono); font-size: 0.875rem; font-weight: 600; }
.prossime__nome {
	font-family: var(--b-titoli);
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--b-testo);
	text-decoration: none;
	min-height: 0;
}
.prossime__nome:hover { text-decoration: underline; }
.prossime__etichetta { grid-column: 2; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--b-secondario); }
.prossime__stato {
	grid-column: 3;
	grid-row: 1;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	font-weight: 600;
	padding: 4px 8px;
	background: var(--b-fluo);
	color: var(--b-su-fluo);
	white-space: nowrap;
}
@media (max-width: 480px) {
	.prossime__corsa { grid-template-columns: minmax(0, 1fr) auto; }
	.prossime__date { grid-column: 1; }
	.prossime__nome, .prossime__etichetta { grid-column: 1 / -1; }
	.prossime__stato { grid-column: 2; }
}

/* ------------------------------------------------------------------
   Articolo: percorso, firma, condividi, autore, da leggere
   ------------------------------------------------------------------ */

/* Il percorso del pezzo sono le briciole (inc/navigazione.php): lo stile è quello delle briciole, qui sotto */

/* ------------------------------------------------------------------
   Le briciole, in tutte le pagine (fagianata_briciole_html()): Geist
   Mono, la pagina in cui si è più scura. Ogni voce è alta 44 px; il
   margine negativo la fa uscire sopra e sotto senza spostare la pagina.
   Sulle fasce d'asfalto (briciole--scura) i grigi delle fasce.
   ------------------------------------------------------------------ */

.briciole {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 8px;
	margin: 0;
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--cicl-muted, #5A6069);
}
.briciole a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; color: inherit; text-decoration: none; }
.briciole a:hover { color: var(--cicl-cobalt, #2846F0); text-decoration: underline; text-underline-offset: 0.25em; }
.briciole [aria-current] { color: var(--cicl-text, #0D0F12); font-weight: 600; }
.pagina__capo .briciole { margin-bottom: 20px; }
.briciole--scura { color: var(--cicl-band-text, #C3C8CF); }
.briciole--scura a:hover { color: var(--cicl-band-strong, #F4F5F2); }
.briciole--scura [aria-current] { color: var(--cicl-band-strong, #F4F5F2); }
.briciole--scura .briciole__tra { color: var(--cicl-band-muted, #7D848E); }

.firma {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	align-items: center;
	padding: 18px 0;
	border-top: 1px solid var(--b-filo);
	border-bottom: 1px solid var(--b-filo);
	font-size: 0.875rem;
}
.firma__chi { display: inline-flex; gap: 12px; align-items: center; color: var(--b-testo); text-decoration: none; min-height: 0; line-height: 1.3; }
.firma__chi:hover strong { text-decoration: underline; }
.firma__ruolo { color: var(--b-secondario); font-size: 0.8125rem; }
.firma__quando { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--b-secondario); }
.firma__lampo { flex-basis: 100%; margin: 0; color: var(--b-secondario); font-size: 0.875rem; line-height: 1.4; }

.condividi {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	padding: 18px 0;
	border-top: 2px solid var(--b-testo);
	border-bottom: 1px solid var(--b-filo);
}
.condividi__etichetta { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); margin-right: 8px; }
.condividi a,
.condividi button {
	height: 40px;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--b-filo);
	border-radius: 20px;
	display: inline-flex;
	align-items: center;
	background: transparent;
	color: var(--b-testo);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
.condividi a:hover,
.condividi button:hover { border-color: var(--b-testo); }
.condividi button[hidden] { display: none; }

/* Segui la fagIAnata (blocco seguici): sotto la foto di apertura, i posti dove ritrovarci.
   Nebbia, il fagiano del marchio, pulsanti a pillola alti 44px; al passaggio il bordo scuro, come «Condividi» (il fluo del blocco è già nella IA del marchio) */
.seguici {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 24px;
	margin-top: 1.75rem;
	padding: 14px 20px;
	background: var(--cicl-surface);
}
.seguici__invito { display: flex; align-items: center; gap: 12px; margin: 0; }
.seguici .marchio__fagiano { width: 52px; height: auto; flex-shrink: 0; color: var(--cicl-text); }
.seguici__etichetta {
	font-family: var(--cicl-font-numeri);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cicl-muted);
	line-height: 1.3;
}
.seguici__marchio {
	margin: 0 0.2em;
	font-family: var(--cicl-font-titoli);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--cicl-text);
}
.seguici__servizi { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.seguici__pulsante {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px 0 14px;
	border: 1px solid var(--cicl-line);
	border-radius: 22px;
	background: var(--cicl-bg);
	color: var(--cicl-text);
	font-family: var(--cicl-font-testo);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}
.seguici__pulsante:hover { border-color: var(--cicl-text); }
.seguici__pulsante svg { width: 18px; height: 18px; flex-shrink: 0; }
@media (max-width: 480px) {
	.seguici { padding: 14px 16px; }
	.seguici .marchio__fagiano { width: 44px; }
}

.autore {
	display: flex;
	gap: 18px;
	align-items: center;
	padding: 22px;
	background: var(--cicl-surface, #F2F3F0);
	color: var(--b-testo);
	text-decoration: none;
}
.autore:hover .autore__nome { text-decoration: underline; }
.autore__testo { display: flex; flex-direction: column; gap: 3px; }
.autore__sopra { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); }
.autore__nome { font-family: var(--b-titoli); font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.autore__ruolo { font-size: 0.9375rem; color: var(--b-secondario); }

.da-leggere__titolo { margin: 0 0 1.25rem; font-family: var(--b-titoli); font-size: 2rem; font-weight: 600; }
.da-leggere__elenco {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 0 32px;
	border-top: 2px solid var(--b-testo);
}
.da-leggere__elenco a {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 0;
	border-bottom: 1px solid var(--b-filo);
	color: var(--b-testo);
	text-decoration: none;
}
.da-leggere__elenco a:hover .da-leggere__nome { text-decoration: underline; }
.da-leggere__sezione { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--cicl-muted, #5A6069); font-weight: 600; }
.da-leggere__nome { font-family: var(--b-titoli); font-size: 1.375rem; font-weight: 600; line-height: 1.2; }

/* ------------------------------------------------------------------
   Newsletter
   ------------------------------------------------------------------ */

.iscrizione { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; }
.iscrizione--fascia {
	box-sizing: border-box;
	background: var(--cicl-surface, #F2F3F0);
	border-top: 1px solid var(--b-filo);
	/* la percentuale qui è sulla colonna del sito, già senza i margini laterali: si rimettono */
	padding: 56px max(var(--wp--style--root--padding-left, 1.25rem), calc((100% - 1240px) / 2 + var(--wp--style--root--padding-left, 1.25rem)));
	scroll-margin-top: 20px;
}
.iscrizione--articolo { border: 2px solid var(--b-testo); padding: 24px; }
.iscrizione__testo { flex: 1 1 26rem; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.iscrizione__testo p { margin: 0; color: var(--cicl-body, #3A3F46); font-size: 1.0625rem; line-height: 1.5; }
.iscrizione__sopra { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); }
.iscrizione__titolo { margin: 0; font-family: var(--b-titoli); font-size: 2.5rem; font-weight: 600; line-height: 1.05; }
.iscrizione__invito { font-family: var(--b-titoli); font-size: 1.5rem !important; line-height: 1.2 !important; color: var(--b-testo) !important; font-weight: 600; }
/* Il pulsante è un link a Substack (in una nuova scheda): nessun modulo, nessuna email sul sito */
.iscrizione__azione { flex: 1 1 18rem; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.iscrizione__pulsante {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 28px;
	box-sizing: border-box;
	background: var(--b-testo);
	color: var(--cicl-bg, #FFFFFF);
	font-weight: 700;
	font-size: 1.0625rem;
	text-decoration: none;
}
.iscrizione__pulsante:hover, .iscrizione__pulsante:focus-visible { background: var(--cicl-cobalt, #2846F0); color: var(--cicl-bg, #FFFFFF); }
.iscrizione__nota { margin: 0; font-size: 0.8125rem; color: var(--b-secondario); }
/* Il campo esca per i robot: fuori dallo schermo, non dentro la pagina */
.iscrizione__esca { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ------------------------------------------------------------------
   Modulo dei contatti
   ------------------------------------------------------------------ */

.contatti { display: flex; flex-direction: column; gap: 18px; max-width: 46rem; scroll-margin-top: 20px; }
.contatti label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 0.9375rem; }
.contatti label span { font-weight: 400; color: var(--cicl-muted, #5A6069); }
.contatti input[type="text"],
.contatti input[type="email"],
.contatti textarea {
	border: 1px solid var(--cicl-text, #0D0F12);
	background: var(--cicl-bg, #FFFFFF);
	color: var(--cicl-text, #0D0F12);
	font: inherit;
	font-weight: 400;
	font-size: 1rem;
	padding: 12px 14px;
	border-radius: 0;
}
.contatti input[type="text"], .contatti input[type="email"] { height: 50px; box-sizing: border-box; }
.contatti__riga { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 18px; }
.contatti__motivi { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.contatti__motivi legend { font-weight: 600; font-size: 0.9375rem; margin-bottom: 8px; }
.contatti__motivi label {
	flex-direction: row;
	align-items: center;
	gap: 8px;
	font-weight: 500;
	border: 1px solid var(--cicl-line, #DEE1DC);
	border-radius: 22px;
	padding: 0 16px;
	min-height: 44px;
	cursor: pointer;
}
.contatti__motivi label:has(input:checked) { border-color: var(--cicl-text, #0D0F12); background: var(--cicl-text, #0D0F12); color: var(--cicl-bg, #FFFFFF); }
.contatti__motivi input { accent-color: var(--cicl-fluo, #D4FF3F); }
.contatti__nota { margin: 0; font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.contatti button {
	align-self: flex-start;
	height: 52px;
	padding: 0 28px;
	border: 0;
	background: var(--cicl-text, #0D0F12);
	color: var(--cicl-bg, #FFFFFF);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.contatti button:hover { background: var(--cicl-cobalt, #2846F0); color: #FFFFFF; }
.contatti__esito { margin: 0; padding: 12px 16px; font-weight: 600; background: var(--cicl-fluo, #D4FF3F); color: #0D0F12; }
.contatti__esito--errore { background: #FFE1DC; }

/* ------------------------------------------------------------------
   Prima pagina: le notizie e l'Ultim'ora
   ------------------------------------------------------------------ */

.notizie-home {
	padding-block: 3rem 3.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 40px 48px;
	align-items: start;
}
@media (max-width: 960px) {
	.notizie-home { grid-template-columns: minmax(0, 1fr); }
}
.notizie-home a { color: var(--b-testo); text-decoration: none; min-height: 0; }
.notizie-home a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }

.notizia-lead { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "sopra" "titolo" "foto" "sommario"; gap: 16px; align-content: start; }
.notizia-lead__sopra { grid-area: sopra; }
.notizia-lead__titolo { grid-area: titolo; }
.notizia-lead__foto { grid-area: foto; }
.notizia-lead__sommario { grid-area: sommario; }
/* Sullo schermo largo titolo e sommario a sinistra, la foto a destra: tutto nella prima schermata */
@media (min-width: 1100px) {
	.notizia-lead { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-areas: "sopra sopra" "titolo foto" "sommario foto"; column-gap: 32px; grid-template-rows: auto auto 1fr; }
	.notizia-lead .notizia-lead__titolo { font-size: clamp(2.4rem, 3.6vw, 3.6rem); }
	.notizia-lead .notizia-lead__foto img { aspect-ratio: 4 / 3; }
}
.notizia-lead__sopra { margin: 0; display: flex; gap: 12px; align-items: center; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; color: var(--b-secondario); }
.notizia-lead__sezione { background: var(--b-fluo); color: var(--b-su-fluo); font-weight: 600; padding: 6px 10px; }
.notizia-lead__titolo {
	margin: 0;
	font-family: var(--b-titoli);
	font-size: clamp(2.4rem, 5.2vw, 4.5rem);
	line-height: 0.98;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.notizia-lead__titolo em { font-weight: 500; }
.notizia-lead__sommario { margin: 0; font-size: 1.25rem; line-height: 1.45; color: var(--cicl-body, #2E3238); max-width: 44rem; }
.notizia-lead__foto img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

.notizie-home__seconde {
	margin-top: 36px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	border-top: 2px solid var(--b-testo);
	padding-top: 20px;
}
.notizia { display: flex; flex-direction: column; gap: 8px; }
.notizia__foto img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.notizia__sopra { margin: 0; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--b-secondario); }
.notizia__titolo { margin: 0; font-family: var(--b-titoli); font-size: 1.375rem; line-height: 1.15; font-weight: 600; }
/* Quattro notizie: in fila sullo schermo largo, una sotto l'altra sul telefono (mai tre più una da sola) */
@media (min-width: 1100px) {
	.notizie-home__seconde { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
	.notizie-home__seconde .notizia__titolo { font-size: 1.2rem; }
}
@media (max-width: 560px) {
	.notizie-home__seconde { grid-template-columns: minmax(0, 1fr); }
}

.notizie-home__ultimora { border-top: 2px solid var(--b-testo); padding-top: 14px; }
.ultimora__titolo {
	margin: 0 0 6px;
	display: flex;
	gap: 10px;
	align-items: center;
	font-family: var(--b-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ultimora__punto { width: 10px; height: 10px; border-radius: 50%; background: var(--b-fluo); box-shadow: 0 0 0 3px var(--b-testo); }
/* Il punto batte solo se la colonna è viva (una notizia delle ultime ventiquattro ore), se la diretta è in corso o
   nel richiamo di Oggi (che lo mette solo prima dell'arrivo) */
@media (prefers-reduced-motion: no-preference) {
	:is(.ultimora--viva, .diretta--viva, .oggi-richiamo) .ultimora__punto { animation: ultimora-batte 2.4s ease-in-out infinite; }
}
@keyframes ultimora-batte { 50% { opacity: 0.35; } }
.ultimora__elenco { list-style: none; margin: 0; padding: 0; }
.ultimora__elenco li {
	display: grid;
	grid-template-columns: 3.6rem minmax(0, 1fr);
	gap: 10px;
	padding: 12px 0;
	border-bottom: 1px solid var(--b-filo);
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 600;
}
.ultimora__elenco time { font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; color: var(--cicl-muted, #5A6069); padding-top: 2px; }
/* Il livello della corsa sotto il titolo: il nome in mono e un quadratino con i colori della scheda (inc/livelli.php) */
.ultimora__voce { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ultimora__livello {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.ultimora__segno {
	flex-shrink: 0;
	width: 9px;
	height: 9px;
	background: linear-gradient(to right, var(--livello-colori, var(--b-testo) 0 100%));
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--b-testo) 18%, transparent);
}
.ultimora__tutte { display: inline-block; margin-top: 14px; font-family: var(--b-mono); font-size: 0.8125rem; letter-spacing: 0.06em; }
.ultimora__vuota { margin: 12px 0 0; color: var(--b-secondario); font-size: 0.9375rem; line-height: 1.5; }

/* ------------------------------------------------------------------
   Elenco di articoli
   ------------------------------------------------------------------ */

.elenco__capo { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.elenco__titolo { margin: 0; font-family: var(--b-titoli); font-size: 2.5rem; font-weight: 600; }
.elenco__tutti { font-family: var(--b-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--b-testo); }
.elenco a { color: var(--b-testo); text-decoration: none; min-height: 0; }
.elenco__nome a:hover { text-decoration: underline; }
.elenco--schede .elenco__voci { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 32px; }
.elenco--schede .elenco__voce { display: flex; flex-direction: column; gap: 10px; }
.elenco__foto { display: block; aspect-ratio: 3 / 2; background: #14171C; overflow: hidden; }
.elenco__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.elenco__sezione { margin: 0; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; font-weight: 600; color: var(--cicl-muted, #5A6069); }
.elenco__nome { margin: 0; font-family: var(--b-titoli); font-size: 1.6rem; line-height: 1.12; font-weight: 600; }
.elenco__sommario { margin: 0; color: var(--cicl-body, #3A3F46); font-size: 1rem; line-height: 1.55; }
.elenco__data { margin: 0; font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.elenco--titoli .elenco__voci { border-top: 2px solid var(--b-testo); }
.elenco--titoli .elenco__voce { display: flex; gap: 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--b-filo); }
.elenco--titoli .elenco__nome { font-size: 1.375rem; }

/* ------------------------------------------------------------------
   Il cronometro delle salite
   ------------------------------------------------------------------ */

.cronometro {
	background: var(--b-asfalto);
	color: var(--b-su-asfalto);
	padding: 28px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px 36px;
	margin-block: 2.5rem;
	font-size: 1rem;
	line-height: 1.5;
}
@media (max-width: 720px) { .cronometro { grid-template-columns: minmax(0, 1fr); padding: 22px; } }
.cronometro__capo { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; }
.cronometro__sopra { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-fluo); }
/* .cronometro davanti: dentro un articolo lo stile dei titoli del testo lo coprirebbe */
.cronometro .cronometro__nome { margin: 0; font-family: var(--b-titoli); font-size: 2.25rem; line-height: 1.05; font-weight: 600; color: var(--b-su-asfalto); }
.cronometro__dati { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-family: var(--b-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: #A7ADB6; }

.cronometro__modulo { display: flex; flex-direction: column; gap: 14px; }
.cronometro__modulo[hidden] { display: none; }
.cronometro__modulo label { display: flex; flex-direction: column; gap: 6px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: #A7ADB6; }
.cronometro__modulo input {
	height: 56px;
	padding: 0 14px;
	border: 1px solid #3A4049;
	background: #16191E;
	color: var(--b-su-asfalto);
	font-family: var(--b-mono);
	font-size: 1.75rem;
	border-radius: 0;
	width: 100%;
	box-sizing: border-box;
}
.cronometro__modulo input:focus { outline: 2px solid var(--b-fluo); outline-offset: 0; border-color: var(--b-fluo); }
.cronometro__unita { display: flex; align-items: center; gap: 10px; font-size: 1rem; color: var(--b-su-asfalto); }
.cronometro__unita input { flex: 1; }

.cronometro__esito { display: flex; flex-direction: column; gap: 6px; border-left: 4px solid var(--b-fluo); padding-left: 20px; }
.cronometro__esito[hidden], .cronometro__attesa[hidden] { display: none; }
.cronometro__attesa { margin: 0; align-self: center; border-left: 4px solid #3A4049; padding-left: 20px; color: #A7ADB6; font-size: 1.0625rem; }
.cronometro__wkg { margin: 0; display: flex; align-items: baseline; gap: 10px; }
.cronometro__valore { font-family: var(--b-mono); font-size: 4rem; line-height: 1; color: var(--b-fluo); }
.cronometro__misura { font-family: var(--b-mono); font-size: 0.875rem; color: #A7ADB6; }
.cronometro__intervallo { margin: 0; font-size: 1.0625rem; color: var(--b-su-asfalto-2); }
.cronometro__intervallo strong { font-family: var(--b-mono); color: var(--b-su-asfalto); }
.cronometro__altri { margin: 10px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--b-filo-scuro); }
.cronometro__altri div { background: var(--b-asfalto); padding: 10px 10px 10px 0; display: flex; flex-direction: column-reverse; gap: 2px; }
.cronometro__altri div + div { padding-left: 12px; }
.cronometro__altri dt { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: #A7ADB6; }
.cronometro__altri dd { margin: 0; font-family: var(--b-mono); font-size: 1.125rem; }

.cronometro__tabella { grid-column: 1 / -1; width: 100%; border-collapse: collapse; font-family: var(--b-mono); font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.cronometro__tabella caption { text-align: left; caption-side: top; padding-bottom: 8px; font-family: var(--cicl-font-testo, sans-serif); font-size: 0.875rem; font-variant-numeric: normal; color: #A7ADB6; } /* lo Schibsted tabulare staccava le virgole («vuole , a seconda») */
.cronometro__tabella th { text-align: left; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: #A7ADB6; border-bottom: 1px solid #3A4049; padding: 8px 0; }
.cronometro__tabella td { padding: 9px 0; border-bottom: 1px solid var(--b-filo-scuro); }
.cronometro__tabella td:first-child { color: var(--b-fluo); }

.cronometro__metodo { grid-column: 1 / -1; font-size: 0.875rem; color: var(--b-su-asfalto-2); }
.cronometro__metodo summary { cursor: pointer; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--b-su-asfalto); min-height: 44px; display: flex; align-items: center; }
.cronometro__metodo p { margin: 0.5rem 0 0; }

/* ------------------------------------------------------------------
   Corridori: scheda, palmarès, rosa (inc/corridori.php)
   ------------------------------------------------------------------ */

.scheda-corridore,
.palmares,
.rosa,
.trasparenza,
.campione,
.campioni,
.profilo {
	--b-asfalto: var(--cicl-band, #0D0F12);
	--b-su-asfalto: var(--cicl-band-strong, #F4F5F2);
	--b-su-asfalto-2: var(--cicl-band-text, #C3C8CF);
	--b-spento: var(--cicl-band-muted, #7D848E);
	--b-fluo: var(--cicl-fluo, #D4FF3F);
	--b-su-fluo: var(--cicl-on-fluo, #0D0F12);
	--b-testo: var(--cicl-text, #0D0F12);
	--b-secondario: var(--cicl-muted, #5A6069);
	--b-filo: var(--cicl-line, #DEE1DC);
	--b-nebbia: var(--cicl-surface, #F2F3F0);
	--b-cobalto: var(--cicl-cobalt, #2846F0);
	--b-mono: var(--cicl-font-numeri, ui-monospace, monospace);
	--b-titoli: var(--cicl-font-titoli, Georgia, serif);
}

/* La scheda (non «.corridore»: è la classe che WordPress dà a ogni corridore, anche nei risultati della ricerca) */
.scheda-corridore { display: flex; flex-direction: column; gap: 18px; }
.corridore__nome {
	margin: 0;
	font-family: var(--b-titoli);
	font-size: clamp(3rem, 8vw, 5.5rem);
	line-height: 0.95;
	font-weight: 600;
	letter-spacing: -0.025em;
}
.corridore__dati { margin: 0; display: flex; flex-wrap: wrap; gap: 12px 36px; }
.corridore__dati div { display: flex; flex-direction: column-reverse; gap: 4px; }
.corridore__dati dt {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.corridore__dati dd { margin: 0; font-family: var(--b-mono); font-size: 1.125rem; }
/* I link nel testo delle schede: il colore del testo, sottolineati sottili (il cobalto è la corsa vissuta) */
.corridore__dati a,
.corridore__nota a,
.palmares__fonte a,
.rosa__fonte a,
.rosa__nota a,
.rosa__tutta,
.campione__nota a,
.campioni__fonte a,
.profilo__nota a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.corridore__specialita { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.corridore__etichetta,
.rosa__etichetta {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	font-weight: 600;
	padding: 6px 10px;
	background: var(--b-nebbia);
}
.corridore__etichetta--prima { background: var(--b-fluo); color: var(--b-su-fluo); }
.corridore__nota { font-size: 0.8125rem; color: var(--b-secondario); }
.corridore__presentazione { border-top: 2px solid var(--b-testo); padding-top: 16px; max-width: 46rem; }
.corridore__presentazione h2 { margin: 0 0 12px; font-family: var(--b-titoli); font-size: 1.75rem; font-weight: 600; }
.corridore__firma { font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }

/* La trasparenza, uguale dovunque compaia */
.trasparenza {
	border: 2px solid var(--b-testo);
	padding: 18px 22px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	align-items: baseline;
}
.trasparenza p { margin: 0; flex: 999 1 420px; min-width: 0; line-height: 1.6; }
.trasparenza__sigla {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	font-weight: 600;
	text-transform: uppercase;
	padding: 4px 8px;
	background: var(--b-fluo);
	color: var(--b-su-fluo);
}

/* Il palmarès */
.palmares { display: flex; flex-direction: column; gap: 16px; }
.palmares__capo,
.rosa__capo {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	align-items: baseline;
	justify-content: space-between;
	border-top: 2px solid var(--b-testo);
	padding-top: 16px;
}
.palmares__capo h2,
.rosa__capo h2 { margin: 0; font-family: var(--b-titoli); font-size: 2.25rem; font-weight: 600; }
.palmares__capo span,
.rosa__capo span { font-family: var(--b-mono); font-size: 0.75rem; text-transform: uppercase; color: var(--b-secondario); }
.palmares__scorre,
.rosa__scorre { overflow-x: auto; }
/* cinque colonne di numeri: non su tutti i 1240 px */
.palmares__scorre { max-width: 52rem; }
.palmares__tabella,
.rosa__tabella { width: 100%; min-width: 600px; border-collapse: collapse; font-family: var(--b-mono); font-size: 0.9375rem; }
.palmares__tabella th,
.palmares__tabella td,
.rosa__tabella th,
.rosa__tabella td { padding: 12px 8px; text-align: right; border-bottom: 1px solid var(--b-filo); }
.palmares__tabella thead th,
.rosa__tabella thead th {
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--b-secondario);
	border-bottom-color: var(--b-testo);
}
.palmares__tabella th:first-child,
.rosa__tabella th:first-child,
.rosa__tabella td:nth-child(2),
.rosa__tabella td:nth-child(4) { text-align: left; }
.palmares__forte,
.rosa__forte { font-weight: 600; }
.palmares__anno { border-bottom: 1px solid var(--b-filo); }
.palmares__anno summary {
	cursor: pointer;
	padding: 14px 0;
	font-family: var(--b-mono);
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	font-weight: 600;
	min-height: 44px;
	box-sizing: border-box;
}
.palmares__vittorie { margin: 0 0 12px; padding: 0; list-style: none; }
.palmares__vittorie li {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	align-items: baseline;
	padding: 12px 0;
	border-top: 1px solid var(--b-filo);
}
.palmares__data { font-family: var(--b-mono); font-size: 0.8125rem; color: var(--b-secondario); min-width: 72px; }
.palmares__corsa { flex: 999 1 240px; min-width: 0; font-size: 1.0625rem; font-weight: 600; }
/* La vittoria porta alla scheda della corsa, quando c'è: 44 px da toccare senza allargare la riga */
a.palmares__corsa { position: relative; color: var(--b-testo); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a.palmares__corsa::after { content: ""; position: absolute; inset: -10px 0; }
a.palmares__corsa:hover { text-decoration-thickness: 2px; }
.palmares__tipo { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; font-weight: 600; color: var(--b-secondario); }
.palmares__fonte,
.rosa__fonte { margin: 0; font-size: 0.875rem; color: var(--b-secondario); }
.palmares__nota { margin: 0; font-size: 0.8125rem; line-height: 1.5; color: var(--b-secondario); max-width: 46rem; }

/* La rosa: la fascia scura in testa, come il calendario */
.rosa__fascia { background: var(--b-asfalto); color: var(--b-su-asfalto); }
.rosa__dentro,
.rosa__campioni,
.rosa__corpo {
	max-width: 1240px;
	margin: 0 auto;
	padding-left: var(--wp--style--root--padding-left, 1.25rem);
	padding-right: var(--wp--style--root--padding-right, 1.25rem);
	box-sizing: content-box;
}
.rosa__dentro {
	padding-top: 56px;
	padding-bottom: 48px;
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: space-between;
	align-items: flex-end;
}
.rosa__titolo { display: flex; flex-direction: column; gap: 14px; flex: 999 1 520px; min-width: 0; }
.rosa__titolo h1 {
	margin: 0;
	font-family: var(--b-titoli);
	font-size: clamp(3rem, 7vw, 5.25rem);
	line-height: 0.96;
	font-weight: 600;
	letter-spacing: -0.025em;
}
.rosa__sigla {
	margin: 0;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.rosa__fascia .rosa__sigla { color: var(--b-fluo); }
.rosa__intro { margin: 0; font-size: 1.1875rem; line-height: 1.5; color: var(--b-su-asfalto-2); max-width: 680px; }
.rosa__numeri { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; flex: 1 1 300px; }
.rosa__numeri div { display: flex; flex-direction: column-reverse; gap: 6px; }
.rosa__numeri dt {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--b-su-asfalto-2);
}
.rosa__numeri dd { margin: 0; font-family: var(--b-mono); font-size: 2.125rem; }
.rosa__acceso { color: var(--b-fluo); }
/* I primi dieci al mondo fra la testata e la ricerca (attributo «campioni» della rosa) */
.rosa__campioni .campioni--compatta { padding-bottom: 8px; }
.rosa__corpo { padding-top: 32px; padding-bottom: 64px; display: flex; flex-direction: column; gap: 28px; }
/* /corridori/: la ricerca in testa, poi gli italiani, l'indice dei cognomi, le squadre per categoria, le rose */
.rosa__corpo--cerca { padding-bottom: 0; }
.rosa__blocco { display: flex; flex-direction: column; gap: 16px; }
.rosa__due { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); gap: 24px 48px; }
.rosa__due > * { min-width: 0; }
.rosa__sotto { margin: 0 0 4px; font-family: var(--b-titoli); font-size: 1.375rem; font-weight: 600; }
.rosa__lettere { display: flex; flex-wrap: wrap; gap: 4px; }
.rosa__lettere a,
.rosa__lettere span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	box-sizing: border-box;
	font-family: var(--b-mono);
	font-size: 0.9375rem;
	font-weight: 600;
}
.rosa__lettere a { border: 1px solid var(--b-filo); color: var(--b-testo); text-decoration: none; }
.rosa__lettere a:hover { border-color: var(--b-testo); }
.rosa__lettere a[aria-current] { background: var(--b-fluo); color: var(--b-su-fluo); border-color: var(--b-fluo); }
.rosa__lettere span { color: var(--b-filo); }
.rosa__categoria { border-top: 1px solid var(--b-filo); }
.rosa__categoria :is(h3, h4),
.rosa__categoria summary {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	font-family: var(--b-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
}
.rosa__categoria summary { cursor: pointer; list-style: none; }
.rosa__categoria summary::-webkit-details-marker { display: none; }
.rosa__categoria summary::after { content: "+"; margin-left: auto; font-size: 1rem; }
.rosa__categoria[open] summary::after { content: "−"; }
.rosa__categoria :is(h3, h4) span,
.rosa__categoria summary span { font-weight: 400; color: var(--b-secondario); }
.rosa__nomi { list-style: none; margin: 0 0 14px; padding: 0; columns: 2 12rem; column-gap: 24px; }
.rosa__nomi li { break-inside: avoid; overflow-wrap: anywhere; }
.rosa__nomi a { display: flex; align-items: center; min-height: 44px; color: var(--b-testo); text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-color: var(--b-filo); }
.rosa__nomi a:hover { text-decoration-color: currentColor; }
@media (max-width: 600px) {
	/* al telefono i nomi delle squadre in due colonne anche loro */
	.rosa__nomi { columns: 2; column-gap: 14px; font-size: 0.9375rem; line-height: 1.25; }
}
.rosa__gruppo { margin: 16px 0 0; font-family: var(--b-titoli); font-size: 2.5rem; font-weight: 600; }
.rosa__squadra { display: flex; flex-direction: column; gap: 16px; }
.rosa__testa {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	align-items: baseline;
	justify-content: space-between;
	border-top: 2px solid var(--b-testo);
	padding-top: 14px;
}
.rosa__testa h3 { margin: 0; font-family: var(--b-titoli); font-size: 2rem; line-height: 1.05; font-weight: 600; }
.rosa__testa h3 a { color: var(--b-testo); text-decoration: none; }
/* Un corridore in una riga: il nome, e sotto paese, anno e specialità in Geist Mono; le righe in colonne */
.rosa__righe {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
	column-gap: 24px;
}
.rosa__righe li { border-bottom: 1px solid var(--b-filo); min-width: 0; }
.rosa__corridore {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	box-sizing: border-box;
	min-height: 52px;
	padding: 7px 0;
	color: var(--b-testo);
	text-decoration: none;
}
.rosa__corridore:hover .rosa__nome { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.rosa__nome { font-family: var(--b-titoli); font-size: 1.125rem; line-height: 1.15; font-weight: 600; }
.rosa__riga { font-family: var(--b-mono); font-size: 0.6875rem; letter-spacing: 0.06em; color: var(--b-secondario); }
@media (max-width: 600px) {
	/* al telefono due colonne: otto corridori in quattro righe */
	.rosa__righe { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
	.rosa__nome { font-size: 1rem; }
	.rosa__riga { letter-spacing: 0.02em; }
}
.rosa__tabella th a { font-family: var(--b-titoli); font-size: 1.1875rem; font-weight: 600; color: var(--b-testo); text-decoration: none; }
.rosa__nota { background: var(--b-nebbia); padding: 24px; line-height: 1.6; color: var(--b-secondario); }

/* La stagione di una squadra (blocchi/rosa/squadra.php): il fluo resta sulle vittorie, il resto della fascia è spento */
.stagione__occhiello { margin: 0; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; color: var(--b-su-asfalto-2); }
.rosa__fascia .stagione__sigla { color: var(--b-su-asfalto-2); }
.stagione__numeri { grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); flex-basis: 600px; align-items: end; }
.stagione__numeri div { min-width: 0; }
.rosa__numeri.stagione__numeri dt { line-height: 1.35; white-space: normal; }
.stagione__vittorie { margin: 0; }
.stagione__vittorie li:first-child,
.stagione__testa li:first-child,
.stagione__fagiano li:first-child { border-top: 0; }
.stagione__testa,
.stagione__fagiano { margin: 0; }
.stagione__chi { font-size: 0.9375rem; color: var(--b-secondario); }
.stagione__chi a { color: var(--b-testo); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.stagione__tutte { border-top: 1px solid var(--b-filo); }
.stagione__rosa { min-width: 760px; }
.stagione__rosa .stagione__migliore { text-align: left; min-width: 15rem; }
.stagione__rosa td.stagione__migliore { font-family: var(--cicl-font-testo, sans-serif); font-size: 0.9375rem; line-height: 1.35; }
.stagione__quando { display: block; font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.stagione__frase { flex: 999 1 20rem; min-width: 0; line-height: 1.45; }
.stagione__probabilita { font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; }
.stagione__chiedi { background: var(--b-nebbia); padding: 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.stagione__chiedi h2 { margin: 0; font-family: var(--b-titoli); font-size: 1.75rem; font-weight: 600; }
.stagione__domanda { margin: 0; font-size: 1.1875rem; line-height: 1.5; max-width: 46rem; }
.stagione__chiedi .chiedi { text-decoration: none; white-space: normal; }
@media (max-width: 599px) {
	.rosa__dentro { padding-top: 40px; padding-bottom: 36px; }
	.stagione__numeri { grid-template-columns: repeat(2, minmax(0, 1fr)); flex-basis: 100%; }
	.stagione__numeri dd { font-size: 1.75rem; }
	.stagione__chiedi { padding: 18px 16px; }
}

/* ---------------------------------------------------------------------------
 * Lingua: IT · EN nell'intestazione
 * ------------------------------------------------------------------------ */
.lingua {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
}
.lingua .lingua__voce { display: inline-flex; align-items: center; min-height: 44px; color: var(--b-secondario); text-decoration: none; }
.lingua a.lingua__voce:hover,
.lingua a.lingua__voce:focus-visible { color: var(--b-testo); text-decoration: underline; }
.lingua .lingua__voce--qui { color: var(--b-testo); font-weight: 600; }
.lingua__tra { color: var(--b-secondario); }

/* ---------------------------------------------------------------------------
 * Chi può vincere: probabilità con intervallo
 * ------------------------------------------------------------------------ */
.pronostico { margin: 2rem 0; }
.pronostico__avviso {
	margin: 0 0 1rem;
	padding: 0.6rem 0.9rem;
	border-left: 3px solid var(--b-fluo);
	background: var(--cicl-surface, #F2F3F0);
	font-size: 0.9rem;
}
.pronostico__tabella { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.pronostico__tabella th,
.pronostico__tabella td { padding: 0.55rem 0.5rem; border-bottom: 1px solid var(--b-filo); text-align: right; vertical-align: baseline; }
.pronostico__tabella thead th {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.pronostico__tabella th:first-child { text-align: left; }
.pronostico__tabella tbody th { font-weight: 600; }
.pronostico__vittoria {
	font-family: var(--b-mono);
	background: linear-gradient(to left, color-mix(in srgb, var(--b-fluo) 55%, transparent) var(--quota), transparent var(--quota));
}
.pronostico__secondaria { font-family: var(--b-mono); color: var(--b-secondario); }
.pronostico__intervallo { display: block; font-size: 0.75rem; color: var(--b-secondario); }
.pronostico__altri { margin: 0.75rem 0 0; font-size: 0.9rem; color: var(--b-secondario); }
.pronostico .pronostico__metodo { margin-top: 1rem; font-family: var(--cicl-font-testo, system-ui, sans-serif); font-size: 0.85rem; line-height: 1.5; letter-spacing: normal; text-transform: none; color: var(--b-secondario); }
@media (max-width: 560px) {
	.pronostico__tabella .pronostico__secondaria { display: none; }
}

/* ---------------------------------------------------------------------------
 * Il vento sul finale
 * ------------------------------------------------------------------------ */
.vento { margin: 2rem 0; }
/* Al telefono la tabella scorre dentro il suo riquadro, non la pagina; e le parole non si spezzano lettera per
   lettera (le colonne di WordPress mettono word-break: break-word su tutto quello che contengono) */
.vento__scorri { overflow-x: auto; }
.vento__tabella { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.vento__tabella th,
.vento__tabella td { padding: 0.55rem 0.5rem; border-bottom: 1px solid var(--b-filo); text-align: left; vertical-align: baseline; overflow-wrap: normal; word-break: normal; }
.vento__tabella tbody th { min-width: 7.5rem; }
.vento__tabella thead th {
	font-family: var(--b-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.vento__tabella tbody th { font-weight: 650; }
.vento__tabella abbr { text-decoration: none; }
.vento__km,
.vento__raffiche { display: block; font-size: 0.75rem; font-weight: 400; color: var(--b-secondario); }
.vento__ora,
.vento__vento,
.vento__gradi,
.vento__pioggia { font-family: var(--b-mono); font-size: 0.9rem; white-space: nowrap; }
.vento__freccia { width: 0.9em; height: 0.9em; vertical-align: -0.1em; margin-right: 0.25rem; color: var(--cicl-text, #0D0F12); }
.vento__percorso { margin-top: 1rem; }
.vento__percorso summary { cursor: pointer; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; min-height: 44px; padding-block: 13px; box-sizing: border-box; }
.vento .vento__fonte { margin-top: 1rem; font-family: var(--cicl-font-testo, system-ui, sans-serif); font-size: 0.85rem; line-height: 1.5; letter-spacing: normal; text-transform: none; color: var(--b-secondario); }
@media (max-width: 560px) {
	.vento__tabella .vento__pioggia,
	.vento__tabella thead th:last-child { display: none; }
	/* al telefono le quattro colonne stanno nei 343 px senza scorrere, se il vento non ha l'etichetta lunga */
	.vento__tabella th,
	.vento__tabella td { padding-inline: 0.3rem; }
	.vento__tabella thead th { font-size: 0.75rem; letter-spacing: 0.02em; }
	.vento__tabella tbody th { min-width: 6rem; font-size: 0.95rem; }
	.vento__ora,
	.vento__vento,
	.vento__gradi { font-size: 0.78rem; }
}
@media (max-width: 480px) {
	/* Sul telefono le etichette dei numeri stanno su una riga, così i numeri restano allineati */
	.rosa__numeri { gap: 14px; }
	.rosa__numeri dt { letter-spacing: 0.04em; white-space: nowrap; }
	.rosa__numeri dd { font-size: 1.75rem; }
}

/* Elenco dei corridori: la ricerca e il collegamento alla rosa intera */
/* Lo stesso campo della ricerca del sito (.ricerca in style.css): un riquadro ad angoli vivi con il pulsante dentro */
.rosa__cerca { display: flex; flex-direction: column; gap: 8px; max-width: 760px; }
.rosa__cerca label { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); }
.rosa__campo { display: flex; border: 1px solid var(--b-testo); }
.rosa__cerca input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	height: 52px;
	padding: 0 16px;
	border: 0;
	border-radius: 0;
	font: inherit;
	font-size: 1rem;
	background: var(--cicl-bg, #FFFFFF);
	color: var(--b-testo);
}
.rosa__cerca button {
	flex: none;
	padding: 0 22px;
	border: 0;
	border-radius: 0;
	background: var(--b-testo);
	color: var(--cicl-bg, #FFFFFF);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.rosa__tutta { align-self: flex-start; font-weight: 600; }

/* La guida della corsa: profilo, salite, orari, regolamento */
.guida { margin-block: 3rem; }
.guida__titolo { font-family: var(--wp--preset--font-family--titoli); font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.05; margin: 0 0 1.25rem; }
.guida__titolo em { font-style: italic; }
.guida__sezione { color: var(--cicl-text); margin: 2.25rem 0 .9rem; }
.guida__intro, .guida__fonte { color: var(--cicl-muted); font-size: .92rem; }
.guida__fonte a { margin-left: .4em; }
.guida__scorri { overflow-x: auto; }
.guida__tabella { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: .92rem; }
.guida__tabella thead th { white-space: nowrap; }
.guida__tabella th, .guida__tabella td { padding: .5rem .6rem; border-bottom: 1px solid var(--cicl-line); text-align: left; vertical-align: top; }
.guida__tabella thead th { font-family: var(--wp--preset--font-family--numeri); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: var(--cicl-muted); }
.guida__tabella tbody th { font-family: var(--cicl-font-testo); font-weight: 650; min-width: 11rem; }
.guida__numero, .guida__ora { font-family: var(--wp--preset--font-family--numeri); white-space: nowrap; text-align: right !important; }
.guida__ora--media { font-weight: 700; color: var(--cicl-text); }
.guida__nota { display: block; font-weight: 400; color: var(--cicl-muted); font-size: .8rem; }
.guida__tabella--fitta th, .guida__tabella--fitta td { padding-block: .3rem; }
.guida__riga-forte th { color: var(--cicl-text); }
.guida__tutta { margin-top: 1rem; }
.guida__tutta summary { cursor: pointer; font-family: var(--wp--preset--font-family--numeri); font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
.guida__regole { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--cicl-line); }
.guida__regole div { padding: .75rem .5rem; border-bottom: 1px solid var(--cicl-line); }
.guida__regole dt { font-family: var(--wp--preset--font-family--numeri); font-size: 0.75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--cicl-muted); }
.guida__regole dd { margin: .2rem 0 0; }

/* Gli iscritti */
.iscritti { margin-block: 3rem; }
.iscritti__titolo { font-family: var(--wp--preset--font-family--titoli); font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 .5rem; }
.iscritti__nota { color: var(--cicl-muted); font-size: .92rem; margin-bottom: 1.5rem; }
/* L'elenco degli iscritti si apre con un clic: al telefono sono 175 righe prima del resto della pagina */
.iscritti__tutti > summary {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--b-testo);
	font-family: var(--b-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	list-style: none;
}
.iscritti__tutti > summary::-webkit-details-marker { display: none; }
.iscritti__tutti > summary::after { content: "+"; margin-left: 10px; font-weight: 600; }
.iscritti__tutti[open] > summary::after { content: "−"; }
.iscritti__tutti[open] > summary { margin-bottom: 20px; }
.iscritti__cerca { margin: 0 0 1.25rem; max-width: 26rem; }
.iscritti__cerca label { display: block; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.iscritti__cerca input { width: 100%; box-sizing: border-box; font: inherit; font-size: 1.125rem; padding: 10px 12px; border: 1px solid var(--cicl-text, #0D0F12); border-radius: 0; background: var(--cicl-bg, #fff); color: var(--cicl-text, #0D0F12); }
.iscritti__cerca input:focus-visible { outline: 3px solid var(--cicl-fluo, #D4FF3F); outline-offset: 1px; }
.iscritti__esito { margin: 6px 0 0; font-size: .9rem; color: var(--cicl-muted); min-height: 1.2em; }
.iscritti__elenco li[hidden], .iscritti__squadra[hidden] { display: none; }
.iscritti__griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.25rem 1.5rem; }
.iscritti__nome-squadra { font-size: .95rem; font-weight: 700; margin: 0 0 .4rem; padding-bottom: .35rem; border-bottom: 2px solid var(--cicl-text); }
.iscritti__elenco { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.iscritti__elenco li { display: grid; grid-template-columns: 2.2em 1fr auto; gap: .4rem; padding: .18rem 0; }
.iscritti__numero, .iscritti__paese { font-family: var(--wp--preset--font-family--numeri); color: var(--cicl-muted); font-size: .8rem; }

/* Spazio AI: la fascia scura con i modelli e le previsioni */
.spazio-ai { background: var(--cicl-band); color: var(--cicl-band-text); padding: clamp(1.5rem, 4vw, 2.5rem); margin-block: 3rem; }
.spazio-ai__etichetta { display: inline-block; margin: 0; font-family: var(--wp--preset--font-family--numeri); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--cicl-band-text); }
.spazio-ai__titolo { font-family: var(--wp--preset--font-family--titoli); font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.05; color: var(--cicl-band-strong); margin: .75rem 0 1rem; }
.spazio-ai__sezione { color: var(--cicl-band-strong); margin: 2rem 0 .9rem; }
.spazio-ai__passi { margin: 0; padding-left: 1.25rem; display: grid; gap: .5rem; line-height: 1.55; }
.spazio-ai__testo, .spazio-ai__nota { line-height: 1.6; margin: .75rem 0 0; }
.spazio-ai__nota { font-size: .85rem; color: var(--cicl-band-muted); }
.spazio-ai__scenari { display: grid; gap: .9rem; }
.spazio-ai__scenario { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(8rem, 2fr) auto; gap: .9rem; align-items: center; }
.spazio-ai__nome { color: var(--cicl-band-strong); font-weight: 600; }
.spazio-ai__barra { position: relative; height: .7rem; background: var(--cicl-band-line); }
.spazio-ai__intervallo { position: absolute; top: 0; bottom: 0; background: color-mix(in srgb, var(--cicl-fluo) 45%, transparent); }
.spazio-ai__punto { position: absolute; top: -.25rem; width: .25rem; height: 1.2rem; background: var(--cicl-fluo); transform: translateX(-50%); }
.spazio-ai__valore { font-family: var(--wp--preset--font-family--numeri); font-size: .85rem; color: var(--cicl-band-strong); white-space: nowrap; }
.spazio-ai__scorri { overflow-x: auto; }
.spazio-ai__tabella { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: .9rem; }
.spazio-ai__tabella th, .spazio-ai__tabella td { text-align: left; padding: .55rem .5rem; border-bottom: 1px solid var(--cicl-band-line); vertical-align: top; }
.spazio-ai__tabella thead th { font-family: var(--wp--preset--font-family--numeri); font-size: 0.75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--cicl-band-muted); font-weight: 500; }
.spazio-ai__tabella tbody th { color: var(--cicl-band-strong); font-weight: 600; min-width: 11rem; }
.spazio-ai__squadra { display: block; font-weight: 400; font-size: .8rem; color: var(--cicl-band-muted); }
.spazio-ai__tabella td { font-family: var(--wp--preset--font-family--numeri); font-size: .82rem; }
.spazio-ai__metodo { margin: 1.75rem 0 0; font-family: var(--wp--preset--font-family--numeri); font-size: .82rem; letter-spacing: .06em; }
.spazio-ai__metodo { display: flex; flex-wrap: wrap; column-gap: 1.5rem; }
.spazio-ai__metodo a { color: var(--cicl-fluo); display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 640px) { .spazio-ai__scenario { grid-template-columns: 1fr; gap: .35rem; } }
.spazio-ai__checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.spazio-ai__checklist li { display: flex; gap: .6rem; align-items: baseline; }
.spazio-ai__spunta { font-family: var(--wp--preset--font-family--numeri); font-weight: 700; width: 1.2rem; flex: none; }
.spazio-ai__checklist .is-fatto .spazio-ai__spunta { color: var(--cicl-fluo); }
.spazio-ai__checklist .is-in-corso { color: var(--cicl-band-muted); }
.spazio-ai__previsioni { margin: 0; padding-left: 1.4rem; display: grid; gap: .5rem; line-height: 1.55; color: var(--cicl-band-strong); }
.spazio-ai__due { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; }
.spazio-ai__scenario-testo { border-top: 2px solid var(--cicl-fluo); padding-top: .6rem; }
.spazio-ai__scenario-testo p { margin: .35rem 0 0; line-height: 1.55; }
.spazio-ai__numero { font-family: var(--wp--preset--font-family--numeri); font-size: .8rem; letter-spacing: .08em; color: var(--cicl-fluo); }
.spazio-ai__modelli { margin: 0; display: grid; gap: .9rem; }
.spazio-ai__modelli dt { font-weight: 700; color: var(--cicl-band-strong); }
.spazio-ai__modelli dd { margin: .2rem 0 0; line-height: 1.55; }
.spazio-ai__tecnica { display: block; font-family: var(--wp--preset--font-family--numeri); font-weight: 400; font-size: .78rem; letter-spacing: .04em; color: var(--cicl-fluo); }

/* Il fagIAno: il sottotitolo, il sigillo del congelamento e lo scontrino dopo l'arrivo (laboratorio/fagiano.py) */
.spazio-ai__sottotitolo { margin: -.35rem 0 1.25rem; font-size: 1.0625rem; line-height: 1.45; color: var(--cicl-band-text); }
.spazio-ai__sigillo { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1.25rem; margin: 0 0 1.5rem; padding-top: .35rem; border-top: 1px solid var(--cicl-band-line); border-bottom: 1px solid var(--cicl-band-line); font-family: var(--wp--preset--font-family--numeri); font-size: .78rem; letter-spacing: .04em; line-height: 1.5; color: var(--cicl-band-text); }
.spazio-ai__sigillo code { font-family: inherit; font-size: inherit; color: var(--cicl-band-strong); background: none; padding: 0; }
.spazio-ai__sigillo a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cicl-fluo); }
.spazio-ai__scontrino { border-top: 2px solid var(--cicl-band-strong); border-bottom: 1px solid var(--cicl-band-line); margin: 0 0 .5rem; padding-bottom: 1.5rem; }
.spazio-ai__scontrino .spazio-ai__sezione { margin-top: 1rem; }
.spazio-ai__frase { font-family: var(--wp--preset--font-family--titoli); font-size: clamp(1.6rem, 3.6vw, 2.25rem); line-height: 1.12; color: var(--cicl-band-strong); margin: 0 0 .75rem; }
.spazio-ai__cifra { font-family: var(--wp--preset--font-family--numeri); font-size: .82em; font-weight: 600; font-variant-numeric: tabular-nums; background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: 0 .12em; }
.spazio-ai__scontrino .spazio-ai__scorri { margin-top: 1.25rem; }
.spazio-ai__tabella--stretta { min-width: 0; }
.spazio-ai__tabella--stretta th, .spazio-ai__tabella--stretta td { overflow-wrap: normal; word-break: normal; }
.spazio-ai__tabella--stretta tbody th { min-width: 0; }
.spazio-ai__tabella--stretta td { font-variant-numeric: tabular-nums; }
.spazio-ai__chi { white-space: nowrap; }
/* Al telefono lo scontrino sta nel riquadro: le tabelle larghe quanto il riquadro, senza la sfumatura di quelle che
   scorrono; nel podio la squadra sotto il nome, piccola, e le tre cifre in una riga con l'intestazione accanto */
@media (max-width: 600px) {
	.spazio-ai__scontrino .spazio-ai__scorri { padding-right: 0; -webkit-mask-image: none; mask-image: none; }
	.spazio-ai__tabella--stretta :is(th, td) { padding-left: 0; padding-right: .6rem; }
	.spazio-ai__tabella--stretta :is(th, td):last-child { padding-right: 0; }
	.spazio-ai__tabella--podio, .spazio-ai__tabella--podio tbody { display: block; }
	.spazio-ai__tabella--podio thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.spazio-ai__tabella--podio tr { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 1.1rem; row-gap: .2rem; padding: .65rem 0; border-bottom: 1px solid var(--cicl-band-line); }
	.spazio-ai__tabella--podio :is(th, td) { display: block; border: 0; padding: 0; }
	.spazio-ai__tabella--podio tbody th { flex: 1 0 100%; }
	.spazio-ai__tabella--podio td::before { content: attr(data-etichetta) "\00a0"; font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--cicl-band-muted); }
}
.spazio-ai__posto { font-family: var(--wp--preset--font-family--numeri); font-weight: 400; font-size: .82rem; color: var(--cicl-band-muted); margin-right: .35rem; }
.spazio-ai__tabella--conti { margin-top: 1.5rem; }
.spazio-ai__tabella--conti td { white-space: nowrap; }
.spazio-ai__tabella--conti tbody th { font-weight: 400; }
.spazio-ai__tabella--conti .is-fagiano th { font-weight: 700; }
.spazio-ai__didascalia { caption-side: top; text-align: left; padding-bottom: .5rem; font-family: var(--wp--preset--font-family--numeri); font-size: 0.75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--cicl-band-muted); }
.spazio-ai__sigillo--rotto { color: var(--cicl-band-strong); border-top-color: var(--cicl-fluo); }
/* Dopo l'arrivo le previsioni di prima del via restano, chiuse sotto lo scontrino */
.spazio-ai__prima { margin-top: 1.5rem; }
.spazio-ai__prima > summary { cursor: pointer; padding: .8rem 0; font-family: var(--wp--preset--font-family--numeri); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; color: var(--cicl-band-strong); border-bottom: 1px solid var(--cicl-band-line); }
.spazio-ai__prima > summary::marker { color: var(--cicl-fluo); }
.spazio-ai__prima[open] > summary { margin-bottom: .5rem; }

/* --- Lo scontrino del fagIAno (inc/scontrino.php) -------------------- */
/* Una striscia di carta con i bordi strappati sull'asfalto della fascia, tutta in Geist Mono (la tela «Lo scontrino
   del fagIAno»). La carta è carta in tutti e due i temi, come le fasce sono asfalto: i colori sono quelli del tema
   chiaro, scritti qui perché nel tema scuro i token girano. Un solo fluo: la riga del vincitore. */
.scontrino {
	--s-carta: #FFFFFF;
	--s-inchiostro: #0D0F12;
	--s-grigio: #5A6069;
	--s-dente: 14px;
	box-sizing: border-box; width: min(460px, 100%); margin: 0 auto;
	background: var(--s-carta); color: var(--s-inchiostro);
	font-family: var(--cicl-font-numeri); font-size: 14px; line-height: 1.55; font-variant-numeric: tabular-nums;
	padding: 40px 32px 48px; display: flex; flex-direction: column; gap: 18px;
	-webkit-mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--s-dente) 51% repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--s-dente) 51% repeat-x;
	mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--s-dente) 51% repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--s-dente) 51% repeat-x;
}
.scontrino :is(p, dl, dd, table, h2) { margin: 0; }
.scontrino__pezzo { border-top: 1px dashed var(--s-inchiostro); padding-top: 18px; }
.scontrino__pezzo--doppio { border-top: 3px double var(--s-inchiostro); }
.scontrino__testa { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.scontrino__marchio { font-family: var(--cicl-font-titoli); font-size: 28px; font-weight: 500; line-height: 1.2; letter-spacing: -0.01em; }
.scontrino__marchio .ia { font-size: .8em; padding: 0 2px; }
.scontrino__titolo, .scontrino__percorso, .scontrino__etichetta, .scontrino__verifica, .scontrino__piede, .scontrino__lista thead th { font-family: inherit; font-size: 12px; font-weight: 400; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; color: inherit; }
.scontrino__titolo { letter-spacing: .18em; }
.scontrino__corsa { display: flex; flex-direction: column; gap: 2px; text-align: center; }
.scontrino__nome { font-family: var(--cicl-font-titoli); font-style: italic; font-size: 26px; line-height: 1.15; }
.scontrino__percorso { letter-spacing: .12em; }
.scontrino__righe div { display: flex; justify-content: space-between; gap: 16px; }
.scontrino__righe dt { text-transform: uppercase; }
.scontrino__righe dd { text-align: right; }
.scontrino__righe .is-forte { font-weight: 700; }
.scontrino table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: inherit; }
.scontrino :is(th, td) { padding: 1px 0; border: 0; text-align: left; font-weight: inherit; vertical-align: baseline; background: none; color: inherit; }
.scontrino__col-n { width: 22px; }
.scontrino__col-p { width: 72px; }
.scontrino__col-a { width: 48px; }
.scontrino__lista thead th { font-size: 11px; padding-bottom: 6px; }
.scontrino__lista abbr { text-decoration: none; }
.scontrino__lista :is(th, td):nth-child(n+3) { text-align: right; }
.scontrino__lista tbody th { text-transform: uppercase; }
.scontrino__lista .is-vincitore :is(th, td) { background: var(--cicl-fluo); color: var(--cicl-on-fluo); font-weight: 700; }
.scontrino__lista .is-vincitore td:first-child { padding-left: 3px; }
.scontrino__lista .is-altri th { text-transform: none; }
.scontrino__scenari caption { text-align: left; padding-bottom: 4px; font-size: 11px; }
.scontrino__scenari tbody th { text-transform: uppercase; }
.scontrino__scenari td { text-align: right; }
.scontrino__col-sp { width: 56px; }
.scontrino__col-fra { width: 96px; }
.scontrino__col-segno { width: 24px; }
.scontrino__scenari td:nth-child(3) { color: var(--s-grigio); }
.scontrino__scenari td:nth-child(4) { font-weight: 700; }
.scontrino__etichetta { font-size: 11px; }
.scontrino__pezzo--doppio .scontrino__etichetta { padding-bottom: 2px; }
.scontrino__impronta { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.scontrino__impronta code { font-family: inherit; font-size: 13px; letter-spacing: .04em; background: none; color: inherit; padding: 0; }
.scontrino__barre { display: block; width: auto; max-width: 100%; height: 56px; margin-top: 4px; fill: currentColor; }
.scontrino__verifica a { color: inherit; display: inline-flex; align-items: center; text-underline-offset: 3px; overflow-wrap: anywhere; }
.scontrino__verifica a:hover { color: var(--cicl-cobalt); }
.scontrino__piede { text-align: center; }
/* Nella fascia della pagina della corsa: lo scontrino in cima, il resto sotto */
.spazio-ai--scontrino > .scontrino { margin-bottom: 1.25rem; }
.spazio-ai__scarica { margin: 0 0 1.5rem; text-align: center; font-family: var(--wp--preset--font-family--numeri); font-size: .82rem; letter-spacing: .06em; }
.spazio-ai__scarica a { color: var(--cicl-fluo); display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; }
/* Il richiamo alla volata del lunedì sotto lo scontrino (fagianata_newsletter_richiamo(), una volta per pagina) */
.spazio-ai .richiamo-volata { margin: 0 0 1.5rem; text-align: center; font-size: .9375rem; color: var(--cicl-band-muted); }
.spazio-ai .richiamo-volata a { color: var(--cicl-band-strong); font-weight: 600; text-decoration: underline; text-decoration-color: var(--cicl-fluo); text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
/* Al telefono la carta prende la larghezza della fascia, con i suoi margini; niente sotto i 13 pixel */
@media (max-width: 600px) {
	.spazio-ai--scontrino { padding-inline: 12px; }
	.spazio-ai--scontrino > :not(.scontrino) { margin-inline: 12px; }
	.scontrino { --s-dente: 12px; font-size: 13px; padding: 32px 14px 40px; gap: 16px; }
	.scontrino__pezzo { padding-top: 16px; }
	.scontrino__titolo, .scontrino__percorso, .scontrino__etichetta, .scontrino__verifica, .scontrino__piede, .scontrino__lista thead th, .scontrino__scenari caption { font-size: 13px; letter-spacing: .06em; }
	.scontrino__titolo, .scontrino__percorso { letter-spacing: .03em; }
	.scontrino__impronta code { letter-spacing: 0; }
	.scontrino__verifica a { letter-spacing: 0; }
	.scontrino__col-p { width: 60px; }
	.scontrino__col-a { width: 44px; }
	.scontrino__col-sp { width: 44px; }
	.scontrino__col-fra { width: 76px; }
	.scontrino__col-segno { width: 18px; }
	.scontrino__nome { font-size: 24px; }
}

/* ------------------------------------------------------------------
   I nostri campioni: la scheda nella pagina del corridore e l'elenco
   (inc/campioni.php)
   ------------------------------------------------------------------ */

.campione { display: flex; flex-direction: column; gap: 28px; border-top: 2px solid var(--b-testo); padding-top: 20px; }
.campione h2 { margin: 0 0 12px; font-family: var(--b-titoli); font-size: 1.75rem; font-weight: 600; }
.campione__testa { display: flex; gap: 20px; align-items: center; }
.campione__numero {
	flex: none;
	min-width: 3.5rem;
	height: 3.5rem;
	padding: 0 10px;
	display: grid;
	place-items: center;
	font-family: var(--b-mono);
	font-size: 2rem;
	font-weight: 700;
	background: var(--b-fluo);
	color: var(--b-su-fluo);
}
.campione__testa p { margin: 0; }
.campione__etichetta {
	margin: 0 0 6px;
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--b-secondario);
}
.campione__etichetta a { color: inherit; }
.campione__classifica { font-size: 1.125rem; line-height: 1.5; }
/* La foto stretta e accanto i numeri della stagione e il saluto: la colonna di destra è alta quanto la foto */
.campione__corpo { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 36px; align-items: start; }
.campione__corpo > .campione__testo:only-child { grid-column: 1 / -1; max-width: 46rem; }
.campione__foto { margin: 0; }
.campione__foto img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; }
.campione__foto figcaption { margin-top: 8px; font-size: 0.75rem; line-height: 1.5; color: var(--b-secondario); }
.campione__testo { display: flex; flex-direction: column; gap: 10px; }
.campione__testo .campione__saluto { margin-top: 18px; }
.campione__testo h2:not(:first-child) { margin-top: 18px; }
.campione__tipo { margin: 0; font-size: 1.25rem; font-weight: 600; }
.campione__nota { margin: 0; font-size: 0.8125rem; line-height: 1.55; color: var(--b-secondario); }
.campione__terreni { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.campione__terreni li { display: grid; grid-template-columns: 9rem minmax(0, 1fr) 13rem; gap: 12px; align-items: center; }
.campione__terreno { font-weight: 600; }
.campione__barra { height: 10px; background: var(--b-nebbia); }
.campione__barra span { display: block; height: 100%; background: var(--b-testo); }
.campione__terreni li:first-child .campione__barra span { background: var(--b-fluo); outline: 1px solid var(--b-testo); }
.campione__valore { font-family: var(--b-mono); font-size: 0.8125rem; color: var(--b-secondario); }
.campione__numeri { margin: 0; display: flex; flex-wrap: wrap; gap: 12px 32px; }
.campione__numeri div { display: flex; flex-direction: column-reverse; gap: 2px; }
.campione__numeri dt { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--b-secondario); }
.campione__numeri dd { margin: 0; font-family: var(--b-mono); font-size: 2rem; font-weight: 600; line-height: 1; }
.campione__vittorie { list-style: none; margin: 0; padding: 0; columns: 2 16rem; column-gap: 28px; }
.campione__vittorie li { break-inside: avoid; padding: 6px 0; border-bottom: 1px solid var(--b-filo); }
.campione__vittorie span { display: inline-block; min-width: 4.5rem; font-family: var(--b-mono); font-size: 0.8125rem; color: var(--b-secondario); }
.campione__forma { display: flex; flex-direction: column; gap: 14px; }
.campione__forma-griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 24px 36px; }
.campione__forma-terreno { margin: 0; }
.campione__forma-terreno .campione__nota { margin-top: 6px; }
.campione__forma-terreno figcaption { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 4px; }
.campione__grafico { display: block; width: 100%; height: auto; }
.campione__griglia { stroke: var(--b-filo); stroke-dasharray: 3 4; }
.campione__fascia { fill: var(--b-nebbia); }
.campione__linea { fill: none; stroke: var(--b-testo); stroke-width: 2; }
.campione__picco { fill: var(--b-fluo); stroke: var(--b-testo); stroke-width: 1.5; }
.campione__valle { fill: var(--b-secondario); }
.campione__saluto { background: var(--b-asfalto); color: var(--b-su-asfalto); padding: 26px 28px; display: flex; flex-direction: column; gap: 12px; }
.campione__saluto .campione__etichetta { color: var(--b-fluo); }
.campione__saluto blockquote { margin: 0; font-family: var(--b-titoli); font-size: 1.75rem; line-height: 1.3; font-style: italic; }
.campione__saluto blockquote p { margin: 0; }
.campione__invito { margin: 0; max-width: 44rem; font-size: 1.125rem; line-height: 1.6; color: var(--b-su-asfalto-2); }
.campione__firma { margin: 0; font-family: var(--b-mono); font-size: 0.8125rem; color: var(--b-su-asfalto-2); }
.campione__azione { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.campione__azione a { display: inline-block; padding: 10px 16px; background: var(--b-fluo); color: var(--b-su-fluo); font-weight: 700; text-decoration: none; }
.campione__azione span { font-size: 0.8125rem; color: var(--b-spento); }

@media (max-width: 760px) {
	.campione__corpo { grid-template-columns: 1fr; }
	.campione__terreni li { grid-template-columns: 6.5rem minmax(0, 1fr); }
	.campione__valore { grid-column: 2; }
}

/* L'elenco */
.campioni { display: flex; flex-direction: column; gap: 44px; }
.campioni__capo {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	align-items: baseline;
	justify-content: space-between;
	border-top: 2px solid var(--b-testo);
	padding-top: 16px;
	margin-bottom: 18px;
}
.campioni__capo h2 { margin: 0; font-family: var(--b-titoli); font-size: 2.25rem; font-weight: 600; }
.campioni__capo span { font-family: var(--b-mono); font-size: 0.75rem; text-transform: uppercase; color: var(--b-secondario); }
.campioni__griglia { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: 28px 20px; }
.campioni__scheda a { display: flex; flex-direction: column; gap: 4px; color: inherit; text-decoration: none; }
.campioni__foto { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--b-nebbia); margin-bottom: 8px; overflow: hidden; }
.campioni__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; transition: transform 0.3s ease; }
.campioni__scheda a:hover img,
.campioni__scheda a:focus-visible img { transform: scale(1.03); }
.campioni__posizione {
	position: absolute;
	left: 0;
	top: 0;
	min-width: 2.5rem;
	padding: 6px 10px;
	text-align: center;
	font-family: var(--b-mono);
	font-size: 1.25rem;
	font-weight: 700;
	background: var(--b-fluo);
	color: var(--b-su-fluo);
}
.campioni__nome { font-family: var(--b-titoli); font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.campioni__scheda a:hover .campioni__nome { text-decoration: underline; text-decoration-thickness: 2px; }
.campioni__squadra { font-size: 0.875rem; color: var(--b-secondario); }
.campioni__riga { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; }
.campioni__invito { background: var(--b-asfalto); color: var(--b-su-asfalto); padding: 26px 28px; display: flex; flex-direction: column; gap: 12px; }
.campioni__invito .campione__etichetta { color: var(--b-fluo); }
.campioni__invito p { margin: 0; max-width: 44rem; line-height: 1.6; }
.campioni__fonte { margin: 0; font-size: 0.8125rem; color: var(--b-secondario); }
/* Senza foto, il fagiano in bicicletta del marchio, in tutte e due le forme */
.campioni__foto--fagiano { display: grid; place-items: center; color: var(--b-testo); }
.campioni__foto--fagiano .marchio__fagiano { width: 72%; height: auto; }

/* In forma compatta, in testa a /corridori/: una riga per corridore, i primi cinque e poi gli altri */
.campioni--compatta { gap: 28px; padding-block: 32px 48px; }
.campioni__testa {
	display: flex;
	flex-wrap: wrap;
	gap: 0 24px;
	align-items: center;
	justify-content: space-between;
	border-top: 2px solid var(--b-testo);
	padding-top: 10px;
}
.campioni__testa h2 { margin: 0; font-family: var(--b-titoli); font-size: 2.25rem; font-weight: 600; line-height: 1.1; }
.campioni__data { margin: 4px 0 0; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--b-secondario); }
.campioni__tutti {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-family: var(--b-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--b-testo);
	text-decoration: none;
}
.campioni__tutti:hover { text-decoration: underline; }
.campioni--compatta .campioni__capo { border-top: 0; padding-top: 0; margin-bottom: 6px; }
.campioni--compatta .campioni__capo h3 { margin: 0; font-family: var(--b-titoli); font-size: 1.375rem; font-weight: 600; }
.campioni__righe {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.5rem), 1fr));
	gap: 0 20px;
}
.campioni__righe li { border-bottom: 1px solid var(--b-filo); }
.campioni__righe a {
	display: grid;
	grid-template-columns: 1.6rem 48px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	box-sizing: border-box;
	min-height: 44px;
	padding: 8px 0;
	color: inherit;
	text-decoration: none;
}
.campioni__numero { font-family: var(--b-mono); font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.campioni--compatta .campioni__foto { width: 48px; margin: 0; }
.campioni__chi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.campioni--compatta .campioni__nome { font-size: 1.125rem; line-height: 1.15; }
.campioni--compatta .campioni__squadra { font-size: 0.8125rem; line-height: 1.3; } /* il nome intero, anche su due righe: «UAE Team Emirates X…» non è un nome */
.campioni__righe a:hover .campioni__nome { text-decoration: underline; text-decoration-thickness: 1px; }
@media (max-width: 600px) {
	.campioni--compatta { gap: 18px; padding-block: 20px 28px; }
	.campioni__testa h2 { font-size: 1.75rem; }
	.campioni__righe { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
	.campioni__righe a { grid-template-columns: 1.1rem 32px minmax(0, 1fr); gap: 7px; padding: 5px 0; }
	.campioni--compatta .campioni__foto { width: 32px; }
	.campioni--compatta .campioni__nome { font-size: 0.9375rem; }
	.campioni--compatta .campioni__squadra { display: none; }
}

/* Il profilo: che corridore è e la forma, per tutti (blocchi/profilo-corridore) */
.profilo { display: flex; flex-direction: column; gap: 28px; border-top: 2px solid var(--b-testo); padding-top: 20px; }
.profilo h2 { margin: 0 0 12px; font-family: var(--b-titoli); font-size: 1.75rem; font-weight: 600; }
.profilo__chi { display: flex; flex-direction: column; gap: 10px; max-width: 52rem; }
.profilo__nota { margin: 0; font-size: 0.8125rem; line-height: 1.55; color: var(--b-secondario); }
.profilo__tipo { margin: 0; font-size: 1.25rem; font-weight: 600; }
.profilo__terreni { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
/* il valore a destra largo quanto serve, su una riga (in inglese «better than» è più lungo) */
.profilo__terreni li { display: grid; grid-template-columns: 11rem minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.profilo__terreno { font-weight: 600; }
.profilo__barra { height: 10px; background: var(--b-nebbia); }
.profilo__barra span { display: block; height: 100%; background: var(--b-testo); }
.profilo__terreni li:first-child .profilo__barra span { background: var(--b-fluo); outline: 1px solid var(--b-testo); }
.profilo__valore { font-family: var(--b-mono); font-size: 0.8125rem; color: var(--b-secondario); white-space: nowrap; }
.profilo__forma { display: flex; flex-direction: column; gap: 14px; }
.profilo__forma-griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 24px 36px; }
.profilo__forma-terreno { margin: 0; }
.profilo__forma-terreno .profilo__nota { margin-top: 6px; }
.profilo__forma-terreno figcaption { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 4px; }
/* Il grafico si allarga con la pagina e al telefono si abbassa senza rimpicciolire: le scritte e i due momenti sono
   HTML sopra l'SVG (blocchi/profilo-corridore) */
.profilo__tela { position: relative; max-width: 56rem; }
.profilo__grafico { display: block; width: 100%; height: clamp(140px, 24vw, 220px); }
.profilo__griglia { stroke: var(--b-filo); stroke-dasharray: 3 4; }
.profilo__fascia { fill: var(--b-nebbia); }
.profilo__linea { fill: none; stroke: var(--b-testo); stroke-width: 2; }
.profilo__punto { position: absolute; width: 12px; height: 12px; transform: translate(-50%, -50%); }
.profilo__segno { display: inline-block; width: 10px; height: 10px; margin-right: 8px; vertical-align: 0; }
.profilo__punto,
.profilo__segno { border-radius: 50%; box-sizing: border-box; }
.profilo__picco { background: var(--b-fluo); border: 1.5px solid var(--b-testo); }
.profilo__valle { background: var(--b-secondario); }
@media (max-width: 760px) {
	.profilo__terreni li { grid-template-columns: 6.5rem minmax(0, 1fr); }
	.profilo__valore { grid-column: 2; white-space: normal; }
}
@media (max-width: 600px) {
	.campioni__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
	.campioni__nome { font-size: 1.15rem; }
	.campioni__posizione { font-size: 1rem; min-width: 2rem; padding: 4px 8px; }
	.campioni__invito,
	.campione__saluto { padding: 20px; }
}
.profilo__zero { stroke: var(--b-testo); stroke-width: 1; stroke-dasharray: 4 4; }
.profilo__etichetta-zero,
.profilo__mesi { font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.profilo__etichetta-zero { position: absolute; left: 6px; transform: translateY(calc(-100% - 3px)); line-height: 1.2; }
.profilo__mesi { position: relative; max-width: 56rem; height: 1.6em; margin-top: 4px; }
.profilo__mesi span { position: absolute; top: 0; transform: translateX(-50%); }
.profilo__momenti { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 12px 28px; max-width: 56rem; }
.profilo__momenti div { border-top: 1px solid var(--b-filo); padding-top: 8px; }
.profilo__momenti dt { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--b-secondario); }
.profilo__momenti dd { margin: 4px 0 0; line-height: 1.5; }
.profilo__forma .profilo__nota { max-width: 56rem; }

/* I pezzi su un corridore (blocchi/pezzi-corridore): le righe dell'elenco di titoli, che al telefono vanno a capo */
.pezzi-corridore .elenco__voce { flex-wrap: wrap; gap: 4px 20px; }
.pezzi-corridore .elenco__nome { flex: 1 1 22rem; }
.pezzi-corridore .elenco__data { white-space: nowrap; }

/* ------------------------------------------------------------------
   Il livello delle notizie (inc/livelli.php): un bordo sopra la
   scheda, a sinistra nelle righe degli elenchi. Grandi giri con il
   colore della maglia del primo, monumenti con il nastro fluo, mondiali
   con l'iride, europei con le stelle, nazionali con la bandiera.
   ------------------------------------------------------------------ */

.livello {
	--livello-alto: 6px;
	--livello-verso: to bottom;
	--livello-colori: var(--cicl-text, #0D0F12) 0 100%;
	--livello-sopra: none;
	position: relative;
	padding-top: calc(var(--livello-alto) + 12px);
}
.livello::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: var(--livello-alto);
	background: var(--livello-sopra), linear-gradient(var(--livello-verso), var(--livello-colori));
	z-index: 1;
}
/* Una scheda che comincia con la foto: il bordo sta sul filo alto della foto, e le schede restano allineate */
.livello:has(> :first-child:is(.notizia__foto, .wp-block-post-featured-image, .elenco__foto)) { padding-top: 0; }
.livello--worldtour { --livello-colori: var(--cicl-cobalt, #2846F0) 0 100%; }
.livello--giro { --livello-colori: #F27BA9 0 100%; }
.livello--tour { --livello-colori: #FFD100 0 100%; }
.livello--vuelta { --livello-colori: #E2001A 0 100%; }
.livello--monumento {
	--livello-alto: 8px;
	--livello-colori: var(--cicl-text, #0D0F12) 0 25%, var(--cicl-fluo, #D4FF3F) 25% 75%, var(--cicl-text, #0D0F12) 75% 100%;
}
.livello--mondiali {
	--livello-alto: 10px;
	--livello-colori: #0072CE 0 20%, #EE334E 20% 40%, #0D0F12 40% 60%, #FCB131 60% 80%, #00A651 80% 100%;
}
.livello--europei {
	--livello-alto: 8px;
	--livello-colori: #003399 0 100%;
	--livello-sopra: radial-gradient(circle, #FFCC00 0 1.6px, transparent 2.2px) 4px 50% / 14px 100% repeat-x;
}
/* La bandiera: le strisce una accanto all'altra (i colori li mette inc/livelli.php nello style dell'elemento) */
.livello--nazionali { --livello-alto: 8px; --livello-verso: to right; }
.livello--nazionali::before { box-shadow: inset 0 0 0 1px var(--cicl-line, #DEE1DC); }

/* Nelle righe degli elenchi il bordo sta fuori, a sinistra del testo (che resta allineato alle altre righe),
   largo uguale per tutti; le strisce girano */
.livello.livello--riga { --livello-alto: 6px; --livello-verso: to right; padding-top: 12px; }
.livello.livello--riga.livello--nazionali { --livello-verso: to bottom; }
.livello--riga::before { inset: 12px auto 12px -14px; width: var(--livello-alto); height: auto; }
.elenco--titoli .livello--riga::before { inset: 16px auto 16px -14px; }
.livello--riga.livello--europei::before { background: radial-gradient(circle, #FFCC00 0 1.4px, transparent 1.9px) 50% 3px / 100% 10px repeat-y, #003399; }

/* ------------------------------------------------------------------
   Le etichette e i segni sulle foto (inc/livelli.php, il sistema della
   tela «Immagini di copertina»): sempre nello stesso ordine il formato
   su fluo, il livello su asfalto con il quadratino dei suoi colori, la
   corsa in Bodoni corsivo; il numero su fluo quando c'è. A misura di
   scheda 11 px, di immagine in pagina 13 px.
   ------------------------------------------------------------------ */

.etichetta-formato,
.etichetta-livello {
	display: inline-flex;
	align-items: center;
	gap: var(--et-dentro, 6px);
	padding: var(--et-pad, 4px 8px);
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: var(--et-corpo, 11px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.etichetta-formato { background: var(--cicl-fluo, #D4FF3F); color: var(--cicl-on-fluo, #0D0F12); }
.etichetta-livello { background: var(--cicl-band, #0D0F12); color: var(--cicl-band-strong, #F4F5F2); letter-spacing: 0.12em; }
/* Il quadratino: gli stessi colori del bordo delle schede (le variabili di .livello--…, più su) */
.etichetta-livello__segno {
	flex-shrink: 0;
	width: var(--et-segno, 9px);
	height: var(--et-segno, 9px);
	background: linear-gradient(var(--segno-verso, to right), var(--livello-colori, var(--cicl-band-strong) 0 100%));
}
.etichetta-livello.livello--monumento .etichetta-livello__segno { background: linear-gradient(to right, var(--cicl-band, #0D0F12) 0 25%, var(--cicl-fluo, #D4FF3F) 25% 75%, var(--cicl-band, #0D0F12) 75% 100%); }
.etichetta-livello.livello--mondiali { --segno-verso: to bottom; }
.etichetta-livello.livello--europei .etichetta-livello__segno { background: radial-gradient(circle, #FFCC00 0 1.3px, transparent 1.9px) 50% 50% / 50% 50%, #003399; }
/* I colori scuri hanno un filo chiaro intorno, se no sull'asfalto non si vedono */
.etichetta-livello:is(.livello--monumento, .livello--mondiali, .livello--europei, .livello--worldtour) .etichetta-livello__segno {
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cicl-band-strong, #F4F5F2) 55%, transparent);
}

/* Le misure: scheda (11 px) e immagine in pagina (13 px) */
.segni--scheda {
	--segni-margine: 10px; --segni-spazio: 5px;
	--et-corpo: 11px; --et-pad: 4px 8px; --et-segno: 9px; --et-dentro: 6px;
	--numero-corpo: 26px; --corsa-corpo: 17px; --corsa-pad: 7px 12px 8px;
}
.segni--pagina,
.riga-etichette {
	--segni-margine: 16px; --segni-spazio: 6px;
	--et-corpo: 13px; --et-pad: 6px 10px; --et-segno: 11px; --et-dentro: 7px;
	--numero-corpo: 44px; --corsa-corpo: 22px; --corsa-pad: 10px 16px 12px;
}

/* La foto (o l'illustrazione) e i suoi segni: le schede della prima pagina e degli elenchi, le griglie del tema, la
   testa dell'articolo. Le misure dei segni seguono la larghezza della foto, non quella della finestra */
.notizia-lead__foto, .notizia__foto, .elenco__foto, .foto-segni { position: relative; display: block; container: foto / inline-size; }
.segni { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.segni__alto {
	position: absolute;
	top: var(--segni-margine);
	left: var(--segni-margine);
	right: var(--segni-margine);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
}
.segni__etichette { display: flex; flex-wrap: wrap; gap: var(--segni-spazio); min-width: 0; }
.segni__numero {
	margin-left: auto;
	flex-shrink: 0;
	padding: 0.1em 0.3em 0.04em;
	background: var(--cicl-fluo, #D4FF3F);
	color: var(--cicl-on-fluo, #0D0F12);
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: var(--numero-corpo);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}
/* Il numero con sotto che cosa misura, come nella card di condivisione */
.segni__numero-blocco { margin-left: auto; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; }
.segni__numero-blocco .segni__numero { margin-left: 0; }
.segni__detto {
	padding: 0.35em 0.6em;
	background: var(--cicl-band, #0D0F12);
	color: var(--cicl-band-strong, #F4F5F2);
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}
/* La striscia della corsa, in basso a sinistra */
.segni__corsa {
	position: absolute;
	left: 0;
	bottom: 0;
	max-width: calc(100% - var(--segni-margine));
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 12px;
	padding: var(--corsa-pad);
	background: var(--cicl-band, #0D0F12);
	color: var(--cicl-band-strong, #F4F5F2);
}
.segni__nome { font-family: var(--cicl-font-titoli, serif); font-style: italic; font-weight: 500; font-size: var(--corsa-corpo); line-height: 1.15; }
.segni__data { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-band-text, #C3C8CF); }
/* Una foto grande che al telefono è stretta prende le misure della scheda */
@container foto (max-width: 440px) {
	.segni--pagina {
		--segni-margine: 10px; --segni-spazio: 5px;
		--et-corpo: 11px; --et-pad: 4px 8px; --et-segno: 9px; --et-dentro: 6px;
		--numero-corpo: 30px; --corsa-corpo: 18px; --corsa-pad: 7px 12px 8px;
	}
}
/* Sull'illustrazione, che è già asfalto, il livello su un asfalto appena più chiaro: se no non si vede il riquadro */
:is(.notizia-lead__foto, .notizia__foto, .elenco__foto, .foto-segni):has(> .illustrazione) .etichetta-livello { background: color-mix(in srgb, var(--cicl-band-strong, #F4F5F2) 7%, var(--cicl-band, #0D0F12)); }
/* La foto con le etichette prende il posto del filo del livello sopra la scheda */
.livello:has(.segni .etichetta-livello)::before { display: none; }

/* Le foto delle schede: la trattata (inc/foto-trattate.php) ha il corridore a colori sullo sfondo, le altre restano a
   colori naturali (niente foto tutte grigie, 13/10/2026); le Storie prendono lo sfondo carta */
.formato-storia :is(.notizia-lead__foto, .notizia__foto, .elenco__foto) img.wp-post-image:not(.foto--trattata),
.wp-block-post-template .formato-storia .wp-block-post-featured-image img.wp-post-image:not(.foto--trattata) { filter: url(#fagianata-sfondo-storia); }

/* L'illustrazione di un pezzo senza foto (inc/card.php): sul fondo asfalto le barre delle tappe, l'emblema della
   corsa o l'altimetria del marchio. È un disegno: niente bianco e nero */
.illustrazione {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--cicl-band, #0D0F12);
	color: var(--cicl-band-strong, #F4F5F2);
}
.notizia-lead__foto .illustrazione { aspect-ratio: 16 / 9; }
@media (min-width: 1100px) {
	.notizia-lead .notizia-lead__foto .illustrazione { aspect-ratio: 4 / 3; }
}
.elenco__foto .illustrazione,
.foto-segni > .illustrazione { position: absolute; inset: 0; aspect-ratio: auto; }
/* In testa all'articolo, sul fondo scuro del tema scuro, un filo ne segna il bordo */
.foto-segni--pagina > .illustrazione { box-shadow: inset 0 0 0 1px var(--cicl-band-line, #2A2F36); }
.illustrazione svg { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: auto; height: 54%; max-width: 76%; }
.illustrazione--altimetria svg { height: 46%; }
/* Il segno della corsa (laboratorio/segni_corse.py): largo fra i margini, un po' sotto il centro, perché in alto ci
   sono le etichette. I nomi in Geist Mono si leggono solo in una foto larga: nelle schede piccole resta il disegno */
.illustrazione--segno svg { top: 56%; width: 96%; height: auto; max-width: 96%; max-height: 58%; }
.illustrazione--segno .segno__etichette { font-family: var(--cicl-font-numeri, ui-monospace, monospace); }
@container foto (max-width: 699px) {
	.illustrazione--segno .segno__etichette { display: none; }
	.illustrazione--segno svg { width: 88%; max-width: 88%; max-height: 52%; }
}
.illustrazione__tappe {
	position: absolute;
	left: 5%;
	right: 5%;
	bottom: 24%;
	height: 48%;
	display: grid;
	grid-template-columns: repeat(var(--tappe, 6), minmax(0, 1fr));
	column-gap: clamp(2px, 1.6%, 18px);
	align-items: end;
}
.illustrazione__tappa { position: relative; display: block; height: var(--alta); background: var(--cicl-band-line, #2A2F36); border-top: 2px solid var(--cicl-band-strong, #F4F5F2); }
.illustrazione__tappa--salita { background: var(--cicl-fluo, #D4FF3F); border-top: 0; }
/* Il nome dell'arrivo in salita, quando la barra è larga abbastanza da leggerlo */
.illustrazione__arrivo {
	display: none;
	position: absolute;
	top: 6px;
	left: 6px;
	right: 4px;
	overflow: hidden;
	white-space: nowrap;
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cicl-on-fluo, #0D0F12);
}
@container foto (min-width: 560px) {
	.illustrazione__arrivo { display: block; }
}

/* In testa all'articolo, al posto del percorso: il formato (porta alla sua sezione), il livello e la corsa (porta
   alla sua scheda), come nella tela «Così comincia un articolo». I collegamenti sono alti 44 px */
.riga-etichette { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
/* Sul fondo scuro del tema scuro l'asfalto del livello si confonde: un filo lo tiene in vista */
.riga-etichette .etichetta-livello { box-shadow: inset 0 0 0 1px var(--cicl-band-line, #2A2F36); }
.riga-etichette__formato { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.riga-etichette__formato:hover .etichetta-formato { text-decoration: underline; text-underline-offset: 3px; }
.riga-etichette__corsa {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 4px;
	font-family: var(--cicl-font-titoli, serif);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--cicl-text, #0D0F12);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.riga-etichette__corsa:hover { color: var(--cicl-cobalt, #2846F0); }

/* Per chi legge con lo schermo e non vede le etichette sulla foto */
.solo-lettori {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.livello__nome {
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cicl-text, #0D0F12);
}
.wp-block-post-terms .livello__nome::before,
.elenco__sezione .livello__nome::before { content: "· "; color: var(--cicl-muted, #5A6069); }
/* nei termini il nome del livello viene subito dopo il link della sezione, senza spazio nel codice: «Analisi · …» */
.wp-block-post-terms .livello__nome { margin-left: 0.5em; }

/* Le classifiche finali dei grandi giri, nel colore della maglia del primo (inc/livelli.php) */
.maglia {
	font-weight: 700;
	padding: 1px 6px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	color: #0D0F12;
}
.maglia--giro { background: #F27BA9; }
.maglia--tour { background: #FFD100; }
.maglia--vuelta { background: #E2001A; color: #FFFFFF; }
/* Le maglie delle corse a tappe nel loro colore vero (risorse/maglie.json, fagianata_maglia_segno()): un quadratino
   accanto al nome della classifica, sempre con il nome della maglia scritto. Il filo sottile tiene in vista la bianca
   e la gialla sulla carta e la nera sull'asfalto. */
.maglia-con-nome { display: inline-flex; align-items: center; gap: .4em; white-space: nowrap; }
.maglia-segno { display: inline-block; flex: none; width: 1.05em; height: 1.05em; margin-right: .4em; vertical-align: -.08em; background: var(--maglia); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cicl-text) 55%, transparent); }
.maglia-con-nome > .maglia-segno { margin-right: 0; }
.maglia-segno--pois { background: radial-gradient(circle, var(--maglia-pois) 30%, transparent 33%) 0 0 / 45% 45% var(--maglia); }
.tappe__maglie dt .maglia-con-nome { margin-left: .5em; font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 400; letter-spacing: .04em; text-transform: none; color: var(--cicl-muted); }
.tappe__nota .maglia-con-nome, .tappa__maglia .maglia-con-nome { font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .04em; color: var(--cicl-muted); }
.tappa__maglia { margin: -8px 0 12px; }

/* ------------------------------------------------------------------
   Il foglio dei numeri (blocco foglio-stampa): a schermo le voci in
   due colonne, il numero in Bodoni, fonte e perimetro sotto. Sulla
   carta una facciata A4, senza testata, nastro e piede.
   ------------------------------------------------------------------ */

.foglio { margin-block: 1rem 2.5rem; font-size: var(--wp--preset--font-size--normale); line-height: 1.5; color: var(--cicl-text); }
.foglio__etichetta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; margin: 0; font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cicl-muted); }
.foglio__etichetta strong { background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: .25rem .55rem; font-weight: 600; }
.foglio__marchio { display: none; font-family: var(--cicl-font-titoli); font-size: 1.1rem; letter-spacing: 0; text-transform: none; color: var(--cicl-text); }
.foglio__nota { margin: 1rem 0 0; padding: .85rem 1rem; background: var(--cicl-surface); color: var(--cicl-body); line-height: 1.5; }
.foglio__nota strong { color: var(--cicl-text); }
.foglio__sezione { margin-top: 2rem; border-top: 2px solid var(--cicl-text); }
/* due classi: .corpo h2 della pagina non deve vincere */
.foglio .foglio__sezione-titolo { margin: .6rem 0 0; font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cicl-text); }
.foglio__voci { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); column-gap: 1.75rem; }
.foglio__voce { padding: .85rem 0; border-bottom: 1px solid var(--cicl-line); }
.foglio__numero { margin: 0; font-family: var(--cicl-font-titoli); font-size: 1.85rem; line-height: 1.05; font-variant-numeric: lining-nums tabular-nums; color: var(--cicl-text); }
.foglio__testo { margin: .35rem 0 0; line-height: 1.5; color: var(--cicl-body); }
.foglio__fonte { margin: .4rem 0 0; font-size: .78rem; line-height: 1.45; color: var(--cicl-muted); }
.foglio__fonte b,
.foglio__fonti b { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.foglio__piede { margin-top: 1.75rem; font-size: .78rem; line-height: 1.5; color: var(--cicl-muted); }
.foglio__piede p { margin: .5rem 0 0; }
.foglio__indirizzo { font-family: var(--cicl-font-numeri); overflow-wrap: anywhere; }

@media print {
	@page { size: A4; margin: 9mm 10mm; }

	/* Sulla carta sempre chiaro, anche per chi legge il sito in scuro: i token tornano quelli di style.css */
	html:root:has(.foglio) { --cicl-bg: #FFFFFF; --cicl-surface: #F2F3F0; --cicl-text: #0D0F12; --cicl-body: #2E3238; --cicl-muted: #5A6069; --cicl-line: #DEE1DC; color-scheme: light; }
	body:has(.foglio) { background: none; }

	/* Solo il titolo della pagina e il foglio: via testata, nastro, piede, figura, sommario e il resto del testo */
	body:has(.foglio) .wp-site-blocks > header,
	body:has(.foglio) .wp-site-blocks > footer,
	body:has(.foglio) .figura--pagina,
	body:has(.foglio) .pagina__capo .sommario,
	body:has(.foglio) .wp-block-post-content > :not(.foglio),
	body:has(.foglio) .skip-link { display: none !important; }
	body:has(.foglio) main,
	body:has(.foglio) .has-global-padding { margin: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
	body:has(.foglio) main .is-layout-constrained > * { max-width: none !important; }
	body:has(.foglio) .pagina__capo { padding-top: 0; }
	body:has(.foglio) .pagina__capo .wp-block-post-title { font-size: 17pt !important; line-height: 1.1; } /* le misure del tema hanno !important */

	.foglio { margin: 1.5mm 0 0; font-size: 7.6pt; }
	.foglio a { color: inherit; text-decoration: none; }
	.foglio .ia,
	.foglio__etichetta strong,
	.foglio__nota { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.foglio__marchio { display: inline; font-size: 10pt; }
	.foglio__etichetta { gap: 0 3mm; font-size: 6.6pt; }
	.foglio__etichetta strong { padding: .3mm 1.2mm; }
	.foglio__nota { margin-top: 1.5mm; padding: 1.2mm 2.5mm; font-size: 7.6pt; line-height: 1.35; }

	.foglio__sezioni { columns: 2; column-gap: 6mm; }
	.foglio__sezione { margin-top: 2mm; break-inside: auto; }
	.foglio__sezione:first-child { margin-top: 0; }
	.foglio .foglio__sezione-titolo { margin-top: .8mm; font-size: 6.6pt; break-after: avoid; }
	.foglio__voci { display: block; }
	.foglio__voce { padding: 1mm 0; break-inside: avoid; }
	.foglio__numero { font-size: 11pt; line-height: 1; }
	.foglio__testo { margin-top: .4mm; line-height: 1.28; }
	.foglio__fonte { margin-top: .3mm; font-size: 5.9pt; line-height: 1.25; }
	.foglio__fonte b,
	.foglio__fonti b { font-size: 5.4pt; }
	.foglio__piede { margin-top: 1.5mm; font-size: 5.6pt; line-height: 1.25; }
	.foglio__piede p { margin-top: .6mm; }
}

/* ------------------------------------------------------------------
   Il fagIAno in breve, in prima pagina (blocco fagiano-breve)
   ------------------------------------------------------------------ */

.fagiano-breve { border-top: 2px solid var(--b-testo); padding-top: 14px; margin-bottom: 2.5rem; }
.fagiano-breve__etichetta { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--b-secondario); }
.fagiano-breve__etichetta span { color: var(--b-testo); font-weight: 600; }
.fagiano-breve__titolo { margin: 10px 0 14px; font-family: var(--b-titoli); font-size: 1.75rem; line-height: 1.12; font-weight: 600; }
.fagiano-breve__elenco { list-style: none; margin: 0; padding: 0; }
.fagiano-breve__elenco li { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) 3.6rem; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--b-filo); }
.fagiano-breve__nome { font-weight: 600; overflow-wrap: anywhere; }
.fagiano-breve__barra { height: 10px; background: var(--b-filo); }
.fagiano-breve__barra span { display: block; height: 100%; background: var(--b-fluo); box-shadow: inset 0 0 0 1px var(--b-testo); }
.fagiano-breve__barra { position: relative; }
.fagiano-breve__tacca { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--b-secondario); }
.fagiano-breve__cifra { font-family: var(--b-mono); font-variant-numeric: tabular-nums; font-size: 1.125rem; text-align: right; }
.fagiano-breve__piede { margin: 10px 0 4px; font-size: 0.875rem; color: var(--b-secondario); }
.fagiano-breve__link { font-family: var(--b-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--b-testo); display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 480px) {
	.fagiano-breve__elenco li { grid-template-columns: minmax(0, 1fr) 3.6rem; }
	.fagiano-breve__barra { grid-column: 1 / -1; grid-row: 2; }
}

/* ------------------------------------------------------------------
   Diecimila corse del fagIAno (blocco diecimila): la corsa come la pensa il modello, diecimila arrivi estratti dalle
   probabilità congelate. Le barre come nel fagIAno in breve (il fluo è la serie), il trattino cobalto è la
   probabilità vera; durante la corsa la riga dell'ultimo vincitore estratto si accende di cobalto. Il movimento c'è
   perché le barre nascono dagli arrivi: con prefers-reduced-motion il risultato arriva subito (vista.js).
   ------------------------------------------------------------------ */

.diecimila { border-top: 2px solid var(--b-testo); padding-top: 14px; margin-block: 2.5rem; display: grid; gap: 18px; min-width: 0; }
.diecimila > * { margin: 0; min-width: 0; }
.diecimila__etichetta { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--b-secondario); }
.diecimila__etichetta span { color: var(--b-testo); font-weight: 600; }
.diecimila .diecimila__titolo { margin: -8px 0 0; font-family: var(--b-titoli); font-size: 1.75rem; line-height: 1.12; font-weight: 600; }
.diecimila__sotto { max-width: 62ch; }
.diecimila__profilo { margin: 0; }
.diecimila__profilo figcaption a { color: var(--b-testo); }

.diecimila__comandi { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.diecimila__comandi[hidden] { display: none; }
.diecimila__tasto { min-height: 48px; padding: 0 20px; border: 1.5px solid var(--b-testo); border-radius: 0; background: transparent; color: var(--b-testo); font: inherit; font-weight: 650; cursor: pointer; }
.diecimila__tasto--primo { background: var(--b-testo); color: var(--cicl-bg, #FFFFFF); }
.diecimila__tasto:hover { background: var(--cicl-cobalt, #2846F0); border-color: var(--cicl-cobalt, #2846F0); color: var(--cicl-bg, #FFFFFF); }
.diecimila__contatore { margin-left: auto; font-family: var(--b-mono); font-size: 0.875rem; color: var(--b-secondario); font-variant-numeric: tabular-nums; }
.diecimila__contatore b { color: var(--b-testo); font-weight: 600; }

.diecimila__porta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.diecimila__via { background: var(--cicl-surface, #F2F3F0); padding: 12px 12px 14px; display: grid; gap: 6px; align-content: start; min-width: 0; box-shadow: inset 0 0 0 2px transparent; }
.diecimila .diecimila__via > * { margin: 0; }
.diecimila__via h3 { font-family: var(--cicl-font-testo, sans-serif); font-size: 1rem; line-height: 1.2; font-weight: 650; }
.diecimila__cosa { margin: 0; font-size: 0.8125rem; line-height: 1.35; color: var(--b-secondario); }
.diecimila__pct { margin: 0; font-family: var(--b-mono); font-size: 1.625rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--b-testo); }
.diecimila__riga { display: block; height: 6px; background: var(--b-filo); overflow: hidden; }
.diecimila__riga i { display: block; height: 100%; background: var(--b-testo); }
.diecimila__via--ora { box-shadow: inset 0 0 0 2px var(--cicl-cobalt, #2846F0); }

.diecimila__ultimo { min-height: 1.5em; font-family: var(--b-mono); font-size: 0.875rem; line-height: 1.5; color: var(--b-secondario); font-variant-numeric: tabular-nums; }
.diecimila__ultimo b { color: var(--b-testo); font-weight: 600; }

.diecimila__barre { display: grid; }
.diecimila__barra { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) 3.6rem; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--b-filo); }
/* Il nome si taglia, «ha vinto» resta intero */
.diecimila__nome { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; min-width: 0; font-weight: 600; }
.diecimila__chi { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.diecimila__nome em { flex-shrink: 0; font-style: normal; margin-left: 0; }
.diecimila__barra--vinto .diecimila__nome { font-weight: 700; }
/* Gli altri tutti insieme non sono un candidato: il fluo resta ai corridori con un nome */
.diecimila__barra--altri .diecimila__nome { font-weight: 400; color: var(--b-secondario); }
.diecimila__barra--altri .diecimila__pista i { background: var(--b-secondario); box-shadow: none; }
.diecimila__pista { position: relative; height: 10px; background: var(--b-filo); }
.diecimila__pista i { position: absolute; inset: 0 auto 0 0; background: var(--b-fluo); box-shadow: inset 0 0 0 1px var(--b-testo); }
.diecimila__pista s { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; background: var(--cicl-cobalt, #2846F0); text-decoration: none; }
.diecimila__val { font-family: var(--b-mono); font-variant-numeric: tabular-nums; font-size: 1rem; text-align: right; white-space: nowrap; }
.diecimila__barra--lampo .diecimila__pista i { background: var(--cicl-cobalt, #2846F0); box-shadow: none; }
.diecimila__barra--lampo .diecimila__nome { color: var(--cicl-cobalt, #2846F0); }

.diecimila__piede { display: grid; gap: 8px; font-size: 0.875rem; color: var(--b-secondario); }
.diecimila__piede p { margin: 0; max-width: 64ch; }
.diecimila__scontrino { color: var(--b-testo); }

@media (max-width: 600px) {
	.diecimila__porta { grid-template-columns: 1fr; gap: 6px; }
	.diecimila__via { grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; padding: 10px 12px; }
	.diecimila__via h3, .diecimila__cosa { grid-column: 1; }
	.diecimila__pct { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 1.375rem; }
	.diecimila__riga { grid-column: 1 / -1; }
	.diecimila__barra { grid-template-columns: minmax(0, 1fr) 3.6rem; row-gap: 6px; }
	.diecimila__pista { grid-column: 1 / -1; grid-row: 2; }
	.diecimila__contatore { margin-left: 0; width: 100%; }
}

/* Il fagIAno delle corse a tappe (inc/fagiano-tappe.php): la tappa e la generale con le barre del fagIAno in breve.
   Le cifre a destra; nella generale due colonne, vittoria e podio. Il vincitore, dopo l'arrivo, è detto a parole
   («ha vinto»): il fluo resta alle barre. */
.fagiano-breve--tappa,
.fagiano-breve--generale { margin-bottom: 0; }
.tappe .fagiano-breve--generale { margin: 0 0 2rem; }
.fagiano-breve--tappa .fagiano-breve__titolo { font-size: 1.375rem; color: var(--b-testo); }
.fagiano-breve--generale .fagiano-breve__titolo { font-size: 1.625rem; }
.fagiano-breve__frase { margin: -6px 0 12px; color: var(--b-testo); }
.fagiano-breve__elenco li.is-vincitore .fagiano-breve__nome { font-weight: 700; }
.fagiano-breve__vinto { display: inline-block; margin-left: .3em; padding: 0 .35em; border: 1px solid var(--b-testo); font-family: var(--b-mono); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.fagiano-breve__seconda { color: var(--b-secondario); }
.fagiano-breve--generale .fagiano-breve__elenco li,
.fagiano-breve__colonne { grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) 4.4rem 4.4rem; }
.fagiano-breve__colonne { display: grid; gap: 12px; margin: 0 0 2px; font-family: var(--b-mono); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; color: var(--b-secondario); }
.fagiano-breve__colonne span { text-align: right; }
.fagiano-breve__colonne span:first-child { grid-column: 3; }
.fagiano-breve__scenari { margin: 14px 0 0; }
.fagiano-breve__scenari dt { font-family: var(--b-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--b-secondario); margin: 0 0 2px; }
.fagiano-breve__scenari dd { margin: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--b-filo); }
.fagiano-breve__scenari dd.is-primo { font-weight: 600; }
.fagiano-breve__impronta { margin: 0; font-family: var(--b-mono); font-size: .75rem; color: var(--b-secondario); overflow-wrap: anywhere; }
.fagiano-breve__impronta code { font-family: inherit; font-size: inherit; color: var(--b-testo); background: none; padding: 0; }
@media (max-width: 480px) {
	.fagiano-breve--generale .fagiano-breve__elenco li,
	.fagiano-breve__colonne { grid-template-columns: minmax(0, 1fr) 4.4rem 4.4rem; }
	.fagiano-breve__colonne span:first-child { grid-column: 2; }
}
/* Il fagIAno a corsa finita, in un riquadro (tela 4b; fagianata_fagiano_riquadro_html()): nebbia, chi ha vinto e la
   probabilità che gli avevamo dato (il fluo del riquadro), il favorito e com'è finita, e lo scontrino intero chiuso
   sotto. Nella pagina della corsa e della tappa due colonne al computer; nella colonna della generale una sola. */
.fagiano-riquadro { --riquadro-aria: clamp(1rem, 3vw, 1.5rem); display: grid; gap: 1rem 2.5rem; align-items: start; background: var(--cicl-surface); color: var(--cicl-text); padding: var(--riquadro-aria); }
.spazio-ai-riquadro { margin-block: 3rem; }
/* I link «#fagiano», «#fagiano-tappa» e «#scontrino» arrivano sotto la testata che resta in alto */
.spazio-ai-riquadro, .tappa-fagiano, .fagiano-riquadro__intero .scontrino { scroll-margin-top: 72px; }
.fagiano-riquadro__etichetta { margin: 0 0 .6rem; font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cicl-muted); }
/* «fagIAno» si scrive sempre così, anche fra le maiuscole dell'etichetta */
.fagiano-riquadro__etichetta b { font-weight: 700; color: var(--cicl-text); text-transform: none; letter-spacing: .06em; }
.fagiano-riquadro__titolo { margin: 0; font-family: var(--cicl-font-testo); font-size: 1.375rem; font-weight: 650; line-height: 1.3; letter-spacing: 0; color: var(--cicl-text); }
.fagiano-riquadro__frase { margin: .5rem 0 0; font-size: 1.1875rem; line-height: 1.4; color: var(--cicl-text); }
.fagiano-riquadro__cifra { background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: 0 .25em; font-family: var(--cicl-font-numeri); font-weight: 700; font-variant-numeric: tabular-nums; }
.fagiano-riquadro__righe { margin: 0; display: grid; gap: .75rem; }
.fagiano-riquadro__righe > div { padding-top: .6rem; border-top: 1px solid var(--cicl-line); }
.fagiano-riquadro__righe dt { font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cicl-muted); }
.fagiano-riquadro__righe dd { margin: .2rem 0 0; font-size: 1rem; line-height: 1.45; color: var(--cicl-body); }
.fagiano-riquadro__intero { grid-column: 1 / -1; }
.fagiano-riquadro__intero > summary { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1rem; border: 1.5px solid var(--cicl-text); background: var(--cicl-bg); color: var(--cicl-text); font-weight: 600; cursor: pointer; list-style: none; }
.fagiano-riquadro__intero > summary::-webkit-details-marker { display: none; }
.fagiano-riquadro__intero > summary:hover { background: var(--cicl-text); color: var(--cicl-bg); }
.fagiano-riquadro__freccia { display: inline-block; font-family: var(--cicl-font-numeri); }
.fagiano-riquadro__intero[open] .fagiano-riquadro__freccia { transform: rotate(180deg); }
/* Aperto: la fascia scura dello scontrino arriva ai bordi del riquadro; lo scontrino di una tappa resta sulla nebbia */
.fagiano-riquadro__intero > .spazio-ai { margin: 1.25rem calc(-1 * var(--riquadro-aria)) calc(-1 * var(--riquadro-aria)); }
.fagiano-riquadro__intero > .fagiano-breve { margin: 1.25rem 0 0; }
.fagiano-breve--dentro { border-top: 0; padding-top: 0; }
@media (min-width: 900px) {
	.spazio-ai-riquadro .fagiano-riquadro,
	.tappa-fagiano .fagiano-riquadro { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

/* Nella tabella delle tappe: la previsione sotto la prossima tappa a tutta larghezza, lo scontrino in una riga */
.tappe__tabella .tappe__gelo--previsione td { padding: .25rem 0 1.5rem; font-family: var(--cicl-font-testo); font-size: 1rem; letter-spacing: 0; color: var(--cicl-body); }
.tappe__tabella .tappe__gelo--scontrino td { font-family: var(--cicl-font-testo); font-size: .875rem; letter-spacing: 0; color: var(--cicl-body); }
.tappe__gelo--scontrino strong { font-weight: 700; color: var(--cicl-text); }
.tappe__fagiano { font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-text); }

/* ------------------------------------------------------------------
   Il registro del fagIAno: ogni corsa congelata e il suo scontrino
   (blocco registro-fagiano)
   ------------------------------------------------------------------ */
.registro-fagiano { margin-bottom: 2.5rem; }
/* La tabella prende la colonna larga (1240), anche se la pagina è nella colonna del testo; il punteggio e la nota restano
   larghi quanto il testo, allineati a sinistra con lui */
@media (min-width: 900px) {
	.corpo .registro-fagiano.alignwide { max-width: none; width: min(var(--wp--style--global--wide-size, 1240px), 100vw - 2.5rem); margin-left: calc(50% - min(var(--wp--style--global--wide-size, 1240px), 100vw - 2.5rem) / 2) !important; margin-right: 0 !important; }
	.registro-fagiano .registro-fagiano__punteggio, .registro-fagiano .registro-fagiano__nota { max-width: var(--wp--style--global--content-size, 720px); margin-left: calc((100% - var(--wp--style--global--content-size, 720px)) / 2); }
}
.registro-fagiano__vuoto { border-top: 2px solid var(--b-testo); padding-top: 14px; color: var(--b-secondario); max-width: 44rem; }
.registro-fagiano__punteggio { margin: 0 0 1.75rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1px; background: var(--b-filo); border-top: 2px solid var(--b-testo); }
.registro-fagiano__punteggio div { background: var(--cicl-bg, #fff); padding: 14px 16px 16px 0; display: flex; flex-direction: column; gap: 6px; }
.registro-fagiano__punteggio div + div { padding-left: 16px; }
@media (max-width: 640px) { .registro-fagiano__punteggio div + div { padding-left: 0; } }
.registro-fagiano__punteggio dd { margin: 0; font-family: var(--b-mono); font-size: 2rem; font-weight: 500; line-height: 1.05; font-variant-numeric: tabular-nums; }
.registro-fagiano__punteggio dt { font-size: .875rem; line-height: 1.4; color: var(--b-secondario); }
.registro-fagiano__scorri { overflow-x: auto; }
.registro-fagiano__tabella { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.registro-fagiano__tabella th, .registro-fagiano__tabella td { text-align: left; padding: .65rem 1.25rem .65rem 0; border-bottom: 1px solid var(--b-filo); vertical-align: top; }
.registro-fagiano__tabella :is(th, td):last-child { padding-right: 0; }
.registro-fagiano__tabella thead th { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--b-secondario); border-bottom: 2px solid var(--b-testo); white-space: nowrap; vertical-align: bottom; }
.registro-fagiano__tabella thead abbr { text-decoration: none; }
.registro-fagiano__chi { text-transform: none; letter-spacing: 0; }
.registro-fagiano__tabella tbody th { font-weight: 600; white-space: nowrap; }
.registro-fagiano__tabella tbody th a { color: inherit; }
.registro-fagiano__vincitore { white-space: nowrap; }
.registro-fagiano__data { display: block; font-family: var(--b-mono); font-size: .75rem; font-weight: 400; color: var(--b-secondario); margin-top: 2px; }
.registro-fagiano__cifre { font-family: var(--b-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.registro-fagiano__posto { color: var(--b-secondario); font-size: .8rem; }
.registro-fagiano__ricalcolo { display: block; white-space: nowrap; }
/* Il fagIAno meglio della classifica UCI: in neretto, senza fondo (il fluo non si spende su ogni riga) */
.registro-fagiano__cifre .is-meglio { font-weight: 700; }
.registro-fagiano__cifre .is-peggio { font-weight: 400; }
.registro-fagiano__attesa { color: var(--b-secondario); white-space: normal; }
/* Al telefono ogni corsa è una scheda: il nome e la data in cima, poi le cifre con l'intestazione accanto */
@media (max-width: 640px) {
	.registro-fagiano .registro-fagiano__scorri { overflow: visible; padding-right: 0; -webkit-mask-image: none; mask-image: none; }
	.registro-fagiano__tabella, .registro-fagiano__tabella tbody, .registro-fagiano__tabella tr { display: block; }
	.registro-fagiano__tabella thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.registro-fagiano__tabella tbody tr { border-top: 2px solid var(--b-testo); padding: .65rem 0 .9rem; }
	.registro-fagiano__tabella tbody tr + tr { border-top-width: 1px; border-top-color: var(--b-filo); }
	.registro-fagiano__tabella :is(th, td) { display: block; border: 0; padding: .15rem 0; }
	.registro-fagiano__tabella tbody th { white-space: normal; padding-bottom: .4rem; }
	.registro-fagiano__tabella td[data-etichetta]::before { content: attr(data-etichetta); display: block; font-family: var(--b-mono); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--b-secondario); }
	.registro-fagiano__tabella td + td { margin-top: .35rem; }
}
.registro-fagiano__nota { margin-top: 1rem; font-size: .875rem; line-height: 1.5; color: var(--b-secondario); max-width: 44rem; }
/* In testa la prova del modello (asfalto, la cifra del fagIAno in fluo) accanto al punteggio degli scontrini */
.registro-fagiano__testa { display: grid; gap: 1.5rem; margin-bottom: 2rem; }
@media (min-width: 900px) {
	.registro-fagiano__testa { grid-template-columns: minmax(0, 1fr) 420px; gap: 3rem; align-items: start; }
	.registro-fagiano__prova { grid-column: 2; grid-row: 1; }
	.registro-fagiano .registro-fagiano__testa .registro-fagiano__punteggio { grid-column: 1; grid-row: 1; max-width: none; margin: 0; }
}
.registro-fagiano__testa .registro-fagiano__punteggio { margin: 0; }
.registro-fagiano__prova { background: var(--b-asfalto); color: var(--b-su-asfalto); padding: 24px 28px; font-family: var(--b-mono); display: flex; flex-direction: column; gap: 10px; }
.registro-fagiano__prova p { margin: 0; }
.registro-fagiano .registro-fagiano__prova-titolo { margin: 0; font-family: var(--b-mono); font-size: .75rem; font-weight: 400; line-height: 1.5; color: var(--b-su-asfalto-2); }
.registro-fagiano__prova-titolo, .registro-fagiano__prova-nota { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; line-height: 1.5; color: var(--b-su-asfalto-2); }
.registro-fagiano__prova-nota { letter-spacing: .06em; }
.registro-fagiano__prova dl { margin: 0; display: grid; gap: 6px; }
.registro-fagiano__prova dl div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.registro-fagiano__prova dt { font-size: .875rem; text-transform: uppercase; }
.registro-fagiano__prova dd { margin: 0; font-size: 1.75rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.registro-fagiano__prova .is-fagiano dd { font-size: 2.5rem; font-weight: 600; color: var(--b-fluo); }
/* La parete: gli scontrini in miniatura sulla nebbia, la carta bianca in tutti e due i temi (come .scontrino) */
.registro-fagiano__parete { list-style: none; margin: 0 0 1.5rem; padding: 24px; background: var(--cicl-surface); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
@media (min-width: 700px) { .registro-fagiano__parete { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 1000px) { .registro-fagiano__parete { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .registro-fagiano__parete { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 600px) { .registro-fagiano__parete { padding: 16px 12px; } }
.scontrino-mini { --s-carta: #FFFFFF; --s-inchiostro: #0D0F12; margin: 0; }
.scontrino-mini .scontrino-mini__carta {
	display: flex; flex-direction: column; text-decoration: none; background: var(--s-carta); color: var(--s-inchiostro);
	font-family: var(--b-mono); font-size: 12px; line-height: 1.5; padding: 22px 16px 26px;
	-webkit-mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 10px 51% repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 10px 51% repeat-x;
	mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 10px 51% repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 10px 51% repeat-x;
}
.scontrino-mini .scontrino-mini__carta:hover .scontrino-mini__corsa { color: var(--cicl-cobalt); }
.scontrino-mini .scontrino-mini__carta:focus-visible { outline-offset: -4px; }
/* La tappa in busta sigillata: solo l'ora e l'impronta, sbiadita finché la tappa non arriva */
.scontrino-mini--busta .scontrino-mini__carta { opacity: .62; }
/* Sotto la striscia, l'immagine da condividere (inc/scontrino-immagine.php): un link suo, alto 44px */
.scontrino-mini .scontrino-mini__immagine { display: flex; align-items: center; min-height: 44px; font-family: var(--b-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--b-testo); text-decoration: underline; text-underline-offset: 3px; }
.scontrino-mini .scontrino-mini__immagine:hover { color: var(--cicl-cobalt); }
.scontrino-mini__testa, .scontrino-mini__quando { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.scontrino-mini__corsa { font-family: var(--b-titoli); font-style: italic; font-size: 19px; line-height: 1.15; margin: 6px 0 4px; }
.scontrino-mini__righe { display: flex; flex-direction: column; border-top: 1px dashed currentColor; border-bottom: 1px dashed currentColor; margin: 10px 0; padding: 10px 0; text-transform: uppercase; }
.scontrino-mini__righe .is-forte { font-weight: 700; }
.scontrino-mini__impronta { font-size: 11px; letter-spacing: .04em; word-break: break-all; }
/* Le versioni del fagIAno sullo stesso banco (inc/fagiano-versioni.php): il grafico di laboratorio/grafici.py */
.registro-fagiano__versioni { max-width: 720px; margin: 2.5rem 0; border-top: 2px solid var(--b-testo); padding-top: 14px; }
.registro-fagiano .registro-fagiano__versioni-titolo { margin: 0 0 1.25rem; font-family: var(--cicl-font-titoli); font-size: 1.375rem; font-weight: 600; line-height: 1.2; }
.registro-fagiano__versioni .grafico { margin: 0; }
.registro-fagiano__versioni figcaption { margin-top: .75rem; font-size: .875rem; line-height: 1.5; color: var(--cicl-muted); }
.registro-fagiano__tutte { margin-bottom: 1rem; }
.registro-fagiano__tutte > summary { cursor: pointer; padding: .8rem 0; font-family: var(--b-mono); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid var(--b-filo); }
.registro-fagiano__tutte > summary::marker { color: var(--cicl-cobalt); }
.registro-fagiano__tutte[open] > summary { margin-bottom: 1rem; }

/* ------------------------------------------------------------------
   La corsa in diretta (blocco diretta): la radiocronaca con i distacchi
   ------------------------------------------------------------------ */
.diretta { margin: 0 0 2.5rem; border-top: 2px solid var(--b-testo); padding-top: 14px; }
.diretta__capo { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 12px; }
.diretta__titolo { font-family: var(--b-mono); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin: 0; }
/* A corsa finita la diretta sta in fondo alla pagina, chiusa (inc/corse.php, fagianata_corsa_prima_e_dopo()): il
   titolo lo dice la riga che la apre, dentro restano l'ora dell'ultimo aggiornamento e le voci */
.diretta-chiusa { margin: 0 0 2.5rem; border-top: 2px solid var(--cicl-text); }
.diretta-chiusa > summary { cursor: pointer; padding: 14px 0; font-family: var(--cicl-font-numeri); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.diretta-chiusa > .diretta { border-top: 0; padding-top: 0; }
.diretta-chiusa .diretta__titolo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.diretta__ora-aggiornamento { font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.diretta__ascolta { margin-left: auto; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 5px 12px; border: 1.5px solid var(--b-testo); border-radius: 999px; background: transparent; color: var(--b-testo); cursor: pointer; }
.diretta__ascolta::before { content: "▶ "; }
.diretta__ascolta[aria-pressed="true"] { background: var(--cicl-fluo, #D4FF3F); border-color: var(--cicl-fluo, #D4FF3F); color: #0D0F12; }
.diretta__ascolta[aria-pressed="true"]::before { content: "■ "; }
.diretta__adesso { margin: 0 0 14px; padding: 12px 14px; background: var(--b-asfalto); color: var(--b-su-asfalto); border-radius: 4px; }
.diretta__adesso[hidden] { display: none; }
.diretta__adesso { position: relative; }
.diretta__schermo { position: absolute; top: 10px; right: 12px; z-index: 2; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 9px; border: 1px solid var(--b-filo-scuro); border-radius: 999px; background: var(--b-asfalto); color: var(--b-su-asfalto-2); cursor: pointer; }
.diretta__schermo[hidden], .diretta__adesso--stima .diretta__schermo { display: none; }
.diretta__adesso:fullscreen { padding: 4vh 4vw; overflow: auto; border-radius: 0; display: flex; flex-direction: column; justify-content: center; }
.diretta__adesso:fullscreen .diretta__profilo-box { padding-top: 76px; }
.diretta__adesso:fullscreen .diretta__etichette { height: 76px; }
.diretta__adesso:fullscreen .diretta__etichetta { font-size: 1.25rem; line-height: 34px; }
.diretta__adesso:fullscreen .diretta__adesso-titolo, .diretta__adesso:fullscreen .diretta__gruppo, .diretta__adesso:fullscreen .diretta__salite li { font-size: 1.25rem; }
.diretta__adesso:fullscreen .diretta__prossima { font-size: 1.5rem; }
.diretta__profilo-box { position: relative; margin: 0 0 6px; padding-top: 44px; }
.diretta__profilo { display: block; width: 100%; height: auto; }
.diretta__nomi-salite { position: relative; height: 62px; margin-top: 4px; }
.diretta__nome-salita { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; white-space: nowrap; font-family: var(--b-mono); font-size: 0.75rem; line-height: 1.25; color: var(--b-su-asfalto-2); }
.diretta__nome-salita b { color: var(--b-su-asfalto); font-weight: 700; }
.diretta__adesso:fullscreen .diretta__nome-salita { font-size: 1rem; }
.diretta__etichette { position: absolute; inset: 0 0 auto 0; height: 44px; padding: 2px 140px 0 0; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; pointer-events: none; }
.diretta__etichetta { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; line-height: 18px; color: var(--b-su-asfalto); }
.diretta__etichetta::before { content: ""; display: inline-block; width: 0.7em; height: 0.7em; margin-right: 0.6em; border-radius: 50%; background: currentColor; }
.diretta__etichetta--testa { color: var(--b-fluo); }
.diretta__etichetta--inseguitori { color: var(--b-cobalto); }
.diretta__etichetta--attardati { color: var(--b-spento); }
.diretta__segno--attardati line { stroke: var(--b-spento); }
.diretta__segno--attardati circle { fill: var(--b-spento); }
.diretta__profilo-area { fill: var(--b-filo-scuro); }
.diretta__profilo-fatto { fill: var(--b-su-asfalto-2); fill-opacity: .32; }
.diretta__grafico { position: relative; }
.diretta__griglia { stroke: var(--b-filo-scuro); stroke-width: 1; }
.diretta__quote { position: absolute; inset: 0; pointer-events: none; }
.diretta__quota { position: absolute; left: 0; transform: translateY(-110%); font-family: var(--b-mono); font-size: 0.625rem; color: var(--b-spento); }
.diretta__cima-linea { stroke: var(--b-su-asfalto-2); stroke-width: 1; stroke-dasharray: 3 3; }
.diretta__testa-km { position: absolute; top: -2px; transform: translate(-50%, -100%); font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; color: var(--b-fluo); white-space: nowrap; }
.diretta__testa-km[hidden] { display: none; }
.diretta__profilo-linea { fill: none; stroke: var(--b-su-asfalto-2); stroke-width: 1.2; }
.diretta__segno line { stroke-width: 2px; vector-effect: non-scaling-stroke; }
.diretta__segno circle { stroke: var(--b-asfalto); stroke-width: 2.5px; vector-effect: non-scaling-stroke; }
.diretta__segno--testa line { stroke: var(--b-fluo); }
.diretta__segno--testa circle { fill: var(--b-fluo); }
.diretta__stima { margin: 0 0 8px; font-size: 0.75rem; line-height: 1.35; color: var(--b-su-asfalto-2); }
.diretta__stima[hidden] { display: none; }
.diretta__segno--inseguitori line { stroke: var(--b-cobalto); }
.diretta__segno--inseguitori circle { fill: var(--b-cobalto); }
.diretta__segno--gruppo line { stroke: var(--b-su-asfalto); }
.diretta__segno--gruppo circle { fill: var(--b-su-asfalto); }
@media (prefers-reduced-motion: no-preference) {
	.diretta__segno circle { transition: cx .6s linear, cy .6s linear; }
}
.diretta__adesso-titolo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 8px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.06em; }
.diretta__adesso-titolo > span:first-child { font-weight: 700; text-transform: uppercase; color: var(--b-fluo); }
.diretta__adesso-capo { color: var(--b-su-asfalto-2); }
.diretta__cronometro { font-variant-numeric: tabular-nums; }
.diretta__gruppi { list-style: none; margin: 0; padding: 0; }
.diretta__prossima { margin: -2px 0 8px; font-size: 0.9375rem; font-weight: 600; color: var(--b-fluo); }
.diretta__prossima[hidden] { display: none; }
/* le salite: quelle fatte con le stime e, accanto, la scheda di quella in corso o della prossima */
.diretta__staccati { margin: 10px 0 0; font-size: 0.9375rem; color: var(--b-su-asfalto-2); }
.diretta__staccati span { margin-right: 10px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--b-spento); }
.diretta__salite-zona { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 32px; align-items: start; }
@media (min-width: 900px) { .diretta__salite-zona:has(.diretta__salite):has(.diretta__salita:not([hidden])) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); } }
/* la scheda della salita: l'altimetria dalla pendenza ogni 500 m (il numero sotto ogni tratto), settori e località della Race Guide */
.diretta__salita { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--b-filo-scuro); font-family: var(--b-mono); color: var(--b-su-asfalto-2); }
.diretta__salita[hidden] { display: none; }
.diretta__salita-testa { margin: 0 0 8px; font-size: 0.8125rem; color: var(--b-su-asfalto); font-variant-numeric: tabular-nums; }
.diretta__salita-profilo { display: block; width: 100%; height: auto; }
.diretta__salita-profilo .diretta__tratto { fill: var(--b-spento); }
.diretta__salita-profilo .diretta__tratto--media { fill: var(--b-su-asfalto-2); }
.diretta__salita-profilo .diretta__tratto--dura { fill: var(--b-fluo); }
.diretta__salita-legenda { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 6px; }
.diretta__salita-legenda .diretta__etichetta { line-height: 1.4; }
.diretta__salita-tacche circle { stroke: var(--b-asfalto); stroke-width: 2.5px; vector-effect: non-scaling-stroke; }
.diretta__salita-tacche .diretta__segno--testa circle { fill: var(--b-fluo); }
.diretta__salita-tacche .diretta__segno--inseguitori circle { fill: var(--b-cobalto); }
.diretta__salita-tacche .diretta__segno--gruppo circle { fill: var(--b-su-asfalto); }
.diretta__salita-tacche .diretta__segno--attardati circle { fill: var(--b-spento); }
.diretta__salita-taglio { stroke: var(--b-asfalto); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.diretta__salita-linea { fill: none; stroke: var(--b-su-asfalto-2); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.diretta__salita-punto { stroke: var(--b-su-asfalto-2); stroke-width: 1px; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.diretta__salita-qui { stroke: var(--b-su-asfalto); stroke-width: 2px; vector-effect: non-scaling-stroke; }
.diretta__salita-qui--testa { stroke: var(--b-fluo); stroke-width: 3px; }
.diretta__salita-qui--inseguitori { stroke: var(--b-cobalto); }
.diretta__salita-qui--attardati { stroke: var(--b-spento); }
.diretta__salita-qui-bordo { stroke: var(--b-asfalto); stroke-width: 6px; vector-effect: non-scaling-stroke; }
.diretta__salita-numeri { position: relative; height: 34px; margin-top: 5px; }
.diretta__salita-numeri span { position: absolute; top: 0; font-size: 0.6875rem; line-height: 1; writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg); font-variant-numeric: tabular-nums; }
.diretta__salita-numeri .diretta__salita-dura { color: var(--b-fluo); }
.diretta__salita-riga { margin: 8px 0 0; font-size: 0.75rem; line-height: 1.4; }
.diretta__adesso:fullscreen .diretta__salita-testa { font-size: 1.125rem; }
.diretta__adesso:fullscreen .diretta__salita-numeri { height: 46px; }
.diretta__adesso:fullscreen .diretta__salita-numeri span { font-size: 0.9375rem; }
.diretta__adesso:fullscreen .diretta__salita-riga { font-size: 1rem; }
.diretta__corridore { white-space: nowrap; }
.diretta__bandiera { font-size: 1.05em; }
.diretta__sigla { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; padding: 0 4px; border: 1px solid var(--b-filo-scuro); border-radius: 2px; color: var(--b-su-asfalto-2); vertical-align: 1px; }
.diretta__salite { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--b-filo-scuro); }
.diretta__salite-titolo { margin: 0 0 6px; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--b-fluo); }
.diretta__salite ol { list-style: none; margin: 0; padding: 0; }
.diretta__salite li { padding: 5px 0; font-size: 0.9375rem; }
.diretta__salita-misure { color: var(--b-su-asfalto-2); font-size: 0.8125rem; }
.diretta__salita-numeri { display: block; font-family: var(--b-mono); font-size: 0.8125rem; }
.diretta__salite-nota { margin: 6px 0 0; font-size: 0.75rem; line-height: 1.35; color: var(--b-su-asfalto-2); }
.diretta__gruppo { display: grid; grid-template-columns: 7.5rem 4.5rem 1fr; gap: 2px 10px; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--b-filo-scuro); font-size: 0.9375rem; }
.diretta__gruppo:first-child { border-top: 0; }
.diretta__gruppo-nome { font-family: var(--b-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--b-su-asfalto-2); }
.diretta__gruppo--testa .diretta__gruppo-nome { color: var(--b-fluo); font-weight: 700; }
.diretta__gruppo-distacco { font-family: var(--b-mono); font-weight: 600; }
.diretta__gruppo-chi { color: var(--b-su-asfalto); }
@media (max-width: 600px) {
	.diretta__gruppo { grid-template-columns: 1fr auto; }
	.diretta__gruppo-chi { grid-column: 1 / -1; }
}
.diretta__voci { list-style: none; margin: 0; padding: 0; }
.diretta__voci:not(.diretta__voci--tutte) > .diretta__voce:nth-child(n+9) { display: none; }
/* Le voci appena arrivate: in nebbia per qualche secondo; la più recente anche con il filo fluo a sinistra (un fluo
   per blocco, e mai sotto il testo: nel tema scuro il testo chiaro sul fluo non si leggerebbe) */
.diretta__voce--nuova { animation: diretta-nuova 4s ease-out; }
.diretta__voce--nuova.diretta__voce--ultima { animation-name: diretta-ultima; }
@keyframes diretta-nuova { from { background: var(--cicl-surface); } to { background: transparent; } }
@keyframes diretta-ultima {
	from { background: var(--cicl-surface); box-shadow: -6px 0 0 0 var(--b-fluo); }
	75% { background: var(--cicl-surface); box-shadow: -6px 0 0 0 var(--b-fluo); }
	to { background: transparent; box-shadow: -6px 0 0 0 transparent; }
}
.diretta__tutte { display: block; width: 100%; margin: 10px 0 0; padding: 10px 12px; font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; background: transparent; color: var(--b-testo); border: 1.5px solid var(--b-testo); border-radius: 4px; cursor: pointer; }
.diretta__tutte[hidden] { display: none; }
.diretta__voce { display: grid; grid-template-columns: 5.5rem 1fr; gap: 2px 14px; padding: 12px 0; border-bottom: 1px solid var(--b-filo); }
.diretta__quando { display: flex; flex-direction: column; gap: 2px; font-family: var(--b-mono); font-size: 0.8125rem; }
.diretta__quando time { font-weight: 600; color: var(--cicl-cobalt, #2846F0); }
.diretta__km { color: var(--b-secondario); }
.diretta__testo { margin: 0; font-size: 1rem; line-height: 1.45; }
.diretta__distacchi { grid-column: 2; list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 0.875rem; }
.diretta__distacchi b { font-family: var(--b-mono); font-weight: 600; }
.diretta__voce--arrivo .diretta__testo, .diretta__voce--attacco .diretta__testo { font-weight: 600; }
.diretta__nota { font-size: 0.8125rem; color: var(--b-secondario); margin: 10px 0 0; }
/* senza voci dalle fonti (il Guangxi): la stima dalla tabella di marcia nel riquadro, e la riga che aspetta le voci */
.diretta__tabella { font-size: 0.875rem; line-height: 1.45; color: var(--b-su-asfalto-2); margin: 8px 0 0; max-width: 62ch; }
.diretta__vuota { font-size: 0.9375rem; color: var(--b-secondario); margin: 12px 0 0; }
/* La radiocronaca ferma (fagianata_diretta_ferma()): una riga in nebbia in cima, detta com'è, senza colori d'allarme */
.diretta__ferma { margin: 0 0 14px; padding: 12px 14px; background: var(--cicl-surface); color: var(--cicl-text); font-size: 0.9375rem; line-height: 1.45; max-width: 46rem; }
.diretta__ferma[hidden] { display: none; }
@media (max-width: 600px) {
	.diretta__voce { grid-template-columns: 4.2rem 1fr; }
}

/* ------------------------------------------------------------------
   Oggi (blocco oggi): la pagina per chi guarda la corsa, e la striscia
   in prima pagina che ci porta
   ------------------------------------------------------------------ */

.oggi { margin: 0 0 3rem; }
.oggi__capo { padding: 2.5rem 0 1.5rem; }
.oggi__etichetta { font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; margin: 0 0 8px; }
.oggi__titolo { font-family: var(--b-titoli); font-size: clamp(2.4rem, 7vw, 4.5rem); line-height: 1; margin: 0 0 12px; }
.oggi__percorso { font-family: var(--b-mono); font-size: 0.9375rem; margin: 0 0 14px; }
.oggi__guida { font-size: 1.125rem; line-height: 1.5; max-width: 46rem; margin: 0; }
.oggi__diretta { margin-bottom: 2.5rem; }
.oggi__diretta .oggi__lato { margin-top: 2.5rem; }
/* Una corsa a tappe senza radiocronaca: al telefono il fagIAno della tappa di oggi (e dove vederla) prima della tabella */
@media (max-width: 860px) {
	.oggi__diretta--tappa { display: flex; flex-direction: column; }
	.oggi__diretta--tappa .oggi__lato { order: -1; margin: 0 0 2.5rem; }
}
@media (min-width: 861px) {
	/* la sezione della diretta si scioglie nella griglia: titolo e riquadro su tutta la riga, le voci a sinistra,
	   fagIAno e TV a destra */
	.oggi__diretta { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); column-gap: 3rem; align-items: start; border-top: 2px solid var(--b-testo); padding-top: 14px; }
	.oggi__diretta > .diretta { display: contents; }
	.oggi__diretta .diretta__capo, .oggi__diretta .diretta__adesso { grid-column: 1 / -1; }
	.oggi__diretta .diretta__voci, .oggi__diretta .diretta__tutte, .oggi__diretta .diretta__nota, .oggi__diretta .oggi__attesa, .oggi__diretta .diretta__vuota { grid-column: 1; }
	.oggi__diretta .oggi__lato { grid-column: 2; grid-row: 3 / span 4; margin-top: 0; }
	.oggi__diretta--attesa .oggi__lato, .oggi__diretta--tappa .oggi__lato { grid-row: 1; }
	/* senza il riquadro della corsa (dopo l'arrivo, o prima della stima) il lato sale accanto alle voci */
	.oggi__diretta:has(.diretta__adesso[hidden]) .oggi__lato { grid-row: 2 / span 4; }
	/* l'avviso della radiocronaca ferma su tutta la riga, sotto il titolo; senza la diretta, a sinistra del lato */
	.oggi__diretta .diretta__ferma { grid-column: 1 / -1; }
	.oggi__diretta--attesa .diretta__ferma, .oggi__diretta--tappa .diretta__ferma, .oggi__diretta .oggi__esito { grid-column: 1; }
	.oggi__diretta--tappa > .tappe { grid-column: 1; }
	.oggi__diretta:has(> .diretta .diretta__ferma:not([hidden])) .oggi__lato { grid-row: 4 / span 4; }
	.oggi__diretta:has(> .diretta .diretta__ferma:not([hidden])):has(.diretta__adesso[hidden]) .oggi__lato { grid-row: 3 / span 4; }
	/* senza niente nella colonna della radiocronaca (una corsa che non seguiamo minuto per minuto) il lato da solo */
	/* senza niente nella colonna della radiocronaca (una corsa che non seguiamo minuto per minuto) il fagIAno e dove
	   vederla uno accanto all'altro, senza il filo della diretta */
	.oggi__diretta--solo-lato { display: block; border-top: 0; padding-top: 0; }
	.oggi__diretta--solo-lato .oggi__lato { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 3rem; align-items: start; }
	.oggi__diretta--solo-lato .oggi__lato > * + * { margin-top: 0; }
}
.oggi__diretta--solo-lato .oggi__lato { margin-top: 0; }
/* Dopo l'arrivo, senza la radiocronaca: il podio e la notizia */
.oggi__esito { margin: 0; }
@media (min-width: 861px) {
	.oggi__diretta .oggi__esito .tappe__capo { border-top: 0; padding-top: 0; }
}
.oggi__notizia { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 16px 0 0; }
.oggi__notizia-etichetta { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); }
.oggi__notizia a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-family: var(--b-titoli); font-size: 1.25rem; font-weight: 700; color: inherit; }
/* Le altre corse di oggi, solo nominate: link alle loro pagine, alti 44px */
.oggi__altre { margin: 2rem 0 0; border-top: 1px solid var(--b-filo); padding-top: 10px; }
.oggi--vuoto .oggi__altre { margin: 1.25rem 0 1.5rem; }
.oggi__altre-etichetta { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); margin: 0; }
.oggi__altre ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; padding: 0; }
.oggi__altre a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; font-weight: 600; color: inherit; }
.oggi__colonne { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 2rem 3rem; align-items: start; margin-bottom: 1rem; }
.oggi__lato > * + * { margin-top: 2rem; }
.oggi__attesa { border-top: 2px solid var(--b-testo); padding-top: 14px; color: var(--b-secondario); }
.oggi__tutto { font-family: var(--b-mono); font-size: 0.875rem; font-weight: 600; margin: 2rem 0 0; }
.oggi__tutto a { color: inherit; }
@media (max-width: 860px) {
	.oggi__colonne { grid-template-columns: minmax(0, 1fr); }
}

.oggi-richiamo { margin: 0; background: var(--b-fluo); color: var(--b-su-fluo); }
.oggi-richiamo__link { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; max-width: var(--wp--style--global--wide-size, 1280px); margin: 0 auto; padding: 12px var(--wp--style--root--padding-right, 16px) 12px var(--wp--style--root--padding-left, 16px); color: inherit; text-decoration: none; }
.oggi-richiamo__stato { display: inline-flex; align-items: center; gap: 8px; font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; }
.oggi-richiamo .ultimora__punto { background: var(--b-su-fluo); box-shadow: none; }
.oggi-richiamo__corsa { font-family: var(--b-titoli); font-size: 1.375rem; font-weight: 700; }
.oggi-richiamo__cosa { font-size: 0.9375rem; }
.oggi-richiamo__vai { margin-left: auto; font-size: 1.25rem; font-weight: 700; }
@media (max-width: 600px) {
	.oggi-richiamo__link { padding-top: 9px; padding-bottom: 9px; flex-wrap: nowrap; }
	.oggi-richiamo__cosa { display: none; }
	.oggi-richiamo__corsa { font-size: 1.125rem; }
}
.oggi-richiamo__link:hover .oggi-richiamo__corsa, .oggi-richiamo__link:focus-visible .oggi-richiamo__corsa { text-decoration: underline; }

/* Il vento rispetto alla strada: contro, a favore, laterale */
.vento__rispetto { display: inline-block; margin: 2px 0 0 4px; padding: 1px 6px; font-family: var(--b-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; border-radius: 2px; border: 1px solid var(--b-testo); white-space: nowrap; }
.vento__rispetto--favore { background: var(--b-fluo); border-color: var(--b-fluo); color: var(--b-su-fluo); }
.vento__rispetto--contro { background: var(--b-testo); color: var(--cicl-bg, #fff); }
/* Al telefono l'etichetta va a capo sotto il vento, così la sfumatura delle tabelle che scorrono non la taglia */
@media (max-width: 600px) {
	.vento__rispetto { display: block; width: fit-content; margin: 4px 0 0; }
}

/* --- Nota a margine (le note del fagIAno nelle analisi) ------------- */
/* Nel testo: un riquadro col filo fluo. Negli schermi larghi: nel margine destro, accanto al paragrafo che la richiama. */
.nota {
	margin: 1.75rem 0;
	padding: .9rem 1.1rem 1rem;
	border-left: 4px solid var(--cicl-fluo);
	background: var(--cicl-surface);
	font-size: .9375rem;
	line-height: 1.5;
	color: var(--cicl-body);
}
.nota p { margin: 0; }
.nota__titolo { font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: var(--cicl-text); }
/* Nel testo (sotto i 1360px) la nota segue spesso un titoletto in maiuscolo: la sua intestazione resta leggera */
@media (max-width: 1359px) { .nota__titolo { color: var(--cicl-muted); font-weight: 400; } }
.nota__cifra { font-family: var(--cicl-font-numeri); font-size: 1.625rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.1; color: var(--cicl-text); margin-top: .35rem !important; font-variant-numeric: tabular-nums; }
.nota__testo { margin-top: .4rem !important; }
@media (min-width: 1360px) {
	/* Il layout «constrained» centra i figli con margini !important: la nota esce dalla colonna di 3rem, a destra */
	.corpo > .nota {
		float: right;
		clear: right;
		width: 14rem;
		max-width: none;
		/* il bordo destro della nota sul bordo destro della colonna larga, cioè sul filo della testata */
		margin: .3rem calc((100% - var(--wp--style--global--wide-size, 1240px)) / 2) 1.5rem 2rem !important;
		padding: .6rem 0 0;
		border-left: 0;
		border-top: 1px solid var(--cicl-text);
		background: none;
	}
}
/* Il richiamo nel testo: la cifra sottolineata in fluo e il numero della nota */
.corpo mark:not([style]), .corpo mark.dato {
	background: linear-gradient(transparent 55%, var(--cicl-fluo) 55%);
	color: inherit;
	padding: 0 .05em;
}
:root[data-theme="scuro"] .corpo mark:not([style]), :root[data-theme="scuro"] .corpo mark.dato { background: linear-gradient(transparent 55%, color-mix(in srgb, var(--cicl-fluo) 45%, transparent) 55%); }
.corpo sup.rimando { font-family: var(--cicl-font-numeri); font-size: .625rem; font-weight: 700; margin-left: .1em; }
.corpo sup.rimando a { text-decoration: none; color: var(--cicl-text); }

/* --- Le salite: il percorso e, a corsa finita, le misure (una tabella sola) --- */
.salite-misurate { margin: 2.5rem 0; }
.salite-misurate__capo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 1.25rem; margin: 0 0 .5rem; }
.salite-misurate__titolo { font-size: var(--wp--preset--font-size--grande); margin: 0; }
.salite-misurate__scorri { overflow-x: auto; }
.salite-misurate__tabella { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; border-top: 2px solid var(--cicl-text); }
.salite-misurate--dopo .salite-misurate__tabella { min-width: 46rem; }
/* Le misure dopo un filo: a sinistra il percorso, a destra la corsa */
.salite-misurate__tabella .salite-misurate__prima-misura { border-left: 1px solid var(--cicl-line); }
.salite-misurate__volta { display: block; font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 400; color: var(--cicl-muted); letter-spacing: .02em; white-space: nowrap; }
.salite-misurate__forchetta { display: block; font-size: .75rem; color: var(--cicl-muted); letter-spacing: .02em; }
.salite-misurate__tabella td.salite-misurate__chi-col { text-align: left; white-space: normal; min-width: 9rem; max-width: 14rem; font-family: var(--cicl-font-testo); font-size: .875rem; color: var(--cicl-body); }
.salite-misurate__tabella td.salite-misurate__testa { color: var(--cicl-muted); }
.salite-misurate__tabella thead th.salite-misurate__chi-col { text-align: left; }
.salite-misurate__tabella th, .salite-misurate__tabella td { padding: .55rem .5rem; border-bottom: 1px solid var(--cicl-line); text-align: right; vertical-align: top; white-space: nowrap; }
.salite-misurate__tabella thead th { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); }
.salite-misurate__tabella th:first-child { text-align: left; white-space: normal; }
/* I nomi delle salite vanno a capo fra le parole, mai dentro («Giovenza/na») */
.salite-misurate__tabella th { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.salite-misurate__tabella tbody th { font-family: var(--cicl-font-testo); font-size: 1rem; font-weight: 650; color: var(--cicl-text); }
.salite-misurate__tabella td { font-family: var(--cicl-font-numeri); }
.salite-misurate__tabella td.salite-misurate__arrivi { white-space: normal; max-width: 12rem; }
.salite-misurate--ufficiale td strong { font-weight: 700; color: var(--cicl-text); }
.salite-misurate--vuota td { color: var(--cicl-muted); }
.salite-misurate__come { font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); margin: .6rem 0 0; }
/* Al telefono (tavola 4c) la tabella diventa un elenco: ogni salita su due righe, il nome e a destra tempo e watt;
   sotto, piccolo, dove sta e com'è, e a destra la forchetta o il più veloce. Niente da scorrere di lato. */
.salite-misurate__lista { display: none; list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cicl-text); }
.salite-misurate__lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .75rem; align-items: baseline; padding: .6rem 0; border-bottom: 1px solid var(--cicl-line); }
.salite-misurate__lista-nome { font-family: var(--cicl-font-testo); font-size: 1rem; font-weight: 650; color: var(--cicl-text); }
.salite-misurate__lista-misura { font-family: var(--cicl-font-numeri); font-size: .8125rem; color: var(--cicl-text); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.salite-misurate__lista-misura strong { font-weight: 700; }
.salite-misurate__lista-sotto { grid-column: 1; font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); letter-spacing: .02em; }
.salite-misurate__lista-accanto { grid-column: 2; font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); text-align: right; }
/* Un fluo solo nella tabella: i watt per chilo più alti della giornata (la regola in .claude/skills/design-fagianata) */
.salite-misurate__record { background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: 0 .3em; font-weight: 700; }
@media (max-width: 600px) {
	.salite-misurate__scorri { display: none; }
	.salite-misurate__lista { display: block; }
}

/* --- La corsa, prima e dopo: i pezzi di una corsa in fila ------------ */
.pezzi-corsa { margin: 2.5rem 0; border-top: 3px double var(--cicl-text); padding-top: .9rem; }
.pezzi-corsa__titolo { font-size: var(--wp--preset--font-size--grande); margin: 0 0 .75rem; }
.pezzi-corsa__capo { margin: 0 0 .8rem; display: flex; flex-wrap: wrap; gap: .25rem 1rem; align-items: baseline; }
.pezzi-corsa__etichetta { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pezzi-corsa__capo a { font-family: var(--cicl-font-titoli); font-size: 1.35rem; font-weight: 600; text-decoration: none; color: var(--cicl-text); }
.pezzi-corsa__capo a:hover { color: var(--cicl-cobalt); }
.pezzi-corsa__fila { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0; }
.pezzi-corsa__pezzo { display: flex; flex-direction: column; gap: .3rem; padding: .7rem 1rem .8rem 0; border-top: 1px solid var(--cicl-line); }
.pezzi-corsa__formato { font-family: var(--cicl-font-numeri); font-size: 0.75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); }
.pezzi-corsa__pezzo--qui .pezzi-corsa__formato { color: var(--cicl-text); font-weight: 700; }
.pezzi-corsa__pezzo--qui { border-top: 3px solid var(--cicl-fluo); }
.pezzi-corsa__nome { font-family: var(--cicl-font-titoli); font-size: 1.05rem; font-weight: 600; line-height: 1.25; color: var(--cicl-text); text-decoration: none; }
a.pezzi-corsa__nome:hover { color: var(--cicl-cobalt); }

/* --- I corridori di questo pezzo: i protagonisti, in fondo all'articolo -- */
.corridori-pezzo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 1rem; border-top: 1px solid var(--cicl-line); padding-top: .5rem; }
.corridori-pezzo__etichetta { margin: 0; font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.corridori-pezzo__nomi { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.1rem; }
.corridori-pezzo__nomi a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--cicl-font-titoli); font-size: 1.05rem; font-weight: 600; color: var(--cicl-text); text-decoration: none; }
.corridori-pezzo__nomi a:hover { color: var(--cicl-cobalt); }

/* --- Prevista e vissuta: la cronotabella contro le ore vere ---------- */
.tabella-vissuta { margin: 2.5rem 0; }
.tabella-vissuta__titolo { font-size: var(--wp--preset--font-size--grande); margin: 0; }
.tabella-vissuta__sommario { font-family: var(--cicl-font-titoli); font-style: italic; margin: .2rem 0 .9rem; color: var(--cicl-body); }
.tabella-vissuta__scorri { overflow-x: auto; }
.tabella-vissuta__tabella { width: 100%; min-width: 44rem; border-collapse: collapse; font-variant-numeric: tabular-nums; border-top: 3px double var(--cicl-text); }
.tabella-vissuta__tabella thead th { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--cicl-muted); text-align: right; padding: .5rem .45rem; border-bottom: 1px solid var(--cicl-text); white-space: nowrap; }
.tabella-vissuta__tabella thead th.tabella-vissuta__luogo { text-align: left; }
/* I numeri in Geist Mono, le località in Schibsted (le cime in neretto) */
.tabella-vissuta__tabella td, .tabella-vissuta__tabella tbody th { padding: .45rem; border-bottom: 1px solid var(--cicl-line); text-align: right; font-family: var(--cicl-font-numeri); font-size: .875rem; white-space: nowrap; }
.tabella-vissuta__tabella tbody th { text-align: left; font-family: var(--cicl-font-testo); font-size: .95rem; font-weight: 650; color: var(--cicl-text); white-space: normal; }
.tabella-vissuta__tabella td.tabella-vissuta__passata { text-align: center; }
.tabella-vissuta__tabella td:last-child { font-family: var(--cicl-font-numeri); font-size: .8125rem; }
.tabella-vissuta__vera { display: inline-block; font-family: var(--cicl-font-numeri); font-size: .9rem; font-weight: 700; color: var(--cicl-text); }
.tabella-vissuta__come { font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); margin: .6rem 0 0; }
/* «All’arrivo» va a capo dopo l'apostrofo solo al telefono */
@media (min-width: 601px) { .tabella-vissuta__tabella wbr { display: none; } }
/* Al telefono la cronotabella resta alla media di mezzo, accanto all'ora vera: via le altre due medie e la quota, e
   la larghezza minima. Così la tabella sta nello schermo senza scorrere. */
@media (max-width: 600px) {
	.tabella-vissuta__tabella { min-width: 0; }
	/* sta nello schermo: niente sfumatura «si scorre» (le tabelle che scorrono, più sotto) */
	.tabella-vissuta__scorri.tabella-vissuta__scorri { padding-right: 0; -webkit-mask-image: none; mask-image: none; }
	.tabella-vissuta__tabella :is(.tabella-vissuta__quota, .tabella-vissuta__altra-media) { display: none; }
	.tabella-vissuta__tabella :is(th, td) { padding-left: .3rem; padding-right: .3rem; }
	.tabella-vissuta__tabella thead th { white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: manual; letter-spacing: .04em; vertical-align: bottom; }
	.tabella-vissuta__tabella tbody th { font-size: .95rem; overflow-wrap: normal; word-break: normal; hyphens: manual; padding-left: 0; }
	.tabella-vissuta__tabella thead th.tabella-vissuta__luogo { padding-left: 0; }
}

/* --- Le tappe: una corsa a tappe giorno per giorno, la generale, le maglie, l'albo d'oro --- */
/* Le colonne si contano sulla larghezza del blocco, non dello schermo: nella colonna della scheda della corsa il
   blocco è stretto anche su un portatile. Stretto, vincitore e miglior italiano vanno sotto il percorso. */
.tappe { margin: 2.5rem 0; container-type: inline-size; }
.tappe__titolo { font-size: var(--wp--preset--font-size--grande); margin: 0 0 .75rem; }
.tappe__sezione { color: var(--cicl-text); margin: 2.25rem 0 .9rem; }
.tappe__scorri { overflow-x: auto; }
.tappe__tabella { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; border-top: 2px solid var(--cicl-text); }
.tappe__tabella th, .tappe__tabella td { padding: .6rem .5rem; border-bottom: 1px solid var(--cicl-line); text-align: left; vertical-align: top; font-weight: 400; overflow-wrap: normal; word-break: normal; }
.tappe__tabella th:first-child, .tappe__tabella td:first-child { padding-left: 0; }
.tappe__tabella thead th { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); white-space: nowrap; vertical-align: bottom; }
.tappe__n { display: block; font-family: var(--cicl-font-numeri); font-size: 1.375rem; font-weight: 700; line-height: 1; color: var(--cicl-text); }
.tappe__data { display: block; margin-top: .35rem; font-family: var(--cicl-font-numeri); font-size: 0.75rem; color: var(--cicl-muted); white-space: nowrap; }
.tappe__oggi { display: inline-block; margin-top: .4rem; padding: .1rem .4rem; background: var(--cicl-fluo); color: var(--cicl-on-fluo); font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tappe__riga--oggi > * { background: var(--cicl-surface); }
.tappe__programma tbody th:first-child { padding-left: .5rem; width: 4.5rem; }
.tappe__programma thead th:first-child { padding-left: .5rem; }
.tappe__strada { display: block; font-weight: 650; color: var(--cicl-text); }
.tappe__misure { display: block; margin-top: .2rem; font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); }
.tappe__notizia { display: inline-flex; align-items: center; gap: .3em; min-height: 44px; font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .04em; color: var(--cicl-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.tappe__notizia:hover { text-decoration: underline; }
.tappe__chi { display: block; font-weight: 600; color: var(--cicl-text); }
.tappe__bandiera { font-weight: 400; }
.tappe__squadra, .tappe__distacco { display: block; margin-top: .15rem; font-size: .8125rem; color: var(--cicl-muted); }
.tappe__distacco, .tappe__tempo, .tappe__margine { font-family: var(--cicl-font-numeri); }
.tappe__pos { font-family: var(--cicl-font-numeri); font-weight: 700; color: var(--cicl-text); }
.tappe__pos--primo { background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: 0 .3em; }
.tappe__breve { display: block; margin-top: .55rem; padding-top: .5rem; border-top: 1px dotted var(--cicl-line); }
.tappe__breve .tappe__chi { display: inline; }
.tappe__breve .tappe__distacco { display: inline; margin-left: .35rem; }
.tappe__etichetta { display: block; margin-bottom: .1rem; font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); }
.tappe__breve .tappe__etichetta ~ .tappe__etichetta { margin-top: .45rem; }
.tappe__largo { display: none; }
@container (min-width: 42rem) {
	.tappe__largo { display: table-cell; }
	.tappe__breve { display: none; }
}
/* La previsione congelata, sotto la prossima tappa: solo l'ora e l'impronta, nessuna probabilità */
.tappe__tabella .tappe__riga--con-gelo > * { border-bottom: 0; }
.tappe__gelo td { padding-top: 0; padding-bottom: .6rem; font-family: var(--cicl-font-numeri); font-size: 0.75rem; letter-spacing: .02em; line-height: 1.5; color: var(--cicl-muted); }
.tappe__gelo code { font-family: inherit; font-size: inherit; color: var(--cicl-text); background: none; padding: 0; }
.tappe__generale td:first-child { width: 2.5rem; }
.tappe__generale .tappe__tempo { text-align: right; white-space: nowrap; }
.tappe__generale thead th:last-child { text-align: right; }
.tappe__riga--fuori > * { border-top: 3px double var(--cicl-text); }
.tappe__maglie { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); column-gap: 1.5rem; margin: 0; border-top: 2px solid var(--cicl-text); }
.tappe__maglie div { padding: .6rem 0; border-bottom: 1px solid var(--cicl-line); }
.tappe__maglie dt { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); }
.tappe__maglie dd { margin: .25rem 0 0; }
.tappe__anno { font-family: var(--cicl-font-numeri); font-weight: 700; color: var(--cicl-text); }
.tappe__albo tbody th:first-child { width: 3.5rem; }
/* Gli abbuoni nella generale (all'arrivo e ai traguardi volanti) */
.tappe__generale .tappe__abbuoni { font-family: var(--cicl-font-numeri); text-align: right; white-space: nowrap; color: var(--cicl-muted); }
/* Il nome della tappa porta alla sua pagina */
a.tappe__strada--link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; display: inline-flex; align-items: center; min-height: 44px; }
a.tappe__strada--link:hover { color: var(--cicl-cobalt); }
/* La fila delle altimetrie piccole, una per tappa, sopra la tabella */
.tappe__profilo-svg { display: block; width: 100%; height: 2.6rem; }
.tappe__profilo-area { fill: var(--cicl-text); opacity: .85; }
.tappe__profilo-linea { fill: none; stroke: var(--cicl-text); stroke-width: 1; vector-effect: non-scaling-stroke; }

/* La pagina di una tappa (blocchi/tappa) */
.tappa { container-type: inline-size; }
.tappa__breve { margin: 1.5rem 0 2.5rem; padding: 1.1rem 1.25rem 1rem; background: var(--cicl-surface); border-top: 2px solid var(--cicl-text); }
.tappa__breve-titolo { margin: 0 0 .6rem; font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cicl-muted); }
.tappa__breve p { margin: 0 0 .55rem; font-size: var(--wp--preset--font-size--lettura); line-height: 1.45; color: var(--cicl-body); }
.tappa__breve p:last-child { margin-bottom: 0; }
.tappa__notizia a, .tappa__oggi a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--cicl-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.tappa__notizia a:hover, .tappa__oggi a:hover { color: var(--cicl-cobalt); }
.tappa__sezione { color: var(--cicl-text); margin: 2.5rem 0 .9rem; }
.tappa__profilo { margin: 0; }
.tappa__tabella .tappa__numero-col { font-family: var(--cicl-font-numeri); text-align: right; white-space: nowrap; }
.tappa__tabella thead .tappa__numero-col { text-align: right; }
.tappa__cronotabella { margin-top: 2rem; }
.tappe__margine { display: block; font-weight: 600; color: var(--cicl-text); white-space: nowrap; }
.tappe__fonte { font-family: var(--cicl-font-numeri); font-size: .75rem; line-height: 1.5; color: var(--cicl-muted); margin: 1rem 0 0; }
/* Gli orari di una tappa da correre: l'ora italiana nel colore del testo, quella del posto sotto, in grigio */
.tappe__orari { display: block; margin-top: .3rem; font-family: var(--cicl-font-numeri); font-size: .75rem; line-height: 1.45; }
.tappe__ora { display: block; font-weight: 600; color: var(--cicl-text); }
.tappe__ora time { font-size: .8125rem; }
.tappe__fuso { font-weight: 400; color: var(--cicl-muted); }
.tappe__locale { display: block; color: var(--cicl-muted); }
/* Gli anni senza corsa nell'albo: una riga sola, in grigio */
.tappe__riga--vuota td { font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .04em; color: var(--cicl-muted); vertical-align: middle; }
.tappe__riga--vuota .tappe__anno { margin-right: .6rem; font-size: 1.0625rem; color: var(--cicl-muted); letter-spacing: 0; white-space: nowrap; }
/* Le tappe stanno nella larghezza anche al telefono (stretto, il vincitore va sotto il percorso): niente sfumatura né
   spazio a destra, che la facevano più stretta dell'albo d'oro; se una parola lunga la allargasse, scorre lo stesso */
@media (max-width: 600px) {
	.tappe .tappe__scorri { padding-right: 0; -webkit-mask-image: none; mask-image: none; }
}

/* --- Gli italiani di ieri ------------------------------------------- */
.italiani { margin: 2rem 0; }
.italiani__capo { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-top: 3px double var(--cicl-text); padding-top: .7rem; }
.italiani__titolo { font-size: var(--wp--preset--font-size--grande); margin: 0; }
.italiani__tutti { font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .08em; text-decoration: none; }
.italiani__giorno + .italiani__giorno { margin-top: 2rem; }
.italiani__data { font-family: var(--cicl-font-titoli); font-size: 1.35rem; margin: .8rem 0 .3rem; display: flex; flex-wrap: wrap; gap: .2rem 1rem; align-items: baseline; }
.italiani__conto { font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); }
.italiani__corse { list-style: none; margin: 0; padding: 0; }
.italiani__corsa { padding: .55rem 0; border-top: 1px solid var(--cicl-line); }
.italiani__corsa p { margin: 0; }
.italiani__nome { font-weight: 600; color: var(--cicl-text); font-size: .95rem; }
.italiani__classe { font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cicl-muted); margin-right: .4rem; }
.italiani__chi { font-size: .95rem; line-height: 1.5; color: var(--cicl-body); margin-top: .15rem !important; }
.italiani__pos { font-family: var(--cicl-font-numeri); font-weight: 700; font-variant-numeric: tabular-nums; color: var(--cicl-text); }
.italiani__pos--primo { background: var(--cicl-fluo); color: #0D0F12; padding: 0 .3em; }
.italiani__distacco { font-family: var(--cicl-font-numeri); font-size: .8125rem; color: var(--cicl-muted); }
.italiani__vince { font-family: var(--cicl-font-testo); font-size: .875rem; color: var(--cicl-muted); }
.italiani__paese { font-family: var(--cicl-font-numeri); font-size: .75rem; font-weight: 600; letter-spacing: .06em; color: var(--cicl-muted); }
/* La vittoria italiana: in neretto, con la sigla su fluo, l'unico fluo della corsa */
.italiani__vince--italia { color: var(--cicl-text); font-weight: 600; }
.italiani__vince--italia .italiani__paese { background: var(--cicl-fluo); color: var(--cicl-on-fluo); padding: 0 .3em; }
.italiani__corsa--generale .italiani__nome { font-weight: 400; }
.italiani__come { font-family: var(--cicl-font-numeri); font-size: .75rem; color: var(--cicl-muted); margin: 1rem 0 0; }
.italiani--breve .italiani__data { font-size: 1.05rem; }
.italiani--breve .italiani__come { display: none; }

/* --- I grafici degli articoli (laboratorio/grafici.py) --------------- */
/* Ogni grafico esce in due versioni: la larga (viewBox 720) e la stretta per il telefono (360), che parte
   nascosta nello style dell'SVG. Sotto i 600 px si scambiano: l'!important serve a vincere quello style. */
@media (max-width: 600px) {
	svg.grafico--largo { display: none !important; }
	svg.grafico--stretto { display: block !important; }
}
/* I grafici pubblicati prima della versione stretta (larghi 720, da soli): al telefono il grafico tiene 600 px e
   scorre di lato, con le scritte più grandi e senza le seconde righe delle etichette (lunghezza e pendenza delle
   salite, i «+12» dei gruppi): a 335 px di schermo il testo era di 4-5 px */
@media (max-width: 600px) {
	.grafico:has(> svg[viewBox^="0 0 720 "]:not(.grafico--largo)) { overflow-x: auto; }
	.grafico > svg[viewBox^="0 0 720 "]:not(.grafico--largo) { min-width: 600px; margin-right: 2.5rem; }
	/* la didascalia resta ferma, larga quanto lo schermo, e fuori dalla sfumatura */
	.grafico:has(> svg[viewBox^="0 0 720 "]:not(.grafico--largo)) > figcaption { position: sticky; left: 0; padding-right: 2.5rem; }
	svg[viewBox^="0 0 720 "]:not(.grafico--largo) .fg-numeri { font-size: 13px; }
	svg[viewBox^="0 0 720 "]:not(.grafico--largo) .fg-parole { font-size: 14px; }
	svg[viewBox^="0 0 720 "]:not(.grafico--largo) .fg-corpo.fg-numeri { display: none; }
}
/* La guida della corsa disegnata prima: le salite nel colore del testo, le cime in fluo, come nei grafici nuovi */
.guida__profilo svg:not(.grafico--largo):not(.grafico--stretto) polygon.fg-cobalto { fill: var(--cicl-text); }
.guida__profilo svg:not(.grafico--largo):not(.grafico--stretto) polygon.fg-cobalto ~ circle.fg-testo { fill: var(--cicl-fluo); stroke: var(--cicl-text); stroke-width: 1.2px; }

/* --- Le tabelle che scorrono, al telefono ---------------------------- */
/* Una sfumatura a destra dice «si scorre». Lo spazio in fondo (padding) fa sì che, arrivati in fondo, l'ultima
   colonna esca dalla sfumatura; quando la tabella sta tutta, a sfumare è solo quello spazio vuoto. */
@media (max-width: 600px) {
	.calendario__scorri,
	.rosa__scorre,
	.palmares__scorre,
	.vento__scorri,
	.guida__scorri,
	.spazio-ai__scorri,
	.registro-fagiano__scorri,
	.salite-misurate__scorri,
	.tabella-vissuta__scorri,
	.tappe__scorri,
	.grafico:has(> svg[viewBox^="0 0 720 "]:not(.grafico--largo)) {
		padding-right: 2.5rem;
		-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
		mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
	}
	.grafico:has(> svg[viewBox^="0 0 720 "]:not(.grafico--largo)) { padding-right: 0; }
}

/* --- I primi dieci nelle notizie, al telefono ------------------------ */
/* La tabella dei primi dieci (laboratorio/notizie.py: #, corridore, squadra o nazione, tempo): sotto i 600 px la
   squadra va sotto il nome, piccola e grigia, e la colonna sparisce. Vale per le tabelle a quattro colonne delle
   notizie, quelle già pubblicate comprese. */
@media (max-width: 600px) {
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) tr {
		display: grid;
		grid-template-columns: 2.25rem minmax(0, 1fr) auto;
		column-gap: .5rem;
		align-items: baseline;
	}
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) :is(td, th) { border-bottom: 0; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) tr { border-bottom: 1px solid var(--cicl-line); padding: .45rem 0; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) thead tr { border-bottom: 0; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) :is(td, th):nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) :is(td, th):nth-child(2) { grid-column: 2; grid-row: 1; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) :is(td, th):nth-child(4) { grid-column: 3; grid-row: 1; text-align: right; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) td:nth-child(3) { grid-column: 2; grid-row: 2; padding-top: 0; font-size: .8125rem; color: var(--cicl-muted); }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) th:nth-child(3) { display: none; }
	.formato-notizia .corpo .wp-block-table table:has(> thead > tr > th:nth-child(4):last-child) :is(td, th) { padding: .1rem 0; }
}

/* --- Le fonti in fondo ai pezzi -------------------------------------- */
/* Il titolo «Fonti» dentro il testo (l'ultimo titolo, seguito da un elenco con i link) parla come un'etichetta,
   e l'elenco è piccolo, come nelle pagine (.fonti in style.css) */
.corpo > :is(h2, h3):not(:has(~ :is(h2, h3))):has(+ .wp-block-list a[href]),
.fonti :is(h2, h3) {
	font-family: var(--cicl-font-numeri);
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cicl-text);
	border-top: 2px solid currentColor;
	padding-top: .6rem;
	margin-top: 3rem;
	margin-bottom: .75rem;
}
.corpo > :is(h2, h3):not(:has(~ :is(h2, h3))):has(+ .wp-block-list a[href]) + .wp-block-list {
	font-size: .875rem;
	line-height: 1.55;
	color: var(--cicl-body);
	padding-left: 1.1em;
}
.corpo > :is(h2, h3):not(:has(~ :is(h2, h3))):has(+ .wp-block-list a[href]) + .wp-block-list li { margin: .4rem 0; }

/* --- I titoletti dentro i blocchi: una sola grammatica ---------------- */
/* Come .etichetta e le sezioni del foglio: Geist Mono 0,75rem, maiuscolo spaziato, il filo sopra */
.guida__sezione,
.spazio-ai__sezione,
.tappe__sezione {
	font-family: var(--cicl-font-numeri);
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-top: 2px solid currentColor;
	padding-top: .6rem;
}

/* --- La prima pagina: la scheda della corsa resta in vista ------------ */
/* Nella fascia 40/60 sotto la scheda della corsa c'è il fagIAno, e le due colonne sono lunghe uguali. Se il fagIAno
   non c'è (la prossima corsa senza modello e nessuno scontrino nei trenta giorni) la scheda resta sola: allora
   accompagna la colonna di destra invece di lasciare un buco sotto di sé */
@media (min-width: 782px) {
	.fascia-corsa .wp-block-column:has(> .scheda-corsa:only-child) { position: sticky; top: 1.5rem; align-self: flex-start; }
	.fascia-corsa .wp-block-column > .scheda-corsa + .fagiano-breve { margin-top: 2.5rem; }
}

/* --- Oggi, quando non si corre --------------------------------------- */
.oggi--vuoto { padding-bottom: 3.5rem; }
.oggi--vuoto .oggi__capo { padding: 3rem 0 2.25rem; }
.oggi--vuoto .oggi__guida { margin: 0; }


/* --- Il consenso alle statistiche: una finestra al centro con il bordo fluo e un velo sulla pagina, finché il lettore
   non sceglie. Non è un cookie wall: «Rifiuta» pesa come «Accetta», la X ed Esc valgono come rifiuto. ------------ */
.consenso {
  position: fixed; inset: 0; z-index: 2147483000;
  display: grid; place-items: center; padding: 16px;
  background: color-mix(in srgb, var(--cicl-band) 72%, transparent);
}
.consenso[hidden] { display: none; }
html.consenso-aperto, html.consenso-aperto body { overflow: hidden; }
.consenso__finestra {
  position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto;
  padding: 28px 28px 24px;
  background: var(--cicl-band); color: var(--cicl-band-text);
  border: 3px solid var(--cicl-fluo);
}
.consenso__titolo {
  margin: 0 40px 12px 0; color: var(--cicl-band-strong);
  font-family: var(--cicl-font-numeri); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
}
.consenso__testo { margin: 0 0 20px; font-size: 1rem; line-height: 1.55; color: var(--cicl-band-strong); }
.consenso__testo a { color: var(--cicl-band-strong); text-underline-offset: 3px; margin-left: 4px; }
.consenso__scelte { display: flex; gap: 12px; }
.consenso__scelta {
  flex: 1 1 0; min-height: 48px; padding: 0 18px;
  background: transparent; color: var(--cicl-band-strong);
  border: 1.5px solid var(--cicl-band-strong); border-radius: 0; cursor: pointer;
  font-family: var(--cicl-font-numeri); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
}
.consenso__scelta:hover { background: var(--cicl-band-strong); color: var(--cicl-band); }
.consenso__chiudi {
  position: absolute; top: 10px; right: 10px;
  width: 44px; height: 44px; display: grid; place-items: center;
  background: transparent; color: var(--cicl-band-text); border: 0; border-radius: 0; cursor: pointer;
}
.consenso__chiudi:hover { color: var(--cicl-band-strong); }
@media (max-width: 599px) {
  .consenso__finestra { padding: 22px 18px 18px; }
  .consenso__testo { font-size: 0.9375rem; }
}

/* --- I titoli piccoli in fila (schede, elenchi, i nomi nelle rose): Schibsted Grotesk neretto, che si legge di colpo
   anche al telefono e nel tema scuro. Il Bodoni resta per il marchio, le aperture, i titoli degli articoli e delle
   sezioni: un carattere con personalità per le aperture, uno pieno per gli elenchi. ------------------------------ */
.notizia__titolo, .elenco__nome, .pezzi-corsa__nome, .da-leggere__nome, .prossime__nome, .rosa__nome, .campioni__nome,
.schede .wp-block-post-title {
  font-family: var(--cicl-font-testo);
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 1.22;
}
.elenco__nome { font-size: 1.375rem; }
.elenco--titoli .elenco__nome, .notizia__titolo { font-size: 1.25rem; }
.notizie-home__seconde .notizia__titolo { font-size: 1.125rem; }
.rosa__nome, .campioni__nome { font-weight: 600; }

/* --- Il saluto del fagIAno: un fumetto sopra quello della chat (52px, a 16px dai bordi), un secondo dopo l'arrivo.
   Si muove una volta sola, per farsi notare: entra dal basso. ---------------------------------------------------- */
.saluto {
  position: fixed; right: 16px; bottom: 80px; z-index: 2147482000;
  display: flex; align-items: flex-start; max-width: min(300px, calc(100vw - 32px));
  background: var(--cicl-bg); color: var(--cicl-text);
  border: 2px solid var(--cicl-text);
  animation: saluto-entra 0.35s ease-out both;
}
.saluto[hidden] { display: none; }
/* la coda del fumetto, verso il fagiano */
.saluto::after {
  content: ""; position: absolute; right: 18px; bottom: -10px; width: 16px; height: 16px;
  background: var(--cicl-bg); border-right: 2px solid var(--cicl-text); border-bottom: 2px solid var(--cicl-text);
  transform: rotate(45deg);
}
.saluto__testo {
  flex: 1; min-height: 44px; padding: 12px 4px 12px 16px; text-align: left;
  background: transparent; color: inherit; border: 0; cursor: pointer;
  font-family: var(--cicl-font-testo); font-size: 1rem; font-weight: 600; line-height: 1.35;
}
.saluto__testo .ia { font-size: 0.9em; }
.saluto__chiudi {
  width: 36px; height: 44px; display: grid; place-items: center;
  background: transparent; color: var(--cicl-muted); border: 0; cursor: pointer;
}
.saluto__chiudi:hover, .saluto__testo:hover { color: var(--cicl-text); }
@keyframes saluto-entra { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .saluto { animation: none; } }

/* ------------------------------------------------------------------
   La pagina della corsa e della tappa (tela di design «4», «5», «6»):
   la testata asfalto, la fila delle fasi, la tabella-percorso delle
   tappe, le parti della tappa. Una colonna sola, larga.
   ------------------------------------------------------------------ */

/* La testata: asfalto in tutti e due i temi */
.testata-corsa { background: var(--b-asfalto); color: var(--b-su-asfalto-2); }
.testata-corsa__dentro {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin: 0 auto;
	padding: 20px var(--wp--style--root--padding-right, 1.25rem) 32px;
	box-sizing: content-box;
}
.testata-corsa a { color: inherit; }
.testata-corsa a:hover { color: var(--b-su-asfalto); }
.testata-corsa__riga { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; margin-bottom: 26px; }
.testata-corsa__giro { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-spento); }
.testata-corsa__giro a { display: inline-flex; align-items: center; min-height: 32px; text-decoration: none; }
.testata-corsa__giro a:hover { text-decoration: underline; }
.testata-corsa__giro { letter-spacing: 0.1em; text-transform: uppercase; color: var(--b-su-asfalto); }
.testata-corsa__corpo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 40px; }
.testata-corsa__nomi { display: flex; flex-direction: column; gap: 14px; min-width: 0; flex: 1 1 520px; }
.testata-corsa__sopra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0; }
.testata-corsa__tipo { display: inline-flex; align-items: center; gap: 10px; font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; color: var(--b-su-asfalto); }
.testata-corsa .icona-corsa__vuoto { fill: var(--b-asfalto); }
.testata-corsa__stato { padding: 3px 8px; border: 1px solid var(--b-spento); font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; color: var(--b-su-asfalto); }
.testata-corsa__stato--in-corsa { background: var(--b-fluo); border-color: var(--b-fluo); color: var(--b-su-fluo); font-weight: 600; }
.testata-corsa__titolo { margin: 0; font-family: var(--b-titoli); font-size: clamp(2.5rem, 6.4vw, 5.5rem); line-height: 0.98; font-weight: 500; color: var(--b-su-asfalto); overflow-wrap: anywhere; }
.testata-corsa__giorno { margin: 0; font-size: 1.25rem; line-height: 1.4; }
.testata-corsa__giorno a { text-decoration: underline; text-underline-offset: 3px; }
.testata-corsa__vincitore { display: block; margin-top: 4px; }
.testata-corsa__vincitore strong { color: var(--b-su-asfalto); }
.testata-corsa__numeri { display: flex; flex-wrap: wrap; gap: 8px 40px; margin: 0; }
.testata-corsa__numeri div { display: flex; flex-direction: column-reverse; }
.testata-corsa__numeri dt { font-family: var(--b-mono); font-size: 0.6875rem; letter-spacing: 0.14em; color: var(--b-spento); }
.testata-corsa__numeri dd { margin: 0; font-family: var(--b-titoli); font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.1; color: var(--b-su-asfalto); font-variant-numeric: lining-nums tabular-nums; }
.testata-corsa__riepilogo { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 36px; margin: 28px 0 0; padding: 16px 0 0; border-top: 1px solid var(--b-filo-scuro); font-size: 1rem; color: var(--b-su-asfalto); }
.testata-corsa__riepilogo li { display: flex; align-items: center; gap: 10px; }
.testata-corsa__quante { font-family: var(--b-mono); font-weight: 700; }
/* Il logo ufficiale accanto al nome (fagianata_logo_corsa_html()): piccolo, perché molti loghi sono a bassa risoluzione;
   sull'asfalto solo quelli che reggono, gli altri su una placca chiara. Il marchio è alto quanto la prima riga del
   titolo e il logo ci sta in mezzo, così con il titolo su due righe resta allineato alla prima. Nella tappa (il titolo è
   il percorso) e al telefono va sopra il nome. */
.testata-corsa__testa { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px 24px; font-size: clamp(2.5rem, 6.4vw, 5.5rem); }
.testata-corsa__testa .testata-corsa__titolo { flex: 1 1 320px; min-width: 0; }
.testata-corsa__marchio { flex: none; display: flex; align-items: center; min-height: 0.98em; }
.testata-corsa__logo { display: block; width: auto; height: auto; max-height: 48px; max-width: 176px; }
.testata-corsa__logo--placca { box-sizing: content-box; padding: 8px 12px; background: var(--b-su-asfalto); }
.testata-corsa__testa--sopra { flex-direction: column; gap: 16px; }
.testata-corsa__testa--sopra .testata-corsa__titolo { flex: none; }
.testata-corsa__testa--sopra .testata-corsa__marchio { min-height: 0; }
.testata-corsa__testa--sopra .testata-corsa__logo { max-height: 40px; }
@media (max-width: 760px) {
	.testata-corsa__testa { gap: 12px; }
	.testata-corsa__marchio { min-height: 0; }
	.testata-corsa__logo { max-height: 36px; max-width: 140px; }
	.testata-corsa__testa--sopra .testata-corsa__logo { max-height: 36px; }
	.testata-corsa__logo--placca { padding: 6px 9px; }
}

/* Il corpo della pagina: una colonna larga, i blocchi uno sotto l'altro */
.corsa-pagina { margin-top: 0; padding-bottom: 32px; }
.corsa-pagina > * { margin-top: 0; margin-bottom: 0; }
.corsa-pagina > * + * { margin-top: 56px; }
.corsa-pagina > .fasi + * { margin-top: 0; }

/* La fila delle fasi: cinque caselle, piene quelle che ci sono */
.fasi { margin: 0 0 40px; }
.fasi__fila { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--fasi, 5), minmax(0, 1fr)); }
.fasi__fase { border-top: 4px solid var(--b-testo); border-right: 1px solid var(--b-filo); border-bottom: 1px solid var(--b-filo); }
.fasi__fase:last-child { border-right: 0; }
.fasi__fase--manca { border-top-color: var(--b-filo); }
.fasi__cella { display: flex; flex-direction: column; gap: 6px; height: 100%; min-height: 104px; padding: 14px 16px 16px; box-sizing: border-box; color: var(--b-testo); text-decoration: none; }
a.fasi__cella:hover { background: var(--cicl-surface, #F2F3F0); color: var(--b-testo); }
.fasi__capo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-family: var(--b-mono); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.fasi__conto { font-weight: 400; color: var(--b-secondario); }
.fasi__ora { padding: 1px 6px; background: var(--b-fluo); color: var(--b-su-fluo); letter-spacing: 0.1em; }
.fasi__titolo { font-size: 0.9375rem; font-weight: 600; line-height: 1.3; color: var(--b-testo); text-decoration: none; min-height: 0; }
a.fasi__titolo:hover { text-decoration: underline; color: var(--b-testo); }
.fasi__titolo--manca { font-weight: 400; color: var(--b-secondario); }
.fasi__fase--manca .fasi__capo { color: var(--b-secondario); }
.fasi__sotto { margin-top: auto; font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }

/* La tabella-percorso delle tappe: una riga per tappa, tutta cliccabile quando la tappa ha la sua pagina */
.tappe { margin: 0; }
.tappe__capo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 20px; padding-top: 12px; border-top: 2px solid var(--cicl-text); margin-bottom: 8px; }
.tappe__capo .tappe__titolo, .tappe__capo .tappe__sezione { margin: 0; }
.tappe__nota { font-family: var(--cicl-font-numeri); font-size: 0.75rem; color: var(--cicl-muted); }
.percorso-tappe,
.percorso-tappe__colonne { --tappe-colonne: 44px 96px 84px minmax(0, 1.6fr) 64px 96px 160px minmax(0, 1.3fr) 20px; }
.percorso-tappe__colonne {
	display: grid;
	grid-template-columns: var(--tappe-colonne);
	gap: 16px;
	padding: 8px 12px;
	border-bottom: 1px solid var(--cicl-text);
	font-family: var(--cicl-font-numeri);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cicl-muted);
}
.percorso-tappe { list-style: none; margin: 0; padding: 0; }
.percorso-tappe__riga {
	position: relative;
	display: grid;
	grid-template-columns: var(--tappe-colonne);
	gap: 16px;
	align-items: center;
	padding: 14px 12px;
	border-bottom: 1px solid var(--cicl-line);
}
.percorso-tappe__riga--link:hover { background: var(--cicl-surface); }
.percorso-tappe__riga--oggi { background: var(--cicl-surface); box-shadow: inset 4px 0 0 var(--cicl-text); }
.percorso-tappe__n { font-family: var(--cicl-font-titoli); font-size: 2.125rem; line-height: 1; color: var(--cicl-text); }
.percorso-tappe__tipo { display: flex; flex-direction: column; gap: 4px; color: var(--cicl-text); font-family: var(--cicl-font-numeri); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; }
.percorso-tappe__data { font-family: var(--cicl-font-numeri); font-size: 0.875rem; line-height: 1.3; }
.percorso-tappe__data span { display: block; color: var(--cicl-muted); }
.percorso-tappe__strada { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.percorso-tappe__nome { font-size: 1.0625rem; font-weight: 650; color: var(--cicl-text); text-decoration: none; min-height: 0; }
a.percorso-tappe__nome::after { content: ""; position: absolute; inset: 0; }
a.percorso-tappe__nome:hover { color: var(--cicl-text); text-decoration: underline; }
.percorso-tappe__oggi { font-family: var(--cicl-font-numeri); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; }
.percorso-tappe__num { font-family: var(--cicl-font-numeri); font-size: 0.9375rem; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.percorso-tappe__unita { display: none; }
.percorso-tappe__profilo svg { display: block; width: 100%; height: 40px; }
.percorso-tappe__profilo .tappe__profilo-area { opacity: 1; }
.percorso-tappe__profilo .tappe__profilo-linea { display: none; }
.percorso-tappe__esito { font-size: 0.9375rem; min-width: 0; }
.percorso-tappe__orari { font-family: var(--cicl-font-numeri); font-size: 0.8125rem; color: var(--cicl-muted); }
.percorso-tappe__freccia { color: var(--cicl-text); }

/* Dopo la tabella: la generale e, accanto, maglie, busta del fagIAno e albo d'oro */
.tappe__dopo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; margin-top: 56px; }
.tappe__dopo--solo-lato { grid-template-columns: minmax(0, 1fr); }
.tappe__dopo--solo-lato .tappe__lato { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 32px 48px; align-items: start; }
.tappe__lato { display: flex; flex-direction: column; gap: 32px; }
.tappe__titoletto { margin: 0; font-family: var(--cicl-font-titoli); font-size: var(--wp--preset--font-size--grande); font-weight: 500; line-height: 1.1; letter-spacing: 0; text-transform: none; color: var(--cicl-text); }
.tappe__titoletto--filo { margin: 0 0 8px; padding-top: 12px; border-top: 2px solid var(--cicl-text); font-family: var(--cicl-font-testo); font-size: 1.375rem; font-weight: 650; }
.tappe__lato .tappe__maglie { border-top: 0; }
.tappe__busta .fagiano-breve { margin: 0; }

/* La tappa a parti: il percorso prima, poi l'arrivo, il fagIAno, il piede */
.tappa__capo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 20px; padding-top: 12px; border-top: 2px solid var(--cicl-text); margin-bottom: 18px; }
.tappa__capo .tappa__sezione { margin: 0; }
.tappa--arrivo .tappa__sezione:not(.tappa__capo .tappa__sezione) { margin: 0 0 18px; padding-top: 12px; border-top: 2px solid var(--cicl-text); }
.tappa__rimando { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--cicl-font-numeri); font-size: 0.75rem; letter-spacing: 0.14em; color: var(--cicl-text); text-decoration: none; }
.tappa__rimando:hover { text-decoration: underline; }
.tappa__affianco { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 40px; margin-top: 24px; align-items: start; }
.tappa__affianco--arrivo { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; margin-top: 0; }
.tappa__titoletto { margin: 0 0 8px; font-family: var(--cicl-font-numeri); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-text); }
.tappa__niente { margin: 0; padding: 12px 0; border-top: 2px solid var(--cicl-text); color: var(--cicl-muted); }
.tappa--percorso .tappa__breve { margin: 24px 0 0; }
.tappa-fagiano .fagiano-breve { margin: 0; }
.tappa__giro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; border-top: 2px solid var(--cicl-text); }
.tappa__giro a { display: flex; flex-direction: column; gap: 4px; min-height: 44px; padding: 16px 0; color: var(--cicl-text); text-decoration: none; }
.tappa__giro a:hover .tappa__giro-nome { text-decoration: underline; }
.tappa__tutte { align-items: center; text-align: center; }
.tappa__dopo { align-items: flex-end; text-align: right; }
.tappa__giro-sopra { font-family: var(--cicl-font-numeri); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-muted); }
.tappa__giro-nome { font-size: 1.125rem; font-weight: 650; }

@media (max-width: 1000px) {
	.percorso-tappe,
	.percorso-tappe__colonne { --tappe-colonne: 40px 84px 76px minmax(0, 1.4fr) 56px 76px 110px minmax(0, 1.2fr) 16px; }
	.tappe__dopo, .tappa__affianco, .tappa__affianco--arrivo { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

/* Al telefono: le fasi una sotto l'altra, la tappa in poche righe */
@media (max-width: 760px) {
	.testata-corsa__dentro { padding-top: 14px; padding-bottom: 22px; }
	.testata-corsa__riga { margin-bottom: 16px; }
	.testata-corsa__giro { order: 2; flex-basis: 100%; justify-content: space-between; }
	.testata-corsa__giorno { font-size: 1rem; }
	.testata-corsa__numeri { gap: 4px 24px; }
	.testata-corsa__numeri dd { font-size: 1.75rem; }
	.testata-corsa__riepilogo { gap: 8px 20px; margin-top: 18px; font-size: 0.9375rem; }
	.corsa-pagina > * + * { margin-top: 40px; }
	.fasi { margin-bottom: 28px; }
	.fasi__fila { gap: 4px; }
	.fasi__fase { border-right: 0; border-bottom: 0; }
	.fasi__cella { min-height: 44px; padding: 6px 0 0; gap: 3px; }
	.fasi__num, .fasi__titolo, .fasi__conto { display: none; }
	.fasi__capo { font-size: 0.5625rem; letter-spacing: 0.06em; }
	.fasi__ora { order: -1; padding: 0 3px; font-size: 0.5rem; }
	.fasi__sotto { margin-top: 0; font-size: 0.625rem; line-height: 1.25; }
	.percorso-tappe__colonne { display: none; }
	.percorso-tappe__riga { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px 24px 12px 48px; }
	.percorso-tappe__riga--oggi { padding-left: 52px; }
	.percorso-tappe__n { position: absolute; left: 0; top: 12px; width: 40px; text-align: center; font-size: 1.75rem; }
	.percorso-tappe__riga--oggi .percorso-tappe__n { left: 4px; }
	.percorso-tappe__strada { flex-basis: 100%; }
	.percorso-tappe__tipo { flex-direction: row; align-items: center; gap: 6px; }
	.percorso-tappe__tipo svg { width: 22px; height: 13px; }
	.percorso-tappe__data, .percorso-tappe__data span { display: inline; font-size: 0.75rem; }
	.percorso-tappe__num { font-size: 0.75rem; }
	.percorso-tappe__unita { display: inline; }
	.percorso-tappe__profilo { flex-basis: 100%; }
	.percorso-tappe__profilo:empty { display: none; }
	.percorso-tappe__profilo svg { height: 30px; }
	.percorso-tappe__esito { flex-basis: 100%; }
	.percorso-tappe__esito:empty { display: none; }
	.percorso-tappe__freccia { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
	.tappa__giro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tappa__tutte { grid-column: 1 / -1; grid-row: 2; }
}
.tappa__affianco > :only-child { grid-column: 1 / -1; }

/* Le classifiche dopo una tappa (inc/classifiche.php): la generale con il «di più» per vederla tutta, poi le altre
   (punti, montagna, giovani, squadre) in due colonne, ognuna con il nome, il segno della maglia e i primi; nella pagina
   della corsa, accanto alla generale, una sotto l'altra. Il fluo resta sul leader della generale. */
.classifiche__tutta { margin-top: 12px; }
.classifiche__tutta summary { box-sizing: border-box; min-height: 44px; padding: 12px 0; line-height: 20px; }
.classifiche__tutta .tappe__tabella { margin-top: 4px; }
/* La generale e il suo seguito sono una tabella sola: le stesse colonne; aperto il seguito, la riga del miglior
   italiano in fondo ai primi dieci non serve più (lo si trova al suo posto) */
.classifiche__generale .tappe__tabella { table-layout: fixed; }
.classifiche__generale thead th:first-child { width: 2.5rem; }
.classifiche__generale thead th.tappe__abbuoni { width: 6rem; }
.classifiche__generale thead th:last-child { width: 7rem; }
.classifiche__generale:has(.classifiche__tutta[open]) .tappe__riga--fuori { display: none; }
.tappe__abbuono-tel { display: none; }
.tappa__quota-tel { display: none; }
.tappa__dopo-tappa { display: inline-flex; align-items: center; gap: .4em; white-space: nowrap; }
.tappa--arrivo .classifiche { margin-top: 48px; }
.classifiche__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; align-items: start; }
.classifica__capo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; margin: 0 0 8px; }
.classifica__nome { margin: 0; font-family: var(--cicl-font-testo); font-size: 1.125rem; font-weight: 650; line-height: 1.2; color: var(--cicl-text); }
.classifica__maglia .maglia-con-nome { font-family: var(--cicl-font-numeri); font-size: .75rem; letter-spacing: .04em; color: var(--cicl-muted); }
.classifica__tabella td:first-child { width: 2.5rem; }
.classifiche--lato .classifiche__griglia { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 16px; }
@media (max-width: 760px) {
	.classifiche__griglia { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.tappa--arrivo .classifiche { margin-top: 40px; }
}
/* Al telefono l'ordine d'arrivo e la generale stanno nella larghezza: niente sfumatura che copre i distacchi, e gli
   abbuoni nella riga della squadra invece che in una colonna che stringe i nomi */
@media (max-width: 600px) {
	.tappa--arrivo .tappe__scorri { padding-right: 0; -webkit-mask-image: none; mask-image: none; }
	.tappe__generale .tappe__abbuoni { display: none; }
	.tappe__generale .tappe__abbuono-tel { display: inline; white-space: nowrap; }
	/* lunghezza, media e quota della cima in una riga sotto il nome della salita: le loro colonne qui sono fuori
	   dallo schermo */
	.tappa__quota-tel { display: block; white-space: nowrap; }
	.classifiche__generale thead th:last-child { width: 5.5rem; }
}
.fasi__fase--fagiano .fasi__testo { text-transform: none; letter-spacing: 0.04em; }
@media (max-width: 760px) {
	.fasi .fasi__titolo--manca { display: block; font-size: 0.625rem; line-height: 1.25; }
}
/* ---------------------------------------------------------------
   La presentazione (blocco presentazione): le nove tavole della cartella stampa, una per schermo, che si scorrono
   di lato (scroll-snap); sotto le frecce, «3 / 9» e il PDF. Le tavole hanno i loro colori: un filo le stacca dal
   fondo quando sono dello stesso colore della pagina.
   --------------------------------------------------------------- */
.presentazione { margin-block: 2rem; }
/* Le tavole prendono la colonna larga (1240) anche dentro la colonna del testo, come il registro del fagIAno */
@media (min-width: 900px) {
	.corpo .presentazione.alignwide { max-width: none; width: min(var(--wp--style--global--wide-size, 1240px), 100vw - 2.5rem); margin-left: calc(50% - min(var(--wp--style--global--wide-size, 1240px), 100vw - 2.5rem) / 2) !important; margin-right: 0 !important; }
}
.presentazione__tavole {
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--b-filo) transparent;
}
.presentazione__tavole:focus-visible { outline: 2px solid var(--cicl-cobalt, #2846F0); outline-offset: 3px; }
.presentazione__tavola {
	flex: 0 0 100%;
	margin: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}
.presentazione__tavola img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	background: var(--cicl-surface, #F2F3F0);
	outline: 1px solid var(--b-filo);
	outline-offset: -1px;
}
.presentazione__comandi {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin-top: 14px;
}
.presentazione__frecce { display: flex; align-items: center; gap: 8px; }
.presentazione__frecce[hidden] { display: none; }
.presentazione__freccia {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 1px solid var(--b-filo);
	background: transparent;
	color: var(--b-testo);
	font-family: var(--b-mono);
	font-size: 1.125rem;
	cursor: pointer;
}
.presentazione__freccia:hover { border-color: var(--b-testo); }
.presentazione__freccia[aria-disabled="true"] { color: var(--b-secondario); border-color: var(--b-filo); cursor: default; opacity: 0.5; }
.presentazione__posizione {
	margin: 0;
	min-width: 5.5ch;
	text-align: center;
	font-family: var(--b-mono);
	font-size: 0.875rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--b-testo);
}
.presentazione__voce {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.presentazione__pdf {
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--b-testo);
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-left: auto;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--b-testo);
	text-decoration: none;
}
.presentazione__pdf:hover { background: var(--b-testo); color: var(--cicl-bg, #FFFFFF); }
.presentazione__peso { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 400; letter-spacing: 0.06em; opacity: 0.75; }

/* ------------------------------------------------------------------
   Fase A, correzioni dell'esperto UX (14/10/2026): i due filtri
   dell'hub, il podio in testata, l'ordine d'arrivo, le fasi che ci
   sono, la tabella delle tappe al telefono, etichette di almeno 12 px
   ------------------------------------------------------------------ */

/* I filtri dell'hub: la categoria e il livello, ognuno con il suo nome, sotto le schede delle discipline */
.hub__filtri { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 16px; }
.hub__filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.hub__filtro-nome { font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-secondario); }
.hub__scelte a { padding: 0 14px; font-size: 0.9375rem; }
.hub__scelte a + a { border-left: 1px solid var(--b-filo); }

/* Il podio in testata, dopo l'arrivo: al posto dell'ora del via, con i distacchi e il miglior italiano */
.testata-corsa__podio { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 4px 0 0; padding: 0; font-size: 1.0625rem; color: var(--b-su-asfalto); }
.testata-corsa__podio li { display: inline-flex; align-items: baseline; gap: 8px; }
.testata-corsa__posto { font-family: var(--b-mono); font-size: 0.8125rem; font-weight: 700; }
.testata-corsa__podio li:first-child .testata-corsa__chi { padding: 0 4px; background: var(--b-fluo); color: var(--b-su-fluo); font-weight: 700; }
.testata-corsa__distacco { font-family: var(--b-mono); font-size: 0.875rem; color: var(--b-su-asfalto-2); }
.testata-corsa__italiano { color: var(--b-su-asfalto-2); }
.testata-corsa__nota { font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-spento); }

/* L'ordine d'arrivo di una corsa in linea */
.arrivo__tabella .tappe__tempo { text-align: right; white-space: nowrap; }
.arrivo__tabella thead th:last-child { text-align: right; }
.arrivo__tabella td:first-child { width: 2.5rem; }
.arrivo__italiano > * { background: var(--cicl-surface); }
.arrivo__tabella a { color: var(--cicl-text); text-decoration: underline; text-decoration-color: var(--cicl-line); text-underline-offset: 3px; }
.arrivo__tutto { margin-top: 12px; }

/* Le fasi: quante sono; il secondo pezzo di una fase; poche fasi, solo i link */
.fasi__fase { display: flex; flex-direction: column; }
.fasi__cella { flex: 1 1 auto; }
.fasi__altro { display: block; padding: 0 16px 14px; font-size: 0.9375rem; font-weight: 600; line-height: 1.3; color: var(--b-testo); }
.fasi__altro:hover { color: var(--b-testo); text-decoration: underline; }
.fasi__link { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--b-testo); }
.fasi__link li { border-bottom: 1px solid var(--b-filo); }
.fasi__link a { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; min-height: 44px; padding: 10px 0; color: var(--b-testo); text-decoration: none; box-sizing: border-box; }
.fasi__link a:hover .fasi__titolo-link { text-decoration: underline; }
.fasi__link .fasi__testo { font-family: var(--b-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.fasi__titolo-link { font-weight: 600; }

/* Bersagli di almeno 44 px anche nella testata */
.testata-corsa__giro a { min-height: 44px; }

@media (max-width: 760px) {
	/* Etichette di almeno 12 px */
	.hub__meta, .hub__tipo-nome, .hub__avanzamento-testo, .hub__filtro-nome { font-size: 0.75rem; }
	.hub__scelte { flex: 1 1 100%; }
	.hub__scelte a { flex: 1 1 auto; padding: 0 10px; white-space: nowrap; }
	.testata-corsa__numeri dt, .testata-corsa__giro { font-size: 0.75rem; }
	.testata-corsa__tipo { font-size: 0.75rem; letter-spacing: 0.1em; }
	.testata-corsa__podio { flex-direction: column; gap: 4px; font-size: 1rem; }
	.fasi__fila { grid-template-columns: repeat(var(--fasi, 5), minmax(0, 1fr)); }
	.fasi__capo { font-size: 0.75rem; letter-spacing: 0.02em; }
	.fasi__ora { display: none; }
	.fasi__fase--corrente .fasi__testo { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
	.fasi__sotto, .fasi .fasi__titolo--manca { font-size: 0.75rem; }
	.fasi__altro { display: none; }
	/* La tabella delle tappe: numero e tipo a sinistra, da → a e il vincitore (o l'ora del via) in mezzo, i km a destra */
	.percorso-tappe__riga {
		display: grid;
		grid-template-columns: 40px minmax(0, 1fr) auto 14px;
		grid-template-areas: "n strada km freccia" "tipo esito esito freccia";
		gap: 2px 10px;
		align-items: baseline;
		padding: 12px 0;
	}
	.percorso-tappe__riga--oggi { padding-left: 8px; padding-right: 4px; }
	.percorso-tappe__n { position: static; grid-area: n; width: auto; text-align: left; font-size: 1.75rem; }
	.percorso-tappe__riga--oggi .percorso-tappe__n { left: auto; }
	.percorso-tappe__tipo { grid-area: tipo; flex-direction: column; align-items: flex-start; }
	.percorso-tappe__tipo span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.percorso-tappe__strada { grid-area: strada; }
	.percorso-tappe__km { grid-area: km; font-size: 0.875rem; }
	.percorso-tappe__esito { grid-area: esito; font-size: 0.875rem; }
	.percorso-tappe__esito .tappe__squadra { display: none; }
	.percorso-tappe__oggi { font-size: 0.75rem; }
	.percorso-tappe__orari { font-size: 0.75rem; }
	.percorso-tappe__data, .percorso-tappe__disl, .percorso-tappe__profilo { display: none; }
	.percorso-tappe__freccia { position: static; grid-area: freccia; transform: none; align-self: center; }
	.percorso-tappe__nome { font-size: 1rem; }
}

/* Le corse a tappe minori: senza km, dislivello e altimetria */
.tappe--senza-percorso .percorso-tappe,
.tappe--senza-percorso .percorso-tappe__colonne { --tappe-colonne: 44px 96px 84px minmax(0, 1.6fr) minmax(0, 1.3fr) 20px; }
@media (max-width: 760px) {
	.tappe--senza-percorso .percorso-tappe__riga { grid-template-columns: 40px minmax(0, 1fr) 14px; grid-template-areas: "n strada freccia" "tipo esito freccia"; }
}

/* ------------------------------------------------------------------
   L'hub, seconda revisione (tela «3a»–«3d»): la colonna del miglior
   italiano, i mesi passati chiusi, al telefono tre colonne e un margine
   in fondo per la bolla del fagIAno; il ciclocross senza il tipo
   ------------------------------------------------------------------ */
.hub { --hub-colonne: 72px 110px minmax(0, 1.3fr) minmax(0, 1.6fr) minmax(0, .9fr) 130px 20px; }
.hub--ciclocross { --hub-colonne: 110px minmax(0, 1.3fr) minmax(0, 1.6fr) minmax(0, .9fr) 130px 20px; }
.hub--ciclocross .hub__tipo, .hub--ciclocross .hub__colonne span:first-child { display: none; }
.hub__italiano { font-size: 0.875rem; line-height: 1.35; color: var(--cicl-body, #2E3238); }
.hub__misure, .hub__strada { font-family: var(--b-mono); font-size: 0.75rem; color: var(--b-secondario); }
.hub__strada { font-family: inherit; font-size: 0.9375rem; color: var(--b-testo); }
.hub__meta--tel, .hub__esito-tel { display: none; }
.hub__vuoto { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; padding: 18px 12px; border-top: 2px solid var(--b-testo); border-bottom: 1px solid var(--b-filo); color: var(--cicl-body, #2E3238); }
.hub__vuoto a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--b-testo); }
.hub__altri-mesi > summary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	border-bottom: 1px solid var(--b-filo);
	font-family: var(--b-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	cursor: pointer;
	list-style: none;
}
.hub__altri-mesi > summary::-webkit-details-marker { display: none; }
.hub__altri-mesi[open] > summary { display: none; }
.hub__colonne { margin-top: 28px; }
.hub__blocco:first-of-type { margin-top: 0; }

@media (max-width: 1100px) {
	.hub { --hub-colonne: 64px 96px minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, .8fr) 100px 18px; }
	.hub--ciclocross { --hub-colonne: 96px minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, .8fr) 100px 18px; }
}

@media (max-width: 760px) {
	/* tre colonne: la data, la corsa (nome, tipo · livello · categoria, vincitore e miglior italiano), la freccia */
	.hub__dentro { padding-bottom: 120px; } /* la bolla del fagIAno non copre le ultime frecce */
	.hub__riga {
		grid-template-columns: 58px minmax(0, 1fr) 16px;
		grid-template-areas: "date corsa freccia";
		padding: 12px 0;
	}
	.hub__tipo, .hub__italiano, .hub__profilo, .hub__meta:not(.hub__meta--tel), .hub__esito--largo { display: none; }
	.hub__meta--tel { display: block; }
	.hub__esito-tel { display: block; margin-top: 4px; font-size: 0.875rem; }
	.hub__esito { grid-column: 2; }
	.hub__riga { grid-template-areas: none; }
	.hub__date { grid-column: 1; grid-row: 1 / span 2; }
	.hub__corsa { grid-column: 2; grid-row: 1; }
	.hub__freccia { grid-column: 3; grid-row: 1 / span 2; }
	.hub__esito:empty { display: none; }
}

/* ------------------------------------------------------------------
   Pagine delle corse, seconda revisione (tela «4b», «5b», «6b»)
   ------------------------------------------------------------------ */
/* La fila delle fasi: sotto l'altimetria, con il suo margine; il nome senza numero; «adesso» senza fluo */
.fasi { margin: 28px 0 40px; }
.corsa-pagina > .fasi + * { margin-top: 0; }
.corsa-pagina > .fasi { margin-top: 28px; }
.fasi__capo { font-size: 0.75rem; }
.fasi__fase:not(.fasi__fase--manca) .fasi__testo { font-weight: 700; }
.fasi__ora { padding: 0 6px; background: none; color: var(--b-testo); border: 1px solid var(--b-testo); }
.fasi__titolo--manca { font-size: 0.9375rem; }

/* La testata: il miglior italiano dopo il podio, più piccolo */
.testata-corsa__italiano { font-size: 0.9375rem; }
.testata-corsa__italiano .testata-corsa__nota { font-family: inherit; font-size: inherit; color: var(--b-su-asfalto-2); }

/* L'altimetria della corsa subito sotto la testata, senza titolo */
.guida__profilo--solo { margin: 28px 0 0; }
.guida__profilo--solo figcaption a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--cicl-font-numeri); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-text); }
.corsa-pagina > .tappa--altimetria { margin-top: 28px; }

@media (max-width: 760px) {
	.fasi__fila { gap: 4px; }
	.fasi__capo { font-size: 0.75rem; }
	/* La tabella delle tappe al telefono (tela «5b»): il numero a sinistra; tipo e giorno, da → a, km e dislivello; sotto
	   la mini-altimetria della tappa e chi ha vinto (o l'ora del via) */
	.percorso-tappe__riga,
	.tappe--senza-percorso .percorso-tappe__riga {
		display: grid;
		grid-template-columns: 40px auto auto minmax(0, 1fr) 16px;
		grid-template-areas:
			"n tipo data data freccia"
			"n strada strada strada freccia"
			"n km disl . freccia"
			". profilo profilo profilo ."
			". esito esito esito .";
		gap: 3px 8px;
		align-items: center;
		padding: 14px 0;
	}
	.percorso-tappe__riga--oggi { padding-left: 8px; padding-right: 4px; }
	.percorso-tappe__n { grid-area: n; align-self: start; font-size: 2.125rem; }
	.percorso-tappe__tipo { grid-area: tipo; flex-direction: row; align-items: center; gap: 6px; }
	.percorso-tappe__tipo span { position: static; width: auto; height: auto; overflow: visible; clip: auto; font-size: 0.75rem; }
	.percorso-tappe__data { grid-area: data; display: inline; font-size: 0.75rem; }
	.percorso-tappe__data span { display: inline; }
	.percorso-tappe__strada { grid-area: strada; }
	.percorso-tappe__km { grid-area: km; display: inline; text-align: left; font-size: 0.8125rem; color: var(--cicl-muted); }
	.percorso-tappe__disl { grid-area: disl; display: inline; text-align: left; font-size: 0.8125rem; color: var(--cicl-muted); }
	.percorso-tappe__profilo { grid-area: profilo; display: block; margin-top: 6px; }
	.percorso-tappe__profilo svg { height: 34px; }
	.percorso-tappe__profilo:empty { display: none; }
	.percorso-tappe__esito { grid-area: esito; display: block; margin-top: 4px; font-size: 0.875rem; }
	.percorso-tappe__freccia { grid-area: freccia; }
}
.corsa-pagina > .fasi + * { margin-top: 40px; }
@media (max-width: 760px) { .corsa-pagina > .fasi + * { margin-top: 28px; } }

/* La tabella delle tappe al telefono: tipo a sinistra e giorno a destra sulla stessa riga; km e dislivello in colonna,
   uguali per tutte le tappe */
@media (max-width: 760px) {
	.percorso-tappe__riga,
	.tappe--senza-percorso .percorso-tappe__riga {
		grid-template-columns: 40px 5.25rem minmax(0, 1fr) 16px;
		grid-template-areas:
			"n tipo tipo freccia"
			"n strada strada freccia"
			"n km disl freccia"
			". profilo profilo ."
			". esito esito .";
	}
	.percorso-tappe__tipo { justify-self: start; }
	.percorso-tappe__data { grid-area: tipo; justify-self: end; }
}

/* La bolla del fagIAno al telefono: via mentre si scende nelle righe con la freccia, torna appena si risale */
@media (max-width: 760px) {
	agent-widget, #saluto { transition: opacity 0.2s, visibility 0s; }
	html.bolla-via agent-widget, html.bolla-via #saluto { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.2s, visibility 0s 0.2s; }
}

/* Le corse a tappe leggere senza tipo e senza percorso (i risultati UCI non li dicono): niente colonne vuote */
.tappe--senza-percorso.tappe--senza-tipo .percorso-tappe,
.tappe--senza-percorso.tappe--senza-tipo .percorso-tappe__colonne { --tappe-colonne: 44px 84px minmax(0, 1.6fr) minmax(0, 1.3fr) 20px; }
.tappe--senza-percorso.tappe--senza-strada .percorso-tappe,
.tappe--senza-percorso.tappe--senza-strada .percorso-tappe__colonne { --tappe-colonne: 44px 96px 84px minmax(0, 1fr) 20px; }
.tappe--senza-percorso.tappe--senza-tipo.tappe--senza-strada .percorso-tappe,
.tappe--senza-percorso.tappe--senza-tipo.tappe--senza-strada .percorso-tappe__colonne { --tappe-colonne: 44px 120px minmax(0, 1fr) 20px; }
@media (max-width: 760px) {
	.tappe--senza-tipo.tappe--senza-strada .percorso-tappe__riga { grid-template-areas: "n tipo tipo freccia" "n esito esito freccia"; }
	.tappe--senza-tipo .percorso-tappe__data { justify-self: start; }
}

/* ------------------------------------------------------------------
   Fase C del piano UX/UI: i pezzi (inc/pezzi.php, blocchi/flusso).
   L'etichetta FORMATO · DISCIPLINA · LIVELLO sopra ogni titolo, il
   segno di ogni formato al posto della foto, la data assoluta; la
   cronaca in /notizie/ con gli ordini d'arrivo, /ultimi/, le sezioni
   ------------------------------------------------------------------ */

/* L'etichetta: Geist Mono maiuscolo, il formato in neretto asfalto, il resto in grigio. Mai sotto i 12 px */
.etichetta-pezzo {
	margin: 0;
	font-family: var(--cicl-font-numeri, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cicl-muted, #5A6069);
}
.etichetta-pezzo__formato { font-weight: 700; color: var(--cicl-text, #0D0F12); }
.etichetta-pezzo abbr { text-decoration: none; }
/* In testa al pezzo: un po' più grande, il formato porta alla sua sezione (44 px da toccare) */
.etichetta-pezzo--testa { display: inline-block; font-size: 0.8125rem; }
.etichetta-pezzo__link { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
.etichetta-pezzo__link:hover .etichetta-pezzo__formato { text-decoration: underline; text-underline-offset: 3px; }
.riga-etichette { gap: 0 16px; }

/* La scheda di un pezzo: il segno, l'etichetta, il titolo, la data e la corsa */
.scheda-pezzo { min-width: 0; }
.scheda-pezzo a { color: var(--cicl-text, #0D0F12); text-decoration: none; }
.scheda-pezzo__testo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.scheda-pezzo__titolo { margin: 0; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.125rem; font-weight: 650; line-height: 1.28; letter-spacing: 0; }
.scheda-pezzo__titolo a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.scheda-pezzo__sommario { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--cicl-body, #2E3238); }
.scheda-pezzo__meta { margin: 0; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; line-height: 1.45; color: var(--cicl-muted, #5A6069); }
.scheda-pezzo__segno { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.scheda-pezzo--griglia { display: flex; flex-direction: column; gap: 12px; }
.scheda-pezzo--riga {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	padding: 18px 0;
	border-bottom: 1px solid var(--cicl-line, #DEE1DC);
}
.scheda-pezzo--riga .scheda-pezzo__titolo { font-size: 1.25rem; }
.scheda-pezzo--titoli { padding: 16px 0; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.scheda-pezzo--titoli .scheda-pezzo__titolo { font-size: 1.1875rem; }
@media (max-width: 600px) {
	.scheda-pezzo--riga { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 16px 0; }
	.scheda-pezzo--riga .scheda-pezzo__titolo { font-size: 1.0625rem; }
}
/* Nelle griglie del tema (archivi, tag, ricerca) il segno prende il posto della foto */
.scheda-pezzo__figura { margin: 0; }
.schede .wp-block-post .etichetta-pezzo { order: 0; }

/* Il segno: riempie il riquadro 3:2 della scheda, e le sue misure seguono la sua larghezza */
.segno { position: absolute; inset: 0; display: block; overflow: hidden; container: segno / inline-size; }
.segno--foto { background: #14171C; }
.segno--foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.formato-storia .segno--foto img.wp-post-image:not(.foto--trattata) { filter: url(#fagianata-sfondo-storia); }

/* Vigilia: la mini-altimetria della corsa su nebbia */
.segno--vigilia { background: var(--cicl-surface, #F2F3F0); }
.segno__profilo { position: absolute; left: 7%; right: 7%; bottom: 14%; height: 50%; }
.segno__profilo svg { display: block; width: 100%; height: 100%; }
.segno__profilo .tappe__profilo-area { fill: var(--cicl-text, #0D0F12); opacity: 1; }
.segno__profilo .tappe__profilo-linea { display: none; }

/* Notizia senza foto: il nome di chi ha vinto in Bodoni, o il fagiano, su nebbia (mai il fondo nero) */
.segno--nome, .segno--fagiano { background: var(--cicl-surface, #F2F3F0); color: var(--cicl-text, #0D0F12); }
.segno--nome { display: flex; flex-direction: column; justify-content: flex-end; padding: 7% 8%; box-sizing: border-box; }
.segno__nome, .segno__cognome { font-family: var(--cicl-font-titoli, serif); font-size: clamp(1rem, 11cqi, 3.25rem); font-weight: 500; line-height: 1.02; letter-spacing: -0.01em; overflow-wrap: break-word; }
.segno__cognome { display: none; font-size: clamp(0.875rem, 17cqi, 1.5rem); }
@container segno (max-width: 200px) {
	.segno__nome { display: none; }
	.segno__cognome { display: block; }
}
.segno--fagiano svg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 46%; height: auto; }

/* Analisi: la copertina nera dei dati (l'illustrazione di inc/card.php) o il numero del pezzo */
.segno--analisi, .segno--figura { background: var(--cicl-band, #0D0F12); color: var(--cicl-band-strong, #F4F5F2); }
.segno .illustrazione { position: absolute; inset: 0; aspect-ratio: auto; }
/* Il segno della corsa nella scheda: i nomi delle salite si leggono solo in un riquadro largo */
@container segno (max-width: 699px) {
	.segno .illustrazione--segno .segno__etichette { display: none; }
	.segno .illustrazione--segno svg { width: 88%; max-width: 88%; max-height: 52%; }
}
.segno--numero { display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; padding: 7% 8%; box-sizing: border-box; }
.segno__cifra { font-family: var(--cicl-font-titoli, serif); font-size: clamp(2rem, 34cqi, 9rem); font-weight: 500; line-height: 0.9; letter-spacing: -0.02em; }
.segno__detto { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-band-text, #C3C8CF); }
@container segno (max-width: 200px) { .segno__detto { display: none; } }
/* Nel tema scuro la copertina nera si stacca dal fondo con un filo */
[data-theme="scuro"] :is(.segno--analisi, .segno--figura) { box-shadow: inset 0 0 0 1px var(--cicl-band-line, #23272D); }

/* Storia senza foto: l'anno, su un grigio da foto d'epoca */
/* il grigio delle didascalie, con l'anno in carta: contrasto AA (circa 6:1) in tutti e due i temi */
.segno--anno { display: flex; align-items: center; justify-content: center; background: var(--cicl-muted, #5A6069); color: var(--cicl-bg, #FFFFFF); }
.segno__anno { font-family: var(--cicl-font-titoli, serif); font-style: italic; font-size: clamp(1.5rem, 26cqi, 6.5rem); font-weight: 500; line-height: 1; }
.segno--anno svg { width: 40%; height: auto; }

/* Guida: la nebbia con i minuti di lettura */
.segno--guida {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 6% 7%;
	box-sizing: border-box;
	background: var(--cicl-surface, #F2F3F0);
	border-top: 2px solid var(--cicl-text, #0D0F12);
	color: var(--cicl-text, #0D0F12);
}
.segno__sopra { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.segno__minuti { display: flex; align-items: baseline; gap: 10px; }
.segno__n { font-family: var(--cicl-font-titoli, serif); font-size: clamp(1.75rem, 30cqi, 7rem); font-weight: 500; line-height: 0.9; }
.segno__unita, .segno__unita-breve { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--cicl-muted, #5A6069); }
.segno__unita-breve { display: none; }
@container segno (max-width: 200px) {
	.segno__sopra, .segno__unita { display: none; }
	.segno__unita-breve { display: inline; }
	.segno--guida { justify-content: flex-end; }
}

/* La prima pagina: l'etichetta sopra il titolo, la data sotto il sommario, il segno al posto della foto */
.notizia-lead { grid-template-areas: "sopra" "titolo" "foto" "sommario" "data"; }
.notizia-lead__data { grid-area: data; }
.notizia-lead__foto.scheda-pezzo__segno { aspect-ratio: 16 / 9; }
@media (min-width: 1100px) {
	.notizia-lead { grid-template-areas: "sopra sopra" "titolo foto" "sommario foto" "data foto"; grid-template-rows: auto auto auto 1fr; }
	.notizia-lead .notizia-lead__foto.scheda-pezzo__segno { aspect-ratio: 4 / 3; }
}
.notizie-home .segno a, .notizie-home .scheda-pezzo__segno:hover { text-decoration: none; }
.ultimora__voce .etichetta-pezzo { font-weight: 400; }
.da-leggere__sezione.etichetta-pezzo { display: block; font-weight: 400; letter-spacing: 0.14em; }
.da-leggere__data { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; color: var(--cicl-muted, #5A6069); }

/* Gli elenchi della prima pagina e dei corridori */
.elenco--schede .elenco__voci { gap: 32px; }
.elenco--titoli .elenco__voci > .scheda-pezzo--titoli:last-child { border-bottom: 0; }

/* /notizie/, /ultimi/ e le sezioni */
.flusso { color: var(--cicl-text, #0D0F12); padding: 20px 0 64px; }
.flusso--sezione { padding-top: 32px; }
.flusso__testa { margin-bottom: 24px; }
.flusso__barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 32px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--cicl-text, #0D0F12);
}
.flusso__barra .pezzi-filtri { margin-top: 0; }
.flusso__conta { margin: 0 0 0 auto; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.flusso__corpo--ordini {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	grid-template-areas: "prime ordini" "resto ordini";
	grid-template-rows: auto 1fr;
	column-gap: 48px;
	align-items: start;
}
.flusso__righe--prime { grid-area: prime; }
.flusso__righe--resto { grid-area: resto; }
.flusso__corpo--ordini > .ordini { grid-area: ordini; position: sticky; top: 16px; }
.flusso__griglia {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr));
	gap: 40px 28px;
	padding-top: 28px;
}
.flusso__vuoto { margin-top: 24px; }
@media (max-width: 960px) {
	.flusso__corpo--ordini { display: block; }
	.flusso__corpo--ordini > .ordini { position: static; margin: 28px 0 12px; }
}

/* La paginazione: link alti 44 px */
.flusso__pagine { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.875rem; }
.flusso__pagine .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; box-sizing: border-box; border: 1.5px solid var(--cicl-text, #0D0F12); color: var(--cicl-text, #0D0F12); text-decoration: none; }
.flusso__pagine .page-numbers.current { background: var(--cicl-text, #0D0F12); color: var(--cicl-bg, #FFFFFF); }
.flusso__pagine .page-numbers.dots { border-color: transparent; }
.flusso__pagine a.page-numbers:hover { background: var(--cicl-surface, #F2F3F0); }

/* Gli ordini d'arrivo: una colonna stretta, ogni riga un link intero */
.ordini { border-top: 2px solid var(--cicl-text, #0D0F12); padding-top: 14px; }
.ordini__titolo { margin: 0; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.25rem; font-weight: 650; }
.ordini__sotto { margin: 4px 0 10px; font-size: 0.875rem; line-height: 1.4; color: var(--cicl-muted, #5A6069); }
.ordini__righe { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cicl-text, #0D0F12); }
.ordini__righe li { border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.ordini__riga { display: flex; flex-direction: column; gap: 3px; min-height: 44px; padding: 12px 4px; box-sizing: border-box; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.ordini__riga:hover { background: var(--cicl-surface, #F2F3F0); }
.ordini__riga:hover .ordini__nome { text-decoration: underline; }
.ordini__etichetta { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.ordini__nome { font-size: 0.9375rem; font-weight: 650; line-height: 1.3; }
.ordini__podio { font-size: 0.875rem; line-height: 1.35; color: var(--cicl-body, #2E3238); }
/* Fra i risultati della ricerca l'etichetta sta sopra il titolo, come nelle altre schede */
.elenco-risultati .etichetta-pezzo { flex-basis: 100%; }
/* Gli ordini d'arrivo: in fondo il link a tutte le corse; al telefono, dentro la cronaca, le sei gare più recenti */
.ordini__tutte { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-text, #0D0F12); }
@media (max-width: 960px) { .ordini__righe li:nth-child(n+7) { display: none; } }
/* Al telefono le quattro notizie sotto l'apertura sono righe, con il segno piccolo a sinistra (tela «Home telefono») */
@media (max-width: 560px) {
	.notizie-home__seconde { gap: 0; }
	.notizie-home__seconde .scheda-pezzo--griglia { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
}

/* ------------------------------------------------------------------
   Il fagIAno, in una pagina sola (blocco fagiano, /fagiano/): la fascia
   d'asfalto con il nome e la prova contro gli esperti, l'indice della
   pagina, poi registro, calibrazione, versioni e metodo, ognuno aperto
   da un filo forte e un titolo in Bodoni.
   ------------------------------------------------------------------ */

.fagiano-pagina { --fp-largo: var(--wp--style--global--wide-size, 1240px); --fp-margine: var(--wp--style--root--padding-right, 1.25rem); }
.fagiano-pagina__testa { background: var(--cicl-band, #0D0F12); color: var(--cicl-band-text, #C3C8CF); }
.fagiano-pagina__dentro,
.fagiano-pagina__corpo { max-width: var(--fp-largo); margin: 0 auto; padding: 0 var(--fp-margine); box-sizing: content-box; }
.fagiano-pagina__dentro { padding-top: 20px; }
.fagiano-pagina__apertura { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 28px 64px; padding: 20px 0 36px; }
.fagiano-pagina__nome { flex: 1 1 520px; min-width: 0; }
.fagiano-pagina .fagiano-pagina__titolo { margin: 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(3.5rem, 9vw, 7rem); font-weight: 500; line-height: 0.95; color: var(--cicl-band-strong, #F4F5F2); }
.fagiano-pagina__titolo .ia { font-size: 0.86em; padding: 0 0.04em; }
.fagiano-pagina__sommario { margin: 20px 0 0; max-width: 36rem; font-size: 1.1875rem; line-height: 1.5; color: var(--cicl-band-text, #C3C8CF); }
.fagiano-pagina__prova { flex: 1 1 360px; max-width: 520px; display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--cicl-band-line, #2A2F36); padding-top: 16px; }
.fagiano-pagina__prova p { margin: 0; }
.fagiano-pagina__sopra { font-family: var(--cicl-font-numeri, monospace); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-band-muted, #7D848E); }
.fagiano-pagina .fagiano-pagina__vanto { font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 500; line-height: 1.05; color: var(--cicl-band-strong, #F4F5F2); text-wrap: balance; }
.fagiano-pagina__differenza { font-size: 0.9375rem; line-height: 1.5; }
.fagiano-pagina__misura { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; color: var(--cicl-band-strong, #F4F5F2); text-decoration: underline; text-underline-offset: 0.3em; text-decoration-color: var(--cicl-band-muted, #7D848E); }
.fagiano-pagina__misura:hover { text-decoration-color: currentColor; }
.fagiano-pagina__indice { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 24px; border-top: 1px solid var(--cicl-band-line, #2A2F36); }
.fagiano-pagina__indice ul { display: flex; flex-wrap: wrap; gap: 0 28px; margin: 0; padding: 0; list-style: none; }
.fagiano-pagina__indice a,
.fagiano-pagina__chiedi { display: inline-flex; align-items: center; gap: 6px; min-height: 52px; color: var(--cicl-band-strong, #F4F5F2); font-family: var(--cicl-font-testo, sans-serif); font-size: 1rem; font-weight: 600; text-decoration: none; }
.fagiano-pagina__indice a:hover,
.fagiano-pagina__chiedi:hover { text-decoration: underline; text-underline-offset: 0.3em; }
.fagiano-pagina__chiedi { padding: 0; border: 0; background: none; cursor: pointer; }
.fagiano-pagina :is(a, button, input):focus-visible { outline: 2px solid var(--cicl-cobalt, #2846F0); outline-offset: 3px; }
.fagiano-pagina__testa :is(a, button):focus-visible { outline-color: var(--cicl-band-cobalt, #8C9DFF); }

.fagiano-pagina__corpo { padding-top: 48px; padding-bottom: 64px; display: flex; flex-direction: column; gap: 56px; }
.fagiano-pagina__sezione { scroll-margin-top: 72px; min-width: 0; }
.fagiano-pagina__capo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 24px; border-top: 2px solid var(--cicl-text, #0D0F12); padding-top: 16px; margin-bottom: 24px; }
.fagiano-pagina__capo h2,
.fagiano-pagina .registro-fagiano__versioni-titolo { margin: 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 500; line-height: 1.05; }
.fagiano-pagina__capo p { margin: 0; flex: 0 1 36rem; font-size: 1rem; line-height: 1.5; color: var(--cicl-body, #2E3238); }
.fagiano-pagina__capo .fagiano-pagina__versione { flex: 0 0 auto; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.fagiano-pagina .registro-fagiano { margin-bottom: 0; }
.fagiano-pagina .registro-fagiano__versioni { scroll-margin-top: 72px; max-width: 900px; margin: 0; border-top: 2px solid var(--cicl-text, #0D0F12); padding-top: 16px; }
.fagiano-pagina .registro-fagiano__versioni-titolo { margin-bottom: 24px; }
.fagiano-pagina__grafico { max-width: 560px; margin: 0; }

.fagiano-pagina__passi { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 24px 28px; margin: 0 0 28px; padding: 0; list-style: none; counter-reset: passo; }
.fagiano-pagina__passi li { counter-increment: passo; border-top: 3px solid var(--cicl-text, #0D0F12); padding-top: 10px; }
.fagiano-pagina__passi li::before { content: counter(passo); display: block; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: 2.75rem; line-height: 1.1; }
.fagiano-pagina__passi h3 { margin: 8px 0 6px; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.125rem; font-weight: 650; }
.fagiano-pagina__passi p { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--cicl-body, #2E3238); }
.fagiano-pagina__misura-prova { display: flex; flex-wrap: wrap; gap: 20px 48px; padding: 20px 24px; background: var(--cicl-surface, #F2F3F0); margin-bottom: 20px; }
.fagiano-pagina__misura-prova > div { flex: 1 1 300px; }
.fagiano-pagina__misura-prova > p { flex: 1 1 360px; margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--cicl-body, #2E3238); }
.fagiano-pagina__misura-prova .fagiano-pagina__sopra { color: var(--cicl-muted, #5A6069); margin: 0 0 10px; }
.fagiano-pagina__misura-prova dl { display: flex; gap: 32px; margin: 0; }
.fagiano-pagina__misura-prova dt { font-family: var(--cicl-font-numeri, monospace); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.fagiano-pagina__misura-prova dd { margin: 2px 0 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: 2.75rem; line-height: 1; }
.fagiano-pagina__misura-prova div:not(.is-fagiano) > dd { color: var(--cicl-muted, #5A6069); }
.fagiano-pagina__intervallo { margin: 10px 0 0; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.fagiano-pagina__intero { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.fagiano-pagina__intero:hover { color: var(--cicl-cobalt, #2846F0); text-decoration: underline; }

.fagiano-pagina__chiedi-box { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 48px; padding: 28px; border: 2px solid var(--cicl-text, #0D0F12); }
.fagiano-pagina__chiedi-box h2 { margin: 0 0 6px; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: 2.25rem; font-weight: 500; line-height: 1.1; }
.fagiano-pagina__chiedi-box p { margin: 0; color: var(--cicl-body, #2E3238); }
.fagiano-pagina__domanda { flex: 1 1 360px; max-width: 680px; display: flex; flex-direction: column; gap: 6px; margin: 0; }
.fagiano-pagina__domanda label { font-family: var(--cicl-font-numeri, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.fagiano-pagina__domanda > span { display: flex; }
.fagiano-pagina__domanda input { flex: 1 1 auto; min-width: 0; min-height: 52px; box-sizing: border-box; padding: 0 14px; border: 1px solid var(--cicl-text, #0D0F12); border-right: 0; border-radius: 0; background: var(--cicl-bg, #fff); color: var(--cicl-text, #0D0F12); font: inherit; font-size: 1rem; }
.fagiano-pagina__domanda input::placeholder { color: var(--cicl-muted, #5A6069); opacity: 1; }
.fagiano-pagina__domanda button { min-height: 52px; padding: 0 22px; border: 1px solid var(--cicl-text, #0D0F12); border-radius: 0; background: var(--cicl-text, #0D0F12); color: var(--cicl-bg, #fff); font: inherit; font-weight: 600; cursor: pointer; }
.fagiano-pagina__domanda button:hover { background: var(--cicl-cobalt, #2846F0); border-color: var(--cicl-cobalt, #2846F0); }
/* «Dietro le quinte»: i due agenti di Tinke, come la tavola 04 della presentazione. I marchi restano con i loro
   colori (eccezione ai token, come le maglie): il blu di Mimir e Mnemosyne è #1B2243, nello scuro il loro avorio
   #F7F4F1; Tinke prende il colore del testo. I riquadri sono nebbia, nello scuro --cicl-surface. */
.fagiano-agenti__capo { border-top: 2px solid var(--cicl-text, #0D0F12); padding-top: 16px; margin-bottom: 28px; }
.fagiano-agenti__sopra { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 24px; }
.fagiano-agenti__sopra p { margin: 0; }
.fagiano-agenti__occhiello { font-family: var(--cicl-font-numeri, monospace); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.fagiano-agenti__fatto { display: flex; align-items: center; gap: 10px; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.fagiano-agenti__tinke { display: inline-flex; align-items: center; min-height: 44px; margin: -10px 0; color: var(--cicl-text, #0D0F12); } /* il bersaglio resta di 44 px, la riga no */
.fagiano-agenti__tinke-marchio { display: block; width: auto; height: 26px; aspect-ratio: 466.51 / 118.96; }
.fagiano-agenti__tinke:hover { color: var(--cicl-cobalt, #2846F0); }
.fagiano-agenti__capo h2 { margin: 14px 0 0; max-width: 22em; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 500; line-height: 1.05; text-wrap: balance; }
.fagiano-agenti__capo h2 em { display: block; font-style: italic; } /* «Davanti, il fagIAno.» sempre su una riga sua */
.fagiano-agenti__elenco { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 24px 32px; margin: 0; padding: 0; list-style: none; }
.fagiano-agenti__agente { display: flex; flex-direction: column; min-width: 0; padding: 32px 32px 20px; background: var(--cicl-surface, #F2F3F0); }
.fagiano-agenti__nome { margin: 0 0 24px; line-height: 0; color: #1B2243; }
[data-theme="scuro"] .fagiano-agenti__nome { color: #F7F4F1; }
.fagiano-agenti__mnemosyne { display: block; width: min(100%, 300px); height: auto; aspect-ratio: 948 / 196; }
.fagiano-agenti__mimir { display: block; width: min(100%, 220px); height: auto; aspect-ratio: 2940 / 840; }
.fagiano-agenti__mnemosyne.is-scuro,
[data-theme="scuro"] .fagiano-agenti__mnemosyne.is-chiaro { display: none; }
[data-theme="scuro"] .fagiano-agenti__mnemosyne.is-scuro { display: block; }
.fagiano-agenti__agente p { margin: 0 0 12px; font-size: 1.0625rem; line-height: 1.55; color: var(--cicl-body, #2E3238); }
.fagiano-agenti__agente strong { color: var(--cicl-text, #0D0F12); font-weight: 650; }
.fagiano-agenti__link { align-self: flex-start; display: inline-flex; align-items: center; min-height: 44px; margin-top: auto; font-family: var(--cicl-font-numeri, monospace); font-size: 0.8125rem; color: var(--cicl-text, #0D0F12); text-decoration: underline; text-underline-offset: 0.3em; }
.fagiano-agenti__link:hover { color: var(--cicl-cobalt, #2846F0); }
.fagiano-pagina__fonti { margin: -24px 0 0; padding-top: 14px; border-top: 1px solid var(--cicl-line, #DEE1DC); font-family: var(--cicl-font-numeri, monospace); font-size: 0.75rem; line-height: 1.6; color: var(--cicl-muted, #5A6069); }

@media (max-width: 600px) {
	.fagiano-pagina__apertura { padding-bottom: 24px; }
	.fagiano-pagina__indice ul { gap: 0 20px; }
	.fagiano-pagina__corpo { padding-top: 32px; gap: 44px; }
	.fagiano-pagina__chiedi-box { padding: 20px 16px; }
	.fagiano-pagina__misura-prova { padding: 16px; }
	.fagiano-agenti__agente { padding: 24px 20px 12px; }
	.fagiano-agenti__nome { margin-bottom: 20px; }
	.fagiano-agenti__tinke-marchio { height: 20px; }
}

/* /corridori/: il rimando alla pagina delle squadre, al posto delle rose */
.rosa__rimando p { margin: 0 0 8px; color: var(--cicl-body, #2E3238); }
.rosa--squadre .rosa__categoria h3 { margin: 0; }

/* I filtri dei pezzi: ogni scelta con quanti pezzi dà; quella che ne darebbe 0 è spenta, tratteggiata e non è un link */
.pezzi-filtri__n { margin-left: 6px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; font-weight: 400; color: var(--cicl-muted, #5A6069); }
.hub__scelte a[aria-current] .pezzi-filtri__n { color: inherit; opacity: 0.75; }
.pezzi-filtri__vuota {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 14px;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cicl-muted, #5A6069);
	outline: 1px dashed var(--cicl-line, #DEE1DC);
	outline-offset: -5px;
	cursor: not-allowed;
}
.hub__scelte .pezzi-filtri__vuota + a, .hub__scelte a + .pezzi-filtri__vuota { border-left: 1px solid var(--b-filo, var(--cicl-line, #DEE1DC)); }

/* -------------------------------------------------------------------------
 * Fase E: la pagina di una gara di ciclocross o di un evento di pista (blocchi/gara)
 * ---------------------------------------------------------------------- */

/* La testata: i due podi del ciclocross, uomini e donne, uno accanto all'altro (il fluo su tutti e due i vincitori) */
.gara__podi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 40px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--b-filo-scuro); }
.gara__podio { min-width: 0; }
.gara__categoria { margin: 0 0 6px; font-family: var(--b-mono); font-size: 0.75rem; letter-spacing: 0.14em; color: var(--b-spento); }
.gara__podio .testata-corsa__podio { margin: 0; }

/* Il corpo */
.gara { display: flex; flex-direction: column; gap: 48px; }
.gara__vicine { display: flex; flex-wrap: wrap; gap: 0 32px; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.gara .gara__vicine a { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-height: 48px; font-weight: 600; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.gara .gara__vicine a:hover { color: var(--cicl-cobalt, #2846F0); }
.gara__vicine-nota { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.8125rem; font-weight: 400; color: var(--cicl-muted, #5A6069); }
.gara__categorie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.gara__categoria-blocco { min-width: 0; }
.gara__tabella td:first-child { width: 2.5rem; }
.gara__sotto { margin: 24px 0 8px; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.0625rem; font-weight: 650; }
.gara__italiani { list-style: none; margin: 0; padding: 0; }
.gara__italiani li { padding: 8px 0; border-bottom: 1px solid var(--cicl-line, #DEE1DC); font-size: 0.9375rem; }
.gara__pos { display: inline-block; min-width: 2.2em; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-weight: 700; font-variant-numeric: tabular-nums; color: var(--cicl-text, #0D0F12); }
.gara__distacco { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.gara a { color: var(--cicl-text, #0D0F12); text-decoration: underline; text-decoration-color: var(--cicl-line, #DEE1DC); text-underline-offset: 3px; }
.gara a:hover { color: var(--cicl-cobalt, #2846F0); }

/* La pista: la fila dei giorni (un link per giorno, a quel giorno), poi le prove giorno per giorno */
.gara__giorni { margin: 8px 0 0; }
.gara__scorri { display: none; }
.gara__fila { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; margin: 0; padding: 0; }
.gara .gara__giorno { display: flex; flex-direction: column; gap: 2px; min-height: 64px; padding: 8px 12px; border-top: 4px solid var(--cicl-line, #DEE1DC); background: var(--cicl-bg, #FFFFFF); color: var(--cicl-text, #0D0F12); text-decoration: none; }
.gara a.gara__giorno:hover { border-top-color: var(--cicl-text, #0D0F12); background: var(--cicl-surface, #F2F3F0); color: var(--cicl-text, #0D0F12); }
.gara .gara__giorno[aria-current] { border-top-color: var(--cicl-text, #0D0F12); background: var(--cicl-surface, #F2F3F0); }
.gara__giorno-n { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; }
.gara__giorno-data { font-size: 1.0625rem; font-weight: 650; }
.gara__giorno-quante { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; color: var(--cicl-muted, #5A6069); }
.gara .gara__giorno--vuoto { color: var(--cicl-muted, #5A6069); }
.gara__giorno-prove { scroll-margin-top: 96px; }
.gara__giorno-prove .gara__sotto { margin-top: 32px; }
.gara__prove th.gara__prova { width: 26%; }
.gara__prove td { width: 37%; }
.gara__prove ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.gara__chi { font-weight: 600; color: var(--cicl-text, #0D0F12); }
.gara__chi--it { font-weight: 800; }
.gara__sigla { margin-left: 4px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; font-weight: 400; color: var(--cicl-muted, #5A6069); }
.gara__chi--it .gara__sigla { font-weight: 700; color: var(--cicl-text, #0D0F12); }
.gara__squadra { display: block; margin: 2px 0 0 2.65rem; font-size: 0.8125rem; color: var(--cicl-muted, #5A6069); }
.gara__etichetta { display: none; }
/* Il medagliere della pista, in alto: i numeri in colonna, il totale in neretto, l'Italia sempre in vista con la sigla
   su fluo (come negli italiani: l'unico fluo del blocco); quando non è fra i primi dieci, staccata da un filo forte */
.gara__medagliere { max-width: 760px; }
.gara__medagliere .tappe__capo { margin-bottom: 0; }
.gara__medagliere-quando { margin: 0; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; color: var(--cicl-muted, #5A6069); }
.gara__tabella-medaglie { border-top: 1px solid var(--cicl-line, #DEE1DC); margin-top: 8px; }
.gara__tabella-medaglie abbr { text-decoration: none; }
.gara__tabella-medaglie th, .gara__tabella-medaglie td { vertical-align: baseline; }
.gara__tabella-medaglie .gara__medaglie-pos { width: 2.5rem; }
.gara__tabella-medaglie tbody th { font-size: 1.0625rem; font-weight: 600; color: var(--cicl-text, #0D0F12); }
.gara__tabella-medaglie .gara__medaglie-n { width: 5.5rem; text-align: right; white-space: nowrap; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 1.0625rem; font-variant-numeric: tabular-nums; color: var(--cicl-text, #0D0F12); }
.gara__tabella-medaglie thead .gara__medaglie-n { font-size: 0.75rem; }
.gara__tabella-medaglie .gara__medaglie-totale { font-weight: 700; }
.gara__medaglie-corto { display: none; }
.gara__medaglie-insieme { white-space: nowrap; }
.gara__medaglie-sigla { margin-left: 4px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; color: var(--cicl-muted, #5A6069); }
.gara__medaglie-italia th { font-weight: 800; }
.gara__medaglie-italia .gara__medaglie-sigla { padding: 0 0.3em; background: var(--cicl-fluo, #D4FF3F); color: var(--cicl-on-fluo, #0D0F12); }
.gara__medaglie-staccata > * { border-top: 2px solid var(--cicl-text, #0D0F12); }
.gara__medagliere-nota { margin: 8px 0 0; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; color: var(--cicl-muted, #5A6069); }
@media (max-width: 760px) {
	.gara__tabella-medaglie th, .gara__tabella-medaglie td { padding-left: 0.25rem; padding-right: 0.25rem; }
	.gara__tabella-medaglie .gara__medaglie-pos { width: 1.75rem; }
	.gara__tabella-medaglie .gara__medaglie-n { width: 1.8rem; font-size: 1rem; }
	.gara__tabella-medaglie tbody th { font-size: 1rem; }
	.gara__tabella-medaglie th:last-child, .gara__tabella-medaglie td:last-child { padding-right: 0; }
	.gara__medaglie-lungo { display: none; }
	.gara__medaglie-corto { display: inline; }
	/* al telefono, con il medagliere, i numeri della testata (i giorni sono già nelle date, le finali nel giorno per
	   giorno) lasciano il posto alla tabella, che sale nel primo schermo */
	body:has(.gara__medagliere) .testata-corsa--gara .testata-corsa__numeri { display: none; }
}

@media (max-width: 760px) {
	.gara { gap: 36px; }
	.gara__podi { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 18px; }
	.gara__categorie { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	/* la fila dei giorni scorre di lato, dentro il suo riquadro: l'ultimo giorno che si vede resta a metà e una riga lo dice */
	.gara__scorri { display: flex; justify-content: flex-end; gap: 6px; margin: 0 0 6px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
	.gara__fila { grid-auto-columns: 30%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 6px; }
	.gara__fila li { scroll-snap-align: start; }
	.gara .gara__giorno { min-height: 60px; padding: 6px 10px; }
	/* le prove: una scheda per prova, il podio e gli italiani uno sotto l'altro */
	.gara__prove thead { display: none; }
	.gara__prove, .gara__prove tbody, .gara__prove tr, .gara__prove th, .gara__prove td { display: block; width: auto; }
	.gara__prove th.gara__prova, .gara__prove td { width: auto; padding: 0; border: 0; }
	.gara__prove tr { padding: 12px 0; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
	.gara__prove td { margin-top: 10px; }
	.gara__prove td:empty { display: none; }
	.gara__etichetta { display: block; margin-bottom: 4px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
	.gara__vicine { flex-direction: column; }
}

/* Una gara in corso (o appena finita) senza ancora i risultati: la frase, le prove in programma, l'edizione prima in vista */
.gara__attesa { display: flex; flex-direction: column; gap: 14px; padding: 24px; background: var(--cicl-surface, #F2F3F0); }
.gara__attesa-frase { margin: 0; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.25rem; line-height: 1.4; font-weight: 650; color: var(--cicl-text, #0D0F12); }
.gara__attesa .gara__sotto { margin: 4px 0 0; }
.gara__programma { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0; padding: 0; font-size: 0.9375rem; }
.gara .gara__prima { display: flex; flex-direction: column; gap: 4px; align-self: flex-start; min-height: 44px; padding: 14px 16px; border-top: 2px solid var(--cicl-text, #0D0F12); background: var(--cicl-bg, #FFFFFF); text-decoration: none; }
.gara .gara__prima:hover .gara__prima-nome { color: var(--cicl-cobalt, #2846F0); }
.gara__prima-etichetta { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.gara__prima-nome { font-family: var(--cicl-font-titoli, serif); font-size: 1.75rem; line-height: 1.15; color: var(--cicl-text, #0D0F12); }
.gara__prima-italia { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.9375rem; font-weight: 700; color: var(--cicl-text, #0D0F12); }
@media (max-width: 760px) {
	.gara__attesa { padding: 18px 16px; }
	.gara__attesa-frase { font-size: 1.125rem; }
	.gara .gara__prima { align-self: stretch; }
	.gara__prima-nome { font-size: 1.5rem; }
}

/* ------------------------------------------------------------------
   Fase D del piano UX/UI: la prima pagina (blocco prima-pagina,
   inc/prima-pagina.php). La riga Oggi, la corsa di oggi con le fasi,
   le notizie con gli ordini d'arrivo, le analisi, il fagIAno, le
   storie e le guide; una corsa una volta sola.
   ------------------------------------------------------------------ */

.casa { padding-bottom: 64px; }
.casa > * { margin-block-start: 0; margin-block-end: 0; }

/* La riga Oggi: le corse di oggi in una riga sola, sull'asfalto; al telefono scorre di lato dentro di sé */
.casa-oggi { margin: 0; background: var(--cicl-band, #0D0F12); color: var(--cicl-band-text, #C3C8CF); }
.casa-oggi__dentro { display: flex; align-items: stretch; max-width: var(--wp--style--global--wide-size, 1240px); margin: 0 auto; padding: 0 var(--wp--style--root--padding-right, 1.25rem); box-sizing: content-box; }
.casa-oggi__capo { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding-right: 16px; border-right: 1px solid var(--cicl-band-line, #2A2F36); font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; color: var(--cicl-band-strong, #F4F5F2); text-decoration: none; }
.casa-oggi__capo:hover span:last-child { text-decoration: underline; text-underline-offset: 0.3em; }
.casa-oggi__punto { width: 8px; height: 8px; border-radius: 50%; background: var(--cicl-fluo, #D4FF3F); }
.casa-oggi__corse { flex: 1 1 auto; min-width: 0; display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.casa-oggi__corse::-webkit-scrollbar { display: none; }
.casa-oggi__corse li { flex: 0 0 auto; border-right: 1px solid var(--cicl-band-line, #2A2F36); }
.casa-oggi__corsa { display: flex; align-items: baseline; gap: 10px; min-height: 48px; padding: 14px 16px; box-sizing: border-box; white-space: nowrap; font-size: 0.9375rem; color: var(--cicl-band-text, #C3C8CF); text-decoration: none; }
.casa-oggi__disciplina, .casa-oggi__sopra, .casa-oggi__giorno time { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-band-muted, #7D848E); }
.casa-oggi__nome { font-weight: 650; color: var(--cicl-band-strong, #F4F5F2); }
.casa-oggi__corsa:hover .casa-oggi__nome { text-decoration: underline; text-underline-offset: 0.2em; }
.casa-oggi :is(a, button):focus-visible { outline-color: var(--cicl-band-cobalt, #8C9DFF); outline-offset: -3px; }
/* Quando la riga non ci sta (vista.js): la sfumatura a destra e il pulsante «+N →» che la fa scorrere */
.casa-oggi--scorre .casa-oggi__corse { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); }
.casa-oggi__avanti { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 48px; min-height: 48px; padding: 0 12px; border: 0; border-left: 1px solid var(--cicl-band-line, #2A2F36); border-radius: 0; background: var(--cicl-band, #0D0F12); color: var(--cicl-band-strong, #F4F5F2); font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.8125rem; font-weight: 700; cursor: pointer; }
.casa-oggi__avanti[hidden] { display: none; }
.casa-oggi__avanti:hover { background: var(--cicl-band-line, #2A2F36); }
/* Nei giorni senza corse: la carta, la data e la prossima gara */
.casa-oggi--senza { background: var(--cicl-bg, #FFFFFF); color: var(--cicl-text, #0D0F12); border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.casa-oggi--senza .casa-oggi__dentro { flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 32px; }
.casa-oggi__giorno { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 16px; margin: 0; padding: 12px 0; }
.casa-oggi--senza .casa-oggi__sopra { color: var(--cicl-muted, #5A6069); }
.casa-oggi--senza .casa-oggi__giorno time { color: var(--cicl-text, #0D0F12); }
.casa-oggi__sopra strong { color: var(--cicl-text, #0D0F12); font-weight: 700; }
.casa-oggi__niente { font-size: 1rem; color: var(--cicl-body, #2E3238); }
.casa-oggi__prossima { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; min-height: 44px; padding: 10px 0; box-sizing: border-box; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-oggi--senza .casa-oggi__nome { color: var(--cicl-text, #0D0F12); }
.casa-oggi__prossima:hover .casa-oggi__nome { text-decoration: underline; text-underline-offset: 0.2em; }
.casa-oggi__quando { color: var(--cicl-body, #2E3238); }
.casa-oggi__vai { font-weight: 700; }
.casa-oggi--senza a:focus-visible { outline-color: var(--cicl-cobalt, #2846F0); }
/* Variante C (Paolo, 14/10/2026): la riga Oggi è chiara, su nebbia; la sola fascia scura resta il nastro della stagione sotto */
.casa-oggi { background: var(--cicl-surface, #F2F3F0); color: var(--cicl-body, #2E3238); border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.casa-oggi .casa-oggi__capo { color: var(--cicl-text, #0D0F12); border-right-color: var(--cicl-line, #DEE1DC); }
.casa-oggi .casa-oggi__corse li { border-right-color: var(--cicl-line, #DEE1DC); }
.casa-oggi .casa-oggi__corsa { color: var(--cicl-muted, #5A6069); }
.casa-oggi .casa-oggi__disciplina { color: var(--cicl-muted, #5A6069); }
.casa-oggi .casa-oggi__nome { color: var(--cicl-text, #0D0F12); }
.casa-oggi .casa-oggi__punto { box-shadow: 0 0 0 1.5px var(--cicl-text, #0D0F12); }
.casa-oggi .casa-oggi__avanti { background: var(--cicl-surface, #F2F3F0); color: var(--cicl-text, #0D0F12); border-left-color: var(--cicl-line, #DEE1DC); }
.casa-oggi .casa-oggi__avanti:hover { background: var(--cicl-line, #DEE1DC); }
.casa-oggi :is(a, button):focus-visible { outline-color: var(--cicl-cobalt, #2846F0); }
/* Sotto la riga Oggi il nastro non ripete «in corsa: …»: restano i conti della stagione */
.casa-oggi ~ .nastro .nastro__testo--in-corso :is(.nastro__lungo, .nastro__breve) { display: none; }

/* La corsa di oggi: il testo a sinistra, l'altimetria su nebbia a destra, sotto la fila delle fasi */
.casa-corsa { padding: 40px 0 0; }
.casa-corsa__testa { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px 48px; align-items: end; }
.casa-corsa__etichetta { margin: 0; }
.casa-corsa__stato { display: inline-block; margin-left: 10px; padding: 0 8px; border: 1.5px solid var(--cicl-text, #0D0F12); font-weight: 700; color: var(--cicl-text, #0D0F12); }
.casa-corsa__titolo { margin: 12px 0 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 4.2vw, 3.5rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.01em; text-wrap: balance; }
.casa-corsa__titolo a { color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-corsa__titolo a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.12em; }
.casa-corsa__esito { margin: 14px 0 0; font-size: 1.125rem; line-height: 1.55; color: var(--cicl-body, #2E3238); }
.casa-corsa__pos { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-weight: 700; color: var(--cicl-text, #0D0F12); }
.casa-corsa__primo { padding: 0 4px; background: var(--cicl-fluo, #D4FF3F); color: var(--cicl-on-fluo, #0D0F12); font-weight: 650; }
.casa-corsa__punto { color: var(--cicl-muted, #5A6069); }
.casa-corsa__link { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 8px 0 0; }
.casa-corsa__link a, .casa-sezione__link a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-corsa__link a:hover, .casa-sezione__link a:hover { text-decoration: underline; text-underline-offset: 0.3em; }
.casa-corsa__segui { font-weight: 700; }
.casa-corsa__profilo { margin: 0; padding: 20px 20px 10px; background: var(--cicl-surface, #F2F3F0); }
.casa-corsa__altimetria { display: block; }
.casa-corsa__altimetria svg { display: block; width: 100%; height: 104px; }
.casa-corsa__altimetria .tappe__profilo-area { fill: var(--cicl-text, #0D0F12); opacity: 1; }
.casa-corsa__altimetria .tappe__profilo-linea { display: none; }
.casa-corsa__misure { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; margin-top: 10px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; line-height: 1.5; color: var(--cicl-muted, #5A6069); }
.casa-corsa .fasi { margin: 28px 0 0; }

/* Il capo di ogni sezione: il filo forte, il nome in Bodoni, una riga accanto, i link a destra */
.casa-sezione { padding-top: 56px; }
.casa-sezione__capo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 16px; margin-bottom: 24px; padding-top: 14px; border-top: 2px solid var(--cicl-text, #0D0F12); }
.casa-sezione__titolo { margin: 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 3.4vw, 2.75rem); font-weight: 500; line-height: 1.08; color: var(--cicl-text, #0D0F12); }
.casa-sezione__titolo .ia { font-size: 0.86em; padding: 0 0.04em; }
.casa-sezione__sotto { margin: 0; font-size: 1rem; color: var(--cicl-muted, #5A6069); }
.casa-sezione__link { display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0 0 0 auto; }

/* Le notizie: l'apertura, tre schede (la prima con il segno, le altre solo il titolo), gli ordini d'arrivo */
.casa-notizie__corpo { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 32px 40px; align-items: start; }
.casa-notizie__corpo--ordini { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 300px; }
.casa-apertura { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.casa-apertura__segno { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.casa-apertura__testo { display: flex; flex-direction: column; gap: 8px; }
.casa-apertura__titolo { margin: 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.08; letter-spacing: -0.005em; text-wrap: balance; }
.casa-apertura__titolo a { color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-apertura__titolo a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.12em; }
.casa-apertura__sommario { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: var(--cicl-body, #2E3238); }
.casa-notizie__seconde { display: flex; flex-direction: column; min-width: 0; }
.casa-notizie__seconde .scheda-pezzo--griglia { padding-bottom: 18px; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.casa-notizie__seconde .scheda-pezzo--titoli:last-child { border-bottom: 0; }
.casa-notizie__corpo > .ordini { min-width: 0; }
@media (max-width: 1180px) {
	.casa-notizie__corpo--ordini { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
	.casa-notizie__corpo--ordini > .ordini { grid-column: 1 / -1; }
}

/* Nei giorni senza corse: l'apertura grande, accanto gli ordini d'arrivo e le prossime gare */
.casa-primo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px 48px; align-items: start; padding-top: 40px; }
.casa-apertura--grande .casa-apertura__titolo { font-size: clamp(2rem, 3.8vw, 3.25rem); }
.casa-lato { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.casa-prossime { padding-top: 14px; border-top: 2px solid var(--cicl-text, #0D0F12); }
.casa-prossime__titolo { margin: 0 0 10px; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.25rem; font-weight: 650; }
.casa-prossime__righe { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cicl-text, #0D0F12); }
.casa-prossime__righe li { border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
.casa-prossime__righe a { display: flex; flex-direction: column; gap: 3px; min-height: 44px; padding: 12px 4px; box-sizing: border-box; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-prossime__righe a:hover { background: var(--cicl-surface, #F2F3F0); }
.casa-prossime__righe a:hover .casa-prossime__nome { text-decoration: underline; }
.casa-prossime__nome { font-size: 0.9375rem; font-weight: 650; line-height: 1.3; }
.casa-prossime__quando { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; color: var(--cicl-muted, #5A6069); }

/* Le griglie delle schede: due (analisi), tre (notizie, letture), quattro (letture) */
.casa-griglia { display: grid; gap: 40px 28px; }
.casa-griglia--due { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.casa-griglia--tre { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.casa-griglia--quattro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.casa-analisi .scheda-pezzo__titolo { font-size: 1.375rem; line-height: 1.25; }
/* Un'analisi sola: la copertina a sinistra e il testo accanto, non mezza riga vuota */
.casa-griglia--uno .scheda-pezzo--griglia { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px 32px; align-items: center; }
.casa-griglia--uno .scheda-pezzo__titolo { font-size: clamp(1.375rem, 2.2vw, 1.75rem); }
.casa-notizie__corpo--fila { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 1000px) {
	.casa-griglia--quattro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Il fagIAno: una fascia di nebbia, l'ultimo scontrino e il registro */
.casa-fagiano { margin-top: 56px; padding: 0 0 48px; background: var(--cicl-surface, #F2F3F0); }
.casa-fagiano__dentro { max-width: var(--wp--style--global--wide-size, 1240px); margin: 0 auto; padding: 40px var(--wp--style--root--padding-right, 1.25rem) 0; box-sizing: content-box; }
.casa-fagiano__corpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 56px; align-items: start; }
.casa-fagiano__scontrino { display: flex; flex-direction: column; gap: 12px; padding: 20px 24px; background: var(--cicl-bg, #FFFFFF); border-top: 2px dashed var(--cicl-text, #0D0F12); border-bottom: 2px dashed var(--cicl-text, #0D0F12); color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-fagiano__scontrino:hover .casa-fagiano__vai { text-decoration: underline; text-underline-offset: 0.3em; }
.casa-fagiano__sopra { margin: 0; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.casa-fagiano__sopra strong { font-weight: 700; color: var(--cicl-text, #0D0F12); }
.casa-fagiano__chi { font-size: 1.1875rem; line-height: 1.5; }
.casa-fagiano__cifra { padding: 0 4px; background: var(--cicl-fluo, #D4FF3F); color: var(--cicl-on-fluo, #0D0F12); font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-weight: 700; }
.casa-fagiano__favorito { font-size: 0.9375rem; line-height: 1.5; color: var(--cicl-body, #2E3238); }
.casa-fagiano__vai { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; }
.casa-fagiano__registro { display: flex; flex-direction: column; gap: 14px; }
.casa-fagiano__vanto { margin: 0; font-family: var(--cicl-font-titoli, Georgia, serif); font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 500; line-height: 1.06; text-wrap: balance; color: var(--cicl-text, #0D0F12); }
.casa-fagiano__regola { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--cicl-body, #2E3238); }
.casa-fagiano__pulsante { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 20px; box-sizing: border-box; border: 1.5px solid var(--cicl-text, #0D0F12); font-weight: 650; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.casa-fagiano__pulsante:hover { background: var(--cicl-text, #0D0F12); color: var(--cicl-bg, #FFFFFF); }
.casa .iscrizione { margin-top: 56px; }

/* Il tablet: le colonne si stringono */
@media (max-width: 960px) {
	.casa-corsa__testa, .casa-primo, .casa-fagiano__corpo { grid-template-columns: minmax(0, 1fr); }
	.casa-notizie__corpo, .casa-notizie__corpo--ordini { grid-template-columns: minmax(0, 1fr); }
	.casa-notizie__corpo--ordini > .ordini { grid-column: auto; }
	.casa-griglia--tre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Il telefono: niente che mangi il primo schermo; le schede in righe, con il segno piccolo a sinistra; le etichette
   mai sotto i 12 px */
@media (max-width: 600px) {
	.casa-oggi__capo { padding-right: 12px; }
	.casa-oggi__corsa { gap: 8px; padding: 14px 12px; }
	.casa-oggi--senza .casa-oggi__dentro { gap: 0 16px; }
	.casa-oggi__giorno { padding: 10px 0 0; }
	.casa-oggi__prossima { padding: 6px 0 10px; }
	.casa-corsa { padding-top: 24px; }
	.casa-corsa__titolo { font-size: 2rem; }
	.casa-corsa__esito { font-size: 1rem; }
	.casa-corsa__profilo { padding: 12px 12px 8px; }
	.casa-corsa__altimetria svg { height: 56px; }
	.casa-corsa .fasi { margin-top: 20px; }
	.casa-sezione { padding-top: 44px; }
	.casa-sezione__titolo { font-size: 2rem; }
	.casa-sezione__sotto { display: none; }
	.casa-primo { padding-top: 24px; }
	.casa-griglia { gap: 32px; }
	.casa-griglia--due { grid-template-columns: minmax(0, 1fr); }
	.casa-griglia--uno .scheda-pezzo--griglia { grid-template-columns: minmax(0, 1fr); }
	.casa-griglia:is(.casa-griglia--tre, .casa-griglia--quattro) { grid-template-columns: minmax(0, 1fr); gap: 0; }
	:is(.casa-griglia--tre, .casa-griglia--quattro, .casa-notizie__seconde) .scheda-pezzo--griglia { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--cicl-line, #DEE1DC); }
	.casa-notizie__seconde .scheda-pezzo--griglia { padding-top: 0; }
	.casa-fagiano { margin-top: 44px; padding-bottom: 36px; }
	.casa-fagiano__dentro { padding-top: 28px; }
	.casa-fagiano__scontrino { padding: 16px; }
}
/* Le fasi della corsa di oggi al telefono: cinque caselle strette, ma le parole a 12 px */
@media (max-width: 760px) {
	.casa-corsa .fasi__capo { font-size: 0.75rem; letter-spacing: 0.02em; }
	.casa-corsa .fasi__sotto, .casa-corsa .fasi .fasi__titolo--manca { font-size: 0.75rem; line-height: 1.3; overflow-wrap: anywhere; }
	.casa-corsa .fasi__ora { font-size: 0.75rem; }
	.casa-corsa .fasi__fase--fagiano .fasi__testo { letter-spacing: 0; }
}

/* ------------------------------------------------------------------
   Le discipline e le tessere (15/10/2026, inc/pezzi.php): niente
   pittogrammi. CICLOCROSS e PISTA si scrivono in neretto asfalto
   nell'etichetta e negli ordini d'arrivo, la strada non si scrive. Nelle
   liste (la prima pagina sotto l'apertura, /notizie/, /ultimi/, le
   sezioni, le griglie del tema, la pagina di un corridore) le notizie, le
   vigilie e le guide sono tessere con il fondo della loro disciplina: la
   strada nebbia, il ciclocross sabbia, la pista ghiaccio. Il contenitore
   (.schede-tinte) dà a tutte le schede la stessa cornice, tessera o
   trasparente (le analisi, la copertina nera fa già da tessera, e le
   storie), così tutto parte alla stessa altezza; fra due schede resta
   sempre la carta, almeno 20 px. L'apertura resta sulla carta.
   ------------------------------------------------------------------ */
.disciplina { white-space: nowrap; }
.etichetta-pezzo .disciplina, .ordini__etichetta .disciplina { font-weight: 700; color: var(--cicl-text, #0D0F12); }
.tinta--strada { background: var(--cicl-surface, #F2F3F0); }
.tinta--ciclocross { background: var(--cicl-sabbia, #EEE1C6); }
.tinta--pista { background: var(--cicl-ghiaccio, #DFE9F5); }

/* In griglia: 12 px attorno al segno e al testo */
.schede-tinte > .scheda-pezzo--griglia { padding: 12px 12px 16px; border-bottom: 0; }
/* In riga (e solo titolo): la cornice attorno (8 px, 12 px) e fra una scheda e l'altra la carta (21 px) */
.schede-tinte > :is(.scheda-pezzo--riga, .scheda-pezzo--titoli) { position: relative; margin-bottom: 21px; border-bottom: 0; }
.schede-tinte > .scheda-pezzo--riga { padding: 8px; }
.schede-tinte > .scheda-pezzo--titoli { padding: 12px; }
/* il filo nel mezzo della carta solo fra due schede senza tessera (un'analisi e una storia), che non hanno un bordo */
.schede-tinte > :is(.scheda-pezzo--riga, .scheda-pezzo--titoli):not(.scheda-pezzo--tinta):has(+ :not(.scheda-pezzo--tinta))::after { content: ""; position: absolute; left: 0; right: 0; bottom: -11px; height: 1px; background: var(--cicl-line, #DEE1DC); }
.flusso__righe.schede-tinte:not(.flusso__righe--resto), .elenco__voci.schede-tinte { padding-top: 12px; }
/* La colonna delle notizie in prima pagina: la prima con il segno, poi i titoli */
.casa-notizie__seconde.schede-tinte > .scheda-pezzo--griglia { position: relative; margin-bottom: 21px; }
.casa-notizie__seconde.schede-tinte > .scheda-pezzo:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
	.casa-notizie__seconde.schede-tinte > .scheda-pezzo--griglia { padding: 8px; }
}
/* Al telefono le griglie della prima pagina diventano righe: tessere con la cornice della riga e la carta fra l'una e
   l'altra */
@media (max-width: 600px) {
	.casa-griglia.schede-tinte:is(.casa-griglia--tre, .casa-griglia--quattro) { gap: 21px; }
	.casa-griglia.schede-tinte > .scheda-pezzo--griglia { padding: 8px; }
}
/* Le griglie del tema (archivi, tag): la stessa cornice per tutte, se ce n'è almeno una tessera */
.schede:has(> .scheda-pezzo--tinta) > .wp-block-post { padding: 12px 12px 16px; }

/* Dentro la tessera il segno si stacca dal fondo: l'altimetria della vigilia e i minuti della guida su carta, il
   ripiego della strada senza foto (il nome in Bodoni, il fagiano) sulla nebbia forte; quelli del ciclocross e della
   pista restano sulla loro tinta forte */
.scheda-pezzo--tinta :is(.segno--vigilia, .segno--guida) { background: var(--cicl-bg, #FFFFFF); }
.scheda-pezzo--tinta .segno--notizia:is(.segno--nome, .segno--fagiano):not(.segno--ripiego) { background: var(--cicl-nebbia-forte, #E4E6E1); }

/* La nebbia non fa da fondo a un blocco con le tessere: il blocco passa sulla carta, così le tessere della strada si
   vedono (la fascia del fagIAno, se un giorno avrà le sue schede) */
.casa-fagiano:has(.scheda-pezzo--tinta) { background: var(--cicl-bg, #FFFFFF); }

/* Gli ordini d'arrivo: ogni riga è una tessera con la tinta della sua disciplina, 6 px fra l'una e l'altra; al
   passaggio la tinta forte, con l'etichetta un filo più scura (AA anche sulla sabbia forte) */
.ordini__righe { border-top: 0; }
.ordini__righe li { border-bottom: 0; margin-bottom: 6px; }
.ordini__righe li:last-child { margin-bottom: 0; }
.ordini__riga--tinta { padding: 10px; }
.ordini__riga--tinta.tinta--strada:hover { background: var(--cicl-nebbia-forte, #E4E6E1); }
.ordini__riga--tinta.tinta--ciclocross:hover { background: var(--cicl-sabbia-forte, #E3D3B2); }
.ordini__riga--tinta.tinta--pista:hover { background: var(--cicl-ghiaccio-forte, #CFDCEC); }
.ordini__riga--tinta:hover .ordini__etichetta { color: var(--cicl-body, #2E3238); }

/* La legenda, sopra la lista di /notizie/: un quadratino per tinta, la strada è la nebbia */
.tinte-legenda { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 14px 0 0; padding: 0; list-style: none; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; line-height: 1.45; text-transform: uppercase; color: var(--cicl-muted, #5A6069); }
.tinte-legenda__voce { display: inline-flex; align-items: center; gap: 8px; }
.tinte-legenda__quadro { display: inline-block; width: 14px; height: 14px; box-sizing: border-box; border: 1px solid var(--cicl-line, #DEE1DC); }

/* Al telefono le quattro scelte della disciplina (Tutte, Strada, Ciclocross, Pista) in due file da due, non tre e una */
@media (max-width: 600px) {
	.pezzi-filtri .hub__scelte:has(> :nth-child(4)):not(:has(> :nth-child(5))) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pezzi-filtri .hub__scelte:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(odd) { border-left: 0; }
	.pezzi-filtri .hub__scelte:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(n+3) { border-top: 1px solid var(--b-filo, var(--cicl-line, #DEE1DC)); }
}

/* Il segno del ciclocross e della pista senza foto, sulla tinta forte della disciplina: la notizia il cognome di chi ha
   vinto in Bodoni (il ripiego), la vigilia il disegno della disciplina (il circuito, il velodromo) con il giorno del via */
.segno--disciplina { color: var(--cicl-text, #0D0F12); }
:is(.segno--ripiego, .segno--disciplina).segno--ciclocross { background: var(--cicl-sabbia-forte, #E3D3B2); }
:is(.segno--ripiego, .segno--disciplina).segno--pista { background: var(--cicl-ghiaccio-forte, #CFDCEC); }
/* un cognome lungo («Vanthourenhout») si stringe invece di spezzarsi: nella riga al telefono sta in 12 px */
.segno__ripiego { font-family: var(--cicl-font-titoli, serif); font-size: clamp(1rem, 15cqi, 3.5rem); font-weight: 500; line-height: 1.02; letter-spacing: -0.01em; overflow-wrap: normal; hyphens: none; }
.segno__ripiego--lungo { font-size: clamp(0.75rem, 9cqi, 2.75rem); letter-spacing: -0.02em; }
.disegno-disciplina { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.disegno-disciplina path { fill: none; stroke: currentColor; vector-effect: non-scaling-stroke; }
.disegno-disciplina__filo { stroke-width: 1.5px; }
.disegno-disciplina__trama { stroke-width: 1px; }
.disegno-disciplina__traguardo { stroke-width: 3px; }
.disegno-disciplina__tavola { stroke-width: 4px; }
.disegno-disciplina .disegno-disciplina__fango { stroke: var(--cicl-muted, #5A6069); stroke-width: 2px; }
@container segno (min-width: 320px) {
	.disegno-disciplina__filo { stroke-width: 2px; }
	.disegno-disciplina__trama { stroke-width: 1.25px; }
	.disegno-disciplina__tavola { stroke-width: 6px; }
	.disegno-disciplina .disegno-disciplina__fango { stroke-width: 3px; }
}
.segno__chi { position: absolute; display: flex; flex-direction: column; gap: 4px; box-sizing: border-box; }
/* La pista: il giorno del via in mezzo all'anello; il cross: in alto a sinistra, sopra il circuito */
.segno--pista .segno__chi { left: 50%; top: 50%; width: 62%; transform: translate(-50%, -50%); align-items: center; text-align: center; }
.segno--ciclocross .segno__chi { left: 8%; right: 5%; top: 8%; }
/* La vigilia: il giorno del via in Geist Mono, al posto del nome */
.segno__quando { font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: clamp(0.75rem, 4.2cqi, 1rem); font-weight: 700; letter-spacing: 0.1em; line-height: 1.35; text-transform: uppercase; font-variant-numeric: tabular-nums; color: var(--cicl-text, #0D0F12); }
.segno__quando-breve { display: none; }
.segno__ora { display: block; font-weight: 400; }
@container segno (max-width: 200px) {
	.segno__quando-lungo { display: none; }
	.segno__quando-breve { display: inline; }
}
/* In apertura, e nella copertina di un'analisi senza corsa: il disegno in fluo sull'asfalto, senza nomi */
.segno--disciplina:is(.segno--figura, .segno--analisi) { background: var(--cicl-band, #0D0F12); color: var(--cicl-fluo, #D4FF3F); }
.segno--disciplina:is(.segno--figura, .segno--analisi) .disegno-disciplina { inset: 10% 8%; width: 84%; height: 80%; }
.segno--disciplina:is(.segno--figura, .segno--analisi) .disegno-disciplina__fango { stroke: var(--cicl-band-muted, #7D848E); }

/* ------------------------------------------------------------------
   Gli articoli in testa alla pagina della corsa e della tappa (17/10/2026, blocchi/pezzi-corsa/testa.php): le schede
   della prima pagina (.casa-griglia--quattro, con le tessere) subito sotto la testata, il titolo più grande; accanto,
   quelli non ancora usciti, con un riquadro tratteggiato al posto del segno. Al telefono righe con il titolo intero.
   La fila delle fasi, più sotto, tiene solo la diretta e il fagIAno.
   ------------------------------------------------------------------ */
.corsa-pagina > .pezzi-testa { margin-top: 28px; }
.corsa-pagina > .pezzi-testa + * { margin-top: 40px; }
.pezzi-testa__capo { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 16px; margin-bottom: 16px; padding-top: 10px; border-top: 2px solid var(--cicl-text, #0D0F12); }
.pezzi-testa__titolo { margin: 0; font-family: var(--cicl-font-testo, sans-serif); font-size: 1.25rem; font-weight: 650; line-height: 1.3; color: var(--cicl-text, #0D0F12); }
.pezzi-testa__altri { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--cicl-font-numeri, ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cicl-text, #0D0F12); text-decoration: none; }
.pezzi-testa__altri:hover { text-decoration: underline; text-underline-offset: 3px; }
.pezzi-testa__griglia { gap: 28px 24px; }
.pezzi-testa .scheda-pezzo__titolo { font-size: 1.25rem; line-height: 1.25; }
/* Siamo nella pagina della corsa: nell'etichetta solo il formato (il livello, la disciplina e «donne» sono uguali per
   tutte), sotto il titolo solo la data (non il nome della corsa) */
.pezzi-testa .etichetta-pezzo > :not(.etichetta-pezzo__formato), .pezzi-testa .scheda-pezzo__meta > :not(time) { display: none; }
/* Quello che non è ancora uscito: il formato e il giorno dentro un riquadro tratteggiato, grande come il segno */
.pezzi-testa__atteso { min-width: 0; }
.schede-tinte > .pezzi-testa__atteso { padding: 12px 12px 16px; }
.pezzi-testa__vuoto { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; margin: 0; aspect-ratio: 3 / 2; padding: 12px; border: 1px dashed var(--cicl-muted, #5A6069); box-sizing: border-box; text-align: center; }
.pezzi-testa__vuoto .etichetta-pezzo { font-weight: 700; }
.pezzi-testa__quando { font-size: 1.125rem; font-weight: 650; line-height: 1.28; color: var(--cicl-muted, #5A6069); }
.pezzi-testa + .fasi--poche .fasi__link { border-top-width: 1px; }
/* Il nome del fagIAno non va in maiuscolo, nemmeno fra i link */
.fasi__link--fagiano .fasi__testo { text-transform: none; letter-spacing: 0.04em; }
/* Il tablet: righe in due colonne, il segno a sinistra, così l'altimetria resta vicina */
@media (min-width: 601px) and (max-width: 1000px) {
	.pezzi-testa .scheda-pezzo--griglia { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 14px; align-items: start; }
	.pezzi-testa .scheda-pezzo__titolo { font-size: 1.125rem; }
	.pezzi-testa__vuoto { aspect-ratio: auto; flex-direction: row; gap: 12px; min-height: 64px; }
}
@media (max-width: 600px) {
	.corsa-pagina > .pezzi-testa { margin-top: 20px; }
	.corsa-pagina > .pezzi-testa + * { margin-top: 28px; }
	.pezzi-testa__capo { margin-bottom: 12px; }
	.pezzi-testa .scheda-pezzo__titolo { font-size: 1.0625rem; line-height: 1.3; }
	.pezzi-testa__griglia:not(.schede-tinte) .pezzi-testa__atteso { padding: 16px 0; }
	.schede-tinte > .pezzi-testa__atteso { padding: 0; }
	.pezzi-testa__vuoto { aspect-ratio: auto; flex-direction: row; gap: 12px; min-height: 56px; }
	.pezzi-testa__quando { font-size: 1.0625rem; }
	/* i link alla diretta e al fagIAno: l'etichetta in una colonna, il testo accanto */
	.fasi__link a { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) auto; gap: 12px; align-items: baseline; }
}

/* Il profilo dentro un articolo (17/10/2026, verdetto UX): nel tema scuro le salite piene nel grigio smorzato, non nel
   bianco pieno, così il fluo delle cime resta il punto più acceso come nel chiaro */
[data-theme="scuro"] :is(.guida__profilo--articolo, .tappa__profilo--articolo) polygon.fg-testo { fill: var(--cicl-muted); }
