/*
Theme Name: ELAD
Theme URI: https://www.eladit.com/
Author: ELAD
Description: Tema del sito ELAD: catalogo prodotti, area download, notizie ed eventi, pagine con campi ACF. Multilingua con WPML.
Version: 3.0.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: elad
*/

/*
 * Indice (cerca il numero, es. "13. Home"):
 *  1. Variabili (colori, caratteri, misure)
 *  2. Base: elementi HTML, tipografia, accessibilità
 *  3. Layout: contenitori, sezioni, griglie
 *  4. Bottoni e link
 *  5. Moduli (Gravity Forms)
 *  6. Header, barra in alto e menu mobile
 *  7. Mega menu
 *  8. Footer
 *  9. Componenti comuni: intestazione pagina, briciole, "Vai a", fasce, avvisi
 * 10. Pixel decorativi
 * 11. Tabelle tecniche e dei codici
 * 12. Card prodotto e categoria
 * 13. Home
 * 14. Catalogo e categorie
 * 15. Scheda prodotto
 * 16. Area download e download del prodotto
 * 17. Servizi
 * 18. Settori
 * 19. Azienda
 * 20. Novità, notizie ed eventi
 * 21. Distributori
 * 22. Contatti
 * 23. Wishlist
 * 24. Pagine di testo (privacy, cookie) e 404
 * 25. Animazioni e comparse allo scroll
 * 26. Preloader
 * 27. Smooth scroll (Lenis)
 */

/* ==========================================================================
   1. Variabili (colori, caratteri, misure)
   ========================================================================== */

:root {
	/* Colori */
	--ink: #091f3d; /* blu notte: testi, fondi scuri */
	--blue: #409ed8; /* blu ELAD */
	--deep: #2b7cb3; /* blu scuro per hover */
	--pale: #e4f1fa; /* azzurro chiaro */
	--ink-2: #4d5a6c; /* testo secondario */
	--muted: #66768b; /* testo attenuato: note, date, didascalie */
	--line: #d5dde7; /* bordi */
	--line-2: #c9d6e4; /* bordi più marcati */
	--bg-light: #f4f8fc; /* fondo chiaro: righe in hover, pannelli */
	--bg: #eef2f6; /* fondo della pagina */
	--bg-dark: #e9eef4; /* fasce, riquadri immagine, briciole */

	/* Caratteri: Sora per i testi, Space Grotesk per etichette, codici e bottoni */
	--font-sans: Sora, Arial, sans-serif;
	--font-mono: "Space Grotesk", system-ui, sans-serif;

	/* Dimensioni del testo */
	--fs-hero: clamp(72px, 9vw, 128px);
	--fs-display: clamp(44px, 5.6vw, 80px);
	--fs-stat: clamp(40px, 4.4vw, 64px);
	--fs-h2: clamp(32px, 3.6vw, 52px);
	--fs-title: clamp(26px, 2.6vw, 34px);
	--fs-h3: clamp(20px, 1.9vw, 26px);
	--fs-lead: 18px;
	--fs-body: 16px;
	--fs-small: 14px;
	--fs-xs: 12px;
	--fs-mono: 12px;
	--fs-label: 11px;
	--lh-text: 1.3;

	/* Larghezza massima unica del sito: il gutter cresce oltre i 1440px di contenuto */
	--max: 1440px;
	--gutter: max(2rem, calc((100vw - var(--max)) / 2));
}
@media (max-width: 1199.98px) {
	:root {
		--gutter: 28px;
	}
}
@media (max-width: 575.98px) {
	:root {
		--gutter: 20px;
	}
}

/* ==========================================================================
   2. Base: elementi HTML, tipografia, accessibilità
   ========================================================================== */

* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: 8.5rem;
}
/* Frecce e simboli sempre come testo, mai come emoji */
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font: var(--fs-body) / var(--lh-text) var(--font-sans);
	-webkit-font-smoothing: antialiased;
	line-height: var(--lh-text);
	font-variant-emoji: text;
}
a {
	color: inherit;
	text-decoration: none;
}
button {
	font: inherit;
	cursor: pointer;
	color: inherit;
	border: 0;
	background: none;
}
button,
a {
	-webkit-tap-highlight-color: transparent;
}
button:focus-visible,
a:focus-visible {
	outline: 3px solid var(--deep);
	outline-offset: 5px;
}
img {
	max-width: 100%;
	display: block;
}
h1,
h2,
h3,
h4,
p {
	margin: 0;
}
h1,
h2,
h3,
h4 {
	font-weight: 550;
	letter-spacing: -0.045em;
	line-height: 1.1;
}
h1 {
	font-size: var(--fs-display);
}
h2 {
	font-size: var(--fs-h2);
}
h3 {
	font-size: var(--fs-h3);
}
p {
	color: var(--muted);
}
em {
	font-style: normal;
	color: var(--blue);
}
[hidden] {
	display: none !important;
}
body *,
body *::before,
body *::after {
	border-radius: 0 !important;
}
/* Wishlist: tabella prodotti, sezione Sales e form (markup Gravity Forms). */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
body main h3 {
	line-height: 1.15 !important;
}
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
/* Mobile: niente scorrimento orizzontale (i pixel dei segnaposto uscivano di qualche px) */
html,
body,
body[data-page="servizi"] {
	overflow-x: clip;
}
/* Testi: interlinea unica */
p,
li,
dd,
figcaption {
	line-height: var(--lh-text);
}
main dt,
main button > span {
	font-size: var(--fs-label);
}
/* WPML: banner "sito di sviluppo" nel footer del front-end nascosto; con la chiave di produzione non viene più stampato */
.otgs-development-site-front-end {
	display: none;
}
@media (max-width: 575.98px) {
	html {
		scroll-padding-top: 6rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*:before,
	*:after {
		animation: none !important;
		transition: none !important;
	}
}

/* ==========================================================================
   3. Layout: contenitori, sezioni, griglie
   ========================================================================== */

.wrap {
	padding-left: var(--gutter);
	padding-right: var(--gutter);
	margin: auto;
}
.section {
	padding-top: 3rem;
	padding-bottom: 3rem;
}
/* Home: stesso respiro sopra e sotto per tutte le sezioni. */
body[data-page="home"] main > .section {
	margin-top: 0;
	margin-bottom: 0;
}
/* Home: sezione Novità con 4rem solo sopra */
body[data-page="home"] main > .section.home-news {
	padding-top: 4rem !important;
	padding-bottom: 0 !important;
}
/* Home, fascia servizi: card bianche con pulsante, capacità più grandi con immagine quadrata, pulsante come gli altri */
body[data-page="home"] main > .section.hcx {
	margin-top: 0;
}
/* "Scopri i servizi": fascia blu scuro a tutta larghezza della finestra */
body[data-page="home"] main > .section.hcx--light {
	background: transparent;
	color: var(--ink);
	padding-top: 4rem;
	padding-bottom: 0 !important;
	overflow-x: clip;
}
/* Pagine di testo (privacy e simili, page.php): colonna di lettura, titoli proporzionati */
.wrap.entry-content > * {
	max-width: 50rem;
}
/* Pagine di testo divise in sezioni: titolo con punto a sinistra, testo a destra, barra sopra ogni riga */
.wrap.entry-content.lg-page > .lg-row {
	max-width: none;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 3rem;
	padding: 2.5rem 0 3rem;
	border-top: 1px solid var(--line);
}
@media (max-width: 767.98px) {
	.wrap.entry-content.lg-page > .lg-row {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		padding: 2rem 0 2.5rem;
	}
}

/* ==========================================================================
   4. Bottoni e link
   ========================================================================== */

.text-link {
	font-size: var(--fs-small);
	font-weight: 550;
	color: var(--deep);
	display: inline-flex;
	gap: 1rem;
	align-items: center;
}
.text-link:hover {
	color: var(--ink);
}
/* Sistema bottoni unico: primario pieno blu, secondario a filo scuro. */
.btn {
	font-size: var(--fs-small);
	font-weight: 550;
	line-height: var(--lh-text);
	gap: 0.75rem !important;
	box-sizing: border-box;
	white-space: nowrap;
	transform: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	height: auto !important;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	letter-spacing: 0.112em !important;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.btn > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
.btn:hover > span {
	transform: translateX(3px);
}
.btn:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.btn:focus-visible {
	outline: 2px solid var(--blue) !important;
	outline-offset: 3px;
}
@media (max-width: 575.98px) {
	.btn {
		white-space: normal;
	}
}

/* ==========================================================================
   5. Moduli (Gravity Forms)
   ========================================================================== */

input,
select,
textarea {
	font: inherit;
	-webkit-tap-highlight-color: transparent;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--deep);
	outline-offset: 5px;
}
textarea {
	resize: vertical;
}
/* Gravity Forms: vale per il markup di prova e per il form reale dentro .wl-sales. */
:is(.wl-sales, .gf-skin) .gform_wrapper {
	border: 1px solid var(--line);
	background: #fff;
}
:is(.wl-sales, .gf-skin) .gform_wrapper form {
	margin: 0;
}
:is(.wl-sales, .gf-skin) .gform_fields {
	display: block;
}
:is(.wl-sales, .gf-skin) .gfield {
	display: grid;
	grid-template-columns: 9rem 1fr;
	border-bottom: 1px solid var(--line);
	margin: 0;
	padding: 0;
}
:is(.wl-sales, .gf-skin) .gfield_label {
	display: block;
	padding: 1.25rem;
	border-right: 1px solid var(--line);
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
	margin: 0;
}
:is(.wl-sales, .gf-skin) .gfield_required {
	margin-left: 0.25rem;
}
:is(.wl-sales, .gf-skin) .ginput_container,
:is(.wl-sales, .gf-skin) .gfield--type-consent .ginput_container_consent {
	display: flex;
}
:is(.wl-sales, .gf-skin) .ginput_container input:not([type="checkbox"]),
:is(.wl-sales, .gf-skin) .ginput_container select,
:is(.wl-sales, .gf-skin) .ginput_container textarea {
	width: 100%;
	padding: 1rem 1.25rem;
	border: 0;
	background: transparent;
	font-size: var(--fs-body);
	color: var(--ink);
	outline: 0;
	transition: background 0.15s;
}
:is(.wl-sales, .gf-skin) .ginput_container textarea {
	min-height: 10rem;
	resize: vertical;
	line-height: var(--lh-text);
}
:is(.wl-sales, .gf-skin) .ginput_container input:focus,
:is(.wl-sales, .gf-skin) .ginput_container select:focus,
:is(.wl-sales, .gf-skin) .ginput_container textarea:focus {
	background: #fff;
	box-shadow: inset 2px 0 0 var(--blue);
}
:is(.wl-sales, .gf-skin) .ginput_container ::placeholder {
	color: var(--muted);
}
:is(.wl-sales, .gf-skin) .gfield_visibility_hidden,
:is(.wl-sales, .gf-skin) .ginput_container select::-ms-expand {
	display: none;
}
:is(.wl-sales, .gf-skin) .ginput_container_consent {
	align-items: flex-start;
	gap: 0.75rem;
	font-size: var(--fs-small);
	color: var(--ink-2);
}
:is(.wl-sales, .gf-skin) .ginput_container_consent input {
	margin-top: 0.25rem;
	accent-color: var(--blue);
}
:is(.wl-sales, .gf-skin) .gfield_error {
	background: #fdf1f0;
}
:is(.wl-sales, .gf-skin) .gfield_error .gfield_label,
:is(.wl-sales, .gf-skin) .gfield_error .gfield_consent_label {
	color: #c0392b;
}
:is(.wl-sales, .gf-skin) .gform_footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 0;
	padding: 1.25rem;
	justify-content: flex-end;
}
:is(.wl-sales, .gf-skin) .gform_button {
	cursor: pointer;
}
:is(.wl-sales, .gf-skin) .gform_button span {
	font: var(--fs-body) var(--font-sans);
}
:is(.wl-sales, .gf-skin) .gform_button:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
}
:is(.wl-sales, .gf-skin) .gform_confirmation_message {
	border-top: 1px solid var(--line);
	padding: 1.5rem 1.25rem;
	font-size: var(--fs-body);
}
:is(.wl-sales, .gf-skin) .gform_confirmation_message p {
	margin: 0 0 0.5rem;
}
:is(.wl-sales, .gf-skin) .gform_confirmation_message a,
:is(.wl-sales, .gf-skin) .gfield_required .gfield_required_asterisk,
:is(.wl-sales, .gf-skin) .gfield_required {
	color: var(--blue);
}
:is(.wl-sales, .gf-skin) .gform_button > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
:is(.wl-sales, .gf-skin) .gform_button:hover > span {
	transform: translateX(3px);
}
.gform_button {
	height: auto !important;
	text-align: center;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
}
.gform_button span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono) !important;
	font-weight: 500 !important;
	font-size: var(--fs-small) !important;
	line-height: 1;
	letter-spacing: 0 !important;
	text-transform: uppercase;
}
.gform_button:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.gform_button:focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.gf-live {
	width: 100%;
}
/* Gravity Forms reale (CSS del plugin disattivato in functions.php). */
.gform_validation_container,
.gform_hidden,
.gfield--type-hidden,
.gfield_visibility_hidden,
.gform_heading,
.gform_ajax_frame,
iframe[name^="gform_ajax_frame"] {
	display: none !important;
}
:is(.wl-sales, .gf-skin) .gform_wrapper fieldset.gfield {
	border: 0;
	border-bottom: 1px solid var(--line);
	margin: 0;
	padding: 1rem 1.25rem;
	min-width: 0;
	display: block;
}
:is(.wl-sales, .gf-skin) .gfield--type-consent legend.gfield_label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}
:is(.wl-sales, .gf-skin) .gfield--type-consent .gfield_description {
	padding: 0.5rem 0 0 1.75rem;
	border: 0;
	font-size: var(--fs-small);
	color: var(--muted);
}
:is(.wl-sales, .gf-skin) .gfield_description {
	grid-column: 2;
	padding: 0 1.25rem 1rem;
	font-size: var(--fs-small);
	line-height: var(--lh-text);
	color: var(--muted);
}
:is(.wl-sales, .gf-skin) .validation_message,
:is(.wl-sales, .gf-skin) .gfield_validation_message {
	grid-column: 2;
	padding: 0 1.25rem 1rem;
	font-size: var(--fs-small);
	color: #c0392b !important;
}
:is(.wl-sales, .gf-skin) .gfield--type-consent .validation_message {
	padding: 0.5rem 0 0 1.75rem;
}
:is(.wl-sales, .gf-skin) .gform_validation_errors {
	margin: 0;
	padding: 1rem 1.25rem;
	background: #fdf1f0;
	border-bottom: 1px solid #f1c7c2;
	color: #c0392b;
}
:is(.wl-sales, .gf-skin) .gform_validation_errors h2 {
	margin: 0;
	font-size: var(--fs-small);
	font-weight: 500;
}
:is(.wl-sales, .gf-skin) .gform_footer input.gform_button {
	cursor: pointer;
	min-height: 3rem;
}
:is(.wl-sales, .gf-skin) .gform-loader,
:is(.wl-sales, .gf-skin) .gform_ajax_spinner {
	margin-left: 0.75rem;
	width: 1rem;
	height: 1rem;
}
body main :is(.wl-sales, .gf-skin) .gform_validation_errors h2 {
	margin: 0 !important;
	font: 500 var(--fs-small) / 1.4 var(--font-sans) !important;
	letter-spacing: 0 !important;
	color: #c0392b !important;
}
/* Link all'informativa nel consenso dei form */
:is(.wl-sales, .gf-skin) .gfield_consent_label a {
	color: var(--deep);
	text-decoration: underline;
	text-underline-offset: 2px;
}
:is(.wl-sales, .gf-skin) .gfield_consent_label a:hover {
	color: var(--ink);
}
@media (max-width: 575.98px) {
	:is(.wl-sales, .gf-skin) .gfield,
	.gf-skin .gfield {
		grid-template-columns: 1fr;
	}
	:is(.wl-sales, .gf-skin) .gfield_label,
	.gf-skin .gfield_label {
		border-right: 0;
		padding: 1rem 1rem 0;
	}
	:is(.wl-sales, .gf-skin) .ginput_container input:not([type="checkbox"]),
	:is(.wl-sales, .gf-skin) .ginput_container select,
	:is(.wl-sales, .gf-skin) .ginput_container textarea,
	.gf-skin .ginput_container input:not([type="checkbox"]),
	.gf-skin .ginput_container select,
	.gf-skin .ginput_container textarea {
		padding: 0.5rem 1rem 1rem;
	}
	:is(.wl-sales, .gf-skin) .gform_button,
	.gf-skin .gform_button {
		width: 100%;
	}
}
/* Menu a tendina dei form: aspetto uguale su tutti i browser (anche iOS), testo allineato agli altri campi, freccia con il suo spazio */
:is(.wl-sales, .gf-skin) .ginput_container select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 3rem;
	background: transparent
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23091f3d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
		no-repeat right 1.25rem center / 1rem 1rem !important;
	cursor: pointer;
}
:is(.wl-sales, .gf-skin) .gform_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 3rem;
	padding: 0 1.5rem !important;
	box-sizing: border-box;
	border-radius: 0 !important;
	font: 500 var(--fs-label) / 1 var(--font-mono) !important;
	text-transform: uppercase;
	letter-spacing: 0.112em !important;
	white-space: nowrap;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	transform: none;
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.gform_button:hover {
	color: #fff !important;
}
@media (max-width: 575.98px) {
	:is(.wl-sales, .gf-skin) .gform_button {
		white-space: normal;
	}
	/* Form (wishlist e contatti) su telefono: la descrizione sotto il campo resta nella colonna unica, niente rientro */
	:is(.wl-sales, .gf-skin) .gfield_description {
		grid-column: 1;
		padding: 0 1rem 1rem;
	}
	:is(.wl-sales, .gf-skin) .ginput_container select {
		background-position: right 1rem top calc(50% - 0.25rem) !important;
	}
}

/* ==========================================================================
   6. Header, barra in alto e menu mobile
   ========================================================================== */

