/**
 * Gamapack – stili dei componenti
 *
 * I colori NON si scrivono qui: si leggono dai colori globali del kit di Elementor
 * (Elementor > Impostazioni del sito > Colori globali), unico pannello dal 2026-10-24 (fase 4).
 *   --e-global-color-primary          Blu azione          #006BAD  bottoni, link
 *   --e-global-color-gp_hover         Blu azione scuro    #00588F  hover
 *   --e-global-color-secondary        Inchiostro          #0F2130  titoli, footer
 *   --e-global-color-text             Testo               #3A4A57
 *   --e-global-color-sfondo           Fondo               #F4F7FA  fondo della pagina
 *   --e-global-color-gp_bianco        Bianco              #FFFFFF
 *   --e-global-color-accent           Ciano Gamapack      #009FE3  logo, dettagli (mai sotto testo bianco)
 *   --e-global-color-gp_nota          Nota                #5F6F7C  didascalie
 *   --e-global-color-gp_ghiaccio      Ghiaccio            #E6F4FC  fondi evidenziati
 *   --e-global-color-linea            Filetto             #DCE4EB  bordi e divisori (--gp-filetto)
 *   --e-global-color-gp_cipria        Cipria              #EAD9DC  velo delle foto (--gp-cipria)
 *   --e-global-color-gp_footer_testo  Footer testo        #C9D6E1  (--gp-footer-testo, --gp-footer-riga)
 *   --e-global-color-gp_footer_note   Footer note         #9FB3C4  (--gp-footer-nota)
 *   --e-global-color-gp_footer_link   Footer link chiaro  #4CC3F5  (--gp-footer-link-h)
 *   --e-global-color-gp_bordo_campo   Bordo campo         #B9C7D3  bordo dei campi (--gp-bordo-campo)
 * I valori qui sopra sono solo un promemoria: per cambiare un colore si cambia il kit.
 * Ombre, trasparenze e i blu del riquadro "Tutte le famiglie" sono token qui sotto, scritti una volta sola.
 *
 * Breakpoint (solo questi): 767 / 1024 (Elementor: telefono / tablet), 921 / 922 (Astra: layout del negozio),
 * 782 (barra di amministrazione di WordPress), 520 (solo la nota dei cookie). Le media query non leggono le
 * variabili, quindi i numeri si scrivono qui sotto, sempre questi.
 *
 * !important: solo con il commento sulla stessa riga che dice cosa batte (standard Officina, regola 8).
 */

:root {
	--gp-filetto: var(--e-global-color-linea);       /* bordi e divisori */
	--gp-bordo-campo: var(--e-global-color-gp_bordo_campo); /* bordo dei campi modulo */
	--gp-cipria: var(--e-global-color-gp_cipria);        /* velo delle foto d'atmosfera */
	--gp-header-h: 92px;         /* altezza header desktop (Astra: 68 / 64 / 60) */
	--gp-raggio: 8px;            /* bottoni, campi, chip */
	--gp-raggio-l: 14px;         /* schede, foto, riquadri, galleria */
	--gp-font-mono: 'Geist Mono', 'Geist Mono Fallback', 'Geist Mono Fallback DejaVu', ui-monospace, 'SF Mono', Menlo, monospace; /* codici, misure, etichette */
	/* Font (Design 2026, dal 04/10/2026): Geist self-hosted, file in assets/fonts/. Astra ha i font su "Inherit":
	   per cambiare font si cambiano questi token e le @font-face qui sotto (e i font globali del kit Elementor).
	   Dopo il nome del font, i font di riserva tarati (06/10/2026, sezione "Font del sito"): servono contro il salto del testo. */
	--gp-font-titoli: 'Geist', 'Geist Fallback Arial', 'Geist Fallback Roboto', 'Geist Fallback DejaVu', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--gp-font-testo: 'Geist', 'Geist Fallback Arial', 'Geist Fallback Roboto', 'Geist Fallback DejaVu', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--gp-peso-titoli: 650;       /* Geist e' variabile: 650 = tra semibold e bold */
	--gp-peso-sottotitoli: 600;  /* titoli piccoli (righe, persone, FAQ, footer) */
	--gp-ombra-1: 0 1px 2px rgba(15, 33, 48, .05), 0 4px 14px -6px rgba(15, 33, 48, .10);  /* riquadri fermi */
	--gp-ombra-2: 0 2px 4px rgba(15, 33, 48, .04), 0 18px 36px -14px rgba(15, 33, 48, .22); /* schede sollevate */
	--gp-ombra-blu: 0 10px 22px -10px rgba(0, 107, 173, .65);                              /* bottoni al passaggio */
	--gp-ombra-header: 0 1px 0 var(--gp-filetto), 0 6px 20px rgba(15, 33, 48, .06);         /* header bianco allo scorrimento */
	--gp-ombra-vetro: 0 1px 0 rgba(220, 228, 235, .9), 0 10px 30px -18px rgba(15, 33, 48, .25); /* header a vetro (computer) */
	--gp-ombra-modulo: 0 12px 40px rgba(15, 33, 48, .06);                                    /* riquadro del modulo contatti */
	--gp-ombra-barra: 0 -6px 20px rgba(15, 33, 48, .06);                                     /* barra fissa della scheda prodotto */
	--gp-ombra-pannello: 4px 0 30px rgba(15, 33, 48, .25);                                   /* pannello dei filtri (telefono) */
	--gp-ombra-nota: 0 6px 24px rgba(15, 33, 48, .12);                                       /* nota dei cookie */
	--gp-ombra-menu: -24px 0 48px -24px rgba(15, 33, 48, .35);                               /* menu a scomparsa */
	--gp-ombra-btn-scuro: 0 10px 22px -10px rgba(15, 33, 48, .55);                           /* bottone secondario al passaggio */
	--gp-ombra-btn-chiaro: 0 10px 22px -10px rgba(0, 0, 0, .6);                              /* bottone chiaro al passaggio */
	--gp-ombra-famiglie: 0 20px 40px -16px rgba(0, 88, 143, .7);                             /* riquadro "Tutte le famiglie" al passaggio */
	--gp-velo-filtri: rgba(15, 33, 48, .45);  /* fondo dietro il pannello dei filtri */
	--gp-velo-menu: rgba(15, 33, 48, .55);    /* fondo dietro il menu a scomparsa */
	--gp-vetro: rgba(255, 255, 255, .78);     /* header a vetro */
	--gp-riga-su-scuro: rgba(201, 214, 225, .18); /* divisori sulla barra scura dei numeri (Footer testo al 18%) */
	--gp-sfondo-0: rgba(244, 247, 250, 0);    /* Fondo trasparente, inizio delle sfumature */
	--gp-blu-famiglie: #2F6FAE;               /* riquadro "Tutte le famiglie": sfumatura */
	--gp-blu-famiglie-2: #245B92;
	--gp-blu-famiglie-hover: #2A66A2;         /* al passaggio (e colore pieno di riserva) */
	--gp-blu-famiglie-hover-2: #1F5184;
	--gp-ease: cubic-bezier(.2, .7, .2, 1);  /* unica curva per le transizioni */
	--gp-durata: .28s;
}

/* Token della libreria Officina WP (--ow-*, usati dai componenti ow-): leggono i valori di Gamapack,
   che restano la fonte unica (kit di Elementor e --gp-*). Non scrivere valori qui (05/10/2026). */
:root {
	--ow-color-text: var(--e-global-color-secondary);
	--ow-color-surface: var(--e-global-color-gp_bianco);
	--ow-color-primary: var(--e-global-color-primary);
	--ow-color-line: var(--gp-filetto);
	--ow-radius: var(--gp-raggio);
	--ow-radius-l: var(--gp-raggio-l);
	--ow-font-heading: var(--gp-font-titoli);
	--ow-font-body: var(--gp-font-testo);
	--ow-font-mono: var(--gp-font-mono);
	--ow-weight-heading: var(--gp-peso-titoli);
	--ow-weight-subheading: var(--gp-peso-sottotitoli);
	--ow-ease: var(--gp-ease);
	--ow-duration: var(--gp-durata);
	--ow-shadow-1: var(--gp-ombra-1);
	--ow-shadow-2: var(--gp-ombra-2);
}

/* ---------- Titoli ---------- */
h1 { text-transform: none; }

/* ---------- Catalogo WooCommerce ---------- */
.woocommerce-ordering { margin-top: 13px; margin-bottom: 10px; }
.orderby { padding-top: 0; }
.ast-woocommerce-container { padding-top: 18px; }

body.tax-product_cat #primary section.ast-archive-description > p {
	font-size: 16px;
	line-height: 1.35;
	margin: 8px 0;
	font-weight: 400;
}

/* Paginazione */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	color: var(--e-global-color-secondary);
	background-color: var(--e-global-color-gp_bianco);
	border: 1px solid var(--gp-filetto) !important; /* !important: batte Astra (bordo tratteggiato della paginazione al focus) */
	border-radius: var(--gp-raggio);
	box-shadow: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus-visible {
	color: var(--e-global-color-gp_bianco) !important; /* !important: batte WooCommerce e Astra (paginazione: pagina corrente e passaggio del mouse) */
	background-color: var(--e-global-color-primary) !important; /* !important: batte WooCommerce e Astra (paginazione: pagina corrente e passaggio del mouse) */
	border-color: var(--e-global-color-primary) !important; /* !important: batte WooCommerce e Astra (paginazione: pagina corrente e passaggio del mouse) */
}

/* Bottone lente ricerca prodotti */
.wp-block-search__button,
.wp-block-woocommerce-product-search button,
.woocommerce-product-search button {
	background-color: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
	color: var(--e-global-color-gp_bianco);
	border-radius: var(--gp-raggio);
}
.wp-block-search__button:hover,
.wp-block-woocommerce-product-search button:hover,
.woocommerce-product-search button:hover {
	background-color: var(--e-global-color-gp_hover) !important; /* !important: batte lo Stile del tema del kit (button:hover) */
	border-color: var(--e-global-color-gp_hover) !important; /* !important: batte lo Stile del tema del kit (button:hover) */
}

/* ---------- Filtro mobile (bottone + pannello) ---------- */
.gp-filtro-btn,
.gp-filtro-chiudi { display: none; }

@media (max-width: 921px) {
	.gp-filtro-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		min-height: 48px;
		margin: 0 0 22px;
		padding: 12px 18px;
		background: var(--e-global-color-primary);
		color: var(--e-global-color-gp_bianco);
		border: none;
		border-radius: var(--gp-raggio);
		font-size: 16px;
		font-weight: 700;
		line-height: 1.2;
		cursor: pointer;
	}
	/* icona lente disegnata in CSS, niente emoji */
	.gp-filtro-btn::before {
		content: "";
		width: 18px;
		height: 18px;
		background: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
		        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	body.woocommerce #secondary {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 85%;
		max-width: 360px;
		height: 100vh;
		z-index: 999999;
		background: var(--e-global-color-gp_bianco);
		padding: 28px 24px;
		overflow-y: auto;
		box-shadow: var(--gp-ombra-pannello);
		transform: translateX(-105%);
		transition: transform 0.3s ease;
	}
	body.gp-filtro-aperto #secondary { transform: none; }
	body.gp-filtro-aperto::after {
		content: "";
		position: fixed;
		inset: 0;
		background: var(--gp-velo-filtri);
		z-index: 999998;
	}
	.gp-filtro-chiudi {
		display: block;
		width: 100%;
		min-height: 44px;
		margin-bottom: 24px;
		padding: 12px 16px;
		background: var(--e-global-color-secondary);
		color: var(--e-global-color-gp_bianco);
		border: none;
		border-radius: var(--gp-raggio);
		font-size: 15px;
		font-weight: 700;
		cursor: pointer;
	}
	body.woocommerce #primary { width: 100%; }
	body.woocommerce #secondary .woocommerce-product-search,
	body.woocommerce #secondary .widget_product_search form { display: flex; gap: 10px; }
	body.woocommerce #secondary .woocommerce-product-search input,
	body.woocommerce #secondary .widget_product_search input { flex: 1; }
	body.woocommerce #secondary .widget { margin-bottom: 28px; }
}

