/* ==========================================================================
   Redess — il negozio
   Kreita, 28 agosto 2026

   Questo foglio viene accodato da functions.php DOPO default.css e
   responsive.css del tema genitore: per questo quasi nessuna regola ha
   bisogno di `!important`.

   L'ordine dei blocchi nella scheda (fotografia prima, testo dopo) non si
   ottiene più con `order`: lo sistema il modello del tema figlio, in
   woocommerce/content-product.php.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. La griglia
   Il genitore allinea le schede in BASSO (`align-items: flex-end`): erano
   appese a un bordo inferiore comune e, avendo contenuti di altezze diverse,
   le cime si sfalsavano fino a 170 px. Sembrava un mosaico rotto.
   -------------------------------------------------------------------------- */
.woocommerce .products {
	align-items: stretch;
}

.woocommerce .products .ftc-product {
	display: flex;
	flex-direction: column;
	float: none;
	height: auto;
	position: relative;
	background: #fff;
	border: 0;
	border-radius: 14px;
	padding: 0;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .06), 0 6px 18px -12px rgba(60, 40, 25, .28);
	transition: box-shadow .28s cubic-bezier(.2, .7, .3, 1), transform .28s cubic-bezier(.2, .7, .3, 1);
}

.woocommerce .products .ftc-product:hover {
	transform: translateY(-6px);
	box-shadow: 0 2px 4px rgba(60, 40, 25, .08), 0 22px 44px -22px rgba(60, 40, 25, .5);
}

/* --------------------------------------------------------------------------
   2. La fotografia
   Il genitore usa `object-fit: fill`: ogni immagine conservava le proprie
   proporzioni e dettava un'altezza diversa alla scheda. È questo che rendeva
   impossibile allineare la griglia, non l'estetica. Una cornice quadrata
   uguale per tutte, con ritaglio al centro invece che deformazione.
   -------------------------------------------------------------------------- */
.woocommerce .products .ftc-product .item-image {
	float: none;
	width: 100%;
	overflow: hidden;
	background: #f6f1e8;
}

.woocommerce .products .ftc-product .item-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center;
	transition: transform .55s cubic-bezier(.2, .7, .3, 1);
}

.woocommerce .products .ftc-product:hover .item-image img {
	transform: scale(1.06);
}

/* --------------------------------------------------------------------------
   3. Il testo
   -------------------------------------------------------------------------- */
.woocommerce .products .ftc-product .item-description {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 18px;
	text-align: left;
}

/* Il titolo passa dallo slab tutto maiuscolo al Roboto già caricato dal tema:
   «Bacche di Sommacco in grappolo» si legge, «BACCHE DI SOMMACCO IN GRAPPOLO»
   si decifra. Due righe esatte, poi i puntini: niente sillabazione, che
   spezzava «SOMMACCO» in «SOM-MACCO». */
.woocommerce .products .ftc-product .product_title,
.woocommerce .products .ftc-product .product_title a {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -.01em;
	text-transform: none;
	color: #211d1a;
}

.woocommerce .products .ftc-product .product_title {
	margin: 0 0 10px;
	min-height: 2.7em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: break-word;
}

.woocommerce .products .ftc-product .product_title a:hover {
	color: #be1e2d;
}

/* Il trattino decorativo del genitore (`.item-description::after`) qui non
   serve: con un pulsante in fondo diventerebbe un terzo elemento che divide
   senza motivo. */
.woocommerce .products .ftc-product .item-description::after {
	display: none;
}

/* Il prezzo comanda; l'avvertenza sull'IVA fa da didascalia, non da gemella:
   prima avevano lo stesso peso ed erano affiancate alla pari. */
.woocommerce .products .ftc-product .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 2px 8px;
	margin: 0 0 14px;
	padding: 0;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	color: #1b1815;
}

/* ⚠️ Misura e colore corretti dopo il controllo di leggibilità: 10,5 px in
   #9a9086 su bianco davano 3,13:1, sotto la soglia di 4,5:1, e sotto gli
   11 px consigliati. A 12 px e #7a6f66 fanno 4,89:1 e restano discreti. */
.woocommerce .products .ftc-product .price .woocommerce-price-suffix {
	white-space: nowrap;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: #7a6f66;
}

/* --------------------------------------------------------------------------
   4. Il pulsante d'acquisto
   Quello del genitore (`.meta_info`) è `opacity: 0` e compare al passaggio
   del mouse: su telefono e tablet era irraggiungibile. Il modello del tema
   figlio ne stampa uno nuovo dentro `.kta-azioni`, che il JavaScript del
   carosello non conosce e quindi non ricostruisce.
   -------------------------------------------------------------------------- */
.woocommerce .products .ftc-product .item-description .meta_info {
	display: none;
}

.woocommerce .products .ftc-product .kta-azioni {
	margin-top: auto;
}

.woocommerce .products .ftc-product .kta-azioni .button,
.woocommerce .products .ftc-product .kta-azioni a.added_to_cart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 9px;
	background: #be1e2d;
	color: #fff;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.2;
	text-align: center;
	text-transform: none;
	transition: background .2s ease;
}

.woocommerce .products .ftc-product .kta-azioni .button:hover,
.woocommerce .products .ftc-product .kta-azioni .button:focus-visible {
	background: #9b1824;
	color: #fff;
}

/* Il collegamento «Visualizza carrello» che WooCommerce aggiunge dopo
   l'acquisto: sotto al pulsante, discreto. */
.woocommerce .products .ftc-product .kta-azioni a.added_to_cart {
	margin-top: 8px;
	background: transparent;
	color: #be1e2d;
	border: 1px solid rgba(190, 30, 45, .3);
	min-height: 38px;
}

/* Lo stato di caricamento del pulsante, mentre aggiunge senza ricaricare. */
.woocommerce .products .ftc-product .kta-azioni .button.loading {
	opacity: .75;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   5. Telefono: due schede per riga invece di una incolonnata.
   Si vedono più prodotti senza scorrere e le fotografie restano leggibili.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.woocommerce .products .ftc-product {
		width: calc(50% - 10px);
		margin: 10px 5px;
		border-radius: 12px;
	}

	.woocommerce .products .ftc-product .item-description {
		padding: 13px;
	}

	.woocommerce .products .ftc-product .product_title,
	.woocommerce .products .ftc-product .product_title a {
		font-size: 14px;
	}

	.woocommerce .products .ftc-product .product_title {
		min-height: 2.8em;
	}

	.woocommerce .products .ftc-product .price {
		font-size: 18px;
		margin-bottom: 12px;
	}

	.woocommerce .products .ftc-product .kta-azioni .button {
		min-height: 40px;
		font-size: 12px;
	}
}

/* ==========================================================================
   6. LA SCHEDA DEL SINGOLO PRODOTTO
   ========================================================================== */

/* La barra laterale destra è VUOTA: 300 px di larghezza, 2 di altezza, zero
   contenuto. Occupava un terzo della pagina e conteneva solo la freccia
   orfana di un carosello mai inizializzato. Si toglie, e il prodotto prende
   tutta la larghezza. */
.single-product aside#right-sidebar {
	display: none;
}

/* La griglia Bootstrap del tema impone `width: 75%` alla colonna: qui serve
   alzare la mano, altrimenti il contenuto resta stretto e il terzo recuperato
   rimane vuoto lo stesso. */
.single-product .site-content.col-sm-9 {
	width: 100% !important;
}

/* La freccia di navigazione fra prodotti restava orfana nel vuoto a destra,
   a 955 px, senza niente attorno: sembrava un carosello rotto. */
.single-product .detail-nav-summary {
	display: none;
}

/* Con lo spazio recuperato la fotografia può finalmente essere grande. */
.single-product div.product .woocommerce-product-gallery {
	width: 46% !important;
	float: left;
}

.single-product div.product .summary,
.single-product div.product .entry-summary {
	width: 50% !important;
	margin-left: 4%;
}

/* Il testo giustificato senza sillabazione apre buchi fra le parole: allineato
   a sinistra si legge meglio ed è come si scrive in italiano sul web. */
.single-product div.product .summary,
.single-product div.product .summary p,
.single-product div.product .woocommerce-product-details__short-description,
.single-product div.product .woocommerce-Tabs-panel p {
	text-align: left;
	hyphens: none;
}

@media (max-width: 991px) {
	/* Su telefono la fotografia occupava un quarto di schermo, appoggiata a
	   sinistra: è l'elemento che vende, e va a tutta larghezza. */
	/* 🔴 29/8: questa regola NON HA MAI FUNZIONATO. Qui sopra la larghezza da
	   computer è scritta `width: 50% !important`, e un `!important` batte una
	   dichiarazione normale a qualunque ordine e specificità: la descrizione
	   restava larga **180 px su 360** a 390 px, con la metà destra dello
	   schermo vuota e il testo a capo ogni trenta caratteri. Serve
	   l'`!important` anche qui. ⚠️ E il contenitore della galleria del TEMA è
	   `div.images`, che è un'altra cosa da `.woocommerce-product-gallery`: a
	   820 px restava largo 600 su 790. */
	/* ⚠️ Le larghezze stanno nel blocco a 767 qui sotto: sotto i 768 px si
	   incolonna, fra 768 e 991 le due colonne ci stanno ancora e restano
	   affiancate. */
	.single-product div.product .woocommerce-product-gallery img {
		width: 100%;
		height: auto;
	}

	/* Le briciole di pane si impilavano su quattro righe, mangiando 250 px
	   prima ancora del prodotto: qui stanno su una riga sola. */
	.ftc-breadcrumb .breadcrumb,
	.ftc-breadcrumb .breadcrumbs {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 8px;
		font-size: 12px;
		line-height: 1.4;
	}

	.ftc-breadcrumb .breadcrumb br,
	.ftc-breadcrumb .breadcrumbs br {
		display: none;
	}
}

/* 🔴 29/8: sotto i 768 px la descrizione restava larga **180 px su 360** —
   metà schermo vuota e il testo a capo ogni trenta caratteri. La regola che
   doveva portarla al 100% c'era già, ma senza `!important`, e qui sopra la
   larghezza da computer è scritta `width: 50% !important`: un `!important`
   batte una dichiarazione normale a qualunque ordine e specificità. La regola
   c'era e non ha mai funzionato. */
@media (max-width: 767px) {
	.single-product div.product div.images,
	.single-product div.product .ftc-adzoom.details-img,
	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary,
	.single-product div.product .entry-summary {
		width: 100% !important;
		max-width: none !important;
		margin-left: 0;
		float: none;
	}
}

/* 🔴 29/8: fra 768 e 991 px la fotografia del prodotto restava larga 600 px
   dentro una colonna da 790, e la descrizione 395 sotto di essa: una striscia
   vuota larga 200-400 px lungo tutto il lato destro. Il vincolo non era né
   l'immagine né `div.images` — era `max-width: 600px` su `.ftc-adzoom
   .details-img`, DUE livelli sopra. Misurare la catena dei genitori, non
   l'elemento. Qui le due colonne restano affiancate come sul computer: a 820
   px ci stanno (363 + 395), e incolonnarle porterebbe il pulsante d'acquisto
   ottocento pixel più in basso. */
@media (min-width: 768px) and (max-width: 991px) {
	.single-product div.product .ftc-adzoom.details-img,
	.single-product div.product > .details-img {
		width: 46% !important;
		max-width: none !important;
		float: left;
	}

	.single-product div.product div.images {
		width: 100% !important;
		max-width: none !important;
	}
}

/* ==========================================================================
   7. IL CHECKOUT
   È la pagina dove si perdono i soldi, ed era la più vecchia del sito: il
   riepilogo dell'ordine era una tabella bordata con le intestazioni in
   maiuscoletto serif centrate, i campi erano rettangoli nudi diversi da
   quelli dell'accesso, il riquadro del pagamento grigio-lilla e il pulsante
   d'ordine largo 176 px appeso a destra. Su telefono le due colonne non si
   impilavano nemmeno.
   ========================================================================== */

/* --------------------------------------------------------------------------
   7.1 L'IMPAGINAZIONE
   Modulo a sinistra, riepilogo a destra dentro una scheda che SEGUE chi
   scorre: il modulo è alto 1.100 px e il totale spariva dopo il terzo campo.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 992px) {

	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 420px;
		gap: 40px;
		align-items: start;
	}

	/* ⚠️ Il clearfix di `.col2-set` diventa una casella nella griglia e sposta
	   tutto di un posto: stessa trappola del modulo di accesso. */
	.woocommerce-checkout form.checkout::before,
	.woocommerce-checkout form.checkout::after {
		display: none;
	}

	.woocommerce-checkout form.checkout #customer_details {
		grid-column: 1;
		width: 100%;
		float: none;
	}

	/* ⚠️ Il modulo ha SOLO DUE figli: `#customer_details` e `#order_review`.
	   Il titolo «Il tuo Ordine» sta DENTRO il riepilogo, non accanto ad esso
	   come nel checkout standard di WooCommerce. Mettere il riepilogo in
	   `grid-row: 2` lo faceva scendere sotto tutto il modulo, a 2.063 px
	   dall'alto: sembrava che la griglia non avesse funzionato. */
	.woocommerce-checkout form.checkout #order_review {
		grid-column: 2;
		grid-row: 1;
		width: auto;
		float: none;
		position: sticky;
		top: 20px;
	}
}

/* Su telefono le due colonne restavano affiancate a 150 e 180 px dentro 390,
   con la tabella che usciva dallo schermo. */
@media only screen and (max-width: 991px) {

	.woocommerce-checkout .col2-set,
	.woocommerce-checkout #customer_details {
		display: block;
		width: 100%;
	}

	.woocommerce-checkout .col2-set .col-1,
	.woocommerce-checkout .col2-set .col-2,
	.woocommerce-checkout #customer_details .col-1,
	.woocommerce-checkout #customer_details .col-2 {
		width: 100%;
		float: none;
		padding: 0;
	}

	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review_heading {
		width: 100%;
		float: none;
		margin-top: 26px;
	}
}

/* --------------------------------------------------------------------------
   7.2 I TITOLI E LE ETICHETTE
   Il tema mette `text-transform: capitalize` su mezza pagina: «Inserisci Il
   Tuo Indirizzo Per Visualizzare Le Opzioni Di Spedizione» sembra un errore
   di battitura, non una frase.
   -------------------------------------------------------------------------- */
/* ⚠️ Il maiuscoletto del riepilogo veniva da `.woocommerce table.shop_table th`
   nel `style.css` del tema: due classi e DUE elementi (0,2,2), mentre la mia
   `.woocommerce-checkout .shop_table th` valeva 0,2,1 e perdeva pur essendo
   caricata dopo. Basta nominare anche l'elemento `table`, o passare dall'id
   del riepilogo come qui sotto. */
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table td *,
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .shop_table th,
.woocommerce-checkout .shop_table td,
.woocommerce-checkout .woocommerce-shipping-destination,
.woocommerce-checkout .woocommerce-shipping-methods,
.woocommerce-checkout .cart_item .product-name,
.woocommerce-checkout label,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message {
	text-transform: none;
}

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 18px;
	font-size: 22px;
	line-height: 1.25;
}

/* ⚠️ I DISALLINEAMENTI FRA LE SCHEDE.
   Due cause, entrambe del tema:
   - `#customer_details` porta `padding: 15px 30px 0 0`, quindi la colonna di
     sinistra si fermava 30 px prima del suo spazio;
   - le schede «Spedire ad un indirizzo differente?» e «Note sull'ordine»
     stanno in un contenitore con un rientro di 20 px, e partivano da 128
     mentre quella della fatturazione partiva da 108: venti pixel di scalino
     fra tre schede incolonnate.
   Si azzerano riempimenti e rientri: le tre schede devono avere lo stesso
   bordo sinistro e lo stesso bordo destro. */
.woocommerce-checkout #customer_details {
	padding: 0;
	margin: 0;
}

/* ⚠️⚠️ `.col-2` NON sta accanto a `.col-1`: sta DENTRO. Il tema le annida
   invece di affiancarle, e le dà `float: right` e `padding-left: 20px`. Un
   selettore figlio (`#customer_details > .col-2`) non la raggiunge: sembrava
   che la correzione non avesse effetto. Ci vuole il discendente. */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	width: 100%;
	float: none;
	padding: 0;
	margin-left: 0;
	margin-right: 0;
}

/* Il modulo era su fondo crema, nudo, accanto a un riepilogo che è una scheda
   bianca: i due lati della pagina non sembravano parti della stessa cosa. */
.woocommerce-checkout #customer_details .woocommerce-billing-fields,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields {
	padding: 26px 26px 12px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(60, 45, 30, .06);
}

.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields {
	margin-top: 20px;
}

.woocommerce-checkout .woocommerce-billing-fields h3 {
	padding-bottom: 14px;
	border-bottom: 1px solid #ece7dd;
}

/* Dentro una scheda i campi hanno bisogno di respirare meno: il riquadro fa
   già da contenimento. */
.woocommerce-checkout #customer_details .form-row {
	margin-bottom: 14px;
}

/* «Spedire ad un indirizzo differente?» è una domanda accanto a una casella,
   non un titolo: usciva a 24 px, grande quanto «Dettagli di fatturazione», e
   la casella le stava sotto invece che accanto. */
.woocommerce-checkout #ship-to-different-address {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.35;
}

.woocommerce-checkout #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 15.5px;
	font-weight: 600;
	cursor: pointer;
}

.woocommerce-checkout #ship-to-different-address input[type="checkbox"] {
	width: 17px;
	height: 17px;
	margin: 0;
	flex: 0 0 auto;
}

.woocommerce-checkout #customer_details .woocommerce-shipping-fields {
	padding: 20px 26px;
}

/* Quando la casella non è spuntata quella scheda contiene solo la domanda:
   non serve che sia alta come le altre. */
.woocommerce-checkout #customer_details .woocommerce-shipping-fields .shipping_address {
	margin-top: 18px;
}

/* Il riquadro delle note aveva un bordo più scuro degli altri campi. */
.woocommerce-checkout #order_comments,
.woocommerce-checkout .woocommerce-additional-fields textarea {
	border: 1px solid #ddd5c9;
	border-radius: 8px;
}

.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-size: 15.5px;
	padding-bottom: 0;
	border-bottom: 0;
	margin-bottom: 12px;
}

/* --------------------------------------------------------------------------
   7.3 I CAMPI
   Uguali a quelli dell'accesso: chi arriva qui li ha già visti.
   -------------------------------------------------------------------------- */
.woocommerce-checkout .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	color: #3f3830;
	font-size: 13.5px;
	font-weight: 600;
}

/* ⚠️ I marcatori dei campi obbligatori erano DUE: `*` sui campi di
   WooCommerce e `**` su quelli aggiunti dal sito. Due segni per la stessa
   cosa fanno pensare che vogliano dire cose diverse. */
.woocommerce-checkout .form-row label .required,
.woocommerce-checkout .form-row label abbr.required {
	border: 0;
	color: #BE1E2D;
	text-decoration: none;
}

/* Il DOPPIO asterisco: su Nome, Cognome e Codice Fiscale il modello stampa
   sia `<span class="required">*</span>` sia `<abbr class="required">*</abbr>`
   — WooCommerce e il modulo aggiunto dal sito ne mettono uno ciascuno. Due
   segni per la stessa cosa fanno pensare che vogliano dire cose diverse. */
.woocommerce-checkout .form-row label .required + abbr.required,
.woocommerce-checkout .form-row label abbr.required + .required {
	display: none;
}

/* ⚠️ Campi marcati OBBLIGATORI E FACOLTATIVI INSIEME: «Rappresentante Legale
   *(optional)», «P. IVA *(optional)». L'asterisco è di WooCommerce, il
   «(optional)» del modulo del sito. Se una cosa è facoltativa, l'asterisco è
   una bugia: si toglie. */
.woocommerce-checkout .form-row label:has(.optional) .required,
.woocommerce-checkout .form-row label:has(.optional) abbr.required {
	display: none;
}

/* ⚠️ «(optional)» su «Rappresentante Legale», «P. IVA» e «Codice SDI» NON
   passa da alcuna funzione di traduzione: il modulo che aggiunge quei campi
   lo scrive a mano nell'etichetta, quindi né un file di lingua né un filtro
   `gettext` lo raggiungono (quello di «Denominazione Sociale», che è di
   WooCommerce, si traduce regolarmente). L'unico punto in cui si può ancora
   intervenire senza toccare il modulo è la resa: si azzera il corpo del testo
   originale e se ne stampa uno nuovo. Il testo inglese resta nel codice per
   chi legge con la voce — non è una soluzione, è un cerotto: la cura è
   configurare l'etichetta nel pannello del modulo. */
.woocommerce-checkout .form-row label .optional {
	margin-left: 5px;
	color: #8a8078;
	font-weight: 400;
	font-size: 0;
}

.woocommerce-checkout .form-row label .optional::after {
	content: "(facoltativo)";
	font-size: 13px;
}

.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	background: #fff;
	border: 1px solid #ddd5c9;
	border-radius: 8px;
	font-size: 15px;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.woocommerce-checkout .form-row textarea {
	height: auto;
	min-height: 96px;
	padding: 12px 14px;
	line-height: 1.5;
}

.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	border-color: #BE1E2D;
	box-shadow: 0 0 0 3px rgba(190, 30, 45, .12);
	outline: none;
}

/* --------------------------------------------------------------------------
   7.3bis IL MODULO A GRIGLIA
   Dodici campi uno sotto l'altro, tutti a tutta larghezza, per 1.126 px di
   altezza: «C.A.P.» aveva la stessa riga di «Via e numero», e la colonna
   sembrava non finire mai. Con una griglia a sei colonne ogni campo prende
   la larghezza che gli serve — il C.A.P. un terzo, la via tutta la riga — e
   il modulo si accorcia di circa un terzo.

   I campi si nominano per id: sono quelli di WooCommerce più quattro aggiunti
   dal modulo della fatturazione elettronica. Quelli dell'azienda sono
   `display: none` finché non si sceglie «azienda»: essendo tolti dal flusso,
   la griglia si richiude da sola.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 600px) {

	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
		display: grid;
		grid-template-columns: repeat(6, minmax(0, 1fr));
		gap: 0 16px;
	}

	/* ⚠️ Anche qui il clearfix diventerebbe due caselle vuote. */
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::before,
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after {
		display: none;
	}

	/* Di regola un campo occupa la riga intera. */
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
		grid-column: span 6;
		width: auto;
		float: none;
		margin-left: 0;
		margin-right: 0;
	}

	/* Metà riga: nome e cognome, partita IVA e codice SDI, telefono e email. */
	.woocommerce-checkout #billing_first_name_field,
	.woocommerce-checkout #billing_last_name_field,
	.woocommerce-checkout #billing_Codice_Fiscale_field,
	.woocommerce-checkout #billing_Partita_IVA_field,
	.woocommerce-checkout #billing_Codice_SDI_field,
	.woocommerce-checkout #billing_phone_field,
	.woocommerce-checkout #billing_email_field,
	.woocommerce-checkout #shipping_first_name_field,
	.woocommerce-checkout #shipping_last_name_field {
		grid-column: span 3;
	}

	/* Un terzo di riga: città, provincia e C.A.P. stanno su una riga sola,
	   come si scrivono su una busta. */
	.woocommerce-checkout #billing_city_field,
	.woocommerce-checkout #billing_state_field,
	.woocommerce-checkout #billing_postcode_field,
	.woocommerce-checkout #shipping_city_field,
	.woocommerce-checkout #shipping_state_field,
	.woocommerce-checkout #shipping_postcode_field {
		grid-column: span 2;
	}

	/* Dove comincia l'indirizzo si stacca dai dati anagrafici. Un filo, non
	   un titolo: i titoli li scrive chi cura i testi, non il foglio di stile. */
	.woocommerce-checkout #billing_country_field {
		margin-top: 10px;
		padding-top: 22px;
		border-top: 1px solid #f2ede4;
	}
}

/* --------------------------------------------------------------------------
   7.4 IL RIEPILOGO DELL'ORDINE
   Era una tabella con tutti i bordi disegnati e le intestazioni centrate in
   maiuscoletto: un tabulato, non un conto. Diventa una scheda con le righe
   separate da un filo e il totale in evidenza.
   -------------------------------------------------------------------------- */
.woocommerce-checkout #order_review {
	padding: 22px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(60, 45, 30, .06);
}

.woocommerce-checkout #order_review .shop_table,
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td,
.woocommerce-checkout #order_review .shop_table tr {
	background: transparent;
	border: 0;
	border-radius: 0;
}

.woocommerce-checkout #order_review .shop_table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

/* L'intestazione «PRODOTTO / SUBTOTALE» non dice niente che le righe sotto
   non dicano già. */
.woocommerce-checkout #order_review .shop_table thead {
	display: none;
}

.woocommerce-checkout #order_review .shop_table .cart_item td {
	padding: 12px 0;
	border-bottom: 1px solid #f2ede4;
	font-size: 14.5px;
	line-height: 1.45;
	vertical-align: top;
}

.woocommerce-checkout #order_review .shop_table .cart_item .product-name {
	text-align: left;
	color: #2c2620;
}

.woocommerce-checkout #order_review .shop_table .cart_item .product-total {
	text-align: right;
	white-space: nowrap;
	font-weight: 600;
}

.woocommerce-checkout #order_review .shop_table tfoot th,
.woocommerce-checkout #order_review .shop_table tfoot td {
	padding: 10px 0;
	border-bottom: 1px solid #f2ede4;
	font-size: 14.5px;
	font-weight: 400;
	line-height: 1.45;
}

.woocommerce-checkout #order_review .shop_table tfoot th {
	text-align: left;
	color: #6f655c;
}

.woocommerce-checkout #order_review .shop_table tfoot td {
	text-align: right;
	white-space: normal;
	color: #2c2620;
}

/* Il totale è l'unica riga che si guarda davvero. */
.woocommerce-checkout #order_review .shop_table tfoot .order-total th,
.woocommerce-checkout #order_review .shop_table tfoot .order-total td {
	padding-top: 14px;
	border-bottom: 0;
	border-top: 2px solid #ece7dd;
	color: #1b1815;
	font-size: 19px;
	font-weight: 700;
}

/* La riga della spedizione, quando l'indirizzo non c'è ancora, è una frase
   lunga: va a capo come una frase, non come un numero. */
/* La riga della spedizione, finché l'indirizzo non c'è, contiene una FRASE,
   non un importo: incolonnata a destra andava a capo tre volte con il bordo
   sinistro a zig-zag. */
.woocommerce-checkout #order_review .shop_table .woocommerce-shipping-destination,
.woocommerce-checkout #order_review table.shop_table .woocommerce-shipping-totals td {
	color: #6f655c;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.5;
	text-align: left;
}

/* --------------------------------------------------------------------------
   7.5 IL PAGAMENTO
   Il riquadro era grigio-lilla, un colore che non compare in nessun altro
   punto del sito.
   -------------------------------------------------------------------------- */
.woocommerce-checkout #payment {
	margin-top: 18px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: 0;
	list-style: none;
	background: transparent;
}

.woocommerce-checkout #payment div.payment_box {
	margin: 12px 0 0;
	padding: 16px;
	background: #faf6ee;
	border: 1px solid #ece7dd;
	border-radius: 10px;
	color: #4a423a;
	font-size: 14px;
	line-height: 1.5;
}

/* La punta che il tema disegna sopra il riquadro puntava a un fondo che non
   c'è più. */