.skip {
	position: absolute;
	top: -100px;
	left: 20px;
	z-index: 100;
	background: #fff;
	padding: 0.75rem;
}
.skip:focus {
	top: 10px;
}
/* La barra utility resta nitida sopra lo sfondo sfocato del mega menu. */
.utility {
	font-size: var(--fs-xs);
	background: var(--ink);
	border-bottom: 1px solid var(--line);
	color: #eeeeee;
	position: relative;
	z-index: 61;
}
.utility .wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 32px;
	gap: 1rem;
}
.utility .wrap > div {
	display: flex;
	gap: 1.5rem;
}
.site-header {
	position: sticky;
	z-index: 60;
}
.nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}
.logo img {
	height: auto;
}
.nav nav {
	display: flex;
	align-items: center;
}
.nav nav > a,
.nav nav > button {
	white-space: nowrap;
}
.nav nav > button span {
	margin-left: 0.25rem;
	color: var(--muted);
}
.wishlist-link b {
	min-width: 20px;
	text-align: center;
}
.mobile-toggle,
.modern-header .nav nav > .nav-cta[aria-current="page"]::after,
.wishlist-mini {
	display: none;
}
/* Ombra dell'header dopo lo scroll (stessa famiglia di quella del mega menu). */
.modern-header {
	margin: 0 auto;
	transition: box-shadow 0.25s;
}
.modern-header .nav {
	padding: 0 2rem;
	min-height: 84px;
}
.modern-header .logo img {
	width: 120px;
}
.modern-header .nav nav > button:hover,
.modern-header .nav nav > button[aria-expanded="true"] {
	background: var(--pale);
}
.modern-header .mega-shell {
	top: 100%;
}
body[data-page="home"] .modern-header {
	top: 0;
}
/* Barra di avanzamento scroll: invisibile in cima, si riempie scorrendo. */
.scroll-progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.25s;
	z-index: 2;
}
.scroll-progress.on,
.utility a:hover .u-ico,
.utility .u-lang a:hover {
	opacity: 1;
}
.scroll-progress span {
	display: block;
	height: 100%;
	background: var(--blue);
	transform: scaleX(var(--p, 0));
	transform-origin: left;
	will-change: transform;
}
.modern-header.is-scrolled {
	box-shadow: 0 10px 28px #0e2a4814;
}
/* Utility: icone mail, telefono, lingua. */
.utility .wrap > div a,
.utility .u-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.utility .u-ico {
	flex: none;
	opacity: 0.75;
}
.modern-header .nav nav > button.is-current::after {
	transform: scaleX(1);
}
.nav-cta,
.wishlist-link {
	display: inline-flex !important;
	justify-content: center;
	min-height: 3rem;
	height: auto !important;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.btn,
.modern-header .nav nav > .wishlist-link:hover {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.nav-cta:focus-visible,
.wishlist-link:focus-visible {
	outline: 2px solid var(--blue) !important;
	outline-offset: 3px;
}
.modern-header .nav nav > .wishlist-link {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
.modern-header .wishlist-link:hover b {
	background: #fff;
	color: var(--ink);
}
.modern-header .nav nav > .nav-cta span[aria-hidden] {
	font: var(--fs-small) / 1 var(--font-sans) !important;
	letter-spacing: 0 !important;
}
.wishlist-link .ico-heart {
	width: 13px;
	height: 12px;
}
/* Header: con i font veri le voci occupano più spazio; il logo non deve restringersi. */
.modern-header .logo {
	flex: none;
}
/* Mobile: utility su una riga con email, telefono e lingua; "Fiere & eventi" passa nel menu */
.nav-mobile-only {
	display: none !important;
}
.utility .u-lang a {
	color: inherit;
	opacity: 0.55;
	text-decoration: none;
	transition: opacity 0.2s;
}
.utility .u-lang .is-active {
	color: #fff;
	font-weight: 600;
}
.utility .u-lang .is-active + a::before,
.utility .u-lang a + .is-active::before {
	content: "/";
	margin-right: 0.5rem;
	opacity: 0.4;
	font-weight: 400;
}
/* Mobile: wishlist compatta (cuore + numero) accanto a Menu; nel menu aperto la riga Wishlist non c'è più */
@media (min-width: 992px) {
	.modern-header .nav {
		justify-content: flex-start;
		gap: 3rem;
		min-height: 4.5rem;
	}
	.modern-header .logo img {
		width: 7.5rem;
	}
	.modern-header .nav nav {
		flex: 1;
		gap: 2rem;
	}
	.modern-header .nav nav > a,
	.modern-header .nav nav > button {
		position: relative;
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0.5rem 0;
		border: 0;
		background: transparent !important;
		font: 500 var(--fs-mono) var(--font-mono);
		color: var(--ink);
		transition: color 0.15s;
	}
	.modern-header .nav nav > a::after,
	.modern-header .nav nav > button::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -2px;
		height: 2px;
		background: var(--blue);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.2s;
	}
	.modern-header .nav nav > a:hover,
	.modern-header .nav nav > button:hover,
	.modern-header .nav nav > button[aria-expanded="true"],
	.modern-header .nav nav > a[aria-current="page"] {
		color: var(--blue);
	}
}
/* voce attiva con mega menu: pagina corrente */
.modern-header .nav nav > button.is-current {
	color: var(--blue);
}
@media (min-width: 992px) {
	.modern-header .nav nav > button[aria-expanded="true"]::after,
	.modern-header .nav nav > a[aria-current="page"]::after {
		transform: scaleX(1);
	}
	.modern-header .chev {
		transition:
			transform 0.2s,
			margin 0.2s;
	}
}
.modern-header .chev {
	display: inline-block;
	width: 0.375rem;
	height: 0.375rem;
	margin: 0 0 0.25rem 0.5rem;
	border-right: 1.5px solid #8b9cb4;
	border-bottom: 1.5px solid #8b9cb4;
	transform: rotate(45deg);
}
@media (min-width: 992px) {
	.modern-header [aria-expanded="true"] .chev {
		transform: rotate(-135deg);
		margin: 0.25rem 0 0 0.125rem;
		border-color: var(--blue);
	}
	/* header: shop e wishlist outline alla stessa altezza */
	.modern-header .nav nav > .wishlist-link {
		margin-left: auto;
		padding: 0 1.25rem !important;
		align-items: center;
		gap: 0.5rem;
	}
	.modern-header .nav nav > .wishlist-link::after,
	.modern-header .nav nav > .nav-cta::after {
		display: none;
	}
	.modern-header .wishlist-link b {
		min-width: 1.25rem;
		padding: 0.125rem 0.375rem;
		background: var(--blue);
		color: #fff;
		font: 500 var(--fs-label) var(--font-mono);
		text-align: center;
		text-transform: uppercase;
	}
}
.modern-header .wishlist-link b {
	font-size: var(--fs-xs);
	letter-spacing: 0;
}
@media (min-width: 992px) {
	.modern-header .nav nav > .nav-cta {
		margin-left: -1rem;
	}
}
.modern-header .nav nav > .nav-cta > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
/* CTA header: resta leggibile anche sulla pagina Contatti (aria-current). */
.modern-header .nav nav > .nav-cta[aria-current="page"],
.modern-header .nav nav > .nav-cta[aria-current="page"]:hover {
	background: var(--deep) !important;
}
.modern-header .nav nav > .nav-cta:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
}
.modern-header .nav nav > .nav-cta:hover > span {
	transform: translateX(3px);
}
@media (min-width: 992px) and (max-width: 1199.98px) {
	.modern-header .nav {
		gap: 1.5rem;
	}
	.modern-header .nav nav > .wishlist-link span {
		display: none;
	}
	.modern-header #navigation {
		gap: 0.875rem;
	}
}
@media (max-width: 991.98px) {
	.utility .wrap > span {
		display: none;
	}
	.utility .wrap {
		justify-content: flex-end;
	}
	.utility .wrap > div {
		gap: 1rem;
	}
	.mobile-toggle {
		border: 1px solid var(--line);
		padding: 0.5rem 1rem;
		font-size: var(--fs-small);
	}
	.nav nav {
		display: none;
		position: absolute;
		max-height: calc(100dvh - 110px);
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
	}
	.nav nav.open {
		display: flex;
	}
}
.modern-header {
	width: 100%;
	max-width: none;
	top: 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	box-shadow: none;
}
@media (min-width: 992px) {
	/* Header: voci mono a sinistra, azioni a destra. */
	.modern-header {
		border-bottom: 1px solid var(--line);
	}
}
/* Fluidità dello scorrimento: niente sfocatura dietro l'header fisso (ridisegnata a ogni fotogramma) */
.site-header {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	background: #fff;
}
@media (max-width: 991.98px) {
	.modern-header .mega-shell {
		max-height: calc(100dvh - 130px);
	}
	/* Menu mobile attaccato all'header, senza spazio vuoto. */
	.modern-header .nav nav {
		gap: 0.25rem;
		padding: 0.5rem 1rem 1rem;
		background: var(--bg);
		top: 100%;
		left: 0;
		right: 0;
		margin: 0;
		border: 0;
		border-top: 1px solid var(--line);
		border-bottom: 1px solid var(--line);
		box-shadow: 0 18px 30px #0e2a4814;
	}
	.modern-header .nav {
		padding: 0 1.5rem;
	}
	body[data-page="home"] .modern-header {
		top: 0;
	}
}
body.admin-bar .modern-header {
	top: 32px;
}
/* Mega menu (Prodotti, Servizi, Novità): indexed rail + numbered cell grid. */
.modern-header .mega-index {
	left: 0;
	right: 0;
	background: var(--bg-light);
	border: 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 24px 40px #0e2a4814;
}
@media (max-width: 991.98px) {
	.modern-header .nav nav > a,
	.modern-header .nav nav > button {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 1rem 0.25rem;
		border: 0;
		border-bottom: 1px solid var(--line);
		background: transparent;
		font: 500 var(--fs-mono) var(--font-mono);
		color: var(--ink);
		text-align: left;
	}
	.modern-header .nav nav > .wishlist-link {
		justify-content: flex-start;
		gap: 0.5rem;
		display: none !important;
	}
	.modern-header .wishlist-link b {
		background: var(--blue);
		color: #fff;
		padding: 0.125rem 0.375rem;
	}
}
.modern-header .nav nav > .nav-cta {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.75rem !important;
	min-height: 3rem;
	padding: 0 1.5rem !important;
	box-sizing: border-box;
	border-radius: 0 !important;
	font: 500 var(--fs-label) / 1 var(--font-mono) !important;
	white-space: nowrap;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	transform: none !important;
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
/* Header: stessa tipografia per voci di menu e bottoni. */
.modern-header .nav nav > a,
.modern-header .nav nav > button,
.modern-header .nav nav > .wishlist-link,
.modern-header .nav nav > .wishlist-link span,
.modern-header .nav nav > .nav-cta {
	font-family: var(--font-mono) !important;
	font-size: var(--fs-mono) !important;
	font-weight: 500 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
}
@media (min-width: 992px) and (max-width: 1399.98px) {
	.modern-header .nav nav > .wishlist-link,
	.modern-header .nav nav > .nav-cta {
		padding: 0 0.875rem !important;
	}
}
@media (max-width: 991.98px) {
	.modern-header .mobile-toggle {
		font: 500 var(--fs-mono) var(--font-mono);
		text-transform: uppercase;
		letter-spacing: 0.096em;
		display: inline-flex;
		align-items: center;
		height: 2.5rem;
		box-sizing: border-box;
		white-space: nowrap;
	}
	.modern-header .nav nav > .nav-cta {
		width: 100%;
		justify-content: space-between;
		margin-top: 1rem;
	}
	.modern-header .nav nav.open {
		animation: mega-in 0.25s cubic-bezier(0.2, 0.7, 0.2, 1);
	}
	.modern-header .nav nav.open > * {
		animation: cell-in 0.35s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
	.modern-header .nav nav.open > *:nth-child(2) {
		animation-delay: 0.03s;
	}
	.modern-header .nav nav.open > *:nth-child(3) {
		animation-delay: 0.06s;
	}
	.modern-header .nav nav.open > *:nth-child(4) {
		animation-delay: 0.09s;
	}
	.modern-header .nav nav.open > *:nth-child(5) {
		animation-delay: 0.12s;
	}
	.modern-header .nav nav.open > *:nth-child(6) {
		animation-delay: 0.15s;
	}
	.modern-header .nav nav.open > *:nth-child(n + 7) {
		animation-delay: 0.18s;
	}
	.modern-header .wishlist-mini {
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		margin: 0 -1rem 0 auto;
		align-self: center;
		height: 2.5rem;
		padding: 0 0.75rem;
		box-sizing: border-box;
		border: 1px solid var(--ink);
		background: var(--ink);
		color: #fff;
		text-decoration: none;
	}
	.modern-header .wishlist-mini .ico-heart {
		width: 15px;
		height: 14px;
	}
	.modern-header .wishlist-mini b {
		min-width: 1.25rem;
		padding: 0.125rem 0.375rem;
		background: var(--blue);
		color: #fff;
		font: 500 var(--fs-xs) / 1.2 var(--font-mono);
		text-align: center;
		text-transform: uppercase;
	}
	.modern-header .wishlist-mini:hover {
		background: var(--blue);
		border-color: var(--blue);
	}
	.modern-header .wishlist-mini:hover b {
		background: #fff;
		color: var(--ink);
	}
}
@media (max-width: 782px) {
	body.admin-bar .modern-header {
		top: 46px;
	}
}
@media (max-width: 575.98px) {
	.utility {
		font-size: var(--fs-xs);
	}
	.modern-header .nav {
		min-height: 72px;
		padding: 0 1rem;
	}
}
/* Allineamento alla larghezza massima per header, hero e famiglie. */
.modern-header .nav {
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
@media (max-width: 575.98px) {
	.utility .wrap > div {
		width: 100%;
		justify-content: space-between;
		gap: 0.75rem;
		white-space: nowrap;
	}
	.utility .wrap > div > a:first-child {
		display: none;
	}
	.utility a[href*="groups.io"] {
		display: inline-flex !important;
	}
	.utility .wrap > div a,
	.utility .u-lang {
		gap: 0.375rem;
		min-height: 40px;
	}
}
.utility .u-lang {
	padding-left: 1rem;
	border-left: 1px solid #ffffff30;
	font-weight: 500;
	letter-spacing: 0.06em;
	gap: 0.5rem;
}
@media (max-width: 575.98px) {
	.utility .u-lang {
		padding-left: 0.75rem;
	}
	#navigation .nav-mobile-only {
		display: flex !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	.modern-header .nav nav,
	.modern-header .nav nav > * {
		animation: none !important;
	}
}

/* ==========================================================================
   7. Mega menu
   ========================================================================== */

.mega-shell {
	position: absolute;
	overflow: hidden;
	max-height: calc(100vh - 125px);
	overflow-y: auto;
}
.mega-tabs button i {
	right: 14px;
	top: 18px;
}
.mega-panel {
	grid-template-columns: 1fr 235px;
}
.sub-links,
.mega-index .mega-panel > .sub-links {
	margin-bottom: 1rem;
}
.sub-links a small {
	font-size: var(--fs-xs);
}
.menu-backdrop {
	position: fixed;
	inset: 0;
	background: #0d244533;
	backdrop-filter: blur(3px);
	z-index: 55;
}
.mega-index .mega-close {
	position: absolute;
	z-index: 2;
	top: 18px;
	right: 24px;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	font-size: var(--fs-h3);
	line-height: 1;
	color: var(--muted);
	background: transparent;
	border: 0;
}
.mega-index .mega-close:hover {
	color: var(--ink);
	background: var(--bg-dark);
}
.mega-index .mega-body {
	display: grid;
	grid-template-columns: minmax(260px, 24%) 1fr;
	min-height: 400px;
}
.mega-index .mega-tabs {
	padding: 0;
	gap: 0;
	border-right: 1px solid var(--line);
	display: flex;
	flex-direction: column;
}
.mega-index .mega-tabs::before {
	content: attr(data-label);
	padding: 1.5rem;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.128em;
	border-bottom: 1px solid var(--line);
	color: #8cc8ec;
	border-bottom-color: #ffffff24;
}
/* Mega menu a schede: la freccia sta nella sua colonna, non sopra il testo (su mobile copriva "Radiofrequenza") */
.mega-index .mega-tabs button {
	position: relative;
	display: grid;
	gap: 0;
	padding: 0 1.5rem;
	min-height: 60px;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-left: 2px solid transparent;
	box-shadow: none;
	text-align: left;
	transition: background 0.15s;
	align-items: center;
}
/* Colonna fissa per la sigla solo nel mega menu Prodotti (negli altri pannelli il testo resta normale) */
.mega-index .mega-tabs button > b {
	font-size: var(--fs-body);
	font-weight: 450;
	letter-spacing: -0.02em;
	color: #fff;
	align-items: baseline;
	display: block;
}
.mega-index .mega-tabs button i {
	transform: none;
	font-style: normal;
	opacity: 1;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border: 1px solid #ffffff40;
	color: #fff;
	font-size: var(--fs-body);
	line-height: 1;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	position: static;
	grid-column: 2;
	grid-row: 1 / -1;
	align-self: center;
	justify-self: end;
}
.mega-index .mega-tabs button:hover {
	background: var(--bg);
}
.mega-index .mega-tabs button[aria-selected="true"] {
	background: var(--bg-light);
	border-left-color: var(--blue);
	color: var(--ink);
	box-shadow: none;
}
.mega-index .mega-panel {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 1.5rem 2rem;
}
.mega-index .mega-panel h3 {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin: 2rem 0 0;
}
.mega-index .mega-panel > p {
	color: var(--ink-2);
	margin: 0.5rem 0 1.5rem;
	max-width: none;
}
.mega-index .sub-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin: 0;
	border-left: 1px solid var(--line);
	border-top: 1px solid var(--line);
	counter-reset: sub;
}
.mega-index .sub-links a {
	counter-increment: sub;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.5rem;
	border-right: 1px solid var(--line);
	font-size: var(--fs-body);
	color: var(--ink);
}
.mega-index .sub-links a::before {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--muted);
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.048em;
	text-transform: uppercase;
}
/* Frecce valorizzate anche a riposo: riquadro pieno blu scuro; nelle schede freccia sempre visibile. */
.mega-index .sub-links a::after {
	content: "→";
	position: absolute;
	line-height: 1;
	top: 50%;
	bottom: auto;
	right: 18px;
	display: grid;
	place-items: center;
	border: 1px solid var(--line-2);
	transform: translateY(-50%);
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
}
.mega-index .sub-links a small {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.096em;
	color: var(--ink-2);
}
.mega-index .sub-links:has(> a:last-child:nth-child(odd))::after {
	content: "";
	background: var(--bg-dark);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.mega-index .sub-links:has(> a:nth-child(9)) {
	grid-template-columns: repeat(3, 1fr);
}
.mega-index .sub-links:has(> a:nth-child(9)) a {
	min-height: 70px;
	padding-right: 2rem;
}
.mega-index .sub-links:has(> a:nth-child(9))::after,
.mega-shell .sub-links.sub-links--2col::after,
.mega-shell .sub-links::after {
	display: none;
}
.mega-index .mega-foot {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
}
.mega-index .mega-all,
.mega-index .mega-cta {
	text-transform: uppercase;
}
.mega-index .mega-all:hover {
	color: var(--blue);
}
.mega-index .mega-cta {
	align-items: center;
	gap: 0.75rem;
	transition:
		background 0.15s,
		border-color 0.15s;
}
.mega-index .mega-cta span {
	letter-spacing: 0;
}
.mega-cta {
	gap: 0.75rem !important;
	box-sizing: border-box;
	white-space: nowrap;
	transform: none;
	display: inline-flex !important;
	justify-content: center;
	min-height: 3rem;
	height: auto;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	letter-spacing: 0.112em !important;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.mega-cta > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	transition: transform 0.2s;
}
.mega-cta:hover > span {
	transform: translateX(3px);
}
.mega-cta:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
	color: #fff !important;
}
.mega-compact--4 .sub-links a::after {
	content: "→" !important;
}
.mega-shell:not([hidden]) {
	animation: mega-in 0.28s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.menu-backdrop:not([hidden]) {
	animation: fade-in 0.3s ease;
}
.mega-shell:not([hidden]) .mega-tabs button,
.mega-shell:not([hidden]) .mega-panel:not([hidden]) .sub-links > a,
.mega-shell:not([hidden]) .mega-panel:not([hidden]) > h3,
.mega-shell:not([hidden]) .mega-panel:not([hidden]) > p {
	animation: cell-in 0.4s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.mega-shell .mega-tabs button:nth-child(1) {
	animation-delay: 0.04s;
}
.mega-shell .mega-tabs button:nth-child(2) {
	animation-delay: 0.08s;
}
.mega-shell .mega-tabs button:nth-child(3) {
	animation-delay: 0.12s;
}
.mega-shell .mega-tabs button:nth-child(4) {
	animation-delay: 0.16s;
}
.mega-shell .mega-panel > h3 {
	animation-delay: 0.05s;
}
.mega-shell .mega-panel > p {
	animation-delay: 0.09s;
}
.mega-shell .sub-links > a:nth-child(1) {
	animation-delay: 0.1s;
}
.mega-shell .sub-links > a:nth-child(2) {
	animation-delay: 0.14s;
}
.mega-shell .sub-links > a:nth-child(3) {
	animation-delay: 0.18s;
}
.mega-shell .sub-links > a:nth-child(4) {
	animation-delay: 0.22s;
}
.mega-shell .sub-links > a:nth-child(5) {
	animation-delay: 0.26s;
}
.mega-shell .sub-links > a:nth-child(6) {
	animation-delay: 0.3s;
}
.mega-shell .sub-links > a:nth-child(n + 7) {
	animation-delay: 0.34s;
}
/* Mega menu: primo titolo del pannello senza spazio sopra. */
.mega-index .mega-panel > h3:first-child {
	margin-top: 0;
	padding-right: 3rem;
}
.mega-cta span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono) !important;
	font-weight: 500 !important;
	font-size: var(--fs-small) !important;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
.mega-cta:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.mega-cta:focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
/* Mega menu: hover delle card in navy. */
.mega-shell .sub-links > a:hover,
.mega-shell .sub-links > a:hover *,
.mega-shell .sub-links > a:hover::after,
.mega-compact .sub-links > a[href*="/download"] span {
	color: #fff !important;
}
.mega-shell .sub-links > a:hover small,
.mega-shell .sub-links > a:hover::before,
.mega-compact .sub-links > a[href*="/download"] small {
	color: #8cc8ec !important;
}
.mega-index .sub-links a:hover::after,
.mega-index .sub-links a:focus-visible::after {
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
	transform: translateY(-50%);
}
.mega-index .mega-tabs button:hover i {
	transform: translateX(2px);
}
.mega-index .mega-tabs button[aria-selected="true"] i {
	opacity: 1;
	color: var(--blue);
	transform: translateX(3px);
}
.mega-foot :is(.mega-cta, .mega-all) span[aria-hidden] {
	display: inline-block;
	transition: transform 0.15s;
}
.mega-foot :is(.mega-cta, .mega-all):hover span[aria-hidden] {
	transform: translateX(4px);
}
.mega-index .mega-tabs button:hover i {
	opacity: 0.8;
}
/* Mega menu Prodotti: resta solo "Vedi i prodotti", allineato a destra. */
#mega-products .mega-foot {
	justify-content: flex-end;
	padding-top: 1.75rem;
}
.mega-clean .sub-links a::before {
	content: none;
}
.mega-index .mega-tabs button:is(:hover, :focus-visible, [aria-selected="true"]) {
	background: var(--blue);
	color: #fff;
	border-left-color: var(--blue);
	box-shadow: none;
}
.mega-index .mega-tabs button:is(:hover, :focus-visible, [aria-selected="true"]) > b,
.mega-index .mega-tabs__dl:is(:hover, :focus-visible) span {
	color: #fff;
}
.mega-index .mega-tabs button:is(:hover, :focus-visible, [aria-selected="true"]) i {
	opacity: 1;
	background: #fff;
	border-color: #fff;
	color: var(--ink);
	transform: none;
}
/* Fondo dei mega menu con il solo pulsante: allineato a destra. */
.mega-index .mega-foot:not(:has(.mega-all)) {
	justify-content: flex-end;
}
/* Sigla della macrocategoria (DAQ…) prima del nome nel mega menu Prodotti. */
.mega-abbr {
	font-style: normal;
	color: var(--blue);
}
.mega-tabs button:is(:hover, :focus-visible, [aria-selected="true"]) .mega-abbr {
	color: var(--ink);
}
.mega-index .mega-panel > h3 + p {
	margin-top: -0.75rem;
	margin-bottom: 1.5rem;
}
/* Mega menu prodotti: voce "Area download" in fondo alla colonna delle categorie */
.mega-index .mega-tabs__dl {
	margin-top: auto;
	display: grid;
	grid-template-columns: 1fr 32px;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 0.75rem;
	padding: 1.25rem 1.5rem;
	border-top: 1px solid #ffffff24;
	color: #fff;
	text-decoration: none;
	transition: background-color 0.15s;
}
.mega-index .mega-tabs__dl span {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #8cc8ec;
}
.mega-index .mega-tabs__dl small {
	grid-column: 1;
	font-size: var(--fs-small);
	color: #ffffffb3;
}
.mega-index .mega-tabs__dl i {
	grid-column: 2;
	grid-row: 1 / 3;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border: 1px solid #ffffff40;
	font-style: normal;
	font-size: var(--fs-body);
	color: #fff;
	transition:
		background-color 0.15s,
		color 0.15s;
}
.mega-index .mega-tabs__dl:is(:hover, :focus-visible) {
	background: var(--blue);
}
.mega-index .mega-tabs__dl:is(:hover, :focus-visible) i {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
}
.mega-index .mega-tabs button > b .mega-abbr {
	margin-right: 0;
}
/* Mega Prodotti: piu spazio tra sigla e nome */
#mega-products .mega-tabs button > b {
	display: grid;
	align-items: baseline;
	grid-template-columns: 2.5em minmax(0, 1fr);
	column-gap: 0.625rem;
}
/* Pannelli a schede (2 colonne): l'ultima card dispari occupa la riga intera, niente cella grigia */
.mega-index:not(.mega-compact) .sub-links > a:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}
/* Supporto: "Area download" a tutta larghezza, sotto le altre card, in blu scuro */
.mega-compact .sub-links:has(> a[href*="/download"]) {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.mega-compact .sub-links > a[href*="/download"]::after {
	content: "↓" !important;
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.mega-compact .sub-links > a[href*="/download"]:hover::after {
	background: #fff !important;
	border-color: #fff !important;
	color: var(--deep) !important;
}
/* Mega Prodotti: sottocategorie in colonna (box) + immagine accanto */
#mega-products .mega-split {
	display: grid;
	grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
	gap: 2rem;
	align-items: stretch;
	margin-bottom: 2rem;
}
#mega-products .mega-split--noimg {
	grid-template-columns: minmax(0, 1fr);
}
/* Mega Prodotti: sottocategorie a righe (solo linee divisorie, freccia piccola) */
#mega-products .mega-split .sub-links {
	grid-template-columns: minmax(0, 1fr);
	align-content: start;
	align-self: start;
	gap: 0 !important;
	background: transparent;
	border: 0 !important;
	border-top: 1px solid var(--line) !important;
}
#mega-products .mega-split .sub-links > a {
	grid-column: auto !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	padding: 0.9rem 1.25rem 0.9rem 0.25rem !important;
	min-height: 0;
	transition:
		background-color 0.2s,
		padding-left 0.2s;
}
/* Mega Prodotti: immagine un po' più alta, più aria sopra la linea divisoria */
#mega-products .mega-media {
	margin: 0;
	display: grid;
	place-items: center;
	border: 1px solid var(--line);
	overflow: hidden;
	background: var(--bg);
	position: relative;
	min-height: 23rem;
}
#mega-products .mega-media img {
	width: 100%;
	height: 100%;
	transition: opacity 0.12s;
	position: absolute;
	inset: 0;
	max-height: none;
	padding: 0;
	object-fit: cover;
}
#mega-products .mega-media img.is-fading {
	opacity: 0;
}
#mega-products .mega-split .sub-links > a span,
.mega-index .sub-links > a span {
	font-size: var(--fs-body);
	font-weight: 400;
}
#mega-products .mega-split .sub-links > a::after,
.mega-index .sub-links > a::after {
	width: 1.75rem !important;
	height: 1.75rem !important;
	font-size: var(--fs-small) !important;
}
#mega-products .mega-split .sub-links > a:hover,
.mega-index .sub-links > a:hover {
	background: #ffffff99 !important;
	padding-left: 0.75rem !important;
}
/* Tutti i mega menu: voci a righe come in Prodotti (linee divisorie, freccia piccola) */
.mega-index .sub-links {
	gap: 0 2rem !important;
	background: transparent;
	border: 0 !important;
	align-content: start;
}
/* Supporto: "Area download" resta barra blu scuro */
.mega-compact .sub-links > a[href*="/download"] {
	grid-column: 1 / -1;
	order: 99;
	color: #fff !important;
	background: var(--ink) !important;
	padding-left: 1.25rem !important;
	margin-top: 1rem;
	border: 0 !important;
}
.mega-compact .sub-links > a[href*="/download"]:hover {
	background: var(--deep) !important;
}
/* Mega menu a righe: hover leggibile (testo blu, sfondo chiaro) */
.mega-index .sub-links > a:not([href*="/download"]):is(:hover, :focus-visible) {
	background: #fff !important;
	color: var(--ink) !important;
}
.mega-index .sub-links > a:not([href*="/download"]):is(:hover, :focus-visible) span {
	color: var(--deep) !important;
}
.mega-index .sub-links > a:not([href*="/download"]):is(:hover, :focus-visible) small {
	color: var(--muted) !important;
}
.mega-index .sub-links > a:not([href*="/download"]):is(:hover, :focus-visible)::after {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
/* Mega menu Novità: ultime 4 notizie su due colonne */
.mega-shell .sub-links.sub-links--2col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.5rem !important;
}
@media (min-width: 992px) {
	.mega-index:not(.mega-compact) .mega-body {
		padding-left: var(--gutter);
		padding-right: var(--gutter);
	}
	.mega-index:not(.mega-compact) .mega-panel {
		padding-left: 2.5rem;
		padding-right: 0;
	}
	.mega-index:not(.mega-compact) .mega-tabs {
		border-left: 1px solid var(--line);
	}
	.mega-shell .mega-close {
		right: var(--gutter);
	}
}
@media (min-width: 992px) and (max-width: 1399.98px) {
	#mega-products .mega-tabs button > b {
		font-size: var(--fs-body);
	}
	#mega-products .mega-tabs button {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}
}
@media (max-width: 1199.98px) {
	.mega-panel {
		grid-template-columns: 1fr 200px;
	}
	.mega-index .sub-links:has(> a:nth-child(9)) {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 991.98px) {
	.mega-shell {
		z-index: 70;
	}
	.mega-panel {
		grid-template-columns: 1fr;
	}
	.mega-index .mega-body {
		grid-template-columns: 210px 1fr;
	}
	.mega-index .mega-tabs button {
		grid-template-rows: auto auto;
		padding: 0.75rem 1rem;
		gap: 0.25rem;
	}
}
/* Mega menu a schede (Prodotti, Novità: classe mega-clean): schede senza sigla o numero, card senza numero progressivo. */
@media (max-width: 991.98px) {
	.mega-index .mega-tabs button > b {
		font-size: var(--fs-small);
	}
}
.mega-index .mega-tabs button > b {
	grid-template-columns: 2.75rem minmax(0, 1fr);
	grid-column: 1;
	min-width: 0;
}
@media (max-width: 991.98px) {
	.mega-index .mega-panel {
		padding: 1.5rem;
	}
}
/* Mega menu: frecce più evidenti. Nelle card un riquadro che si riempie di blu al passaggio;
   nelle schede la freccia compare anche al passaggio; nel pulsante in fondo si sposta. */
.mega-index .sub-links a {
	padding-right: 4.5rem;
}
@media (max-width: 991.98px) {
	.mega-index .sub-links a::before {
		left: 13px;
	}
	.mega-compact--4 .sub-links {
		grid-template-columns: 1fr 1fr !important;
	}
}
/* Frecce delle schede (macrocategorie) in un riquadro, come nelle card. */
.mega-index .mega-tabs button {
	column-gap: 0.75rem;
	grid-template-columns: 1fr 32px;
}
@media (max-width: 991.98px) {
	.mega-index .mega-tabs button {
		grid-template-columns: 1fr 28px;
	}
	.mega-index .mega-tabs button i {
		width: 28px;
		height: 28px;
	}
	.mega-compact .sub-links:has(> a[href*="/download"]),
	.mega-shell .sub-links.sub-links--2col {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	#mega-products .mega-split {
		grid-template-columns: minmax(0, 1fr);
	}
	#mega-products .mega-media {
		display: none;
	}
	.mega-shell {
		position: absolute;
	}
}
@media (max-width: 575.98px) {
	.sub-links a small {
		font-size: var(--fs-xs);
	}
	.mega-index .mega-close {
		top: 8px;
		right: 10px;
	}
	.mega-index .mega-body {
		display: block;
	}
}
/* Mega menu Supporto: tre link al portale esterno. */
.mega-compact .mega-body {
	display: block;
	min-height: 0;
}
@media (max-width: 575.98px) {
	.mega-index .mega-tabs {
		display: grid;
		grid-template-columns: 1fr 1fr;
		border-right: 0;
	}
}
/* Mega menu: colonna delle schede blu scuro; hover e scheda attiva uguali, come l'hover delle card. */
.mega-index .mega-tabs {
	background: var(--ink);
	border-color: var(--ink);
}
@media (max-width: 575.98px) {
	.mega-index .mega-tabs::before {
		grid-column: 1/-1;
		padding: 1rem;
	}
	.mega-index .mega-tabs button {
		min-height: 66px;
		border-left: 0;
		border-right: 1px solid var(--line);
	}
}
.mega-index .mega-tabs button {
	background: transparent;
	color: #fff;
	border-bottom-color: #ffffff24;
	border-left-color: transparent;
}
@media (max-width: 575.98px) {
	.mega-index .mega-panel,
	.mega-compact .mega-panel {
		padding: 1.5rem 1rem;
	}
	.mega-index .mega-panel h3 {
		font-size: var(--fs-h3);
	}
}
/* Mega menu prodotti: spazio sotto il titolo, nessuna cella vuota grigia, card dispari a tutta riga */
.mega-index .mega-panel > h3 {
	margin-bottom: 1.5rem;
}
@media (max-width: 575.98px) {
	.mega-index .sub-links,
	.mega-index .sub-links:has(> a:nth-child(9)) {
		grid-template-columns: 1fr;
	}
}
.mega-compact .sub-links {
	margin-bottom: 0 !important;
}
@media (max-width: 575.98px) {
	.mega-index .sub-links a {
		padding-right: 3.75rem;
	}
	.mega-index .mega-foot {
		flex-direction: column;
		align-items: stretch;
	}
	.mega-index .mega-cta {
		justify-content: space-between;
	}
}
/* Mega menu Azienda: 4 voci compatte. */
.mega-compact--4 .sub-links {
	grid-template-columns: repeat(4, 1fr);
}
.mega-shell .mega-panel,
.mega-shell > .wrap,
.wrap.cap {
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
@media (max-width: 575.98px) {
	.mega-cta {
		white-space: normal;
	}
	.mega-compact--4 .sub-links {
		grid-template-columns: 1fr !important;
	}
}
.mega-clean .sub-links a {
	padding-left: 1.5rem;
}
@media (max-width: 991.98px) {
	.mega-clean .sub-links a {
		padding-left: 1.25rem;
	}
}
@media (max-width: 575.98px) {
	.mega-index .sub-links a::after {
		right: 12px;
	}
	.mega-index .mega-tabs button {
		border-right-color: #ffffff24;
	}
	.mega-index .mega-tabs button[aria-selected="true"] {
		box-shadow: none;
	}
}
.mega-index .sub-links > a {
	background: transparent !important;
	border: 0 !important;
	border-top: 1px solid var(--line) !important;
	border-bottom: 1px solid var(--line) !important;
	margin-bottom: -1px;
	padding: 0.9rem 1.25rem 0.9rem 0.25rem !important;
	min-height: 0;
	transition:
		background-color 0.2s,
		padding-left 0.2s;
}
@media (max-width: 575.98px) {
	.mega-index .mega-tabs__dl {
		grid-column: 1 / -1;
		margin-top: 0;
		padding: 1rem;
		grid-template-columns: 1fr 24px;
	}
	/* Mobile, mega Prodotti: schede strette su due colonne, quindi sigla e freccia sulla prima riga e nome sotto a tutta larghezza */
	#mega-products .mega-tabs button {
		grid-template-columns: minmax(0, 1fr);
		position: relative;
		align-items: start;
		align-content: start;
		padding-top: 1rem;
	}
	#mega-products .mega-tabs button i {
		position: absolute;
		top: 1rem;
		right: 1rem;
		grid-column: auto;
		grid-row: auto;
		width: 24px;
		height: 24px;
		font-size: var(--fs-small);
	}
	#mega-products .mega-tabs button > b {
		grid-template-columns: minmax(0, 1fr) !important;
		row-gap: 0.375rem;
	}
	#mega-products .mega-tabs button > b .mega-abbr {
		display: flex;
		align-items: center;
		min-height: 24px;
		padding-right: 32px;
	}
	.mega-index .mega-tabs__dl i {
		width: 24px;
		height: 24px;
		font-size: var(--fs-small);
	}
}
@media (prefers-reduced-motion: reduce) {
	.mega-shell,
	.mega-shell *,
	.menu-backdrop {
		animation: none !important;
	}
}
@keyframes fade-in {
	from {
		opacity: 0;
	}
}
@keyframes mega-in {
	from {
		opacity: 0;
		transform: translateY(-0.5rem);
	}
}
@keyframes cell-in {
	from {
		opacity: 0;
		transform: translateY(0.5rem);
	}
}