/* ---------- Modulo contatti (SureForms) ---------- */
.contact-smooth-form button#srfm-submit-btn {
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.contact-smooth-form button#srfm-submit-btn:hover {
	background-color: var(--e-global-color-gp_hover);
	color: var(--e-global-color-gp_bianco);
	transform: translateY(-2px);
}

/* ---------- Informativa cookie ---------- */
#gp-cookie-note {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 99999;
	max-width: 780px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	padding: 14px 18px;
	background: var(--e-global-color-gp_bianco);
	color: var(--e-global-color-text);
	border: 1px solid var(--gp-filetto);
	border-radius: var(--gp-raggio);
	box-shadow: var(--gp-ombra-nota);
	font-size: 14px;
	line-height: 1.5;
	animation: gp-cookie-in 0.35s ease-out;
}
#gp-cookie-note[hidden] { display: none; }
#gp-cookie-note p { margin: 0; flex: 1 1 320px; }
#gp-cookie-note a { color: var(--e-global-color-primary); text-decoration: underline; }
#gp-cookie-note button {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 10px 20px;
	background: var(--e-global-color-primary);
	color: var(--e-global-color-gp_bianco);
	border: none;
	border-radius: var(--gp-raggio);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
#gp-cookie-note button:hover { background: var(--e-global-color-gp_hover); }
@keyframes gp-cookie-in {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}
@media (max-width: 520px) {
	#gp-cookie-note {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		left: 10px;
		right: 10px;
		bottom: 10px;
		padding: 12px 14px;
		font-size: 13px;
	}
	#gp-cookie-note p { flex: 0 0 auto; }
	#gp-cookie-note button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	#gp-cookie-note { animation: none; }
}

/* ---------- Font del sito: Geist (variabile, tutti i pesi) e Geist Mono 500, self-hosted, solo latin ---------- */
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 100 900; /* un solo file variabile per tutti i pesi */
	font-display: swap;
	src: url('../fonts/geist-latin-var.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Geist Mono';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/geist-mono-500-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Font di riserva tarati su Geist (06/10/2026): un font di sistema con larghezza e altezza corrette
   (size-adjust, ascent/descent-override) occupa lo stesso spazio di Geist. Prima che Geist arrivi il
   testo va a capo negli stessi punti, quindi quando arriva non si sposta nulla (CLS da font = 0).
   Uno per sistema: Arial (Windows, Mac, iPhone; Liberation Sans e Arimo hanno le stesse misure,
   Linux), Roboto (Android), DejaVu Sans (Linux senza Arial). Pesi fino a 549 tarati su Geist 400,
   da 550 su Geist 625 (titoli 650, sottotitoli e bottoni 600). Valori calcolati con harfbuzz sui testi
   del sito: wp-sviluppo -> scripts/font-fallback.py. Se cambia il font, si ricalcolano. */
@font-face {
	font-family: 'Geist Fallback Arial';
	src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'), local('Arimo');
	font-weight: 100 549;
	size-adjust: 101.78%;
	ascent-override: 98.74%;
	descent-override: 28.98%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Fallback Arial';
	src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
	font-weight: 550 900;
	size-adjust: 100.39%;
	ascent-override: 100.11%;
	descent-override: 29.39%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Fallback Roboto';
	src: local('Roboto'), local('Roboto-Regular'), local('Roboto Regular');
	font-weight: 100 549;
	size-adjust: 102.24%;
	ascent-override: 98.3%;
	descent-override: 28.85%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Fallback Roboto';
	src: local('Roboto Bold'), local('Roboto-Bold');
	font-weight: 550 900;
	size-adjust: 106.08%;
	ascent-override: 94.74%;
	descent-override: 27.81%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Fallback DejaVu';
	src: local('DejaVu Sans'), local('DejaVuSans');
	font-weight: 100 549;
	size-adjust: 89.43%;
	ascent-override: 112.38%;
	descent-override: 32.99%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Fallback DejaVu';
	src: local('DejaVu Sans Bold'), local('DejaVuSans-Bold');
	font-weight: 550 900;
	size-adjust: 83.71%;
	ascent-override: 120.06%;
	descent-override: 35.24%;
	line-gap-override: 0%;
}
/* Geist Mono ha le stesse larghezze di Courier New: si tarano solo ascendenti e discendenti. */
@font-face {
	font-family: 'Geist Mono Fallback';
	src: local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('LiberationMono'), local('Cousine');
	size-adjust: 99.98%;
	ascent-override: 100.52%;
	descent-override: 29.5%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Geist Mono Fallback DejaVu';
	src: local('DejaVu Sans Mono'), local('DejaVuSansMono'), local('Droid Sans Mono'), local('DroidSansMono');
	size-adjust: 99.66%;
	ascent-override: 100.84%;
	descent-override: 29.6%;
	line-gap-override: 0%;
}
.gp-mono { font-family: var(--gp-font-mono); font-weight: 500; }

/* Codici prodotto in monospazio: titoli nel catalogo e nella scheda */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.widget_products .product-title { font-family: var(--gp-font-mono); font-weight: 500; letter-spacing: 0; }

/* overflow-x: clip al posto di hidden, altrimenti l'header sticky non funziona */
body { overflow-x: clip; }

/* =====================================================================
   Componenti riusabili (usati dalla home e riusabili in altre pagine)
   ===================================================================== */

/* Bottone secondario: aggiungi la classe gp-btn-secondary al widget Pulsante */
.gp-btn-secondary .elementor-button {
	background-color: transparent;
	color: var(--e-global-color-secondary);
	box-shadow: inset 0 0 0 1.5px var(--e-global-color-secondary);
}
.gp-btn-secondary .elementor-button:hover,
.gp-btn-secondary .elementor-button:focus-visible {
	background-color: var(--e-global-color-secondary);
	color: var(--e-global-color-gp_bianco);
}

/* Testo introduttivo delle sezioni */
.gp-lead, .gp-lead p { font-size: 18px; line-height: 1.6; max-width: 36em; margin: 0; }
.gp-section-link p, .gp-lead p:last-child { margin: 0; }

/* Link con freccia */
.gp-arrow-link { font-weight: 700; font-size: 17px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.gp-arrow-link::after { content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s ease; }
.gp-arrow-link:hover::after { transform: translateX(3px); }

/* Etichetta piccola (chip) */
.gp-chip p { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; margin: 0;
	background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio);
	color: var(--e-global-color-secondary); font-size: 14px; font-weight: 700; }

/* Velo cipria sulle foto d'atmosfera (mai sulle foto prodotto) */
.gp-velo { position: relative; overflow: hidden; }
.gp-velo::after { content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(135deg, var(--e-global-color-gp_ghiaccio) 0%, var(--gp-cipria) 100%);
	opacity: .35; mix-blend-mode: multiply; }

/* =====================================================================
   Home
   ===================================================================== */

/* Hero: fondo bianco che sfuma in ghiaccio e cipria sul lato della foto */

.gp-hero__title .elementor-heading-title { font-size: clamp(34px, 4vw, 56px); line-height: 1.06; letter-spacing: -1px; max-width: 12em; }
.gp-hero__lead p { font-size: 19px; line-height: 1.6; max-width: 26em; margin: 0; }
.gp-hero__img img { mix-blend-mode: multiply; width: 100%; height: auto; }

@media (max-width: 767px) { .gp-hero__actions .elementor-widget-button, .gp-hero__actions .elementor-button { width: 100%; } }

/* Numeri (barra scura): 4 colonne di uguale larghezza con filetto, 2x2 fino a 1024 px.
   Si usano le variabili dei container di Elementor (--flex-*, --padding-*, --gap) con
   specificità .gp-facts .gp-fact.e-con: .e-con.e-flex di Elementor è caricato dopo questo
   file e reimposta flex e padding (03/10/2026). */
.gp-facts { background: var(--e-global-color-secondary); }
.gp-facts > .e-con-inner { --flex-wrap: nowrap; --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.gp-facts .gp-fact.e-con { --flex-grow: 1; --flex-shrink: 1; --flex-basis: 0%; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 32px; --padding-right: 32px; border-left: 1px solid var(--gp-riga-su-scuro); }
.gp-facts .gp-fact.e-con:first-child { --padding-left: 0px; border-left: 0; }
.gp-facts .gp-fact.e-con:last-child { --padding-right: 0px; }
.gp-fact__num .elementor-heading-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 34px; line-height: 1.1; color: var(--e-global-color-gp_footer_link); }
.gp-fact__label p { margin: 0; color: var(--e-global-color-gp_footer_testo); font-size: 16px; }
@media (max-width: 1024px) {
	.gp-facts > .e-con-inner { --flex-wrap: wrap; --gap: 8px 16px; --row-gap: 8px; --column-gap: 16px; }
	.gp-facts .gp-fact.e-con { --flex-grow: 0; --flex-shrink: 0; --flex-basis: calc(50% - 8px); --padding-top: 12px; --padding-bottom: 12px; --padding-left: 0px; --padding-right: 0px; border-left: 0; }
	.gp-fact__num .elementor-heading-title { font-size: 28px; }
}

/* Famiglie di prodotto: griglia senza card (le croci sono state tolte il 25/09) */
.gp-fam__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 290px; gap: 0; }
.gp-fam__grid > .gp-fam { width: auto; flex-wrap: nowrap; gap: 8px; min-width: 0; }
/* margine negativo: il bordo del riquadro in hover si allinea al titolo della sezione */
.gp-fam__grid { margin-left: -8px; margin-right: -8px; width: calc(100% + 16px); }
.gp-fam { position: relative; margin: 8px; padding: 16px 20px; border-radius: var(--gp-raggio); text-decoration: none; transition: background-color .25s ease; overflow: visible; }
.gp-fam:hover, .gp-fam:focus-visible { background-color: var(--e-global-color-gp_bianco); }
.gp-fam__img { align-self: stretch; width: 100%; max-width: 100%; flex-grow: 1; display: flex; align-items: center; justify-content: center; }
.gp-fam__img img { width: 190px; height: 190px; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s ease; }
.gp-fam:hover .gp-fam__img img { transform: scale(1.06); }
.gp-fam__name .elementor-heading-title { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 20px; line-height: 1.2; color: var(--e-global-color-secondary); transition: color .2s ease; }
.gp-fam__name .elementor-heading-title::after { content: "\2192"; color: var(--e-global-color-primary); opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .25s ease; }
.gp-fam:hover .gp-fam__name .elementor-heading-title { color: var(--e-global-color-primary); }
.gp-fam:hover .gp-fam__name .elementor-heading-title::after { opacity: 1; transform: none; }
.gp-fam--all { padding: 28px 30px; background: linear-gradient(135deg, var(--gp-blu-famiglie) 0%, var(--gp-blu-famiglie-2) 100%); }
.gp-fam--all:hover { background: linear-gradient(135deg, var(--gp-blu-famiglie-hover) 0%, var(--gp-blu-famiglie-hover-2) 100%); }
.gp-fam__all-title .elementor-heading-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 24px; line-height: 1.25; color: var(--e-global-color-gp_bianco); }
.gp-fam__all-link p { margin: 0; font-weight: 700; font-size: 18px; color: var(--e-global-color-gp_bianco); }
@media (max-width: 1024px) {
	.gp-fam__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 250px; }
}
@media (max-width: 767px) {
	.gp-fam__grid { grid-auto-rows: 200px; }
	.gp-fam__grid { margin-left: -4px; margin-right: -4px; width: calc(100% + 8px); }
	.gp-fam { margin: 4px; padding: 12px; }
	.gp-fam__img { min-height: 0; }
	.gp-fam__img img { width: 120px; height: 120px; }
	.gp-fam__name .elementor-heading-title { font-size: 17px; }
	.gp-fam--all { grid-column: 1 / -1; padding: 22px; }
	.gp-fam__all-title .elementor-heading-title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .gp-fam, .gp-fam__img img, .gp-fam__name .elementor-heading-title::after { transition: none; } }

