/*
 * Ulistema — base.css
 * Font, variabili, base tipografica, header, footer e componenti condivisi
 * (slot ADV, titoli di sezione, card, carosello, breadcrumb, griglia).
 * Mobile first. Punti di rottura: < 768 mobile («390»), 768–1023 tablet, ≥ 1024 desktop («1280»).
 * Misure dal design design/proiezioni.dc.html (righe 1–27, 116–125, 148–161, 182).
 */

/* ---------- Font: Archivo variabile self-host (400–800) ---------- */
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/archivo-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/archivo-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Fallback metrico (Arial adattato ad Archivo: upm 1000, asc 878, desc 210) per ridurre il salto al cambio font.
   Stessi intervalli di Archivo: i simboli fuori (→ ⌕ ⌄) cadono su system-ui come nel design. */
@font-face {
	font-family: "Archivo Fallback";
	src: local("Arial"), local("ArialMT"), local("Liberation Sans");
	size-adjust: 110%;
	ascent-override: 79.82%;
	descent-override: 19.09%;
	line-gap-override: 0%;
	unicode-range: U+0000-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C4, U+2113, U+2122, U+2191, U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}

/* ---------- Variabili ---------- */
:root {
	--ul-font: "Archivo", "Archivo Fallback", system-ui, sans-serif;
	--ul-black: #000;
	--ul-white: #fff;
	--ul-red: #e30d18;
	--ul-meta: rgba(0, 0, 0, .62);
	--ul-dek: rgba(0, 0, 0, .78);
	--ul-muted: rgba(0, 0, 0, .55);
	--ul-rule: rgba(0, 0, 0, .18);
	--ul-rule-strong: #000;
	--ul-rule-footer: rgba(255, 255, 255, .3);
	--ul-max: 1280px;
	--ul-pad: 16px;
	--ul-gap: 20px;
}
@media (min-width: 768px) {
	:root { --ul-pad: 24px; }
}
@media (min-width: 1024px) {
	:root { --ul-pad: 32px; }
}

/* ---------- Base (ereditata da _ds/.../styles.css del design) ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--ul-white);
	color: var(--ul-black);
	font-family: var(--ul-font);
	font-size: 15px;
	line-height: 1.55;
	font-weight: 400;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ul-font);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -.015em;
	margin: 0 0 8px;
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
p { margin: 0 0 12px; }
a { color: var(--ul-black); text-decoration: none; }
a:hover { color: var(--ul-red); }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
figure { margin: 0; }
figcaption { font-size: 11px; margin-top: 4px; color: var(--ul-muted); }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--ul-red); outline-offset: 2px; }
::selection { background: rgba(227, 13, 24, .3); }

/* ---------- Utilità ---------- */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
	word-wrap: normal;
}
.ul-skip {
	position: absolute;
	left: 8px;
	top: -200px;
	z-index: 1000;
	padding: 10px 14px;
	background: var(--ul-black);
	color: var(--ul-white);
	font: 700 13px/1 var(--ul-font);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.ul-skip:focus, .ul-skip:hover { top: 8px; color: var(--ul-white); }
.ul-wrap {
	width: 100%;
	max-width: var(--ul-max);
	margin-inline: auto;
	padding-inline: var(--ul-pad);
}
.ul-main:focus { outline: none; }
/* Spaziature verticali del design: sezioni (28/36), riga ADV (24/36), fondo pagina (24/40) */
.ul-section { padding-top: 28px; }
.ul-adv-row { margin-top: 24px; }
.ul-page-end { padding-bottom: 24px; }
@media (min-width: 1024px) {
	.ul-section { padding-top: 36px; }
	.ul-adv-row { margin-top: 36px; }
	.ul-page-end { padding-bottom: 40px; }
}

/* ---------- Topbar (righe 117 / 157) ---------- */
.ul-topbar {
	position: relative;
	border-bottom: 1px solid var(--ul-rule);
	font-size: 11px;
	color: var(--ul-meta);
}
.ul-topbar__in {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding-top: 8px;
	padding-bottom: 8px;
}
.ul-topbar__date { margin: 0; min-width: 0; }
.ul-topbar__tools { display: flex; align-items: center; gap: 16px; }
.ul-social { display: none; gap: 16px; margin: 0; padding: 0; list-style: none; }
.ul-social a { color: inherit; }
.ul-social a:hover { color: var(--ul-red); }
/* Lente SVG 20×20 (sotto 1024 px). Alta 21,7 px come la riga del glifo ⌕ di prima (14px × 1,55): è l'elemento più
   alto della topbar, che resta di 39 px come nel design; la data non si sposta */
.ul-search-toggle {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 21.7px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ul-black);
}
.ul-search-toggle svg { width: 20px; height: 20px; }
/* Area di tocco 44×44 attorno alla lente senza cambiare la topbar: parte dal bordo alto della pagina (la lente sta a
   8 px, il padding della topbar) e scende di 5 px sotto la topbar, accanto al logo; a destra arriva al bordo */
.ul-search-toggle::after { content: ""; position: absolute; top: -8px; left: -8px; right: -5px; height: 44px; }
/* Link all'archivio (header.php, dopo la ricerca). Sotto 1024 px: «Archivio» senza freccia, alto 20 px come la lente
   (la topbar resta di 39 px), 10 px dopo la lente; l'area di tocco arriva a 44 px e al bordo destro con ::after,
   quella della lente si ferma a metà dello spazio tra i due. Con la data più lunga («28 Settembre 2026 — Aggiornato
   alle 22:55») sta su una riga da 360 px; sotto, «Aggiornato alle» si nasconde (.ul-topbar__agg).
   Da 1024 px: «Archivio fino al 2025» con la freccia, alto come il campo di ricerca */
.ul-topbar__agg { white-space: nowrap; }
.ul-search-toggle { flex: none; }
.ul-archivio {
	position: relative;
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 6px;
	height: 20px;
	margin-left: -6px; /* 16 px del gap dei tools − 6 = 10 px dopo la lente */
	padding: 0 6px;
	background: var(--ul-red);
	color: var(--ul-white);
	font: 800 10px/1 var(--ul-font);
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
	text-decoration: none;
}
.ul-archivio svg { display: none; flex: none; width: 9px; height: 9px; }
.ul-archivio::after { content: ""; position: absolute; top: -9px; left: -5px; right: calc(-1 * var(--ul-pad)); height: 44px; }
.ul-archivio__lungo { display: none; }
@media (max-width: 359.98px) {
	.ul-topbar__agg { display: none; }
}
.ul-search {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: 280px;
	margin: 0;
	padding: 7px 10px;
	border: 1px solid var(--ul-black);
	background: var(--ul-white);
}
/* Sotto 1024 px il modulo della topbar non si vede: con il JS la lente apre il pannello .ul-sp (in fondo al file),
   senza JS il modulo va su una riga sua (ulistema_noscript_css in inc/ulistema-setup.php) */
/* Campo attivo: il filetto diventa di 2 px (inset: niente si sposta), al posto del contorno rosso che sembrava un errore */
.ul-search:focus-within { box-shadow: inset 0 0 0 1px var(--ul-black); }
.ul-search__input {
	flex: 1;
	min-width: 0;
	height: 14px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ul-black);
	font: 500 12px/1 var(--ul-font);
	-webkit-appearance: none;
	appearance: none;
}
.ul-search__input::placeholder { color: var(--ul-muted); opacity: 1; }
.ul-search__input::-webkit-search-decoration,
.ul-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.ul-search__input:focus, .ul-search__input:focus-visible { outline: none; }
/* Pulsante «Cerca»: lente SVG 14×14 nello stesso posto del glifo ⌕ del design; area cliccabile 28×30 (fino ai bordi
   del riquadro) con ::after, senza cambiare le misure del campo. Il × accanto ha un'area di 24×30: le due aree si
   toccano senza sovrapporsi (gap 8 = 5 del × + 3 di «Cerca») */
.ul-search__submit {
	position: relative;
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	height: 14px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ul-black);
}
.ul-search__submit svg { width: 14px; height: 14px; }
.ul-search__submit::after { content: ""; position: absolute; inset: -8px -11px -8px -3px; }
/* × per cancellare (creato dal JS al primo focus, solo con testo nel campo) */
.ul-search__canc {
	position: relative;
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ul-meta);
}
.ul-search__canc[hidden] { display: none; }
.ul-search__canc svg { width: 11px; height: 11px; }
.ul-search__canc::after { content: ""; position: absolute; inset: -8px -5px; }
.ul-search__submit:hover, .ul-search__canc:hover { color: var(--ul-red); }