/* ==========================================================================
   8. Footer
   ========================================================================== */

.footer {
	border-top: 1px solid var(--line);
	padding-top: 3rem;
}
.footer-grid {
	display: grid;
	grid-template-columns: 1.35fr 1fr 1.1fr 0.7fr 1.1fr;
}
.footer-grid > div {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
}
.footer-bottom {
	justify-content: space-between;
	border-top: 1px solid var(--line);
	margin-top: 3rem;
}
.modern-footer .footer-grid {
	padding-top: 2rem;
	padding-bottom: 3rem;
	border-top: 1px solid #ffffff25;
	gap: 1.5rem;
}
.modern-footer .footer-grid img {
	filter: brightness(0) invert(1);
	width: 112px;
	margin-bottom: 0.5rem;
}
/* Footer: titoli colonna in mono. */
.modern-footer h4 {
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: #8cc8ec;
	margin-bottom: 1rem;
}
.modern-footer p,
.modern-footer a {
	color: #aec0d8;
	font-size: var(--fs-small);
}
.modern-footer a:hover,
.modern-footer .footer-bottom a:hover {
	color: #fff;
}
.footer-signature > span:nth-child(2) {
	font-size: var(--fs-hero);
	line-height: 1.05;
	letter-spacing: -0.04em;
	color: #7798c1;
}
/* Footer bottom: dati societari e link legali. */
.modern-footer .footer-bottom {
	border-color: #ffffff25;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
	font-size: var(--fs-xs);
}
body[data-page="prodotto"] .modern-footer,
body[data-page="scheda"] .modern-footer,
body[data-page="azienda"] .modern-footer {
	margin-top: 0;
}
/* Footer: link legali separati dallo spazio */
.footer-legal {
	align-items: center;
	display: inline-flex;
	gap: 1.5rem;
}
.modern-footer .footer-bottom > span:nth-child(2) {
	text-align: center;
}
.modern-footer .footer-bottom > .footer-legal {
	justify-self: end;
}
/* Footer: firma con banda di pixel animata a tutta larghezza (al posto di "ELAD" e del blocco pixel). */
.footer-signature {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: end;
	gap: 3rem;
	padding-top: 3rem;
	padding-bottom: 2rem;
}
/* Firma del footer come prima delle variabili */
.footer-signature > span:first-child {
	font-weight: 400;
	line-height: 1.05;
	color: #7798c1;
	letter-spacing: -0.055em;
	font-size: clamp(22px, 3vw, 40px);
}
.modern-footer .footer-grid img[src*="elad-logo-white"] {
	filter: none;
	width: 8.5rem;
}
/* Footer: indirizzo e testi alla stessa misura dei link; riga legale tutta nello stesso mono. */
body .modern-footer .footer-grid p:not(.x),
body .modern-footer .footer-grid address {
	font-size: var(--fs-small) !important;
	font-style: normal;
	color: #aec0d8;
}
.modern-footer .footer-grid a {
	font-size: var(--fs-small);
}
.modern-footer .footer-bottom,
.modern-footer .footer-bottom span,
.modern-footer .footer-bottom a {
	font: 400 var(--fs-label) / 1.4 var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #93aac8;
}
.footer-signature > .px--band {
	justify-self: stretch;
}
.footer-signature em {
	font-style: italic;
	padding-right: 0.06em;
	letter-spacing: -0.055em;
}
/* Ultime etichette ricondotte alla scala */
.footer h4 {
	font-size: var(--fs-label);
}
@media (max-width: 991.98px) {
	.footer-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.footer-grid > div:first-child {
		grid-column: 1/-1;
	}
	.footer-grid > div:last-child {
		grid-column: 2/4;
	}
	.footer-signature {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}
@media (max-width: 767.98px) {
	.modern-footer .footer-grid {
		gap: 2rem 1rem;
	}
}
@media (max-width: 575.98px) {
	.footer {
		padding-top: 2rem;
	}
}
.modern-footer {
	background: var(--ink);
	color: #fff;
	padding: 0;
	overflow: hidden;
}
.modern-footer {
	margin: 4rem 0 0;
}
@media (max-width: 575.98px) {
	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}
	.footer-grid > div:last-child {
		grid-column: auto;
	}
	.footer-bottom {
		flex-wrap: wrap;
	}
	.modern-footer {
		margin: 2rem 0 0;
	}
	.modern-footer .footer-bottom {
		flex-direction: column;
	}
}
.modern-footer .footer-bottom {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
}
@media (max-width: 575.98px) {
	.modern-footer .footer-bottom > span:nth-child(2) {
		display: inline;
		text-align: left;
	}
	.modern-footer .footer-bottom {
		grid-template-columns: 1fr;
	}
	.modern-footer .footer-bottom > .footer-legal {
		justify-self: start;
	}
}

/* ==========================================================================
   9. Componenti comuni: intestazione pagina, briciole, "Vai a", fasce, avvisi
   ========================================================================== */

.section-title {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
}
.section-title h2 {
	margin-top: 0.75rem;
}
.breadcrumb {
	font-size: var(--fs-xs);
	margin-bottom: 2rem;
}
.page-heading h1 {
	margin: 0 0 1.5rem;
}
/* Breadcrumb: fascia autonoma subito sotto l'header. */
.crumbs {
	background: var(--bg-dark);
	border-bottom: 1px solid var(--line);
}
.crumbs .breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1rem;
	margin: 0 auto;
	padding-top: 1rem;
	padding-bottom: 1rem;
	font: var(--fs-mono) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--muted);
}
.crumbs .breadcrumb a {
	color: var(--muted);
	transition: color 0.15s;
}
.crumbs .breadcrumb a:hover {
	color: var(--blue);
}
.crumbs .breadcrumb > span {
	color: var(--muted);
}
.crumbs .breadcrumb [aria-current="page"] {
	color: var(--ink);
}
body[data-page="home"] .section-title {
	align-items: flex-end;
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--line);
}
body[data-page="home"] .section-title h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
}
body[data-page="home"] .section-title .text-link {
	text-transform: uppercase;
	align-items: center;
	gap: 0.75rem;
}
.toast.is-in {
	animation: toast-in 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.toast-icon {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--blue);
	font: var(--fs-body) var(--font-sans);
}
.toast-body {
	min-width: 0;
}
.toast-body small {
	display: block;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: #8cc8ec;
}
.toast-body b {
	display: block;
	margin-top: 0.25rem;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.toast-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.375rem;
}
.toast-actions a,
.toast-undo {
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.096em;
	background: none;
	border: 0;
	padding: 0;
	white-space: nowrap;
}
.toast-undo {
	color: #aec0d8;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.toast-actions a:hover,
.toast-undo:hover {
	color: #8cc8ec;
}
.toast-bar {
	position: absolute;
	left: 0;
	bottom: 0;
	height: 2px;
	width: 100%;
	background: var(--blue);
	transform-origin: left;
	animation: toast-bar 4.2s linear forwards;
}
.sv-head {
	grid-template-columns: 12rem 1fr;
	gap: 1.5rem;
	align-items: start;
	border-bottom: 1px solid var(--line);
	display: block;
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
}
.sv-head h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
	margin: 0;
}
.sv-band {
	background: var(--bg-dark);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	scroll-margin-top: 5rem;
	padding: 3rem 0;
}
/* Servizi: sezioni con spazi ridotti. */
.sv-section {
	padding-top: 3rem;
	padding-bottom: 3rem;
}
.sv-head p {
	color: var(--ink-2);
}
/* Servizi: due riquadri (Qualità, R&D) dopo la rimozione di Elad USA */
.sv-head > h2:first-child {
	margin-top: 0;
}
.section-title .text-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 3rem;
	height: auto !important;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	letter-spacing: 0.112em !important;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
.section-title .text-link:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.section-title .text-link:focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.section-title .text-link:hover {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
/* Scala tipografica unica.
   Display (h1 intestazioni) · Sezione (h2) · Card grande (h3 26px) · Card (h3 22px) · Lead 18px · Testo 15px. */
body main .page-heading h1 {
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.045em;
	font-size: var(--fs-display);
}
body main .page-heading h1 em {
	font-style: normal;
}
body main .page-heading > p:not(.x) {
	font-size: var(--fs-lead) !important;
	max-width: 44rem;
}
body main :is(.sv-head, .section-title, .ds-join-copy, .contact-layout, .wl-sales, .az-tl-head) h2 {
	font-size: var(--fs-h2);
	line-height: 1.05;
	font-weight: 500;
	letter-spacing: -0.045em;
}
body main :is(.az-tl-track, .ds-card, .nv-card:not(.nv-card--feature), .sec-card) h3 {
	font-size: var(--fs-h3) !important;
	letter-spacing: -0.03em;
}
body main .ev-body h3 {
	font-size: var(--fs-h3);
	letter-spacing: -0.035em;
}
/* Intestazioni di sezione con testo: titolo a sinistra, paragrafo a destra (tutto il sito). */
.sv-head:has(> p) {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	column-gap: 4rem;
	row-gap: 0;
	align-items: start;
}
.sv-head:has(> p) > h2 {
	grid-column: 1;
	margin: 0;
}
.sv-head:has(> p) > p {
	grid-column: 2;
	grid-row: 1;
	max-width: none;
	margin: 0;
	padding-top: 0.5rem;
}
/* Azienda: partner su fascia blu, card bianche con logo. */
#partner.sv-band {
	background: var(--blue);
	border: 0;
}
#partner .sv-head h2 {
	color: #fff;
}
#partner .sv-head {
	border-color: #ffffff4d;
}
.anchor-alias {
	display: block;
	position: relative;
	top: 0;
	height: 0;
}
@media (max-width: 991.98px) {
	.sv-head {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}
	.sv-section,
	.sv-band {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.sv-head:has(> p) {
		grid-template-columns: 1fr;
		row-gap: 1rem;
	}
	.sv-head:has(> p) > p {
		grid-column: 1;
		grid-row: auto;
		padding-top: 0;
	}
}
@media (max-width: 575.98px) {
	.section-title {
		align-items: flex-start;
		gap: 1rem;
		flex-direction: column;
	}
	.section-title h2 {
		font-size: var(--fs-h2);
	}
	.breadcrumb {
		margin-bottom: 1.5rem;
	}
	.page-heading h1 {
		margin: 1rem 0;
	}
}
/* Page heading: più respiro. */
.page-heading h1 {
	margin-bottom: 2rem;
}
@media (max-width: 575.98px) {
	.toast {
		max-width: 90vw;
	}
}
.toast {
	position: fixed;
	z-index: 80;
	left: auto;
	right: 1.5rem;
	bottom: 1.5rem;
	transform: none;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem;
	width: min(26rem, calc(100vw - 2rem));
	padding: 1rem 1.25rem;
	border-radius: 0 !important;
	background: var(--ink);
	color: #fff;
	box-shadow: 0 18px 40px #0e2a4840;
	overflow: hidden;
	font-size: var(--fs-small);
}
@media (max-width: 575.98px) {
	.crumbs .breadcrumb {
		font-size: var(--fs-xs);
		gap: 0.25rem 0.5rem;
		padding-top: 0.75rem;
		padding-bottom: 0.75rem;
	}
}
.crumbs + .page-heading,
.page-heading {
	padding-top: 4rem;
	padding-bottom: 4rem;
}
@media (max-width: 575.98px) {
	.crumbs + .pd-hero {
		margin-top: 1.5rem;
	}
	body[data-page="home"] .section-title {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
	.toast {
		right: 1rem;
		bottom: 1rem;
	}
	.page-heading h1 {
		margin-bottom: 1.5rem;
	}
	.crumbs + .page-heading,
	.page-heading {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	body main .ev-body h3 {
		font-size: var(--fs-h3);
	}
	body main .page-heading > p:not(.x) {
		font-size: var(--fs-body) !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	.toast.is-in,
	.toast-bar {
		animation: none;
	}
}
@keyframes toast-in {
	from {
		opacity: 0;
		transform: translateY(12px) !important;
	}
}
@keyframes toast-bar {
	from {
		transform: scaleX(1);
	}
	to {
		transform: scaleX(0);
	}
}

/* ==========================================================================
   10. Pixel decorativi
   ========================================================================== */

/* Pixel decorativi (stesso linguaggio della hero video). Uso: <div class="px" data-px="col,righe,densità"> */
.px-host {
	position: relative;
}
.px {
	display: grid;
	width: max-content;
	grid-template-columns: repeat(var(--c, 6), var(--s));
	gap: var(--g);
	color: var(--blue);
	pointer-events: none;
}
.px i {
	width: var(--s);
	height: var(--s);
	background: currentColor;
	opacity: var(--o, 0.5);
}
.px i.off {
	opacity: 0;
}
.px i.hot,
.px--band i.hot {
	color: #8cc8ec;
}
.px i.blink {
	animation: px-blink var(--du, 4s) var(--dl, 0s) ease-in-out infinite;
}
.px--heading {
	position: absolute;
	top: 3rem;
	right: max(1.5rem, var(--gutter));
	--s: 0.875rem;
	--g: 0.25rem;
}
/* Pixel nel titolo: varianti per template. */
.px--heading[data-shape="wave"] i:not(.off) {
	opacity: max(var(--o, 0.5), 0.6);
}
/* pixel a tutta larghezza: mai oltre il contenitore */
.px--band {
	width: 100%;
	--s: 0.75rem;
	--g: 0.25rem;
	justify-content: space-between;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}
.px--band i {
	opacity: calc(var(--o, 0.5) * 0.9);
}
/* Separatore: banda a tutta larghezza appoggiata sul confine tra le sezioni. */
.px-sep {
	padding-top: 1rem;
	padding-bottom: 1rem;
	line-height: 0;
}
.px-sep .px--band {
	display: grid;
	width: 100%;
	--s: 0.625rem;
	--g: 0.1875rem;
	color: var(--blue);
}
.px-sep + .sv-band {
	border-top: 0;
	margin-top: 0;
	--h: calc(10 * (0.625rem + 0.1875rem));
	padding-top: calc(4.5rem + var(--h) / 2);
}
@media (max-width: 991.98px) {
	/* Mobile: decorazione pixel dell'intestazione nel flusso, sopra il titolo. */
	.px--heading {
		--s: 0.625rem;
		top: 2rem;
		position: static;
		display: inline-grid;
		margin: 0 0 1.25rem;
		opacity: 1;
	}
	.px--band {
		--s: 0.5rem;
		--g: 0.1875rem;
	}
}
@media (max-width: 575.98px) {
	.px--heading {
		--s: 0.4375rem;
		--g: 0.125rem;
		top: 1.5rem;
	}
	.px-sep {
		padding-top: 2rem;
	}
}
/* Separatore a cavallo tra le due sezioni: metà sopra, metà sotto il cambio di sfondo. */
.px-sep {
	margin: 3rem 0 0;
	padding: 0;
	background: none;
	opacity: 0.5;
	position: relative;
	z-index: 1;
	--h: calc(10 * (0.625rem + 0.1875rem));
	margin-bottom: calc(var(--h) / -2);
}
@media (max-width: 575.98px) {
	.px-sep .px--band {
		--s: 0.5rem;
	}
	.px-sep {
		padding: 0;
		margin-top: 2rem;
	}
	.px-sep,
	.px-sep + .sv-band {
		--h: calc(10 * (0.5rem + 0.1875rem));
	}
	.px-sep + .sv-band {
		padding-top: calc(3rem + var(--h) / 2);
	}
}
@media (prefers-reduced-motion: reduce) {
	.px i.blink {
		animation: none;
	}
}
@keyframes px-blink {
	0%,
	100% {
		opacity: var(--o, 0.5);
	}
	45% {
		opacity: 0.05;
	}
	60% {
		opacity: 0.95;
	}
}

/* ==========================================================================
   11. Tabelle tecniche e dei codici
   ========================================================================== */

.elad-table__title {
	margin: 0 0 0.75rem;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--deep);
}
.elad-table__scroll {
	overflow-x: auto;
	background: #fff;
}
.elad-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-small);
}
.elad-table th,
.elad-table td {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--line);
	text-align: left;
	white-space: normal;
}
.elad-table thead th {
	background: var(--ink);
	color: #fff;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-bottom: 0;
	white-space: nowrap;
}
.elad-table tbody th {
	font-weight: 500;
}
.elad-table tbody tr:last-child > * {
	border-bottom: 0;
}
/* Codici d'ordine: righe a griglia, codice in fascia blu, cuore a destra. */
.code-group:last-child {
	margin-bottom: 0;
}
.code-group__title {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.5rem;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink);
}
.code-group__title::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	background: var(--blue);
}
.code-group__note {
	max-width: 70ch;
	margin: 0 0 1rem;
	font-size: var(--fs-small) !important;
	color: var(--ink-2);
}
.code-list {
	display: grid;
	gap: 0.5rem;
}
.code-list__head,
.code-row {
	display: grid;
	grid-template-columns: var(--codew, 16.5rem) repeat(var(--cols), minmax(0, 1fr)) 3.5rem;
	align-items: stretch;
}
.code-row__code span {
	white-space: nowrap;
}
.code-list__head span {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
	display: flex;
	align-items: flex-end;
	padding: 0.75rem 1rem;
	line-height: 1.3;
}
.code-row {
	background: #fff;
	border: 1px solid var(--line);
	transition:
		border-color 0.2s,
		box-shadow 0.2s,
		transform 0.2s;
}
.code-row:hover {
	border-color: var(--blue);
	box-shadow: 0 10px 24px -18px #091f3d99;
	transform: translateY(-1px);
}
.code-row__code {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	background: var(--ink);
	color: #fff;
	text-decoration: none;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.03em;
	transition: background-color 0.2s;
	text-transform: uppercase;
}
.code-row__code i {
	font-style: normal;
	font-family: var(--font-sans);
	font-size: var(--fs-body);
	color: #8cc8ec;
	transition:
		transform 0.2s,
		color 0.2s;
}
.code-row__code:hover,
.code-row:hover .code-row__code,
.code-row.is-current .code-row__code {
	background: var(--blue);
}
.code-row:hover .code-row__code i {
	color: #fff;
	transform: translateX(3px);
}
.code-row__cell {
	display: flex;
	align-items: center;
	padding: 0.875rem 1rem;
	font-size: var(--fs-small);
	line-height: var(--lh-text);
	color: var(--ink);
	border-left: 1px solid var(--bg);
}
.code-row__act {
	display: grid;
	place-items: center;
	border-left: 1px solid var(--bg);
}
.code-row .save-product {
	position: static;
	top: auto;
	right: auto;
	width: 2.25rem;
	height: 2.25rem;
	display: grid;
	place-items: center;
	padding: 0;
	border: 1px solid var(--blue);
	background: #fff;
	color: var(--blue);
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.code-row .save-product:hover {
	background: var(--blue);
	color: #fff;
}
.code-row .save-product .ico-heart {
	width: 14px;
	height: 13px;
}
.code-row.is-current {
	border-color: var(--blue);
	box-shadow: inset 0 0 0 1px var(--blue);
}
/* Intestazioni delle colonne dei codici: stessi margini delle celle. */
.code-list__head {
	margin-bottom: 0.125rem;
	border-bottom: 1px solid var(--line);
}
.code-list__head span:first-child {
	padding-left: 1.25rem;
}
/* Tabelle nome|valore: etichetta e valore allineati al centro della riga */
.elad-table--kv tbody :is(th, td) {
	line-height: var(--lh-text);
}
.elad-table--spec tbody :is(th, td) {
	vertical-align: middle;
}
.elad-table--kv tbody tr:nth-child(even) {
	background: transparent;
}
.elad-table--kv tbody tr:hover {
	background: var(--bg-light);
}
/* Catalogo a famiglie: card di famiglia, tabelle dei codici con link e wishlist, pagina del codice. */
.elad-table--kv tbody th {
	width: 40%;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink);
}
@media (max-width: 991.98px) {
	.code-list__head {
		display: none;
	}
	/* Codici d'ordine su mobile: linee continue (griglia con gap di 1px), l'ultimo valore dispari occupa tutta la riga */
	.code-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1px;
		background: var(--bg);
	}
	.code-row__code {
		grid-column: 1/-1;
	}
	.code-row__cell {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.25rem;
		border-left: 0;
		border-top: 1px solid var(--bg);
	}
	.code-row__cell::before {
		content: attr(data-label);
		font: 500 var(--fs-label) var(--font-mono);
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--muted);
	}
	.code-row__act {
		grid-column: 1/-1;
		justify-items: end;
		padding: 0.5rem 1rem;
		border-left: 0;
		border-top: 1px solid var(--bg);
	}
	.code-row__cell,
	.code-row__act {
		border: 0;
		background: #fff;
	}
	.code-row__cell:nth-last-child(2):nth-child(even) {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   12. Card prodotto e categoria
   ========================================================================== */

.product-card {
	border-top: 1px solid var(--line);
	overflow: visible;
}
.save-product {
	font-size: var(--fs-lead);
}
.product-copy h3 {
	margin-top: 0.75rem;
}
.card-actions {
	display: flex;
	align-items: center;
	padding-top: 0.875rem;
	border-top: 1px dashed var(--line-2);
}
.card-btn {
	position: static !important;
	place-items: center;
	min-width: 1.75rem;
	border: 1px solid #9fabba;
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.096em;
	line-height: 1;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
}
/* Icona cuore a pixel (wishlist). */
.ico-heart {
	display: inline-block;
	width: 1em;
	height: 0.923em;
	vertical-align: -0.1em;
	fill: currentColor;
	shape-rendering: crispEdges;
	flex: none;
}
/* Segnaposto quando un prodotto non ha ancora la foto. */
.product-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 12rem;
	background: var(--bg-dark);
}
@keyframes shop-pulse {
	0% {
		box-shadow: 0 0 0 0 #22c55e80;
	}
	70%,
	100% {
		box-shadow: 0 0 0 0.375rem #22c55e00;
	}
}

/* ==========================================================================
   13. Home
   ========================================================================== */
.elad-hero {
	padding-top: 1rem;
	padding-bottom: 2rem;
}
.elad-hero-stage {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	color: #fff;
}
.elad-hero-stage::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
}
.elad-hero-content {
	padding: 2rem;
	position: relative;
}
.elad-hero-content h1 {
	font-weight: 550;
	line-height: 0.96;
	margin-left: -0.25rem;
}
.elad-hero-intro {
	font-size: var(--fs-h3);
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: #fff;
}
.elad-hero-description {
	font-size: var(--fs-small);
	line-height: var(--lh-text);
	color: #c4d1e3;
	margin-top: 1rem;
}
.elad-hero-actions {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-top: 1.5rem;
}
.elad-hero-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem !important;
	min-height: 3rem;
	padding: 0 1.5rem !important;
	box-sizing: border-box;
	border-radius: 0 !important;
	font: 500 var(--fs-label) / 1 var(--font-mono) !important;
	text-transform: uppercase;
	letter-spacing: 0.112em !important;
	white-space: nowrap;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	transform: none !important;
}
.elad-hero-link {
	font-size: var(--fs-small);
	border-bottom: 1px solid #7c8fa8;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 3rem;
	height: auto;
	padding: 0.75rem 1.5rem;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	letter-spacing: 0.112em;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.elad-hero-families a {
	grid-template-columns: 1fr auto;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	background: transparent;
	color: var(--ink);
	transition:
		background 0.25s,
		color 0.25s;
}
.elad-hero-families a + a {
	border-left: 1px solid var(--line);
}
.elad-family-name {
	grid-column: 1;
}
.elad-family-arrow {
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: center;
	font-size: var(--fs-h3);
}
.fullscreen-hero .video-stage {
	display: flex;
	align-items: center;
	background: #1d3768;
	min-height: calc(100dvh - var(--chrome-h, 7rem));
}
.hero-pixel-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}
.fullscreen-hero .video-stage::before {
	background: linear-gradient(
			90deg,
			rgba(9, 31, 61, 0.94),
			rgba(9, 31, 61, 0.78) 32%,
			rgba(9, 31, 61, 0.25) 66%,
			rgba(9, 31, 61, 0.06)
		),
		linear-gradient(0deg, rgba(9, 31, 61, 0.55), transparent 30%);
}
.fullscreen-hero .elad-hero-content h1 {
	font-size: var(--fs-hero);
}
.fullscreen-hero .elad-hero-content h1 span,
.elad-hero-families a:hover .ef-px {
	color: #8cc8ec;
}
.fullscreen-hero .elad-hero-intro {
	margin-top: 1.5rem;
}
.fullscreen-hero .elad-hero-description {
	max-width: 375px;
}
.hero-video-bottom {
	position: absolute;
	bottom: 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}