/* Carosello disegni tecnici: riquadro (il carosello e' il componente gp-slider, sotto) */
.gp-disegni__stage { border-radius: var(--gp-raggio); overflow: hidden; }

/* Made in Italy */
.gp-mii { background: var(--e-global-color-gp_bianco); }
.gp-mii__media { min-height: 460px; }
.gp-mii__img, .gp-mii__img img { width: 100%; height: 100%; }
.gp-mii__img img { object-fit: cover; min-height: 460px; display: block; }
.gp-mii .gp-mii__text { padding: 56px 112px 56px 80px; background: var(--e-global-color-secondary); }
@media (max-width: 1024px) { .gp-mii .gp-mii__text { padding: 48px 40px; } }
@media (max-width: 767px) { .gp-mii__media, .gp-mii__img img { min-height: 260px; } .gp-mii .gp-mii__text { padding: 40px 24px; } }

/* Fascia finale */
.gp-cta { background: linear-gradient(100deg, var(--e-global-color-gp_ghiaccio) 0%, var(--gp-cipria) 100%); max-width: none !important; } /* !important: batte Elementor (frontend.min.css: .e-con { max-width: min(100%, var(--width)) }) */
.gp-cta p { margin: 0; }

@media (prefers-reduced-motion: reduce) {
	.gp-arrow-link::after { transition: none; }
}
/* Home: rifiniture */
.gp-hero__text { max-width: 600px; }
.gp-hero__title .elementor-heading-title { max-width: none; font-size: clamp(34px, 3.4vw, 48px); }
.gp-section-link a { white-space: nowrap; }
.gp-mii, .gp-mii__media { padding: 0; }
.gp-mii__img { height: 100%; }
.gp-mii__img .elementor-widget-container, .gp-mii__img img { height: 100%; }
.elementor-button { white-space: nowrap; }
@media (max-width: 767px) { .gp-fact__num .elementor-heading-title { font-size: 24px; } }

/* In home l'header scorre sopra la hero, cosi' la sfumatura arriva fino in cima */
/* la hero parte sotto l'header: lo spazio sopra il testo lo decide il padding della hero in Elementor */
body:has(.gp-hero) #masthead { margin-bottom: calc(var(--gp-header-h) * -1); }
body:has(.gp-hero) .gp-hero { padding-top: var(--gp-header-h); }
@media (max-width: 1024px) { :root { --gp-header-h: 68px; } body:has(.gp-hero) .gp-hero { padding-top: var(--gp-header-h); } }
@media (max-width: 767px) { :root { --gp-header-h: 64px; } body:has(.gp-hero) .gp-hero { padding-top: var(--gp-header-h); } }

/* =====================================================================
   Hero: sfumatura dell'esempio A2 (bianco -> ghiaccio -> cipria)
   ===================================================================== */
.gp-hero {
	min-height: 720px;
	overflow: hidden;
	background: linear-gradient(115deg, var(--e-global-color-gp_bianco) 0%, var(--e-global-color-gp_bianco) 38%, var(--e-global-color-gp_ghiaccio) 62%, var(--gp-cipria) 100%);
}
/* foto ritagliata sui prodotti (gamapack-hero-erogatori.webp): centrata nella colonna.
   Per ingrandirla/rimpicciolirla cambia il 640px qui sotto */
.gp-hero__img { width: 100%; }
.gp-hero__img img { display: block; width: auto; max-width: 104%; height: auto; max-height: clamp(440px, 45vw, 640px); margin: 0 auto; }
@media (max-width: 1024px) {
	.gp-hero { min-height: 0; background: linear-gradient(165deg, var(--e-global-color-gp_bianco) 0%, var(--e-global-color-gp_bianco) 32%, var(--e-global-color-gp_ghiaccio) 66%, var(--gp-cipria) 100%); }
	.gp-hero__text { max-width: none; }
	.gp-hero__img img { width: 100%; max-width: 560px; max-height: none; margin: 0 auto; }
}
@media (max-width: 767px) { .gp-hero__img img { max-width: 420px; } }

/* =====================================================================
   Made in Italy: testo su fondo Inchiostro
   ===================================================================== */
.gp-mii__text .elementor-heading-title { color: var(--e-global-color-gp_bianco); }
.gp-mii__text .gp-lead p { color: var(--e-global-color-gp_footer_testo); }
.gp-mii__text .gp-chip p { background: transparent; border-color: var(--e-global-color-accent); color: var(--e-global-color-gp_footer_link); }
/* Bottone chiaro per fondi scuri: classe gp-btn-light sul widget Pulsante */
.gp-btn-light .elementor-button { background-color: var(--e-global-color-gp_bianco); color: var(--e-global-color-secondary) !important; } /* !important: batte lo Stile del tema del kit (bottoni al passaggio del mouse) */
.gp-btn-light .elementor-button:hover,
.gp-btn-light .elementor-button:focus-visible { background-color: var(--e-global-color-gp_ghiaccio); }
/* Fascia finale: testo a sinistra, bottone allineato a destra */
.gp-cta > .e-con-inner > .e-con:last-child { width: auto; flex: 0 0 auto; }
@media (max-width: 767px) { .gp-cta > .e-con-inner > .e-con:last-child { width: 100%; } }


/* Menu dell'header (UAE): distanza della linea sotto i link dal centro del testo */
:root { --gp-sottolineatura-distanza: 13px; }

/* =====================================================================
   Pagine interne (Chi siamo, Contatti) - 25/09
   ===================================================================== */
.gp-hero--page { min-height: 600px; }
/* Hero a tutto schermo (26/10/2026, /packaging-re-pet/): da 1025 px la hero riempie la finestra (l'header le
   scorre sopra). Sotto 1025 px la hero segue il contenuto, come la home. */
@media (min-width: 1025px) { .gp-hero.gp-hero--schermo { min-height: 100vh; min-height: 100svh; } }
.gp-hero__img--disegno img { mix-blend-mode: normal; width: 100%; max-width: 100%; max-height: none; }
.gp-crumb p { margin: 0; font-size: 14px; color: var(--e-global-color-gp_nota); }
.gp-crumb a { color: var(--e-global-color-gp_nota); text-decoration: none; }
.gp-crumb a:hover { color: var(--e-global-color-primary); }
.gp-sec { background: var(--e-global-color-gp_bianco); }
.gp-sec--fondo { background: var(--e-global-color-sfondo); }
.gp-sec__head { max-width: 720px; }
.gp-sec p, .gp-contact p { margin: 0; }
/* righe numerate */
.gp-rows { border-top: 1px solid var(--gp-filetto); }
.gp-row { padding: 24px 0; border-bottom: 1px solid var(--gp-filetto); }
.gp-row__num { flex: 0 0 56px; width: 56px; }
.gp-row__num p { font-family: var(--gp-font-mono); font-size: 15px; color: var(--e-global-color-primary); padding-top: 4px; }
.gp-row__title .elementor-heading-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 22px; line-height: 1.25; color: var(--e-global-color-secondary); }
.gp-step { padding-top: 20px; border-top: 2px solid var(--e-global-color-secondary); }
.gp-step .gp-row__num { flex: 0 0 auto; width: auto; } /* 05/10/2026: nelle card "passo" (colonna) il numero non prende la base di 56px della riga, che ora vince su Elementor */
/* team */
.gp-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gp-team > .gp-person { width: auto; }
.gp-person__avatar p { aspect-ratio: 4 / 5; display: flex; align-items: center; justify-content: center; background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 44px; color: var(--e-global-color-secondary); }
.gp-person__name .elementor-heading-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 20px; color: var(--e-global-color-secondary); }
.gp-person__role p { font-size: 16px; color: var(--e-global-color-gp_nota); }
@media (max-width: 1024px) { .gp-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* fascia finale senza sfumatura */
.gp-cta-plain { background: var(--e-global-color-sfondo); border-top: 1px solid var(--gp-filetto); }
.gp-cta-plain p { margin: 0; }
.gp-cta-plain > .e-con-inner > .e-con:last-child { width: auto; flex: 0 0 auto; }
@media (max-width: 767px) { .gp-cta-plain > .e-con-inner > .e-con:last-child { width: 100%; } }
/* contatti */
.gp-contact { background: var(--e-global-color-gp_bianco); }
.gp-infolist { border-top: 1px solid var(--gp-filetto); margin-top: 8px; }
.gp-info { padding: 18px 0; border-bottom: 1px solid var(--gp-filetto); }
.gp-info__k { flex: 0 0 110px; width: 110px; }
.gp-info__k p { font-size: 14px; font-weight: 700; color: var(--e-global-color-gp_nota); padding-top: 2px; }
.gp-info__v p { font-size: 17px; line-height: 1.55; color: var(--e-global-color-secondary); }
.gp-info__v a { font-weight: 700; text-decoration: none; }
.gp-form-card { background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); padding: 40px; box-shadow: var(--gp-ombra-modulo); }
.gp-form-card__title .elementor-heading-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 26px; color: var(--e-global-color-secondary); }
.gp-form-card__note p { font-size: 15px; color: var(--e-global-color-gp_nota); margin-bottom: 12px; }
@media (max-width: 767px) { .gp-form-card { padding: 24px 20px; } .gp-info__k { flex-basis: 90px; width: 90px; } }
/* FAQ (contatti): Fisarmonica di Elementor (widget con classe gp-faq, "Schema FAQ" acceso, una aperta alla volta,
   icone vuote) dal 2026-10-25 (PLAN 6.1c), al posto del componente ow-faq: stesso aspetto, "+" che diventa "-"
   disegnato qui, filetti, domanda 19 px peso 600, risposta 17 px. Per aggiungere una domanda: duplicare una voce. */