.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #faf6ee;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text p {
	margin: 14px 0 0;
	color: #6f655c;
	font-size: 13px;
	line-height: 1.55;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text a {
	color: #BE1E2D;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* --------------------------------------------------------------------------
   7.6 IL PULSANTE
   Era largo 176 px, appeso a destra sotto il riquadro del pagamento. È
   l'ultimo gesto dell'acquisto: si prende tutta la scheda.
   -------------------------------------------------------------------------- */
.woocommerce-checkout #payment .form-row.place-order {
	margin: 18px 0 0;
	padding: 0;
}

.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	min-height: 52px;
	margin: 0;
	float: none;
	background: #BE1E2D;
	border: 0;
	border-radius: 10px;
	color: #fff;
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
}

.woocommerce-checkout #place_order:hover {
	background: #9b1824;
}

/* --------------------------------------------------------------------------
   7.7 GLI AVVISI IN CIMA
   Tre riquadri impilati — «prodotto aggiunto», «codice applicato», «hai un
   codice?» — prendevano 250 px prima che cominciasse il modulo.
   -------------------------------------------------------------------------- */
/* ⚠️ Il tema posiziona l'icona dell'avviso in assoluto a `left: 21px`, larga
   14: con un riempimento sinistro di 18 px il testo ci finiva SOPRA e si
   leggeva «☑N aL Sommacco». Il riempimento va calcolato sull'icona. */
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error {
	margin: 0 0 12px;
	padding: 13px 18px 13px 48px;
	background: #faf6ee;
	border: 1px solid #ece7dd;
	border-top: 0;
	border-left: 3px solid #BE1E2D;
	border-radius: 8px;
	color: #4a423a;
	font-size: 14px;
	line-height: 1.5;
}

.woocommerce-checkout .woocommerce-message .button,
.woocommerce-checkout .woocommerce-info .button {
	min-height: 36px;
	padding: 0 16px;
	border-radius: 8px;
	font-size: 13.5px;
	line-height: 36px;
}

/* Il modulo del codice promozionale, quando si apre. */
.woocommerce-checkout form.checkout_coupon {
	margin: 0 0 20px;
	padding: 18px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 12px;
}

/* ==========================================================================
   8. L'AREA CLIENTE
   Il modulo era interamente in inglese su un sito italiano: le stringhe le
   sistema il modello del tema figlio (woocommerce/myaccount/form-login.php).
   Qui resta l'aspetto.
   ========================================================================== */

/* La scatola era larga 460 px persa in mezzo a 1400 di vuoto. */
.woocommerce-account .woocommerce > .u-column1,
.woocommerce-account #customer_login {
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
	background: #fff;
	border: 1px solid #ece4d6;
	border-radius: 14px;
	padding: 30px 32px 34px;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .05), 0 8px 22px -16px rgba(60, 40, 25, .35);
}

.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2 {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -.01em;
	text-transform: none;
	margin: 0 0 6px;
	color: #211d1a;
}

/* La riga che spiega a cosa serve l'area cliente. */
.woocommerce-account .kta-spiega {
	margin: 0 0 22px;
	color: #7d746a;
	font-size: 14.5px;
	line-height: 1.5;
}

.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text {
	min-height: 48px;
	border-radius: 9px;
	border: 1px solid #ddd3c4;
	padding: 0 14px;
	font-size: 15px;
}

.woocommerce-account .woocommerce-form-login input.input-text:focus,
.woocommerce-account .woocommerce-form-register input.input-text:focus {
	border-color: #be1e2d;
	outline: 2px solid rgba(190, 30, 45, .18);
	outline-offset: 1px;
}

/* Il pulsante era NERO, l'unico del sito che non è rosso. */
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
	width: 100%;
	min-height: 48px;
	margin-top: 6px;
	border: 0;
	border-radius: 9px;
	background: #be1e2d;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .01em;
	text-transform: none;
	transition: background .2s ease;
}

.woocommerce-account .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register__submit:hover {
	background: #9b1824;
	color: #fff;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: #6b635a;
}

.woocommerce-account .woocommerce-LostPassword {
	float: right;
	font-size: 14px;
}

.woocommerce-account .woocommerce-LostPassword a {
	color: #be1e2d;
}

@media (max-width: 767px) {
	.woocommerce-account .u-column1,
	.woocommerce-account .u-column2 {
		padding: 22px 20px 26px;
	}

	.woocommerce-account .woocommerce-LostPassword {
		float: none;
		display: block;
		margin-top: 10px;
	}
}

/* La galleria è uno slider che si scrive la larghezza IN LINEA via JavaScript
   (200 px fissi): allargando solo il contenitore l'immagine restava piccola.
   `!important` qui è necessario, ed è l'unico caso in cui il CSS batte uno
   stile in linea. */
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
}

/* La descrizione compariva DUE VOLTE: prima troncata con i puntini, poi per
   intero. È un widget «leggi tutto / leggi meno» del tema il cui JavaScript
   non parte, così restano visibili tutti e due i blocchi più i collegamenti
   che dovrebbero alternarli. Con descrizioni da 250 caratteri non c'è niente
   da troncare: si mostra solo quella intera. */
.single-product .ftc_excerpt .collapsed-content,
.single-product .ftc_excerpt > a {
	display: none;
}

.single-product .ftc_excerpt .full-content {
	display: block;
}

/* ==========================================================================
   9. LE TRE REGOLE OSTINATE
   Il tema le difende con `!important` o con selettori più specifici. Qui si
   alza la mano, ma solo su queste: altrove la dipendenza dichiarata in
   functions.php basta a vincere senza forzature.
   ========================================================================== */

/* Il pulsante d'accesso era NERO, l'unico del sito che non è rosso. */
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit,
.woocommerce-account button.woocommerce-button {
	background: #be1e2d !important;
	border-color: #be1e2d !important;
	color: #fff !important;
}

.woocommerce-account .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register__submit:hover,
.woocommerce-account button.woocommerce-button:hover {
	background: #9b1824 !important;
	border-color: #9b1824 !important;
}

/* La fotografia del prodotto restava a 200 px dentro una colonna da 538. */
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .woocommerce-product-gallery > div,
.single-product div.product .woocommerce-product-gallery__wrapper,
.single-product div.product .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery__image > a,
.single-product div.product .woocommerce-product-gallery img {
	max-width: 100% !important;
}

.single-product div.product .woocommerce-product-gallery__wrapper,
.single-product div.product .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery__image > a,
.single-product div.product .woocommerce-product-gallery img {
	width: 100% !important;
	height: auto !important;
}

/* La descrizione compariva due volte: il «leggi tutto» del tema non parte. */
.single-product .ftc_excerpt .collapsed-content {
	display: none !important;
}

.single-product .ftc_excerpt .full-content {
	display: block !important;
}

/* ⚠️⚠️ LA FOTOGRAFIA CHE RESTAVA A 195 PX.
   Non era una guerra di specificità sui contenitori: era che nessuno di loro
   imponeva una larghezza. `div.images`, la galleria, il `figure` e il `div`
   dell'immagine si adattavano TUTTI al contenuto — e il contenuto era
   un'immagine alta e stretta (un'infografica in rapporto 2:5) a cui il tema
   dava un'altezza, non una larghezza: 488 px di altezza per quel rapporto
   fanno 195 px di larghezza, e ogni contenitore si stringeva su quella misura.
   Dentro una colonna da 538 px sembrava una miniatura, e il testo scritto
   nell'infografica era illeggibile.
   Si dichiara la larghezza sull'IMMAGINE e si lascia libera l'altezza: sono i
   contenitori a doversi adattare a lei, non il contrario. */
/* ⚠️ Il 46% va messo sul contenitore ESTERNO. `div.images` sta dentro
   `.ftc-adzoom.details-img`, largo 468 px: chiedere il 46% a `div.images`
   significava chiedere il 46% di 468, cioè 215 — quasi la misura di prima.
   La colonna è `.ftc-adzoom`; `div.images` la riempie e basta. */
.single-product div.product .ftc-adzoom.details-img,
.single-product div.product > .details-img {
	width: 46% !important;
	max-width: none;
	float: left;
	padding: 0;
}

.single-product div.product .images {
	width: 100% !important;
	max-width: none;
	float: none;
	padding: 0;
}

.single-product div.product .images .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image > a {
	width: 100% !important;
	max-width: none;
}

.single-product .woocommerce-product-gallery__image img,
.single-product div.images img.wp-post-image {
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	border-radius: 12px;
}

/* ⚠️ 29/8: era `max-width: 991px` e vinceva sul blocco 768-991 scritto più in
   alto nel file (stessa specificità, stesso `!important`, ma questo viene
   dopo): a 820 px la foto restava larga tutta la riga. Fra 768 e 991 le due
   colonne ci stanno, e si incolonna solo sotto i 768. */
@media (max-width: 767px) {
	.single-product div.product .ftc-adzoom.details-img,
	.single-product div.product > .details-img,
	.single-product div.product .images {
		width: 100% !important;
		float: none;
	}
}

/* ==========================================================================
   10. VISIBILITÀ
   Non è una sezione di gusto: raccoglie ciò che, misurato sulla pagina viva,
   non si vede o non si riesce a toccare. I rapporti di contrasto citati sono
   calcolati con la soglia di legge: 4,5:1 per il testo normale, 3:1 per
   quello grande, 44x44 px per i bersagli del dito.
   ========================================================================== */

/* --------------------------------------------------------------------------
   10.1 I CONTATTI SU TELEFONO
   `responsive.css` del genitore contiene
       @media (max-width: 991px) { .header-nav { display: none !important } }
   e quella barra è l'UNICO posto del sito dove compaiono i due numeri e
   l'indirizzo email: nel footer non ci sono (contate le occorrenze: zero).
   Risultato misurato a 390 px: zero telefoni visibili, zero email. Su ogni
   telefono e su quasi ogni tavoletta il sito non mostrava alcun modo di
   essere contattato — proprio sull'apparecchio che basta toccare per
   chiamare.
   Si riporta la sola parte dei contatti; il modulo di accesso che le sta
   accanto (in inglese, con la sua tendina) resta fuori.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 991px) {

	.header-nav {
		display: block !important;
		padding: 0;
	}

	.header-nav .nav-right {
		display: none !important;
	}

	.header-nav .container {
		width: 100%;
		padding: 0 12px;
	}

	.header-nav .nav-left {
		float: none;
		width: 100%;
	}

	.header-nav .custom_content {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 0 12px;
		padding: 3px 0;
		float: none;
		width: 100%;
		text-align: center;
		line-height: 1.3;
		/* I trattini che separavano le tre voci servivano a una riga sola: su
		   due righe restavano appesi nel vuoto. Si azzera il corpo dei nodi di
		   testo sciolti e lo si ridà solo ai figli veri. */
		font-size: 0;
	}

	.header-nav .custom_content > a,
	.header-nav .custom_content > i {
		font-size: 12.5px;
	}

	/* Ogni contatto è un bersaglio da toccare. */
	.header-nav .custom_content > a {
		display: inline-flex;
		align-items: center;
		min-height: 30px;
		padding: 0 2px;
		white-space: nowrap;
	}

	.header-nav .custom_content > i {
		margin-right: 3px;
	}
}

/* --------------------------------------------------------------------------
   10.2 IL CARRELLO SI PUÒ TOCCARE
   Misurato su telefono: 32 x 18 px. È il comando più importante di un
   negozio e aveva un'area sensibile grande meno di un terzo di quella
   consigliata. Non si ingrandisce la scritta: si allarga l'area.
   -------------------------------------------------------------------------- */
.ftc-shop-cart .cart-item > a.ftc-cart-tini {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
}

/* --------------------------------------------------------------------------
   10.3 «IVA esclusa» LEGGIBILE
   Era 10,5 px in rgb(154,144,134) su bianco: 3,13:1, sotto la soglia di
   4,5:1. Resta discreta ma si legge: 4,89:1.
   -------------------------------------------------------------------------- */
.woocommerce .products .price .woocommerce-price-suffix,
.single-product .summary .price .woocommerce-price-suffix,
.woocommerce-price-suffix {
	font-size: 12px;
	color: #7a6f66;
}

/* --------------------------------------------------------------------------
   10.4 LA DISPONIBILITÀ
   Il verde acqua del tema, rgb(21,189,156) sul crema della pagina, dava
   2,31:1: si intuiva, non si leggeva. Stesso verde, più scuro: 5,10:1.
   (La parola era anche in inglese: quello si corregge in functions.php.)
   -------------------------------------------------------------------------- */
.single-product .summary p.availability.in-stock,
.single-product .summary p.availability.in-stock span,
p.stock.in-stock {
	color: #0e7a63;
	font-weight: 600;
}

.single-product .summary p.availability.out-of-stock,
.single-product .summary p.availability.out-of-stock span,
p.stock.out-of-stock {
	color: #b3261e;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   10.5 I BERSAGLI TROPPO PICCOLI PER UN DITO
   Tutti misurati sotto i 44 px consigliati.
   -------------------------------------------------------------------------- */

/* i selettori griglia/lista in cima al negozio: 19 x 19 */
.ftc-shop-view a,
.shop-view a,
a#grid, a#columns4, a#columns3, a#columns2, a#list {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
}

/* il più e il meno della quantità: 30 x 30 */
.quantity input.plus,
.quantity input.minus {
	min-width: 40px;
	min-height: 40px;
}

/* la lente della ricerca: 43 x 43 sul grande, 30 x 15 sul telefono */
.ftc_search_ajax button.search-button {
	min-width: 44px;
	min-height: 44px;
}

/* la barra fissa in fondo al telefono: le tre voci erano 36 x 36 */
.footer-mobile a {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

/* --------------------------------------------------------------------------
   10.6 IL CONTORNO DEL FUOCO DA TASTIERA
   Il tema azzera l'`outline` su pulsanti, collegamenti e campi: chi naviga
   con il tabulatore non vede più dove si trova. Si ridà un contorno, ma solo
   a chi usa davvero la tastiera (`:focus-visible`), così il clic col mouse
   non lascia aloni.
   -------------------------------------------------------------------------- */
/* ⚠️⚠️ IL BORDO NERO CHE COMPARE A OGNI CLIC.
   Dentro `default.css` c'è il reset di Bootstrap 3:

       a:focus { outline: -webkit-focus-ring-color auto 5px; outline-offset: -2px }

   `:focus` — non `:focus-visible` — quindi scatta anche col MOUSE: si clicca
   una scheda prodotto e resta un anello scuro attorno. Il tema prova a
   spegnerlo con `:focus { outline: none }`, ma quello vale 0,1,0 e `a:focus`
   vale 0,1,1: perde comunque, in qualunque ordine.
   Si spegne solo per chi NON sta usando la tastiera. Le sei regole restano
   SEPARATE: se un browser non conosce `:focus-visible` butta via l'intera
   regola in cui compare, e tenendole distinte se ne perde una sola. */
a:focus:not(:focus-visible)        { outline: none; }
button:focus:not(:focus-visible)   { outline: none; }
input:focus:not(:focus-visible)    { outline: none; }
select:focus:not(:focus-visible)   { outline: none; }
textarea:focus:not(:focus-visible) { outline: none; }
[tabindex]:focus:not(:focus-visible) { outline: none; }

/* Chi invece arriva col tabulatore deve vedere dov'è. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid #BE1E2D;
	outline-offset: 2px;
	border-radius: 2px;
}

/* Sul rosso del marchio un contorno rosso sparirebbe: lì si usa il bianco. */
.header-nav a:focus-visible,
.navigation-primary a:focus-visible,
.btn-danger:focus-visible,
.kta-azioni .button:focus-visible {
	outline-color: #fff;
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   10.7 LE DUE SOVRAPPOSIZIONI SU TELEFONO
   Misurato a 390 x 844: chi arriva sulla home da telefono trova il riquadro
   promozionale (Popup Maker) che occupa il 42,5% dello schermo dentro un
   oscuramento che ne copre il 100%, e sotto la banda dei cookie alta 281 px,
   un altro 33,3%. Insieme: tre quarti dello schermo coperti, e dietro
   c'è l'hero, alto 325 px, che non si vede affatto.
   Nessuno dei due si tocca nei contenuti — sono decisioni di marketing e di
   legge. Si sistema soltanto quanto spazio prendono e quanto sono
   raggiungibili i loro comandi.
   -------------------------------------------------------------------------- */

/* La banda dei cookie ha z-index 9999, il riquadro promozionale
   1.999.999.999: la banda finiva SOTTO l'oscuramento del promo, quindi
   «Accetta Tutti» e «Mostra Dettagli» non erano premibili finché non si
   chiudeva il promo — il tocco lo intercettava l'oscuramento. La scelta sui
   cookie deve stare sopra tutto. */
#cookie-law-info-bar,
.cli-modal,
.cli-modal-backdrop {
	z-index: 2000000001 !important;
}

/* La croce per chiudere il promo era 28 x 28. */
.pum-container .pum-close,
.popmake-close {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	line-height: 1;
}

@media only screen and (max-width: 767px) {

	/* Il testo del promo era composto per un riquadro da 840 px e su 293
	   andava a sei righe. */
	.pum-container .pum-content,
	.pum-container .pum-content p {
		font-size: 20px;
		line-height: 1.25;
	}

	.pum-container .pum-content .wp-block-button__link,
	.pum-container .pum-content .button,
	.pum-container .pum-content a.button {
		font-size: 15px;
	}

	/* La banda dei cookie prendeva 281 px, un terzo dello schermo. Stesso
	   testo, composto per un telefono, e con un tetto: se l'informativa è
	   lunga scorre dentro la banda invece di allungarla. */
	#cookie-law-info-bar {
		padding: 10px 12px !important;
		max-height: 45vh;
		overflow-y: auto;
		font-size: 12.5px !important;
		line-height: 1.45 !important;
	}

	#cookie-law-info-bar .cli-bar-message {
		font-size: 12.5px !important;
		line-height: 1.45 !important;
	}

	/* «Accetta Tutti» era 104 x 31. */
	#cookie-law-info-bar a.cli_action_button,
	#cookie-law-info-bar a.cli-plugin-button,
	#cookie-law-info-bar #wt-cli-accept-all-btn,
	#cookie-law-info-bar .cli_settings_button {
		min-height: 44px;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		padding: 0 16px;
	}
}

/* ==========================================================================
   11. LA PORTA DELL'AREA CLIENTE
   La voce la aggiunge functions.php ai due menu; qui le si dà una forma che
   la distingua dalle voci di contenuto senza urlare.
   ========================================================================== */

/* Il TONDINO accanto al carrello ha il suo stile stampato IN LINEA da
   functions.php, insieme al codice che lo crea: vedi la nota là. Qui non se ne
   duplicano le regole, o si finisce col correggerne una sola delle due. */

/* Nel menu del telefono resta una voce come le altre, ma staccata dal gruppo
   delle pagine e con la sua riga di separazione. */
#main-menu li.kta-voce-account {
	margin-top: 6px;
	border-top: 1px solid rgba(0, 0, 0, .08);
}

#main-menu li.kta-voce-account > a {
	font-weight: 600;
	color: #BE1E2D;
}

/* ==========================================================================
   12. L'AREA CLIENTE — «Il mio account»
   Due schermate distinte, che il tema trattava come una sola pagina qualsiasi:
   quella di chi deve ancora entrare (accesso + registrazione) e quella di chi
   è dentro (menu + contenuto).
   ========================================================================== */

/* --------------------------------------------------------------------------
   12.1 PRIMA DI ENTRARE: accesso e registrazione
   Il tema ne mostrava UNA alla volta e affidava il cambio a un collegamento
   che non funzionava: la registrazione era irraggiungibile. Ora stanno
   affiancate, ciascuna nella sua scheda.
   -------------------------------------------------------------------------- */
.woocommerce #customer_login.kta-due-colonne,
.woocommerce #customer_login.kta-una-colonna {
	display: grid;
	gap: 28px;
	/* Le due schede alte uguale: con `start` si fermavano ognuna sul proprio
	   contenuto e il bordo inferiore usciva sfalsato di una quarantina di
	   pixel, che a occhio si legge come un errore. */
	align-items: stretch;
	max-width: 940px;
	margin: 0 auto;
}

.woocommerce #customer_login.kta-due-colonne {
	grid-template-columns: 1fr 1fr;
}

/* ⚠️⚠️ Il clearfix diventa una casella della griglia.
   WooCommerce mette su `.col2-set` il vecchio trucco per contenere i
   galleggianti — `::before` e `::after` con `content: " "` e `display: table`.
   Dentro un contenitore a griglia quei due pseudo-elementi non sono più
   invisibili: diventano due caselle a tutti gli effetti. Il modulo di accesso
   finiva nella seconda casella e quello di registrazione andava a capo, in
   una riga tutta sua. Sullo schermo sembrava un difetto di allineamento; era
   una casella vuota. */
.woocommerce #customer_login.kta-due-colonne::before,
.woocommerce #customer_login.kta-due-colonne::after,
.woocommerce #customer_login.kta-una-colonna::before,
.woocommerce #customer_login.kta-una-colonna::after {
	display: none;
}

.woocommerce #customer_login.kta-una-colonna {
	grid-template-columns: minmax(0, 460px);
	justify-content: center;
}

/* ⚠️⚠️ IL MODULO DI REGISTRAZIONE ERA SPENTO DAL CSS.
   Nel foglio `style.css` del tema, sotto un commento «form account»,
   qualcuno aveva scritto a mano:

       .woocommerce .f_form_register { display: none; }

   Con la registrazione ATTIVA nelle impostazioni di WooCommerce. Il risultato
   era un negozio che stampa il modulo, mostra l'invito «Non hai ancora un
   account? Registrati» e poi lo nasconde: non ci si poteva iscrivere, e il
   collegamento dell'invito non faceva nulla perché il JavaScript che avrebbe
   dovuto scambiare le due colonne sul sito non c'è.
   Non si tocca il foglio del genitore: lo si scavalca da qui. */
.woocommerce .f_form_register,
.woocommerce #customer_login > div.col-2 {
	display: block;
}

/* Il tema impone a ogni colonna `max-width: 460px; margin: 0 auto` e un suo
   riquadro grigio: con una colonna sola ci stava, con due si accavallava al
   riquadro disegnato qui sotto. */
.woocommerce-account .woocommerce #customer_login > div.col-1,
.woocommerce-account .woocommerce #customer_login > div.col-2 {
	max-width: none;
}

.woocommerce #customer_login > div.col-1,
.woocommerce #customer_login > div.col-2 {
	float: none;
	width: auto;
	margin: 0;
	padding: 30px 28px 26px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(60, 45, 30, .06);
}

/* La colonna della registrazione è l'invito, non il ripiego: si distingue
   con un filo del colore del marchio in cima. */
.woocommerce #customer_login > div.col-2 {
	border-top: 3px solid #BE1E2D;
}

/* ⚠️ La regola del tema è `.woocommerce-account .woocommerce #customer_login h2`
   (0,3,1): per scavalcarla serve almeno la stessa specificità. Il tema le mette
   `text-transform: capitalize`, che in inglese passa e in italiano no —
   «Crea un account» usciva «Crea Un Account». */
.woocommerce-account .woocommerce #customer_login h2,
.woocommerce #customer_login h2 {
	margin: 0 0 6px;
	font-size: 26px;
	line-height: 1.2;
	text-transform: none;
}

.woocommerce #customer_login .kta-spiega {
	margin: 0 0 22px;
	color: #6f655c;
	font-size: 14px;
	line-height: 1.55;
}

/* Le etichette dei campi erano SOLO segnaposto: spariscono appena si comincia
   a scrivere, e chi si ferma a metà modulo non sa più che campo sta
   compilando. Ora sono etichette vere, sempre visibili. */
.woocommerce #customer_login .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: #3f3830;
}

.woocommerce #customer_login .form-row label .required {
	color: #BE1E2D;
	text-decoration: none;
	border: 0;
}

.woocommerce #customer_login .form-row {
	margin-bottom: 18px;
}

.woocommerce #customer_login .input-text {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 1px solid #ddd5c9;
	border-radius: 8px;
	background: #fff;
	font-size: 15px;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.woocommerce #customer_login .input-text:focus {
	border-color: #BE1E2D;
	box-shadow: 0 0 0 3px rgba(190, 30, 45, .12);
	outline: none;
}

/* La riga in fondo: «Ricordami» e «Password dimenticata?» sulla stessa linea,
   il pulsante largo quanto la scheda sotto di loro. */
.woocommerce #customer_login .kta-riga-comandi {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin-bottom: 0;
}

.woocommerce #customer_login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	color: #4a423a;
	cursor: pointer;
}

.woocommerce #customer_login .woocommerce-form-login__rememberme input {
	width: 16px;
	height: 16px;
	margin: 0;
}

.woocommerce #customer_login .lost_password {
	margin: 0;
	font-size: 14px;
}

.woocommerce #customer_login .lost_password a {
	color: #BE1E2D;
}

/* Il rimando all'informativa dentro il testo della privacy usciva grigio
   chiaro e senza sottolineatura: sembrava spento, non un collegamento. */
.woocommerce #customer_login .woocommerce-privacy-policy-text a,
.woocommerce #customer_login .kta-spiega a {
	color: #BE1E2D;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.woocommerce #customer_login .woocommerce-privacy-policy-text {
	margin: 0 0 20px;
	color: #6f655c;
	font-size: 13.5px;
	line-height: 1.55;
}

.woocommerce #customer_login button.button {
	flex: 1 0 100%;
	height: 48px;
	margin-top: 4px;
	border-radius: 8px;
	font-size: 15px;
	letter-spacing: .02em;
}

/* Il tema stacca le briciole di 100 px (`.woocommerce-account .ftc-breadcrumb
   { margin-bottom: 100px }`): sopra le schede restava una fascia vuota alta
   quanto mezzo schermo di telefono. */
.woocommerce-account .ftc-breadcrumb {
	margin-bottom: 55px;
}

@media only screen and (max-width: 767px) {
	.woocommerce-account .ftc-breadcrumb {
		margin-bottom: 32px;
	}
}

/* --------------------------------------------------------------------------
   12.2 DENTRO: il menu e il contenuto
   WooCommerce li fa galleggiare al 30% e al 68%; con la griglia stanno
   allineati in cima e su telefono si incolonnano da soli.
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

/* ⚠️⚠️ IL CLEARFIX, PER LA TERZA VOLTA.
   WooCommerce mette su `.woocommerce` i vecchi `::before`/`::after` con
   `content:" "; display:table` per contenere i galleggianti. Dentro una
   griglia diventano due CASELLE VERE: il menu finiva nella seconda colonna
   (larga) e il contenuto scivolava nella riga sotto, prima colonna — 250 px.
   Sullo schermo sembrava che la pagina si fosse rotta; era una casella vuota.
   Già visto sul modulo d'accesso e sul checkout: qui l'avevo dimenticato. */
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after {
	display: none;
}

/* E per non dipendere dal conteggio delle caselle, i due blocchi veri si
   piazzano da soli: qualunque cosa il tema aggiunga in mezzo, il menu resta
   a sinistra e il contenuto a destra. */
@media only screen and (min-width: 992px) {
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
		grid-column: 1;
		grid-row: 1;
	}

	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 2;
		grid-row: 1;
	}
}

/* Quando non si è entrati, la pagina ha solo il modulo: niente colonne.
   ⚠️ Le due regole restano SEPARATE di proposito: in un elenco di selettori
   basta che uno sia sconosciuto al browser perché venga buttata via l'intera
   regola, e `:has()` sui browser vecchi lo è. Così la prima vale sempre. */