.hero-scroll {
	color: var(--pale);
	letter-spacing: 0.06em;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	font-size: var(--fs-small);
}
.hero-scroll span {
	font-size: var(--fs-h3);
}
.video-stage a:focus-visible {
	outline-color: #b6d5ff;
}
.elad-hero-actions .btn > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
/* Prodotti in evidenza: stesse card del catalogo */
.elad-hero-families a:first-child {
	border-left: 0;
	padding-left: var(--gutter) !important;
}
.elad-hero-families a::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 2px;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s;
}
.elad-hero-families .elad-family-code {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1;
	color: var(--ink);
}
.elad-hero-families .elad-family-name {
	font-size: var(--fs-small);
	color: var(--ink-2);
}
.ef-foot {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-top: 1.5rem;
}
.ef-px {
	--s: 0.375rem;
	--g: 0.125rem;
}
.elad-hero-families .elad-family-arrow {
	font: var(--fs-body) var(--font-sans);
	color: var(--ink);
	transition:
		transform 0.2s,
		color 0.2s;
}
.elad-hero-families a:hover {
	background: var(--ink);
	color: #fff;
}
.elad-hero-families a:hover::before {
	transform: scaleX(1);
}
.elad-hero-families a:hover .elad-family-code {
	color: #fff;
}
.elad-hero-families a:hover .elad-family-name {
	color: #aec0d8;
}
.elad-hero-families a:hover .elad-family-arrow {
	color: #8cc8ec;
	transform: translate(2px, -2px);
}
/* Home: novità in forma di elenco. */
.hn-list {
	list-style: none;
	margin: -2rem 0 0;
	padding: 0;
}
/* Home, Novità: hover delle righe (sfondo bianco, titolo blu, freccia in riquadro), senza spostare il contenuto */
.hn-list a {
	display: grid;
	grid-template-columns: 10rem 10rem minmax(0, 1fr) auto;
	gap: 0;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
	text-decoration: none;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
	align-items: center;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.hn-list time {
	font: var(--fs-mono) var(--font-mono);
	letter-spacing: 0.032em;
	color: var(--muted);
	text-transform: uppercase;
}
.hn-type {
	font-size: var(--fs-small);
}
.hn-title {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.25;
}
.hn-arrow {
	color: var(--muted);
	font-size: var(--fs-h3);
}
/* Frecce dei pulsanti: stesso glifo (IBM Plex Mono), stesso peso e stessa misura ovunque */
.btn span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono) !important;
	font-weight: 500 !important;
	font-size: var(--fs-small) !important;
	line-height: 1;
	letter-spacing: 0 !important;
	text-transform: uppercase;
}
.elad-hero-link span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono);
	font-weight: 500;
	font-size: var(--fs-small);
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
.elad-hero-link:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.elad-hero-link:focus-visible {
	outline: 2px solid var(--blue) !important;
	outline-offset: 3px;
}
/* Palette ELAD: blu #409ed8, navy #091f3d, bianco, grigio azzurro. Bottoni sempre pieni. */
.btn:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
	color: #fff !important;
}
.elad-hero .elad-hero-link,
body .fullscreen-hero .hero-cats-head a.text-link:hover,
.hcx--light .hcx-band .text-link {
	background: #fff !important;
	border-color: #fff !important;
	color: var(--ink) !important;
}
.elad-hero .elad-hero-link:hover,
.elad-hero .btn:hover,
.hcx--light .hcx-band .text-link:hover {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
/* Tipografia del testo corrente: un solo corpo per i paragrafi, interlinea più compatta. */
body p:not(.elad-hero-intro, .elad-hero-description, .history-detail p) {
	font-size: var(--fs-body) !important;
	line-height: var(--lh-text) !important;
}
/* Home: fascia "Categorie prodotti" prima dei bottoni delle macrocategorie (blu scuro, padding uguale sopra e sotto). */
body[data-page="home"] .hero-cats-head {
	margin: 0;
	padding: 3rem var(--gutter);
	color: #fff;
	border-bottom: 0;
	align-items: center;
	scroll-margin-top: var(--chrome-h, 7rem);
}
body[data-page="home"] .hero-cats-head h2,
.hcx--light .hcx-band h2 {
	margin: 0;
	color: #fff;
}
/* Riquadri categorie senza riga superiore: la sigla parte dal bordo del padding. */
body[data-page="home"] .elad-hero-families .elad-family-code {
	margin: 0 0 0.25rem;
}
/* Home: immagine delle categorie sempre quadrata e a filo della card: il margine negativo è uguale al padding laterale della card */
.elad-hero-families .elad-family-img {
	display: block;
	overflow: hidden;
	background: var(--bg-dark);
	width: auto;
	margin: 0 -1.5rem;
	flex: none;
	aspect-ratio: 1 / 1;
	height: auto;
}
.elad-hero-families .elad-family-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.elad-hero-families a:hover .elad-family-img img {
	transform: scale(1.04);
}
.elad-hero-families .elad-family-img + .elad-family-code {
	margin-top: 1.25rem !important;
}
.hero-cats-head {
	background: var(--blue) !important;
}
body .fullscreen-hero .hero-cats-head a.text-link {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
/* "Acquire excellence": excellence in corsivo, spaziatura più stretta (hero e footer) */
#hero-title {
	letter-spacing: -0.075em;
}
#hero-title span {
	font-style: italic;
	letter-spacing: -0.075em;
	padding-right: 0.06em;
}
.hn-list .hn-title {
	transition: color 0.2s;
}
.hn-list .hn-arrow {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid transparent;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s,
		transform 0.2s;
}
.hn-list a:hover {
	background: #fff !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}
.hn-list a:hover .hn-title {
	color: var(--deep);
}
.hn-list a:hover .hn-arrow {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
	transform: none;
}
.hcx .hcx-sub {
	font-weight: 500;
}
/* Capacità interne: di nuovo spazio tra le card */
.hcx .hcx-card {
	color: var(--ink);
}
.hcx .hcx-card figure {
	background: var(--bg-dark);
}
.hcx .hcx-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.hcx .hcx-card h4 {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--line);
}
.hcx .hcx-card p {
	margin: 0;
}
/* Home, lista novità: categoria come etichetta */
.hn-list .hn-type {
	justify-self: start;
	padding: 0.375rem 0.625rem;
	background: var(--pale);
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	text-transform: uppercase;
	color: var(--deep);
	transition:
		background-color 0.2s,
		color 0.2s;
}
.hn-list a:hover .hn-type {
	background: var(--deep);
	color: #fff;
}
/* Sviluppo integrato e RF Lab come card separate con pulsante evidente */
.hcx .hcx-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	background: none;
	border: 0;
}
/* "Capacità interne" dentro "Prodotti su misura e servizi" (fondo chiaro) */
.hcx--light .hcx-caps {
	padding-top: 2.5rem;
	border-top: 1px solid var(--line);
}
/* Capacità interne: senza box, tessere fotografiche come le card sopra, titolo a sinistra */
.hcx .hcx-split .hcx-caps {
	grid-column: 1 / -1;
	position: relative;
	z-index: 0;
	margin: 1.5rem 0 0;
	padding: 0;
	background: none;
	border: 0;
}
/* Capacità interne: tessere larghe su due colonne come le card sopra, la terza a tutta larghezza */
.hcx .hcx-split .hcx-sub {
	display: flex;
	align-items: flex-start;
	align-self: start;
	margin: 0;
	border-top: 2px solid var(--ink);
}
.hcx .hcx-split .hcx-card {
	grid-template-columns: 5.5rem minmax(0, 1fr);
	align-items: start;
	flex-direction: column;
	gap: 0;
}
.hcx .hcx-split .hcx-card + .hcx-card {
	border-left: 1px solid var(--line);
}
.hcx .hcx-split .hcx-card h4 {
	padding: 0;
	border: 0;
	font-weight: 500;
	margin-bottom: 0.625rem;
	transition: color 0.2s;
}
/* Capacità interne: card separate come quelle sopra, titolo sul fondo della pagina */
.hcx .hcx-split .hcx-card,
.hcx .hcx-split .hcx-card + .hcx-card {
	transition: border-color 0.25s;
}
.hcx .hcx-split .hcx-card:hover {
	border-color: var(--blue) !important;
}
.hcx .hcx-split .hcx-card figure {
	overflow: hidden;
	position: absolute;
	inset: 0;
	width: 100%;
	aspect-ratio: auto;
	margin: 0;
}
/* "Scopri i servizi": fascia come "Categorie prodotti" (titolo h2 a sinistra, pulsante a destra), a tutta larghezza */
.hcx--light .hcx-band {
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	width: 100vw;
	background: var(--ink);
	color: #fff;
}
body[data-page="home"] .hcx--light .section-title.hcx-band {
	align-items: center;
	margin: 4rem 0 0 calc(50% - 50vw);
	padding: 3rem calc(50vw - 50%);
	border: 0;
}
.hcx .hcx-split .hcx-card figure::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #091f3d00 30%, #091f3dd9 75%, var(--ink) 100%);
}
.hcx .hcx-split .hcx-card:hover img {
	transform: scale(1.05);
}
.hcx .hcx-split .hcx-card__txt {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	padding: 2.5rem !important;
}
.hcx .hcx-split .hcx-card h4,
.hcx .hcx-split .hcx-card:hover h4 {
	margin: 0 0 0.5rem;
	color: #fff !important;
}
.hcx .hcx-split .hcx-card p {
	color: #c9d6e4 !important;
	max-width: 30rem;
}
.hcx .hcx-split .hcx-card:nth-child(3) {
	grid-column: auto;
}
.hcx .hcx-caps__intro {
	flex-direction: column;
}
.hcx .hcx-caps__intro .hcx-sub {
	padding: 0;
	border: 0;
}
.hcx .hcx-caps__intro p {
	margin: 0;
	color: var(--ink-2);
}
.hcx .hcx-split .hcx-caps .hcx-caps__intro {
	justify-content: flex-start;
	background: none;
	border-top: 2px solid var(--ink);
}
/* 2.24.4: titolo della sezione a misura h2, titoli delle card più grandi */
.hcx .hcx-split--caps .hcx-caps__intro .hcx-sub {
	color: var(--ink);
	font-size: var(--fs-h2);
	line-height: 1.05;
	letter-spacing: -0.04em;
	text-wrap: balance;
}
.hcx .hcx-split--caps .hcx-card,
.hcx .hcx-split--caps .hcx-card + .hcx-card,
.hcx .hcx-split--caps .hcx-card:hover {
	aspect-ratio: 1 / 1 !important;
	min-height: 0 !important;
	height: auto;
}
.hcx .hcx-split--caps .hcx-card__txt h4,
.hcx .hcx-split .hcx-card h4 {
	font-size: var(--fs-title);
	line-height: 1.1;
	letter-spacing: -0.03em;
}
.hcx .hcx-split--caps .hcx-caps .hcx-caps__intro {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	align-items: end;
	gap: 1rem 3rem;
	padding: 1.75rem 0 0 !important;
	margin-bottom: 3rem;
}
.hcx .hcx-split--caps .hcx-caps__intro p {
	max-width: 30rem;
	justify-self: end;
}
/* Card attaccate alla fascia "Scopri i servizi" su desktop, staccate su mobile */
body[data-page="home"] .hcx--light .hcx-split--caps + .section-title.hcx-band {
	margin-top: 0 !important;
}
@media (min-width: 992px) {
	.elad-hero-families a,
	.elad-hero-families a:first-child {
		padding: 1.5rem 1.5rem 1.25rem !important;
	}
	.elad-hero-families a:first-child {
		border-left: 1px solid var(--line);
	}
	.elad-hero-families a:last-child {
		border-right: 1px solid var(--line);
	}
	body[data-page="home"] .elad-hero-families a {
		padding-bottom: 1.5rem !important;
	}
}
@media (min-width: 768px) and (max-height: 800px) {
	.fullscreen-hero .elad-hero-content {
		padding-top: 7.5rem;
		padding-bottom: 5rem;
	}
	.fullscreen-hero .elad-hero-content h1 {
		font-size: var(--fs-hero);
	}
}
@media (max-width: 991.98px) {
	.elad-hero-families a,
	.elad-hero-families a:first-child {
		padding: 1.25rem var(--gutter) !important;
	}
	.elad-hero-families .elad-family-img {
		margin: 0 calc(-1 * var(--gutter));
	}
}
.fullscreen-hero .elad-hero-families a:first-child,
.fullscreen-hero .elad-hero-families a {
	padding-top: 0 !important;
}
@media (max-width: 991.98px) {
	.elad-hero-families a:nth-child(3) {
		border-left: 0;
	}
	.elad-hero-families a:nth-child(n + 3) {
		border-top: 1px solid var(--line);
	}
	body[data-page="home"] .hero-cats-head {
		padding: 2.25rem var(--gutter);
		align-items: flex-start;
	}
	.hcx .hcx-split {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}
}
.hcx .hcx-split .hcx-cards {
	background: none;
}
/* Capacità interne: griglia 2x2, la prima cella è titolo + testo, poi le tre tessere */
.hcx .hcx-split .hcx-caps {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}
@media (max-width: 991.98px) {
	.hcx .hcx-split .hcx-card + .hcx-card {
		border-left: 0;
		border-top: 1px solid var(--line);
	}
}
.hcx .hcx-split .hcx-card,
.hcx .hcx-split .hcx-card + .hcx-card,
.hcx .hcx-split .hcx-card:hover {
	position: relative;
	display: block;
	padding: 0;
	background: var(--ink) !important;
	border: 0 !important;
	overflow: hidden;
}
/* Capacità interne come base delle due card: pannello bianco che parte da dietro le card */
.hcx .hcx-split {
	row-gap: 0;
}
@media (max-width: 991.98px) {
	.hcx .hcx-split {
		row-gap: 1rem;
	}
	/* "Scopri i servizi" allineata a sinistra come "Categorie prodotti" */
	body[data-page="home"] .hcx--light .section-title.hcx-band {
		padding-top: 2.25rem;
		padding-bottom: 2.25rem;
		align-items: flex-start;
		text-align: left;
	}
	.hcx .hcx-split .hcx-caps {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}
}
.hcx .hcx-split--caps .hcx-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem !important;
}
/* Card più piccole (sotto i 1200px): meno spazio intorno al testo */
@media (max-width: 1199.98px) {
	.hcx .hcx-split .hcx-card__txt {
		padding: 1.5rem !important;
	}
}
/* 2.24.7: di nuovo titolo sopra e tre card quadrate in fila */
/* Home, capacità interne: tolti "Prodotti su misura e servizi" e le due card; titolo + 3 card quadrate */
.hcx .hcx-split--caps .hcx-caps {
	display: block;
	grid-auto-rows: auto;
	margin-top: 0;
}
@media (max-width: 991.98px) {
	/* Novità: pulsante sotto l'elenco, notizie in riquadri con padding */
	body[data-page="home"] .home-news {
		display: flex;
		flex-direction: column;
	}
	body[data-page="home"] .home-news > .section-title {
		display: contents;
	}
	body[data-page="home"] .home-news > .section-title > a.text-link {
		order: 3;
		align-self: flex-start;
		margin-top: 1.5rem;
	}
	body[data-page="home"] .home-news .hn-list {
		order: 2;
		margin: 1.5rem 0 0;
		display: grid;
		gap: 0.75rem;
	}
	body[data-page="home"] .home-news .hn-list a {
		padding: 1.25rem !important;
		background: #fff;
		border: 1px solid var(--line);
	}
	body[data-page="home"] .home-news .hn-list a:hover {
		padding: 1.25rem !important;
		border-color: var(--blue);
	}
	.hcx .hcx-split--caps .hcx-card,
	.hcx .hcx-split--caps .hcx-card + .hcx-card,
	.hcx .hcx-split--caps .hcx-card:hover {
		aspect-ratio: 4 / 3 !important;
	}
	.hcx .hcx-split--caps .hcx-caps .hcx-caps__intro {
		grid-template-columns: minmax(0, 1fr);
		margin-bottom: 1.5rem;
	}
	.hcx .hcx-split--caps .hcx-caps__intro p {
		justify-self: start;
	}
	.hcx .hcx-split--caps .hcx-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem !important;
	}
}
.hcx .hcx-split--caps .hcx-cards {
	grid-auto-rows: auto;
}
@media (max-width: 991.98px) {
	body[data-page="home"] .hcx--light .hcx-split--caps + .section-title.hcx-band {
		margin-top: 3rem !important;
	}
}
@media (max-width: 767.98px) {
	.hn-list a {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 0.5rem 1rem;
	}
	.hn-title {
		grid-column: 1/3;
		grid-row: 2;
	}
	.hn-arrow {
		grid-row: 1/3;
		grid-column: 3;
		align-self: center;
	}
	.elad-hero {
		padding-top: 0.75rem;
		padding-bottom: 1rem;
	}
}
.fullscreen-hero {
	max-width: none;
	padding: 0;
	margin: 0;
}
@media (max-width: 767.98px) {
	.elad-hero-content {
		max-width: none;
	}
	.elad-hero-content h1 {
		margin-left: -2px;
	}
	.elad-hero-intro {
		font-size: var(--fs-h3);
	}
	.elad-hero-description {
		font-size: var(--fs-small);
		margin-top: 0.75rem;
	}
	.elad-hero-actions {
		gap: 1rem;
		flex-wrap: wrap;
		margin-top: 1.5rem;
	}
	.elad-hero-actions .btn,
	.elad-hero-link {
		font-size: var(--fs-small);
	}
}
/* Home: immagine delle categorie a filo della card, fascia "Categorie prodotti" in blu ELAD */
.elad-hero-families a {
	padding-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
	.elad-family-name {
		line-height: var(--lh-text);
	}
	.fullscreen-hero .elad-hero-content {
		padding: 2rem;
	}
}
.fullscreen-hero .elad-hero-content {
	width: 100%;
	margin: 0 auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
@media (max-width: 767.98px) {
	.fullscreen-hero .elad-hero-content h1 {
		font-size: var(--fs-hero);
	}
	.fullscreen-hero .video-stage::before {
		background: linear-gradient(90deg, rgba(9, 31, 61, 0.9), rgba(9, 31, 61, 0.42)),
			linear-gradient(0deg, rgba(9, 31, 61, 0.6), transparent 40%);
	}
	.fullscreen-hero .elad-hero-description {
		max-width: 310px;
	}
	.fullscreen-hero .elad-hero-families {
		margin-top: 1rem;
	}
}
/* Home: barra famiglie sotto la hero. */
.fullscreen-hero .elad-hero-families {
	width: 100%;
	max-width: none;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 0;
	border-bottom: 1px solid var(--line);
	overflow: visible;
}
.fullscreen-hero .elad-hero-families {
	background: #fff;
}
@media (min-width: 992px) {
	.fullscreen-hero .elad-hero-families {
		padding: 0 var(--gutter);
		background: #fff;
	}
}
@media (max-width: 991.98px) {
	.fullscreen-hero .elad-hero-families {
		grid-template-columns: 1fr 1fr;
		width: 100%;
	}
}
@media (max-width: 767.98px) {
	.hero-video-bottom {
		bottom: 1rem;
	}
}
.hero-video-bottom {
	left: var(--gutter);
}
@media (max-width: 575.98px) {
	.elad-hero-families .elad-family-name {
		font-size: var(--fs-xs);
		min-height: 2.4em;
	}
}

/* ==========================================================================
   14. Catalogo e categorie
   ========================================================================== */

/* Catalogo: category tabs, subcategory chips, indexed product cards. */
.catalog-section {
	padding-top: 1rem;
	--cl: var(--line);
}
.filter-pills {
	flex-wrap: wrap;
}
.filter-pills button {
	font-size: var(--fs-small);
}
.filter-pills button[aria-pressed="true"] {
	background: var(--blue);
	color: #fff;
	border-color: var(--blue);
}
.filter-pills button[aria-pressed="true"] b,
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"]) > b,
.cat-tabs :is(button, a):hover::after,
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"])::after,
.fam-hero h1 {
	color: #fff;
}
/* Griglia delle card prodotto fuori dal catalogo (prodotti citati nelle notizie, in mostra alle fiere): tre colonne. */
.catalog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}
.results-bar {
	gap: 1rem;
	margin-bottom: 1rem;
}
.cat-tabs :is(button, a):first-child {
	border-left: 0;
}
.cat-tabs :is(button, a) > span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--deep);
}
.cat-tabs :is(button, a) > b {
	letter-spacing: -0.01em;
	font-size: var(--fs-body);
	font-weight: 500;
	color: var(--ink);
}
.catalog-section .results-bar {
	display: flex;
	justify-content: space-between;
	padding: 1.5rem 0 0.75rem;
	margin: 0;
	border: 0;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
/* Catalogo: card di famiglia separate, con bordo, codice e numero di codici in alto, due righe di descrizione. */
.catalog-section .catalog-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	border: 0;
}
/* Catalogo: card cliccabili in modo evidente. */
.catalog-grid .product-card {
	border-right: 1px solid var(--cl);
	border-bottom: 1px solid var(--cl);
	display: flex;
	flex-direction: column;
	position: relative;
	cursor: pointer;
}
.catalog-grid .product-card > a {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.catalog-grid .card-head {
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.096em;
	text-transform: uppercase;
	color: var(--ink-2);
	margin-bottom: 0.75rem;
	min-height: 1.75rem;
}
/* Catalogo: stato in alto a destra (al posto della freccia), Info → in basso a sinistra. */
.catalog-grid .product-picture {
	margin: 0;
	padding: 0;
	display: grid;
	place-items: center;
}
.catalog-grid .product-picture img {
	padding: 0;
	transition: transform 0.3s;
}
.catalog-grid .product-card:hover .product-picture img {
	transform: scale(1.03);
}
.catalog-grid .product-copy {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.catalog-grid .save-product {
	top: auto;
	bottom: 21px;
	right: 22px;
	font-size: var(--fs-small);
}
/* Catalogo: caricamento progressivo. */
.load-more {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 2rem 0 0.5rem;
}
.load-more > span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--muted);
}
.catalog-grid .product-card:not([hidden]) {
	animation: card-in 0.35s ease both;
}
/* Catalogo: nessun risultato. */
.empty-results:not([hidden]) {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 3rem;
	align-items: center;
	padding: 3rem;
	border: 1px solid var(--line);
	border-top: 0;
	background: var(--bg);
}
.empty-results .px {
	--s: 0.75rem;
	--g: 0.25rem;
}
.empty-results h3 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.035em;
	margin: 1rem 0 0.5rem;
}
.empty-results p {
	max-width: 56ch;
	margin: 0 0 1.5rem;
	color: var(--ink-2);
}
.catalog-grid .card-actions .save-product {
	position: static;
	display: inline-grid;
	place-items: center;
	min-width: 1.75rem;
	border: 1px solid #9fabba;
	text-transform: uppercase;
	line-height: 1;
	transition:
		background 0.15s,
		border-color 0.15s,
		color 0.15s;
	padding: 0;
	font: var(--fs-small) / 1 var(--font-sans);
	letter-spacing: 0;
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}
/* Card bianche, distinte dallo sfondo pagina. */
.cat-tabs :is(button, a)::after {
	position: absolute;
	display: grid;
	place-items: center;
	font: var(--fs-small) var(--font-sans);
	color: var(--ink);
	transition:
		background-color 0.2s,
		border-color 0.2s,
		color 0.2s,
		transform 0.2s;
}
.cat-tabs :is(button, a):hover {
	background: var(--pale);
	box-shadow: inset 0 -3px 0 var(--blue);
}
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"]) {
	color: #fff;
	background: var(--ink);
	box-shadow: inset 0 -3px 0 var(--blue);
}
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"]) > span {
	color: #8cc8ec;
}
.cat-tabs :is(button, a):focus-visible,
.catalog-grid .product-card:focus-within {
	outline: 2px solid var(--blue);
	outline-offset: -2px;
}
/* Catalogo: Info blu scuro, wishlist azzurro. */
.catalog-grid .card-actions a.card-btn {
	border-color: var(--ink);
	color: #fff;
	margin-right: auto;
	gap: 0.5rem;
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}
.catalog-grid .card-actions .save-product:hover {
	background: var(--deep);
	border-color: var(--deep);
	color: #fff;
}
.catalog-grid .card-actions .save-product[aria-pressed="true"] {
	background: #fff;
	border-color: var(--blue);
	color: var(--blue);
}
.catalog-grid .card-actions .save-product[aria-pressed="true"]:hover {
	background: var(--pale);
	border-color: var(--deep);
	color: var(--deep);
}
.catalog-grid .product-card:hover .card-actions a.card-btn:hover {
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}
.catalog-grid .card-actions .save-product .ico-heart {
	width: 13px;
	height: 12px;
}
.catalog-grid .product-card > a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.catalog-grid .product-card .card-actions {
	z-index: 2;
	position: static;
}
.catalog-grid .product-card:hover .card-head b {
	background: #fff;
	color: var(--ink);
	transform: none;
}
.catalog-grid .product-card:hover .product-copy h3 {
	text-decoration: underline;
	text-decoration-color: var(--blue);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.25rem;
}
.catalog-grid .card-actions {
	justify-content: flex-start;
	gap: 0.375rem;
}
.catalog-grid .card-actions a.card-btn span {
	display: inline-block;
	transition: transform 0.2s;
}
.catalog-grid .product-card:hover .card-actions a.card-btn span {
	transform: translateX(3px);
}
.catalog-grid .card-actions > * {
	z-index: 2;
}
/* Filtri catalogo come link (nel sito statico erano bottoni). */
.cat-tabs a {
	text-decoration: none;
}
.catalog-section .catalog-grid,
.catalog-section .empty-results {
	transition: opacity 0.15s;
}
.catalog-section.is-loading .catalog-grid,
.catalog-section.is-loading .empty-results {
	opacity: 0.45;
	pointer-events: none;
}
/* Catalogo: codice prodotto in evidenza come etichetta. */
.catalog-grid .card-head span {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.375rem 0.625rem;
	border: 1px solid var(--line-2);
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.08em;
	transition:
		background-color 0.2s,
		border-color 0.2s,
		color 0.2s;
	text-transform: uppercase;
}
.catalog-grid .card-head span::before {
	content: "";
	width: 0.4375rem;
	height: 0.4375rem;
	background: var(--blue);
	flex: none;
}
.catalog-grid .family-card {
	padding: 0;
	background: #fff;
	border: 1px solid var(--line);
	transition:
		background-color 0.25s,
		border-color 0.25s,
		box-shadow 0.25s,
		transform 0.25s;
}
/* Hover: la card resta chiara, si solleva, bordo e freccia blu, titolo sottolineato. */
.catalog-grid .family-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 28px -18px #091f3d80;
	background: #fff;
	color: inherit;
	border-color: var(--blue);
}
.catalog-grid .family-card .card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	position: absolute;
	z-index: 1;
	top: 0.875rem;
	left: 0.875rem;
	right: 0.875rem;
	margin: 0;
}
/* Card del catalogo: più respiro tra i testi e linea prima della descrizione */
.catalog-grid .family-card .card-kicker {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--deep);
	margin-bottom: 0.625rem;
}
.catalog-grid .family-card .product-copy h3 {
	font-size: var(--fs-h3);
	letter-spacing: -0.025em;
}
.catalog-grid .family-card .product-copy h3 + small {
	margin-bottom: 0;
	margin-top: 0.625rem;
}
.catalog-grid .family-card .card-desc {
	font-size: var(--fs-small) !important;
	color: var(--ink-2);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.catalog-grid .family-card .card-actions a.card-btn {
	justify-content: space-between;
	margin: 0;
}
.catalog-grid .family-card .card-head > span {
	flex: none;
	background: #fff !important;
	border-color: #fff !important;
	color: var(--ink) !important;
}
/* Card di famiglia valorizzate: testata blu scuro con codice e numero di codici, corpo bianco, freccia in riquadro. */
.catalog-grid .family-card > a {
	padding: 0 !important;
}
.catalog-grid .family-card .product-picture {
	position: relative;
	aspect-ratio: 16/10;
	background: linear-gradient(135deg, #0f2d55 0%, var(--ink) 70%);
}
.catalog-grid .family-card .product-picture img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	mix-blend-mode: normal;
	object-fit: cover;
	object-position: center;
}
.catalog-grid .family-card .product-placeholder {
	min-height: 0;
	padding-top: 2.25rem;
	background: transparent;
	color: var(--blue);
	transition: transform 0.4s;
}
.catalog-grid .family-card .product-placeholder .px {
	--s: 0.875rem;
	--g: 0.25rem;
	color: var(--blue);
}
.catalog-grid .family-card:hover .product-placeholder {
	transform: scale(1.08);
}
.catalog-grid .family-card .product-copy {
	padding: 1.25rem 1.25rem 1rem;
}
/* Card di famiglia: "Apri la categoria" in una fascia blu scuro a tutta larghezza in fondo. */
.catalog-grid .family-card .card-actions {
	margin: auto 0 0;
	padding: 0;
	border: 0;
}
.catalog-grid .family-card .card-actions a.card-go {
	width: 100%;
	height: auto;
	justify-content: space-between;
	border: 0 !important;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	min-height: 3.25rem;
	padding: 0 1.25rem !important;
	background: var(--ink) !important;
	color: #fff !important;
	transition: background-color 0.2s;
}
.catalog-grid .family-card .card-actions a.card-go span {
	display: grid;
	place-items: center;
	color: #fff;
	font: var(--fs-body) var(--font-sans);
	transform: none !important;
	width: auto;
	height: auto;
	background: transparent !important;
	font-size: var(--fs-lead);
	transition: transform 0.2s !important;
}
.catalog-grid .family-card:hover :is(h3, .product-copy small) {
	color: var(--ink);
}
.catalog-grid .family-card:hover .product-copy small,
.catalog-grid .family-card:hover .card-desc,
.catalog-grid .product-card--item .card-desc {
	color: var(--ink-2);
}
.catalog-grid .family-card:hover .card-kicker {
	color: var(--deep);
}
.catalog-grid .family-card:hover .card-actions {
	border-color: var(--line);
}
.catalog-grid .family-card:hover .card-actions a.card-go span {
	transform: translateX(4px) !important;
}
.catalog-grid .family-card:hover .card-actions a.card-go {
	background: var(--blue) !important;
}
/* Testate categoria/prodotto: immagine che riempie il riquadro dentro i limiti del sito, fondo destro sempre blu scuro */
.fam-hero {
	position: relative;
	color: #fff;
	padding: 0;
	background: linear-gradient(90deg, #0b2546 0, var(--ink) 50%, #0f2d55 50%);
}
/* Torna al riquadro immagine a destra (niente fascia sopra). */
.fam-hero__in {
	position: relative;
	display: grid;
	padding-top: 0;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	min-height: 30rem;
}
.fam-hero__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-bottom: 1.5rem;
}
.fam-hero__tags span {
	display: inline-flex;
	align-items: center;
	height: 1.875rem;
	padding: 0 0.75rem;
	border: 1px solid #ffffff40;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #c4d2e4;
}
.fam-hero__tags .fam-hero__code,
.fam-btn:hover,
.fam-btn--primary:hover {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
}
.fam-hero p {
	margin: 0;
	color: #c4d2e4;
}
.fam-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 2rem;
}
.fam-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.875rem;
	min-height: 3rem;
	padding: 0 1.25rem;
	border: 1px solid #ffffff66;
	color: #fff;
	text-decoration: none;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition:
		background-color 0.2s,
		border-color 0.2s,
		color 0.2s;
}
.fam-btn--primary {
	background: var(--blue);
	border-color: var(--blue);
}
/* Testata di macro e sezioni (fam-hero--cat): descrizione visibile, tag in alto. */
.fam-hero--cat .fam-hero__tags:empty {
	display: none;
}
.fam-hero--cat p {
	margin-top: 0.25rem;
}
.catalog-section#catalogo {
	scroll-margin-top: var(--chrome-h, 7rem);
}
.fam-hero--cat + .catalog-section {
	padding-top: 3rem;
}
.fam-hero__abbr {
	color: var(--blue);
}
/* Scheda famiglia: descrizione con attacco in evidenza. */
.fam-desc {
	max-width: 62rem;
	padding-left: 2rem;
	border-left: 3px solid var(--blue);
}
/* Specifiche: tabelle più leggere, titolo a etichetta. */
.fam-specs .elad-table {
	margin-bottom: 1.5rem;
}
.fam-specs .elad-table:last-child {
	margin-bottom: 0;
}
.fam-specs .elad-table__title {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.75rem;
	color: var(--ink);
}
.fam-specs .elad-table__title::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	background: var(--blue);
}
.fam-specs .elad-table__scroll,
.elad-table--kv .elad-table__scroll,
.elad-table--kv:not(:has(.elad-table__scroll)) {
	border: 1px solid var(--line);
}
.fam-specs .elad-table thead th {
	background: var(--bg);
	color: var(--ink-2);
	border-bottom: 1px solid var(--line);
}
.fam-specs .elad-table tbody tr:nth-child(even) {
	background: transparent;
}
.fam-specs .elad-table tbody tr:hover {
	background: var(--bg-light);
}
.fam-specs .elad-table tbody th {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink);
}
.code-row .save-product[aria-pressed="true"] {
	background: var(--blue);
	color: #fff;
}
.fam-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	background: transparent;
	padding: 0;
	object-fit: cover;
	object-position: center;
}
.fam-hero__media--img {
	border-color: transparent;
}
.fam-hero__txt {
	align-self: center;
	padding: 4rem 3rem 4rem 0;
}
.fam-hero__media {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: auto;
	min-height: 100%;
	border: 0;
}
.catalog-grid .family-card .product-picture,
.fam-hero,
.fam-hero__media {
	overflow: hidden;
}
/* Titolo della testata categorie/famiglie uguale agli h1 delle altre pagine (.page-heading) */
body main .fam-hero h1 {
	margin: 0 0 2rem;
	font-size: var(--fs-display);
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.045em;
}
body main .fam-hero__txt > p {
	font-size: var(--fs-lead) !important;
	max-width: 44rem;
}
/* Card prodotto (macrocategorie diverse da DAQ): foto su bianco, azioni apri / shop / cuore */
.catalog-grid .product-card--item .product-picture {
	background: #fff;
	border-bottom: 1px solid var(--line);
}
/* Foto che riempiono il riquadro: card prodotto e galleria del singolo prodotto */
.catalog-grid .product-card--item .product-picture img {
	box-sizing: border-box;
	transition: transform 0.4s;
	object-fit: cover;
	padding: 0;
}
.catalog-grid .product-card--item:hover .product-picture img {
	transform: scale(1.04);
}
.catalog-grid .product-card--item .card-head > span {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
/* Card prodotto: pulsanti attaccati, senza spazio tra loro */
.catalog-grid .product-card--item .card-actions {
	display: flex;
	align-items: stretch;
	gap: 0;
}
.catalog-grid .product-card--item .card-actions a.card-go {
	flex: 1;
	width: auto;
}
.catalog-grid .product-card--item .card-actions a.card-shop {
	width: auto;
	padding: 0 0.75rem;
	background: #23a35a;
	border-color: #23a35a;
}
.catalog-grid .product-card--item .card-actions .save-product {
	width: 2.75rem;
}
.catalog-grid .product-card--item .card-actions a.card-shop,
.catalog-grid .product-card--item .card-actions .save-product {
	height: auto;
	min-height: 2.25rem;
}
.catalog-grid .product-card--item .card-actions > * {
	margin: 0;
}
.fam-hero__media,
.fam-hero__media--img {
	background: #0f2d55 !important;
}
.catalog-grid .product-card .card-desc {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
}
@media (min-width: 992px) {
	.cat-tabs[style*="--n"] {
		grid-template-columns: repeat(var(--n), minmax(0, 1fr));
	}
	.cat-tabs--sections a:nth-child(4n + 1) {
		border-left: 0;
	}
	.cat-tabs--sections a:nth-child(n + 5) {
		border-top: 1px solid var(--cl);
	}
}
@media (max-width: 1199.98px) {
	.catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.catalog-section .catalog-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.catalog-grid {
		gap: 0.75rem;
	}
}
@media (max-width: 991.98px) {
	.cat-tabs :is(button, a):nth-child(4) {
		border-left: 0;
	}
	.cat-tabs :is(button, a):nth-child(n + 4) {
		border-top: 1px solid var(--cl);
	}
	.catalog-section .catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fam-desc {
		padding-left: 1.25rem;
	}
	.fam-hero__in {
		grid-template-columns: 1fr;
		min-height: 0;
		padding-left: 0;
		padding-right: 0 !important;
	}
}
/* Testata a metà esatte dello schermo: sinistra blu, destra colore della foto; contenuti dentro la larghezza massima. */
.fam-hero__in {
	padding-right: var(--gutter);
}
@media (max-width: 991.98px) {
	.fam-hero__txt {
		padding: 2.5rem var(--gutter);
	}
	/* Mobile: riquadro immagine (o pixel segnaposto centrati) a tutta larghezza sopra il testo, testo con spaziatura uniforme */
	.fam-hero__media {
		order: -1;
		position: relative;
		display: grid;
		place-items: center;
		width: 100%;
		height: auto;
		aspect-ratio: 16/10;
		min-height: 0;
		align-self: auto;
	}
	.fam-hero__ph {
		position: absolute;
		inset: 0;
		display: grid;
		place-items: center;
	}
	.fam-hero__txt > :first-child {
		margin-top: 0;
	}
	.fam-hero__txt > :last-child {
		margin-bottom: 0;
	}
	.fam-hero {
		background: var(--ink);
	}
}
@media (max-width: 575.98px) {
	.section {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
}
/* Catalogo: filtri ben distinti e chiaramente cliccabili. */
.cat-tabs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0;
	margin: 0;
	border: 1px solid var(--cl);
	--cl: var(--line-2);
	background: #fff;
	border-color: var(--line-2);
}
@media (min-width: 992px) {
	/* Categoria (es. DAQ): sezioni con lo stesso selettore delle macrocategorie, 4 per riga. */
	.cat-tabs--sections {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
@media (max-width: 991.98px) {
	.cat-tabs {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 575.98px) {
	.filter-pills button,
	.catalog-grid .product-copy small {
		font-size: var(--fs-xs);
	}
}
.cat-tabs :is(button, a) {
	position: relative;
	cursor: pointer;
	background: #fff;
	box-shadow: inset 0 -3px 0 transparent;
	transition:
		background-color 0.2s,
		box-shadow 0.2s,
		color 0.2s;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 1.5rem 1rem;
	min-height: 78px;
	border: 0;
	border-left: 1px solid var(--cl);
	color: var(--ink);
	text-align: left;
}
@media (max-width: 575.98px) {
	.catalog-grid,
	.catalog-section .catalog-grid {
		gap: 0.75rem;
	}
	.catalog-grid .product-copy h3 {
		overflow-wrap: anywhere;
	}
}
.catalog-grid .product-copy h3 {
	font-weight: 500;
	margin: 0;
	min-height: 0;
}
.catalog-grid .product-copy small {
	display: block;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
@media (max-width: 575.98px) {
	.cat-tabs {
		grid-template-columns: 1fr 1fr;
	}
	.cat-tabs :is(button, a) {
		padding: 0.75rem;
		min-height: 0;
		border-left: 1px solid var(--cl);
		border-top: 1px solid var(--cl);
	}
	.cat-tabs :is(button, a):first-child {
		grid-column: 1/-1;
		border-top: 0;
		border-left: 0 !important;
	}
	.cat-tabs :is(button, a):nth-child(even) {
		border-left: 0 !important;
	}
	.catalog-section .results-bar > span:last-child,
	.catalog-grid .family-card .card-desc {
		display: none;
	}
}
.catalog-grid .product-card > a {
	flex: 1;
	padding-bottom: 0;
}
@media (max-width: 575.98px) {
	.catalog-grid .save-product {
		bottom: 15px;
		right: 14px;
	}
	.empty-results:not([hidden]) {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 2rem 1.25rem;
	}
	.empty-results .px {
		--s: 0.5rem;
	}
	.cat-tabs :is(button, a)::after {
		font-size: var(--fs-small);
	}
}
/* Categorie: selettore quadrato tipo radio al posto di freccia/check. */
.cat-tabs :is(button, a)::after,
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"])::after {
	content: "";
	top: 1.25rem;
	right: 1rem;
	width: 1rem;
	height: 1rem;
	border: 1.5px solid #9fabba;
	background: #fff;
	box-shadow: none;
	transform: none;
}
.cat-tabs :is(button, a):hover::after {
	border-color: var(--blue);
	background: #fff;
	box-shadow:
		inset 0 0 0 3px #fff,
		inset 0 0 0 10px #c9e4f5;
}
.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"])::after {
	border-color: var(--blue);
	background: var(--blue);
	box-shadow: inset 0 0 0 3px var(--ink);
}
@media (max-width: 575.98px) {
	.cat-tabs :is(button, a)::after,
	.cat-tabs :is(button[aria-pressed="true"], a[aria-current="page"])::after {
		top: 0.75rem;
		right: 0.75rem;
		width: 0.875rem;
		height: 0.875rem;
	}
	.catalog-grid .family-card .product-copy {
		padding: 0.875rem 0.875rem 0.75rem;
	}
	.catalog-grid .family-card .product-copy h3 {
		font-size: var(--fs-h3);
	}
	.catalog-grid .family-card .card-head {
		top: 0.5rem;
		left: 0.5rem;
		right: 0.5rem;
	}
	.catalog-grid .family-card .card-actions a.card-go {
		min-height: 2.75rem;
		padding: 0 0.875rem !important;
	}
	.fam-btn {
		width: 100%;
		justify-content: space-between;
	}
	.catalog-grid .family-card .product-placeholder .px {
		--s: 0.5rem;
		--g: 0.1875rem;
	}
	.fam-hero__media {
		transition: background-color 0.2s;
	}
	body main .fam-hero h1 {
		margin-bottom: 1.5rem;
	}
	body main .fam-hero__txt > p {
		font-size: var(--fs-body) !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	.catalog-grid .product-card:not([hidden]) {
		animation: none;
	}
}
@keyframes card-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}

/* ==========================================================================
   15. Scheda prodotto
   ========================================================================== */

/* Scheda prodotto: il riquadro hero rispetta la larghezza massima (allineato al gutter come il resto). */
.pd-hero {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	background: var(--bg);
	margin-left: var(--gutter);
	margin-right: var(--gutter);
}
.pd-media {
	position: relative;
	place-items: center;
	background: var(--bg-dark);
	border-right: 1px solid var(--line);
}
.pd-media img {
	max-width: 440px;
	aspect-ratio: 1;
	mix-blend-mode: multiply;
}
.pd-tag {
	position: absolute;
	top: 22px;
	left: 24px;
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	color: var(--ink-2);
	border: 1px solid var(--line-2);
	background: var(--bg);
	padding: 0.25rem 0.5rem;
	text-transform: uppercase;
}
.pd-info,
.pd-media--gallery {
	display: flex;
	flex-direction: column;
}
.pd-meta,
.pd-facts dt,
.pd-pager small {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--muted);
}
.pd-info h1 {
	font-size: var(--fs-h2);
	font-weight: 500;
	line-height: 1.05;
	margin: 1rem 0;
}
.pd-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin-bottom: 1.5rem;
}
.pd-tags span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.096em;
	color: var(--ink-2);
	border: 1px solid var(--line-2);
	padding: 0.25rem 0.5rem;
}
.pd-tags span + span {
	color: var(--muted);
	margin-left: 0.25rem;
}
.pd-info > p {
	color: var(--ink-2);
	max-width: 56ch;
	margin: 0;
}
.pd-foot {
	margin-top: auto;
	padding-top: 1.5rem;
}
.pd-facts {
	display: grid;
	margin: 0 0 1.5rem;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	grid-template-columns: 1fr;
}
.pd-facts div {
	padding: 0.75rem 0;
}
.pd-facts div + div {
	padding-left: 1rem;
	border-left: 1px solid var(--line);
}
.pd-facts dd {
	margin: 0.25rem 0 0;
	font-size: var(--fs-small);
}
.pd-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.pd-btn-dark:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
	color: #fff !important;
}
.pd-row {
	display: grid;
	padding-top: 3rem;
	padding-bottom: 4rem;
	border-top: 1px solid var(--line);
}
.pd-label h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.035em;
	margin: 0.75rem 0;
}
.pd-label p {
	color: var(--ink-2);
	max-width: 34ch;
}
.pd-lead {
	letter-spacing: -0.01em;
	color: var(--ink);
	margin: 0;
}
.pd-band {
	background: var(--bg-dark);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.pd-band .pd-row,
.pd-band + .pd-row,
.pd-jump + .pd-row {
	border-top: 0;
}
.pd-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--line);
	background: var(--bg);
}
.pd-list li {
	display: grid;
	grid-template-columns: 70px 1fr;
	align-items: center;
	min-height: 52px;
	padding: 0 1rem;
	font-size: var(--fs-small);
	border-bottom: 1px solid var(--line);
}
.pd-list li:last-child {
	border-bottom: 0;
}
.pd-list li > span {
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.096em;
	color: var(--muted);
	text-transform: uppercase;
}
.pd-docs li {
	display: block;
	padding: 0;
}
.pd-docs a {
	display: grid;
	grid-template-columns: 1fr auto 24px;
	grid-template-rows: auto auto;
	align-items: center;
	gap: 0.25rem 1rem;
	padding: 1rem;
	transition: background 0.15s;
}
.pd-docs a:hover,
.pd-list,
.pd-pager {
	background: #fff;
}
.pd-docs b {
	font-weight: 500;
	font-size: var(--fs-small);
}
.pd-docs small {
	grid-column: 1;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.096em;
	color: var(--muted);
}
.pd-docs em {
	grid-column: 2;
	grid-row: 1/3;
	font: normal var(--fs-label) var(--font-mono);
	letter-spacing: 0.096em;
	color: var(--muted);
	border: 1px solid var(--line-2);
	padding: 0.25rem 0.5rem;
	text-transform: uppercase;
}
.pd-docs i {
	grid-column: 3;
	grid-row: 1/3;
	font-style: normal;
	color: var(--ink);
}
.pd-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
/* Scheda prodotto: precedente/successivo allineati al gutter del contenuto. */
.pd-pager a {
	display: grid;
	gap: 0.25rem;
	transition: background 0.15s;
	padding: 1.5rem var(--gutter);
}
.pd-pager a:hover {
	background: var(--bg-dark);
}
.pd-pager .next {
	text-align: right;
	border-left: 1px solid var(--line);
	grid-column: 2;
	padding-left: 1.5rem;
}
.pd-pager b {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.02em;
}
.pd-pager a > span {
	font-size: var(--fs-small);
	color: var(--muted);
}
.pd-btn {
	gap: 0.75rem !important;
	box-sizing: border-box;
	white-space: nowrap;
	transform: none;
}
.pd-btn > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
.pd-btn:hover > span {
	transform: translateX(3px);
}
.pd-btn:not(.pd-btn-dark):hover {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.pd-info > .px--heading {
	top: 2.25rem;
	right: 2.5rem;
	--s: 0.5rem;
	--g: 0.1875rem;
}
.pd-pager .prev {
	padding-right: 1.5rem;
}
/* Fascia "vai a" (pd-jump): banda navy con link in evidenza. */
.pd-jump {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	margin-top: 0;
	padding: 0 var(--gutter);
	background: var(--ink);
	border-top: 0;
	border-bottom: 0;
}
.pd-jump > span {
	display: flex;
	align-items: center;
	padding: 1rem 2rem 1rem 0;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: #8cc8ec;
	font-weight: 500;
}
.pd-jump a {
	display: flex;
	align-items: center;
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	flex: 1 1 0;
	gap: 1rem;
	padding: 1.375rem 1.5rem;
	border-left: 1px solid #ffffff1f;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.1em;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.pd-jump a i {
	font-style: normal;
	color: #8cc8ec;
	margin-right: 0;
}
.pd-jump a b {
	font: var(--fs-small) var(--font-sans);
	display: grid;
	place-items: center;
	border: 1px solid #ffffff40;
	color: #fff;
	transition:
		background-color 0.2s,
		border-color 0.2s,
		transform 0.2s;
	margin-left: auto;
	width: 1.5rem;
	height: 1.5rem;
	font-size: var(--fs-small);
}
body[data-page="servizi"] .pd-jump,
#descrizione .pd-lead.entry-content > :last-child {
	margin-bottom: 0;
}
.pd-label > h2:first-child,
.pd-products,
#descrizione .pd-lead.entry-content > h3:first-child {
	margin-top: 0;
}
.pd-btn-dark span[aria-hidden],
.pd-btn:not(.pd-btn-dark) span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono) !important;
	font-weight: 500 !important;
	font-size: var(--fs-small) !important;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