.gp-faq .e-n-accordion { gap: 0; }
.gp-faq .e-n-accordion-item { border-bottom: 1px solid var(--gp-filetto); }
.gp-faq .e-n-accordion-item:first-of-type { border-top: 1px solid var(--gp-filetto); }
.gp-faq .e-n-accordion-item-title { display: flex; align-items: center; justify-content: flex-start; gap: 12px; min-height: 44px; padding: 20px 0; border: 0; border-radius: 0; background: none; cursor: pointer; list-style: none; }
.gp-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.gp-faq .e-n-accordion-item-title::before { content: ""; flex: none; width: 13px; height: 13px; background: linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) center / 100% 3px no-repeat, linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) center / 3px 100% no-repeat; transition: transform var(--gp-durata) var(--gp-ease); }
.gp-faq .e-n-accordion-item[open] > .e-n-accordion-item-title::before { background-size: 100% 3px, 3px 0; transform: rotate(180deg); }
.gp-faq .e-n-accordion-item-title-header, .gp-faq .e-n-accordion-item-title-text { display: block; margin: 0; padding: 0; }
.gp-faq .e-n-accordion-item-title-text { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 19px; line-height: 1.2; color: var(--e-global-color-secondary); }
.gp-faq .e-n-accordion-item-title:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 2px; }
.gp-faq .e-n-accordion-item > [role="region"] { padding: 0; border: 0; background: none; }
.gp-faq .e-n-accordion-item > [role="region"] .elementor-widget-text-editor p { margin: 0 0 14px; font-size: 17px; line-height: 1.6; }
.gp-faq .e-n-accordion-item > [role="region"] .elementor-widget-text-editor p:last-child { margin-bottom: 20px; }
@media (prefers-reduced-motion: reduce) { .gp-faq .e-n-accordion-item-title::before { transition: none; } }
.gp-step { padding-left: 0; padding-right: 0; padding-bottom: 0; }
.gp-person { gap: 6px; }
.gp-person__avatar { margin-bottom: 10px; }
.gp-row__body { gap: 6px; }
.gp-cta-plain > .e-con-inner > .e-con:first-child { flex: 1 1 auto; }
.gp-person, .gp-row, .gp-row__body, .gp-info, .gp-step, .gp-rows, .gp-infolist { flex-wrap: nowrap; }
.gp-info { align-items: flex-start; }
.gp-info__k p { padding-top: 3px; }
.gp-info__v .gp-mono { font-size: .92em; }
/* Contattaci: valori dalla pagina opzioni con il tag "Campo" (widget Titolo, PLAN 3.3b), stesso aspetto del testo di prima */
:root .gp-info__v .elementor-heading-title { font-weight: 400; }
:root .gp-info__v .elementor-heading-title a { color: var(--e-global-color-primary); }
.gp-info__riga { display: block; font-size: 17px; line-height: 1.55; }
.gp-info__riga > .elementor-widget, .gp-info__riga .elementor-heading-title { display: inline; }
@media (max-width: 767px) { .gp-person__avatar p { font-size: 32px; } .gp-person__name .elementor-heading-title { font-size: 17px; } .gp-team { gap: 16px; } }

/* foto d'atmosfera con velo cipria (classi gp-velo gp-foto sul contenitore) */
.gp-foto { border-radius: var(--gp-raggio); overflow: hidden; }
.gp-foto__img img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }

/* =====================================================================
   Catalogo prodotti (pagina Prodotti + categorie) - 25/09
   ===================================================================== */
/* intestazione a tutta larghezza (inc/woocommerce.php) */
.gp-cat-head { background: var(--e-global-color-gp_ghiaccio); border-bottom: 1px solid var(--gp-filetto); padding: 40px 24px 36px; }
.gp-cat-head__inner { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.gp-cat-head__crumbs { font-size: 14px; color: var(--e-global-color-gp_nota); }
.gp-cat-head__crumbs a { color: var(--e-global-color-gp_nota); text-decoration: none; }
.gp-cat-head__crumbs a:hover { color: var(--e-global-color-primary); }
.gp-cat-head__crumbs span { color: var(--e-global-color-secondary); }
/* :root in testa: batte la regola del kit su h1 e :root body :is(h1, h2) senza dipendere dall'ordine (PLAN 6.2) */
:root body h1.gp-cat-head__title { margin: 0; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: clamp(30px, 3.2vw, 44px); line-height: 1.08; letter-spacing: -0.03em; color: var(--e-global-color-secondary); max-width: 18em; }
.gp-cat-head__intro, .gp-cat-head__intro p { max-width: 720px; margin: 0; font-size: 18px; line-height: 1.6; color: var(--e-global-color-text); }
.woocommerce-shop #primary .ast-archive-description,
.tax-product_cat #primary .ast-archive-description,
.tax-product_tag #primary .ast-archive-description { display: none; }
@media (max-width: 767px) { .gp-cat-head { padding: 24px 20px; } .gp-cat-head__intro, .gp-cat-head__intro p { font-size: 16px; } }

/* layout: stessa larghezza di header e home */
.woocommerce.archive .site-content > .ast-container { max-width: 1288px; padding-left: 24px; padding-right: 24px; }
@media (min-width: 922px) {
	.woocommerce.archive #secondary { width: 270px; padding-top: 40px; padding-right: 0; border: 0; }
	.woocommerce.archive #secondary .sidebar-main { position: sticky; top: calc(var(--gp-header-h) + 16px); }
	.woocommerce.archive #primary { width: calc(100% - 318px); padding-left: 48px; border: 0; }
	.admin-bar.woocommerce.archive #secondary .sidebar-main { top: calc(var(--gp-header-h) + 48px); }
}
.woocommerce.archive .ast-woocommerce-container { padding-top: 0; }

/* sidebar: ricerca */
#secondary .gp-search .wp-block-search__inside-wrapper { border: 1px solid var(--gp-bordo-campo); border-radius: var(--gp-raggio); padding: 4px; background: var(--e-global-color-gp_bianco); }
#secondary .gp-search .wp-block-search__input { border: 0; padding: 8px 10px; font-size: 15px; background: transparent; }
#secondary .gp-search .wp-block-search__button { margin: 0; width: 38px; height: 38px; padding: 0; display: flex; align-items: center; justify-content: center; }
#secondary .widget { margin-bottom: 32px; }
/* sidebar: widget "Categorie di prodotto" di WooCommerce (PLAN 5.1, al posto di Iks Menu): sottocategorie aperte nella famiglia corrente, freccia sulle famiglie con sottocategorie */
#secondary .widget_product_categories .widget-title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 18px; color: var(--e-global-color-secondary); padding-bottom: 12px; margin-bottom: 0; border-bottom: 2px solid var(--e-global-color-secondary); text-transform: none; }
#secondary .product-categories, #secondary .product-categories .children { list-style: none; margin: 0; padding: 0; }
#secondary .product-categories li { margin: 0; padding: 0; }
#secondary .product-categories li::before { content: none; }
#secondary .product-categories a { margin: 0; display: flex; align-items: center; gap: 12px; min-height: 43px; padding: 10px 10px 10px 12px; border-bottom: 1px solid var(--gp-filetto); font-size: 16px; font-weight: 500; line-height: 15px; color: var(--e-global-color-secondary); text-decoration: none; transition: background-color .2s ease, box-shadow .2s ease, color .2s ease; }
#secondary .product-categories a:hover { color: var(--e-global-color-primary); }
#secondary .product-categories .children { display: none; }
#secondary .product-categories .current-cat > .children, #secondary .product-categories .current-cat-parent > .children { display: block; }
#secondary .product-categories .children a { padding-left: 27px; }
#secondary .product-categories .children .children a { padding-left: 42px; }
#secondary .product-categories .current-cat > a { background: var(--e-global-color-gp_ghiaccio); box-shadow: inset 3px 0 0 var(--e-global-color-primary); color: var(--e-global-color-primary); font-weight: 700; }
#secondary .product-categories .cat-parent > a::after { content: ""; flex: none; width: 7px; height: 7px; margin: 0 6px 0 auto; border-right: 2px solid var(--e-global-color-gp_nota); border-bottom: 2px solid var(--e-global-color-gp_nota); transform: rotate(-45deg); transition: transform .2s ease; }
#secondary .product-categories .current-cat.cat-parent > a::after, #secondary .product-categories .current-cat-parent > a::after { transform: translateY(-2px) rotate(45deg); }
/* sidebar: la freccia e' un bottone (site.js) che apre e chiude le sottocategorie; il nome porta alla categoria. Senza JS resta la freccia nel link (sopra) */
#secondary .product-categories.gp-cat-js li.cat-parent { position: relative; }
#secondary .product-categories.gp-cat-js .cat-parent > a { padding-right: 43px; }
#secondary .product-categories.gp-cat-js .cat-parent > a::after { content: none; }
#secondary .product-categories.gp-cat-js .cat-parent.gp-aperta > .children { display: block; }
#secondary .product-categories.gp-cat-js .cat-parent.gp-chiusa > .children { display: none; }
#secondary .product-categories .gp-cat-apri { position: absolute; top: 0; right: 0; display: flex; align-items: center; justify-content: flex-end; width: 43px; height: 43px; min-height: 0; margin: 0; padding: 0 16px 0 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--e-global-color-gp_nota); cursor: pointer; }
#secondary .product-categories .gp-cat-apri::before { content: ""; flex: none; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .2s ease; }
#secondary .product-categories .gp-aperta > .gp-cat-apri::before { transform: translateY(-2px) rotate(45deg); }
#secondary .product-categories .gp-cat-apri:hover, #secondary .product-categories .gp-cat-apri:focus { background: none; color: var(--e-global-color-primary); }
/* sidebar: box aiuto */
.gp-help-box { background: var(--e-global-color-secondary); border-radius: var(--gp-raggio); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.gp-help-box p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--e-global-color-gp_footer_testo); }
.gp-help-box .gp-help-box__title { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 19px; color: var(--e-global-color-gp_bianco); }
.gp-help-box__btn { align-self: flex-start; display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; background: var(--e-global-color-gp_bianco); color: var(--e-global-color-secondary) !important; border-radius: var(--gp-raggio); font-weight: 700; font-size: 15px; text-decoration: none; } /* !important: batte il colore dei link del kit (.elementor-kit-2885 a) */
.gp-help-box__btn:hover { background: var(--e-global-color-gp_ghiaccio); }

/* barra risultati + ordinamento */
.woocommerce.archive .woocommerce-result-count { font-size: 15px; color: var(--e-global-color-gp_nota); margin: 0 0 24px; line-height: 42px; }
.woocommerce.archive .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce.archive .woocommerce-ordering select { height: 42px; border: 1px solid var(--gp-bordo-campo); border-radius: var(--gp-raggio); padding: 0 36px 0 14px; font-size: 15px; color: var(--e-global-color-secondary); background-color: var(--e-global-color-gp_bianco); }