/* ---------- Testata e menu (righe 118–124 / 158–160) ---------- */
.ul-masthead__in { display: flex; flex-direction: column; padding-inline: 0; }
.ul-masthead__side { display: contents; }
/* Sotto 1024 il logo compatto (<picture> in header.php) sta al centro; da 1024 torna a sinistra (sotto) */
.ul-logo {
	order: 1;
	display: block;
	align-self: center;
	padding: 14px var(--ul-pad) 10px;
}
.ul-logo picture { display: block; }
.ul-logo img { height: 64px; width: auto; }
.ul-nav {
	order: 2;
	padding-inline: var(--ul-pad);
	border-top: 1px solid var(--ul-rule);
	border-bottom: 1px solid var(--ul-black);
	overflow-x: auto;
	scrollbar-width: none;
}
.ul-nav::-webkit-scrollbar { display: none; }
.ul-nav__search, .ul-nav__logo, .ul-nav__burger, .ul-nav__fondo { display: none; } /* lente, logo mini e hamburger: solo con il menu agganciato (.is-stuck, sotto) */
.ul-nav__logo img { display: block; width: auto; height: 44px; } /* ulisse-logo-sticky-mini.png 210 × 133: 69,5 × 44 nella barra agganciata alta 60 px (da 1024: 60 px) */
.ul-nav__list { display: flex; gap: 22px; margin: 0; padding: 0; list-style: none; }
.ul-nav__list > li { flex: none; }
.ul-nav__list a {
	display: block;
	padding: 12px 0;
	font: 700 11px/1 var(--ul-font);
	text-transform: uppercase;
	letter-spacing: .04em;
	white-space: nowrap;
	color: var(--ul-black);
	transition: color .2s ease;
}
.ul-nav__list .current-menu-item > a,
.ul-nav__list .current-menu-parent > a,
.ul-nav__list .current-menu-ancestor > a,
.ul-nav__list .current-post-ancestor > a,
.ul-nav__list .current-category-ancestor > a { color: var(--ul-red); } /* stesse classi del JS (CORRENTE) e di aria-current */
/* Hover solo con un puntatore vero: sui telefoni l'hover resta «incollato» alla voce toccata (anche dopo «Indietro») */
@media (hover: hover) and (pointer: fine) {
	.ul-nav__list a:hover { color: var(--ul-red); }
}
/* Dopo «Indietro» (bfcache), finché il puntatore non si muove o non tocca: niente colore di hover sulla voce toccata
   prima, che il browser considera ancora sotto il puntatore (js/ulistema.js, .is-ul-quiete) */
.ul-js .ul-nav.is-ul-quiete .ul-nav__list > li:not(.is-ul-active) > a:hover { color: var(--ul-black); }
.ul-masthead .ul-adv { order: 3; margin: 12px var(--ul-pad) 0; }

/* ---------- Animazioni del menu sotto 1024 px (solo con il JS, .ul-js; js/ulistema.js initNav/initStickyNav) ----------
   Indicatore rosso sotto la voce attiva (.is-ul-active) che scivola verso la voce toccata; sfumature ai bordi solo
   quando le voci sbordano (.is-fade-l / .is-fade-r); menu agganciato in alto allo scorrimento (sticky), sempre
   visibile. A riposo nessuna misura cambia (lo sfondo bianco è quello della pagina). Ingresso delle voci: in fondo
   al file (.ul-intro). */
@media (max-width: 1023.98px) {
	/* «sticky» resta agganciato solo dentro il suo contenitore: testata e wrapper diventano «contents» così il
	   contenitore del menu è il <body>. Sotto 1024 è già tutto in colonna (logo, menu, pubblicità, breaking) nello
	   stesso ordine del DOM: l'impaginazione non cambia; il logo resta largo quanto l'immagine, al centro.
	   ATTENZIONE: sotto 1024 non stilizzare .ul-header, .ul-masthead e .ul-masthead__in (sfondi, bordi, padding,
	   margini, position): con il JS hanno display: contents per il menu sticky e quelle regole non si vedrebbero. */
	.ul-js .ul-header, .ul-js .ul-masthead, .ul-js .ul-masthead__in { display: contents; }
	.ul-js .ul-logo { width: fit-content; margin-inline: auto; }
	.ul-js .ul-nav {
		position: sticky;
		top: var(--ul-nav-top, 0px); /* barra di amministrazione quando è fissa (601–782 px) */
		z-index: 60;
		background: var(--ul-white);
		scroll-padding-inline: 40px;
	}
	.ul-js .ul-nav__list { width: max-content; min-width: 100%; }
	.ul-js .ul-nav__list a { position: relative; }
	.ul-js .ul-nav__list .is-ul-active > a { color: var(--ul-red); }
	.ul-js .ul-nav.is-ul-tap .ul-nav__list > li:not(.is-ul-active) > a { color: var(--ul-black); }
	.ul-js .ul-nav__list .is-ul-active > a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 3px;
		background: var(--ul-red);
		transform-origin: 0 50%;
		pointer-events: none;
	}
	/* Sfumature: elementi «sticky» della riga a ingombro nullo (larghi 32, margine -32 - gap 22) */
	.ul-js .ul-nav__list::before,
	.ul-js .ul-nav__list::after {
		content: "";
		position: sticky;
		z-index: 1;
		flex: none;
		width: 32px;
		opacity: 0;
		pointer-events: none;
		transition: opacity .2s ease;
	}
	.ul-js .ul-nav__list::before { left: 0; margin-right: -54px; background: linear-gradient(to right, var(--ul-white) 20%, rgba(255, 255, 255, 0)); }
	.ul-js .ul-nav__list::after { right: 0; margin-left: -54px; background: linear-gradient(to left, var(--ul-white) 20%, rgba(255, 255, 255, 0)); }
	.ul-js .ul-nav.is-fade-l .ul-nav__list::before,
	.ul-js .ul-nav.is-fade-r .ul-nav__list::after { opacity: 1; }
	/* Menu agganciato in alto (.is-stuck, js/ulistema.js initStickyNav; richiesta dell'utente del 26/10/2026): barra
	   alta --ul-bar-h (60 = 8 + logo mini 44 + 8) con [logo mini] … [lente][hamburger]. Le voci escono dalla barra e
	   diventano il pannello dell'hamburger (stessa #ul-nav-list, js initMenuMobile). CLS 0: il menu è sticky in flusso
	   e a riposo è alto --ul-nav-riposo (37, misurato dal JS); agganciato cresce verso il basso e il margine negativo
	   pari alla differenza lascia il contenuto sotto dov'era (scorre sotto la barra). A riposo nulla cambia. */
	:root { --ul-bar-h: 60px; }
	.ul-js .ul-nav.is-stuck {
		display: flex;
		align-items: center;
		gap: 4px;
		height: var(--ul-bar-h);
		margin-bottom: calc(var(--ul-nav-riposo, 37px) - var(--ul-bar-h));
		border-top-color: transparent;
	}
	.ul-js .ul-nav.is-stuck .ul-nav__logo { display: flex; flex: none; align-items: center; margin-right: auto; }
	.ul-js .ul-nav.is-stuck .ul-nav__search,
	.ul-js .ul-nav.is-stuck .ul-nav__burger {
		display: flex;
		flex: none;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--ul-black);
		cursor: pointer;
	}
	/* l'icona dell'hamburger (20 px) allineata al margine della pagina; sopra il pannello aperto (diventa la X) */
	.ul-js .ul-nav.is-stuck .ul-nav__burger { position: relative; z-index: 3; margin-right: -12px; }
	.ul-js .ul-nav__search svg { width: 20px; height: 20px; }
	.ul-js .ul-nav__search:focus-visible, .ul-js .ul-nav__logo:focus-visible, .ul-js .ul-nav__burger:focus-visible { outline-offset: -4px; }
	/* Tre linee (2 px, come il tratto della lente) che diventano una X: solo transform */
	.ul-nav__burger-box { position: relative; display: block; width: 20px; height: 14px; }
	.ul-nav__burger-box > span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		background: currentColor;
		transition: transform .26s cubic-bezier(.2, .7, .3, 1), opacity .2s ease;
	}
	.ul-nav__burger-box > span:nth-child(1) { top: 0; }
	.ul-nav__burger-box > span:nth-child(2) { top: 6px; }
	.ul-nav__burger-box > span:nth-child(3) { top: 12px; }
	.ul-js .ul-nav.is-menu-open .ul-nav__burger-box > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.ul-js .ul-nav.is-menu-open .ul-nav__burger-box > span:nth-child(2) { opacity: 0; transform: scaleX(0); }
	.ul-js .ul-nav.is-menu-open .ul-nav__burger-box > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
	/* Pannello: la lista delle voci, fissa a destra a tutta altezza (sotto la barra di amministrazione se è fissa),
	   larga al massimo il 75% della finestra; chiusa resta fuori vista e nascosta (niente focus). Le voci partono sotto
	   la barra, con il filetto nero della barra che prosegue. Sfumature e indicatore della riga qui non servono.
	   .is-menu-anim (dal JS solo durante apertura e chiusura) dà le transizioni e lo sfondo: agganciandosi il pannello
	   non attraversa lo schermo. Mentre è aperto il menu sale sopra il resto (sotto il pannello di ricerca e la barra
	   di amministrazione; il banner dei cookie sta sopra). */
	.ul-js .ul-nav.is-stuck .ul-nav__list {
		position: fixed;
		top: var(--ul-nav-top, 0px);
		right: 0;
		bottom: 0;
		z-index: 2;
		display: block;
		width: min(75vw, 420px);
		min-width: 0;
		padding: calc(var(--ul-bar-h) - 1px) 0 24px;
		scroll-padding-top: calc(var(--ul-bar-h) - 1px); /* una voce raggiunta col Tab non finisce sotto la X */
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--ul-white);
		transform: translateX(100%);
		visibility: hidden;
	}
	.ul-js .ul-nav.is-stuck .ul-nav__list::before,
	.ul-js .ul-nav.is-stuck .ul-nav__list::after,
	.ul-js .ul-nav.is-stuck .ul-nav__list .is-ul-active > a::after { display: none; }
	.ul-js .ul-nav.is-stuck .ul-nav__list > li { border-bottom: 1px solid var(--ul-rule); }
	.ul-js .ul-nav.is-stuck .ul-nav__list > li:first-child { border-top: 1px solid var(--ul-black); }
	.ul-js .ul-nav.is-stuck .ul-nav__list a {
		display: flex;
		align-items: center;
		min-height: 56px;
		padding: 12px 24px;
		font-size: 15px;
		line-height: 1.25;
		white-space: normal;
		scroll-margin-top: 0; /* il pannello scorre da sé: niente margine negativo della riga (sotto) */
	}
	.ul-js .ul-nav.is-stuck .ul-nav__list a:focus-visible { outline-offset: -4px; }
	.ul-js .ul-nav.is-menu-open .ul-nav__list { transform: none; visibility: visible; }
	.ul-js .ul-nav.is-menu-anim { z-index: 99980; }
	.ul-js .ul-nav.is-menu-anim .ul-nav__list { transition: transform .26s cubic-bezier(.2, .7, .3, 1), visibility 0s linear .26s; }
	.ul-js .ul-nav.is-menu-anim.is-menu-open .ul-nav__list { transition: transform .26s cubic-bezier(.2, .7, .3, 1), visibility 0s; }
	.ul-js .ul-nav.is-menu-anim .ul-nav__fondo {
		position: fixed;
		top: var(--ul-nav-top, 0px);
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1;
		display: block;
		background: rgba(0, 0, 0, .5);
		opacity: 0;
		transition: opacity .26s ease;
		touch-action: none;
	}
	.ul-js .ul-nav.is-menu-open .ul-nav__fondo { opacity: 1; }
	@media (prefers-reduced-motion: no-preference) {
		.ul-js .ul-nav__list .is-ul-move > a::after { animation: ul-ind-move .28s cubic-bezier(.3, .7, .2, 1); }
		.ul-js .ul-nav__list .is-ul-grow > a::after { animation: ul-ind-grow .25s cubic-bezier(.3, .7, .2, 1); }
	}
}
/* Tutte le larghezze: un elemento che riceve il focus o un'àncora si ferma sotto il menu agganciato, che altrimenti
   lo coprirebbe (.ul-js è sull'<html>; da 1024 --ul-nav-h è l'altezza della barra, --ul-bar-h) */