.pd-btn-dark:hover span[aria-hidden],
.pd-btn:not(.pd-btn-dark):hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.pd-btn-dark:focus-visible,
.pd-btn:not(.pd-btn-dark):focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.pd-jump a:hover {
	background: var(--blue);
	color: #fff;
}
.pd-jump a:hover i {
	color: #fff;
}
.pd-jump a:hover b {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
	transform: translateY(2px);
}
.pd-jump a:focus-visible {
	outline: 2px solid #8cc8ec;
	outline-offset: -2px;
}
.pd-jump a:last-child {
	border-right: 0;
}
body .pd-lead {
	font-size: var(--fs-lead);
	line-height: var(--lh-text);
}
/* Risorse: freccia solo per i download diretti; le richieste mostrano "Richiedi". */
.pd-docs a[data-doc-req]::after {
	content: "Richiedi";
	grid-column: -2;
	grid-row: 1/3;
	align-self: center;
	justify-self: end;
	padding: 0.375rem 0.625rem;
	background: var(--ink);
	color: #fff;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: background-color 0.2s;
}
.pd-docs a[data-doc-req]:hover::after {
	background: var(--blue);
}
.pd-docs a[data-doc-req] {
	grid-template-columns: 1fr auto auto;
}
.pd-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	background: var(--bg-dark);
	min-height: 24rem;
}
/* Tabelle del plugin (specifiche e codici d'ordine). */
.pd-tables {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.pd-diagram {
	margin: 0;
	border: 1px solid var(--line);
	background: #fff;
	padding: 1.5rem;
}
.pd-diagram img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: auto;
}
body[data-page="prodotto"] .pd-tables,
body[data-page="prodotto"] .pd-row > * {
	min-width: 0;
}
/* Download e risorse: file e link con icona, richieste con "Richiedi". */
.pd-docs a:not([data-doc-req]) {
	grid-template-columns: 1fr auto;
}
.pd-docs a > i {
	grid-column: -2;
	grid-row: 1/3;
	align-self: center;
	justify-self: end;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	background: var(--blue);
	color: #fff;
	font: var(--fs-small) / 1 var(--font-sans);
	font-style: normal;
	transition: background-color 0.2s;
}
.pd-docs a:hover > i {
	background: var(--ink);
}
.pd-code-title {
	font-family: var(--font-mono);
	letter-spacing: -0.01em !important;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}