/* schede prodotto */
.woocommerce.archive ul.products { row-gap: 32px; }
.woocommerce.archive ul.products li.product .astra-shop-thumbnail-wrap { border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); overflow: hidden; background: var(--e-global-color-gp_bianco); transition: border-color .2s ease; }
.woocommerce.archive ul.products li.product .astra-shop-thumbnail-wrap img { transition: transform .3s ease; }
.woocommerce.archive ul.products li.product:hover .astra-shop-thumbnail-wrap { border-color: var(--e-global-color-primary); }
.woocommerce.archive ul.products li.product:hover .astra-shop-thumbnail-wrap img { transform: scale(1.04); }
.woocommerce.archive ul.products li.product .astra-shop-summary-wrap { padding-top: 14px; display: flex; flex-direction: column; gap: 4px; }
.woocommerce.archive ul.products li.product .woocommerce-loop-product__title { font-size: 18px; color: var(--e-global-color-secondary); margin: 0; padding: 0; transition: color .2s ease; }
.woocommerce.archive ul.products li.product:hover .woocommerce-loop-product__title { color: var(--e-global-color-primary); }
.woocommerce.archive ul.products li.product .ast-woo-product-category { order: 2; font-size: 15px; color: var(--e-global-color-text); opacity: 1; margin: 0; text-transform: none; }
.woocommerce.archive ul.products li.product .astra-shop-summary-wrap::after { content: "Vedi scheda \2192"; order: 3; margin-top: 6px; font-size: 15px; font-weight: 700; color: var(--e-global-color-primary); }

/* testo di aiuto sotto la griglia */
.gp-cat-seo { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--gp-filetto); display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.gp-cat-seo h2 { margin: 0 0 12px; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 26px; line-height: 1.2; color: var(--e-global-color-secondary); }
.gp-cat-seo p { margin: 0; font-size: 16px; line-height: 1.65; }
@media (max-width: 767px) { .gp-cat-seo { grid-template-columns: 1fr; gap: 28px; margin-top: 40px; } .gp-cat-seo h2 { font-size: 22px; } }