.ul-js { scroll-padding-top: calc(var(--ul-nav-h, 0px) + var(--ul-nav-top, 0px)); }
/* …ma le voci del menu agganciato stanno proprio in quella fascia: senza questo margine negativo il focus su una
   voce farebbe risalire la pagina (il browser la crede coperta e la centra) */
.ul-js .ul-nav a, .ul-js .ul-nav__search, .ul-js .ul-nav__burger { scroll-margin-top: calc(-1 * (var(--ul-nav-h, 0px) + var(--ul-nav-top, 0px))); }

/* ---------- Breaking news (righe 125 / 161) ---------- */
.ul-breaking { border-bottom: 1px solid var(--ul-rule); }
.ul-breaking__in {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-top: 8px;
	padding-bottom: 8px;
	font-size: 12px;
}
.ul-breaking__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}
.ul-breaking__dot { position: relative; flex: none; display: inline-block; width: 7px; height: 7px; background: var(--ul-red); }
/* Pulsazione discreta del quadratino (desktop: dell'etichetta): due battiti e poi fermo (meno di 5 s, WCAG 2.2.2) */
.ul-breaking__dot::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ul-red);
	opacity: 0;
	pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
	.ul-breaking__dot::after { animation: ul-pulse 1.8s cubic-bezier(.2, .6, .4, 1) .6s 2; }
}
.ul-breaking__link { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

@media (min-width: 1024px) {
	.ul-topbar { font-size: 12px; }
	.ul-social { display: flex; }
	.ul-search-toggle { display: none; }
	.ul-search { position: relative; z-index: 70; display: flex; } /* z-index: la tendina (.ul-sd) sta sopra la testata */
	.ul-archivio { height: 30px; margin-left: 0; padding: 0 12px; font-size: 11px; letter-spacing: .08em; }
	.ul-archivio svg { display: block; }
	.ul-archivio::after { content: none; }
	.ul-archivio:hover { background: var(--ul-black); }
	.ul-archivio__lungo { display: inline; }
	.ul-archivio__corto { display: none; }

	.ul-masthead { border-bottom: 1px solid var(--ul-black); }
	.ul-masthead__in {
		display: grid;
		grid-template-columns: 1fr 728px;
		gap: 32px;
		align-items: center;
		padding: 20px var(--ul-pad) 16px;
	}
	.ul-logo, .ul-masthead .ul-adv { order: 0; }
	.ul-nav { order: 1; } /* nel DOM il menu precede la pubblicità: sopra va lo slot 728×90 come nel design */
	.ul-logo { align-self: center; padding: 0; justify-self: start; }
	/* alto 160 (442 × 160) se la colonna lo contiene; più stretta (da 1024 a ~1280 px) si rimpicciolisce in proporzione
	   invece di schiacciarsi: a 1024 la colonna è larga 200 */
	.ul-logo img { height: auto; max-height: 160px; }
	.ul-masthead__side { display: flex; flex-direction: column; gap: 14px; }
	.ul-nav { padding: 0; border: 0; overflow: visible; }
	.ul-nav__list { gap: 28px; border-top: 1px solid var(--ul-rule); }
	.ul-nav__list a { position: relative; font: 700 13px/1 var(--ul-font); cursor: pointer; }
	/* Sottolineatura rossa che cresce da sinistra: al passaggio, al focus e sulla voce corrente (fuori dal flusso) */
	.ul-nav__list a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 6px;
		height: 2px;
		background: var(--ul-red);
		transform: scaleX(0);
		transform-origin: 0 50%;
		transition: transform .25s cubic-bezier(.2, .7, .3, 1);
		pointer-events: none;
	}
	.ul-nav__list a:focus-visible::after,
	.ul-nav__list .current-menu-item > a::after,
	.ul-nav__list .current-menu-parent > a::after,
	.ul-nav__list .current-menu-ancestor > a::after,
	.ul-nav__list .current-post-ancestor > a::after,
	.ul-nav__list .current-category-ancestor > a::after { transform: scaleX(1); }
	@media (hover: hover) and (pointer: fine) {
		.ul-nav__list a:hover::after { transform: scaleX(1); }
		.ul-js .ul-nav.is-ul-quiete .ul-nav__list > li:not(.is-ul-active) > a:hover::after { transform: scaleX(0); }
	}
	.ul-masthead .ul-adv { margin: 0; }
	/* Menu agganciato da 1024 px (.is-stuck, js/ulistema.js initStickyNav): il menu esce dalla colonna della testata
	   e diventa una barra fissa a tutta larghezza, bianca con il filetto nero come la testata; il suo posto resta
	   riservato dalla min-height della colonna messa dal JS (CLS 0). Stessa griglia della testata (1fr 728px, gap 32,
	   larghezza di .ul-wrap): le voci restano alla stessa x; a sinistra il logo mini (alto 60 px, richiesta dell'utente
	   del 26/10/2026), a destra della colonna la lente. Barra alta --ul-bar-h (8 + 60 + 8 + filetto), voci centrate.
	   Il filetto grigio sopra le voci diventa trasparente. Passando fra testata e barra il menu scivola al nuovo posto
	   (transform messo e tolto dal JS, setStuck): nessun salto visibile (CLS circa 0,01 al ritorno, vedi setStuck).
	   right: --ul-sb = barra di scorrimento tolta dal pannello di ricerca aperto (js fermaPagina). */
	:root { --ul-bar-h: 77px; }
	.ul-js .ul-nav { transition: transform .26s cubic-bezier(.2, .7, .3, 1); }
	.ul-js .ul-nav.is-stuck {
		position: fixed;
		top: var(--ul-nav-top, 0px); /* sotto la barra di amministrazione */
		left: 0;
		right: var(--ul-sb, 0px);
		z-index: 60;
		display: grid;
		grid-template-columns: 1fr 728px;
		column-gap: 32px;
		align-items: center;
		height: var(--ul-bar-h);
		padding-inline: max(var(--ul-pad), calc((100% - var(--ul-max)) / 2 + var(--ul-pad)));
		border-bottom: 1px solid var(--ul-black);
		background: var(--ul-white);
	}
	.ul-js .ul-nav.is-stuck .ul-nav__list { grid-area: 1 / 2; border-top-color: transparent; }
	.ul-js .ul-nav.is-stuck .ul-nav__logo { grid-area: 1 / 1; justify-self: start; display: flex; align-items: center; }
	.ul-nav__logo img { height: 60px; } /* 94,7 × 60 */
	.ul-js .ul-nav.is-stuck .ul-nav__search {
		grid-area: 1 / 2;
		justify-self: end;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--ul-black);
		cursor: pointer;
		transition: color .2s ease;
	}
	.ul-js .ul-nav__search svg { width: 20px; height: 20px; }
	.ul-js .ul-nav__search:focus-visible, .ul-js .ul-nav__logo:focus-visible { outline-offset: -2px; }
	@media (hover: hover) and (pointer: fine) {
		.ul-js .ul-nav__search:hover { color: var(--ul-red); }
	}

	.ul-breaking__in { gap: 14px; padding-top: 10px; padding-bottom: 10px; font-size: 13px; }
	.ul-breaking__label {
		position: relative;
		isolation: isolate; /* l'alone della pulsazione (::after, z-index -1) sta sotto il testo e sopra lo sfondo */
		flex: none;
		width: auto;
		height: auto;
		overflow: visible;
		clip: auto;
		clip-path: none;
		padding: 5px 8px;
		background: var(--ul-red);
		color: var(--ul-white);
		font: 800 11px var(--ul-font);
		letter-spacing: .1em;
		text-transform: uppercase;
	}
	.ul-breaking__label::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background: var(--ul-red);
		opacity: 0;
		pointer-events: none;
	}
	.ul-breaking__dot { display: none; }
	.ul-breaking__link { font-weight: 600; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
	.ul-breaking__label::after { animation: ul-pulse-label 1.8s cubic-bezier(.2, .6, .4, 1) .6s 2; }
}