.woocommerce-account:not(.logged-in) .woocommerce {
	display: block;
}

.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) {
	display: block;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	margin: 0;
}

.kta-menu-account ul {
	margin: 0;
	padding: 6px;
	list-style: none;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 12px;
}

.kta-menu-account ul.kta-uscita {
	margin-top: 12px;
}

/* ⚠️ Il tema disegna un riquadro attorno a OGNI voce: dentro la scheda del
   menu diventavano sei scatole una dentro l'altra. Il riquadro è uno solo,
   quello esterno. */
.woocommerce-account .kta-menu-account ul li,
.kta-menu-account li {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}

.kta-menu-account li a {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 11px 13px;
	border-radius: 8px;
	color: #3f3830;
	font-size: 14.5px;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.kta-menu-account li a:hover {
	background: #faf6ee;
	color: #BE1E2D;
}

.kta-menu-account .kta-icona {
	flex: 0 0 auto;
	color: #a2988c;
	transition: color .15s ease;
}

.kta-menu-account li a:hover .kta-icona {
	color: #BE1E2D;
}

/* La voce su cui si è: piena, non solo grassetto. Il tema la segnava soltanto
   con un colore appena diverso e non si capiva dove si fosse. */
.kta-menu-account li.is-active > a {
	background: #BE1E2D;
	color: #fff;
	font-weight: 600;
}

.kta-menu-account li.is-active > a .kta-icona {
	color: #fff;
}

.kta-menu-account .kta-uscita li a {
	color: #7a6f66;
}

/* --------------------------------------------------------------------------
   12.3 LA BACHECA
   Al posto dei due paragrafi di prosa di WooCommerce, tre riquadri.
   -------------------------------------------------------------------------- */
.kta-saluto h2 {
	margin: 0 0 4px;
	font-size: 26px;
	line-height: 1.2;
}

.kta-saluto p {
	margin: 0 0 26px;
	color: #6f655c;
	font-size: 15px;
}

.kta-saluto .kta-esci {
	margin-left: 6px;
	color: #BE1E2D;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.kta-riquadri {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
}

.kta-riquadro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 20px 18px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 12px;
	color: #3f3830;
	text-decoration: none;
	transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.kta-riquadro:hover {
	border-color: #e3c9cc;
	box-shadow: 0 6px 20px rgba(60, 45, 30, .09);
	transform: translateY(-2px);
	color: #3f3830;
}

.kta-riquadro .kta-icona {
	width: 24px;
	height: 24px;
	margin-bottom: 8px;
	color: #BE1E2D;
}

.kta-riquadro-titolo {
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.25;
}

.kta-riquadro-riga {
	color: #6f655c;
	font-size: 13.5px;
	line-height: 1.45;
}

.kta-vuoto {
	margin: 22px 0 0;
	padding: 16px 18px;
	background: #faf6ee;
	border: 1px dashed #e0d6c6;
	border-radius: 10px;
	color: #6f655c;
	font-size: 14.5px;
}

.kta-vuoto a {
	margin-left: 4px;
	color: #BE1E2D;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   12.4 SU TELEFONO
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 991px) {

	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: 22px;
	}

	/* Il menu diventa una riga che scorre, così non spinge il contenuto
	   sotto una colonna di sette voci prima ancora di cominciare. */
	.kta-menu-account ul {
		display: flex;
		gap: 4px;
		overflow-x: auto;
		padding: 6px;
		-webkit-overflow-scrolling: touch;
	}

	.kta-menu-account li a {
		white-space: nowrap;
	}

	.kta-menu-account ul.kta-uscita {
		margin-top: 8px;
	}
}

@media only screen and (max-width: 767px) {

	.woocommerce #customer_login.kta-due-colonne {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.woocommerce #customer_login > div.col-1,
	.woocommerce #customer_login > div.col-2 {
		padding: 24px 20px 22px;
	}

	.woocommerce #customer_login h2 {
		font-size: 23px;
	}

	.kta-riquadri {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ==========================================================================
   13. LA PAGINA DEL NEGOZIO — impianto nuovo
   L'impaginazione la decide `woocommerce/archive-product.php` del tema figlio:
   niente più colonna di sinistra, categorie in una fila di pastiglie sopra i
   prodotti, griglia a quattro per riga su tutta la larghezza.
   ========================================================================== */

.kta-negozio .kta-negozio-corpo,
.kta-negozio #primary.site-content {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

/* --------------------------------------------------------------------------
   13.1 LA PRESENTAZIONE
   Quattro paragrafi a 1170 px — oltre 150 caratteri per riga, contro i 65-75
   che si leggono comodamente — col grassetto sparso su una dozzina di
   frammenti. Non si cambia una parola (i testi stanno nel pannello): si dà
   loro una misura leggibile e meno enfasi.
   -------------------------------------------------------------------------- */
.kta-negozio .page-description,
.kta-negozio .term-description {
	max-width: 680px;
	/* `auto` sui lati: il blocco sta al centro della pagina invece che a
	   filo del bordo sinistro. */
	margin: 0 auto 30px;
	text-align: center;
}

.kta-negozio .page-description p,
.kta-negozio .term-description p {
	margin: 0 0 10px;
	color: #5a5148;
	font-size: 14.5px;
	line-height: 1.65;
}

.kta-negozio .page-description p:first-child {
	color: #2c2620;
	font-size: 17px;
	line-height: 1.5;
}

.kta-negozio .page-description p:last-child,
.kta-negozio .term-description p:last-child {
	margin-bottom: 0;
}

/* Quando è evidenziato quasi tutto, non è evidenziato niente. */
.kta-negozio .page-description strong,
.kta-negozio .page-description b {
	font-weight: 600;
	color: #2c2620;
}

/* --------------------------------------------------------------------------
   13.2 LE PASTIGLIE DELLE CATEGORIE
   Erano otto voci incolonnate in un riquadro color pesca largo 300 px, sulla
   sinistra: si vedevano solo se si guardava di lato, e rubavano un quarto
   della pagina alla griglia. Qui stanno tutte insieme sopra i prodotti, e la
   griglia si prende i 1200 px pieni.
   -------------------------------------------------------------------------- */
.kta-famiglie {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 26px;
}

.kta-famiglia {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 15px;
	background: #fff;
	border: 1px solid #e8e1d6;
	border-radius: 999px;
	color: #3f3830;
	font-size: 14px;
	line-height: 1.2;
	text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.kta-famiglia:hover {
	border-color: #d8b6ba;
	background: #fffaf3;
	color: #BE1E2D;
}

.kta-famiglia-conto {
	min-width: 22px;
	padding: 2px 6px;
	border-radius: 999px;
	background: #f4efe6;
	color: #7a6f66;
	font-size: 12px;
	font-weight: 600;
	text-align: center;
	transition: background-color .15s ease, color .15s ease;
}

.kta-famiglia.is-attiva {
	background: #BE1E2D;
	border-color: #BE1E2D;
	color: #fff;
	font-weight: 600;
}

.kta-famiglia.is-attiva .kta-famiglia-conto {
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

/* --------------------------------------------------------------------------
   13.3 LA BARRA DEGLI STRUMENTI
   Era una scheda bianca con bordo, alta 119 px, larga quanto la griglia:
   pesava come un prodotto senza esserlo. Diventa una riga chiusa da un filo,
   che ospita anche il filtro del prezzo sceso dalla colonna.

   ⚠️ Ogni selettore porta `.woocommerce` davanti anche dove non servirebbe a
   distinguere: le regole da scavalcare sono `.woocommerce .before-loop-wrapper`
   (0,2,0) nel `style.css` del tema E nel CSS del personalizzatore. Senza il
   prefisso le mie valgono 0,1,0 e perdono — il `display: flex` non entrava
   affatto.
   ⚠️⚠️ Il conteggio dei risultati è `position: absolute`: è per questo che
   «Visualizzazione di 1-12 di 36 risultati» finiva SOTTO il menu a tendina.
   -------------------------------------------------------------------------- */
.woocommerce .kta-barra,
.woocommerce-page .kta-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	width: 100%;
	margin: 0 0 26px;
	padding: 0 0 14px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #ece7dd;
	border-radius: 0;
	box-shadow: none;
}

.woocommerce .kta-barra .woocommerce-notices-wrapper {
	flex: 1 0 100%;
	order: 0;
}

/* I tre modi di vedere la griglia: tre icone che nessuno cerca, e che con la
   griglia già a quattro colonne non hanno più molto da offrire. */
.woocommerce .kta-barra nav.grid_list_nav {
	display: none;
}

.woocommerce .kta-barra .woocommerce-result-count {
	position: static;
	order: 1;
	float: none;
	margin: 0;
	padding: 0;
	color: #6f655c;
	font-size: 14px;
	line-height: 1.3;
}

.woocommerce .kta-barra .kta-filtri {
	order: 2;
	margin-left: auto;
}

.woocommerce .kta-barra .woocommerce-ordering {
	position: static;
	order: 3;
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
}

.woocommerce .kta-barra .orderby-title {
	color: #6f655c;
	font-size: 14px;
}

.woocommerce .kta-barra .prod-cat-show-top-content-button {
	display: none;
}

/* --------------------------------------------------------------------------
   13.4 IL FILTRO DEL PREZZO, SCESO NELLA BARRA
   -------------------------------------------------------------------------- */
.kta-filtri {
	display: flex;
	align-items: center;
	gap: 16px;
}

/* L'elenco delle categorie è già nelle pastiglie: nella barra resterebbe due
   volte. */
.kta-filtri .ftc-product-categories-widget,
.kta-filtri .widget_product_categories,
.kta-filtri .widget_text {
	display: none;
}

/* Dentro la barra degli strumenti il contenitore del filtro non è una scheda:
   è una riga. Dichiarato con peso sufficiente perché nessuna regola pensata
   per le colonne laterali possa riprenderselo. */
.woocommerce .kta-barra .kta-filtri .widget-container,
.kta-filtri .widget-container {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.kta-filtri .widget-title-wrapper {
	display: none;
}

.kta-filtri .price_slider_wrapper {
	display: flex;
	align-items: center;
	gap: 14px;
}

.kta-filtri .price_slider_wrapper .ui-slider {
	width: 130px;
	height: 4px;
	margin: 0;
	background: #ece7dd;
	border: 0;
	border-radius: 3px;
}

.kta-filtri .price_slider_wrapper .ui-slider .ui-slider-range {
	background: #BE1E2D;
	border-radius: 3px;
}

.kta-filtri .price_slider_wrapper .ui-slider .ui-slider-handle {
	width: 16px;
	height: 16px;
	top: -6px;
	margin-left: -8px;
	background: #fff;
	border: 2px solid #BE1E2D;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(60, 45, 30, .2);
}

/* WooCommerce stampa due campi di testo per il minimo e il massimo e li
   nasconde via JavaScript: con l'impaginazione nuova uno dei due tornava a
   galla come un riquadro bianco vuoto accanto al prezzo. */
.kta-filtri .price_slider_amount input[type="text"],
.kta-filtri .price_slider_amount input[type="number"],
.kta-filtri .price_slider_amount .screen-reader-text {
	display: none !important;
}

.kta-filtri .price_slider_amount {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.kta-filtri .price_slider_amount .price_label {
	order: 1;
	margin: 0;
	color: #6f655c;
	font-size: 13.5px;
	white-space: nowrap;
}

/* ⚠️ Il pulsante «Filtra» usciva come un riquadro BIANCO VUOTO: il mio
   `color: #fff` passava, lo sfondo rosso no — la regola del tema
   (`.woocommerce .widget_price_filter …`, 0,4,0) batteva la mia a 0,3,0 — e
   restava testo bianco su fondo bianco. Serve la catena intera. */
.kta-negozio .kta-filtri .widget_price_filter .price_slider_amount .button,
.kta-filtri .price_slider_amount .button {
	order: 2;
	min-height: 36px;
	padding: 0 14px;
	background: #BE1E2D;
	border: 0;
	border-radius: 8px;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 36px;
}

.kta-negozio .kta-filtri .widget_price_filter .price_slider_amount .button:hover,
.kta-filtri .price_slider_amount .button:hover {
	background: #9c1824;
	color: #fff;
}

/* --------------------------------------------------------------------------
   13.5 LA GRIGLIA A QUATTRO
   ⚠️ Il contenitore dei prodotti è un `<div class="products owl-carousel">`,
   non una lista, e il tema dà a ogni scheda una larghezza in percentuale
   calcolata sulla classe `columns-N`. Invece di inseguire quel calcolo si
   dichiara una griglia vera e si azzerano larghezza e margini delle schede:
   il numero di colonne lo decide una riga sola, qui.
   -------------------------------------------------------------------------- */
.kta-negozio .woocommerce .products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px;
	margin: 0;
	padding: 0;
}

/* ⚠️⚠️ `!important` qui è voluto, non una resa. `responsive.css` del tema
   assegna a ogni scheda una larghezza in percentuale per ognuna delle sue
   soglie, con selettori fino a CINQUE classi
   (`.woocommerce-page.columns-4 .products.grid .product`, 0,5,0): dentro una
   griglia vera quella matematica non significa più niente — la larghezza la
   decide la colonna — ma vince comunque, e su telefono strizzava le schede a
   65 px dentro celle da 173. Rincorrere la specificità su otto soglie
   diverse sarebbe più fragile di dichiarare una volta che qui la larghezza
   non si tocca. */
.kta-negozio .woocommerce .products .ftc-product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

@media only screen and (max-width: 1199px) {
	.kta-negozio .woocommerce .products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 900px) {
	.kta-negozio .woocommerce .products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}


}

/* --------------------------------------------------------------------------
   13.6 SU TELEFONO
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {

	.kta-negozio .page-description {
		margin-bottom: 22px;
	}

	.kta-negozio .page-description p:first-child {
		font-size: 16px;
	}

	/* Le pastiglie scorrono di lato invece di riempire quattro righe. */
	.kta-famiglie {
		flex-wrap: nowrap;
		gap: 7px;
		margin: 0 -15px 22px;
		padding: 2px 15px 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.kta-famiglie::-webkit-scrollbar {
		display: none;
	}

	.kta-famiglia {
		flex: 0 0 auto;
	}

	.woocommerce .kta-barra {
		gap: 10px 12px;
	}

	.woocommerce .kta-barra .woocommerce-result-count {
		display: block;
		flex: 1 0 100%;
		order: 1;
	}

	/* Il filtro del prezzo va a capo, con la sua riga tutta per sé. */
	.woocommerce .kta-barra .kta-filtri {
		flex: 1 0 100%;
		order: 3;
		margin-left: 0;
	}

	/* Il cursore si allarga fino a riempire la riga, ma con un minimo: senza
	   quello collassava a zero e restava una pallina sola sospesa nel vuoto. */
	.kta-filtri .price_slider_wrapper .ui-slider {
		flex: 1 1 auto;
		width: auto;
		min-width: 110px;
	}

	.kta-filtri,
	.kta-filtri .widget-container,
	.kta-filtri .widget-container form,
	.kta-filtri .price_slider_wrapper {
		width: 100%;
	}

	/* L'ordinamento occupa tutta la riga, così «Ordinamento predefinito» non
	   va a capo dentro un riquadro stretto. */
	.woocommerce .kta-barra .woocommerce-ordering ul.orderby,
	.woocommerce .kta-barra .woocommerce-ordering ul.orderby > li {
		width: 100%;
	}

	.woocommerce .kta-barra .orderby-title {
		display: none;
	}

	.woocommerce .kta-barra .woocommerce-ordering {
		flex: 1 0 100%;
		order: 2;
	}
}

/* --------------------------------------------------------------------------
   13.7 L'IMPAGINAZIONE IN FONDO
   Era una barra bianca bordata larga quanto la griglia, coi numeri schiacciati
   a destra: la stessa scatola inutile che era la barra in alto, ripetuta in
   fondo. Diventa una fila di pastiglie al centro, sorelle di quelle delle
   categorie.
   -------------------------------------------------------------------------- */
.woocommerce .after-loop-wrapper,
.woocommerce-page .after-loop-wrapper {
	margin: 34px 0 0;
	padding: 24px 0 0;
	background: transparent;
	border: 0;
	border-top: 1px solid #ece7dd;
	border-radius: 0;
	box-shadow: none;
	text-align: center;
}

/* ⚠️ La scatola bianca non era il contenitore ma la `nav` stessa: il tema le
   dà sfondo, bordo e angoli. Spegnerla sul solo `.after-loop-wrapper` lasciava
   il riquadro esattamente dov'era. */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul.page-numbers li span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	background: #fff;
	border: 1px solid #e8e1d6;
	border-radius: 999px;
	color: #3f3830;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
	background: #fffaf3;
	border-color: #d8b6ba;
	color: #BE1E2D;
}

/* La pagina in cui ci si trova, piena come la pastiglia attiva in alto. */
.woocommerce nav.woocommerce-pagination ul.page-numbers li span.page-numbers.current,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers.current {
	background: #BE1E2D;
	border-color: #BE1E2D;
	color: #fff;
	font-weight: 600;
}

/* «Indietro» e «Avanti» portano una parola: si allargano invece di stare
   compressi in un quadratino. */
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.prev,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.next {
	padding: 0 18px;
	font-weight: 600;
}

/* Il tema attacca una doppia freccia con uno pseudo-elemento; con l'etichetta
   già in parole diventa un doppione. */
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.prev::after,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.next::after,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.prev::before,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.next::before {
	content: none;
}

/* Lo stato dello scorrimento infinito: tre frasi in inglese («Loading», «No
   Products for load») che il tema stampa sempre, anche quando quel modo di
   caricare non è in uso. */
.after-loop-wrapper .page-load-status,
.after-loop-wrapper .onewave-products-load-more.hidden {
	display: none;
}

@media only screen and (max-width: 767px) {

	.woocommerce .after-loop-wrapper {
		margin-top: 26px;
		padding-top: 20px;
	}

	.woocommerce nav.woocommerce-pagination ul.page-numbers {
		gap: 6px;
	}

	.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers,
	.woocommerce nav.woocommerce-pagination ul.page-numbers li span.page-numbers {
		min-width: 40px;
		height: 40px;
		padding: 0 12px;
	}
}

/* ==========================================================================
   14. IL BLOG
   Le schede erano alte 505 px con il contenuto che finiva a 300: duecento
   pixel di bianco sotto ogni articolo. I titoli erano in Roboto Slab con le
   iniziali maiuscole («Il Sommacco: La Nostra Spezia Magica, Ricca Di
   Antiossidanti»), centrati come il testo, e la data compariva TRE volte per
   scheda. La colonna di destra era lo stesso riquadro color pesca del vecchio
   negozio, coi titoli in corsivo serif rosso.
   ========================================================================== */

/* --------------------------------------------------------------------------
   14.1 LA GRIGLIA DEGLI ARTICOLI
   -------------------------------------------------------------------------- */
/* ⚠️ `display: grid !important`: il contenitore porta anche la classe
   `owl-carousel`, e il foglio della libreria gli impone il proprio `display`.
   Qui il carosello non parte (è una griglia, non uno scorrimento), ma la sua
   regola resta e vinceva: `grid-template-columns` entrava e `display` no,
   così le schede restavano incolonnate a tutta larghezza. */
.blog-newside .blogs,
.ftc-sb-blogs .blogs {
	display: grid !important;
	/* ⚠️ 3/9: tre colonne su richiesta. Il contenitore è 1170 e con 26 di stacco
	   ogni scheda vale 372px: la foto resta sopra i 300 e il titolo sta su due
	   righe. Sotto i 1200 la gabbia scende a 970 e tre schede darebbero 306px:
	   lì si torna a due (vedi 14.6). */
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	align-items: stretch;
}

/* ⚠️⚠️ IL TAG APERTO CHE SI MANGIA GLI ARTICOLI.
   Il sunto di «Si cercano nuove strade per il rilancio del sommacco
   siciliano» viene tagliato ai 100 caratteri **in mezzo a un `<strong>`**, e
   quel tag non viene mai chiuso: il browser, cercando di rimediare, avvolge
   dentro di esso tutti gli articoli che seguono. Nel DOM diventano
   `div.blogs > strong > article` e perfino `> strong > strong > article`,
   quindi non sono più figli della griglia: uscivano larghi 218 px invece di
   436, incolonnati in un angolo.
   `display: contents` rende quei relitti trasparenti e restituisce gli
   articoli alla griglia. ⚠️ È un rimedio alla resa: la cura vera è che il
   sunto venga tagliato senza spezzare i tag (o che sia testo semplice). */
.blog-newside .blogs > strong,
.ftc-sb-blogs .blogs > strong,
.blog-newside .blogs strong > strong,
.ftc-sb-blogs .blogs strong > strong {
	display: contents;
}

.blog-newside .blogs article.post-wrapper,
.ftc-sb-blogs .blogs article.post-wrapper,
.blog-newside .blogs > article.post-wrapper,
.ftc-sb-blogs .blogs > article.post-wrapper {
	display: flex;
	flex-direction: column;
	width: auto !important;
	height: auto !important;
	min-height: 0;
	margin: 0 !important;
	padding: 0;
	float: none !important;
	background: #fff;
	border: 0;
	border-radius: 14px;
	/* ⚠️ niente ritaglio qui: tagliava «Scopri di Più» */
	overflow: visible;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .06), 0 6px 18px -12px rgba(60, 40, 25, .28);
	transition: box-shadow .28s cubic-bezier(.2, .7, .3, 1), transform .28s cubic-bezier(.2, .7, .3, 1);
}

.blog-newside .blogs > article.post-wrapper:hover,
.ftc-sb-blogs .blogs > article.post-wrapper:hover {
	transform: translateY(-5px);
	box-shadow: 0 2px 4px rgba(60, 40, 25, .08), 0 20px 40px -20px rgba(60, 40, 25, .45);
}

/* --------------------------------------------------------------------------
   14.2 LA FOTOGRAFIA
   Le foto arrivano da originali di proporzioni diverse (1599x899, loghi
   quadrati, locandine verticali) e ognuna dettava un'altezza diversa alla
   scheda. Un rettangolo fisso le rende confrontabili.
   -------------------------------------------------------------------------- */
.blog-newside .blogs article .post-img,
.ftc-sb-blogs .blogs article .post-img {
	border-radius: 14px 14px 0 0;
	position: relative;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #f4efe6;
}

.blog-newside .blogs article .post-img > a,
.ftc-sb-blogs .blogs article .post-img > a {
	display: block;
	line-height: 0;
}

.blog-newside .blogs article .post-img img,
.ftc-sb-blogs .blogs article .post-img img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.2, .7, .3, 1);
}

.blog-newside .blogs article:hover .post-img img,
.ftc-sb-blogs .blogs article:hover .post-img img {
	transform: scale(1.04);
}

/* --------------------------------------------------------------------------
   14.3 LA DATA, UNA VOLTA SOLA
   Il modello ne stampa tre copie per scheda: un riquadro a sinistra della
   fotografia, un altro sopra la fotografia e la riga «Feb 18, 2025 /»
   nell'intestazione. Se ne tiene una: quella nel testo.
   -------------------------------------------------------------------------- */
.blog-newside .blogs article .date-time-left,
.blog-newside .blogs article .post-img .date-time,
.ftc-sb-blogs .blogs article .date-time-left,
.ftc-sb-blogs .blogs article .post-img .date-time {
	display: none;
}

/* La data di OGGI, in inglese, stampata in cima all'elenco: non è la data di
   nessun articolo, è quella del giorno in cui si guarda la pagina. */
.ftc-sb-blogs > .date-timeline,
.blog-newside > .date-timeline {
	display: none;
}