/* mobile: filtri e ordina affiancati, 2 colonne di prodotti */
@media (max-width: 921px) {
	.woocommerce.archive .ast-woocommerce-container { padding-top: 16px; }
	.gp-filtro-btn { float: left; width: calc(50% - 5px); margin: 0 0 12px; font-size: 15px !important; min-height: 46px; } /* !important: batte lo Stile del tema del kit (bottoni) */
	.woocommerce.archive .woocommerce-ordering { float: right; width: calc(50% - 5px); margin: 0 0 12px; }
	.woocommerce.archive .woocommerce-ordering select { width: 100%; height: 46px; }
	.woocommerce.archive .woocommerce-result-count { clear: both; float: none; line-height: 1.4; margin: 4px 0 14px; font-size: 14px; }
	.gp-filtro-chiudi { background: transparent !important; color: var(--e-global-color-secondary) !important; border: 1px solid var(--gp-filetto) !important; text-align: right; } /* !important: batte lo Stile del tema del kit (bottoni) */
	.gp-filtro-chiudi::after { content: " \2715"; }
}
@media (max-width: 767px) {
	.woocommerce.archive ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; row-gap: 22px; }
	.woocommerce.archive ul.products li.product .woocommerce-loop-product__title { font-size: 15px; }
	.woocommerce.archive ul.products li.product .ast-woo-product-category { font-size: 13px; }
	.woocommerce.archive ul.products li.product .astra-shop-summary-wrap::after { font-size: 14px; }
}
.woocommerce.archive .content-area .ast-breadcrumbs-wrapper, .woocommerce.archive .content-area .ast-archive-description { display: none; }
.woocommerce.archive ul.products li.product .astra-shop-thumbnail-wrap { line-height: 0; margin-bottom: 0; }
.woocommerce.archive ul.products li.product .astra-shop-thumbnail-wrap img { display: block; margin: 0; width: 100%; }
.woocommerce.archive .content-area .woocommerce-breadcrumb { display: none; }
@media (min-width: 922px) { .woocommerce.archive .woocommerce-result-count { float: left; } .woocommerce.archive .woocommerce-ordering { float: right; } .woocommerce.archive ul.products { clear: both; } }
@media (max-width: 921px) { .woocommerce.archive .site-content > .ast-container { padding-top: 20px; } }
@media (max-width: 921px) { .woocommerce.archive #primary, .woocommerce.archive .site-main { margin-top: 0; padding-top: 0; } }

/* Catalogo: testata opzione A - velo sfumato sotto la nav trasparente, senza bordo */
body:has(.gp-cat-head) #masthead { margin-bottom: calc(var(--gp-header-h) * -1); }
.gp-cat-head { border-bottom: 0; padding: calc(var(--gp-header-h) + 28px) 24px 72px; background: linear-gradient(180deg, var(--gp-sfondo-0) 0%, var(--gp-sfondo-0) 45%, var(--e-global-color-sfondo) 100%), linear-gradient(115deg, var(--e-global-color-gp_bianco) 0%, var(--e-global-color-gp_bianco) 30%, var(--e-global-color-gp_ghiaccio) 60%, var(--gp-cipria) 100%); }
.woocommerce.archive .site-content > .ast-container { padding-top: 0; }
@media (max-width: 767px) { .gp-cat-head { padding: calc(var(--gp-header-h) + 20px) 20px 48px; background: linear-gradient(180deg, var(--gp-sfondo-0) 0%, var(--gp-sfondo-0) 40%, var(--e-global-color-sfondo) 100%), linear-gradient(165deg, var(--e-global-color-gp_bianco) 0%, var(--e-global-color-gp_bianco) 30%, var(--e-global-color-gp_ghiaccio) 66%, var(--gp-cipria) 100%); } }
@media (min-width: 922px) { body.woocommerce.archive #primary, body.woocommerce.archive #secondary { margin-top: 8px; padding-top: 0; } }

/* =====================================================================
   Scheda prodotto (25/09)
   ===================================================================== */
.gp-cat-head--product { padding-bottom: 8px; }
.single-product .content-area .woocommerce-breadcrumb, .single-product .content-area .ast-breadcrumbs-wrapper { display: none; }
.single-product .site-content > .ast-container { max-width: 1288px; padding-left: 24px; padding-right: 24px; padding-top: 0; }
@media (min-width: 922px) {
	.single-product #secondary { width: 270px; padding: 0; margin-top: 24px; border: 0; }
	.single-product #primary { width: calc(100% - 318px); padding: 0 0 0 48px; margin-top: 24px; border: 0; }
}
.single-product #secondary .widget { margin-bottom: 32px; }
/* galleria */
.single-product div.product .woocommerce-product-gallery { border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); background: var(--e-global-color-gp_bianco); overflow: hidden; }
/* The photo is the LCP element: WooCommerce prints the gallery with style="opacity: 0" and shows it only when its
   script runs at "page ready", which now waits for the scripts of the UAE header too. Every product has one photo
   (no slider), so the gallery is shown at once. !important beats WooCommerce's inline style. PLAN 3.5, 2026-10-24. */
.single-product div.product .woocommerce-product-gallery { opacity: 1 !important; } /* !important: batte lo stile opacity: 0 scritto da WooCommerce nell'HTML prima dello script (LCP, PLAN 3.5) */
.single-product div.product .woocommerce-product-gallery__trigger { background: var(--e-global-color-sfondo) !important; border-radius: var(--gp-raggio) !important; } /* !important: batte Astra (woocommerce-grid.min.css) */
/* Full-screen gallery (PhotoSwipe): with UAE active the Elementor kit loads on product pages too and its
   button style (padding 18px 28px) reaches every <button>; the lightbox buttons keep their own size. */
.pswp .pswp__button { padding: 0; }
/* Other buttons outside Elementor content (catalog filter, 404 search): the kit's button style
   (.elementor-kit-N button, specificity 0,1,1) and the font rule ":root .elementor-kit-N :is(button…)" below
   (0,3,1) would win over the plain class rules above. ":root body.woocommerce button" (0,3,2) keeps the
   values the buttons have without the kit (the filter exists only on WooCommerce archives). */
@media (max-width: 921px) {
	:root body.woocommerce button.gp-filtro-btn { padding: 12px 18px; line-height: 1.2; font-weight: 700; border-radius: var(--gp-raggio); }
	:root body.woocommerce button.gp-filtro-chiudi { padding: 12px 16px; font-weight: 700; border-radius: var(--gp-raggio); }
}
.search-form button.search-submit.ast-search-submit:is(:hover, :focus) { background-color: transparent; }
/* riassunto */
.single-product div.product .summary { display: flex; flex-direction: column; gap: 20px; }
.single-product div.product .summary > * { margin: 0; }
.gp-product-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.gp-tag { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: var(--gp-raggio); background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); color: var(--e-global-color-text); font-size: 14px; font-weight: 700; text-decoration: none; }
.gp-tag--main { background: var(--e-global-color-gp_ghiaccio); border-color: var(--e-global-color-gp_ghiaccio); color: var(--e-global-color-primary); }
.single-product div.product .product_title { font-family: var(--gp-font-mono); font-weight: 500; font-size: clamp(30px, 3vw, 40px); line-height: 1.1; color: var(--e-global-color-secondary); letter-spacing: 0; }
.gp-specs { margin: 0; border-top: 1px solid var(--gp-filetto); }
.gp-spec { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--gp-filetto); }
.gp-spec dt { margin: 0; font-size: 14px; font-weight: 700; color: var(--e-global-color-gp_nota); }
.gp-spec dd { margin: 0; font-family: var(--gp-font-mono); font-size: 16px; color: var(--e-global-color-secondary); }
.gp-product-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.gp-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border-radius: var(--gp-raggio); font-size: 17px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color .2s ease, color .2s ease; }
.gp-btn--primary { background: var(--e-global-color-primary); color: var(--e-global-color-gp_bianco) !important; } /* !important: batte il colore dei link del kit (.elementor-kit-2885 a) */
.gp-btn--primary:hover { background: var(--e-global-color-gp_hover); }
.gp-product-service { padding: 18px 20px; background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); display: flex; flex-direction: column; gap: 8px; }
.gp-product-service p { margin: 0; font-size: 15px; color: var(--e-global-color-secondary); }
/* correlati: stesse schede del catalogo */
.single-product .related { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--gp-filetto); }
.single-product .related > h2 { font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 28px; color: var(--e-global-color-secondary); margin-bottom: 24px; }
.single-product .related ul.products li.product .astra-shop-thumbnail-wrap { border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio); overflow: hidden; background: var(--e-global-color-gp_bianco); line-height: 0; transition: border-color .2s ease; }
.single-product .related ul.products li.product .astra-shop-thumbnail-wrap img { display: block; width: 100%; margin: 0; }
.single-product .related ul.products li.product:hover .astra-shop-thumbnail-wrap { border-color: var(--e-global-color-primary); }
.single-product .related ul.products li.product .astra-shop-summary-wrap { padding-top: 12px; display: flex; flex-direction: column; gap: 4px; }
.single-product .related ul.products li.product .woocommerce-loop-product__title { font-size: 16px; margin: 0; color: var(--e-global-color-secondary); }
.single-product .related ul.products li.product .ast-woo-product-category { order: 2; font-size: 14px; color: var(--e-global-color-text); opacity: 1; text-transform: none; }
.single-product .related ul.products li.product .astra-shop-summary-wrap::after { content: "Vedi scheda \2192"; order: 3; margin-top: 4px; font-size: 14px; font-weight: 700; color: var(--e-global-color-primary); }
/* barra fissa mobile */
.gp-sticky-cta { display: none; }
@media (max-width: 767px) {
	.gp-sticky-cta { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 20px calc(10px + env(safe-area-inset-bottom)); background: var(--e-global-color-gp_bianco); border-top: 1px solid var(--gp-filetto); box-shadow: var(--gp-ombra-barra); }
	.gp-sticky-cta .gp-mono { font-size: 15px; color: var(--e-global-color-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.gp-sticky-cta .gp-btn { min-height: 44px; font-size: 15px; padding: 0 18px; }
	.single-product { padding-bottom: 70px; }
	.single-product #ast-scroll-top { bottom: 84px; }
	.gp-product-cta .gp-btn { width: 100%; white-space: normal; }
	.gp-spec { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; }
	.single-product .related ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.single-product #primary { margin-top: 12px; }
}
.single-product .ast-woocommerce-container { padding-top: 0; }
.single-product .woocommerce-notices-wrapper:empty { display: none; }
.single-product div.product { margin-top: 0; padding-top: 0; }
.single-product div.product .summary .product_meta { display: none; }
/* la sezione correlati (margine 64px) non deve spingere giu' l'intera scheda */
.single-product div.product { display: flow-root; }
/* Foto e dati come un blocco unico (26/10/2026): da 922 px foto e riassunto sono due colonne della stessa
   altezza; il bottone preventivo va in fondo alla colonna, al livello del fondo della foto, a tutta larghezza.
   Con molte caratteristiche e' la cornice della foto ad allungarsi (foto centrata). Il riquadro servizio
   (gp_product_service(), plugin del sito) sta sotto, a tutta larghezza, con le due frasi affiancate. */
.single-product div.product > .gp-product-service { clear: both; margin: 0 0 34px; }
@media (min-width: 922px) {
	.single-product div.product { display: grid; grid-template-columns: minmax(0, 50%) minmax(0, 1fr); column-gap: 4%; align-items: stretch; }
	.single-product div.product > * { grid-column: 1 / -1; }
	/* ":root … #content .ast-woocommerce-container" (1,5,2): batte le larghezze 48% e i float scritti in linea da Astra (1,3,2) */
	:root .single-product #content .ast-woocommerce-container div.product > div.images { grid-column: 1; float: none; width: auto; margin: 0 0 24px; display: flex; align-items: center; }
	.single-product div.product > .woocommerce-product-gallery .woocommerce-product-gallery__wrapper { width: 100%; }
	:root .single-product #content .ast-woocommerce-container div.product > div.summary { grid-column: 2; float: none; width: auto; margin: 0 0 24px; }
	.single-product div.product .summary .gp-product-cta { margin-top: auto; }
	.single-product div.product .summary .gp-product-cta .gp-btn { width: 100%; }
	.single-product div.product > .gp-product-service { flex-direction: row; flex-wrap: wrap; column-gap: 40px; }
}
.single-product .related { clear: both; }

/* ---------- Accessibilita (03/10/2026, controlli PageSpeed) ---------- */

/* Riquadro "altre famiglie" in home: colore di fondo sotto la sfumatura, cosi' il testo bianco
 * ha sempre un fondo scuro (anche per i controlli automatici, che non leggono le sfumature). */
.gp-fam--all { background-color: var(--gp-blu-famiglie-hover); }

/* Link dentro i testi: blu e in grassetto, senza sottolineatura fissa (decisione di Luca, 03/10/2026).
 * Il grassetto e' l'indicazione "non solo colore" richiesta da WCAG 1.4.1 (il blu da solo ha contrasto 1,6:1
 * con il testo grigio); la sottolineatura compare solo al passaggio del mouse e con la tastiera.
 * Widget Testo di Elementor: frontend.min.css (caricato dopo) ha ".elementor a", serve una classe in piu'. */
:where(.gp-cat-seo, .gp-cat-testo, .gp-cat-head__intro, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel--description) a:not(.button),
.elementor-widget-text-editor a:not(.button) {
	font-weight: 700;
	text-decoration: none;
}
:where(.gp-cat-seo, .gp-cat-testo, .gp-cat-head__intro, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel--description) a:not(.button):is(:hover, :focus-visible),
.elementor-widget-text-editor a:not(.button):is(:hover, :focus-visible) {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
/* Breadcrumb in cima alle pagine: resta grigio e normale come prima */
.elementor-widget-text-editor.gp-crumb a { font-weight: inherit; }
/* Modulo contatti: testo segnaposto dei menu a tendina con contrasto sufficiente (4.9:1) */
/* !important: SureForms imposta il colore con una variabile semitrasparente (Inchiostro al 50%) */
.gp-form-card .ts-control-placeholder,
.gp-form-card .ts-control input::placeholder,
.gp-form-card input::placeholder,
.gp-form-card textarea::placeholder { color: var(--e-global-color-gp_nota) !important; opacity: 1; } /* !important: batte SureForms (segnaposto semitrasparente) */

/* ---------- Carosello dei disegni tecnici: componente del sito gp-slider (05/10/2026; classi ow-slider rinominate il 25/10, PLAN 6.1) ----------
 * Stili e script nel plugin del sito (gamapack-sito/assets/css/gp-slider.css e assets/js/gp-slider.js); i testi
 * per gli screen reader li aggiunge gamapack-sito/inc/site.php. Qui solo la differenza di Gamapack: i disegni su
 * fondo bianco si fondono con lo sfondo. */
.gp-slider__slide img { mix-blend-mode: multiply; }


/* ---------- Testi categoria (inc/categorie-testi.php, campo 'Testo sotto i prodotti') - 03/10/2026 ---------- */
.gp-cat-testo { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--gp-filetto); max-width: 820px; }
.gp-cat-testo h2 { margin: 36px 0 12px; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 26px; line-height: 1.2; color: var(--e-global-color-secondary); }
.gp-cat-testo h2:first-child { margin-top: 0; }
.gp-cat-testo p, .gp-cat-testo li { font-size: 16px; line-height: 1.65; }
.gp-cat-testo p { margin: 0 0 12px; }
.gp-cat-testo ul { margin: 0 0 12px 1.2em; padding: 0; }
.gp-cat-testo li { margin-bottom: 6px; }
.gp-cat-testo details { border-bottom: 1px solid var(--gp-filetto); }
.gp-cat-testo summary { cursor: pointer; padding: 12px 0; min-height: 44px; font-weight: 700; color: var(--e-global-color-secondary); }
.gp-cat-testo summary:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 2px; }
.gp-cat-testo details > p { margin: 0 0 14px; }
.gp-cat-testo details + p { margin-top: 20px; }
@media (max-width: 767px) { .gp-cat-testo { margin-top: 40px; padding-top: 32px; } .gp-cat-testo h2 { font-size: 22px; } }

/* ---------- Schede prodotto: tipo nel titolo (inc/prodotti-seo.php) - 03/10/2026 ---------- */
.single-product div.product .product_title .gp-prod-tipo { display: block; margin-bottom: 6px; font-family: var(--gp-font-testo); font-weight: 700; font-size: 17px; line-height: 1.35; color: var(--e-global-color-text); }
.single-product .woocommerce-Tabs-panel--description p { margin: 0 0 14px; max-width: 760px; font-size: 16px; line-height: 1.65; }
.single-product .woocommerce-Tabs-panel--description p:last-child { margin-bottom: 0; }

/* ---------- Guide (tipo di pagina "Guida", modello /ghiere-flaconi/) - 03/10/2026 ----------
 * Corpo in un container .gp-guida largo 760 px; ogni blocco e' una <section> con il suo H2.
 * Testi nei widget Testo con classe gp-guida__testo; tabelle in <div class="gp-tabella">; FAQ in <details>. */
.gp-guida__meta p { margin: 0; font-size: 14px; color: var(--e-global-color-gp_nota); }
.gp-guida .gp-guida__testo p, .gp-guida .gp-guida__testo li { font-size: 17px; line-height: 1.7; }
.gp-guida .gp-guida__testo p { margin: 0 0 14px; }
.gp-guida .gp-guida__testo p:last-child { margin-bottom: 0; }
.gp-guida .gp-guida__testo ul, .gp-guida .gp-guida__testo ol { margin: 0 0 14px 1.3em; padding: 0; }
.gp-guida .gp-guida__testo li { margin-bottom: 8px; }
.gp-tabella { overflow-x: auto; margin: 0 0 16px; }
.gp-tabella table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.gp-tabella th, .gp-tabella td { padding: 10px 12px; border: 0; border-bottom: 1px solid var(--gp-filetto); text-align: left; vertical-align: top; }
.gp-tabella th { background: var(--e-global-color-sfondo); font-weight: 700; color: var(--e-global-color-secondary); }
.gp-guida__faq details { border-bottom: 1px solid var(--gp-filetto); }
.gp-guida__faq summary { cursor: pointer; padding: 12px 0; min-height: 44px; font-weight: 700; color: var(--e-global-color-secondary); }
.gp-guida__faq summary:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 2px; }
.gp-guida .gp-guida__faq details > p { margin: 0 0 14px; }
.gp-guida .gp-guida__fig img { width: 100%; max-width: 320px; height: auto; }
.gp-guida__fig .widget-image-caption { margin-top: 8px; font-size: 14px; text-align: left; color: var(--e-global-color-gp_nota); }
.gp-guida__fonti p { margin: 0; font-size: 14px; color: var(--e-global-color-gp_nota); }
@media (max-width: 767px) { .gp-guida .gp-guida__testo p, .gp-guida .gp-guida__testo li { font-size: 16px; } }

/* =====================================================================
   Design 2026 (online dal 04/10/2026, provato in anteprima dal 03/10)
   Tipografia, bottoni e focus, micro-interazioni, comparsa allo scroll (solo CSS).
   Regole di prestazione: si animano solo opacity, transform e translate; tutto rispetta
   "riduci movimento"; dove le animazioni legate allo scroll non sono supportate
   il contenuto resta fermo e visibile. I numeri che contano sono in assets/js/numeri.js.
   ===================================================================== */

/* Font di base: Astra ha i font su "Inherit" (Personalizza > Globale > Tipografia), quindi testi e titoli li decide questo file.
   ":root body" serve a battere ".entry-content h1" ecc. del CSS in linea di Astra. */
:root body,
:root body :is(button, input, select, textarea, .ast-button, .ast-custom-button) { font-family: var(--gp-font-testo); }
:root body :is(h1, h2, h3, h4, h5, h6, .site-title) { font-family: var(--gp-font-titoli); }
:root .elementor-kit-2885 :is(button, input[type="button"], input[type="submit"], .elementor-button) {
	font-family: var(--gp-font-testo);
	font-weight: 600;
	border-radius: var(--gp-raggio);
}

/* =====================================================================
   Design 2026 · Tipografia
   ===================================================================== */
:root body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
:root body :is(h1, h2, h3, h4, .elementor-heading-title) { font-weight: var(--gp-peso-titoli); text-wrap: balance; }
:root body :is(h1, h2) { letter-spacing: -0.03em; line-height: 1.08; }
:root body :is(h3, h4) { letter-spacing: -0.015em; line-height: 1.2; }
:root body :is(.gp-lead p, .gp-hero__lead p, .gp-row p) { text-wrap: pretty; }
::selection { background: var(--e-global-color-gp_ghiaccio); color: var(--e-global-color-secondary); }