/* ---------- Slot pubblicitari (ulistema_adv, banner di WP Bannerize) ----------
   Altezza riservata = formato dello slot; sotto 1024 px gli slot uniti al mobile prendono il formato mobile. */
.ul-adv { --ul-adv-h: 250px; display: flex; flex-direction: column; gap: 4px; }
.ul-adv--header { --ul-adv-h: 90px; }
.ul-adv--home-largo, .ul-adv--art-bottom { --ul-adv-h: 120px; }
.ul-adv--art-side-tall { --ul-adv-h: 600px; }
.ul-adv--mobile-320 { --ul-adv-h: 50px; }
@media (max-width: 1023.98px) {
	.ul-adv--m-mobile-320 { --ul-adv-h: 50px; }
	.ul-adv--m-mobile-300 { --ul-adv-h: 250px; }
	.ul-adv--solo-desk { display: none; }
}
@media (min-width: 1024px) {
	.ul-adv--solo-mob { display: none; }
}
.ul-adv__label {
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--ul-muted);
}
.ul-adv__box {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ul-adv-h);
	background: var(--ul-white);
	overflow: hidden;
}
.ul-adv__box img { max-width: 100%; height: auto; }
/* Markup di WP Bannerize: il contenitore diventa la colonna (vertical) o la riga (horizontal) dei banner */
.ul-adv .wp_bannerize_container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	width: 100%;
}
.ul-adv .wp_bannerize_layout_horizontal { flex-direction: row; flex-wrap: wrap; justify-content: center; }
/* Il plugin aggiunge un clearfix con !important che nella riga diventerebbe un elemento in più */
.ul-adv .wp_bannerize_layout_horizontal::before,
.ul-adv .wp_bannerize_layout_horizontal::after { display: none !important; }
.ul-adv .wp_bannerize_banner_box { max-width: 100%; line-height: 0; }
.ul-adv .wp_bannerize_banner_box a { display: block; }
.ul-adv .wp_bannerize_banner_box img { margin-inline: auto; }
.ul-adv__box.is-placeholder,
.ul-adv__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--ul-adv-h);
	outline: 1px solid var(--ul-black);
	outline-offset: -1px;
	font-size: 11px;
	color: var(--ul-muted);
}
.ul-adv__box.is-split { display: block; }
.ul-adv__ph--desk { display: none; }
/* Slot doppio mostrato anche sotto 1024 px: solo il primo riquadro */
.ul-adv--home-doppio .ul-adv__cell + .ul-adv__cell,
.ul-adv--home-doppio .wp_bannerize_banner_box ~ .wp_bannerize_banner_box { display: none; }

@media (min-width: 1024px) {
	.ul-adv__box.is-placeholder, .ul-adv__cell { font-size: 12px; }
	.ul-adv--header .ul-adv__box.is-placeholder { justify-content: flex-start; padding: 0 14px; }
	/* Banner della testata mai più alti di 90 (un 2160×270 a 728 sarebbe alto 91 e sposterebbe logo e menu):
	   width:auto annulla l'attributo width, così il banner si rimpicciolisce in proporzione (720×90) senza tagli */
	.ul-adv--header .ul-adv__box img { width: auto; max-height: 90px; }
	.ul-adv__ph--mob { display: none; }
	.ul-adv__ph--desk { display: inline; }
	.ul-adv--home-doppio .ul-adv__box.is-split,
	.ul-adv--home-doppio .wp_bannerize_container {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		align-items: center;
		justify-items: center;
	}
	.ul-adv--home-doppio .ul-adv__box.is-split { justify-items: stretch; width: 100%; }
	.ul-adv--home-doppio .ul-adv__cell + .ul-adv__cell,
	.ul-adv--home-doppio .wp_bannerize_banner_box ~ .wp_bannerize_banner_box { display: flex; }
}