.blog-newside .blogs article .entry-header .date-time,
.ftc-sb-blogs .blogs article .entry-header .date-time {
	display: block;
	margin: 0 0 6px;
	color: #8a8078;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* Il trattino divisorio serviva a separare la data dall'autore, che qui non
   viene stampato: restava appeso in fondo alla riga. */
.blog-newside .blogs article .entry-header .date-time .space,
.ftc-sb-blogs .blogs article .entry-header .date-time .space {
	display: none;
}

/* --------------------------------------------------------------------------
   14.4 IL TESTO
   -------------------------------------------------------------------------- */
/* ⚠️⚠️ I DUECENTO PIXEL DI BIANCO sotto ogni articolo.
   Un blocco `<style>` scritto nella pagina dal componente del tema impone
   `.blog-newside.ftc-sb-blogs .post-info { height: 250px }` — e sotto i
   575 px `height: 290px !important`. Un'altezza FISSA per un testo di
   lunghezza variabile: chi scrive poco lascia il vuoto, chi scrive molto
   viene tagliato. Il testo deve essere alto quanto è.
   Serve `!important` perché la variante per telefono ce l'ha. */
.blog-newside .blogs article .post-info,
.ftc-sb-blogs .blogs article .post-info {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: auto !important;
	min-height: 0;
	margin: 0;
	padding: 20px 20px 22px;
	text-align: left;
	background: transparent;
	border: 0;
}

.blog-newside .blogs article .entry-header,
.ftc-sb-blogs .blogs article .entry-header {
	margin: 0;
	padding: 0;
	text-align: left;
	border: 0;
}

/* ⚠️ Il titolo porta la classe `product_title`, quindi eredita lo stile dei
   titoli di prodotto: Roboto Slab con le iniziali maiuscole. In italiano
   «Il Sommacco: La Nostra Spezia Magica, Ricca Di Antiossidanti» non si legge
   come un titolo, si legge come un errore. */
.blog-newside .blogs article h3.blog-title,
.blog-newside .blogs article h3.blog-title a,
.ftc-sb-blogs .blogs article h3.blog-title,
.ftc-sb-blogs .blogs article h3.blog-title a {
	margin: 0;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-align: left;
	text-transform: none;
	color: #1b1815;
}

.blog-newside .blogs article h3.blog-title a:hover,
.ftc-sb-blogs .blogs article h3.blog-title a:hover {
	color: #BE1E2D;
}

/* Due righe al massimo: con titoli lunghi tre volte gli altri le schede non
   si allineavano più. */
.blog-newside .blogs article h3.blog-title a,
.ftc-sb-blogs .blogs article h3.blog-title a {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog-newside .blogs article .post-info .short-content,
.blog-newside .blogs article .post-info > p,
.ftc-sb-blogs .blogs article .post-info .short-content,
.ftc-sb-blogs .blogs article .post-info > p {
	margin: 10px 0 0;
	color: #6f655c;
	font-size: 14.5px;
	line-height: 1.55;
	text-align: left;
}

/* Il sunto di un articolo è un assaggio: tre righe. Uno dei post portava
   dentro l'estratto la formattazione del corpo («Autori: Giuseppe Barbera e
   Marg» a 26 px in rosso), che spezzava la fila. */
.blog-newside .blogs article .post-info .short-content,
.ftc-sb-blogs .blogs article .post-info .short-content {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Il sunto di un articolo eredita la formattazione del corpo: uno di questi
   portava un `<h3>` con dentro `<strong><span class="sansSemiBold">`, e
   «Autori: Giuseppe Barbera e Marg» usciva a 24 px in rosso in mezzo alle
   schede. Nel sunto il testo è testo. */
.blog-newside .blogs article .post-info .entry-content,
.ftc-sb-blogs .blogs article .post-info .entry-content {
	margin: 10px 0 0;
	color: #6f655c;
	font-size: 14.5px;
	line-height: 1.55;
	text-align: left;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog-newside .blogs article .post-info .entry-content *,
.ftc-sb-blogs .blogs article .post-info .entry-content *,
.blog-newside .blogs article .post-info .short-content *,
.ftc-sb-blogs .blogs article .post-info .short-content * {
	font-size: inherit !important;
	line-height: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
	text-align: left !important;
	margin: 0 !important;
}

/* Il collegamento «Scopri di più» si appoggia al fondo della scheda, così
   tutte le schede lo hanno sulla stessa riga. */
.blog-newside .blogs article a.button-readmore,
.ftc-sb-blogs .blogs article a.button-readmore {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 16px;
	background: transparent;
	border: 0;
	color: #BE1E2D;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	text-transform: none;
}

/* --------------------------------------------------------------------------
   14.5 LA COLONNA DI DESTRA
   Stesso riquadro color pesca del vecchio negozio, con i titoli in corsivo
   serif rosso maiuscolo.
   -------------------------------------------------------------------------- */
/* Il color pesca lo dipinge il costruttore di pagine sulla colonna, non i
   riquadri: si spegne là, e i riquadri diventano schede bianche come quelle
   degli articoli. */
.blog1-sidebar .vc_col-sm-3 > .vc_column-inner,
.blog1-sidebar .vc_col-sm-3,
.blog1-sidebar .wpb_column.vc_col-sm-3 > .vc_column-inner {
	background-color: transparent !important;
	background-image: none !important;
}

/* ⚠️ Il color pesca è nel CSS del personalizzatore, con `!important`:

       body.wpb-js-composer:not(.woocommerce-page) .widget-container,
       .blog1-sidebar .widget-container { background: antiquewhite !important }

   Una regola senza `!important`, per quanto specifica, non la tocca. Qui si
   risponde con la stessa moneta, e a parità di peso vince questa perché il
   foglio è caricato dopo. */
/* ⚠️⚠️ `!important` contro `!important`: vince la SPECIFICITÀ.
   La regola del personalizzatore è un elenco di due selettori,

       body.wpb-js-composer:not(.woocommerce-page) .widget-container,
       .blog1-sidebar .widget-container { background: antiquewhite !important }

   e quello che combacia è il primo, che vale (0,3,1) — `:not()` conta la
   classe che ha dentro. La mia `.blog1-sidebar .widget-container` vale
   (0,2,0): con l'`!important` da entrambe le parti perdeva lo stesso.
   Serve arrivare almeno a (0,3,2). */
/* ⚠️⚠️ `:not(.woocommerce-page)` NON è un vezzo: **anche il negozio è un
   archivio**. `body.archive` combacia con `/prodotti/` e con le categorie di
   prodotto, e senza l'esclusione questa scheda bianca finiva addosso al
   filtro del prezzo dentro la barra degli strumenti — un riquadro bianco
   ombreggiato che galleggiava in mezzo a una riga. Le schede qui sotto
   valgono per il BLOG. */
body.wpb-js-composer .blog1-sidebar section.widget-container,
body.wpb-js-composer .blog1-sidebar div.widget-container,
body.blog section.widget-container,
body.single-post section.widget-container,
body.archive:not(.woocommerce-page) section.widget-container,
.blog1-sidebar .widget-container,
body.blog .widget-container,
body.single-post .widget-container,
body.archive:not(.woocommerce-page) .widget-container {
	background: #fff !important;
	padding: 20px !important;
	border: 1px solid #ece7dd;
	border-radius: 14px;
	box-shadow: 0 2px 12px rgba(60, 45, 30, .05);
	margin-bottom: 16px;
}

/* Anche i due contenitori delle colonne sono dipinti, con il bordo arancione. */
.blog1-sidebar #left-sidebar,
.blog1-sidebar #right-sidebar,
body.blog #left-sidebar,
body.blog #right-sidebar,
body.archive:not(.woocommerce-page) #left-sidebar,
body.archive:not(.woocommerce-page) #right-sidebar {
	background: transparent;
	border: 0;
}

/* Le categorie erano un elenco di caselle da spuntare: sono collegamenti, non
   un modulo. */
.blog1-sidebar .widget-container ul li a,
body.blog .widget-container ul li a,
body.archive:not(.woocommerce-page) .widget-container ul li a {
	color: #3f3830;
	font-style: normal;
}

.blog1-sidebar .widget-container ul li a:hover,
body.blog .widget-container ul li a:hover {
	color: #BE1E2D;
}

.blog1-sidebar h3.widget-title,
.blog1-sidebar .widgettitle,
body.blog h3.widget-title,
body.archive h3.widget-title {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 15px;
	font-weight: 700;
	font-style: normal;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #2c2620;
}

/* --------------------------------------------------------------------------
   14.6 SU TELEFONO
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 1199px) {
	.blog-newside .blogs,
	.ftc-sb-blogs .blogs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 900px) {
	.blog-newside .blogs,
	.ftc-sb-blogs .blogs {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}
}


/* --------------------------------------------------------------------------
   6bis. IL TITOLO DEL PRODOTTO
   Usciva in Roboto Slab tutto maiuscolo a 24 px: «ADDENSANTE» si decifra,
   «Addensante» si legge. È la stessa correzione già fatta sui titoli della
   griglia — lo slab serif tutto maiuscolo è ciò che data una pagina.
   -------------------------------------------------------------------------- */
.single-product div.product .summary h1.product_title,
.single-product div.product .summary .product_title.entry-title {
	margin: 0 0 10px;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.015em;
	/* ⚠️ Il maiuscolo lo impone il tema con un selettore che non si scavalca
	   nominando gli stessi elementi: qui `!important` è la via corta e non
	   toglie niente a nessuno — nessun'altra regola vuole quel titolo
	   maiuscolo. */
	text-transform: none !important;
	color: #1b1815;
}

/* Il più e il meno della quantità erano due quadrati grigi. */
.single-product .quantity input.minus,
.single-product .quantity input.plus {
	background: #fff;
	border: 1px solid #ddd5c9;
	color: #3f3830;
	font-size: 17px;
	font-weight: 600;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.single-product .quantity input.minus:hover,
.single-product .quantity input.plus:hover {
	background: #faf6ee;
	border-color: #BE1E2D;
	color: #BE1E2D;
}

.single-product .quantity input.qty {
	height: 40px;
	border: 1px solid #ddd5c9;
	border-left: 0;
	border-right: 0;
	background: #fff;
	font-size: 15px;
	font-weight: 600;
}

/* Il titolo dei prodotti correlati stava dentro una fascia bianca a tutta
   larghezza, centrato e in maiuscoletto serif. */
.single-product .related h2,
.single-product .upsells h2,
.single-product .related .products-title,
.single-product .upsells .products-title {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.01em;
	text-transform: none;
	text-align: left;
	color: #1b1815;
}

.single-product .related,
.single-product .upsells {
	margin-top: 44px;
	padding-top: 28px;
	border-top: 1px solid #ece7dd;
	background: transparent;
}

/* --------------------------------------------------------------------------
   6ter. IL RIQUADRO D'ACQUISTO SEGUE CHI SCORRE
   Diverse fotografie di questo negozio sono infografiche alte e strette: a
   piena larghezza «Addensante» misura 518x1295 px, e accanto restano
   ottocento pixel di colonna vuota. Invece di rimpicciolire la fotografia —
   che è l'unico posto dove il prodotto è descritto — si tiene il prezzo e il
   pulsante d'acquisto sempre in vista mentre la si legge.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 992px) {
	.single-product div.product .summary.entry-summary {
		position: sticky;
		top: 20px;
		align-self: start;
	}
}

/* La fotografia ha il suo fondo: alcune infografiche hanno margini bianchi e
   senza un contorno si perdevano nel crema della pagina. */
.single-product .woocommerce-product-gallery__image img,
.single-product div.images img.wp-post-image {
	background: #fff;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .06), 0 6px 20px -14px rgba(60, 40, 25, .3);
}

/* I due pulsanti di condivisione sono in inglese e messi come pastiglie
   grigie: restano, ma con la forma degli altri comandi della pagina. */
.single-product .social-sharing ul.ftc-social-sharing li a {
	border-radius: 999px;
	border: 1px solid #e8e1d6;
	color: #4a423a;
	font-size: 13.5px;
}

.single-product .social-sharing ul.ftc-social-sharing li a:hover {
	border-color: #d8b6ba;
	color: #BE1E2D;
}

/* ==========================================================================
   15. LA SCHEDA PRODOTTO — il blocco d'acquisto
   Il pezzo che conta della pagina era una fila di elementi scollegati: una
   riga «Quantità:» con tre riquadri grigi accostati, sotto un pulsante
   rosso a pastiglia, sotto ancora tre pulsanti di pagamento e due di
   condivisione. Nessuno stacco, nessuna gerarchia, e il prezzo — la cosa che
   si cerca per prima — grande quanto il testo della descrizione.
   ========================================================================== */

/* --------------------------------------------------------------------------
   15.1 DISPONIBILITÀ come etichetta
   Era una riga di testo verde persa fra il titolo e la descrizione.
   -------------------------------------------------------------------------- */
.single-product .summary p.availability {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 16px;
	padding: 5px 12px 5px 10px;
	border-radius: 999px;
	font-size: 13.5px;
}

.single-product .summary p.availability.in-stock {
	background: #eaf5f1;
}

.single-product .summary p.availability.out-of-stock {
	background: #fbeceb;
}

.single-product .summary p.availability::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}

/* --------------------------------------------------------------------------
   15.2 LA DESCRIZIONE
   -------------------------------------------------------------------------- */
.single-product .summary .ftc_excerpt {
	margin: 0 0 22px;
	padding: 0 0 22px;
	border-bottom: 1px solid #ece7dd;
}

.single-product .summary .ftc_excerpt .full-content p {
	margin: 0 0 12px;
	color: #4a423a;
	font-size: 15px;
	line-height: 1.65;
}

.single-product .summary .ftc_excerpt .full-content p:last-child {
	margin-bottom: 0;
}

/* «Continua a leggere» apriva il testo troncato. Il testo troncato è già
   nascosto (il JavaScript che lo gestiva non parte), quindi il collegamento
   non ha più niente da aprire. */
.single-product .summary #readMore,
.single-product .summary #readless {
	display: none !important;
}

/* La scheda tecnica è un allegato, non una frase: si comporta come un
   comando secondario. */
.single-product .summary .ftc_excerpt .full-content p > a[href$=".pdf"] {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	margin-top: 4px;
	padding: 0 16px;
	background: #fff;
	border: 1px solid #ddd5c9;
	border-radius: 10px;
	color: #3f3830;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.single-product .summary .ftc_excerpt .full-content p > a[href$=".pdf"]:hover {
	background: #faf6ee;
	border-color: #BE1E2D;
	color: #BE1E2D;
}

/* --------------------------------------------------------------------------
   15.3 IL PREZZO
   Era 24 px, la stessa misura del titolo della descrizione: è il numero che
   si cerca per primo e non si distingueva da niente.
   -------------------------------------------------------------------------- */
/* ⚠️ Il tema tiene il prezzo con `.woocommerce div.product p.price` — due
   classi e DUE elementi, (0,2,2) — mentre `.single-product .summary > p.price`
   vale (0,2,1) e perdeva: il prezzo restava a 18,75 px. Contare anche gli
   elementi, non solo le classi. */
.woocommerce div.product .summary p.price,
.single-product .summary > p.price,
.single-product .summary div[itemprop="offers"] p.price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 4px;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	color: #1b1815;
}

.single-product .summary > p.price .woocommerce-price-suffix {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #7a6f66;
}

/* --------------------------------------------------------------------------
   15.4 QUANTITÀ E ACQUISTO SULLA STESSA RIGA
   I due comandi appartengono allo stesso gesto: si sceglie quanti e si
   aggiunge. Stavano su due righe separate, il selettore alto 30 px e il
   pulsante 48.
   -------------------------------------------------------------------------- */
/* ⚠️⚠️ Il tema tiene questo modulo con
       `.woocommerce div.product form.cart { display: inline-block; width: 100% }`
   che vale (0,3,2) — `.cart` è una CLASSE, non un elemento: sono tre classi e
   due elementi. La mia `.single-product .summary form.cart` valeva (0,3,1) e
   perdeva. Stessa storia sul selettore della quantità, tenuto a `width: 100%`
   da (0,4,3). Da qui in giù ogni selettore parte da `.woocommerce div.product`
   per stare sopra. */
.woocommerce div.product .summary form.cart,
.single-product .summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 18px 0 0;
	padding: 0;
}

/* L'etichetta «Quantità:» va sopra la riga, non incastrata dentro il
   selettore. */
.woocommerce div.product .summary form.cart div.quantity .quantity-title,
.single-product .summary form.cart .quantity .quantity-title {
	position: absolute;
	top: -24px;
	left: 0;
	margin: 0;
	color: #6f655c;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: none;
	white-space: nowrap;
}

/* ⚠️ Il tema dà al selettore la larghezza piena: dentro un contenitore
   flessibile occupava tutta la riga e spingeva il pulsante a capo, che è
   esattamente il difetto che si voleva togliere. */
.woocommerce div.product .summary form.cart div.quantity,
.single-product .summary form.cart .quantity {
	position: relative;
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	height: 52px;
	margin: 26px 0 0;
	padding: 0;
	background: #fff;
	border: 1px solid #ddd5c9;
	border-radius: 10px;
	/* ⚠️ NIENTE `overflow: hidden` qui: l'etichetta «Quantità:» è posizionata
	   in assoluto sopra il gruppo e veniva ritagliata via — spariva del tutto.
	   Gli angoli si arrotondano sui due pulsanti agli estremi. */
	overflow: visible;
}