/* Titolo della hero: un po' piu' grande e compatto */
.gp-hero__title .elementor-heading-title { font-size: clamp(36px, 3.7vw, 54px); letter-spacing: -0.035em; line-height: 1.04; }

/* Numeri della barra scura: cifre tutte larghe uguali (non "ballano" quando contano) */
.gp-fact__num .elementor-heading-title { font-weight: 650; font-size: 40px; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
@media (max-width: 1024px) { .gp-fact__num .elementor-heading-title { font-size: 32px; } }
@media (max-width: 767px) { .gp-fact__num .elementor-heading-title { font-size: 26px; } }

/* Etichette tecniche in monospazio (chip, numeri delle righe): look da scheda tecnica */
.gp-chip p { font-family: var(--gp-font-mono); font-weight: 500; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; height: 28px; border-radius: 999px; }
.gp-row__num p { font-size: 13px; letter-spacing: .04em; }

/* Nomi delle famiglie in home: piu' netti */
.gp-fam__name .elementor-heading-title { letter-spacing: -0.015em; }

/* Raggi: schede e foto un po' piu' morbide dei bottoni */
:is(.gp-fam, .gp-foto, .gp-form-card, .gp-help-box, .gp-disegni__stage, .gp-product-service),
.gp-person__avatar p,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.single-product div.product .woocommerce-product-gallery { border-radius: var(--gp-raggio-l); }
/* I container di Elementor hanno ".e-con { border-radius: var(--border-radius) }" con --border-radius: 0,
   caricato dopo questo file: per arrotondarli si imposta la variabile, con .e-con nel selettore (04/10/2026). */
:is(.gp-fam, .gp-foto, .gp-form-card, .gp-disegni__stage, .gp-help-box, .gp-product-service).e-con { --border-radius: var(--gp-raggio-l); }

/* Ritratti del team: fondo con una sfumatura ghiaccio leggera */
.gp-person__avatar p { background: linear-gradient(160deg, var(--e-global-color-gp_bianco) 0%, var(--e-global-color-gp_ghiaccio) 100%); }

/* Riquadro del modulo contatti: ombra del design system */
.gp-form-card { box-shadow: var(--gp-ombra-1); }

/* Correzione: queste due regole in gamapack.css non venivano lette (c'era un "\n" scritto come testo) */
.gp-fam__img .elementor-widget-container { width: 100%; text-align: center; }
.gp-fam__img img { max-width: 100%; }

/* =====================================================================
   Design 2026 · Bottoni, link, focus
   ===================================================================== */
:root .elementor-kit-2885 .elementor-button,
.gp-btn,
.gp-help-box__btn {
	letter-spacing: -0.01em;
	transition: background-color var(--gp-durata) var(--gp-ease), color var(--gp-durata) var(--gp-ease),
		box-shadow var(--gp-durata) var(--gp-ease), transform .2s var(--gp-ease);
}
@media (hover: hover) {
	:root .elementor-kit-2885 .elementor-button:hover,
	.gp-btn:hover { transform: translateY(-2px); box-shadow: var(--gp-ombra-blu); }
	.gp-btn-secondary .elementor-button:hover { box-shadow: inset 0 0 0 1.5px var(--e-global-color-secondary), var(--gp-ombra-btn-scuro); }
	.gp-btn-light .elementor-button:hover { box-shadow: var(--gp-ombra-btn-chiaro); }
	.gp-help-box__btn:hover { transform: translateY(-2px); }
}
:root .elementor-kit-2885 .elementor-button:active,
.gp-btn:active { transform: translateY(0) scale(.98); box-shadow: none; }

/* Fasce finali: freccia nel bottone che scorre al passaggio del mouse */
:is(.gp-cta, .gp-cta-plain) .elementor-button-text { display: inline-flex; align-items: center; gap: 10px; }
:is(.gp-cta, .gp-cta-plain) .elementor-button-text::after {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .25s var(--gp-ease);
}
:is(.gp-cta, .gp-cta-plain) .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }

/* Focus da tastiera ben visibile ovunque (ciano: contrasto >= 3:1 sia sul bianco sia sull'inchiostro) */
:root body :focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 3px; }

/* =====================================================================
   Design 2026 · Micro-interazioni
   ===================================================================== */

/* Le foto su fondo bianco usano mix-blend-mode: multiply. La comparsa allo scroll mette la scheda
   in un gruppo a parte: serve un fondo uguale a quello della sezione, altrimenti torna il riquadro bianco. */
.gp-fam:not(.gp-fam--all) { background-color: var(--e-global-color-sfondo); }
.gp-fam:not(.gp-fam--all):is(:hover, :focus-visible) { background-color: var(--e-global-color-gp_bianco); }
.gp-disegni__stage { background-color: var(--e-global-color-gp_bianco); }

/* Famiglie di prodotto (home): la scheda si solleva */
.gp-fam { transition: background-color var(--gp-durata) var(--gp-ease), box-shadow var(--gp-durata) var(--gp-ease), transform var(--gp-durata) var(--gp-ease); }
.gp-fam .gp-fam__img img { transition: transform .5s var(--gp-ease); }
@media (hover: hover) {
	.gp-fam:hover { transform: translateY(-4px); box-shadow: var(--gp-ombra-2); }
	.gp-fam--all:hover { box-shadow: var(--gp-ombra-famiglie); }
}
.gp-fam:focus-visible { box-shadow: var(--gp-ombra-2); }

/* Schede prodotto (catalogo e correlati): stessa logica */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { transition: border-color .25s ease, box-shadow var(--gp-durata) var(--gp-ease), transform var(--gp-durata) var(--gp-ease); }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img { transition: transform .5s var(--gp-ease); }
/* (03/10/2026: la cornice nera delle foto prodotto e' stata tolta ritagliando i file originali) */
.woocommerce.archive ul.products li.product .astra-shop-thumbnail-wrap,
.single-product .related ul.products li.product .astra-shop-thumbnail-wrap { border-radius: var(--gp-raggio-l); }
@media (hover: hover) {
	.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap { transform: translateY(-3px); box-shadow: var(--gp-ombra-2); }
}

/* Passi numerati: la linea in alto diventa blu quando il passo entra nello schermo (vedi E) */
.gp-step { border-top-color: var(--e-global-color-secondary); }

@media (prefers-reduced-motion: reduce) {
	.gp-fam, .gp-fam .gp-fam__img img,
	.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
	.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
	:root .elementor-kit-2885 .elementor-button, .gp-btn,
	:is(.gp-cta, .gp-cta-plain) .elementor-button-text::after { transition: none; }
	.gp-fam:hover, .woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap,
	:root .elementor-kit-2885 .elementor-button:hover, .gp-btn:hover { transform: none; }
}

/* =====================================================================
   Design 2026 · Comparsa allo scroll (animazioni legate allo scroll: niente JavaScript)
   - mai nella hero (prima schermata e immagine principale restano subito visibili);
   - si anima "translate" (non "transform"), cosi' il sollevamento al passaggio del mouse resta libero;
   - l'animazione finisce quando l'elemento e' salito di circa un quarto di schermo.
   ===================================================================== */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		@keyframes gp-entra {
			from { opacity: 0; translate: 0 24px; }
			to   { opacity: 1; translate: 0 0; }
		}
		@keyframes gp-linea {
			from { border-top-color: var(--e-global-color-secondary); }
			to   { border-top-color: var(--e-global-color-primary); }
		}

		/* titoli, testi introduttivi e bottoni delle sezioni */
		:is(.gp-cats, .gp-disegni, .gp-sec, .gp-mii__text, .gp-cta, .gp-cta-plain, .gp-guida)
			:is(.elementor-widget-heading, .gp-lead, .gp-section-link, .gp-chip, .elementor-widget-button)
			:not(:is(.gp-fam, .gp-row, .gp-person, .gp-step) *),
		/* schede e blocchi */
		.gp-fam, .gp-row, .gp-person, .gp-step, .gp-foto, .gp-disegni__stage, .gp-faq,
		.woocommerce ul.products li.product,
		.gp-cat-testo > * {
			animation: gp-entra linear both;
			animation-timeline: view();
			animation-range: entry 0% cover 20%;
		}

		/* le schede della stessa riga entrano una dopo l'altra */
		:is(.gp-fam, .gp-person, .woocommerce ul.products li.product):nth-child(4n+2),
		.gp-step:nth-child(3n+2) { animation-range: entry 4% cover 23%; }
		:is(.gp-fam, .gp-person, .woocommerce ul.products li.product):nth-child(4n+3),
		.gp-step:nth-child(3n+3) { animation-range: entry 8% cover 26%; }
		:is(.gp-fam, .gp-person, .woocommerce ul.products li.product):nth-child(4n+4) { animation-range: entry 12% cover 29%; }

		/* passi numerati: la linea in alto si colora di blu */
		.gp-step {
			animation: gp-entra linear both, gp-linea linear both;
			animation-timeline: view(), view();
			animation-range: entry 0% cover 20%, cover 20% cover 45%;
		}
	}
}

/* ==================================================================
   Header UAE (template "Header del sito", classe gp-header) - fase 3 del PLAN, 2026-10-24.
   Uguale all'header di Astra: fisso in alto, trasparente sulla hero, bianco (vetro su desktop)
   dopo lo scorrimento (gp-scrolled da site.js), riga sotto le voci al passaggio del mouse,
   voce "Richiedi preventivo" disegnata come bottone (ultima voce del Menu header, CTA di UAE).
   UAE scrive ".ehf-header #masthead { position: relative }" e regole per elemento (0,4,1):
   da qui i selettori con #masthead e :root. Si toglie con i template UAE.
   ===================================================================== */
.ehf-header #masthead { position: sticky; top: 0; z-index: 999; }
.admin-bar.ehf-header #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar.ehf-header #masthead { top: 0; } }
#masthead .gp-header { transition: background-color .25s ease, box-shadow .25s ease; }
.gp-scrolled #masthead .gp-header { background: var(--e-global-color-gp_bianco); box-shadow: var(--gp-ombra-header); }
@media (hover: hover) and (pointer: fine) {
	@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
		.gp-scrolled #masthead .gp-header {
			background: var(--gp-vetro);
			-webkit-backdrop-filter: saturate(1.6) blur(14px);
			        backdrop-filter: saturate(1.6) blur(14px);
			box-shadow: var(--gp-ombra-vetro);
		}
	}
}
:root .gp-header .hfe-nav-menu .menu-item a.hfe-menu-item { font-weight: 500; letter-spacing: -0.005em; }
.gp-header__menu .hfe-nav-menu { align-items: center; }
.gp-header__menu .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item { position: relative; }
.gp-header__menu .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::after {
	content: ""; position: absolute; left: 0; right: 0; top: calc(50% + var(--gp-sottolineatura-distanza));
	height: 2px; background: currentColor; transform: scaleX(0); transition: transform .3s ease-in-out;
}
.gp-header__menu .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item:is(:hover, :focus-visible)::after { transform: scaleX(1); }
:root .gp-header .hfe-nav-menu .gp-voce-preventivo a.hfe-menu-item.elementor-button {
	font-size: 15px; line-height: 1; padding: 12px 20px; border-radius: var(--gp-raggio); margin-left: 20px;
}
/* Testo del bottone sempre bianco (26/10/2026): in /contattaci/ la voce e' anche la pagina aperta e la regola
   delle voci attive di UAE (0,6,1, scritta dopo) la colorava di blu su fondo blu. "li" in piu' per vincere
   quella regola, la variante :hover/:focus per vincere quella del passaggio (0,7,1). */