/* ---------- Titolo di sezione (ulistema_section_head) ---------- */
.ul-sechead {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 12px;
	padding-top: 12px;
	border-top: 2px solid var(--ul-black);
}
.ul-sechead__title { margin: 0; font: 800 24px/1 var(--ul-font); letter-spacing: -.02em; }
.ul-sechead__link {
	flex: none;
	font-size: 12px;
	font-weight: 700;
	color: var(--ul-red);
	text-transform: uppercase;
	letter-spacing: .06em;
}
.ul-sechead__link:hover { color: var(--ul-red); text-decoration: underline; text-underline-offset: 3px; }
.ul-sechead__full { display: none; }
.ul-sechead--side { margin-bottom: 4px; }
@media (min-width: 768px) {
	.ul-sechead { margin-bottom: 18px; padding-top: 14px; }
	.ul-sechead__title { font-size: 30px; }
	.ul-sechead__full { display: inline; }
	.ul-sechead__short { display: none; }
	.ul-sechead--side { margin-bottom: 4px; padding-top: 12px; }
	.ul-sechead--side .ul-sechead__title { font-size: 24px; }
}
@media (min-width: 1024px) {
	.ul-sechead--side { margin-bottom: 6px; }
	.ul-sechead--side .ul-sechead__title { font-size: 20px; }
}

/* ---------- Card (template-parts/card.php) ---------- */
.ul-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; cursor: pointer; }
.ul-card__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--ul-black); transition: filter .2s; }
.ul-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ul-card--c .ul-card__media { aspect-ratio: 1; }
.ul-card__kicker {
	font: 700 10px var(--ul-font);
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ul-red);
}
/* overflow-wrap: titoli e sommari con &nbsp; o parole lunghissime vanno a capo dentro la card (niente scorrimento orizzontale) */
.ul-card__title { margin: 0; font: 700 17px/1.25 var(--ul-font); letter-spacing: normal; overflow-wrap: break-word; }
.ul-card__link { color: inherit; }
.ul-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ul-card__link:focus-visible { outline: none; }
.ul-card:has(.ul-card__link:focus-visible) { outline: 2px solid var(--ul-red); outline-offset: 2px; }
.ul-card:hover .ul-card__title, .ul-card:hover .ul-card__link { color: var(--ul-red); }
.ul-card:hover .ul-card__media { filter: brightness(.92); }
.ul-card__title, .ul-card__link { transition: color .2s ease; }
/* Solo con il mouse: la foto si ingrandisce appena dentro il riquadro (overflow nascosto) */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.ul-card__media img { transition: transform .3s cubic-bezier(.2, .7, .3, 1); }
	.ul-card:hover .ul-card__media img { transform: scale(1.04); }
}
.ul-card__dek { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ul-dek); overflow-wrap: break-word; }
.ul-card__meta { margin: 0; font-size: 11px; color: var(--ul-meta); }

/* Variante «ultime»: testo + miniatura 72×54 (desktop 80×60) */
.ul-card--ultime {
	display: grid;
	grid-template-columns: 1fr 72px;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ul-rule);
}
.ul-card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ul-card__time {
	font: 700 10px var(--ul-font);
	color: var(--ul-red);
	text-transform: uppercase;
	letter-spacing: .08em;
}
.ul-card--ultime .ul-card__title { font: 700 13px/1.3 var(--ul-font); }
.ul-card--ultime .ul-card__media { width: 72px; height: 54px; aspect-ratio: auto; }

@media (min-width: 768px) {
	.ul-card { gap: 10px; }
	.ul-card--ultime { gap: 12px; }
	.ul-card__kicker { font-size: 11px; }
	.ul-card--a .ul-card__title,
	.ul-card--b .ul-card__title,
	.ul-card--d .ul-card__title { font-size: 18px; letter-spacing: -.01em; }
	.ul-card--c .ul-card__title { font: 700 15px/1.3 var(--ul-font); }
	.ul-card--correlati .ul-card__title { letter-spacing: -.01em; }
}
@media (min-width: 1024px) {
	.ul-card--ultime { grid-template-columns: 1fr 80px; }
	.ul-card--ultime .ul-card__title { font-size: 14px; }
	.ul-card--ultime .ul-card__media { width: 80px; height: 60px; }
}

/* ---------- Card di solo testo (Frammenti vecchi: ulistema_foto_nascosta, template-parts/card.php) ----------
   Al posto della foto il regolo nero di 2 px dei titoli di sezione: la scheda ha un inizio netto anche accanto
   a card con foto. Titolo un po' più grande e sommario (in tutte le varianti) fino a 6 righe.
   Selettori con .ul-card davanti: vincono sulle regole per variante e su .ul-home .ul-card__dek (home.css). */
.ul-card.ul-card--senza-foto { gap: 8px; padding-top: 12px; border-top: 2px solid var(--ul-rule-strong); }
.ul-card.ul-card--senza-foto .ul-card__title { font: 700 19px/1.2 var(--ul-font); letter-spacing: -.01em; }
.ul-card.ul-card--senza-foto .ul-card__dek {
	display: -webkit-box;
	overflow: hidden;
	font-size: 14px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	line-clamp: 6;
}
.ul-card.ul-card--senza-foto .ul-card__meta { margin-top: auto; }
/* «Ultime»: niente miniatura, il testo prende tutta la riga (resta il filetto sotto, niente regolo sopra) */
.ul-card.ul-card--ultime.ul-card--senza-foto { grid-template-columns: minmax(0, 1fr); padding-top: 12px; border-top: 0; }
.ul-card.ul-card--ultime.ul-card--senza-foto .ul-card__title { font: 700 13px/1.3 var(--ul-font); letter-spacing: normal; }
@media (min-width: 768px) {
	.ul-card.ul-card--senza-foto { gap: 10px; padding-top: 14px; }
	.ul-card.ul-card--senza-foto .ul-card__title { font-size: 21px; }
}
@media (min-width: 1024px) {
	.ul-card.ul-card--ultime.ul-card--senza-foto { grid-template-columns: minmax(0, 1fr); }
	.ul-card.ul-card--ultime.ul-card--senza-foto .ul-card__title { font-size: 14px; }
}

/* ---------- Griglia di card (archivi, ricerca) ---------- */
.ul-grid { display: grid; grid-template-columns: 1fr; gap: 28px var(--ul-gap); }
@media (min-width: 768px) {
	.ul-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
}
@media (min-width: 1024px) {
	.ul-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Carosello (ulistema_carousel + js/ulistema.js) ----------
   Come lo Swiper del design: card larghe (100% - gap*(n-1))/n, gap 20 (16 con una per vista),
   mobile «peek» 1.12 con la card successiva visibile fino al bordo, paginazione a trattini 24×3,
   frecce 36×36 in basso a destra (solo da 768 px). */
.ul-carousel { --ul-per: 1.12; --ul-cgap: 16px; position: relative; }
.ul-carousel__track {
	display: flex;
	gap: var(--ul-cgap);
	margin: 0 calc(-1 * var(--ul-pad)) 0 0;
	padding: 0 var(--ul-pad) 0 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.ul-carousel__track::-webkit-scrollbar { display: none; }
.ul-carousel__slide {
	display: flex;
	flex: 0 0 calc((100% - var(--ul-cgap) * (var(--ul-per) - 1)) / var(--ul-per));
	min-width: 0;
	scroll-snap-align: start;
}
.ul-carousel__slide > .ul-card { flex: 1; }
.ul-carousel__nav {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center; /* su mobile i trattini stanno al centro (richiesta dell'utente, 24/10); da 768 tornano a destra con le frecce */
	height: 36px;
	margin-top: 16px;
}
.ul-carousel.is-static .ul-carousel__nav { display: none; }
.ul-carousel__dots { display: flex; align-items: center; gap: 6px; }
.ul-carousel__dot {
	position: relative;
	width: 24px;
	height: 3px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--ul-black);
	opacity: .2;
	transition: background-color .2s ease, opacity .2s ease;
}
.ul-carousel__dot::before { content: ""; position: absolute; inset: -12px -3px; }
.ul-carousel__dot[aria-current="true"] { background: var(--ul-red); opacity: 1; }
.ul-carousel__arrow {
	position: absolute;
	bottom: 0;
	display: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--ul-black);
	border-radius: 0;
	background: var(--ul-white);
	color: var(--ul-black);
}
.ul-carousel__arrow svg { width: 9px; height: 15px; }
.ul-carousel__arrow--prev { right: 44px; }
.ul-carousel__arrow--next { right: 0; }
.ul-carousel__arrow:disabled { opacity: .3; cursor: default; }
@media (min-width: 768px) {
	.ul-carousel { --ul-per: 2.12; --ul-cgap: 20px; }
	.ul-carousel__nav { justify-content: flex-end; padding-right: 88px; }
	.ul-carousel__arrow { display: flex; }
}
@media (min-width: 1024px) {
	.ul-carousel { --ul-per: var(--ul-per-desk, 3); }
	.ul-carousel--one { --ul-cgap: 16px; }
	.ul-carousel__track { margin-right: 0; padding-right: 0; }
}