.woocommerce div.product .summary form.cart div.quantity input.minus,
.woocommerce div.product .summary form.cart div.quantity input.plus,
.single-product .summary form.cart .quantity input.minus,
.single-product .summary form.cart .quantity input.plus {
	width: 46px;
	height: 50px;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 0;
	border-radius: 0;
	color: #3f3830;
	font-size: 19px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.woocommerce div.product .summary form.cart div.quantity input.minus {
	border-radius: 9px 0 0 9px;
}

.woocommerce div.product .summary form.cart div.quantity input.plus {
	border-radius: 0 9px 9px 0;
}

.single-product .summary form.cart .quantity input.minus:hover,
.single-product .summary form.cart .quantity input.plus:hover {
	background: #faf6ee;
	color: #BE1E2D;
}

.woocommerce div.product .summary form.cart div.quantity input.qty,
.single-product .summary form.cart .quantity input.qty {
	width: 52px;
	height: 50px;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 0;
	border-left: 1px solid #f0ebe2;
	border-right: 1px solid #f0ebe2;
	border-radius: 0;
	color: #1b1815;
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}

/* Le frecce del campo numerico raddoppiano il più e il meno che stanno già
   accanto. */
.single-product .summary form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product .summary form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.woocommerce div.product .summary form.cart button.single_add_to_cart_button,
.single-product .summary form.cart button.single_add_to_cart_button {
	flex: 1 1 220px;
	height: 52px;
	margin: 26px 0 0;
	padding: 0 26px;
	background: #BE1E2D;
	border: 0;
	border-radius: 10px;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .03em;
	transition: background-color .16s ease, transform .16s ease;
}

.single-product .summary form.cart button.single_add_to_cart_button:hover {
	background: #9b1824;
	transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   15.5 I PULSANTI DI PAGAMENTO RAPIDO
   Tre rettangoli neri e verdi accostati al pulsante rosso, senza alcuno
   stacco: sembravano parte dello stesso comando.
   -------------------------------------------------------------------------- */
.single-product .summary #wc-stripe-express-checkout-element {
	margin-top: 22px !important;
	padding-top: 22px;
	border-top: 1px solid #ece7dd;
}

/* --------------------------------------------------------------------------
   15.6 CONDIVIDI E STAMPA
   Quattro comandi di servizio con lo stesso peso del pulsante d'acquisto.
   -------------------------------------------------------------------------- */
.single-product .summary .social-sharing {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
	padding-top: 18px;
	border-top: 1px solid #ece7dd;
}

.single-product .summary .social-sharing .print,
.single-product .summary .social-sharing .email,
.single-product .summary .social-sharing ul.ftc-social-sharing,
.single-product .summary .social-sharing ul.ftc-social-sharing li {
	margin: 0;
	padding: 0;
	float: none;
	list-style: none;
}

.single-product .summary .social-sharing ul.ftc-social-sharing {
	display: flex;
	gap: 8px;
}

.single-product .summary .social-sharing a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 38px;
	padding: 0 14px;
	background: transparent;
	border: 1px solid #e8e1d6;
	border-radius: 999px;
	color: #6f655c;
	font-size: 13px;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.single-product .summary .social-sharing a:hover {
	background: #faf6ee;
	border-color: #d8b6ba;
	color: #BE1E2D;
}


/* ⚠️ Sotto i 991 px `responsive.css` centra il selettore con
   `margin: 15px auto`: dentro la riga flessibile lo staccava dal pulsante. */
@media only screen and (max-width: 991px) {
	.woocommerce div.product .summary form.cart div.quantity {
		width: auto;
		margin: 26px 0 0;
	}
}


/* ⚠️ «Tweet» e «Share» sono scritti a mano nel modello del tema, fuori da
   qualunque funzione di traduzione: né un file di lingua né un filtro
   `gettext` li raggiungono. Come per «(optional)» al checkout, si sostituisce
   la resa. È un cerotto: la cura è il modello. */
.single-product .summary .social-sharing ul.ftc-social-sharing li a {
	font-size: 0;
}

.single-product .summary .social-sharing ul.ftc-social-sharing li a i {
	font-size: 13px;
}

.single-product .summary .social-sharing ul.ftc-social-sharing li.twitter a::after,
.single-product .summary .social-sharing ul.ftc-social-sharing li.facebook a::after {
	content: "Condividi";
	font-size: 13px;
}

/* ==========================================================================
   16. L'ARTICOLO SINGOLO
   ========================================================================== */

/* --------------------------------------------------------------------------
   16.1 IL TESTO
   Il corpo era 15 px giustificato su una misura di 780 px: oltre cento
   caratteri per riga, e il giustificato su righe così lunghe apre i «fiumi»
   bianchi che si vedono a occhio nudo nel paragrafo del collegamento.
   Si legge comodamente fra i 65 e i 75 caratteri.
   -------------------------------------------------------------------------- */
.single-post article .entry-content,
.single-post article .entry-info .entry-summary {
	max-width: 680px;
}

.single-post article .entry-content p,
.single-post article .entry-info p {
	margin: 0 0 18px;
	color: #3f3830;
	font-size: 16.5px;
	line-height: 1.75;
	/* ⚠️ Il giustificato non è un gusto: su righe lunghe distribuisce lo
	   spazio in modo diseguale e lascia colonne bianche verticali dentro il
	   testo. A bandiera le parole restano alla stessa distanza. */
	text-align: left;
}

.single-post article .entry-content a,
.single-post article .entry-info a {
	color: #BE1E2D;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

/* --------------------------------------------------------------------------
   16.2 IL TITOLO
   In Roboto Slab a 30 px, e ripetuto tre volte nella stessa schermata: nella
   fascia in cima, nelle briciole e all'inizio dell'articolo. La fascia e
   l'articolo hanno ragioni per averlo; le briciole no — lì basta sapere dove
   si è, non rileggere tutto il titolo.
   -------------------------------------------------------------------------- */
.single-post article .entry-info h1,
.single-post article .post-info h1,
.single-post article h1.entry-title {
	margin: 0 0 10px;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -.015em;
	color: #1b1815;
}

.single-post .ftc-breadcrumbs-content > span:last-child,
.single-post .ftc-breadcrumbs-content > span.current {
	display: inline-block;
	max-width: 34ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

/* La data sotto il titolo. */
.single-post article .entry-info .entry-date,
.single-post article .post-info .date-time {
	color: #8a8078;
	font-size: 13.5px;
}

/* --------------------------------------------------------------------------
   16.3 LA NAVIGAZIONE FRA ARTICOLI
   ⚠️⚠️ Esisteva già, con il collegamento all'articolo precedente, ma
   misurava 870 x **0** px: c'era nel codice e non sullo schermo. Chi finiva
   di leggere non aveva nessun modo di passare all'articolo dopo.
   -------------------------------------------------------------------------- */
.single-post .navigation.post-navigation {
	display: block;
	height: auto;
	margin: 36px 0 0;
	padding: 26px 0 0;
	border-top: 1px solid #ece7dd;
	overflow: visible;
}

.single-post .post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}

.single-post .post-navigation .nav-previous,
.single-post .post-navigation .nav-next {
	display: block;
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

.single-post .post-navigation .nav-links a {
	display: block;
	height: 100%;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid #ece7dd;
	border-radius: 12px;
	color: #1b1815;
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.single-post .post-navigation .nav-links a:hover {
	border-color: #d8b6ba;
	box-shadow: 0 6px 20px rgba(60, 45, 30, .09);
	transform: translateY(-2px);
}

/* «Previous» e «Next» sono l'etichetta della direzione, non il titolo. */
.single-post .post-navigation .nav-subtitle {
	display: block;
	margin-bottom: 5px;
	color: #8a8078;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.single-post .post-navigation .nav-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.35;
	text-transform: none;
}

.single-post .post-navigation .nav-title-icon-wrapper {
	display: none;
}

/* Quando c'è solo l'articolo precedente, la sua scheda non deve prendersi
   tutta la riga come se fosse un titolo. */
.single-post .post-navigation .nav-next a {
	text-align: right;
}

/* --------------------------------------------------------------------------
   16.4 «VEDI ANCHE»
   Una fascia rossa a tutta larghezza con il titolo centrato in maiuscoletto
   serif: pesava più dell'articolo che chiudeva.
   -------------------------------------------------------------------------- */
.single-post .related-post h3,
.single-post .related-posts h3,
.single-post .ftc-related-post h3,
.single-post .related-post .title,
.single-post h3.related-title {
	margin: 0 0 18px;
	padding: 0;
	background: transparent;
	color: #1b1815;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.01em;
	text-align: left;
	text-transform: none;
}

/* --------------------------------------------------------------------------
   16.5 LA COLONNA DI DESTRA
   ⚠️ Le regole del blocco 14 non arrivavano qui: la regola del
   personalizzatore vale (0,3,1) e `body.single-post .widget-container` solo
   (0,2,0). Serve la stessa catena usata per il blog.
   -------------------------------------------------------------------------- */
body.wpb-js-composer.single-post section.widget-container,
body.wpb-js-composer.single-post div.widget-container {
	background: #fff !important;
	padding: 20px !important;
	border: 1px solid #ece7dd;
	border-radius: 14px;
	box-shadow: 0 2px 12px rgba(60, 45, 30, .05);
	margin-bottom: 16px;
}

/* I titoli delle ultime notizie erano tutti maiuscoli: un elenco di titoli
   in maiuscolo si scandisce lettera per lettera. */
.single-post .widget-container .ftc-meta-widget h3,
.single-post .widget-container ul li a,
body.blog .widget-container .ftc-meta-widget h3 {
	text-transform: none;
	font-size: 14.5px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   16.6 LA FOTOGRAFIA IN APERTURA
   -------------------------------------------------------------------------- */
.single-post article .post-img img,
.single-post article .entry-thumbnail img {
	border-radius: 14px;
}

/* --------------------------------------------------------------------------
   16.7 «VEDI ANCHE» — le schede in fondo all'articolo
   ⚠️⚠️ Qui il carosello SI AVVIA DAVVERO, al contrario di quello
   dell'archivio: Owl riscrive il DOM e gli `<article>` finiscono dentro
   `.owl-stage > .owl-item`. Un primo tentativo con `display: grid` sul
   contenitore e selettori a figlio diretto (`.blogs > article`) ha rotto la
   sezione: una scheda sola, senza fondo, con la data sopra la fotografia.
   Qui si lascia a Owl l'impaginazione e si tocca SOLO l'aspetto delle schede,
   con selettori a discendente.
   ⚠️ E gli `<article>` non hanno la classe `post-wrapper`, né il contenitore
   è `.ftc-sb-blogs`: le regole del blocco 14 non li raggiungono.
   -------------------------------------------------------------------------- */
.single-post .related-posts .blogs article {
	display: flex;
	flex-direction: column;
	height: auto;
	background: #fff;
	border: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .06), 0 6px 18px -12px rgba(60, 40, 25, .28);
	transition: box-shadow .28s ease, transform .28s ease;
}

.single-post .related-posts .blogs article:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgba(60, 40, 25, .08), 0 18px 36px -18px rgba(60, 40, 25, .45);
}

.single-post .related-posts .blogs article .post-img {
	margin: 0;
	overflow: hidden;
	background: #f4efe6;
	line-height: 0;
}

.single-post .related-posts .blogs article .post-img img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.single-post .related-posts .blogs article .post-info {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: auto !important;
	padding: 18px;
	text-align: left;
	background: transparent;
}

.single-post .related-posts .blogs article h3,
.single-post .related-posts .blogs article h3 a,
.single-post .related-posts .blogs article .entry-title,
.single-post .related-posts .blogs article .entry-title a {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	text-transform: none;
	color: #1b1815;
}

.single-post .related-posts .blogs article h3 a:hover,
.single-post .related-posts .blogs article .entry-title a:hover {
	color: #BE1E2D;
}

/* La riga dell'autore e il trattino separatore appesantiscono una scheda che
   deve solo invitare a un altro articolo. */
.single-post .related-posts .blogs article .vcard.author,
.single-post .related-posts .blogs article .date-time .space {
	display: none;
}

.single-post .related-posts .blogs article .date-time {
	display: block;
	margin: 0 0 6px;
	color: #8a8078;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.single-post .related-posts .blogs article .short-content,
.single-post .related-posts .blogs article .entry-content {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 8px 0 0;
	padding: 0;
	color: #6f655c;
	font-size: 14.5px;
	line-height: 1.55;
	text-align: left;
}

/* Il pulsante era nero, l'unico nero della pagina. */
.single-post .related-posts a.button-readmore {
	align-self: flex-start;
	margin-top: auto;
	padding: 16px 0 0;
	background: transparent !important;
	border: 0;
	color: #BE1E2D !important;
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
}

.single-post .related-posts a.button-readmore:hover {
	color: #9b1824 !important;
}

/* Il titolo «Vedi Anche» stava dentro una fascia rossa a tutta larghezza. */
.single-post .related-posts .related-post-title h3,
.single-post .related-posts .related-post-title h3 .bg-heading,
.single-post .related-posts .related-post-title h3 .bg-heading > span {
	display: block;
	margin: 0;
	padding: 0;
	background: transparent;
	color: #1b1815;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.01em;
	text-align: left;
	text-transform: none;
}

.single-post .related-posts .related-post-title {
	margin: 0 0 20px;
	padding: 0;
	background: transparent;
	border: 0;
}

.single-post .related-posts {
	margin-top: 40px;
	padding-top: 30px;
	border-top: 1px solid #ece7dd;
}

/* ⚠️ Due residui del «Vedi Anche», entrambi con la stessa origine — regole
   pensate per un'altra impaginazione:
   - il CSS del personalizzatore dà a `.blogs .post-info` un `margin-top`
     NEGATIVO, che faceva salire la data sopra la fotografia;
   - il carosello assegna un'altezza agli elementi e il mio `overflow: hidden`
     (serve per arrotondare gli angoli sulla foto) tagliava «Leggi tutto» a
     metà. L'altezza la decide il contenuto. */
.single-post .related-posts .blogs article,
.single-post .related-posts .owl-stage,
.single-post .related-posts .owl-item {
	height: auto !important;
}

.single-post .related-posts .blogs article .post-info {
	margin: 0 !important;
}

.single-post .related-posts .blogs article .short-content,
.single-post .related-posts .blogs article .entry-content {
	padding-left: 0;
	padding-right: 0;
}

/* Il trattino decorativo sotto il titolo apparteneva alla grafica vecchia. */
.single-post .related-posts .blogs article .entry-header::after,
.single-post .related-posts .blogs article h3::after {
	display: none;
}

/* ⚠️ L'`overflow: hidden` sulla scheda serviva solo ad arrotondare l'angolo
   della fotografia, ma tagliava «Leggi tutto» ogni volta che il contenuto
   superava l'altezza assegnata dal carosello. L'angolo si arrotonda sulla
   fotografia, e la scheda non ritaglia più niente. */
.single-post .related-posts .blogs article {
	overflow: visible;
}

.single-post .related-posts .blogs article .post-img {
	border-radius: 14px 14px 0 0;
	overflow: hidden;
}

.single-post .related-posts .blogs article .post-info {
	padding-bottom: 20px;
}


/* ==========================================================================
   17. LE FASCE ROSSE, DISEGNATE DAL FOGLIO DI STILE
   La fascia in cima a ogni pagina e il footer erano due fotografie JPG
   (`Header_Sumac_redess.jpg` e `footer_redess_sommacco.jpg`) con lo strappo
   di carta e la texture già impressi dentro. Qui vengono ridisegnati:
   una sfumatura del rosso del marchio, un motivo di grappoli e foglie di
   sommacco a bassissimo contrasto, e il bordo strappato come SVG.

   Perché ha senso rifarli col codice:
   - due immagini in meno da scaricare (erano 1.400 px di larghezza fissa);
   - lo strappo resta netto a qualunque risoluzione, mentre un JPG allargato
     sui monitor grandi si sgrana;
   - il colore segue il marchio, non una fotografia scattata una volta.

   ⚠️ Il motivo e i due strappi sono SVG scritti qui dentro come indirizzo
   `data:`. Il colore va scritto col cancelletto NORMALE e lasciato codificare
   una volta sola: scrivendolo già come `%23` diventa `%2523`, il browser non
   riconosce il colore e disegna NERO.
   -------------------------------------------------------------------------- */
:root {
	--kta-sommacco: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22260%22%20height%3D%22260%22%20viewBox%3D%220%200%20260%20260%22%3E%3Cg%20fill%3D%22%23fff%22%20opacity%3D%220.07%22%3E%3Ccircle%20cx%3D%2245.5%22%20cy%3D%2236.1%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%2242.5%22%20cy%3D%2241.5%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%2245.1%22%20cy%3D%2241.9%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%2249.2%22%20cy%3D%2242.3%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%2240.5%22%20cy%3D%2246.3%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2243.3%22%20cy%3D%2246.7%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%2248.1%22%20cy%3D%2246.9%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2251.3%22%20cy%3D%2247.0%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2237.8%22%20cy%3D%2250.6%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2242.0%22%20cy%3D%2252.1%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2246.4%22%20cy%3D%2252.5%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%2250.5%22%20cy%3D%2251.5%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%2254.5%22%20cy%3D%2250.7%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2236.8%22%20cy%3D%2257.8%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%2241.9%22%20cy%3D%2256.4%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2245.8%22%20cy%3D%2256.5%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2250.5%22%20cy%3D%2257.7%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%2255.5%22%20cy%3D%2257.6%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%2237.4%22%20cy%3D%2261.3%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%2242.4%22%20cy%3D%2262.9%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2246.4%22%20cy%3D%2261.4%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%2250.6%22%20cy%3D%2261.5%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%2255.5%22%20cy%3D%2263.1%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%2238.2%22%20cy%3D%2267.0%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2241.5%22%20cy%3D%2267.8%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%2245.2%22%20cy%3D%2267.5%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2250.6%22%20cy%3D%2266.8%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%2255.2%22%20cy%3D%2267.2%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%2238.8%22%20cy%3D%2271.5%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%2242.9%22%20cy%3D%2271.7%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2248.5%22%20cy%3D%2271.6%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%2253.5%22%20cy%3D%2272.0%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2242.0%22%20cy%3D%2277.3%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%2246.0%22%20cy%3D%2277.9%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%2250.8%22%20cy%3D%2277.9%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2243.0%22%20cy%3D%2282.6%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%2245.5%22%20cy%3D%2282.4%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%2249.1%22%20cy%3D%2282.9%22%20r%3D%221.7%22%2F%3E%3Ccircle%20cx%3D%2242.8%22%20cy%3D%2288.2%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2246.2%22%20cy%3D%2288.3%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2249.2%22%20cy%3D%2287.9%22%20r%3D%222.1%22%2F%3E%3Cpath%20d%3D%22M46.0%2C87.0%20q-0.9%2C6%200.8%2C11%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.3%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22177.7%22%20cy%3D%22153.2%22%20r%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%22174.1%22%20cy%3D%22158.5%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22177.2%22%20cy%3D%22158.4%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22181.0%22%20cy%3D%22157.5%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22172.7%22%20cy%3D%22163.5%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22175.8%22%20cy%3D%22163.1%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22179.9%22%20cy%3D%22162.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22182.4%22%20cy%3D%22163.6%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22170.7%22%20cy%3D%22166.4%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22175.2%22%20cy%3D%22166.5%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22178.3%22%20cy%3D%22166.9%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22180.6%22%20cy%3D%22166.2%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22185.0%22%20cy%3D%22167.0%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22170.8%22%20cy%3D%22171.5%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22174.8%22%20cy%3D%22172.0%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22178.1%22%20cy%3D%22171.7%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%22182.1%22%20cy%3D%22171.1%22%20r%3D%223.0%22%2F%3E%3Ccircle%20cx%3D%22184.7%22%20cy%3D%22171.4%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22169.8%22%20cy%3D%22176.0%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22174.5%22%20cy%3D%22176.6%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22178.7%22%20cy%3D%22175.6%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22181.9%22%20cy%3D%22176.2%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22186.1%22%20cy%3D%22177.0%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22171.2%22%20cy%3D%22179.4%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22174.7%22%20cy%3D%22181.5%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22177.6%22%20cy%3D%22180.1%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22180.7%22%20cy%3D%22180.3%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22184.4%22%20cy%3D%22179.4%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22171.5%22%20cy%3D%22184.2%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22176.7%22%20cy%3D%22183.9%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22180.0%22%20cy%3D%22185.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22184.5%22%20cy%3D%22184.3%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22173.8%22%20cy%3D%22190.0%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22177.4%22%20cy%3D%22188.5%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%22181.5%22%20cy%3D%22189.2%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22175.0%22%20cy%3D%22192.5%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22177.8%22%20cy%3D%22193.7%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22180.9%22%20cy%3D%22193.6%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22175.7%22%20cy%3D%22197.0%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22178.5%22%20cy%3D%22198.8%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%22180.4%22%20cy%3D%22197.8%22%20r%3D%221.8%22%2F%3E%3Cpath%20d%3D%22M178.0%2C197.0%20q0.8%2C6%20-1.8%2C11%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.3%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M112.0%2C34.0%20L164.1%2C59.4%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.1%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Cellipse%20cx%3D%22120.0%22%20cy%3D%2241.3%22%20rx%3D%223.8%22%20ry%3D%221.8%22%20transform%3D%22rotate%2888%20120.0%2041.3%29%22%2F%3E%3Cellipse%20cx%3D%22122.7%22%20cy%3D%2235.8%22%20rx%3D%223.8%22%20ry%3D%221.8%22%20transform%3D%22rotate%28-36%20122.7%2035.8%29%22%2F%3E%3Cellipse%20cx%3D%22128.0%22%20cy%3D%2246.3%22%20rx%3D%225.1%22%20ry%3D%222.4%22%20transform%3D%22rotate%2888%20128.0%2046.3%29%22%2F%3E%3Cellipse%20cx%3D%22131.5%22%20cy%3D%2239.0%22%20rx%3D%225.1%22%20ry%3D%222.4%22%20transform%3D%22rotate%28-36%20131.5%2039.0%29%22%2F%3E%3Cellipse%20cx%3D%22135.9%22%20cy%3D%2250.6%22%20rx%3D%225.6%22%20ry%3D%222.6%22%20transform%3D%22rotate%2888%20135.9%2050.6%29%22%2F%3E%3Cellipse%20cx%3D%22139.8%22%20cy%3D%2242.6%22%20rx%3D%225.6%22%20ry%3D%222.6%22%20transform%3D%22rotate%28-36%20139.8%2042.6%29%22%2F%3E%3Cellipse%20cx%3D%22143.8%22%20cy%3D%2254.4%22%20rx%3D%225.5%22%20ry%3D%222.6%22%20transform%3D%22rotate%2888%20143.8%2054.4%29%22%2F%3E%3Cellipse%20cx%3D%22147.6%22%20cy%3D%2246.5%22%20rx%3D%225.5%22%20ry%3D%222.6%22%20transform%3D%22rotate%28-36%20147.6%2046.5%29%22%2F%3E%3Cellipse%20cx%3D%22151.6%22%20cy%3D%2257.5%22%20rx%3D%224.7%22%20ry%3D%222.2%22%20transform%3D%22rotate%2888%20151.6%2057.5%29%22%2F%3E%3Cellipse%20cx%3D%22154.9%22%20cy%3D%2250.8%22%20rx%3D%224.7%22%20ry%3D%222.2%22%20transform%3D%22rotate%28-36%20154.9%2050.8%29%22%2F%3E%3Cellipse%20cx%3D%22159.5%22%20cy%3D%2259.9%22%20rx%3D%223.1%22%20ry%3D%221.4%22%20transform%3D%22rotate%2888%20159.5%2059.9%29%22%2F%3E%3Cellipse%20cx%3D%22161.6%22%20cy%3D%2255.5%22%20rx%3D%223.1%22%20ry%3D%221.4%22%20transform%3D%22rotate%28-36%20161.6%2055.5%29%22%2F%3E%3Cpath%20d%3D%22M24.0%2C196.0%20L74.5%2C183.4%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.1%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Cellipse%20cx%3D%2233.8%22%20cy%3D%22196.5%22%20rx%3D%223.5%22%20ry%3D%221.7%22%20transform%3D%22rotate%2848%2033.8%20196.5%29%22%2F%3E%3Cellipse%20cx%3D%2232.4%22%20cy%3D%22191.0%22%20rx%3D%223.5%22%20ry%3D%221.7%22%20transform%3D%22rotate%28-76%2032.4%20191.0%29%22%2F%3E%3Cellipse%20cx%3D%2242.1%22%20cy%3D%22195.3%22%20rx%3D%224.6%22%20ry%3D%222.2%22%20transform%3D%22rotate%2848%2042.1%20195.3%29%22%2F%3E%3Cellipse%20cx%3D%2240.3%22%20cy%3D%22188.1%22%20rx%3D%224.6%22%20ry%3D%222.2%22%20transform%3D%22rotate%28-76%2040.3%20188.1%29%22%2F%3E%3Cellipse%20cx%3D%2250.0%22%20cy%3D%22193.7%22%20rx%3D%225.1%22%20ry%3D%222.4%22%20transform%3D%22rotate%2848%2050.0%20193.7%29%22%2F%3E%3Cellipse%20cx%3D%2248.1%22%20cy%3D%22185.8%22%20rx%3D%225.1%22%20ry%3D%222.4%22%20transform%3D%22rotate%28-76%2048.1%20185.8%29%22%2F%3E%3Cellipse%20cx%3D%2257.6%22%20cy%3D%22191.7%22%20rx%3D%225.0%22%20ry%3D%222.4%22%20transform%3D%22rotate%2848%2057.6%20191.7%29%22%2F%3E%3Cellipse%20cx%3D%2255.7%22%20cy%3D%22184.0%22%20rx%3D%225.0%22%20ry%3D%222.4%22%20transform%3D%22rotate%28-76%2055.7%20184.0%29%22%2F%3E%3Cellipse%20cx%3D%2264.8%22%20cy%3D%22189.3%22%20rx%3D%224.3%22%20ry%3D%222.0%22%20transform%3D%22rotate%2848%2064.8%20189.3%29%22%2F%3E%3Cellipse%20cx%3D%2263.2%22%20cy%3D%22182.7%22%20rx%3D%224.3%22%20ry%3D%222.0%22%20transform%3D%22rotate%28-76%2063.2%20182.7%29%22%2F%3E%3Cellipse%20cx%3D%2271.6%22%20cy%3D%22186.5%22%20rx%3D%222.8%22%20ry%3D%221.3%22%20transform%3D%22rotate%2848%2071.6%20186.5%29%22%2F%3E%3Cellipse%20cx%3D%2270.5%22%20cy%3D%22182.1%22%20rx%3D%222.8%22%20ry%3D%221.3%22%20transform%3D%22rotate%28-76%2070.5%20182.1%29%22%2F%3E%3Ccircle%20cx%3D%22214.0%22%20cy%3D%2241.7%22%20r%3D%221.7%22%2F%3E%3Ccircle%20cx%3D%22211.2%22%20cy%3D%2245.0%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22214.3%22%20cy%3D%2243.5%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22216.2%22%20cy%3D%2244.9%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22210.0%22%20cy%3D%2247.4%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22213.5%22%20cy%3D%2247.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22214.5%22%20cy%3D%2248.5%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22217.3%22%20cy%3D%2248.3%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22209.7%22%20cy%3D%2250.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22212.1%22%20cy%3D%2251.5%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22213.2%22%20cy%3D%2252.2%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22217.5%22%20cy%3D%2250.4%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22219.7%22%20cy%3D%2252.1%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22208.1%22%20cy%3D%2253.6%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22210.9%22%20cy%3D%2255.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22214.5%22%20cy%3D%2255.4%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22216.9%22%20cy%3D%2255.6%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22219.4%22%20cy%3D%2254.1%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22207.7%22%20cy%3D%2258.2%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22211.2%22%20cy%3D%2257.2%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22214.7%22%20cy%3D%2257.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22217.6%22%20cy%3D%2258.2%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22218.9%22%20cy%3D%2258.6%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22208.5%22%20cy%3D%2260.9%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22211.7%22%20cy%3D%2261.0%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22214.9%22%20cy%3D%2262.3%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22216.8%22%20cy%3D%2261.8%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22219.8%22%20cy%3D%2262.4%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22209.3%22%20cy%3D%2264.1%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22211.9%22%20cy%3D%2263.9%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22216.1%22%20cy%3D%2264.9%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22219.2%22%20cy%3D%2265.5%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22211.7%22%20cy%3D%2267.3%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22214.6%22%20cy%3D%2268.5%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22216.3%22%20cy%3D%2267.3%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22211.6%22%20cy%3D%2271.7%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22213.4%22%20cy%3D%2271.1%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%22215.9%22%20cy%3D%2271.4%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22212.1%22%20cy%3D%2275.0%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22214.8%22%20cy%3D%2275.6%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22215.6%22%20cy%3D%2274.3%22%20r%3D%221.9%22%2F%3E%3Cpath%20d%3D%22M214.0%2C74.0%20q-2.8%2C6%201.0%2C11%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.3%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--kta-strappo-giu: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%2234%22%20viewBox%3D%220%200%201200%2034%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2C34%20L0%2C15.6%20Q20.0%2C15.6%2040.0%2C22.3%20Q60.0%2C22.3%2080.0%2C22.6%20Q100.0%2C22.6%20120.0%2C16.6%20Q140.0%2C16.6%20160.0%2C27.6%20Q180.0%2C27.6%20200.0%2C16.7%20Q220.0%2C16.7%20240.0%2C4.9%20Q260.0%2C4.9%20280.0%2C15.3%20Q300.0%2C15.3%20320.0%2C8.0%20Q340.0%2C8.0%20360.0%2C6.6%20Q380.0%2C6.6%20400.0%2C11.6%20Q420.0%2C11.6%20440.0%2C19.6%20Q460.0%2C19.6%20480.0%2C18.5%20Q500.0%2C18.5%20520.0%2C26.1%20Q540.0%2C26.1%20560.0%2C24.2%20Q580.0%2C24.2%20600.0%2C16.1%20Q620.0%2C16.1%20640.0%2C13.6%20Q660.0%2C13.6%20680.0%2C22.0%20Q700.0%2C22.0%20720.0%2C13.7%20Q740.0%2C13.7%20760.0%2C5.1%20Q780.0%2C5.1%20800.0%2C21.0%20Q820.0%2C21.0%20840.0%2C16.8%20Q860.0%2C16.8%20880.0%2C21.7%20Q900.0%2C21.7%20920.0%2C20.2%20Q940.0%2C20.2%20960.0%2C25.2%20Q980.0%2C25.2%201000.0%2C15.8%20Q1020.0%2C15.8%201040.0%2C12.3%20Q1060.0%2C12.3%201080.0%2C22.5%20Q1100.0%2C22.5%201120.0%2C9.0%20Q1140.0%2C9.0%201160.0%2C6.8%20Q1180.0%2C6.8%201200.0%2C16.4%20L1200%2C34%20Z%22%20fill%3D%22%23fffbef%22%2F%3E%3C%2Fsvg%3E");
	--kta-strappo-su: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%2238%22%20viewBox%3D%220%200%201200%2038%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20transform%3D%22translate%280%2C38%29%20scale%281%2C-1%29%22%3E%3Cpath%20d%3D%22M0%2C38%20L0%2C25.2%20Q20.0%2C25.2%2040.0%2C35.2%20Q60.0%2C35.2%2080.0%2C28.4%20Q100.0%2C28.4%20120.0%2C18.6%20Q140.0%2C18.6%20160.0%2C31.6%20Q180.0%2C31.6%20200.0%2C19.4%20Q220.0%2C19.4%20240.0%2C11.5%20Q260.0%2C11.5%20280.0%2C12.2%20Q300.0%2C12.2%20320.0%2C11.0%20Q340.0%2C11.0%20360.0%2C7.6%20Q380.0%2C7.6%20400.0%2C14.9%20Q420.0%2C14.9%20440.0%2C26.6%20Q460.0%2C26.6%20480.0%2C15.5%20Q500.0%2C15.5%20520.0%2C19.6%20Q540.0%2C19.6%20560.0%2C34.6%20Q580.0%2C34.6%20600.0%2C20.6%20Q620.0%2C20.6%20640.0%2C13.8%20Q660.0%2C13.8%20680.0%2C21.9%20Q700.0%2C21.9%20720.0%2C12.5%20Q740.0%2C12.5%20760.0%2C2.5%20Q780.0%2C2.5%20800.0%2C21.0%20Q820.0%2C21.0%20840.0%2C25.8%20Q860.0%2C25.8%20880.0%2C21.6%20Q900.0%2C21.6%20920.0%2C26.9%20Q940.0%2C26.9%20960.0%2C35.5%20Q980.0%2C35.5%201000.0%2C20.8%20Q1020.0%2C20.8%201040.0%2C19.6%20Q1060.0%2C19.6%201080.0%2C19.4%20Q1100.0%2C19.4%201120.0%2C15.1%20Q1140.0%2C15.1%201160.0%2C8.6%20Q1180.0%2C8.6%201200.0%2C14.1%20L1200%2C38%20Z%22%20fill%3D%22%23fffbef%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	--kta-rosso-chiaro: #c62233;
	--kta-rosso: #BE1E2D;
	--kta-rosso-scuro: #8e1421;
}

/* --------------------------------------------------------------------------
   17.1 LA FASCIA IN CIMA
   -------------------------------------------------------------------------- */
/* ⚠️⚠️ Lo strappo è uno STRATO DELLO SFONDO, non uno pseudo-elemento.
   Primo tentativo: `::after` in posizione assoluta. Sulla fascia funzionava,
   sul footer no — quella riga ha `overflow: hidden` e lo ritagliava via.
   Messo nella pila degli sfondi non può essere né ritagliato né coperto, e
   vale per entrambi senza casi speciali. L'ordine degli strati è quello in
   cui si disegnano: prima lo strappo, poi il motivo, poi la sfumatura. */
.ftc-breadcrumb {
	position: relative;
	background-color: var(--kta-rosso) !important;
	background-image: var(--kta-strappo-giu),
		var(--kta-sommacco),
		linear-gradient(135deg, var(--kta-rosso-chiaro) 0%, var(--kta-rosso) 44%, var(--kta-rosso-scuro) 100%) !important;
	background-repeat: repeat-x, repeat, no-repeat !important;
	background-size: 1200px 34px, 260px 260px, cover !important;
	background-position: bottom, 0 0, center !important;
}

.ftc-breadcrumb .product_title,
.ftc-breadcrumb .page-title,
.ftc-breadcrumb h1 {
	color: #fff;
	text-shadow: none;
}

.ftc-breadcrumb .ftc-breadcrumbs-content,
.ftc-breadcrumb .ftc-breadcrumbs-content a {
	color: rgba(255, 255, 255, .82);
}

.ftc-breadcrumb .ftc-breadcrumbs-content a:hover {
	color: #fff;
}

/* L'ultima voce delle briciole è la pagina in cui si è: si distingue senza
   sparire, come faceva il rosso su rosso. */
.ftc-breadcrumb .ftc-breadcrumbs-content span:last-child {
	color: #ffd9dd;
}

/* --------------------------------------------------------------------------
   17.2 IL FOOTER
   -------------------------------------------------------------------------- */
/* ⚠️ `:first-child` NON funziona qui: dentro `#ftc_footer-1` il primo figlio
   è un `<p>` vuoto, non la riga. E il costruttore di pagine dipinge lo sfondo
   con una classe generata (`.vc_custom_1635325529446`) e `!important`. Invece
   di scrivere quel numero — che cambia se qualcuno risalva la riga nel
   pannello — si aggancia QUALUNQUE classe generata: il selettore vale (1,2,1)
   e passa sopra a (0,1,0) anche con l'`!important` dall'altra parte. */
/* Il costruttore di pagine dipinge lo sfondo con una classe generata
   (`.vc_custom_1635325529446`) e `!important`. Non si scrive quel numero —
   cambia se qualcuno risalva la riga nel pannello — ma si aggancia QUALUNQUE
   classe generata: il selettore vale (1,2,1) e passa sopra a (0,1,0). */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] {
	position: relative;
	background-color: var(--kta-rosso) !important;
	background-image: var(--kta-sommacco),
		linear-gradient(160deg, var(--kta-rosso-chiaro) 0%, var(--kta-rosso) 52%, var(--kta-rosso-scuro) 100%) !important;
	background-repeat: repeat, no-repeat !important;
	background-size: 260px 260px, cover !important;
	background-position: 0 0, center !important;
}

/* Lo strappo solo sulla PRIMA riga: la seconda è la striscia del copyright e
   sta sotto, dentro lo stesso rosso — un secondo strappo in mezzo al footer
   sarebbe una piega che non c'entra niente. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
	background-image: var(--kta-strappo-su),
		var(--kta-sommacco),
		linear-gradient(160deg, var(--kta-rosso-chiaro) 0%, var(--kta-rosso) 52%, var(--kta-rosso-scuro) 100%) !important;
	background-repeat: repeat-x, repeat, no-repeat !important;
	background-size: 1200px 38px, 260px 260px, cover !important;
	background-position: top, 0 0, center !important;
}

/* --------------------------------------------------------------------------
   17.2b LA STRISCIA DEL COPYRIGHT
   ⚠️ Il fratello ADIACENTE (`+`) non combacia: fra le due righe il costruttore
   di pagine infila un `<div class="vc_row-full-width">` vuoto, quindi la
   seconda riga non è adiacente alla prima. Ci vuole il fratello generale
   (`~`), altrimenti la regola sembra scritta bene e non tocca niente.
   Era alta 133 px per due righe di testo: quaranta di quei pixel erano DUE
   riquadri vuoti da 20 px messi dal costruttore di pagine sopra e sotto il
   testo, più il riempimento della riga. Diventa una striscia scura di una
   riga sola: a sinistra i dati dell'azienda, a destra chi ha fatto il sito.
   -------------------------------------------------------------------------- */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] {
	padding: 0 !important;
	background-color: #2a231f !important;
	background-image: none !important;
	border-top: 0;
}

/* I due spazi vuoti del costruttore: quaranta pixel che non contengono nulla. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .vc_empty_space {
	display: none !important;
}

#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_column,
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_wrapper,
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column {
	margin: 0;
	padding: 0;
}

/* Le due righe diventano una: i dati a sinistra, la firma a destra. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column > .wpb_wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 4px 24px;
	max-width: 1170px;
	margin: 0 auto;
	padding: 14px 15px;
}

#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.5;
	text-align: left !important;
}

/* Il testo è scritto con il bianco pieno in linea: su fondo scuro un grigio
   chiaro basta e pesa meno. Il collegamento resta un collegamento. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p span {
	color: rgba(255, 255, 255, .62) !important;
}

#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p a span {
	color: rgba(255, 255, 255, .82) !important;
}

#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p a:hover span {
	color: #fff !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media only screen and (max-width: 767px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column > .wpb_wrapper {
		justify-content: center;
		padding: 12px 15px;
	}

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p {
		flex: 1 0 100%;
		text-align: center !important;
	}
}

/* --------------------------------------------------------------------------
   17.2c IL FOOTER ERA TROPPO ALTO
   La riga principale porta `padding: 80px 0 50px` dal costruttore, e sopra
   c'è la fascia strappata: in tutto oltre 650 px per quattro colonne di
   collegamenti. Si stringe senza toglierle aria.
   -------------------------------------------------------------------------- */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
	padding-top: 62px !important;
	padding-bottom: 34px !important;
}

@media only screen and (max-width: 767px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		padding-top: 44px !important;
		padding-bottom: 24px !important;
	}
}

/* I titoli delle colonne erano in serif maiuscoletto: sono etichette, non
   titoli di sezione. */
/* ⚠️ La classe è `widgettitle`, tutta attaccata — non `widget-title` come
   nelle colonne laterali — e l'elemento è un `h2`. Cercando `h3` e
   `.widget-title` la regola non toccava niente: dieci righe di CSS che non
   facevano nulla. */
#ftc_footer-1 h2.widgettitle,
#ftc_footer-1 .widgettitle,
.top-footer .widget-column h3,
.top-footer .widget-column h4,
.top-footer .ftc-footer h3,
.top-footer .widget-title {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #fff;
}

.top-footer .widget-column p,
.top-footer .widget-column li,
.top-footer .widget-column a {
	color: rgba(255, 255, 255, .88);
	font-size: 14.5px;
	line-height: 1.65;
}

.top-footer .widget-column a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* --------------------------------------------------------------------------
   17.3 SU TELEFONO
   Uno strappo alto 34 px su uno schermo da 390 diventa una dentellatura
   grossolana: si abbassa in proporzione.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {

	.ftc-breadcrumb {
		background-size: 700px 20px, 170px 170px, cover !important;
	}

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"] {
		background-size: 170px 170px, cover !important;
	}

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		background-size: 700px 22px, 170px 170px, cover !important;
	}
}