.pd-facts:has(> div + div) {
	grid-template-columns: 1fr 1fr !important;
}
/* Pagina del codice d'ordine: senza immagine, testata a colonna unica */
.pd-hero--code {
	grid-template-columns: 1fr !important;
}
.pd-hero--code .pd-info {
	max-width: none;
}
/* Pagina codice: niente padding laterale nel blocco info */
body main .pd-hero--code .pd-info {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Prodotto con galleria (es. SDR): blocco info con padding uniforme accanto alla foto */
body main .pd-hero:not(.pd-hero--code) .pd-info {
	padding: 3rem 3rem 3rem 3.5rem;
}
/* Bottone "Acquista sullo shop" verde anche sopra gli stili generali dei pulsanti */
.pd-actions .pd-btn.pd-btn-shop {
	background: #23a35a !important;
	border-color: #23a35a !important;
	color: #fff !important;
}
.pd-actions .pd-btn.pd-btn-shop:hover {
	background: #17663a !important;
	border-color: #17663a !important;
	color: #fff !important;
}
/* Galleria del codice d'ordine (campo ACF product_gallery) */
.pd-gallery__main {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}
.pd-gallery__main img {
	display: block;
}
.pd-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
}
.pd-gallery__thumb {
	width: 4rem;
	height: 4rem;
	padding: 0.25rem;
	border: 1px solid var(--line-2);
	background: #fff;
	cursor: pointer;
	transition: border-color 0.2s;
}
.pd-gallery__thumb img {
	width: 100%;
	height: 100%;
}
.pd-gallery__thumb:hover {
	border-color: var(--blue);
}
.pd-gallery__thumb[aria-pressed="true"] {
	border-color: var(--blue);
	box-shadow: inset 0 0 0 1px var(--blue);
}
.pd-lightbox {
	width: 100vw;
	height: 100vh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 3rem 4.5rem;
	border: 0;
	background: #091f3df2;
}
.pd-lightbox[open] {
	display: grid;
	place-items: center;
}
.pd-lightbox::backdrop {
	background: transparent;
}
.pd-lightbox img {
	max-width: 100%;
	max-height: calc(100vh - 6rem);
	object-fit: contain;
	background: #fff;
}
.pd-lightbox__close,
.pd-lightbox__nav {
	position: absolute;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid #ffffff4d;
	background: var(--ink);
	color: #fff;
	font-size: var(--fs-lead);
	cursor: pointer;
	transition: background-color 0.2s;
}
.pd-lightbox__close:hover,
.pd-lightbox__nav:hover {
	background: var(--blue);
	border-color: var(--blue);
}
.pd-lightbox__close {
	top: 1rem;
	right: 1rem;
	font-size: var(--fs-h3);
}
.pd-lightbox__prev {
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
}
.pd-lightbox__next {
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
}
.pd-lightbox.is-single .pd-lightbox__nav {
	display: none;
}
.pd-row .pd-products {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr));
}
.pd-media.pd-media--gallery {
	padding: 0;
	gap: 0;
	justify-content: flex-start;
	align-items: stretch;
	min-height: 0;
}
.pd-media--gallery .pd-gallery__main {
	max-width: none;
	width: 100%;
	flex: 1 1 auto;
	position: relative;
	min-height: 22rem;
}
.pd-media--gallery .pd-gallery__main img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	aspect-ratio: auto;
	object-fit: cover;
	mix-blend-mode: normal;
}
.pd-media--gallery .pd-gallery__thumbs {
	justify-content: flex-start;
	padding: 0.75rem;
	gap: 0.5rem;
	background: #fff;
	border-top: 1px solid var(--line);
}
.pd-media--gallery .pd-gallery__thumb img {
	object-fit: cover;
}
.pd-media--gallery .pd-tag {
	z-index: 1;
}
/* Descrizione del prodotto: tutti i paragrafi uguali (niente primo paragrafo più grande o grigio) */
#descrizione .pd-lead.entry-content :is(p, li) {
	font-size: var(--fs-body) !important;
	line-height: var(--lh-text) !important;
	color: var(--ink);
	letter-spacing: 0;
}
#descrizione .pd-lead.entry-content p {
	margin: 0 0 1rem;
}
#descrizione .pd-lead.entry-content h3 {
	font-size: var(--fs-h3);
}
#descrizione .pd-lead.entry-content ul {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}
.pd-jump a,
.pd-jump a i {
	font-size: var(--fs-mono);
}
/* Scheda prodotto EMC: distributori da contattare */
.pd-dist-grid {
	display: grid;
	gap: 1.5rem;
}
/* Servizi: spazio sopra la prima sezione e sotto l ultima (senza fascia finale) */
.pd-jump + .cap--wide {
	padding-top: 0;
}
@media (min-width: 992px) {
	/* Scheda prodotto: colonna dei contenuti più larga, le tabelle non vanno tagliate. */
	body[data-page="prodotto"] .pd-row {
		grid-template-columns: minmax(14rem, 3fr) minmax(0, 9fr);
		gap: 3rem;
	}
	/* Sezioni a tutta larghezza (specifiche, codici, caratteristiche, download): titolo e testo sopra, contenuto sotto. */
	body[data-page="prodotto"] :is(#specifiche, #codici, #caratteristiche, #documentazione).pd-row {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}
	body[data-page="prodotto"] :is(#specifiche, #codici, #caratteristiche, #documentazione) .pd-label {
		display: block;
	}
	body[data-page="prodotto"] :is(#specifiche, #codici, #caratteristiche, #documentazione) .pd-label p {
		max-width: 70ch;
		margin: 0.75rem 0 0;
		text-align: left;
	}
}
@media (max-width: 991.98px) {
	.pd-hero {
		grid-template-columns: 1fr;
	}
	.pd-media {
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}
	.pd-media img {
		max-width: 360px;
	}
	.pd-row {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding-top: 2rem;
		padding-bottom: 3rem;
	}
	.pd-info > .px--heading {
		top: 1.75rem;
		right: 1.5rem;
	}
	body main .pd-hero:not(.pd-hero--code) .pd-info {
		padding: 2rem 0;
	}
	.pd-media--gallery .pd-gallery__main {
		min-height: 0;
		aspect-ratio: 4/3;
	}
	.pd-jump + .cap--wide {
		padding-top: 0;
	}
}
@media (max-width: 575.98px) {
	.pd-facts div:nth-child(3) {
		grid-column: 1/-1;
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--line);
	}
	.pd-actions .pd-btn {
		flex: 1 1 100%;
		justify-content: space-between;
	}
}
.pd-btn-dark,
.pd-btn:not(.pd-btn-dark) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	height: auto;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono) !important;
	letter-spacing: 0.112em !important;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.pd-btn-dark {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.pd-btn:not(.pd-btn-dark) {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
@media (max-width: 575.98px) {
	.pd-list li {
		grid-template-columns: 58px 1fr;
		padding: 0.5rem 0.75rem;
	}
	.pd-pager {
		grid-template-columns: 1fr;
	}
	.pd-pager .next {
		grid-column: 1;
		border-left: 0;
		border-top: 1px solid var(--line);
	}
	.pd-pager b {
		font-size: var(--fs-body);
	}
	.pd-btn {
		white-space: normal;
	}
	.pd-pager a,
	.pd-pager .prev,
	.pd-pager .next {
		padding: 1.25rem var(--gutter);
	}
	.pd-jump {
		padding: 0;
		flex-direction: column;
	}
	.pd-jump > span,
	.pd-jump a i {
		display: none;
	}
	.pd-jump a:first-of-type {
		border-left: 0;
		border-top: 0;
	}
	.pd-jump a {
		padding: 1rem 1.25rem;
		border-left: 0;
		border-right: 0;
		border-top: 1px solid #ffffff1f;
	}
}
.pd-jump a {
	justify-content: flex-start;
	padding-top: 1rem;
	padding-bottom: 1rem;
}
@media (max-width: 575.98px) {
	.pd-jump a {
		padding-top: 0.75rem;
		padding-bottom: 0.75rem;
	}
	.pd-lightbox {
		padding: 4rem 1rem;
	}
	.pd-lightbox__prev,
	.pd-lightbox__next {
		top: auto;
		bottom: 1rem;
		transform: none;
	}
	.pd-gallery__thumb {
		width: 3.25rem;
		height: 3.25rem;
	}
	.pd-dist-grid {
		gap: 1rem;
	}
}
.pd-dist-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 767.98px) {
	.pd-dist-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ==========================================================================
   16. Area download e download del prodotto
   ========================================================================== */

/* Area download: gruppi nella pagina prodotto e pagina Download a cartelle */
.dl-box {
	display: grid;
	gap: 0.75rem;
}
.dl-search input {
	width: 100%;
	height: 3rem;
	padding: 0 1rem;
	border: 1px solid var(--line-2);
	background: #fff;
	font: var(--fs-body) var(--font-sans);
	color: var(--ink);
}
.dl-search input:focus {
	outline: 2px solid var(--blue);
	outline-offset: -2px;
}
.dl-lang {
	padding: 0.125rem 0.375rem;
	background: var(--pale);
	color: var(--deep);
	font-weight: 500;
}
.dl-page {
	display: grid;
	gap: 1rem;
}
/* Pagina Download: elenco a righe come un file manager */
.dl-explorer {
	background: #fff;
	border: 1px solid var(--line);
}
/* Area download: colonna Versione, niente riga secondaria sotto il nome */
.dl-ex__head,
.dl-ex__row {
	display: grid;
	align-items: center;
	gap: 1rem;
	padding: 0 1.25rem;
	grid-template-columns: minmax(0, 1fr) 6.5rem 5rem 6.5rem 6.5rem 2.25rem;
}
.dl-ex__head {
	min-height: 2.75rem;
	border-bottom: 1px solid var(--line);
	background: var(--bg);
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-2);
}
.dl-ex__row {
	min-height: 3.25rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--bg);
	color: var(--ink);
	text-decoration: none;
	font-size: var(--fs-small);
	transition: background-color 0.15s;
}
.dl-ex__row:last-child {
	border-bottom: 0;
}
.dl-ex__row > span:not(.dl-ex__name):not(.dl-ex__go) {
	font: var(--fs-mono) var(--font-mono);
	color: var(--ink-2);
	white-space: nowrap;
	text-transform: uppercase;
}
.dl-ex__row:is(a):hover,
.dl-ex__dir > summary:hover {
	background: var(--pale);
}
.dl-ex__name {
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr);
	column-gap: 0.75rem;
	align-items: center;
	min-width: 0;
}
.dl-ex__name b {
	font-weight: 500;
	font-size: var(--fs-body);
	overflow-wrap: anywhere;
}
.dl-ex__name small {
	grid-column: 2;
	font: var(--fs-label) var(--font-mono);
	color: var(--muted);
	overflow-wrap: anywhere;
	text-transform: uppercase;
}
.dl-ex__name .dl-lang {
	font-style: normal;
	font-size: var(--fs-xs);
	margin-left: 0.25rem;
	vertical-align: 1px;
}
.dl-ex__ico {
	grid-row: 1 / 3;
	width: 1.5rem;
	height: 1.25rem;
	display: block;
}
.dl-ex__ico--dir {
	background: var(--blue);
	clip-path: polygon(0 0, 40% 0, 50% 18%, 100% 18%, 100% 100%, 0 100%);
}
.dl-ex__ico--up {
	background: var(--line-2);
	clip-path: polygon(0 0, 40% 0, 50% 18%, 100% 18%, 100% 100%, 0 100%);
}
.dl-ex__ico--file {
	width: 1.25rem;
	height: 1.5rem;
	margin-left: 0.125rem;
	background: var(--bg);
	border: 1px solid var(--line-2);
	position: relative;
}
.dl-ex__ico--file::after {
	content: attr(data-ext);
	position: absolute;
	left: -0.25rem;
	bottom: 0.125rem;
	padding: 0 0.125rem;
	background: var(--ink);
	color: #fff;
	font: 600 var(--fs-label) / 1.3 var(--font-mono);
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.dl-ex__go {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	color: var(--blue);
	font-size: var(--fs-body);
}
.dl-ex__row--file .dl-ex__go {
	border: 1px solid var(--blue);
}
.dl-ex__row--file:hover .dl-ex__go {
	background: var(--blue);
	color: #fff;
}
.dl-ex__row--up b {
	color: var(--muted);
}
.dl-ex__row--empty {
	color: var(--ink-2);
}
/* Download nella pagina prodotto: cartelle come nel file manager, sottocartelle apribili */
.dl-explorer--product + .dl-explorer--product {
	margin-top: 0.25rem;
}
.dl-ex__title {
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	column-gap: 0.75rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: var(--ink);
	color: #fff;
}
.dl-ex__title .dl-ex__ico {
	grid-row: 1 / 3;
	background: #8cc8ec;
}
.dl-ex__title b {
	font-weight: 500;
	font-size: var(--fs-body);
}
.dl-ex__title small {
	grid-column: 2;
	font: var(--fs-label) var(--font-mono);
	color: #8cc8ec;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}
.dl-ex__title a {
	grid-column: 3;
	grid-row: 1 / 3;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	border: 1px solid #ffffff4d;
	padding: 0.5rem 0.75rem;
	transition: background-color 0.15s;
}
.dl-ex__title a:hover {
	background: var(--blue);
	border-color: var(--blue);
}
.dl-ex__dir > summary {
	list-style: none;
	cursor: pointer;
}
.dl-ex__dir > summary::-webkit-details-marker {
	display: none;
}
.dl-ex__dir[open] > summary {
	background: var(--bg-light);
}
.dl-ex__dir[open] > summary .dl-ex__go {
	font-size: 0;
}
.dl-ex__dir[open] > summary .dl-ex__go::after {
	content: "−";
	font-size: var(--fs-body);
}
.dl-ex__dir > summary .dl-ex__go {
	border: 1px solid var(--line-2);
	color: var(--ink);
}
.dl-ex__sub {
	border-left: 2px solid var(--blue);
	margin-left: 1.25rem;
}
.dl-ex__sub .dl-ex__row {
	padding-left: 1rem;
}
.dl-nores {
	margin: 0;
	color: var(--ink-2);
}
.dl-ex__row--up small {
	display: block;
}
/* Area download: collegamenti esterni (.lnk) */
.dl-ex__row--link .dl-ex__ico--file {
	background: var(--blue);
}
.dl-ex__row--link .dl-ex__go {
	color: var(--blue);
}
@media (max-width: 767.98px) {
	.dl-ex__head,
	.dl-ex__row > span:nth-child(2),
	.dl-ex__row > span:nth-child(4),
	.dl-ex__row > span:nth-child(3),
	.dl-ex__row > span:nth-child(5) {
		display: none;
	}
	.dl-ex__row {
		padding: 0.625rem 1rem;
		gap: 0.25rem 0.75rem;
		grid-template-columns: minmax(0, 1fr) auto 2.25rem;
	}
	.dl-ex__title {
		grid-template-columns: 1.5rem minmax(0, 1fr);
	}
	.dl-ex__title a {
		grid-column: 1 / -1;
		grid-row: auto;
		justify-self: start;
		margin-top: 0.75rem;
	}
	.dl-ex__sub {
		margin-left: 0.5rem;
	}
}

/* ==========================================================================
   17. Servizi
   ========================================================================== */

/* Servizi: stesse quattro capacità, impaginazioni diverse */
.cap {
	position: relative;
	scroll-margin-top: var(--chrome-h, 7rem);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 4rem;
	align-items: center;
	border: 0;
}
.cap-alias {
	position: absolute;
	top: 0;
	left: 0;
	scroll-margin-top: var(--chrome-h, 7rem);
}
/* Servizi: sezioni più ricche (testo, numeri chiave, ambiti, pulsante) */
.cap-pic {
	overflow: hidden;
	background: var(--ink);
}
.cap-pic img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}
.cap:hover .cap-pic img {
	transform: scale(1.03);
}
.cap-tag {
	top: 1rem;
	left: 1rem;
	padding: 0.4375rem 0.75rem;
	color: #fff;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	text-transform: uppercase;
}
.cap-body > p {
	max-width: 34rem;
}
.cap-points {
	list-style: none;
	border-top: 1px solid var(--line);
}
.cap-points li {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	color: var(--ink);
}
.cap-points li::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--blue);
}
.cap-body > p.cap-lead {
	margin: 0 0 1rem;
	color: var(--ink);
}
.cap-body > p.cap-text {
	max-width: 36rem;
	margin: 0 0 2rem;
	color: var(--ink-2);
}
.cap-facts {
	display: grid;
}
.cap-facts > div {
	padding: 1rem 0 0;
	border-top: 2px solid var(--blue);
}
.cap-facts dt {
	margin: 0 0 0.375rem;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.03em;
	color: var(--ink);
}
.cap-facts dd {
	margin: 0;
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-2);
	line-height: 1.4;
}
.cap .cap-pic {
	position: relative;
	top: auto;
	order: 0 !important;
}
/* RF Lab: testo e foto, sotto le famiglie di test */
.cap-tests,
.cap-tests .cap-test:last-child:nth-child(odd),
.cap-tests .cap-test:last-child:nth-child(odd) .cap-points li:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}
.cap-tests span {
	display: inline-block;
	margin-bottom: 1rem;
}
.cap-tests h3 {
	margin-bottom: 0.25rem !important;
}
.cap--wide + .cap--wide {
	padding-top: 3.5rem;
}
.cap--wide .cap-pic {
	margin: 0 calc(-1 * var(--gutter));
	aspect-ratio: 21 / 8;
}
.cap--wide .cap-pic::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #091f3d00 35%, #091f3dcc 100%);
	pointer-events: none;
}
.cap--wide figcaption {
	position: absolute;
	z-index: 2;
	left: var(--gutter);
	bottom: 2.25rem;
}
.cap--wide .cap-pic--right figcaption {
	left: auto;
	right: var(--gutter);
	text-align: right;
}
.cap--wide figcaption .cap-tag {
	position: static;
	display: inline-block;
	margin-bottom: 1rem;
	background: var(--blue);
}
.cap--wide figcaption h2 {
	margin: 0;
	color: #fff;
	font-size: var(--fs-display);
	line-height: 1;
	letter-spacing: -0.05em;
}
.cap-wide__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 4rem;
}
.cap-tests ul {
	list-style: none;
}
.cap-tests li {
	position: relative;
	border-top: 1px solid var(--line);
}
.cap-tests li::before {
	content: "";
	background: var(--blue);
}
/* Servizi: numeri chiave subito sotto la foto col titolo, a piena larghezza */
.cap--wide > .cap-facts {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
	margin: 2.5rem 0 0;
}
.cap--wide > .cap-facts dt {
	font-size: var(--fs-title);
}
.cap--wide .cap-wide__grid {
	margin-top: 2.5rem;
}
/* Servizi: elenchi puntati a griglia (celle bianche separate da linee sottili) */
.cap--wide .cap-points {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 2.5rem 0 0;
	gap: 1px !important;
	padding: 0;
	background: var(--line);
	border: 1px solid var(--line);
}
.cap--wide .cap-points li {
	border-bottom: 1px solid var(--line);
	font-size: var(--fs-body);
	line-height: var(--lh-text);
}
.cap--wide .cap-points li:nth-child(-n + 2),
.cap-tests .cap-test:last-child:nth-child(odd) .cap-points li:nth-child(2) {
	border-top: 1px solid var(--line);
}
/* RF Lab: famiglie di test in griglia a due colonne (l'ultima dispari a tutta riga) */
.cap--wide .cap-tests {
	margin-top: 3rem;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2.5rem 3rem;
}
.cap-test {
	display: block;
}
.cap-test + .cap-test {
	margin-top: 1rem;
}
.cap-test header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
}
.cap-test header span {
	padding: 0.3125rem 0.625rem;
	background: var(--ink);
	color: #fff;
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.cap-test header h3 {
	margin: 0;
	font-size: var(--fs-h3) !important;
	font-weight: 500;
	letter-spacing: -0.03em !important;
	color: var(--ink);
}
.cap-test .cap-points li {
	font-size: var(--fs-body);
	color: var(--ink);
}
.cap-test .cap-points li::before {
	position: static;
	width: 0.5rem;
	height: 0.5rem;
	top: auto;
	left: auto;
}
.cap--wide:last-of-type {
	padding-bottom: 5rem;
}
.cap-test,
.cap-test + .cap-test {
	margin: 0;
	padding: 0;
}
.cap-tests .cap-test:last-child:nth-child(odd) .cap-points {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 3rem;
}
/* R&D: percorso del progetto a griglia (celle con bordi) */
.cap--wide .cap-points li,
.cap--wide .cap-points li:nth-child(n),
.cap-test .cap-points li {
	padding: 1rem 1.25rem;
	background: #fff;
	border: 0 !important;
	transition: background-color 0.2s;
}
.cap--wide .cap-points li:hover {
	background: var(--bg-light);
}
.cap-test .cap-points li:last-child:nth-child(odd) {
	grid-column: auto;
}
/* Percorso: solo il numero, senza riquadro */
@media (max-width: 991.98px) {
	.cap {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.75rem;
	}
}
/* Servizi: tutte e quattro come l'officina CNC (panoramica al vivo, titolo sulla foto, testo su due colonne) */
.cap--wide {
	display: block;
	padding: 4.5rem 0 1rem;
}
@media (max-width: 991.98px) {
	.cap--wide {
		padding: 3rem 0 0.5rem;
	}
	.cap--wide .cap-pic {
		aspect-ratio: 4 / 3;
	}
	.cap--wide figcaption h2 {
		font-size: var(--fs-h2) !important;
	}
	.cap-wide__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}
	.cap--wide > .cap-facts {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
		margin-top: 1.75rem;
	}
	.cap--wide > .cap-facts dt {
		font-size: var(--fs-h3);
	}
	.cap--wide:last-of-type {
		padding-bottom: 3rem;
	}
}
@media (max-width: 767.98px) {
	.cap--wide .cap-points,
	.cap--wide .cap-tests,
	.cap-tests .cap-test:last-child:nth-child(odd) .cap-points {
		grid-template-columns: minmax(0, 1fr);
	}
}
.cap-test .cap-points {
	margin-top: 1.25rem;
	grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 767.98px) {
	.cap--wide .cap-points li:nth-child(2),
	.cap-tests .cap-test:last-child:nth-child(odd) .cap-points li:nth-child(2) {
		border-top: 0;
	}
}
.cap-test .cap-points li:nth-child(2) {
	border-top: 0;
}

/* ==========================================================================
   18. Settori
   ========================================================================== */

/* Settori: griglia di celle indicizzate. */
.sec-section {
	padding-bottom: 4rem;
	padding-top: 0;
}
.sec-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
.sec-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 17rem;
	padding: 1.5rem;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	scroll-margin-top: 8rem;
	transition:
		background 0.25s,
		color 0.25s;
	background: #fff;
}
.sec-card::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 2px;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s;
}
.sec-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	height: 2.75rem;
	margin-bottom: 1.75rem;
	overflow: hidden;
}
.sec-head > span:first-child {
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	color: var(--ink-2);
	text-transform: uppercase;
}
.sec-head .px {
	--s: 0.375rem;
	--g: 0.125rem;
}
.sec-card h2 {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
	margin: 0 0 0.5rem;
}
.sec-card p {
	font-size: var(--fs-small);
	color: var(--ink-2);
	margin: 0 0 1.5rem;
}
.sec-foot {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 1rem;
	border-top: 1px dashed var(--line-2);
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink);
}
.sec-foot b {
	font: var(--fs-body) var(--font-sans);
	transition: transform 0.2s;
}
.sec-card:hover,
.sec-card:target {
	background: var(--ink);
	color: #fff;
}
.sec-card:hover::before,
.sec-card:target::before {
	transform: scaleX(1);
}
.sec-card:hover p,
.sec-card:target p,
.sec-card:hover .sec-head > span:first-child,
.sec-card:target .sec-head > span:first-child {
	color: #aec0d8;
}
.sec-card:hover .sec-foot,
.sec-card:target .sec-foot {
	color: #fff;
	border-color: #ffffff33;
}
.sec-card:hover .sec-foot b {
	transform: translate(2px, -2px);
	color: #8cc8ec;
}
.sec-card:hover .px,
.sec-card:target .px {
	color: #8cc8ec;
}
body[data-page="settori"] .sec-card h2 {
	font-size: var(--fs-h3) !important;
	letter-spacing: -0.03em;
}
body[data-page="settori"] main .sec-card h2 {
	line-height: 1.15 !important;
}
.product-placeholder .px {
	--s: 0.5rem;
	--g: 0.25rem;
	color: #9fc6e6;
}
.pd-placeholder .px {
	--g: 0.25rem;
	color: #9fc6e6;
	--s: 0.75rem;
}
.fam-hero__ph .px {
	--s: 1rem;
	--g: 0.3125rem;
	color: var(--blue);
}
@media (max-width: 1199.98px) {
	.sec-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.sec-grid {
		grid-template-columns: 1fr;
	}
	.sec-card {
		min-height: 0;
	}
}

/* ==========================================================================
   19. Azienda
   ========================================================================== */