/* ---------- Breadcrumb (Yoast o ripiego «Home › Categoria») ---------- */
.ul-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	color: var(--ul-meta);
}
.ul-breadcrumb > span { display: contents; }
.ul-breadcrumb a { color: inherit; }
.ul-breadcrumb a:hover { color: var(--ul-red); }
.ul-breadcrumb .breadcrumb_last,
.ul-breadcrumb [aria-current],
.ul-breadcrumb .ul-breadcrumb__current { color: var(--ul-black); font-weight: 600; }
@media (min-width: 1024px) {
	.ul-breadcrumb { gap: 8px; font-size: 12px; }
}

/* ---------- Footer (righe 148–153 / 182) ---------- */
/* Sul nero il rosso del sito arriva a 4,34:1: nel footer link e hover usano un rosso più chiaro (circa 6:1, AA) */
.ul-footer { --ul-red-on-dark: #ff3b46; background: var(--ul-black); color: var(--ul-white); font-size: 12px; line-height: 1.6; }
.ul-footer a { color: inherit; }
.ul-footer a:hover { color: var(--ul-red-on-dark); }
.ul-footer__in {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 28px;
	padding-bottom: 20px;
}
.ul-footer__brand, .ul-footer__info, .ul-footer__contacts { display: contents; }
.ul-footer__logo { display: block; align-self: flex-start; }
.ul-footer__logo img { height: 52px; width: auto; filter: brightness(0) invert(1); }
.ul-footer__info p { margin: 0; }
.ul-footer__main { display: flex; flex-direction: column; gap: 8px; }
.ul-footer__title { margin: 0; font: 800 15px var(--ul-font); letter-spacing: normal; color: var(--ul-white); }
.ul-footer__social { display: flex; gap: 14px; margin: 0; padding: 0; list-style: none; font-weight: 600; }
.ul-footer__apps { display: flex; gap: 10px; }
.ul-footer__apps a { display: block; }
.ul-footer__apps img { height: 46px; width: auto; }
.ul-footer__menu { border-top: 1px solid var(--ul-rule-footer); border-bottom: 1px solid var(--ul-rule-footer); }
.ul-footer__toggle {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 12px 0;
	border: 0;
	background: none;
	color: inherit;
	font: 800 14px var(--ul-font);
	text-align: left;
}
.ul-footer__chev { font-size: 16px; line-height: 1; transition: transform .2s; }
.ul-footer__toggle[aria-expanded="true"] .ul-footer__chev { transform: rotate(180deg); }
.ul-footer__links { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0 0 14px; list-style: none; }
.ul-footer__copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-top: 12px;
	border-top: 1px solid var(--ul-rule-footer);
	font-size: 11px;
}
.ul-footer__copy-sep { display: none; }
.ul-footer a.ul-footer__credit { color: var(--ul-red-on-dark); }
.ul-footer a.ul-footer__credit:hover { color: var(--ul-white); }
@media (max-width: 767.98px) {
	/* Menu del footer richiudibile: chiuso solo quando il JS è attivo. Apertura a fisarmonica con la riga della griglia
	   0fr → 1fr (nessuna altezza misurata); il padding sotto le voci passa all'ultima voce perché la riga possa chiudersi
	   a 0. Da chiuso visibility:hidden lo toglie da tabulazione e lettori di schermo; aperto del tutto (.is-done)
	   l'overflow torna visibile e il focus delle voci non viene tagliato. */
	.ul-js .ul-footer__menu {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 0fr;
		transition: grid-template-rows .26s cubic-bezier(.2, .7, .3, 1);
	}
	.ul-js .ul-footer__menu.is-open { grid-template-rows: auto 1fr; }
	.ul-js .ul-footer__links {
		min-height: 0;
		overflow: hidden;
		padding-bottom: 0;
		visibility: hidden;
		opacity: 0;
		transition: opacity .2s ease, visibility 0s linear .26s;
	}
	.ul-js .ul-footer__links > li:last-child { margin-bottom: 14px; }
	.ul-js .ul-footer__menu.is-open .ul-footer__links { visibility: visible; opacity: 1; transition: opacity .26s ease, visibility 0s; }
	.ul-js .ul-footer__menu.is-done .ul-footer__links { overflow: visible; }
}
@media (min-width: 768px) {
	.ul-footer__in {
		display: grid;
		grid-template-columns: 1.5fr 1fr 1fr;
		gap: 32px;
		padding-top: 40px;
		padding-bottom: 24px;
	}
	.ul-footer__brand { display: flex; flex-direction: column; gap: 18px; }
	.ul-footer__logo img { height: 72px; }
	.ul-footer__info { display: flex; flex-direction: column; gap: 14px; font-size: 13px; line-height: 1.6; }
	.ul-footer__contacts { display: flex; flex-direction: column; gap: 12px; }
	.ul-footer__main { display: contents; }
	.ul-footer__title { font-size: 16px; }
	.ul-footer__email { font-size: 13px; }
	.ul-footer__social { gap: 16px; font-size: 13px; }
	.ul-footer__apps { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 6px; }
	.ul-footer__apps img { height: 52px; }
	.ul-footer__menu { border: 0; }
	.ul-footer__toggle { display: none; }
	.ul-footer__links { gap: 8px; padding: 0; font-size: 13px; }
	.ul-footer__copy { grid-column: 1 / -1; display: block; padding-top: 14px; font-size: 13px; }
	.ul-footer__copy-sep { display: inline; }
}
@media (min-width: 1024px) {
	.ul-footer__in { grid-template-columns: 2fr 1fr 1fr; }
}

/* ---------- Modulo di ricerca grande (searchform.php: ricerca, 404, widget) ----------
   Come il cerca della topbar (bordo 1px nero, glifo ⌕ come pulsante), più alto; 16px evita lo zoom su iOS. */
.ul-searchform {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	max-width: 720px;
	margin: 0;
	padding: 0 0 0 14px;
	border: 1px solid var(--ul-black);
	background: var(--ul-white);
}
.ul-searchform:focus-within { outline: 2px solid var(--ul-red); outline-offset: 2px; }
.ul-searchform__input {
	flex: 1;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ul-black);
	font: 500 16px/1 var(--ul-font);
	-webkit-appearance: none;
	appearance: none;
}
.ul-searchform__input::placeholder { color: var(--ul-muted); opacity: 1; }
.ul-searchform__input::-webkit-search-decoration,
.ul-searchform__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.ul-searchform__input:focus, .ul-searchform__input:focus-visible { outline: none; }
.ul-searchform__submit {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--ul-black);
	font-size: 22px;
	line-height: 1;
}
.ul-searchform__submit:hover { color: var(--ul-red); }
.ul-searchform__submit:focus-visible { outline-offset: -4px; }
@media (min-width: 1024px) {
	.ul-searchform { padding-left: 18px; }
	.ul-searchform__input { height: 56px; font-size: 18px; }
	.ul-searchform__submit { width: 56px; height: 56px; font-size: 24px; }
}

/* ---------- Pannello di ricerca sotto 1024 px (js/ulistema.js initSearch: creato al primo uso) ----------
   A tutta larghezza in alto, sotto la barra di amministrazione se c'è (--ul-sp-top), sopra la pagina e fuori dal
   flusso (CLS 0), con sfondo scurito che chiude al tocco. Pagina ferma sotto (html.ul-sp-lock). Si apre con
   dissolvenza e piccola discesa (solo opacity/transform); con «riduci movimento» solo dissolvenza (in fondo al file).
   Altezza massima = parte visibile della finestra (--ul-sp-vh, tolta la tastiera): l'elenco scorre dentro. */