/* --------------------------------------------------------------------------
   17.2d IL FOOTER SU TELEFONO
   Incolonnate, le quattro colonne diventavano oltre 1.500 px: le voci del
   menu avevano un passo di 66 px l'una dall'altra e ogni blocco un margine
   pensato per stare accanto agli altri, non sotto.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {

	#ftc_footer-1 .wpb_column {
		margin-bottom: 20px;
	}

	#ftc_footer-1 .wpb_column:last-child {
		margin-bottom: 0;
	}

	#ftc_footer-1 .widgettitle {
		margin: 0 0 10px;
	}

	#ftc_footer-1 .wpb_text_column p {
		margin-bottom: 3px;
		font-size: 14px;
		line-height: 1.55;
	}

	#ftc_footer-1 .widget ul li {
		margin: 0;
		padding: 0;
	}

	#ftc_footer-1 .widget ul li a {
		display: block;
		padding: 6px 0;
		font-size: 14.5px;
		line-height: 1.4;
	}

	/* Gli articoli recenti: tre titoli lunghi che raddoppiavano il footer. */
	#ftc_footer-1 .widget_recent_entries li {
		margin-bottom: 8px;
	}

	#ftc_footer-1 .widget_recent_entries li a {
		padding: 0;
		font-size: 14px;
	}

	/* Il codice QR serve a chi guarda da un computer e vuole passare i
	   contatti al telefono. Su un telefono non si inquadra il proprio stesso
	   schermo: lì sono duecento pixel di footer che non servono a nessuno. */
	#ftc_footer-1 .wpb_column:last-child .wpb_single_image {
		display: none;
	}
}

/* La firma di chi ha fatto il sito è un credito, non un titolo: pesava più
   della ragione sociale accanto. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p a,
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] p a span {
	font-weight: 400;
	font-size: 12.5px;
}

/* ==========================================================================
   18. IL FOOTER, RIPENSATO
   Quattro colonne larghe uguale in cui la prima era piena e l'ultima quasi
   vuota, i titoli senza alcun segno che li distinguesse, i contatti scritti
   come testo corrente e i tre bottoni social ROSSI su fondo ROSSO.
   ========================================================================== */

/* --------------------------------------------------------------------------
   18.1 LE PROPORZIONI DELLE COLONNE
   Erano quattro `col-sm-3` identiche: l'indirizzo e i tre articoli recenti
   stavano stretti, il codice QR nuotava in una colonna vuota per metà.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 992px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type > .wpb_column {
		float: none;
		padding: 0 18px;
	}

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
	}

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type > .wpb_column:nth-child(1) { width: 28%; }
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type > .wpb_column:nth-child(2) { width: 20%; }
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type > .wpb_column:nth-child(3) { width: 33%; }
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type > .wpb_column:nth-child(4) { width: 19%; }
}

/* --------------------------------------------------------------------------
   18.2 I TITOLI DELLE COLONNE
   Erano parole in mezzo al rosso, senza nulla che le distinguesse dalle voci
   sotto. Un filo corto sotto ciascuno basta a dire «qui comincia un gruppo».
   -------------------------------------------------------------------------- */
#ftc_footer-1 .widgettitle {
	position: relative;
	margin: 0 0 18px;
	padding-bottom: 12px;
}

#ftc_footer-1 .widgettitle::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 34px;
	height: 2px;
	background: rgba(255, 255, 255, .5);
}

/* --------------------------------------------------------------------------
   18.3 IL MARCHIO E I CONTATTI
   -------------------------------------------------------------------------- */
#ftc_footer-1 .wpb_single_image .vc_single_image-wrapper {
	border: 0;
}

#ftc_footer-1 > div.vc_row:first-of-type .wpb_column:first-child .wpb_single_image img {
	width: 96px;
	height: auto;
	margin-bottom: 18px;
}

/* «Sede Legale» fa da titolo di colonna senza esserlo: è un `<strong>` dentro
   un blocco di testo, non un `.widgettitle`. Gli si dà lo stesso trattamento
   degli altri titoli, filo compreso, così le quattro colonne cominciano tutte
   allo stesso modo. */
#ftc_footer-1 .wpb_text_column p:first-child strong {
	position: relative;
	display: inline-block;
	margin: 0 0 18px;
	padding-bottom: 12px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

#ftc_footer-1 .wpb_text_column p:first-child strong::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 34px;
	height: 2px;
	background: rgba(255, 255, 255, .5);
}

#ftc_footer-1 .wpb_text_column p {
	margin: 0 0 10px;
	line-height: 1.7;
}

/* Le etichette dei contatti stavano attaccate al valore: «email:info@…». */
#ftc_footer-1 .wpb_text_column strong {
	margin-right: 5px;
	font-weight: 600;
	color: rgba(255, 255, 255, .72);
}

/* Numeri e indirizzo email: li rende collegamenti veri il codice in
   functions.php — qui si dà loro l'aspetto di qualcosa che si può toccare. */
#ftc_footer-1 a.kta-piede-tel,
#ftc_footer-1 a.kta-piede-mail {
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .32);
	transition: border-color .15s ease;
}

#ftc_footer-1 a.kta-piede-tel:hover,
#ftc_footer-1 a.kta-piede-mail:hover {
	border-bottom-color: #fff;
}

/* --------------------------------------------------------------------------
   18.4 I BOTTONI SOCIAL
   ⚠️⚠️ Erano ROSSI SU ROSSO: `background: #be1e2d` scritto in linea, sopra un
   footer che ora è dello stesso rosso. Si vedeva solo l'icona bianca, e il
   bottone spariva. Un contorno chiaro li rende tre bottoni.
   -------------------------------------------------------------------------- */
#ftc_footer-1 #mega_social_icons {
	display: flex !important;
	gap: 10px;
	margin-top: 4px;
}

#ftc_footer-1 #mega_social_icons p {
	display: flex;
	gap: 10px;
	margin: 0;
}

#ftc_footer-1 #mega-social-btn {
	margin: 0 !important;
}

#ftc_footer-1 #mega-social-btn > a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 42px !important;
	height: 42px !important;
	line-height: 1 !important;
	background: rgba(255, 255, 255, .1) !important;
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 50% !important;
	color: #fff !important;
	font-size: 17px !important;
	transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}

#ftc_footer-1 #mega-social-btn > a:hover {
	background: #fff !important;
	border-color: #fff;
	color: #BE1E2D !important;
	transform: translateY(-2px);
}

/* --------------------------------------------------------------------------
   18.5 GLI ARTICOLI RECENTI
   Tre titoli lunghi in Roboto Slab, con la data sotto ciascuno: la colonna
   più alta di tutte, per la parte meno utile di un footer di negozio.
   -------------------------------------------------------------------------- */
#ftc_footer-1 .widget_recent_entries ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#ftc_footer-1 .widget_recent_entries li {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
}

#ftc_footer-1 .widget_recent_entries li:last-child {
	margin-bottom: 0;
}

#ftc_footer-1 .widget_recent_entries li a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	color: rgba(255, 255, 255, .92);
}

#ftc_footer-1 .widget_recent_entries li a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 2px;
}

#ftc_footer-1 .widget_recent_entries .post-date {
	display: block;
	margin-top: 3px;
	color: rgba(255, 255, 255, .55);
	font-size: 12px;
	letter-spacing: .03em;
}

/* --------------------------------------------------------------------------
   18.6 IL MENU
   -------------------------------------------------------------------------- */
#ftc_footer-1 .widget_nav_menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#ftc_footer-1 .widget_nav_menu li {
	margin: 0;
	padding: 0;
	border: 0;
}

#ftc_footer-1 .widget_nav_menu li a {
	display: block;
	padding: 5px 0;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 14.5px;
	color: rgba(255, 255, 255, .88);
	transition: color .14s ease, transform .14s ease;
}

#ftc_footer-1 .widget_nav_menu li a:hover {
	color: #fff;
	transform: translateX(3px);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   18.7 IL CODICE QR
   Nuotava nudo in una colonna quasi vuota. In una scheda bianca si legge
   come un oggetto messo lì apposta — e i lettori QR lo inquadrano meglio su
   fondo chiaro.
   -------------------------------------------------------------------------- */
#ftc_footer-1 > div.vc_row:first-of-type .wpb_column:last-child .wpb_single_image .vc_single_image-wrapper {
	display: inline-block;
	padding: 10px;
	background: #fff;
	border-radius: 12px;
	line-height: 0;
}

#ftc_footer-1 > div.vc_row:first-of-type .wpb_column:last-child .wpb_single_image img {
	width: 128px;
	height: auto;
	margin: 0;
}

/* --------------------------------------------------------------------------
   18.8 LE COLONNE DEL FOOTER PARTONO TUTTE DALLA STESSA RIGA
   Le colonne 2, 3 e 4 avevano ognuna un `vc_empty_space` da 15 px messo dal
   costruttore: i titoli cominciavano quindici pixel sotto il marchio della
   prima colonna, e il codice QR a metà strada fra i due. Tre linee di
   partenza diverse per quattro colonne affiancate.
   -------------------------------------------------------------------------- */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] .vc_empty_space {
	display: none !important;
}

/* --------------------------------------------------------------------------
   19. LE BANDIERE DELLE LINGUE, IN RIGA
   Il sito ha cinque lingue e le mostra in quattro punti — la tendina del menu
   sul computer, il menu a scomparsa del telefono, il menu del footer — e in
   tutti e quattro erano INCOLONNATE, una bandiera per riga. Quattro righe per
   quattro bandierine larghe 18 px. In riga occupano una riga sola e si
   confrontano a colpo d'occhio.
   -------------------------------------------------------------------------- */

/* La tendina sotto la bandiera corrente, sul computer. */
#primary-menu li[class*="wpml-ls-item"] > ul.sub-menu,
.navigation-primary li[class*="wpml-ls-item"] > ul.sub-menu {
	display: flex;
	flex-direction: row;
	gap: 4px;
	min-width: 0;
	width: auto;
	padding: 8px 10px;
	white-space: nowrap;
}

#primary-menu li[class*="wpml-ls-item"] > ul.sub-menu > li,
.navigation-primary li[class*="wpml-ls-item"] > ul.sub-menu > li {
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	float: none;
}

#primary-menu li[class*="wpml-ls-item"] > ul.sub-menu > li > a,
.navigation-primary li[class*="wpml-ls-item"] > ul.sub-menu > li > a {
	display: block;
	padding: 5px 6px;
	border-radius: 5px;
	line-height: 0;
}

/* Nel menu a scomparsa del telefono e in quello del footer le lingue sono
   voci come le altre: si mettono in fila, staccate dal gruppo delle pagine. */
#main-menu > li[class*="wpml-ls-item"],
#menu-footer-mobile-menu > li[class*="wpml-ls-item"] {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: middle;
}

#main-menu > li[class*="wpml-ls-item"] > a,
#menu-footer-mobile-menu > li[class*="wpml-ls-item"] > a {
	display: block;
	padding: 7px 6px;
	border: 0;
	line-height: 0;
}

/* La prima bandiera della fila apre il gruppo: uno stacco la separa
   dall'ultima voce di testo. */
#main-menu > li[class*="wpml-ls-first-item"],
#menu-footer-mobile-menu > li[class*="wpml-ls-first-item"] {
	margin-top: 12px;
}

/* Le bandierine erano 18 x 12: al limite del riconoscibile. */
#main-menu img.wpml-ls-flag,
#menu-footer-mobile-menu img.wpml-ls-flag,
#primary-menu ul.sub-menu img.wpml-ls-flag,
.navigation-primary ul.sub-menu img.wpml-ls-flag {
	width: 26px;
	height: auto;
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, .12);
	transition: transform .14s ease, box-shadow .14s ease;
}

#main-menu li[class*="wpml-ls-item"] > a:hover img.wpml-ls-flag,
#menu-footer-mobile-menu li[class*="wpml-ls-item"] > a:hover img.wpml-ls-flag,
#primary-menu ul.sub-menu a:hover img.wpml-ls-flag {
	transform: translateY(-2px);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .28);
}

/* --------------------------------------------------------------------------
   18.9 IL FOOTER SU TELEFONO: IL FILO SEGUE IL TESTO
   Incolonnato, il footer centra tutto — ma il filo sotto i titoli resta
   ancorato a sinistra e finisce spostato rispetto alla parola che sottolinea.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 991px) {

	#ftc_footer-1 .widgettitle,
	#ftc_footer-1 .wpb_text_column p:first-child strong {
		display: block;
		text-align: center;
	}

	#ftc_footer-1 .widgettitle::after,
	#ftc_footer-1 .wpb_text_column p:first-child strong::after {
		left: 50%;
		transform: translateX(-50%);
	}

	/* I tre bottoni social erano allineati a sinistra dentro una colonna
	   centrata. */
	#ftc_footer-1 #mega_social_icons,
	#ftc_footer-1 #mega_social_icons p {
		justify-content: center;
		width: 100%;
	}

	/* Le bandiere: una riga sola, al centro, staccata dalle voci del menu. */
	#main-menu > li[class*="wpml-ls-item"],
	#menu-footer-mobile-menu > li[class*="wpml-ls-item"] {
		margin-top: 0;
	}

	#menu-footer-mobile-menu,
	#ftc_footer-1 .menu-footer-mobile-menu-container {
		text-align: center;
	}

	#menu-footer-mobile-menu > li[class*="wpml-ls-first-item"] {
		margin-left: 0;
	}
}

/* ==========================================================================
   20. LE PAGINE DI CONTENUTO
   Venti pagine, tre tipi: racconto (chi siamo, il sommacco, i «land»,
   capperi, carrube, olio), elenco (pubblicazioni, tesi, brevetti, servizi…)
   e modulo (contatti, richiesta certificazione).
   ⚠️ Le pagine ELENCO usano lo stesso impianto del blog (`.blogs
   article.post-wrapper`) e sono già coperte dai fogli `blog.css` e
   `blog-schede.css`: qui non si toccano, o si finisce a litigare con loro.
   ========================================================================== */

/* --------------------------------------------------------------------------
   20.1 IL TESTO, SU TUTTE
   Il tema giustifica il corpo delle pagine. Su righe lunghe il giustificato
   distribuisce lo spazio in modo diseguale e apre colonne bianche verticali
   dentro il testo — su «Chi siamo» si vedono a occhio nudo.
   -------------------------------------------------------------------------- */
body.page:not(.woocommerce-page) .wpb_text_column p,
body.page:not(.woocommerce-page) .wpb_text_column li,
body.page:not(.woocommerce-page) .wpb_wrapper > p {
	text-align: left;
	font-size: 16px;
	line-height: 1.7;
	color: #4A423A;
}

body.page:not(.woocommerce-page) .wpb_text_column p {
	margin: 0 0 14px;
}

/* Una misura leggibile: oltre i 75 caratteri per riga l'occhio perde il capo. */
body.page:not(.woocommerce-page) .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
	max-width: 74ch;
}

/* --------------------------------------------------------------------------
   20.2 I TITOLI
   Roboto Slab a corpo grande con le iniziali maiuscole: è il carattere che
   stiamo togliendo da tutto il resto del sito.
   -------------------------------------------------------------------------- */
body.page:not(.woocommerce-page) .wpb_wrapper h1,
body.page:not(.woocommerce-page) .wpb_wrapper h2,
body.page:not(.woocommerce-page) .wpb_wrapper h3,
body.page:not(.woocommerce-page) .vc_custom_heading {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	letter-spacing: -.018em;
	line-height: 1.18;
	text-transform: none;
}

body.page:not(.woocommerce-page) .wpb_wrapper h2 {
	font-size: clamp(25px, 3.2vw, 34px);
	margin-bottom: 14px;
}

body.page:not(.woocommerce-page) .wpb_wrapper h3 {
	font-size: 20px;
	margin-bottom: 10px;
}

/* --------------------------------------------------------------------------
   20.3 LE PAGINE RACCONTO
   Testo e fotografia affiancati. Le immagini erano a spigolo vivo mentre
   tutto il resto del sito ha ormai gli angoli morbidi.
   -------------------------------------------------------------------------- */
body.page:not(.woocommerce-page) .wpb_single_image img,
body.page:not(.woocommerce-page) .vc_single_image-wrapper img {
	border-radius: 14px;
}

/* Il bordo grigio che il costruttore mette attorno alle immagini. */
body.page:not(.woocommerce-page) .vc_box_border_grey {
	border: 0;
	padding: 0;
}

/* Le due colonne di una riga racconto partono dalla stessa altezza. */
body.page:not(.woocommerce-page) .vc_row.wpb_row:not(.ftc-row-wide) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

body.page:not(.woocommerce-page) .vc_row.wpb_row:not(.ftc-row-wide)::before,
body.page:not(.woocommerce-page) .vc_row.wpb_row:not(.ftc-row-wide)::after {
	display: none;   /* ⚠️ il clearfix diventerebbe una casella nella riga */
}

/* --------------------------------------------------------------------------
   20.4 I MODULI
   I campi erano rettangoli nudi diversi da quelli del checkout e
   dell'accesso, e il pulsante d'invio nero — l'unico nero della pagina.
   -------------------------------------------------------------------------- */
.wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}

.wpcf7-form input.wpcf7-text,
.wpcf7-form input.wpcf7-email,
.wpcf7-form input.wpcf7-tel,
.wpcf7-form textarea.wpcf7-textarea,
.wpcf7-form select.wpcf7-select {
	width: 100%;
	min-height: 46px;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #ddd5c9;
	border-radius: 8px;
	font-family: inherit;
	font-size: 15px;
	color: #1B1815;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.wpcf7-form textarea.wpcf7-textarea {
	min-height: 118px;
	line-height: 1.55;
	resize: vertical;
}

.wpcf7-form input.wpcf7-text:focus,
.wpcf7-form input.wpcf7-email:focus,
.wpcf7-form textarea.wpcf7-textarea:focus {
	border-color: #BE1E2D;
	box-shadow: 0 0 0 3px rgba(190, 30, 45, .12);
	outline: none;
}

/* L'etichetta è un nodo di testo dentro il paragrafo: le si dà peso da qui. */
.wpcf7-form #responsive-form .form-row p,
.wpcf7-form .column-half > p,
.wpcf7-form .column-full > p {
	margin: 0 0 16px;
	font-size: 13.5px;
	font-weight: 600;
	color: #3F3830;
	line-height: 1.4;
}

.wpcf7-form #responsive-form .form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 18px;
}

.wpcf7-form #responsive-form .column-full {
	grid-column: 1 / -1;
}

/* ⚠️ Le colonne del modulo portano una larghezza propria dal tema: dentro la
   griglia restavano larghe 138 px e i campi ci stavano dentro, lasciando
   metà colonna vuota. Nella griglia la larghezza la decide la colonna. */
.wpcf7-form #responsive-form .column-half,
.wpcf7-form #responsive-form .column-full {
	width: auto;
	max-width: none;
	float: none;
	padding: 0;
	margin: 0;
}

/* ⚠️⚠️ Il raggio non entrava, e non era la regola che sembrava. Il tema ne ha
   DUE su questo pulsante:
       .wpcf7 input[type^="submit"]                  → 5px   (0,2,1)
       .single-contact2 .wpcf7 input[type^="submit"] → 0px   (0,3,1)
   e la seconda vince su tutto. **Un selettore d'attributo pesa come una
   classe**: `[type^="submit"]` non è un elemento in più, è una classe in più.
   Contarlo come elemento è l'errore che mi ha fatto perdere tre giri. */
body .single-contact2 .wpcf7 input[type^="submit"],
body .wpcf7 input[type^="submit"],
.wpcf7-form input[type="submit"],
form.wpcf7-form input[type="submit"] {
	min-height: 50px;
	padding: 0 30px;
	background: #BE1E2D;
	border: 0;
	border-radius: 10px;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
	cursor: pointer;
	transition: background-color .16s ease;
}

body .single-contact2 .wpcf7 input[type^="submit"]:hover,
body .wpcf7 input[type^="submit"]:hover,
.wpcf7-form input[type="submit"]:hover {
	background: #9B1824;
}

/* Il consenso alla privacy: una riga di servizio, non un paragrafo di pari
   peso con le domande del modulo. */
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label,
.wpcf7-form .wpcf7-acceptance {
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.55;
	color: #6F655C;
}

.wpcf7-form .wpcf7-acceptance a {
	color: #BE1E2D;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media only screen and (max-width: 767px) {
	.wpcf7-form #responsive-form .form-row {
		grid-template-columns: 1fr;
	}

	body.page:not(.woocommerce-page) .vc_row.wpb_row:not(.ftc-row-wide) {
		display: block;
	}
}

/* ==========================================================================
   21. DUE PAGINE RIDISEGNATE DAVVERO
   Il blocco 20 ha sistemato la tipografia di tutte le pagine, ma non ne ha
   cambiata la forma: a colpo d'occhio sembravano le stesse di prima. Qui due
   pagine cambiano impianto, senza toccare una parola del contenuto.
   ========================================================================== */

/* --------------------------------------------------------------------------
   21.1 «CHI SIAMO» DIVENTA UNA LINEA DEL TEMPO
   I quattro paragrafi della prima colonna sono già in ordine cronologico —
   «Nel 2015…», «Nel 2019…», «Sempre nel 2019…», «Nel novembre del 2020…» —
   ma scritti di seguito come un testo qualsiasi. Sono quattro `<p>` fratelli:
   basta dare loro un filo e un punto per farli leggere come una storia.
   Le date restano nel testo dove sono: non se ne inventa nessuna.

   ⚠️⚠️ L'aggancio NON può essere `.vc_row:first-of-type`: le righe del
   costruttore sono annidate e ognuna è «la prima» dentro il proprio genitore,
   così i tondini erano finiti anche su Mission & Vision E SULL'INDIRIZZO NEL
   FOOTER. La differenza vera sta un livello più su: la colonna della storia è
   un `.vc_column-inner` NUDO, quella di Mission porta una classe generata
   `vc_custom_…`, e il footer non ha affatto `.vc_column-inner`.
   ⚠️ Non bastava: restava «La Nostra coltivazione», che è pure lei in una
   colonna nuda. Quella però comincia con un `h1`, la storia con due `h2` —
   `:has(> h2:first-child)` separa le due senza scrivere numeri di pagina.
   -------------------------------------------------------------------------- */
body.page-id-11371 .vc_column-inner:not([class*="vc_custom_"]) > .wpb_wrapper > .wpb_text_column > .wpb_wrapper:has(> h2:first-child) > p {
	position: relative;
	margin: 0 0 0 6px;
	padding: 0 0 22px 28px;
	border-left: 2px solid #ECE7DD;
}

body.page-id-11371 .vc_column-inner:not([class*="vc_custom_"]) > .wpb_wrapper > .wpb_text_column > .wpb_wrapper:has(> h2:first-child) > p:last-child {
	border-left-color: transparent;
	padding-bottom: 0;
}

body.page-id-11371 .vc_column-inner:not([class*="vc_custom_"]) > .wpb_wrapper > .wpb_text_column > .wpb_wrapper:has(> h2:first-child) > p::before {
	content: "";
	position: absolute;
	left: -7px;
	top: 9px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #BE1E2D;
	box-shadow: 0 0 0 4px #FFFBEF;
}

body.page-id-11371 .vc_column-inner:not([class*="vc_custom_"]) > .wpb_wrapper > .wpb_text_column > .wpb_wrapper:has(> h2:first-child) > h2 {
	margin-bottom: 6px;
}

body.page-id-11371 .vc_column-inner:not([class*="vc_custom_"]) > .wpb_wrapper > .wpb_text_column > .wpb_wrapper:has(> h2:first-child) > h2 + h2 {
	margin-bottom: 26px;
}

/* --------------------------------------------------------------------------
   21.2 «SERVIZI»: TRE SCHEDE INVECE DI TRE ELENCHI IN FILA
   Ogni servizio è un `div.text_service` col titolo e un elenco puntato di
   cosa comprende — contenuto che c'è già e che non si vedeva, perché i tre
   blocchi erano incolonnati senza forma.
   -------------------------------------------------------------------------- */
body.page-id-813 .text_service {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 26px 26px 24px;
	background: #fff;
	border: 1px solid #ECE7DD;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .05), 0 6px 18px -14px rgba(60, 40, 25, .26);
	transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

body.page-id-813 .text_service:hover {
	border-color: #E3C9CC;
	box-shadow: 0 6px 22px rgba(60, 45, 30, .1);
	transform: translateY(-3px);
}

body.page-id-813 .text_service h3 {
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid #F0EBE2;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-transform: none;
	color: #1B1815;
}

body.page-id-813 .text_service ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ⚠️⚠️ NIENTE GRIGLIA NÉ FLEX DENTRO LE VOCI.
   Prima avevo fatto di ogni `<li>` una griglia `16px 1fr` per allineare il
   pallino. La casella del testo è collassata sulla parola più lunga e ogni
   PAROLA finiva su una riga sua — «Controllo / punti / critici / del /
   processo» — con la scheda alta 1.800 px. Il rientro si fa con il
   riempimento e il pallino si posiziona: non c'è niente che possa collassare. */
body.page-id-813 .text_service li {
	display: block;
	position: relative;
	margin: 0 0 10px;
	padding: 0 0 0 20px;
	font-size: 14.5px;
	line-height: 1.5;
	color: #4A423A;
	text-align: left;
}

body.page-id-813 .text_service li:last-child {
	margin-bottom: 0;
}

body.page-id-813 .text_service li::before {
	content: "";
	position: absolute;
	left: 3px;
	top: 8px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #BE1E2D;
}

/* ==========================================================================
   22. LE VOCI DEL MENU SI TOCCAVANO
   ⚠️⚠️ QUESTA REGOLA NON È A CASA SUA. L'intestazione la possiede un'altra
   sessione, che la disegna in `assets/intestazione.css`. La metto qui perché
   `negozio.css` viene caricato dopo e quindi vince, ma **il posto giusto è
   quel file**: se un giorno le due sessioni si coordinano, va spostata là.

   Il difetto: `ul.kx-nav` è un contenitore flessibile senza `gap`, e ogni
   voce ha soltanto 7 px di riempimento interno. Le caselle risultano
   attaccate — 258+52=310, 310+91=401 — e siccome la voce attiva ha lo sfondo
   rosso pieno con gli angoli a 8 px, al passaggio del mouse i riquadri
   colorati si toccano bordo a bordo e sembrano un blocco solo.
   Sei pixel di stacco bastano: le voci restano vicine, i riquadri no.
   ========================================================================== */
#kx-testata ul.kx-nav {
	gap: 6px;
}

/* Il riquadro colorato ha bisogno di un po' più di respiro dentro di sé, o a
   angoli arrotondati la parola tocca il bordo. */
#kx-testata ul.kx-nav > li > a {
	padding-left: 10px;
	padding-right: 10px;
}

/* ==========================================================================
   23. LE SCHEDE DEGLI ARTICOLI: VIA LA DATA, PULSANTE INTERO
   ⚠️⚠️ ANCHE QUESTE NON SONO A CASA MIA. Le schede `.blogs article.post-wrapper`
   le disegna l'altra sessione in `assets/blog-schede.css`. È il terzo
   scavalcamento sulla stessa componente: prima la data, poi il ritaglio, ora
   tutti e due insieme. **Va deciso chi possiede il blog**, o queste due
   regole e quelle là continueranno a rincorrersi.
   ========================================================================== */

/* La data stampata SOPRA la fotografia. Il tema la nascondeva, `blog-schede.css`
   la rimette con `.blogs article.post-wrapper header.post-img .date-time`
   — quattro classi e due elementi, (0,4,2) — mentre la mia valeva (0,4,1).
   Nominando anche `body` si arriva a (0,4,3). */
body .blogs article.post-wrapper header.post-img .date-time,
body .blogs article.post-wrapper .date-time-left {
	display: none;
}