/* Azienda: tono più emozionale. */
.az-origin {
	display: grid;
	gap: 5rem;
	align-items: center;
}
.az-origin-copy h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
	margin: 0 0 1.5rem;
	grid-column: 1;
	grid-row: 1;
}
.az-origin-copy p {
	color: var(--ink-2);
	max-width: 54ch;
	margin: 0 0 1rem;
}
/* Azienda: spaziatura dei numeri chiave. */
.az-stats {
	display: grid;
	margin: 2.5rem 0 0;
	border: 0;
	gap: 0 2rem;
}
.az-stats dt {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--muted);
	margin: 0 0 0.75rem;
	line-height: 1.2;
}
.az-stats dd {
	font-weight: 500;
	letter-spacing: -0.045em;
	font-size: var(--fs-stat);
	color: var(--ink);
	white-space: nowrap;
}
.az-stats dd small {
	color: var(--muted);
	letter-spacing: -0.02em;
	font-size: 0.45em;
}
/* Timeline: anni più grandi e più luce sulla tappa attiva. */
.az-tl {
	padding: 5rem 0 4rem;
	background: var(--ink);
	color: #fff;
	overflow: hidden;
	scroll-margin-top: 5rem;
}
.az-tl-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
	margin-bottom: 2rem;
}
.az-tl-head h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
	margin: 0;
	color: #fff;
}
.az-tl-ctrl {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.az-tl-count {
	margin-right: 1rem;
	font: var(--fs-mono) var(--font-mono);
	letter-spacing: 0.112em;
	color: #8fa6c4;
	text-transform: uppercase;
}
.az-tl-count b {
	color: #fff;
	font-weight: 500;
}
.az-tl-btn {
	width: 3rem;
	height: 3rem;
	border: 1px solid #ffffff40;
	background: transparent;
	color: #fff;
	font: var(--fs-body) var(--font-sans);
	transition:
		background 0.15s,
		border-color 0.15s;
}
.az-tl-btn:hover,
.az-tl-years button.is-past i,
.az-tl-track li.is-today {
	background: var(--blue);
	border-color: var(--blue);
}
.az-tl-years {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	overflow-x: auto;
	scrollbar-width: none;
	padding-top: 0.25rem;
	padding-bottom: 0.75rem;
}
.az-tl-years::-webkit-scrollbar,
.az-tl-track::-webkit-scrollbar {
	display: none;
}
.az-tl-years::before {
	content: "";
	position: absolute;
	left: var(--gutter);
	right: var(--gutter);
	top: calc(0.25rem + 0.4375rem);
	height: 1px;
	background: #ffffff26;
}
.az-tl-years button {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	flex: none;
	min-width: 3rem;
	padding: 0;
	border: 0;
	background: none;
	color: #8fa6c4;
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.az-tl-years button i {
	width: 0.875rem;
	height: 0.875rem;
	border-radius: 50% !important;
	border: 1px solid #ffffff55;
	background: var(--ink);
	transition:
		background 0.2s,
		border-color 0.2s,
		box-shadow 0.2s;
}
.az-tl-years button[aria-selected="true"],
.az-tl-years button:hover,
.az-tl-track li.is-active .az-tl-year,
.az-tl-track li.is-today .az-tl-year,
.az-certs a:hover b {
	color: #fff;
}
.az-tl-years button[aria-selected="true"] i {
	background: #fff;
	border-color: #fff;
	box-shadow: 0 0 0 0.3125rem #3b82f655;
}
.az-tl-progress {
	height: 2px;
	margin: 0 var(--gutter) 2rem;
	background: #ffffff14;
}
.az-tl-progress i {
	display: block;
	height: 100%;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.az-tl-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(22rem, 78vw);
	list-style: none;
	margin: 0;
	padding: 0 var(--gutter) 0.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--gutter);
	scrollbar-width: none;
	cursor: grab;
	outline: 0;
}
.az-tl-track.is-drag {
	cursor: grabbing;
	scroll-snap-type: none;
	user-select: none;
}
.az-tl-track:focus-visible {
	box-shadow: inset 0 0 0 2px #8cc8ec;
}
.az-tl-track li {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 20rem;
	padding: 1.75rem 1.75rem 2rem;
	border: 1px solid #ffffff1f;
	border-left-width: 0;
	background: #ffffff06;
	scroll-snap-align: start;
	transition:
		background 0.3s,
		border-color 0.3s;
	cursor: pointer;
}
.az-tl-track li:first-child {
	border-left-width: 1px;
}
.az-tl-track li::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 2px;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s;
}
.az-tl-track li.is-active::before {
	transform: scaleX(1);
}
.az-tl-year {
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.9;
	color: #ffffff59;
	transition: color 0.3s;
	font-size: var(--fs-stat);
}
.az-tl-track h3 {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.025em;
	color: #fff;
	margin: 2.5rem 0 0.75rem;
	padding-top: 0;
}
.az-tl-track p {
	color: #aec0d8;
	margin: 0;
}
.az-tl-track li.is-today p {
	color: var(--pale);
}
/* Azienda: certificazioni valorizzate, con immagine a tutta card. */
.az-certs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	border: 0;
}
.az-certs span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--blue);
}
.az-certs small {
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
.az-certs i {
	display: grid;
	place-items: center;
	border: 1px solid #9fabba;
	font: var(--fs-body) var(--font-sans);
	font-style: normal;
	transition: transform 0.2s;
	width: 3.25rem;
	height: 3.25rem;
	background: var(--blue);
	border-color: var(--blue) !important;
	color: #fff;
	grid-column: 3;
	grid-row: 3/5;
	align-self: end;
}
.az-certs a:hover {
	color: #fff;
	background: var(--ink);
	transform: translateY(-0.375rem);
	box-shadow: 0 1.5rem 3rem -1.5rem #091f3d66;
}
.az-certs a:hover small {
	color: #aec0d8;
}
.az-certs a:hover span,
.az-certs a:hover b em {
	color: #8cc8ec;
}
.az-partners {
	display: grid;
	border: 0;
}
.az-origin-copy .az-lead {
	font-size: var(--fs-h3) !important;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin-bottom: 1.5rem;
	grid-column: 1;
	grid-row: 2 / 4;
}
.az-origin-copy .az-lead em {
	font-style: normal;
	color: var(--blue);
}
.az-stats div {
	background: none;
	border: 0;
	border-top: 1px solid var(--line-2);
	padding: 1.25rem 0 1.75rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
.az-stats div:nth-child(-n + 2) dd {
	color: var(--blue);
}
/* Fascia manifesto a tutta larghezza. */
.az-manifesto {
	position: relative;
	display: flex;
	align-items: flex-end;
	background: var(--ink);
	color: #fff;
	overflow: hidden;
	min-height: clamp(20rem, 32vw, 28rem);
}
.az-manifesto figure {
	position: absolute;
	inset: 0;
	margin: 0;
}
.az-manifesto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.55;
}
.az-manifesto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #091f3d00 30%, #091f3dcc 85%);
	pointer-events: none;
}
.az-manifesto-copy {
	position: relative;
	z-index: 1;
	width: 100%;
}
.az-manifesto-copy span {
	display: inline-block;
	margin-bottom: 1rem;
	padding: 0.375rem 0.625rem;
	background: var(--blue);
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.az-manifesto-copy p {
	margin: 0;
	max-width: 18ch;
	letter-spacing: -0.05em;
	font-weight: 500;
	color: #fff;
}
.az-manifesto-copy p em {
	font-style: normal;
	color: #8cc8ec;
}
.az-tl-track li.is-active {
	background: linear-gradient(180deg, #409ed826, #ffffff08);
	cursor: default;
}
body .az-manifesto .az-manifesto-copy p {
	font-size: var(--fs-display) !important;
	line-height: 1 !important;
}
.az-stats div:nth-child(4) dd {
	font-size: var(--fs-stat);
}
/* certificati: testo in alto, più aria dal marchio */
.az-certs a {
	display: grid;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	position: relative;
	background: #fff;
	border: 1px solid var(--line-2);
	overflow: hidden;
	transition:
		background-color 0.3s,
		color 0.3s,
		transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1),
		box-shadow 0.4s;
	grid-template-columns: auto 1fr auto;
	grid-template-rows: auto auto 1fr auto;
	align-items: start;
	padding: 2.25rem 2.25rem 2.25rem 2.5rem !important;
	min-height: 13rem;
}
.az-cert-pic {
	overflow: hidden;
	grid-column: 1;
	grid-row: 1/-1;
	margin: 0;
}
.az-cert-pic img {
	display: block;
	width: 100%;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
	aspect-ratio: auto;
	object-position: top;
}
.az-certs a > :not(.az-cert-pic) {
	margin-left: 1.75rem;
}
.az-certs a > i {
	margin-right: 1.75rem;
}
.az-certs b em {
	font-style: normal;
	font-size: 0.4em;
	letter-spacing: -0.02em;
	color: var(--blue);
	transition: color 0.3s;
	margin-left: 0.5rem;
}
.az-certs a:hover i {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
	transform: translate(2px, -2px);
}
.az-partner {
	flex-direction: column;
	gap: 1rem;
	transition:
		transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
		box-shadow 0.3s;
}
.az-partner img {
	display: block;
}
.az-certs a > b,
.az-certs a > i {
	margin: 0 !important;
}
.az-certs span,
.az-certs b,
.az-certs small {
	grid-column: 2;
}
.az-cert-pic--mark img {
	object-fit: contain;
	height: 100%;
}
.az-certs a:hover .az-cert-pic--mark img {
	transform: none;
}
.az-certs span {
	grid-row: 1;
	margin-bottom: 1.125rem;
}
.az-certs b {
	font-weight: 500;
	letter-spacing: -0.05em;
	color: var(--ink);
	transition: color 0.3s;
	white-space: nowrap;
	font-size: var(--fs-title);
	grid-row: 2;
	line-height: 1.05;
}
.az-certs small {
	grid-row: 4;
	align-self: end;
	margin-top: 2rem;
	white-space: nowrap;
}
.az-certs span,
.az-certs b {
	grid-column: 2/4;
}
.az-certs a > span {
	margin: 0 0 1rem !important;
}
.az-certs a > small {
	margin: 2rem 0 0 !important;
}
/* marchio SGS: riquadro chiaro con padding, resta chiaro anche all'hover */
.az-certs .az-cert-pic--mark {
	border: 0;
	box-shadow: none;
	transition: background 0.3s;
}
.az-tl-track.is-drag li {
	cursor: grabbing;
}
.az-clients .az-partner {
	display: grid;
	place-items: center;
	height: 8.5rem;
	padding: 1.5rem 1.25rem;
	background: #fff;
}
.az-clients .az-partner img {
	width: 100%;
	max-width: 10rem;
	aspect-ratio: auto;
	object-fit: contain;
	height: 5.5rem;
	max-height: 100%;
}
.az-clients .az-partner,
.az-clients .az-partner:hover {
	transform: none;
	box-shadow: none;
}
/* Azienda: ISO 9001 e 14001 con lo stesso peso */
.az-stats .az-stat-iso dd small {
	font-size: 0.45em;
	color: var(--muted);
}
.az-stats .az-stat-iso dd {
	line-height: 1;
	font-size: var(--fs-stat);
	padding-top: 0;
	white-space: nowrap;
}
.az-origin-copy {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 5rem;
	align-items: start;
}
.az-origin-copy p:not(.az-lead) {
	grid-column: 2;
	max-width: none;
}
.az-origin-copy p:not(.az-lead):nth-of-type(2) {
	grid-row: 2;
	align-self: start;
	margin: 0.375rem 0 1rem;
}
.az-origin-copy .az-stats {
	grid-column: 1 / -1;
	grid-row: 4;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 3rem;
}
.az-origin-copy p:not(.az-lead):nth-of-type(3) {
	grid-row: 3;
	align-self: start;
}
.az-origin-copy .az-stats div,
.az-origin-copy .az-stats div:nth-child(n) {
	border-bottom: 0;
	padding-bottom: 0;
}
/* Azienda, manifesto: testo in basso senza margini automatici né padding in eccesso */
.az-manifesto .az-manifesto-copy {
	margin: 0 auto;
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}
@media (max-width: 1199.98px) {
	.az-clients {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}
@media (max-width: 991.98px) {
	.az-tl-head {
		flex-direction: column;
		align-items: flex-start;
	}
	.az-tl-years {
		justify-content: flex-start;
		gap: 1.25rem;
		padding-left: var(--gutter);
		padding-right: var(--gutter);
	}
	.az-tl-years::before {
		display: none;
	}
	.az-origin {
		gap: 3rem;
	}
}
/* Azienda, storia: senza immagine, a tutta larghezza (titolo e apertura a sinistra, racconto a destra, numeri su quattro colonne) */
.az-origin {
	grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 991.98px) {
	.az-origin-copy {
		grid-template-columns: minmax(0, 1fr);
	}
	.az-origin-copy > * {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
	.az-origin-copy .az-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.az-certs {
		grid-template-columns: 1fr;
	}
	.az-tl-track li {
		min-height: 18rem;
		padding: 1.5rem 1.25rem;
	}
	.az-tl-btn {
		width: 2.75rem;
		height: 2.75rem;
	}
	.az-stats dd,
	.az-stats div:nth-child(4) dd {
		font-size: var(--fs-stat);
	}
}
.az-stats dd {
	margin: auto 0 0;
	line-height: 1;
}
@media (max-width: 575.98px) {
	.az-certs a > :not(.az-cert-pic) {
		margin-left: 1.25rem;
	}
	.az-certs a > i {
		margin-right: 1.25rem;
	}
}
/* clienti: solo loghi, senza numero né nome */
.az-clients {
	list-style: none;
	margin: 0;
	padding: 0;
	grid-template-columns: repeat(7, 1fr);
	gap: 1rem;
}
.az-cert-pic--mark {
	align-self: center;
	aspect-ratio: 1;
}
@media (max-width: 575.98px) {
	.az-certs a {
		padding: 1.5rem !important;
		min-height: 0;
	}
}
.az-certs a {
	gap: 0 2.5rem;
}
/* marchio SGS senza riquadro: nessun padding, sfondo della card */
.az-certs .az-cert-pic--mark,
.az-certs a:hover .az-cert-pic--mark {
	width: 7.5rem;
	padding: 0 !important;
	background: transparent !important;
}
@media (max-width: 575.98px) {
	.az-certs .az-cert-pic--mark {
		width: 5.5rem;
	}
	.az-clients {
		grid-template-columns: 1fr 1fr !important;
		gap: 0.75rem;
	}
	.az-clients .az-partner {
		height: 7rem;
		padding: 1.25rem 1rem;
	}
	.az-clients .az-partner img {
		height: 4.5rem;
	}
}

/* ==========================================================================
   20. Novità, notizie ed eventi
   ========================================================================== */

/* Novità: un'unica griglia a 4 colonne uguali (evidenza 2×2), archivio allineato. */
.nv-grid {
	display: grid;
	grid-template-rows: auto auto;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
/* Novità: card interamente cliccabili e riconoscibili. */
.nv-card {
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	cursor: pointer;
	transition:
		background-color 0.25s,
		color 0.25s,
		box-shadow 0.25s;
}
.nv-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}
.nv-top time {
	font: var(--fs-mono) var(--font-mono);
	letter-spacing: 0.112em;
	color: var(--ink-2);
	text-transform: uppercase;
}
.nv-type {
	padding: 0.375rem 0.625rem;
	border: 1px solid var(--line-2);
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
.nv-card h3 {
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
	margin: 2.5rem 0 0.5rem;
}
.nv-card p {
	color: var(--ink-2);
	margin: 0 0 1.5rem;
}
.nv-link {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	padding-top: 1rem;
	border-top: 1px dashed var(--line-2);
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink);
}
.nv-link span {
	font: var(--fs-body) var(--font-sans);
}
/* Eventi (Novità e archivio): card separate, non attaccate a lista */
.ev-list {
	display: grid;
	gap: 1rem !important;
	border: 0;
}
.ev-place {
	display: inline-flex;
	align-items: center;
}
.ev-body h3 {
	font-weight: 500;
	letter-spacing: -0.035em;
}
.ev-body p,
.nv-empty,
body[data-page="novita"] .nv-card:hover p,
body[data-page="novita"] .nv-card:hover .nv-top time {
	color: var(--ink-2);
}
.ev-cta {
	white-space: nowrap;
}
.ev-cta span {
	font: var(--fs-body) var(--font-sans);
	transition: transform 0.2s;
}
.ev-cta:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
	color: #fff !important;
}
.ev-cta:hover span {
	transform: translateX(3px);
}
.nv-load {
	padding-top: 2rem;
}
.nv-grid .nv-card:not(.nv-card--feature) h3 {
	margin-top: 2rem;
}
.ev-card::before {
	content: "";
	position: absolute;
	right: 0;
	top: 0;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s;
	left: 10rem;
	height: 3px;
}
.ev-card:hover::before {
	transform: scaleX(1);
}
.ev-cal {
	display: flex;
	flex-direction: column;
	color: #fff;
	justify-content: space-between;
	padding: 1.25rem 1rem;
	gap: 0.5rem;
	background: var(--ink);
	text-align: left;
}
.ev-month {
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	padding: 0;
	background: none;
	color: #8cc8ec;
	font-size: var(--fs-xs);
	letter-spacing: 0.1em;
}
.ev-cal b {
	place-items: center;
	line-height: 1;
	display: block;
	flex: 0;
	padding: 0;
	font-weight: 500;
	letter-spacing: -0.05em;
	color: #fff;
	text-align: left;
}
.ev-year {
	text-transform: uppercase;
	font-size: var(--fs-xs);
}
.ev-body,
.ev-actions {
	display: flex;
	flex-direction: column;
}
.ev-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
}
/* Evento: stessa struttura della notizia, luogo in evidenza, niente etichette "Domani / Tra N giorni / In corso / Concluso" */
.ev-status {
	padding: 0.25rem 0.5rem;
	font: 500 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	display: none;
}
.ev-card.is-live .ev-status {
	background: #22c55e;
	border-color: #22c55e;
	color: #fff;
}
.ev-card.is-tbd .ev-status {
	border-style: dashed;
}
.ev-actions .ev-cta {
	border-left: 0;
	flex: none;
	justify-content: space-between;
}
.ev-ics {
	border-top: 1px solid var(--line-2);
}
.ev-ics:hover {
	border-color: var(--blue) !important;
}
.ev-card.is-past .ev-status {
	background: var(--line);
	border-color: var(--line);
}
.ev-cta span[aria-hidden],
.ev-ics span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono);
	font-weight: 500;
	font-size: var(--fs-small);
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
.ev-cta:hover span[aria-hidden],
.ev-ics:hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.ev-cta:focus-visible,
.ev-ics:focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.nv-card,
.ev-card,
.nw-aside .nw-back:hover {
	background: #fff;
}
.nv-card .nv-link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.nv-card .nv-link {
	align-items: center;
	position: relative;
	z-index: 1;
	pointer-events: none;
}
/* Novità: quadratino freccia pieno blu. */
.nv-card .nv-link span {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--line-2);
	font-size: var(--fs-small);
	transition:
		background-color 0.2s,
		border-color 0.2s,
		color 0.2s,
		transform 0.2s;
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}
.nv-card:hover {
	background: var(--ink) !important;
	color: #fff;
	box-shadow: inset 0 3px 0 var(--blue);
}
.nv-card:hover h3,
.ev-card.is-next .ev-month {
	color: #fff;
}
.nv-card:hover p {
	color: #aec0d8;
}
.nv-card:hover .nv-top time,
.ev-archive:hover small {
	color: #8cc8ec;
}
.nv-card:hover .nv-type {
	border-color: #ffffff40;
	color: #fff;
}
.nv-card:hover .nv-link {
	color: #fff;
	border-color: #ffffff33;
}
.nv-card:hover .nv-link span {
	transform: translateX(3px);
	background: #fff;
	border-color: #fff;
	color: var(--ink);
}
.nv-card:focus-within {
	outline: 2px solid var(--blue);
	outline-offset: -2px;
}
.nv-card .nv-link:focus-visible {
	outline: none;
}
/* Novità: calendario eventi rivisto. */
.ev-actions [hidden],
.ev-ics[hidden],
.nw--event .nw-aside.is-past .ev-ics,
.nw--event .nw-aside.is-tbd .ev-ics,
.nw--event .nw-aside .nw-share [data-ev-ics][hidden] {
	display: none !important;
}
.ev-card {
	display: grid;
	align-items: stretch;
	position: relative;
	overflow: hidden;
	grid-template-columns: 10rem minmax(0, 1fr) auto;
	border-top: 0;
	background: #fff;
}
.ev-card .ev-ics {
	min-height: 0;
	padding: 0.25rem 0 !important;
	background: none !important;
	border: 0 !important;
	color: var(--deep) !important;
	justify-content: flex-start;
	text-decoration: underline;
	text-underline-offset: 0.25rem;
}
.ev-card .ev-ics:hover {
	color: var(--ink) !important;
}
.ev-card.is-next .ev-cal,
.ev-archive:hover i {
	background: var(--blue);
}
.ev-card.is-next .ev-status {
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}
.ev-card.is-past {
	background: var(--bg-light);
}
.ev-card.is-past .ev-cal {
	background: var(--line-2);
}
.ev-card.is-past .ev-month {
	background: none;
	color: var(--ink-2);
}
.ev-card.is-past .ev-cal b {
	color: var(--ink-2);
	opacity: 1;
}
.ev-card.is-past .ev-year {
	border-color: #9fabba;
}
.ev-card.is-past .ev-actions {
	display: none;
}
.ev-card.is-past h3 {
	opacity: 0.7;
}
.ev-card.is-tbd .ev-cal b {
	color: #8cc8ec;
}
.ev-card:hover {
	background: #fff;
}
/* Card evento: meno padding, luogo leggibile, linea sotto il luogo */
.ev-card .ev-body {
	gap: 1rem;
	padding: 1.25rem 1.75rem !important;
}
.ev-card .ev-meta {
	min-height: 1.5rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--line);
}
.ev-card .ev-status {
	line-height: 1;
}
.ev-card .ev-body p {
	margin: 0;
}
.nv-grid--list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.nv-card h3 a,
.ev-card h3 a {
	color: inherit;
	text-decoration: none;
}
.nv-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.nv-card:hover h3 a,
.ev-card h3 a:hover,
.nw-back:hover,
.nw-content a,
.nw-aside .nw-share button.is-done,
body[data-page="novita"] .nv-card:hover h3,
body[data-page="novita"] .nv-card:hover h3 a {
	color: var(--deep);
}
.nv-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.ev-booth {
	margin: 0.25rem 0 0 !important;
	font: var(--fs-label) var(--font-mono) !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--deep) !important;
}
.ev-list--past .ev-card {
	opacity: 0.8;
}
/* Notizia: testata con padding 4rem sopra e sotto */
.nw-hero {
	position: relative;
	padding-top: 4rem;
	padding-bottom: 4rem;
}
.nw-hero .px--heading {
	position: absolute;
	top: 2.5rem;
	right: 0;
}
.nw-hero h1 {
	max-width: 22ch;
	margin: 0;
	font-size: var(--fs-display);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -0.045em;
	color: var(--ink);
}
.nw-lead {
	max-width: 46rem;
	margin: 1.5rem 0 0;
	color: var(--ink-2);
}
.nw-cover {
	margin: 0 auto 3rem;
}
.nw-cover img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 34rem;
	object-fit: cover;
	background: var(--bg-dark);
}
.nw-body {
	display: grid;
	grid-template-columns: 16rem minmax(0, 46rem);
	gap: clamp(2rem, 5vw, 5rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}
.nw-aside {
	align-self: start;
	position: sticky;
	top: 7rem;
	display: grid;
	gap: 1.5rem;
}
.nw-aside dl {
	margin: 0;
	border-top: 1px solid var(--line);
}
.nw-aside dl > div {
	display: grid;
	gap: 0.25rem;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--line);
}
.nw-aside dt,
.nw-share span {
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	text-transform: uppercase;
	color: var(--muted);
}
.nw-aside dd {
	margin: 0;
	font-size: var(--fs-body);
	color: var(--ink);
}
.nw-cta {
	color: #fff;
	text-decoration: none;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 0.2s;
}
.nw-share {
	flex-wrap: wrap;
	align-items: center;
	font-size: var(--fs-small);
}
.nw-back {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-2);
	text-decoration: none;
}
.nw-content {
	font-size: var(--fs-body);
	line-height: var(--lh-text);
	color: var(--ink-2);
}
.nw-content h2 {
	margin: 2.5rem 0 1rem;
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
	color: var(--ink);
}
.nw-content h3 {
	margin: 2rem 0 0.75rem;
	font-size: var(--fs-h3);
	font-weight: 500;
	color: var(--ink);
}
.nw-content img {
	max-width: 100%;
	height: auto;
}
.nw-content blockquote {
	margin: 2rem 0;
	padding: 0.25rem 0 0.25rem 1.5rem;
	border-left: 3px solid var(--blue);
	font-size: var(--fs-h3);
	color: var(--ink);
}
.nw-content figure {
	margin: 2rem 0;
}
.nw-content figcaption {
	margin-top: 0.5rem;
	font-size: var(--fs-small);
	color: var(--muted);
}
.nw-products {
	padding-top: 0;
}
.nw-more .section-title {
	margin-bottom: 2rem;
}
/* Notizia: card dei prodotti e delle altre notizie sempre separate (i link a tutta card restano dentro la propria card) */
.nw-products,
.nw-more {
	position: relative;
	isolation: isolate;
}
.nw-products .product-card,
.nw-more .nv-card,
.nv-grid .nv-card,
.ev-body.has-logo {
	position: relative;
}
/* Notizia: colonna laterale (data, categoria, link, condivisione) */
.nw-aside .nw-card {
	background: #fff;
	border: 1px solid var(--line);
}
.nw-aside .nw-cta {
	grid-template-columns: minmax(0, 1fr) 2.25rem;
	margin: 0;
	border: 0;
}
.nw-aside .nw-cta i {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--blue);
	color: #fff;
	font-style: normal;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.nw-aside .nw-cta:hover i {
	background: #fff;
	color: var(--ink);
}
.nw-aside .nw-share {
	display: grid;
	gap: 0.75rem;
	padding: 1.25rem 1.5rem 1.5rem;
}
.nw-aside .nw-share > span {
	width: auto;
}
.nw-aside .nw-share > div {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--line);
}
.nw-aside .nw-share a,
.nw-aside .nw-share button {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	background: none;
	font: var(--fs-body) var(--font-sans);
	color: var(--ink);
	text-align: left;
	cursor: pointer;
	text-decoration: none;
	transition:
		color 0.2s,
		padding-left 0.2s;
}
.nw-aside .nw-share a::after,
.nw-aside .nw-share button::after {
	content: "→";
	color: var(--blue);
}
.nw-aside .nw-share a[target]::after {
	content: "\2197\FE0E";
}
.nw-aside .nw-share b {
	font-weight: 400;
}
.nw-aside .nw-share svg {
	color: var(--blue);
}
.nw-aside .nw-share a:hover,
.nw-aside .nw-share button:hover {
	color: var(--deep);
	padding-left: 0.25rem;
}
.nw-aside .nw-share button.is-done::after {
	content: "✓";
}
.nw-aside .nw-back {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	border: 1px solid var(--line);
	background: transparent;
}
.nw-aside .nw-back i {
	font-style: normal;
	color: var(--blue);
	transition: transform 0.2s;
}
.nw-aside .nw-back:hover i {
	transform: translateX(-3px);
}
/* Notizia: dati e pulsante come prima, condividi e "Tutte le novità" nel nuovo stile */
.nw-aside .nw-cta.nw-cta--plain {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--ink);
}
.nw-aside .nw-cta.nw-cta--plain:hover {
	background: var(--deep);
}
.nw-aside .nw-card + .nw-back {
	margin-top: -0.5rem;
}
.nw--event .nw-aside .ev-ics,
.nw--event .nw-aside .nw-share button {
	display: grid;
}
/* Novità: link all'archivio eventi */
.ev-archive {
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: 1.5rem;
}
.ev-archive span {
	font: 500 var(--fs-h3) var(--font-sans);
	letter-spacing: -0.02em;
	text-transform: none;
}
/* Novità: "Archivio eventi" come pulsante blu scuro */
.ev-archive-wrap {
	display: flex;
	justify-content: flex-end;
	margin-top: 1.5rem;
}
.ev-archive-wrap .ev-archive {
	display: inline-flex;
	align-items: center;
	gap: 1.25rem;
	margin: 0;
	padding: 0 1.5rem;
	min-height: 3rem;
	background: var(--ink);
	border: 0;
	color: #fff;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s;
}
.ev-archive-wrap .ev-archive:hover {
	background: var(--deep);
	color: #fff;
}
/* Eventi: anno come testo semplice sotto i giorni, senza riquadro */
.ev-cal .ev-year {
	align-self: flex-start;
	padding: 0;
	border: 0 !important;
	background: none;
	font: 500 var(--fs-body) var(--font-sans);
	letter-spacing: -0.01em;
	color: #ffffffb3 !important;
}
.ev-card.is-past .ev-cal .ev-year {
	color: var(--ink-2) !important;
}
/* Eventi: bandiera del paese al posto del segnaposto */
.ev-flag {
	display: inline-block;
	flex: none;
	width: 1.375rem;
	height: 0.9375rem;
	box-shadow: 0 0 0 1px var(--line);
	vertical-align: -2px;
}
.ev-card:hover .ev-flag {
	box-shadow: 0 0 0 1px #ffffff40;
}
.nw-aside .ev-where-dd {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
}
.nw-aside .ev-where-dd .ev-flag {
	margin-top: 0.1875rem;
}
/* Eventi: data e titolo della card alla stessa misura intermedia, più spazio a sinistra del luogo */
.ev-card .ev-cal b {
	font-size: var(--fs-title);
}
.ev-card .ev-body h3 {
	font-size: var(--fs-title) !important;
	margin: 0.75rem 0 0;
}
/* Novità: ogni notizia in un riquadro bianco separato */
body[data-page="novita"] .nv-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	border: 0;
	gap: 1.5rem !important;
}
body[data-page="novita"] .nv-card {
	box-shadow: none !important;
	color: var(--ink);
	padding-top: 1.25rem;
}
/* Novità: riga tra titolo e testo, "Leggi la notizia" in fascia blu scuro */
body[data-page="novita"] .nv-card h3 {
	font-size: var(--fs-title);
	margin: 1rem 0 0.875rem !important;
	padding-bottom: 0.875rem;
	border-bottom: 1px solid var(--line);
}
body[data-page="novita"] .nv-card p {
	max-width: 36rem;
	color: var(--ink-2);
	margin: 0 0 2rem;
}
body[data-page="novita"] .nv-card:hover {
	color: var(--ink);
	box-shadow: none !important;
	border-top-color: var(--ink) !important;
}
body[data-page="novita"] .nv-card:hover .nv-type {
	border-color: var(--line-2);
	color: var(--ink-2);
}
body[data-page="novita"] .nv-card:hover .nv-link span {
	background: #fff;
	border: 0;
	color: var(--ink);
	transform: none;
}
/* Novità: testo della fascia fermo al passaggio del mouse, più spazio sotto il testo */
body[data-page="novita"] .nv-card .nv-link,
body[data-page="novita"] .nv-card:hover .nv-link {
	margin-top: auto;
	border-top: 0;
	min-height: 3rem;
	padding: 0 0 0 1.75rem !important;
	background: var(--ink);
	color: #fff;
	transition: background-color 0.2s;
	margin: auto -1.75rem 0 !important;
	align-items: center !important;
}
body[data-page="novita"] .nv-card .nv-link {
	display: flex;
}
body[data-page="novita"] .nv-card .nv-link span {
	align-self: stretch;
	width: 3rem;
	height: auto;
	border: 0;
	background: var(--blue);
	color: #fff;
}
body[data-page="novita"] .nv-card:hover .nv-link {
	border-color: var(--line);
	background: var(--deep);
	color: #fff;
}
body[data-page="novita"] .nv-card,
body[data-page="novita"] .nv-card:hover {
	padding: 1.5rem 1.75rem 0 !important;
	background: #fff !important;
	border: 1px solid var(--line) !important;
	border-top: 3px solid var(--blue) !important;
}
body[data-page="novita"] .nv-card:hover {
	border-color: var(--blue) !important;
}
/* Novità: se le notizie sono dispari l ultima occupa tutta la riga */
body[data-page="novita"] .nv-grid > .nv-card:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}
.ev-list .ev-card {
	border: 1px solid var(--line) !important;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.ev-list .ev-card:hover {
	border-color: var(--blue) !important;
	box-shadow: 0 0 0 1px var(--blue);
}
.ev-card .ev-place {
	padding-left: 0;
	gap: 0.75rem !important;
	font: 500 var(--fs-mono) var(--font-mono);
	letter-spacing: 0.1em;
	color: var(--ink-2) !important;
	text-transform: uppercase;
}
.ev-card:hover .ev-place {
	color: var(--ink-2) !important;
}
.ev-card.is-past .ev-meta {
	border-bottom-color: var(--line);
}
/* Logo dell'evento: nelle card in alto a destra del testo, nella pagina evento in cima alla colonna */
.ev-card .ev-logo img,
.ev-aside-logo img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.ev-card.is-past .ev-logo img {
	filter: grayscale(1);
	opacity: 0.7;
}
.ev-aside-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
	padding: 1rem 1.5rem;
	background: #fff;
	border: 1px solid var(--line);
	box-sizing: border-box;
	height: 9rem;
}
.ev-card .ev-body.has-logo {
	padding-right: 13.5rem !important;
}
/* Eventi in programma: logo sopra i pulsanti */
.ev-card .ev-logo.ev-logo--actions {
	position: static;
	width: 100%;
	height: 5rem;
	margin: 0 0 0.25rem;
	align-self: stretch;
}
.ev-card .ev-actions:has(.ev-logo--actions) {
	justify-content: space-between;
	padding-top: 20px;
	padding-bottom: 20px;
}
@media (max-width: 1199.98px) {
	.nv-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 991.98px) {
	.ev-cta {
		grid-column: 1/-1;
		border-top: 1px solid var(--line-2);
	}
}
.ev-cta,
.ev-ics {
	display: inline-flex !important;
	align-items: center;
	gap: 0.75rem;
	min-height: 3rem;
	height: auto !important;
	padding: 0.75rem 1.5rem !important;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono);
	letter-spacing: 0.112em;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.ev-cta {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.ev-ics {
	border-color: var(--ink) !important;
}
@media (max-width: 991.98px) {
	.ev-ics {
		border-top: 0;
		border-left: 1px solid var(--line-2);
	}
	.ev-actions {
		flex-wrap: wrap;
	}
}
.ev-actions {
	min-width: 15rem;
	padding: 1.75rem;
	justify-content: center;
	align-items: stretch;
	gap: 0.75rem;
	border-left: 1px solid var(--line-2);
}
@media (max-width: 991.98px) {
	.ev-card {
		grid-template-columns: 8rem minmax(0, 1fr);
	}
	.ev-card::before {
		left: 8rem;
	}
	.ev-actions {
		grid-column: 1/-1;
		flex-direction: row;
		align-items: center;
		padding: 1.25rem;
		border-left: 0;
		border-top: 1px solid var(--line-2);
	}
	.ev-card .ev-actions {
		justify-content: flex-start;
	}
	.nv-grid--list {
		grid-template-columns: 1fr;
	}
	.nw-body {
		grid-template-columns: minmax(0, 1fr);
	}
	.nw-aside {
		position: static;
		order: 2;
	}
	.nv-grid--3 {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.nw-hero .px--heading {
		display: none;
	}
	.ev-card .ev-cal b,
	.ev-card .ev-body h3 {
		font-size: var(--fs-h3) !important;
	}
	.ev-card .ev-logo.ev-logo--actions {
		width: 10rem;
		margin: 0 1rem 0 0;
	}
	.ev-card .ev-actions:has(.ev-logo--actions) {
		padding-top: 1rem;
		padding-bottom: 1rem;
		align-items: center;
	}
}
@media (max-width: 767.98px) {
	body[data-page="novita"] .nv-grid {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 1rem !important;
	}
	body[data-page="novita"] .nv-card,
	body[data-page="novita"] .nv-card:hover {
		padding: 1.25rem 1.25rem 0 !important;
	}
	body[data-page="novita"] .nv-card .nv-link,
	body[data-page="novita"] .nv-card:hover .nv-link {
		margin: auto -1.25rem 0 !important;
		padding-left: 1.25rem !important;
	}
}
@media (max-width: 575.98px) {
	.nv-grid {
		grid-template-columns: 1fr;
	}
	.ev-card .ev-body {
		padding: 1rem 1.25rem !important;
	}
}
/* Card evento allineate: testo dal mese all'anno, logo e pulsanti dal mese all'anno */
.ev-card .ev-body {
	justify-content: space-between;
	padding-top: 20px !important;
	padding-bottom: 20px !important;
}
@media (max-width: 575.98px) {
	.ev-card .ev-logo {
		margin-left: 0.75rem;
	}
}
/* Logo evento più grande */
.ev-card .ev-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--line);
	box-sizing: border-box;
	width: 10rem;
	height: 5rem;
	padding: 0.5rem 0.75rem;
	position: absolute;
	top: 1.25rem;
	right: 1.5rem;
	float: none;
	margin: 0;
}
@media (max-width: 575.98px) {
	.ev-card .ev-logo {
		top: 1rem;
		left: 1.25rem;
		right: auto;
		width: 8rem;
		height: 4rem;
	}
	/* Eventi passati: logo sotto il testo come negli eventi in programma, stessa misura */
	.ev-card .ev-body.has-logo {
		padding-right: 1.25rem !important;
		padding-top: 1rem !important;
	}
	/* Card evento su mobile: a righe. Data su una riga in alto (mese, giorni, anno), poi testo, poi logo e pulsanti */
	.ev-card {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.ev-card::before {
		left: 0;
	}
	.ev-card .ev-cal {
		flex-direction: row;
		align-items: baseline;
		justify-content: flex-start;
		gap: 0.75rem;
		padding: 0.875rem 1.25rem;
	}
	.ev-card .ev-cal b {
		flex: none;
	}
	.ev-card .ev-cal .ev-year {
		align-self: baseline;
		margin-left: auto;
	}
	.ev-card .ev-actions,
	.ev-card .ev-actions:has(.ev-logo--actions) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 1rem;
		padding: 1rem 1.25rem;
	}
	.ev-card .ev-logo.ev-logo--actions {
		grid-column: 1 / -1;
		width: 8rem;
		height: 4rem;
		margin: 0;
	}
	.ev-card .ev-actions .ev-cta {
		grid-column: 1;
		justify-content: space-between;
	}
	.ev-card .ev-actions .ev-ics {
		grid-column: 2;
		border-left: 0;
	}
	.ev-card .ev-body.has-logo .ev-logo {
		position: static;
		order: 99;
		width: 8rem;
		height: 4rem;
		margin: 1rem 0 0;
	}
}