html.ul-sp-lock { overflow: hidden; }
.ul-sp {
	position: fixed;
	inset: 0;
	z-index: 99990; /* sopra menu agganciato, banner dei cookie e notifiche; sotto la barra di amministrazione (99999) */
	visibility: hidden;
	transition: visibility 0s linear .22s;
}
.ul-sp.is-open { visibility: visible; transition-delay: 0s; }
.ul-sp__fondo {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .5);
	opacity: 0;
	transition: opacity .22s ease;
	touch-action: none;
}
.ul-sp.is-open .ul-sp__fondo { opacity: 1; }
.ul-sp__pan {
	position: absolute;
	top: var(--ul-sp-top, 0px);
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	max-height: calc(var(--ul-sp-vh, 100vh) - var(--ul-sp-top, 0px));
	border-bottom: 1px solid var(--ul-black);
	background: var(--ul-white);
	opacity: 0;
	transform: translateY(-16px);
	transition: opacity .18s ease, transform .24s cubic-bezier(.2, .7, .3, 1);
}
.ul-sp.is-open .ul-sp__pan { opacity: 1; transform: none; }
.ul-sp.is-subito, .ul-sp.is-subito .ul-sp__fondo, .ul-sp.is-subito .ul-sp__pan { transition: none; }

/* Riga del campo: riquadro con filetto nero (come il cerca della topbar), lente, campo 16 px, × e «Chiudi» */
.ul-sp__form {
	position: relative;
	display: flex;
	flex: none;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 12px 0 12px var(--ul-pad);
	border-bottom: 1px solid var(--ul-rule);
}
.ul-sp__box {
	display: flex;
	flex: 1;
	align-items: center;
	min-width: 0;
	height: 48px;
	border: 1px solid var(--ul-black);
	background: var(--ul-white);
}
/* Focus: il filetto diventa di 2 px (niente contorno rosso, che su un campo sembra un errore) */
.ul-sp__box:focus-within { box-shadow: inset 0 0 0 1px var(--ul-black); }
.ul-sp__lente { flex: none; width: 20px; height: 20px; margin: 0 10px 0 12px; }
.ul-sp__input {
	flex: 1;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0 12px 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ul-black);
	font: 500 16px/1.25 var(--ul-font); /* almeno 16 px: iOS non ingrandisce la pagina al tocco */
	letter-spacing: 0;
	-webkit-appearance: none;
	appearance: none;
}
.ul-sp__input::placeholder { color: var(--ul-muted); opacity: 1; }
.ul-sp__input::-webkit-search-decoration,
.ul-sp__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.ul-sp__input:focus, .ul-sp__input:focus-visible { outline: none; }
.ul-sp__canc {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 46px;
	margin-left: -12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ul-black);
}
.ul-sp__canc[hidden] { display: none; }
.ul-sp__canc svg { width: 16px; height: 16px; }
.ul-sp__chiudi {
	flex: none;
	min-width: 44px;
	height: 48px;
	padding: 0 var(--ul-pad) 0 12px;
	border: 0;
	background: none;
	color: var(--ul-black);
	font: 700 12px/1 var(--ul-font);
	letter-spacing: .06em;
	text-transform: uppercase;
}
.ul-sp__canc:focus-visible, .ul-sp__chiudi:focus-visible { outline-offset: -4px; }
/* Caricamento: filetto rosso di 2 px sul bordo inferiore della riga (compare dopo 150 ms di attesa) */
.ul-sp__load {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	overflow: hidden;
	opacity: 0;
	transition: opacity .15s ease;
	pointer-events: none;
}
.ul-sp__load::before { content: ""; position: absolute; inset: 0; background: var(--ul-red); transform-origin: 0 50%; }
.is-loading > .ul-sp__load { opacity: 1; } /* modulo del pannello o campo della topbar (creaElenco, opz.carica) */