/* ⚠️ «Scopri di Più» usciva di 8 px dal fondo e veniva TAGLIATO: la scheda ha
   `overflow: hidden` (lo mettiamo in due) e il contenuto è più alto di lei.
   Il ritaglio serviva solo ad arrotondare l'angolo della fotografia: si sposta
   l'arrotondamento sulla fotografia e la scheda non taglia più niente.
   Stessa correzione già fatta sul «Vedi Anche» dell'articolo singolo. */
body .blogs article.post-wrapper {
	overflow: visible;
}

body .blogs article.post-wrapper header.post-img {
	border-radius: 14px 14px 0 0;
	overflow: hidden;
}

/* L'altezza la decide il contenuto, non un numero fisso. */
body .blogs article.post-wrapper .post-info {
	height: auto !important;
	padding-bottom: 20px;
}

/* ==========================================================================
   24. LE SOTTOPAGINE DELL'AREA CLIENTE
   Indirizzi, Metodi di pagamento, Dettagli account: il menu funziona, ma le
   pagine che apre erano rimaste indietro.
   ========================================================================== */

/* ⚠️⚠️ `.col-2` DENTRO `.col-1`, come al checkout. Anche qui WooCommerce
   annida le due colonne invece di affiancarle, e il tema dà alla seconda un
   rientro: le due schede degli indirizzi uscivano sfalsate di 35 px, una
   sotto l'altra invece che accanto. Ci vuole il discendente, non il figlio. */
.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after {
	display: none;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account .woocommerce-Addresses .col-1,
.woocommerce-account .woocommerce-Addresses .col-2 {
	width: 100%;
	max-width: none;
	float: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-Address {
	padding: 24px 26px;
	background: #fff;
	border: 1px solid #ECE7DD;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(60, 40, 25, .05), 0 6px 18px -14px rgba(60, 40, 25, .26);
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}

.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0;
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.01em;
	text-transform: none;
	color: #1B1815;
}

/* Il collegamento «Modifica» era un pulsante NERO grande quanto un comando
   principale: è un'azione di servizio dentro una scheda. */
.woocommerce-account .woocommerce-Address-title .edit {
	min-height: 34px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	background: transparent;
	border: 1px solid #DDD5C9;
	border-radius: 8px;
	color: #BE1E2D;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-account .woocommerce-Address-title .edit:hover {
	background: #FAF6EE;
	border-color: #BE1E2D;
}

.woocommerce-account .woocommerce-Address address {
	margin: 0;
	color: #6F655C;
	font-size: 15px;
	line-height: 1.6;
	font-style: normal;
}

/* Il riquadro squadrato attorno al contenuto: la scheda ce l'hanno i blocchi
   dentro, non il contenitore. */
.woocommerce-account .woocommerce-MyAccount-content {
	background: transparent;
	border: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h3 {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -.015em;
	text-transform: none;
	margin-bottom: 10px;
}

.woocommerce-account .woocommerce-MyAccount-content > p {
	color: #6F655C;
	margin-bottom: 22px;
}

@media only screen and (max-width: 767px) {
	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}
}

/* ⚠️ «Scopri di Più» sbordava ancora di 10 px: tolto il ritaglio, il pulsante
   usciva DALLA scheda invece che essere tagliato — il difetto cambiava forma,
   non spariva. La causa vera è che la scheda ha un'altezza assegnata e il
   contenuto è più alto. L'altezza la decide il contenuto. */
body .blogs article.post-wrapper,
body .blogs article.post-wrapper .post-info,
body .blogs .owl-item,
body .blogs .owl-stage {
	height: auto !important;
}


/* ==========================================================================
   18.10 IL PIEDE: GLI ALLINEAMENTI
   Misurato sul sito vivo con il pilota CDP a 1920, 1400, 1200, 992, 900, 768,
   600 e 390 px. Sei difetti veri, tutti dimostrati coi numeri.
   ========================================================================== */

/* --------------------------------------------------------------------------
   18.10 IL PIEDE: RIMETTERE IN RIGA QUEL CHE ERA FUORI RIGA
   Misurato sul sito vivo a 1400 px: «SEDE LEGALE» cominciava 128 px sotto
   «MENU» e «ARTICOLI RECENTI», i tre bottoni social 10 px a destra
   dell'indirizzo, il marchio 12 px a destra del testo che gli sta sotto, il
   codice QR centrato nella sua colonna mentre tutto il resto è a sinistra, e
   la striscia del copyright rientrata di 15 px per lato rispetto alle colonne.
   -------------------------------------------------------------------------- */

/* 1. IL MARCHIO ESCE DALLA PRIMA COLONNA.
   Finché il logo sta DENTRO la colonna dell'indirizzo spinge «SEDE LEGALE»
   124 px più in basso, e la fila dei titoli sottolineati si spezza: due in
   cima, uno a metà colonna. Staccato e messo sopra la griglia, le quattro
   colonne partono tutte dalla stessa riga. */
@media only screen and (min-width: 768px) {

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		padding-top: 148px !important;
	}

	#ftc_footer-1 > div.vc_row:first-of-type > .wpb_column:first-child {
		position: relative;
	}

	#ftc_footer-1 > div.vc_row:first-of-type .wpb_column:first-child .wpb_single_image {
		position: absolute;
		top: -112px;
		/* ⚠️ Il PNG del marchio ha 10 px di trasparente a sinistra su 80 di
		   larghezza: a 96 px di resa diventano 12. Senza compenso il cerchio
		   esce 12 px più a destra dell'indirizzo. `left` parte dal bordo
		   della colonna, che ha 15 px di padding: 15 - 12 = 3. */
		left: 3px;
		width: 96px;
		margin: 0;
	}
}

/* 2. LE TRE ETICHETTE PARTONO DALLA STESSA QUOTA.
   «MENU» e «ARTICOLI RECENTI» sono `h2`, «SEDE LEGALE» è uno `<strong>` in
   linea dentro un `<p>`: due elementi diversi con metriche diverse, e i fili
   sottolineati non cadevano alla stessa altezza nemmeno partendo dallo
   stesso punto. Si pareggiano le due scatole. */
#ftc_footer-1 .wpb_text_column p:first-child {
	margin-top: 0;
	line-height: 1;
}

#ftc_footer-1 .wpb_text_column p:first-child strong {
	display: block;
	line-height: 17px;
}

/* ⚠️⚠️ Il tema alza i titoli dei widget di 5 px con una TRASFORMAZIONE —
   `h2.widgettitle { transform: translateY(-5px); display: inline-block }` —
   e una trasformazione non compare fra i margini: cercandola lì non si trova.
   Sommata all'`inline-block`, che appoggia il titolo su una riga di testo e
   quindi 4 px più in basso, dava 1 px di scarto sul computer e 5 sul tablet,
   nei due versi opposti. Azzerata la trasformazione e reso blocco, il titolo
   parte esattamente dal bordo della colonna come «SEDE LEGALE». */
#ftc_footer-1 .widgettitle {
	display: block;
	transform: none;
}

/* 3. I TRE BOTTONI SOCIAL, A FILO DELL'INDIRIZZO.
   ⚠️⚠️ Il widget stampa `<p>` e ci mette dentro dei `<div>`: il browser
   CHIUDE il paragrafo prima del primo `<div>` e ne apre un secondo alla fine.
   Restano così due `<p>` vuoti larghi zero, fratelli dei bottoni dentro il
   contenitore flex — e i 10 px di `gap` fra il primo `<p>` e il primo
   bottone spostavano tutta la fila a destra. Non era un margine: era un
   paragrafo fantasma. */
#ftc_footer-1 #mega_social_icons > p {
	display: none !important;
}

/* 4. IL CODICE QR CHIUDE LA GRIGLIA A DESTRA.
   Era `vc_align_center`: il suo bordo sinistro non stava sulla colonna
   (55 px di scarto) e il destro non arrivava al bordo della griglia (25 px).
   Allineato a destra, l'inchiostro del piede va da 115 a 1285 — gli stessi
   115 px di margine a sinistra e a destra della pagina. */
@media only screen and (min-width: 768px) {
	#ftc_footer-1 > div.vc_row:first-of-type > .wpb_column:last-child .wpb_single_image {
		text-align: right;
	}
}

/* 5. LE COLONNE NON SI IMPILANO PIÙ A SCALA.
   Fra 480 e 991 px le quattro colonne sono `float:left` al 50%: la terza non
   passava sotto la prima perché la seconda era più bassa, e finiva sotto la
   SECONDA lasciando la corsia di sinistra vuota per oltre 300 px. La quarta
   cadeva ancora più giù. Con una griglia vera ogni riga si chiude da sé. */
@media only screen and (max-width: 991px) {

	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		display: grid;
		grid-template-columns: 1fr 1fr;
		row-gap: 34px;
		align-items: start;
	}

	/* ⚠️⚠️ Il clearfix di Bootstrap (`.vc_row:before/:after { content:" ";
	   display:table }`) in una griglia NON è più invisibile: le pseudo
	   diventano due CELLE a tutti gli effetti. La prima si prendeva la casella
	   in alto a sinistra e spingeva l'indirizzo nella colonna di destra, il
	   menu sotto e il QR una riga più giù ancora. In `flex` restavano larghe
	   zero e non davano fastidio: è il passaggio a `grid` che le sveglia. */
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type::before,
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type::after {
		display: none;
	}

	#ftc_footer-1 > div.vc_row:first-of-type > .wpb_column {
		float: none;
		width: auto;
		margin-bottom: 0;
	}
}

@media only screen and (max-width: 575px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"]:first-of-type {
		grid-template-columns: 1fr;
	}
}

/* Sotto i 768 px il codice QR è nascosto (chi guarda dal telefono non
   inquadra il proprio schermo): la colonna resta però come cella vuota della
   griglia. Si toglie tutta. */
@media only screen and (max-width: 767px) {
	#ftc_footer-1 > div.vc_row:first-of-type > .wpb_column:last-child {
		display: none;
	}
}

/* 6. FRA 768 E 991 px IL PIEDE CENTRAVA SOLO META' DELLE COSE.
   Il blocco che centra titoli e bottoni partiva da 991 px, ma indirizzo,
   articoli e marchio restavano a sinistra: dentro la stessa colonna
   convivevano quattro allineamenti diversi. Lì ci sono ancora due colonne
   affiancate, quindi si tiene tutto a sinistra come sul computer; il centrato
   comincia a 767, dove le colonne sono davvero incolonnate. */
@media only screen and (min-width: 768px) and (max-width: 991px) {

	#ftc_footer-1 .widgettitle,
	#ftc_footer-1 .wpb_text_column p:first-child strong {
		text-align: left;
	}

	#ftc_footer-1 .widgettitle::after,
	#ftc_footer-1 .wpb_text_column p:first-child strong::after {
		left: 0;
		transform: none;
	}

	#ftc_footer-1 #mega_social_icons,
	#ftc_footer-1 #mega_social_icons p {
		justify-content: flex-start;
	}

	#menu-footer-mobile-menu,
	#ftc_footer-1 .menu-footer-mobile-menu-container {
		text-align: left;
	}
}

/* Sul telefono, dove tutto è centrato, ci vanno anche il marchio e
   l'indirizzo: erano le due cose rimaste a sinistra dentro una colonna
   centrata — l'etichetta «SEDE LEGALE» al centro e le righe della sede
   contro il bordo sinistro. */
@media only screen and (max-width: 767px) {

	#ftc_footer-1 > div.vc_row:first-of-type .wpb_single_image,
	#ftc_footer-1 > div.vc_row:first-of-type .wpb_single_image .vc_figure {
		text-align: center;
	}

	#ftc_footer-1 > div.vc_row:first-of-type .wpb_text_column p {
		text-align: center;
	}
}

/* 7. LA STRISCIA DEL COPYRIGHT SULLA STESSA GABBIA DELLE COLONNE.
   Aveva `max-width: 1170px` E 15 px di padding per lato: il testo cadeva
   quindi a 130 e 1270, mentre le colonne sopra stanno a 115 e 1285. La
   gabbia è 1170 di CONTENUTO, non di scatola. */
/* ⚠️ La colonna della striscia porta 15 px di padding che la regola
   `padding: 0` della 17.2b non riesce a togliere: la gabbia della firma
   partiva quindi 15 px più dentro di quella delle colonne. */
#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] > .wpb_column {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column > .wpb_wrapper {
	max-width: 1200px;
}

@media only screen and (max-width: 1199px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column > .wpb_wrapper {
		max-width: 970px;
	}
}

@media only screen and (max-width: 991px) {
	#ftc_footer-1 > div.vc_row[class*="vc_custom_"] ~ div.vc_row[class*="vc_custom_"] .wpb_text_column > .wpb_wrapper {
		max-width: none;
	}
}

/* 8. LE BANDIERE DELLE LINGUE ERANO FUORI RIGA IN DUE MODI.
   a) ⚠️⚠️ Lo stacco che le separa da «Contatti» era dato SOLO ALLA PRIMA
      (`li[wpml-ls-first-item] { margin-top: 12px }`). Le bandiere sono
      `inline-block` allineate al centro: 12 px di margine in cima a una sola
      di loro la spingono giù di 6 rispetto alle altre tre. Lo stacco va dato
      a TUTTE, o non è uno stacco: è uno scalino.
   b) L'`<a>` ha `padding: 7px 6px` per allargare il bersaglio del dito, e
      quei 6 px rientravano l'intera fila rispetto alle voci del menu sopra:
      «Home» a 451, la prima bandiera a 457. Si recuperano con un margine
      negativo sulla prima, che sposta la fila senza toccare le distanze fra
      una bandiera e l'altra. */
@media only screen and (min-width: 992px) {

	#main-menu > li[class*="wpml-ls-item"],
	#menu-footer-mobile-menu > li[class*="wpml-ls-item"] {
		margin-top: 12px;
		vertical-align: top;
	}

	#menu-footer-mobile-menu > li[class*="wpml-ls-first-item"] {
		margin-left: -6px;
	}
}

/* ==========================================================================
   21. IL GIRO RESPONSIVE (29/8)
   Collaudo con browser vero su 31 pagine × 390/820/1400 px più un campione di
   prodotti e articoli. Qui le correzioni ai difetti confermati.
   ========================================================================== */

/* --------------------------------------------------------------------------
   21.1 IL PULSANTE DELLA RICERCA ERA 18 × 24 px
   Sta dentro un campo alto 50, ma è un'icona da 18 px con `padding: 0`
   inchiodata a `top: 15px; right: 15px`: il bersaglio da toccare è meno di un
   quarto di quello raccomandato (44 px). Si allarga il pulsante a tutta
   l'altezza del campo lasciando l'icona dov'è, e si tiene il testo digitato
   fuori dalla sua area.
   Compare su brevetti, news, progetti finanziati, pubblicazioni, ricette e
   tesi di laurea — cioè su tutte le pagine con la colonna laterale.
   -------------------------------------------------------------------------- */
.widget-container.widget_search .search-form .search-submit {
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	width: 50px;
	/* ⚠️ `height: auto` con `top` e `bottom` a zero NON allunga questo
	   pulsante: il tema gli fissa un'altezza e l'automatica ricade sul
	   contenuto, cioè i 18 px dell'icona. Si dà l'altezza piena del campo. */
	height: 100%;
	min-height: 44px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	cursor: pointer;
}

.widget-container.widget_search .search-form .search-submit:hover .icon-search {
	color: #be1e2d;
}

.widget-container.widget_search .search-form .search-field {
	padding-right: 50px;
}

/* --------------------------------------------------------------------------
   21.2 LA COLONNA LATERALE A 820 px
   `vc_col-sm-3` resta al 25% da 768 px in su: su un tablet in verticale sono
   205 px lordi, che diventano 92 per il testo delle sottocategorie. «LIQUORI
   POLACCHI E VODKA AL SOMMACCO» ci sta in quattro righe da due parole.
   Sotto i 768 il tema già incolonna: si estende lo stesso comportamento fino a
   991, dove le due colonne affiancate non hanno più spazio per stare accanto.
   ⚠️ `:has()` limita la regola alle righe che contengono davvero una colonna
   di widget: le altre `vc_col-sm-3` del sito (prodotti, servizi) non si
   toccano. Dove `:has()` non è sostenuto la regola viene semplicemente
   ignorata e resta il comportamento di oggi.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 768px) and (max-width: 991px) {
	.vc_row:has(> .wpb_column > .wpb_wrapper > .wpb_widgetised_column) > .wpb_column {
		width: 100%;
		float: none;
	}
}

/* --------------------------------------------------------------------------
   21.3 I TITOLI SCRITTI NEL CORPO DELLA PAGINA
   Il costruttore li lascia alla dimensione del computer a ogni larghezza: su
   390 px un `h2` da 42 px diventa tre righe alte 173 px — mezza schermata per
   un titolo solo. Stessa cosa per gli `h1` da 36 px delle pagine «land».
   ⚠️ Si scala solo dentro `.wpb_text_column`: `product_title` è la stessa
   classe dei titoli dei widget nella colonna laterale e dei nomi dei prodotti
   nella vetrina, che hanno già una scala loro.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 768px) and (max-width: 991px) {
	.wpb_text_column h1,
	.wpb_text_column h1.product_title { font-size: 32px; line-height: 1.2; }
	.wpb_text_column h2 { font-size: 34px; line-height: 1.2; }
}

@media only screen and (max-width: 767px) {
	.wpb_text_column h1,
	.wpb_text_column h1.product_title { font-size: 27px; line-height: 1.22; }
	.wpb_text_column h3 { font-size: 22px; line-height: 1.3; }

	/* ⚠️⚠️ Su «Il Sommacco» il titolo restava a 42 px anche a 390. La causa non
	   è un foglio del tema ma un blocco `<style>` DENTRO LA PAGINA:
	       @media screen and (max-width: 575px) {
	         .text-button-h18 h2 { font-size: 42px !important }
	       }
	   cioè un corpo per il telefono più GRANDE di quello per il computer —
	   il classico valore responsive messo a caso. Sta in linea e ha
	   l'`!important`: per batterlo serve una specificità più alta, non un
	   foglio caricato dopo. Il valore è quello che il sito usa già altrove. */
	body.page .wpb_wrapper h2,
	body.page .wpb_text_column h2,
	body.page .wpb_text_column h2.h2 {
		font-size: clamp(25px, 3.2vw, 30px) !important;
		line-height: 1.22;
	}

	/* Il titolo della fascia in cima: 36 px stanno larghi solo ai titoli
	   corti, e «Olio Extra Vergine di Oliva al Sommacco» non è corto.
	   ⚠️ Anche qui il 36 px arriva da un `<style>` DENTRO LA PAGINA, con
	   l'`!important` e senza media query: `.ftc-breadcrumb-title h1 {
	   font-size: 36px !important }`. La specificità di questa regola è già
	   più alta, ma contro un `!important` serve un `!important`. */
	.ftc-breadcrumb .ftc-breadcrumb-title h1,
	.ftc-breadcrumb h1.product_title {
		font-size: 27px !important;
		line-height: 1.22;
	}
}

/* --------------------------------------------------------------------------
   21.4 «SCOPRI DI PIÙ» ERA ALTO 20 px
   È un collegamento in linea senza margini interni: un bersaglio da 103 × 20
   sotto la foto di ogni scheda. Si lascia identico all'occhio e gli si dà
   l'altezza di un dito.
   -------------------------------------------------------------------------- */
/* ⚠️ `infobox.css` del tema porta `.mega_info_box .mega-info-btn { padding: 0 }`
   ed è caricato DOPO questo foglio: a parità di specificità vinceva lui e il
   margine interno non compariva. */
.mega-info-footer .mega-info-btn,
a.mega-info-btn {
	display: inline-block !important;
	padding: 11px 16px !important;
}

/* --------------------------------------------------------------------------
   21.5 I DUE PULSANTI DELL'APERTURA SI SOVRAPPONGONO SUL TELEFONO
   Misurato: «CHI SIAMO» e «I NOSTRI PRODOTTI» si accavallano di 12 px a 414,
   20 a 390, 31 a 360 e 45 a 320 — e a 320 il bianco del secondo copre la fine
   della scritta del primo. Erano anche alti 22 px, la metà del minimo di 44
   raccomandato per il tocco.
   ⚠️⚠️ Lo slider NON posiziona gli strati con `left`: usa una `transform`.
   Scrivere `left: 50%` non li sposta al centro, li sposta di mezza larghezza
   IN PIÙ rispetto a dove già stanno — provato, e i pulsanti finivano fuori
   schermo a sinistra. Si lascia quindi fare a lui la collocazione e si agisce
   solo su misura e margine, che si sommano alla sua trasformazione.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {

	#slider-43-slide-134-layer-3,
	#slider-43-slide-134-layer-4 {
		height: auto !important;
		min-height: 40px !important;
		padding: 0 12px !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		font-size: 12.5px !important;
		line-height: 1.2 !important;
		white-space: nowrap;
		box-sizing: border-box;
	}

	#slider-43-slide-134-layer-3 { width: 108px !important; }

	/* Lo stacco fra i due: a 320 px erano ancora sovrapposti anche dopo averli
	   stretti. ⚠️ 30 px bastavano nella prova iniettata a pagina già fatta, ma
	   dal foglio vero — applicato PRIMA che lo slider calcoli le sue posizioni
	   — a 320 px restavano 3 px di sovrapposizione: una prova iniettata non
	   vale per quello che dipende dal JavaScript. Misurato dal vivo, uno per volta: 46. */
	#slider-43-slide-134-layer-4 {
		width: 152px !important;
		margin-left: 46px !important;
	}
}

/* --------------------------------------------------------------------------
   21.6 LA FINESTRA «SPEDIZIONE GRATUITA» SUL TELEFONO
   Compare dopo qualche secondo su ogni pagina, quindi i rilevatori che
   misurano subito non la vedono: si trova solo guardando gli scatti.
   A 390 px il riquadro è largo 293 (`max-width: 75%`) con 28 px di margine
   interno per lato, e il titolo resta a 36 px: alla scritta restano 231 px e
   diventa **sette righe** da una o due parole, alte in tutto 238 px.
   Si allarga il riquadro e si scala il titolo: la frase sta in tre righe.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {

	.pum-container.pum-responsive {
		max-width: 92% !important;
		padding: 24px 18px !important;
	}

	.pum-container .pum-content h1,
	.pum-container .pum-content h2 {
		font-size: 22px !important;
		line-height: 1.25 !important;
	}

	.pum-container .pum-content p,
	.pum-container .pum-content strong {
		font-size: 15px !important;
	}

	/* Il pulsante andava a filo del bordo del riquadro. */
	.pum-container .maw_advanced_btn {
		display: inline-block;
		max-width: 100%;
	}
}

/* --------------------------------------------------------------------------
   21.8 IL CONSENSO NEI MODULI ANDAVA A CAPO SOTTO LA CASELLA
   `<label><input type=checkbox> testo…</label>` con la label `inline-block`:
   la prima riga comincia dopo la casella, la seconda e la terza tornano al
   bordo sinistro e finiscono SOTTO la casella. Con una riga flex il testo
   resta in colonna sua, incolonnato con se stesso.
   Vale per «Dichiaro di aver preso visione…» su Contatti e su Richiesta
   certificazione.
   -------------------------------------------------------------------------- */
.wpcf7 .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.wpcf7 .wpcf7-list-item label input[type="checkbox"],
.wpcf7 .wpcf7-list-item label input[type="radio"] {
	flex: 0 0 auto;
	margin-top: 3px;
}

/* ==========================================================================
   25. CONDIVISIONE: LA X AL POSTO DELL'UCCELLINO
   ========================================================================== */

/* Il tema disegna le icone con FontAwesome 4, che e' fermo al 2016: dentro non
   c'e' la X, entrata solo con la versione 6. Non si puo' quindi cambiare il
   nome della classe e basta.
   Si spegne il glifo del carattere e si disegna la forma con una MASCHERA:
   `background-color: currentColor` fa prendere all'icona il colore del
   collegamento, passaggio del mouse compreso, senza doverlo ripetere qui.
   ⚠️ Il tracciato ufficiale di X ha DUE sotto-tracce: la seconda scava un buco
   e lascia il segno vuoto, a contorno. Va usata solo la prima. */
.ftc-social-sharing li.twitter > a > i.fa-twitter::before,
.social-sharing li.twitter > a > i.fa-twitter::before,
.text-social-share li.twitter > a > i.fa-twitter::before {
	content: "" !important;
}

.ftc-social-sharing li.twitter > a > i.fa-twitter,
.social-sharing li.twitter > a > i.fa-twitter,
.text-social-share li.twitter > a > i.fa-twitter {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.115em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%201227'%3E%3Cpath%20fill='black'%20d='M714.163%20519.284L1160.89%200H1055.03L667.137%20450.887L357.328%200H0L468.492%20681.821L0%201226.37H105.866L515.491%20750.218L842.672%201226.37H1200L714.163%20519.284Z'/%3E%3C/svg%3E") no-repeat center;
	        mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%201227'%3E%3Cpath%20fill='black'%20d='M714.163%20519.284L1160.89%200H1055.03L667.137%20450.887L357.328%200H0L468.492%20681.821L0%201226.37H105.866L515.491%20750.218L842.672%201226.37H1200L714.163%20519.284Z'/%3E%3C/svg%3E") no-repeat center;
	-webkit-mask-size: contain;
	        mask-size: contain;
}

/* ⚠️ Nell'articolo le icone stavano sulla LINEA DI BASE del testo, e la X non
   ci si posava come le altre: il glifo di un carattere ha sotto la linea la
   coda delle lettere, un riquadro con la maschera no, e restava 6px piu' su.
   Non si corregge con un numero magico: si toglie di mezzo la linea di base e
   si centrano tutte e tre nella pastiglia. Cosi' si e' sistemato anche il
   resto — la «f» e Pinterest erano fuori centro di un pixel per lo stesso
   motivo. (Nella scheda prodotto la riga e' gia' flessibile e non cambia.) */
.text-social-share ul.ftc-social-sharing li > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   26. IL WIDGET «CATEGORIE» DELLA BARRA LATERALE
   ========================================================================== */

/* ⚠️ Questo widget lo disegna `blog.css`, che si carica DOPO questo foglio:
   a parita' di peso vince quello. Per farsi sentire da qui serve un selettore
   piu' pesante, e la barra laterale lo offre gratis — `.ftc-sidebar` in mezzo
   porta il conto a (0,5,x) contro i (0,4,x) di la'.
   📌 La fisarmonica (`.kta-riga` + `.kta-apri` + `categorie.js`) e' gia' li',
   funziona e NON si tocca: qui si aggiunge solo cio' che manca. */