/* ==========================================================================
   21. Distributori
   ========================================================================== */

.ds-tabs button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}
.ds-grid {
	display: grid;
	gap: 1.5rem;
	border: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ds-card {
	display: flex;
	flex-direction: column;
	position: relative;
	padding: 0;
	background: #fff !important;
	border: 1px solid var(--line);
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.ds-card:not([hidden]) {
	animation: card-in 0.3s ease both;
}
.ds-head {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	background: var(--ink);
}
/* Distributori: bandiera accanto al paese */
.ds-country {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: #fff;
	font-size: var(--fs-mono);
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
}
.ds-type {
	margin-left: auto;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--line-2);
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	border-color: #ffffff4d;
	color: #c9d6e4;
}
.ds-card h3 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
	margin: 1.5rem 1.5rem 0.625rem;
}
.ds-addr {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	color: var(--ink-2);
	margin: 0 1.5rem 1.25rem;
}
.ds-addr svg {
	flex: none;
	margin-top: 0.2rem;
	color: var(--blue);
}
.ds-fams {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	padding: 0;
	gap: 0.375rem;
	margin: 0 1.5rem 1.5rem;
}
.ds-fams li {
	font: 500 var(--fs-label) var(--font-mono);
	letter-spacing: 0.096em;
	text-transform: uppercase;
	padding: 0.4375rem 0.75rem;
	background: var(--bg);
	color: var(--ink-2);
	transition:
		background-color 0.2s,
		color 0.2s;
}
/* Distributori: contatti della singola azienda. */
.ds-links {
	display: flex;
	flex-direction: column;
	background: #fff;
	margin: auto 0 0;
	border: 0;
	border-top: 1px solid var(--line);
}
.ds-links a {
	justify-content: space-between;
	color: var(--ink);
}
.ds-join {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 3rem;
	align-items: start;
}
.ds-join-copy h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.05;
	margin: 0 0 1rem;
}
.ds-join-copy > p {
	max-width: 46ch;
	color: var(--ink-2);
	margin: 0 0 2rem;
}
.ds-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--line-2);
}
.ds-steps li {
	display: grid;
	grid-template-columns: 3rem 1fr;
	padding: 1rem 0;
	border-bottom: 1px solid var(--line-2);
}
.ds-steps li > span {
	font: var(--fs-label) var(--font-mono);
	letter-spacing: 0.112em;
	color: var(--blue);
	padding-top: 0.25rem;
	text-transform: uppercase;
}
.ds-steps b {
	display: block;
	font-size: var(--fs-body);
	font-weight: 500;
	letter-spacing: -0.02em;
}
.ds-steps small {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--fs-small);
	color: var(--ink-2);
}
.ds-tabs [data-count],
.ds-tabs [data-ds-count] {
	font-style: normal;
}
.ds-link {
	display: grid !important;
	grid-template-columns: 2.5rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 0;
	padding: 0 !important;
	font: inherit !important;
	letter-spacing: 0 !important;
	transition:
		background 0.15s,
		color 0.15s;
	min-height: 3.5rem;
}
.ds-link + .ds-link {
	border-top: 1px solid var(--line);
}
.ds-link svg {
	justify-self: center;
	color: var(--blue);
}
.ds-link span {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	padding: 0.5rem 0.5rem 0.5rem 0.25rem;
	font-size: var(--fs-small);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ds-link small {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--muted);
}
.ds-link b {
	padding: 0 1rem;
	font: var(--fs-body) var(--font-sans);
	color: var(--muted);
	transition:
		transform 0.2s,
		color 0.2s;
}
.ds-link:hover {
	background: var(--ink);
}
.ds-link:hover svg,
.ds-link:hover small {
	color: #8cc8ec;
}
.ds-link:hover b {
	color: #fff;
	transform: translateX(3px);
}
.ds-link--web:hover b {
	transform: translate(2px, -2px);
}
.ds-card:hover .ds-links {
	border-color: var(--line-2);
}
.ds-links a.ds-link:hover {
	color: #fff;
}
/* Distributori: filtri staccati dalla griglia, card separate e più caratterizzate */
.ds-tabs {
	border: 1px solid var(--line);
	margin-bottom: 2rem;
}
.ds-tabs button {
	border-left: 1px solid var(--line);
}
.ds-tabs button:first-child {
	border-left: 0 !important;
}
.ds-fill {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	padding: 1.5rem;
	background: repeating-linear-gradient(135deg, var(--bg) 0 12px, var(--bg-dark) 12px 13px);
	color: var(--ink);
	transition:
		background 0.2s,
		color 0.2s;
	min-height: 0;
	border: 1px dashed var(--line-2);
}
.ds-fill > span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
.ds-fill b {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.03em;
}
.ds-fill i {
	font-style: normal;
	transition: transform 0.2s;
}
.ds-fill:hover {
	background: var(--blue);
	color: #fff;
}
.ds-fill:hover > span {
	color: var(--pale);
}
.ds-fill:hover i {
	transform: translateX(4px);
}
.ds-card:hover {
	background: #fff;
	border-color: var(--blue);
	box-shadow: 0 0 0 1px var(--blue);
}
.ds-grid[data-filter="DAQ"] .ds-fams li[data-f="DAQ"],
.ds-grid[data-filter="EMC"] .ds-fams li[data-f="EMC"],
.ds-grid[data-filter="RF"] .ds-fams li[data-f="RF"],
.ds-grid[data-filter="SDR"] .ds-fams li[data-f="SDR"] {
	background: var(--ink);
	color: #fff;
}
.ds-flag {
	display: block;
	flex: none;
	width: 1.5rem;
	height: 1rem;
	object-fit: cover;
	box-shadow: 0 0 0 1px #ffffff40;
}
@media (max-width: 991.98px) {
	.ds-join {
		grid-template-columns: 1fr;
	}
	.ds-tabs {
		grid-template-columns: repeat(3, 1fr);
	}
	.ds-tabs button:nth-child(4) {
		border-left: 0;
	}
	.ds-tabs button:nth-child(n + 4) {
		border-top: 1px solid var(--line);
	}
}
@media (max-width: 575.98px) {
	.ds-tabs {
		grid-template-columns: 1fr 1fr;
		margin-bottom: 1.25rem;
	}
	.ds-tabs button {
		border-top: 1px solid var(--line);
	}
	.ds-tabs button:nth-child(odd) {
		border-left: 0 !important;
	}
	.ds-tabs button:first-child {
		grid-column: auto;
	}
	.ds-grid {
		gap: 1rem;
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ==========================================================================
   22. Contatti
   ========================================================================== */

.contact-layout {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: 5rem;
}
.contact-layout h2 {
	margin: 1rem 0 1.5rem;
}
.contact-layout > div > p {
	max-width: 40ch;
	margin-bottom: 1.5rem;
}
.contact-email {
	font-size: var(--fs-h3);
	color: var(--deep);
	letter-spacing: -0.025em;
}
.contact-detail {
	display: grid;
	gap: 0.5rem;
	padding-top: 1.5rem;
	margin-top: 1.5rem;
	border-top: 1px solid var(--line);
}
.contact-detail > span {
	font: var(--fs-label) var(--font-mono);
	color: var(--muted);
	text-transform: uppercase;
}
.contact-detail address {
	font-style: normal;
	font-size: var(--fs-body);
}
.contact-layout > div > .text-link {
	margin-top: 1.5rem;
}
body[data-page="contatti"] main h2 {
	font-size: var(--fs-h2);
	line-height: 1.05;
	font-weight: 500;
	letter-spacing: -0.045em;
}
@media (max-width: 991.98px) {
	.contact-layout {
		gap: 2rem;
	}
}
@media (max-width: 575.98px) {
	.contact-layout {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.contact-email {
		font-size: var(--fs-h3);
	}
}

/* ==========================================================================
   23. Wishlist
   ========================================================================== */

.wl-list {
	padding-top: 1.5rem;
	padding-bottom: 4rem;
}
.wl-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--line);
}
.wl-table th {
	padding: 1rem 1.5rem;
	border-bottom: 1px solid var(--line);
	background: var(--bg-dark);
	font: 400 var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
	text-align: left;
}
.wl-table td {
	padding: 1rem 1.5rem;
	border-bottom: 1px solid var(--line);
	vertical-align: middle;
}
.wl-table th + th,
.wl-table td + td {
	border-left: 1px solid var(--line);
}
.wl-table th:first-child,
.wl-photo {
	width: 8.5rem;
}
.wl-table th:nth-child(3) {
	width: 11rem;
}
.wl-table th:nth-child(4) {
	width: 10rem;
}
.wl-table th:last-child {
	width: 4rem;
}
.wl-photo img,
.wl-photo > span {
	display: grid;
	place-items: center;
	width: 5.5rem;
	height: 5.5rem;
	object-fit: contain;
	background: var(--bg-dark);
	border: 1px solid var(--line);
	mix-blend-mode: multiply;
	font: var(--fs-label) var(--font-mono);
	color: var(--muted);
	text-transform: uppercase;
}
.wl-name a {
	display: block;
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--ink);
}
.wl-name a:hover,
.wl-contact__row svg {
	color: var(--blue);
}
.wl-name small,
.wl-cat small {
	display: block;
	margin-top: 0.5rem;
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
.wl-cat small {
	margin: 0 0 0.25rem;
}
.wl-cat span {
	font-size: var(--fs-small);
	color: var(--ink-2);
}
.wl-qty {
	display: inline-grid;
	grid-template-columns: 2.25rem 3.5rem 2.25rem;
	border: 1px solid var(--line-2);
	background: #fff;
}
.wl-qty button {
	height: 2.25rem;
	border: 0;
	background: var(--bg-dark);
	font-size: var(--fs-body);
	color: var(--ink);
}
.wl-qty button:hover {
	background: var(--line);
}
.wl-qty input {
	width: 100%;
	height: 2.25rem;
	border: 0;
	border-left: 1px solid var(--line-2);
	border-right: 1px solid var(--line-2);
	text-align: center;
	font-size: var(--fs-body);
	background: #fff;
	-moz-appearance: textfield;
}
.wl-qty input::-webkit-inner-spin-button,
.wl-qty input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.wl-remove {
	text-align: center;
}
.wl-remove button {
	width: 2rem;
	height: 2rem;
	border: 0;
	background: transparent;
	font-size: var(--fs-lead);
	color: var(--ink-2);
}
.wl-remove button:hover {
	color: #c0392b;
	background: var(--bg-dark);
}
.wl-foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.5rem;
	border: 1px solid var(--line);
	border-top: 0;
	background: var(--bg-dark);
}
.wl-foot > span {
	font: var(--fs-label) var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.112em;
	color: var(--ink-2);
}
.wl-foot > div {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.wl-btn {
	gap: 0.75rem !important;
	box-sizing: border-box;
	white-space: nowrap;
	transform: none;
}
.wl-btn-dark:hover {
	background: var(--deep) !important;
	border-color: var(--deep) !important;
	color: #fff !important;
}
.wl-empty {
	padding: 3rem;
	border: 1px solid var(--line);
	background: var(--bg);
}
.wl-empty h2 {
	font-size: var(--fs-h2);
	font-weight: 500;
	letter-spacing: -0.035em;
	margin: 1rem 0 0.5rem;
}
.wl-empty p {
	max-width: 50ch;
	margin: 0 0 1.5rem;
}
.wl-sales {
	background: var(--bg-dark);
	border-top: 1px solid var(--line);
	padding: 4rem 0 5rem;
}
/* Wishlist: titolo Sales più largo, card contatto in evidenza */
.wl-sales-head {
	padding-bottom: 3rem;
	margin-bottom: 3rem;
	border-bottom: 1px solid var(--line);
}
.wl-sales-head h2,
.wl-sales .wl-sales-head > div {
	max-width: none;
}
.wl-sales-head p {
	color: var(--ink-2);
}
.wl-sales-grid {
	gap: 4rem;
	align-items: start;
}
.wl-contact b {
	display: block;
	font-size: var(--fs-h3);
	font-weight: 500;
	letter-spacing: -0.025em;
}
.wl-contact small {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--fs-small);
	color: var(--ink-2);
}
.wl-btn > span {
	font: var(--fs-body) / 1 var(--font-sans) !important;
	letter-spacing: 0;
	transition: transform 0.2s;
}
.wl-btn:hover > span {
	transform: translateX(3px);
}
.wl-btn:not(.wl-btn-dark):hover {
	background: var(--blue);
	border-color: var(--blue) !important;
	color: #fff;
}
.wl-btn-dark span[aria-hidden],
.wl-btn:not(.wl-btn-dark) span[aria-hidden] {
	display: inline-block;
	transition: transform 0.2s;
	font-family: var(--font-mono) !important;
	font-weight: 500 !important;
	font-size: var(--fs-small) !important;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
.wl-btn-dark:hover span[aria-hidden],
.wl-btn:not(.wl-btn-dark):hover span[aria-hidden] {
	transform: translateX(0.25rem);
}
.wl-btn-dark:focus-visible,
.wl-btn:not(.wl-btn-dark):focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.wl-table,
.wl-empty {
	background: #fff;
}
body[data-page="wishlist"] main h2:not(.wl-empty h2) {
	font-size: var(--fs-h2);
	line-height: 1.05;
	font-weight: 500;
	letter-spacing: -0.045em;
}
.wl-contact--card {
	display: grid;
	gap: 0;
	padding: 2rem;
	background: var(--ink);
	border: 0;
	color: #fff;
}
.wl-contact__row {
	align-items: center;
	gap: 0.875rem;
	padding: 1rem 0;
	border-top: 1px solid #ffffff26;
	color: #fff !important;
	text-decoration: none;
	font-size: var(--fs-body);
	transition:
		color 0.2s,
		padding-left 0.2s;
}
.wl-contact__row:last-child {
	border-bottom: 1px solid #ffffff26;
}
.wl-contact__row i {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	background: var(--blue);
	color: #fff;
	font-style: normal;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.wl-contact__row:hover {
	color: #8cc8ec !important;
	padding-left: 0.375rem;
}
.wl-contact__row:hover i {
	background: #fff;
	color: var(--ink);
}
/* Wishlist: titolo a sinistra, card a destra, form a piena larghezza sotto */
.wl-sales .wl-sales-grid {
	display: block;
	grid-template-columns: none;
	margin: 0;
}
.wl-sales .wl-sales-grid > * {
	max-width: none;
	width: 100%;
}
.wl-sales-head .wl-contact.wl-contact--card {
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	margin: 0;
}
.wl-sales-head .wl-contact--card > * {
	grid-column: 1;
}
.wl-sales-head .wl-contact--card > b {
	font: 500 var(--fs-h3) / 1.25 var(--font-sans);
	color: #fff;
}
.wl-sales-head .wl-contact--card > p {
	margin: 0.625rem 0 1.5rem;
	max-width: none;
	font: var(--fs-body) / var(--lh-text) var(--font-sans) !important;
	letter-spacing: 0;
	text-transform: none;
	color: #b7c6d8;
}
.wl-sales-head .wl-contact--card .wl-contact__row {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr) 2rem;
	font: var(--fs-body) var(--font-sans);
}
.wl-sales-head .wl-contact--card .wl-contact__row + .wl-contact__row {
	border-top: 1px solid #ffffff26;
}
/* Wishlist come Contatti: colonne .85fr / 1.15fr, 80px tra le colonne, niente sticky */
.wl-sales > .wrap {
	display: grid;
	align-items: start;
	grid-template-columns: 0.85fr 1.15fr;
	gap: 5rem;
}
.wl-sales .wl-sales-head h2 {
	margin: 1rem 0 1.5rem;
}
.wl-sales .wl-sales-head > div:first-child > p {
	max-width: 40ch;
	margin: 0 0 1.5rem;
}
.wl-sales .wl-sales-head .wl-contact--card {
	margin-top: 1rem;
}
@media (max-width: 1199.98px) {
	.wl-sales > .wrap {
		gap: 2rem;
	}
}
@media (max-width: 991.98px) {
	.wl-sales-grid {
		gap: 3rem;
	}
	.wl-table thead {
		display: none;
	}
	.wl-table,
	.wl-table tbody {
		display: block;
	}
	.wl-table tr {
		display: grid;
		grid-template-columns: 5.5rem 1fr auto;
		grid-template-areas: "ph nm rm" "ph ct ct" "qt qt qt";
		gap: 0.5rem 1rem;
		padding: 1rem;
		border-bottom: 1px solid var(--line);
	}
	.wl-table td {
		padding: 0;
		border: 0 !important;
		width: auto;
	}
	.wl-photo {
		grid-area: ph;
	}
	.wl-name {
		grid-area: nm;
	}
	.wl-cat {
		grid-area: ct;
	}
	.wl-remove {
		grid-area: rm;
	}
	.wl-table td:nth-child(4) {
		grid-area: qt;
	}
	.wl-photo img,
	.wl-photo > span {
		width: 5.5rem;
		height: 5.5rem;
	}
	.wl-name a {
		font-size: var(--fs-body);
	}
	.wl-cat small {
		display: inline;
		margin-right: 0.5rem;
	}
}
.wl-sales .wl-sales-head {
	position: static;
	gap: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	margin: 0;
	top: 7rem;
}
@media (max-width: 991.98px) {
	.wl-sales > .wrap {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}
@media (max-width: 575.98px) {
	.wl-sales {
		padding: 3rem 0;
	}
	.wl-foot > div,
	.wl-foot .wl-btn {
		width: 100%;
		justify-content: space-between;
	}
}
.wl-btn-dark,
.wl-btn:not(.wl-btn-dark) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	height: auto;
	padding: 0.75rem 1.5rem;
	font: 600 var(--fs-mono) / 1.2 var(--font-mono);
	letter-spacing: 0.112em;
	text-transform: uppercase;
	text-align: center;
	border-radius: 0 !important;
	border: 1.5px solid !important;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.wl-btn-dark {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
}
.wl-btn:not(.wl-btn-dark) {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	color: #fff !important;
}
@media (max-width: 575.98px) {
	.wl-btn {
		white-space: normal;
	}
}

/* ==========================================================================
   24. Pagine di testo (privacy, cookie) e 404
   ========================================================================== */

/* Contenuti dall'editor. */
.entry-content > *:first-child,
.nw-content > :first-child,
.entry-content h2:first-child {
	margin-top: 0;
}
.entry-content p {
	max-width: 48rem;
	margin: 0 0 1rem;
}
.entry-content h2 {
	letter-spacing: -0.02em;
	scroll-margin-top: calc(var(--chrome-h, 7rem) + 1rem);
}
.entry-content h3 {
	font-weight: 500;
	letter-spacing: -0.02em;
	margin: 1.75rem 0 0.5rem !important;
}
.entry-content img {
	max-width: 100%;
	height: auto;
}
.entry-content p,
.entry-content li {
	font-size: var(--fs-body);
	line-height: 1.6;
	color: var(--ink-2);
}
.entry-content ul {
	margin: 0 0 1.25rem;
	padding-left: 1.25rem;
}
.entry-content li {
	margin-bottom: 0.5rem;
}
.entry-content li::marker {
	color: var(--blue);
}
.entry-content strong {
	color: var(--ink);
	font-weight: 600;
}
.entry-content a {
	color: var(--deep);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.entry-content a:hover,
.lg-page .lg-intro p {
	color: var(--ink);
}
.lg-page .lg-intro {
	margin-bottom: 3rem;
}
.lg-page .lg-head h2 {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	font-size: var(--fs-h3);
	font-weight: 500;
	line-height: 1.2;
}
.lg-page .lg-head h2::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	margin-top: 0.45em;
	background: var(--blue);
}
.lg-page .lg-body :is(p, ul, li) {
	max-width: none;
}
.lg-page .lg-body > :first-child,
.lg-page .lg-body > h3:first-child {
	margin-top: 0 !important;
}
.lg-page .lg-body > :last-child {
	margin-bottom: 0;
}
.lg-page .lg-body h3 {
	margin: 2rem 0 0.5rem !important;
	font-size: var(--fs-body) !important;
	font-weight: 600;
	color: var(--ink);
}

/* ==========================================================================
   25. Animazioni e comparse allo scroll
   ========================================================================== */

.js-reveal .rv:not(.is-in) {
	opacity: 0;
}
.js-reveal .rv.is-in {
	animation: rv-in 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) var(--rd, 0ms) both;
}
.js-reveal .az-tl-track li.rv.is-in {
	animation-duration: 0.5s;
}
@media print {
	.js-reveal .rv {
		opacity: 1 !important;
		animation: none !important;
	}
}
@keyframes cfg-sig {
	0%,
	70%,
	100% {
		border-color: #ffffff2e;
		background: transparent;
	}
	10%,
	25% {
		border-color: var(--blue);
		background: #3b82f622;
	}
}
@keyframes cfg-slot {
	0%,
	60%,
	100% {
		box-shadow: none;
	}
	8%,
	20% {
		box-shadow:
			inset 0 0 0 1px currentColor,
			0 0 18px -4px currentColor;
	}
}
@keyframes rv-in {
	from {
		opacity: 0;
		transform: translateY(1.25rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
/* Movimento: linea di processo che si riempie, tappe in sequenza, pixel che pulsano, card che salgono. */
@keyframes ek-blink {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.25;
	}
}

/* ==========================================================================
   26. Preloader
   ========================================================================== */

.preloader {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: grid;
	place-items: center;
	background: var(--ink);
	color: #fff;
	transition: clip-path 0.7s cubic-bezier(0.7, 0, 0.2, 1);
	clip-path: inset(0 0 0 0);
}
.pl-skip .preloader {
	display: none;
}
html.pl-on {
	overflow: hidden;
}
.preloader.is-out {
	clip-path: inset(0 0 100% 0);
}
.pl-inner {
	width: min(22rem, 80vw);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	transition:
		opacity 0.3s,
		transform 0.5s;
}
.preloader.is-out .pl-inner {
	opacity: 0;
	transform: translateY(-1.5rem);
}
.pl-bar {
	display: grid;
	grid-template-columns: repeat(32, 1fr);
	gap: 3px;
}
.pl-bar i {
	aspect-ratio: 1;
	background: #ffffff14;
	transition: background 0.2s;
}
.pl-bar i.on {
	background: var(--blue);
}
.pl-bar i.on:nth-child(5n) {
	background: #8cc8ec;
}
/* Logo bianco ufficiale: niente filtro. */
.pl-logo {
	filter: none;
	width: 10rem;
}
@media print {
	.preloader {
		display: none;
	}
}

/* ==========================================================================
   27. Smooth scroll (Lenis)
   ========================================================================== */

html.lenis {
	scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
	overflow: hidden;
}
.lenis [data-lenis-prevent],
.lenis .mega-shell {
	overscroll-behavior: contain;
}
/* Lenis 1.3: CSS consigliato */
html.lenis,
html.lenis body {
	height: auto;
}
.lenis:not(.lenis-autoToggle).lenis-stopped {
	overflow: clip;
}
.lenis.lenis-smooth iframe {
	pointer-events: none;
}