/* Contenuto: ricerche recenti e sezioni (campo vuoto), suggerimenti, nessun risultato */
.ul-sp__corpo {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0 var(--ul-pad) 20px;
}
.ul-sp__corpo:empty { display: none; }
.ul-sp__gruppo { margin-top: 20px; }
.ul-sp__tit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 10px;
	border-top: 2px solid var(--ul-black);
}
.ul-sp__h { margin: 0; font: 800 11px/1 var(--ul-font); letter-spacing: .1em; text-transform: uppercase; color: var(--ul-black); }
.ul-sp__azione {
	margin: -15px 0;
	padding: 15px 0 15px 12px;
	border: 0;
	background: none;
	color: var(--ul-red);
	font: 700 11px/1 var(--ul-font);
	letter-spacing: .06em;
	text-transform: uppercase;
}
.ul-sp__lista { margin: 0; padding: 0; list-style: none; }
.ul-sp__rec { display: flex; align-items: center; border-bottom: 1px solid var(--ul-rule); }
.ul-sp__rec a {
	display: flex;
	flex: 1;
	align-items: center;
	gap: 12px;
	min-width: 0;
	min-height: 48px;
	padding: 8px 0;
	color: var(--ul-black);
	font: 500 15px/1.3 var(--ul-font);
}
.ul-sp__rec a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ul-sp__rec a svg { flex: none; width: 16px; height: 16px; color: var(--ul-muted); }
.ul-sp__togli {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -14px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ul-meta);
}
.ul-sp__togli svg { width: 14px; height: 14px; }
.ul-sp__sez { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.ul-sp__sez a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	box-shadow: inset 0 0 0 1px var(--ul-black);
	color: var(--ul-black);
	font: 700 11px/1 var(--ul-font);
	letter-spacing: .06em;
	text-transform: uppercase;
}
/* Nel DOM il titolo viene prima (lo si sente per primo); categoria e data vanno sopra solo a schermo (order) */
.ul-sp__art { display: flex; flex-direction: column; padding: 14px 0; border-bottom: 1px solid var(--ul-rule); color: var(--ul-black); }
.ul-sp__meta { display: block; order: -1; margin-bottom: 6px; font: 500 11px/1.2 var(--ul-font); color: var(--ul-meta); }
.ul-sp__cat { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ul-red); }
.ul-sp__titolo { display: block; font: 700 16px/1.3 var(--ul-font); letter-spacing: -.005em; overflow-wrap: anywhere; }
/* Termine cercato: evidenziatore rosso tenue sotto le lettere */
.ul-sp__titolo mark { background: linear-gradient(transparent 58%, rgba(227, 13, 24, .24) 58%); color: inherit; }
.ul-sp__tutti {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 52px;
	padding: 14px 0;
	color: var(--ul-red);
	font: 700 12px/1.3 var(--ul-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.ul-sp__q { letter-spacing: .02em; text-transform: none; } /* il termine come l'ha scritto chi cerca */
.ul-sp__nulla { margin: 20px 0 6px; font: 700 16px/1.35 var(--ul-font); overflow-wrap: anywhere; }
.ul-sp a:focus-visible, .ul-sd a:focus-visible, .ul-sp__togli:focus-visible, .ul-sp__azione:focus-visible { outline-offset: -2px; }
.ul-sp__rec a:active, .ul-sp__art:active .ul-sp__titolo, .ul-sp__sez a:active { color: var(--ul-red); }
@media (hover: hover) and (pointer: fine) {
	.ul-sp__rec a:hover, .ul-sp__art:hover .ul-sp__titolo, .ul-sp__togli:hover, .ul-sp__canc:hover, .ul-sp__chiudi:hover { color: var(--ul-red); }
	.ul-sp__sez a:hover { color: var(--ul-red); box-shadow: inset 0 0 0 1px var(--ul-red); }
	.ul-sp__tutti:hover, .ul-sp__azione:hover { text-decoration: underline; text-underline-offset: 3px; }
}
@media (prefers-reduced-motion: no-preference) {
	.is-loading > .ul-sp__load::before { animation: ul-sp-load 1.1s cubic-bezier(.4, 0, .2, 1) infinite; }
	.ul-js .ul-nav.is-stuck .ul-nav__search, .ul-js .ul-nav.is-stuck .ul-nav__logo, .ul-js .ul-nav.is-stuck .ul-nav__burger { animation: ul-sp-in .2s ease; } /* sola dissolvenza */
}
@keyframes ul-sp-load { from { transform: translateX(-100%) scaleX(.4); } to { transform: translateX(100%) scaleX(.4); } }
@keyframes ul-sp-in { from { opacity: 0; } }
@keyframes ul-sd-in { from { opacity: 0; transform: translateY(-4px); } }

/* ---------- Tendina del campo della topbar da 1024 px (js/ulistema.js initTendina, creata al primo focus) ----------
   Sotto il campo, allineata al suo bordo destro e più larga (titoli leggibili), assoluta sopra la testata: nessun
   salto. Stessi componenti del pannello (.ul-sp__*) in misura da desktop. Si vede solo aperta e con contenuto. */
.ul-sd { display: none; }
@media (min-width: 1024px) {
	.ul-search.is-open .ul-sd:not(:empty) { display: block; }
	.ul-sd {
		position: absolute;
		top: calc(100% + 6px);
		right: -1px;
		width: 440px;
		max-height: min(560px, calc(100vh - 64px));
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 0 20px 14px;
		border: 1px solid var(--ul-black);
		background: var(--ul-white);
		color: var(--ul-black);
		font-size: 15px;
		line-height: 1.55;
		text-align: left;
	}
	.ul-sd .ul-sp__gruppo { margin-top: 16px; }
	.ul-sd .ul-sp__rec a { min-height: 40px; padding: 6px 0; font-size: 14px; }
	.ul-sd .ul-sp__togli { width: 36px; height: 36px; margin-right: -10px; }
	.ul-sd .ul-sp__azione { margin: -10px 0; padding: 10px 0 10px 12px; }
	.ul-sd .ul-sp__sez { margin-top: 10px; }
	.ul-sd .ul-sp__sez a { min-height: 34px; padding: 0 14px; }
	.ul-sd .ul-sp__art { padding: 12px 0; }
	.ul-sd .ul-sp__titolo { font-size: 15px; }
	.ul-sd .ul-sp__tutti { min-height: 0; padding: 14px 0 2px; }
	.ul-sd .ul-sp__nulla { margin-top: 16px; font-size: 15px; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
	.ul-sd { animation: ul-sd-in .16s cubic-bezier(.2, .7, .3, 1); }
}
@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
	.ul-sd { animation: ul-sp-in .1s ease; }
}

/* ---------- Avviso anti-adblock (js/ulistema-adblock.js, compare solo se la pubblicità è bloccata) ---------- */
.ul-sostegno-open, .ul-sostegno-open body { overflow: hidden; }
.ul-sostegno {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--ul-pad);
	background: rgba(255, 255, 255, .97);
	overflow-y: auto;
}
.ul-sostegno__box {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	width: 100%;
	max-width: 520px;
	margin: auto;
	padding: 24px 20px;
	border: 1px solid var(--ul-black);
	border-top: 4px solid var(--ul-red);
	background: var(--ul-white);
	color: var(--ul-black);
}
.ul-sostegno__logo { width: auto; height: 44px; }
.ul-sostegno__title { margin: 0; font: 800 22px/1.12 var(--ul-font); letter-spacing: -.02em; }
.ul-sostegno__text { margin: 0; font: 500 15px/1.5 var(--ul-font); color: var(--ul-dek); }
.ul-sostegno__btn {
	margin-top: 6px;
	padding: 14px 22px;
	border: 1px solid var(--ul-black);
	border-radius: 0;
	background: var(--ul-black);
	color: var(--ul-white);
	font: 700 13px/1 var(--ul-font);
	text-transform: uppercase;
	letter-spacing: .06em;
}
.ul-sostegno__btn:hover { border-color: var(--ul-red); background: var(--ul-red); }
@media (min-width: 768px) {
	.ul-sostegno__box { gap: 16px; padding: 32px; }
	.ul-sostegno__logo { height: 52px; }
	.ul-sostegno__title { font-size: 28px; }
	.ul-sostegno__text { font-size: 16px; }
}

/* ---------- Comparsa delle sezioni sotto la piega (js/ulistema.js initReveal, IntersectionObserver) ----------
   .ul-reveal la mette il JS solo sui blocchi che all'avvio sono sotto la finestra: hero, testata, titolo e foto
   dell'articolo non vengono mai nascosti (LCP). Solo a schermo: in stampa tutto resta visibile. */
@media screen and (prefers-reduced-motion: no-preference) {
	.ul-js .ul-reveal { opacity: 0; transform: translateY(16px); }
	/* Focus o àncora dentro un blocco non ancora comparso: il browser lo allinea spostato di 16 px, che poi risale;
	   il margine compensa, così finisce sotto il menu e non sotto di esso */
	.ul-js .ul-reveal:not(.is-in), .ul-js .ul-reveal:not(.is-in) * { scroll-margin-top: 16px; }
	.ul-js .ul-reveal.is-in { opacity: 1; transform: none; transition: opacity .3s ease, transform .3s cubic-bezier(.2, .7, .3, 1); }
}

/* ---------- Ingresso in sequenza delle voci del menu (tutte le larghezze) ----------
   .ul-intro sull'<html> la mette ulistema_intro_flag() (inc/ulistema-setup.php) prima che la pagina si disegni, solo
   alla prima pagina della sessione; il JS la toglie a fine animazione. Totale 400 ms, poi l'indicatore cresce. */
@media (prefers-reduced-motion: no-preference) {
	.ul-intro .ul-nav__list > li { animation: ul-nav-in .22s cubic-bezier(.2, .7, .3, 1) backwards; }
	.ul-intro .ul-nav__list > li:nth-child(2) { animation-delay: .045s; }
	.ul-intro .ul-nav__list > li:nth-child(3) { animation-delay: .09s; }
	.ul-intro .ul-nav__list > li:nth-child(4) { animation-delay: .135s; }
	.ul-intro .ul-nav__list > li:nth-child(n+5) { animation-delay: .18s; }
}
/* L'indicatore cresce dopo le voci. Sotto 1024 esiste solo con .is-ul-active (messa dal JS: prima non è disegnato);
   da 1024 la sottolineatura c'è già al primo disegno con le classi di WP: si anima con quelle, così non lampeggia */
@media (max-width: 1023.98px) and (prefers-reduced-motion: no-preference) {
	.ul-intro .ul-nav__list .is-ul-active > a::after { animation: ul-ind-grow .25s cubic-bezier(.3, .7, .2, 1) .2s backwards; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
	.ul-intro .ul-nav__list .current-menu-item > a::after,
	.ul-intro .ul-nav__list .current-menu-parent > a::after,
	.ul-intro .ul-nav__list .current-menu-ancestor > a::after,
	.ul-intro .ul-nav__list .current-post-ancestor > a::after,
	.ul-intro .ul-nav__list .current-category-ancestor > a::after { animation: ul-ind-grow .25s cubic-bezier(.3, .7, .2, 1) .2s backwards; }
}

@keyframes ul-nav-in { from { opacity: 0; transform: translateX(-8px); } }
@keyframes ul-ind-grow { from { transform: scaleX(0); } }
@keyframes ul-ind-move { from { transform: translateX(var(--ul-ind-x, 0px)) scaleX(var(--ul-ind-s, 1)); } }
@keyframes ul-pulse {
	from { opacity: .5; transform: none; }
	to { opacity: 0; transform: scale(2.6); }
}
@keyframes ul-pulse-label {
	from { opacity: .4; transform: none; }
	to { opacity: 0; transform: scale(1.1, 1.6); }
}

/* Riduci movimento: niente spostamenti né ingrandimenti; il menu agganciato e le sue voci arrivano al loro posto
   senza scivolare, il cerca solo con una dissolvenza brevissima. Le animazioni (ingresso, indicatore, pulsazione,
   comparsa) sono già dentro (prefers-reduced-motion: no-preference). */
@media (prefers-reduced-motion: reduce) {
	.ul-card__media, .ul-footer__chev { transition: none; }
	.ul-carousel__track { scroll-behavior: auto; }
	.ul-nav__list a::after { transition: none; }
	.ul-js .ul-nav { transition: none; }
	/* menu ad hamburger: il pannello compare e sparisce senza scivolare, lo sfondo senza dissolvenza, la X subito */
	.ul-js .ul-nav.is-menu-anim .ul-nav__list,
	.ul-js .ul-nav.is-menu-anim.is-menu-open .ul-nav__list,
	.ul-js .ul-nav.is-menu-anim .ul-nav__fondo,
	.ul-nav__burger-box > span { transition: none; }
	.ul-sp { transition: visibility 0s linear .1s; }
	.ul-sp.is-open { transition-delay: 0s; }
	.ul-sp__fondo { transition: opacity .1s ease; }
	.ul-sp__pan { transform: none; transition: opacity .1s ease; }
	.ul-js .ul-footer__menu, .ul-js .ul-footer__links, .ul-js .ul-footer__menu.is-open .ul-footer__links { transition: none; }
}