/* --------------------------------------------------------------------------
   26.1 VIA LE CASELLE DA SPUNTARE
   Di serie il tema disegna questo widget come un MODULO CON LE CASELLE, e le
   regole sono SEI (`organico/style.css`, righe 18214-18236 e 19141-19153):
     · `a:before`                  "\f096"  casella vuota
     · `a:hover:before`            "\f046"  casella spuntata
     · `li.current-cat > a`        "\f046"  con !important
     · `li.current-cat-parent > a` "\f046"  con !important
     · `li.cat-parent:after`       "\f067"  un «+» in alto a destra
     · `li.cat-parent:hover:after` "\f068"  un «-»
   Ne erano spente tre: quelle a riposo. MISURATO in produzione col puntatore
   posato davvero sopra le voci — dal codice il `:hover` non si accende — su
   «News» resta la casella spuntata, su «Ricette» la casella PIU' il meno.
   ⚠️ I pesi: la regola dell'hover e' (0,5,4) SENZA `!important`, quella della
   corrente ha `!important` ma pesa (0,3,3). Questa e' (0,5,5) con
   `!important` e le batte entrambe. Se qualcuno toglie `.ftc-sidebar` dal
   selettore il conto scende a (0,4,5) e la spunta al mouse TORNA.
   -------------------------------------------------------------------------- */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li a::before,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li a::after,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li a:hover::before,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li a:hover::after,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li::before,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li::after,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li:hover::before,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li:hover::after {
	content: none !important;
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
   26.2 LE FIGLIE A FILO DELLE MADRI
   Le sottocategorie erano rientrate di 21 px e appese a un filo verticale,
   scritte piu' piccole e piu' chiare. Adesso sono righe come le altre: stessa
   colonna, stesso corpo, stessa altezza. A dire chi dipende da chi ci pensa
   gia' la fisarmonica — se una voce e' li', e' perche' hai aperto la madre.
   ⚠️ Il rientro NON si toglie pesando di piu': `margin-left` e `padding-left`
   li mette `blog.css` con `!important` (perche' a sua volta doveva battere il
   tema). Contro un `!important` ci vuole un `!important`.
   -------------------------------------------------------------------------- */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul.children {
	margin: 0 !important;
	padding: 0 !important;
	border-left: 0 !important;
	list-style: none;
}

body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul.children > li,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories .children li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #f1eade;
}

/* le figlie prendono esattamente la riga delle madri */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul.children > li > a {
	display: block;
	padding: 10px 2px;
	font-size: 14.5px;
	line-height: 1.35;
	color: #3f3830;
}

/* ⚠️ Sotto l'ultima riga della scheda non deve restare una lineetta sospesa.
   La madre chiusa ce l'ha gia' tolta da `blog.css`; qui si copre il caso in
   cui l'ultima madre sia APERTA — allora la lineetta serve sotto la sua riga
   (a dividerla dalle figlie) e non sotto l'ultima figlia. */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories > ul > li:last-child ul.children > li:last-child {
	border-bottom: 0;
}

body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories > ul > li:last-child.kta-aperta > .kta-riga {
	border-bottom: 1px solid #f1eade;
}

/* --------------------------------------------------------------------------
   26.3 DOVE TI TROVI
   ⚠️ In produzione la categoria corrente e' solo in GRASSETTO, dello stesso
   colore di tutte le altre: a colpo d'occhio non si vede. Senza piu' rientro
   serve un segno, e una lineetta rossa nel margine della scheda vale a ogni
   livello.
   -------------------------------------------------------------------------- */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.current-cat > a,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.current-cat > .kta-riga > a {
	color: #BE1E2D !important;
	font-weight: 600;
}

body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.current-cat {
	position: relative;
}

/* ⚠️ Contro il `content: none !important` del blocco 26.1 vince solo un altro
   `!important`: qui la classe in piu' fa (0,6,2) contro (0,5,2). */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.current-cat::before {
	content: "" !important;
	position: absolute;
	left: -12px;
	top: 8px;
	bottom: 8px;
	width: 3px;
	border-radius: 2px;
	background: #BE1E2D;
}

/* --------------------------------------------------------------------------
   26.4 DUE COSE CHE IL TEMA SCRIVE E NON DOVREBBE
   -------------------------------------------------------------------------- */

/* `text-transform: capitalize`: «Tesi di Laurea» usciva «Tesi Di Laurea» */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li a {
	text-transform: none;
}

/* ⚠️ «LIQUORI POLACCHI E VODKA AL SOMMACCO» sta TUTTO MAIUSCOLO nel nome
   della categoria, non nel foglio di stile: in una colonna da 270 px prende
   due righe urlate. Qui si rimette in tono, ma e' un cerotto — il maiuscolo
   sta nel DATO. La cura e' rinominare la categoria dal pannello
   (Articoli › Categorie), e allora questa regola va tolta. */
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.cat-item-258 > a,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.cat-item-258 > .kta-riga > a {
	text-transform: lowercase;
}

body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.cat-item-258 > a::first-letter,
body.wpb-js-composer:not(.woocommerce-page) .ftc-sidebar .widget-container.widget_categories ul li.cat-item-258 > .kta-riga > a::first-letter {
	text-transform: uppercase;
}

/* ==========================================================================
   27. L'EROE DELLA PRIMA PAGINA
   ========================================================================== */

/* Slider Revolution non impagina: SCALA. Gli strati hanno coordinate fisse
   dentro una griglia (1240x815 da computer, 480x400 da telefono) e il resto
   e' una moltiplicazione. Da li' vengono tutti i difetti misurati:

     · i pulsanti alti 21,9 px sopra i 768 px (a 390 sono 40)
     · a 820 px i due pulsanti si SOVRAPPONGONO di 22 px e sembrano una
       barra sola col rosso tagliato
     · il testo a 12 px dal bordo sinistro a 820, e a 390 il secondo titolo
       largo 382 px dentro uno schermo di 390: quattro pixel per parte
     · 315 px di vuoto in fondo all'eroe a 1400 (il 39% dell'altezza), 277 a
       820 — il contenuto sta tutto nel terzo alto e sotto c'e' il nulla
     · niente si allinea al filo del sito: il titolo parte da 100 mentre il
       contenuto sotto parte da 115

   Non si correggono uno per uno: sono tutti la stessa causa. Qui gli strati
   escono dal posizionamento assoluto e tornano in flusso dentro una griglia,
   cosi' margini e stacchi si scrivono una volta e valgono a ogni larghezza.

   ⚠️ Serve `!important` quasi ovunque, e non e' pigrizia: Slider Revolution
   scrive gli stili IN LINEA sugli elementi e li riscrive a ogni
   ridimensionamento della finestra. Contro uno stile in linea, dal foglio si
   vince solo con `!important`.
   ⚠️ Quello che NON si puo' fare da qui: cambiare il testo, l'immagine o
   l'ordine degli strati. Quelli stanno nelle impostazioni dello slider. */

/* --------------------------------------------------------------------------
   27.1 L'ALTEZZA
   Il contenuto occupa 325 px; l'involucro ne prendeva 815. Qui l'altezza e'
   scelta, non ereditata dalla griglia dello slider.
   -------------------------------------------------------------------------- */
body.home #rev_slider_43_1_wrapper,
body.home #rev_slider_43_1_forcefullwidth,
body.home #rev_slider_43_1,
body.home #rev_slider_43_1 rs-slides,
body.home #rev_slider_43_1 rs-slide,
body.home #rev_slider_43_1 rs-sbg-px,
body.home #rev_slider_43_1 rs-sbg-wrap {
	height: 660px !important;
	min-height: 0 !important;
	max-height: none !important;
}

/* ⚠️ Il modulo sta 7 px PIU' A SINISTRA del resto della pagina: Slider
   Revolution lo allarga a tutto schermo con una sottrazione che tiene conto
   della barra di scorrimento, e quella mezza barra sposta tutto. Sono i 7 px
   per cui il titolo non si allineava mai al contenuto sotto. Si azzera lo
   spostamento e il filo torna uno solo. */
body.home #rev_slider_43_1,
body.home #rev_slider_43_1_forcefullwidth {
	left: 0 !important;
	right: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* la fotografia riempie sempre il riquadro, qualunque altezza abbia */
body.home #rev_slider_43_1 rs-sbg {
	width: 100% !important;
	height: 100% !important;
	background-size: cover !important;
	background-position: center center !important;
}

/* --------------------------------------------------------------------------
   27.2 GLI STRATI TORNANO IN FLUSSO
   `rs-slide` diventa la griglia; i tre involucri che Slider Revolution mette
   attorno a ogni strato (`rs-layer-wrap` › `rs-loop-wrap` › `rs-mask-wrap`)
   si smontano.
   ⚠️ Il rientro laterale non e' un numero fisso: `max(15px, (100% - 1170px)/2)`
   e' la stessa gabbia del resto del sito. A 1400 fa 115 px — esattamente dove
   comincia il contenuto sotto l'eroe — e sotto i 1200 si riduce ai 15 px dei
   margini di pagina, senza bisogno di scriverlo due volte.
   -------------------------------------------------------------------------- */
body.home #rev_slider_43_1 rs-slide {
	display: flex !important;
	flex-wrap: wrap;
	align-content: center;
	align-items: flex-start;
	/* stacco fra i due pulsanti quando stanno sulla stessa riga; da `gap` e
	   non da un margine, cosi' quando il secondo va a capo non resta
	   rientrato di 14 px */
	column-gap: 14px;
	row-gap: 0;
	box-sizing: border-box;
	padding: 40px max(15px, calc((100% - 1170px) / 2)) 40px;
	overflow: hidden;
}

body.home #rev_slider_43_1 rs-layer-wrap,
body.home #rev_slider_43_1 rs-loop-wrap,
body.home #rev_slider_43_1 rs-mask-wrap {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	transform: none !important;
	overflow: visible !important;
	opacity: 1 !important;
	/* ⚠️ I pulsanti sono `<a class="rs-layer">`, non `<rs-layer>`: la regola
	   sotto, scritta sul NOME dell'elemento, non li tocca. A tenerli fuori
	   posto era l'allineamento del testo ereditato da questi involucri —
	   sono in linea, e un elemento in linea lo posiziona il genitore. */
	text-align: left !important;
}

/* ⚠️ `rs-loop-wrap` e `rs-mask-wrap` non devono diventare celle della griglia:
   la cella e' `rs-layer-wrap`, loro stanno dentro. Con `display: contents`
   sparirebbero dal disegno ma porterebbero i figli in griglia; qui restano
   blocchi normali. */
/* ⚠️ Due selettori e non uno: il velo e i testi sono `<rs-layer>`, un
   elemento con quel NOME, ma i pulsanti sono `<a class="rs-layer">`. Una
   regola scritta sul nome dell'elemento li salta a pie' pari. */
body.home #rev_slider_43_1 rs-layer,
body.home #rev_slider_43_1 .rs-layer {
	position: static !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	transform: none !important;
	opacity: 1 !important;
	/* ⚠️ Slider Revolution scrive i margini di ogni strato per fascia di
	   larghezza: sotto i 768 px il secondo pulsante si portava dietro un
	   `margin-left: 46px`, ed e' il motivo per cui sul telefono lo stacco fra
	   i due era 60 px invece di 14. Ora gli stacchi li decide la riga, non lo
	   strato. */
	margin: 0 !important;
	/* i titoli avevano `white-space: nowrap` in linea: e' il motivo per cui a
	   390 px il secondo arrivava a filo dei due bordi invece di andare a capo */
	white-space: normal !important;
	text-align: left !important;
}

/* Il velo scuro sopra la fotografia esce dalla griglia e torna a coprire
   tutto: senza, il bianco del titolo finisce su una montagna assolata.
   ⚠️ Riconoscerlo con `:has(rs-layer:empty)` NON funziona: dentro c'e' uno
   spazio bianco, e `:empty` vuole l'elemento davvero vuoto. Si va di
   posizione: e' sempre il primo strato. */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) rs-loop-wrap,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) rs-mask-wrap,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) rs-layer {
	width: 100% !important;
	height: 100% !important;
}

/* ⚠️ MISURATO: il titolo rosso su questa fotografia sta a **2,44:1**, sotto
   il minimo di 3:1 che si chiede a un titolo grande. Il velo piatto al 50%
   non basta.
   ⚠️ E non si arriva a 3:1 nemmeno spegnendo la fotografia: il rosso del
   marchio (#BE1E2D) ha una luminosita' propria di 0,123, e perfino sul NERO
   PIENO arriva a 3,47:1. Non e' un problema di velo: e' il colore. Qui si
   fa quel che si puo' senza toccare i colori del marchio — una velatura
   sfumata, piu' fitta a sinistra dove sta il testo e piu' rada a destra dove
   si vede il paesaggio, che porta il rosso a 2,9 e il bianco oltre 16. Per
   passare la soglia servirebbe una DECISIONE: seconda riga in bianco, oppure
   un rosso piu' chiaro solo qui. */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) rs-layer {
	background-color: transparent !important;
	background-image: linear-gradient(
		100deg,
		rgba(0, 0, 0, .74) 0%,
		rgba(0, 0, 0, .66) 46%,
		rgba(0, 0, 0, .52) 74%,
		rgba(0, 0, 0, .34) 100%) !important;
}

/* --------------------------------------------------------------------------
   27.3 L'ORDINE
   ⚠️ Nel codice gli strati stanno in quest'ordine: velo, titolo,
   sottotitolo, PULSANTE, PULSANTE, testo. Il testo e' l'ULTIMO scritto ma va
   letto in MEZZO: senza rimetterlo a posto finirebbe sotto i pulsanti.
   Prima lo nascondeva il posizionamento assoluto, che dell'ordine del codice
   non si cura.
   -------------------------------------------------------------------------- */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) { order: 1; flex: 0 0 100%; }
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) { order: 2; flex: 0 0 100%; }
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(6) { order: 3; flex: 0 0 100%; }
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(4) { order: 4; flex: 0 0 auto; }
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(5) { order: 5; flex: 0 0 auto; }

/* --------------------------------------------------------------------------
   27.4 IL CORPO DEI CARATTERI E GLI STACCHI
   Le misure crescono con la finestra ma dentro limiti scelti: `clamp` evita
   sia il titolo da 69 px che sfonda, sia quello da 23 px che si perde.
   -------------------------------------------------------------------------- */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) rs-layer,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) rs-layer {
	font-size: clamp(27px, 4.5vw, 60px) !important;
	line-height: 1.08 !important;
	letter-spacing: -.01em !important;
	font-weight: 700 !important;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
	text-wrap: balance;
}

/* i due titoli sono due righe della stessa frase: niente stacco in mezzo */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) {
	margin-top: 2px;
}

body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(6) {
	margin-top: 22px;
}

body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(6) rs-layer {
	font-size: clamp(15px, 1.35vw, 19px) !important;
	line-height: 1.55 !important;
	/* una misura di lettura, non tutta la larghezza dello schermo */
	max-width: 600px !important;
	/* ⚠️ Senza questo la seconda riga restava orfana: «…Circolare e» e poi
	   «Sostenibilita' Ambientale» da sola. `balance` divide le righe in parti
	   uguali; dove il browser non lo conosce, non cambia niente. */
	text-wrap: balance;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}

body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(4),
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(5) {
	margin-top: 34px;
}

/* --------------------------------------------------------------------------
   27.5 I PULSANTI
   ⚠️ `home.css` li porta gia' a 46 px, ma con `min-height: 46px` SENZA
   `!important`, e Slider Revolution scrive `min-height: 0px` IN LINEA su ogni
   strato: la regola c'era e non ha mai funzionato. Erano alti 21,9 px.
   -------------------------------------------------------------------------- */
body.home #rev_slider_43_1 a.rs-layer.rev-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 46px !important;
	height: auto !important;
	padding: 0 24px !important;
	border-radius: 10px !important;
	font-size: 14.5px !important;
	line-height: 1.1 !important;
	white-space: nowrap !important;
	transition: transform .18s ease, box-shadow .18s ease;
}

body.home #rev_slider_43_1 a.rs-layer.rev-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .7);
}

body.home #rev_slider_43_1 a.rs-layer.rev-btn:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   27.6 LE LARGHEZZE INTERMEDIE E IL TELEFONO
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 1199px) {
	body.home #rev_slider_43_1_wrapper,
	body.home #rev_slider_43_1_forcefullwidth,
	body.home #rev_slider_43_1,
	body.home #rev_slider_43_1 rs-slides,
	body.home #rev_slider_43_1 rs-slide,
	body.home #rev_slider_43_1 rs-sbg-px,
	body.home #rev_slider_43_1 rs-sbg-wrap {
		height: 560px !important;
	}
}

@media only screen and (max-width: 767px) {
	body.home #rev_slider_43_1_wrapper,
	body.home #rev_slider_43_1_forcefullwidth,
	body.home #rev_slider_43_1,
	body.home #rev_slider_43_1 rs-slides,
	body.home #rev_slider_43_1 rs-slide,
	body.home #rev_slider_43_1 rs-sbg-px,
	body.home #rev_slider_43_1 rs-sbg-wrap {
		height: 470px !important;
	}

	body.home #rev_slider_43_1 rs-slide {
		padding-top: 24px;
		padding-bottom: 24px;
	}

	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(6) { margin-top: 16px; }
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(4),
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(5) { margin-top: 26px; }
}

/* ==========================================================================
   28. L'EROE A TUTTO SCHERMO
   ==========================================================================
   Scelta dell'utente il 31/8 fra tre impianti. Sostituisce le altezze fisse
   del blocco 27 (660/560/470): quelle restano scritte sopra e questo blocco
   le scavalca perche' arriva dopo — a parita' di peso e di `!important`
   comanda l'ultimo. Non si tolgono: se un giorno si torna indietro basta
   cancellare questo blocco.
   Non cambia dove sta il testo: cambia QUANTO conta la fotografia. L'eroe
   prende tutto lo schermo, il testo scende in basso, e una freccia dice che
   sotto c'e' altro.
   ⚠️ `100svh` e non `100vh`: sul telefono la barra degli indirizzi entra e
   esce, e con `vh` l'eroe cambia altezza mentre si scorre. `svh` e' l'altezza
   MINIMA della finestra, quindi sta fermo.
   ⚠️ `min-height` serve per i portatili bassi: a 1366x700 senza quello il
   testo non ci starebbe. */
body.home #rev_slider_43_1_wrapper,
body.home #rev_slider_43_1_forcefullwidth,
body.home #rev_slider_43_1,
body.home #rev_slider_43_1 rs-slides,
body.home #rev_slider_43_1 rs-slide,
body.home #rev_slider_43_1 rs-sbg-px,
body.home #rev_slider_43_1 rs-sbg-wrap {
	height: 100svh !important;
	min-height: 560px !important;
}
body.home #rev_slider_43_1 rs-slide {
	align-content: flex-end !important;
	padding-bottom: 116px !important;
	position: relative;
	/* ⚠️ Qui la gabbia NON e' quella del sito (1170 px): un eroe a tutto
	   schermo che si stringe nella colonna del contenuto lascia mezzo schermo
	   vuoto a destra. Il rientro e' proporzionale, cosi' cresce con la
	   finestra invece di restare fermo. */
	padding-left: max(24px, 4.8vw) !important;
	padding-right: max(24px, 4.8vw) !important;
}
/* il velo si concentra dove sta il testo e lascia respirare il paesaggio */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(1) rs-layer {
	/* ⚠️ MISURATO: con la velatura leggera in mezzo il titolo rosso cade a
	   1,83:1 — l'erba illuminata sta proprio dietro le lettere. La sfumatura
	   deve restare fitta per tutta l'altezza del blocco di testo e schiarire
	   solo sopra, dove c'e' il cielo e non c'e' scritto niente. */
	background-image: linear-gradient(to top,
		rgba(0,0,0,.90) 0%, rgba(0,0,0,.86) 24%, rgba(0,0,0,.76) 40%,
		rgba(0,0,0,.44) 58%, rgba(0,0,0,.22) 76%, rgba(0,0,0,.40) 100%) !important;
}
/* ⚠️ Il corpo NON e' una scelta di gusto: e' calcolato perche' i due titoli
   stiano su UNA RIGA. «PRODUZIONE DI SOMMACCO ITALIANA» sono 31 caratteri, e
   in Fraunces occupano 19,4 px di larghezza per ogni px di
   corpo (erano 16,3 in Source Sans Pro). Con la gabbia allargata restano su
   una riga fino a 70 px; sopra
   quello andrebbero a capo.
   ⚠️ E nessun `max-width`: era quello a spezzare i titoli in cinque righe. */
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) rs-layer,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) rs-layer {
	font-size: min(4.5vw, 70px) !important;
	max-width: none !important;
}
/* la freccia: disegnata, non un'immagine */
body.home #rev_slider_43_1 rs-slide::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 40px;
	width: 16px;
	height: 16px;
	margin-left: -8px;
	border-right: 2px solid rgba(255,255,255,.85);
	border-bottom: 2px solid rgba(255,255,255,.85);
	transform: rotate(45deg);
	animation: kx-giu 2s ease-in-out infinite;
}
@keyframes kx-giu {
	0%, 100% { transform: rotate(45deg) translate(0, 0); opacity: .85; }
	50%      { transform: rotate(45deg) translate(4px, 4px); opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
	body.home #rev_slider_43_1 rs-slide::after { animation: none; }
}

/* --------------------------------------------------------------------------
   28.1 LE FINESTRE BASSE
   ⚠️ Con `align-content: flex-end` un blocco che non ci sta NON esce dal
   fondo: sale, e il titolo finisce sotto il logo (l'intestazione e'
   sovrapposta e alta 176 px). Un `padding-top` non serve: il traboccamento va
   verso l'alto lo stesso. L'unico rimedio e' farcelo stare.
   📌 Il conto, con i titoli su una riga: 2,16 volte il corpo per i due titoli,
   piu' 160 px fra testo e pulsanti, piu' 116 di stacco dal fondo, piu' 176 di
   intestazione. A 82 px di corpo fanno 629: sopra i 640 px di finestra ci sta
   tutto a grandezza piena. Sotto, si riduce solo lo stacco dal fondo — il
   corpo resta quello, perche' e' li' che si vede la differenza.
   -------------------------------------------------------------------------- */
@media only screen and (max-height: 700px) and (min-width: 768px) {
	body.home #rev_slider_43_1 rs-slide { padding-bottom: 72px !important; }
	body.home #rev_slider_43_1 rs-slide::after { bottom: 24px; }
}

@media only screen and (max-height: 600px) and (min-width: 768px) {
	body.home #rev_slider_43_1 rs-slide { padding-bottom: 48px !important; }
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) rs-layer,
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) rs-layer {
		font-size: min(3.6vw, 46px) !important;
	}
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(6) { margin-top: 14px; }
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(4),
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(5) { margin-top: 22px; }
	body.home #rev_slider_43_1 rs-slide::after { bottom: 16px; }
}

@media only screen and (max-width: 767px) {
	body.home #rev_slider_43_1 rs-slide { padding-bottom: 92px !important; }
	/* ⚠️ Sotto i 768 px una riga sola vorrebbe dire 22 px di corpo: illeggibile
	   per un titolo d'apertura. Qui si accetta che il secondo vada su due
	   righe e si tiene una misura che si legge. */
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) rs-layer,
	body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) rs-layer {
		font-size: clamp(23px, 6.4vw, 32px) !important;
		max-width: none !important;
	}
	/* ⚠️ A 360 px i due pulsanti non ci stavano affiancati (127 + 14 + 187 =
	   328 contro 282 di spazio) e andavano a capo, restando di larghezze
	   diverse uno sopra l'altro. Stretti di quel poco, tornano in riga. */
	body.home #rev_slider_43_1 a.rs-layer.rev-btn {
		padding: 0 15px !important;
		font-size: 13px !important;
		letter-spacing: 0 !important;
	}

	/* ⚠️ Sul telefono la freccia finiva DIETRO la barra fissa in basso
	   (Home / Shop / Accedi). Lì non serve: si scorre con il dito, e la barra
	   dice gia' che sotto la pagina continua. */
	body.home #rev_slider_43_1 rs-slide::after { content: none; }
}


/* ==========================================================================
   29. IL CARATTERE DEI TITOLI — Fraunces (3/9/2026)
   Prima i titoli erano in Roboto e l'apertura in Source Sans Pro: due
   caratteri neutri, scelti da nessuno. Fraunces e' un serif morbido con un
   asse ottico (`opsz`), quindi a corpo grande apre il contrasto da solo e a
   corpo piccolo resta leggibile. Si carica in functions.php (`kx_fraunces`).
   ⚠️ NON va sui titoli piccoli dell'interfaccia: sotto i 20 px un serif da
   display si impasta. Il piede, le colonne laterali e il banner dei cookie
   restano nel sans — sono etichette, non titoli.
   ⚠️⚠️ Cambiare il carattere dell'apertura CAMBIA il conto del corpo: il
   titolo lungo occupa 19,4 px per px invece di 16,3, cioe' il 19% in piu'.
   Le tre misure del blocco 28 sono state rifatte su quel numero.
   ========================================================================== */
:root { --kx-titoli: "Fraunces", "Iowan Old Style", Georgia, serif; }

h1, h2, h3,
.ftc-breadcrumb-title h1,
.entry-title, .entry-title a,
.blogs h3.blog-title, .blogs h3.blog-title a,
h3.product_title, h3.product_title a,
.woocommerce div.product .summary h1.product_title,
.single-product div.product .summary .product_title.entry-title,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(2) rs-layer,
body.home #rev_slider_43_1 rs-layer-wrap:nth-of-type(3) rs-layer {
	font-family: var(--kx-titoli) !important;
	font-optical-sizing: auto;
}

/* le etichette che NON sono titoli */
h2.widgettitle, h3.widgettitle, .widget-title,
#kcc-banner h2, #kcc-banner h3, .kcc-banner__title,
.kcc-fab, .kcc-banner button {
	font-family: Roboto, -apple-system, "Segoe UI", sans-serif !important;
}


/* --------------------------------------------------------------------------
   29.1 IL BOTTONE DEI COOKIE E LA BARRA IN BASSO DEL TELEFONO
   ⚠️ Il pulsante flottante del banner sta in basso a destra e sotto i 768 px
   finiva ESATTAMENTE sopra «Accedi» della barra fissa del tema
   (`.footer-mobile`, alta 59 px): la voce si vedeva a meta' e non si toccava.
   Si alza sopra la barra invece di spostarlo a sinistra, dove coprirebbe
   «Home».
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 767px) {
	.kcc-float-btn.kcc-float-bottom-right { bottom: 76px !important; }
}


/* ==========================================================================
   30. IL FILO LATERALE — la foto che usciva dallo schermo (3/9/2026)
   🔴 Nella riga «Le proprieta' del Sommacco» la fotografia del sommacco non
   partiva dal filo del sito ma 28 px PIU' A SINISTRA, e sotto i ~1300 px
   usciva proprio dalla finestra: misurato a 960 e a 820 px il suo bordo
   sinistro cadeva a **-40 px**, cioe' un pezzo di foto era tagliato via.
   La causa non e' nostra: e' una regola del TEMA in `style.css`,
   `.ftc-trust-h12 .ftc-trust .wpb_column:first-child > .wpb_wrapper
   { margin-left: -85px }` — uno spostamento fisso pensato per l'immagine
   della demo, che non si adatta a nessuna larghezza.
   ⚠️ Regola generale: uno scostamento in pixel FISSI su una colonna
   percentuale e' sempre una bomba a orologeria — regge solo alla larghezza
   a cui e' stato disegnato.
   ========================================================================== */
.ftc-trust-h12 .ftc-trust .wpb_column:first-child > .wpb_wrapper {
	margin-left: 0 !important;
}
/* ⚠️ Tolto lo spostamento, la foto restava comunque 15 px dentro il filo:
   e' `inline` dentro un contenitore CENTRATO, e 570-541=29 diviso due fa
   proprio 15. Si allinea a sinistra, non si allarga l'immagine. */
.ftc-trust-h12 .ftc-trust .wpb_column:first-child > .wpb_wrapper,
.ftc-trust-h12 .ftc-trust .wpb_column:first-child .ftc-smooth-image {
	text-align: left !important;
}