:root .gp-header .hfe-nav-menu li.gp-voce-preventivo a.hfe-menu-item.elementor-button,
:root .gp-header .hfe-nav-menu li.gp-voce-preventivo a.hfe-menu-item.elementor-button:is(:hover, :focus, :focus-visible) { color: var(--e-global-color-gp_bianco); }

/* Menu a scomparsa (sotto 1025 px): pannello a destra, voci numerate, X disegnata qui (hamburger: icona di UAE).
   UAE scrive le regole del widget (0,4,0 / 0,7,1) anche in fondo alla pagina: da qui ":root .gp-header
   .gp-header__menu-telefono" e un elemento in più. */
.ehf-header #masthead:has(.hfe-flyout-open) { z-index: 100000; } /* sopra la nota dei cookie (#gp-cookie-note, 99999) */
:root .gp-header .gp-header__menu-telefono .hfe-flyout-overlay { background: var(--gp-velo-menu); }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-content { padding: 88px 28px 32px; box-shadow: var(--gp-ombra-menu); counter-reset: gp-voce; }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-content::before { content: "Menu"; position: absolute; top: 34px; left: 28px; font-family: var(--gp-font-mono); font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--e-global-color-gp_nota); }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close { position: absolute; top: 20px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; margin: 0; border-radius: var(--gp-raggio); cursor: pointer; }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close svg { display: none; }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close::before,
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close::after { content: ""; grid-area: 1 / 1; width: 22px; height: 2px; border-radius: 2px; background: var(--e-global-color-secondary); transform: rotate(45deg); }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close::after { transform: rotate(-45deg); }
:root .gp-header .gp-header__menu-telefono div.hfe-flyout-close:is(:hover, :focus-visible) { background: var(--e-global-color-sfondo); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) { border-bottom: 1px solid var(--gp-filetto); counter-increment: gp-voce; }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-wrapper ul.hfe-nav-menu > li.menu-item:first-child { margin-top: 0; border-top: 1px solid var(--gp-filetto); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item { display: flex; align-items: baseline; gap: 14px; padding: 20px 0; font-family: var(--gp-font-titoli); font-size: 24px; font-weight: 550; letter-spacing: -0.015em; line-height: 1.1; color: var(--e-global-color-secondary); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::before,
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::after { position: static; inset: auto; width: auto; height: auto; background: none; opacity: 1; transform: none; transition: none; }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::before { content: counter(gp-voce, decimal-leading-zero); min-width: 22px; font-family: var(--gp-font-mono); font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--e-global-color-gp_nota); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::after { content: "→"; margin-left: auto; font-size: 20px; color: var(--e-global-color-primary); opacity: 0; transform: translateX(-6px); transition: opacity var(--gp-durata) var(--gp-ease), transform var(--gp-durata) var(--gp-ease); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content li.gp-voce-preventivo { margin-top: 32px; }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .gp-voce-preventivo a.hfe-menu-item.elementor-button { display: flex; justify-content: center; width: 100%; margin: 0; padding: 17px 20px; font-size: 16px; font-weight: 600; border-radius: var(--gp-raggio); }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content .menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item:is(:hover, :focus-visible)::after,
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content li.current-menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item::after { opacity: 1; transform: none; }
:root .gp-header .gp-header__menu-telefono .hfe-flyout-content li.current-menu-item:not(.gp-voce-preventivo) > a.hfe-menu-item { color: var(--e-global-color-primary); }

/* ==================================================================
   Footer UAE (template "Footer del sito", classe gp-footer) - fase 3 del PLAN, 2026-10-24.
   Uguale al footer di Astra. Toni del footer non presenti nel kit (testo, link al passaggio, note,
   riga): token qui sotto, da rivedere con la fase 4 (kit). Dati aziendali dalla pagina opzioni.
   ===================================================================== */
.gp-footer {
	--gp-footer-testo: var(--e-global-color-gp_footer_testo);
	--gp-footer-link-h: var(--e-global-color-gp_footer_link);
	--gp-footer-nota: var(--e-global-color-gp_footer_note);
	--gp-footer-riga: color-mix(in srgb, var(--e-global-color-gp_footer_testo) 18%, transparent);
	color: var(--gp-footer-testo);
	font-size: 17px;
}
:root .gp-footer :is(.elementor-heading-title, .hfe-copyright-wrapper) { color: inherit; font-size: inherit; font-weight: 400; line-height: 1.5; margin: 0; text-wrap: wrap; }
:root .gp-footer .elementor-heading-title a,
:root .gp-footer .gp-footer__menu .hfe-nav-menu a.hfe-menu-item { color: var(--e-global-color-gp_bianco); text-decoration: none; }
:root .gp-footer .gp-footer__titolo .elementor-heading-title {
	font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 17px; line-height: 1.08;
	color: var(--e-global-color-gp_bianco); margin-bottom: 16px;
}
.gp-footer__logo img { width: 190px; height: auto; display: block; margin-bottom: 18px; }
:root .gp-footer .gp-footer__claim .elementor-heading-title { max-width: 300px; line-height: 1.6; }
:root .gp-footer .gp-footer__voce { margin-block-end: 10px; }
.gp-footer__logo img { vertical-align: top; }
.gp-footer__logo .elementor-widget-container { line-height: 0; }
:root .gp-footer .gp-footer__menu .hfe-nav-menu .menu-item a.hfe-menu-item { padding: 0; font-size: 17px; line-height: 1.5; }
.gp-footer__menu .hfe-nav-menu .menu-item { margin: 0 0 10px; }
.gp-footer :is(.gp-footer__voce, .gp-footer__menu) a {
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size .3s var(--gp-ease), color .2s ease;
}
:root .gp-footer :is(.gp-footer__voce, .gp-footer__menu) a:is(:hover, :focus-visible) { color: var(--gp-footer-link-h); background-size: 100% 1px; }
.gp-footer__barra { border-top: 1px solid var(--gp-footer-riga); }
:root .gp-footer .gp-footer__nota :is(.elementor-heading-title, .hfe-copyright-wrapper) { font-size: 14px; color: var(--gp-footer-nota); }
@media (max-width: 767px) {
	.gp-footer__colonne > .e-con-inner > .e-con:not(:last-child) { margin-bottom: 10px; }
	.gp-footer__colonne > .e-con-inner > .e-con:first-child { margin-bottom: 50px; }
	.gp-footer__logo { margin-top: 30px; }
}

/* =====================================================================
   PAGINE LEGALI (privacy, cookie), PLAN 6.3, 2026-10-25
   Testo nel widget Editor di testo dentro <div class="gp-legal">; stile delle guide: colonna di 760 px, titoli
   del sito, link blu in grassetto (regola "Link dentro i testi"), tabelle come .gp-tabella, numeri dei paragrafi
   in <span class="gp-legal__num"> (Geist Mono, come i numeri del menu). Privacy: testo + opt-out di Matomo
   (widget HTML, colori nei parametri dello script: sfondo ffffff, testo 3a4a57) + testo, uniti da
   gp-legal--continua (senza spazio sotto) e gp-legal--segue (senza spazio sopra); contenitore con spazio 0.
   ===================================================================== */
.gp-legal { max-width: 760px; margin: 0 auto; padding: 8px 0 64px; color: var(--e-global-color-text); font-size: 17px; line-height: 1.7; }
.gp-legal--continua { padding-bottom: 0; }
.gp-legal--segue { padding-top: 0; }
.gp-legal--segue.gp-legal--continua > .gp-box:last-of-type { margin-bottom: 0; } /* opt-out: come dentro un solo testo, 48 px fino al titolo dopo */
.gp-legal h1 { margin: 0 0 20px; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: clamp(30px, 3.2vw, 44px); line-height: 1.08; letter-spacing: -0.03em; color: var(--e-global-color-secondary); }
.gp-legal .gp-sub { margin: 0 0 8px; font-size: 17px; line-height: 1.6; color: var(--e-global-color-gp_nota); }
.gp-legal h2 { display: flex; align-items: baseline; gap: 12px; margin: 48px 0 16px; padding-top: 20px; border-top: 2px solid var(--e-global-color-secondary); font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-titoli); font-size: 24px; line-height: 1.2; letter-spacing: -0.015em; color: var(--e-global-color-secondary); }
.gp-legal h3 { display: flex; align-items: baseline; gap: 10px; margin: 28px 0 8px; font-family: var(--gp-font-titoli); font-weight: var(--gp-peso-sottotitoli); font-size: 19px; line-height: 1.3; color: var(--e-global-color-secondary); }
.gp-legal__num { flex: none; font-family: var(--gp-font-mono); font-weight: 500; font-size: .8em; letter-spacing: 0; color: var(--e-global-color-primary); }
.gp-legal p { margin: 0 0 14px; }
.gp-legal ul { margin: 0 0 16px 1.3em; padding: 0; }
.gp-legal li { margin-bottom: 8px; }
.gp-legal li::marker { color: var(--e-global-color-primary); }
.gp-legal strong { font-weight: 700; color: var(--e-global-color-secondary); }
.gp-legal .gp-box { margin: 0 0 20px; padding: 20px 24px; background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-left: 3px solid var(--e-global-color-primary); border-radius: var(--gp-raggio); }
.gp-legal .gp-box p:last-child { margin-bottom: 0; }
.gp-legal .gp-table-wrap { overflow-x: auto; margin: 0 0 20px; background: var(--e-global-color-gp_bianco); border: 1px solid var(--gp-filetto); border-radius: var(--gp-raggio-l); }
.gp-legal table { width: 100%; min-width: 540px; margin: 0; border: 0; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.gp-legal th, .gp-legal td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--gp-filetto); text-align: left; vertical-align: top; }
.gp-legal th { background: var(--e-global-color-gp_ghiaccio); font-weight: 700; color: var(--e-global-color-secondary); }
.gp-legal tbody tr:last-child td { border-bottom: 0; }
.gp-legal code { padding: 2px 6px; background: var(--e-global-color-gp_ghiaccio); border-radius: 4px; font-family: var(--gp-font-mono); font-size: .88em; color: var(--e-global-color-secondary); }
.gp-legal .gp-updated { margin: 40px 0 0; padding-top: 16px; border-top: 1px solid var(--gp-filetto); font-family: var(--gp-font-mono); font-size: 14px; color: var(--e-global-color-gp_nota); }
@media (max-width: 767px) {
	.gp-legal { font-size: 16px; padding-bottom: 48px; }
	.gp-legal--continua { padding-bottom: 0; }
	.gp-legal .gp-sub { font-size: 16px; }
	.gp-legal h2 { font-size: 21px; margin-top: 40px; }
	.gp-legal h3 { font-size: 18px; }
	.gp-legal .gp-box { padding: 16px 18px; }
}
