/* =========================================================================
   Il contenuto delle pagine.

   Veste il vocabolario che `elementor-a-html.py` scrive dentro `post_content`:
   `.sezione`, `.colonne`, `.colonna`, `.riga`, `.separatore`, `.pulsante`,
   `.disegno`, `.carosello`, `.galleria`, `.scheda-doppia`, `.finestra`.

   ⚠ La struttura (griglia, sezioni) è la grammatica dello strumento ed è la
   stessa su tutti i siti che lo usano. I colori, i corpi e i respiri qui sotto
   sono di CIMITERI.ONLINE e di nessun altro: sono presi dal Kit e dalle misure
   del sito vivo. Non si copiano da un altro tema, e questo non si copia
   altrove: la matrice sta in PLUGIN-NEXEN.

   Il sito è SCURO: fondo nero, testi chiari. È la cosa che si sbaglia per
   prima ereditando un foglio scritto per un sito bianco.
   ========================================================================= */

.pagina { color: var(--c-testo); }

.pagina__contenuto { display: flow-root; }

/* S-RIFINITURA, 4/9/2026 — «niente maiuscolo forzato sui titoli» (lingua del
   sito, LOOP-S-RIFINITURA-20260904.md). `token.css` (generato dal Kit di
   Elementor, non si scrive a mano) dichiara `text-transform:uppercase` su
   `.stile-primary/-secondary/-accent/-e20ef4c/-a0720a2`: classi vecchie,
   ancora attaccate a titoli veri fuori dalle pagine di famiglia — il nome
   della memoria (`h1.articolo__titolo.stile-primary` su `/ricordo/…/`,
   SGUARDO-TUTTO-20260903.md §2 "Memorie") e il nome del cimitero nelle
   schede di ricerca (`h3.nexen-cim-carta__nome.stile-a0720a2`, stesso
   rapporto, "Editoriali" — «Cimitero di Roma» usciva «CIMITERO DI ROMA»).
   `pagine-testo.css` l'aveva già spento ma solo dentro il proprio perimetro
   (`body.pagina-testo`/`.foglio-civile`): qui si spegne per tutto il sito,
   in `contenuto.css` che carica ovunque e dopo `token.css` nella catena
   delle dipendenze (stessa specificità, vince chi arriva dopo). */
.stile-primary,
.stile-secondary,
.stile-accent,
.stile-e20ef4c,
.stile-a0720a2 {
	text-transform: none;
}

/* ---------------------------------------------------------------- sezioni */

.sezione {
	position: relative;
	/* ⚠ IL RIPIEGO È ZERO, E LO DICONO DUE PAGINE GEMELLE. (6/8/2026.)

	   Il respiro sopra e sotto arriva dal contenuto (`--su` e `--giu`, scritti
	   da `elementor-a-html.py` dal `padding` della sezione). Qui c'era **4rem**
	   per le sezioni che non lo dichiarano, e non era il ripiego: era una
	   misura inventata.

	   La prova sta in due pagine che sul vivo sono **identiche**, 963px tutte e
	   due. `manifesto-…-civile-modello-rosa-01` dichiara `padding: 0` e usciva
	   749; `manifesto-…-religioso-modello-padre-pio-01` **non dichiara niente**
	   e usciva 877. La differenza è **128px, cioè 4rem sopra più 4rem sotto**,
	   ed è tutta nostra: il grafico non ha scritto nulla e noi ci abbiamo messo
	   otto centimetri.

	   Il predefinito di una sezione di Elementor è **zero**. Lo spazio, quando
	   c'è, lo mettono i widget e il `gap` della colonna — non la sezione.

	   Sono **96 sezioni su 242** a non dichiarare padding, il 39%: la 4rem era
	   il difetto più diffuso del tema, e si vedeva solo dove due pagine
	   uguali uscivano diverse.

	   *(Il 6/8 mattina questa riga era già stata corretta una volta, da 4rem
	   fissi a variabile, perché il banner dei manifesti usciva 149px più alto.
	   Correggere il ripiego a metà lascia il difetto dove il dato manca.)* */
	/* 🚨 E IL RESPIRO PUÒ ESSERE NEGATIVO: 52 volte su 7 pagine. (7/8/2026.)
	   `elementor-a-html.py` somma padding e margine, e il margine di una sezione
	   di Elementor può essere negativo — è così che il grafico fa scavalcare una
	   sezione sull'altra: `--su:-60px`, `--su-t:-50px`, `--su-m:-33px`, fino a
	   `--giu:-50px`. **Un `padding` negativo non esiste**: la dichiarazione è
	   invalida e il browser la butta, in silenzio. Erano scritti, arrivavano, e
	   non ne è mai stato applicato uno.
	   Si dividono: il positivo va in `padding`, il negativo in `margin`. È quello
	   che fa Elementor, che li tiene separati fin dall'inizio. */
	padding-block: max(0px, var(--su, 0px)) max(0px, var(--giu, 0px));
	margin-block: min(0px, var(--su, 0px)) min(0px, var(--giu, 0px));
	/* L'altezza minima dichiarata dal contenuto: la home è fatta di sezioni a
	   schermo pieno. È un minimo, non una misura fissa — il contenuto che
	   cresce la supera, e a telefono si lascia perdere. */
	min-height: var(--alta, auto);
	/* Il fondo dichiarato dal contenuto. ⚠ Due sezioni della home su sette sono
	   CHIARE, e il tema le rendeva nere: nessuna misura di altezza se n'era
	   accorta, l'ha detto il video. */
	background-color: var(--fondo, transparent);
	padding-inline: 1.25rem;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* Lo sfondo arriva dal contenuto come variabile, perché è un dato della
   pagina (quale foto) e non una regola del tema (come si comporta). */
.sezione[style*="--sfondo"] { background-image: var(--sfondo); }

/* 🚨 LO STACCO FRA UNA FASCIA E L'ALTRA. (9/8/2026.)

   `--su` è il respiro DENTRO la sezione (il suo `padding`), e lo legge la
   regola qui sopra. Il margine che la sezione ha SOPRA di sé è un altro dato,
   e nel convertitore lo guardava solo `incastro_sezione`, che tiene il
   negativo e butta il positivo: l'incastro di due fotografie tagliate lo
   portavamo, lo stacco fra due fasce no.

   Misurato sul vivo a 1440 su `mi-presento`: «Domande Frequenti» comincia a
   2333 e «Hai altre domande?» a 2869, cioè **50px sotto** la sezione di prima,
   a testa. Sono 100px su una pagina che ne aveva 177 in meno del vivo. A
   telefono la terza sezione ne dichiara 16 al posto di 50, e la scala lo dice.

   ⚠ Margine e non imbottitura, e su questo sito si vede: il fondo di una
   sezione lo dipinge `--fondo`, e con l'imbottitura quei 50px verrebbero
   dipinti anche loro. Di là sono margine, e qui restano margine.
   ⛔ Selettore di attributo: deve battere il `margin-block` che `.sezione`
   scrive per i respiri negativi, e quello per i telefoni in fondo al foglio. */
.sezione[style*="--sopra:"] { margin-block-start: var(--sopra); }

/* ⚠ QUANTO È LARGO IL CONTENUTO LO DICE LA SEZIONE, non il tema. (6/8/2026.)
   `elementor-a-html.py` scrive `--larghezza-sezione` dal `content_width` del
   grafico **su 60 pagine su 69**, e qui non lo leggeva nessuno: restavano i
   1200px di `--larghezza-max` per tutti. Misurato sul vivo a 1440,
   `politiche-sulla-privacy`: il riquadro del contenuto è **1250px**, il nostro
   1200. Cinquanta pixel in meno sono una riga in più ogni tante, e su una
   pagina da 24.000 caratteri diventano **+378px, il +5,4%** che la teneva
   fuori dal cancello. `--larghezza-max` resta il ripiego di chi non dichiara. */
.sezione > *,
.sezione > .colonne { max-width: var(--larghezza-sezione, var(--larghezza-max)); margin-inline: auto; }

/* 🚨 UNA FASCIA A FILO NON HA RESPIRO LATERALE. (26/8/2026, F12-bis.)

   `.sezione` porta `padding-inline: 1.25rem` — 20px — e serve, sui telefoni:
   senza, il testo tocca il bordo. Ma su una fascia dichiarata `none` quei 20px
   sono l'ultima cosa che ci separa dal vivo: misurato a 1440 dopo la prima
   correzione, il contenitore stava a **x=20, w=1400** contro **x=0, w=1440**
   del vivo — una striscia nera di 20px per lato, visibile sulla fotografia
   della giostra nel PNG.

   ⚠ **Sopra gli 800px soltanto**, la soglia che il foglio usa già (`@media
   (max-width: 800px)` più in basso). Sotto, il respiro resta: il vivo a 768 e
   a 375 **non è stato misurato**, e togliere un margine su una larghezza che
   non si è guardata è il modo di riaprire il difetto da un'altra parte.
   👉 Resta da misurare a 768 e 375 prima di estendere la regola. */
@media (min-width: 801px) {
	.sezione[style*="--larghezza-sezione:none"] { padding-inline: 0; }
}

/* 🚨 FIX-VISTA (27/8/2026) — MISURATO A 375: È IL RESPIRO LASCIATO IN SOSPESO
   QUI SOPRA, E QUEI 20PX PER LATO SONO NERI, NON UNO SPAZIO VUOTO.

   Le uniche due sezioni della home con `--larghezza-sezione:none` E un
   `--fondo` scuro sulla SEZIONE stessa (non sulla colonna) sono «Cimitero
   Virtuale» (id 5) e «Servizi business» (id 6), entrambe `--fondo:#000000`.
   Sotto gli 800px la riga 125 non tocca il loro `padding-inline`, quindi
   restano i 20px per lato di base (riga 69) — e siccome il fondo NERO è
   sulla sezione, non sul contenuto, quei 20px non sono un margine bianco:
   sono una cornice nera intorno al riquadro chiaro dei servizi.

   Misurato su `dopo-375-servizi-a.png` (pixel reali, non dedotto): nero
   esatto a x=[0,20] e x=[354,374] per tutta l'altezza della fascia — 20px
   netti, gli stessi di sempre. E su `prima-375.png`, stessa immagine di
   stanotte prima dei due tagli diagonali aggiunti da FIX-HTML: **stesso
   nero, stessi pixel** — non è un difetto dei tagli, c'era già, ed è
   proprio il "resta da misurare" lasciato aperto alla riga 123.

   ⚠ Perimetro cercato in tutte le 63 pagine convertite: la coppia
   `--larghezza-sezione:none` + `--fondo:#000000` sulla sezione compare solo
   qui, 2 volte — non tocca nessun'altra pagina.
   Il testo non arriva al bordo: il titolo e le sei schede sono centrati dal
   loro stesso markup (nessun `imb-dx-m`/`imb-sx-m` diverso da 0 in queste
   due sezioni, quindi nessun rientro perso togliendo il padding).

   🚨 CORRETTO IL 30/8/2026 — LA REGOLA QUI SOTTO CONTRADDICEVA LA SUA STESSA
   ANALISI, SCRITTA TRE RIGHE SOPRA. Non aveva media query: azzerava il
   padding-inline A TUTTE LE LARGHEZZE, compreso sotto gli 800px — cioè
   esattamente la cornice nera che questo commento aveva appena deciso di
   tenere. Misurato sul PNG a 375: il bollino "Free" cominciava a x≈0-4 (col
   riquadro scuro tagliato dal bordo) contro **x≈12 sul vivo**.
   Sopra gli 800px è pura ripetizione: la riga 125 già azzera il padding di
   OGNI `--larghezza-sezione:none`, e questa coppia lo è. Quindi non serve
   scriverla di nuovo lì — basta che smetta di applicarsi sotto. */
@media (min-width: 801px) {
	.sezione[style*="--larghezza-sezione:none"][style*="--fondo:#000000"] {
		padding-inline: 0;
	}
}

/* ⚠ E UNA GRIGLIA ANNIDATA DICHIARA LA SUA, DI LARGHEZZA. (26/8/2026, F12-bis.)

   `.sezione > .colonne` qui sopra cappa solo i **figli diretti** della sezione.
   La griglia dei sei servizi della home non lo e' — sta dentro una `.colonna` —
   e quindi si prendeva tutta la fascia: misurata **x=20, w=1400** contro
   **x=245, w=950** del vivo.

   🚨 **E il numero giusto non e' 950px.** Misurato sul vivo a due larghezze:
   1440 → **950** · 1920 → **1267**. Sono **66%** tutte e due (65,97 e 65,99):
   un tetto fisso in pixel avrebbe sbagliato di **317px a 1920**, e il difetto
   sarebbe ricomparso su uno schermo grande dopo essere sembrato chiuso a 1440.
   👉 *Una larghezza sola non dice se un numero e' fisso o proporzionale.* */
.colonne[style*="--larghezza-riga:"] {
	max-width: var(--larghezza-riga);
	margin-inline: auto;
}

/* 🚨 F12-bis, SQUADRA LARGHEZZE (27/8/2026) — IL TETTO TOLTO ALLA FASCIA HA
   TOLTO IL TETTO ANCHE AL TESTO DENTRO. È LA CAUSA DEI 2 RIGHE INVECE DI 3.

   `--larghezza-sezione:none` (righe 107-108) e' giusto per la fascia — deve
   arrivare a filo — ma toglie `max-width` a OGNI figlio diretto della
   sezione, testo compreso. Sotto, `.riga > .colonna:only-child` (riga 607)
   stira la colonna del paragrafo alla riga intera, e il convertitore scrive
   l'imbottitura del testo in PERCENTUALE (`--imb-dx:10%;--imb-sx:10%`): una
   percentuale di una riga larga 1440/1920px e' un padding enorme, e il testo
   resta largo il doppio di quello che dovrebbe.

   Misurato su "Conserva i loro ricordi…": il paragrafo (l'H4, non il suo
   contenitore) corre a **1.152px a 1440 e 1.536px a 1920** — oltre il doppio
   del tetto di ~920px che SISTEMA-ESTETICO §4 dichiara per un corpo di testo.
   Stessa percentuale, stesso pattern, su "Cimitero Virtuale".

   Il numero giusto, misurato sul vivo a DUE larghezze (mai una sola, come
   alla riga 135): il contenitore diretto del testo e' **691px a 1440 e
   922px a 1920 — 48% della finestra, esatto alle due misure**. Restituendo
   quella larghezza alla riga, il 10%/10% del convertitore produce da solo
   **553px e 737px di testo — gli stessi numeri del vivo**, senza toccare
   corpo o dimensione del carattere.

   ⛔ Non e' un tetto fisso in pixel, per la stessa ragione della riga 135:
   e' **48vw**, provato a due larghezze. `min(48vw, 100%)` evita che sfori il
   genitore su schermi molto larghi.
   ⚠ Perimetro, cercato in famiglia: il selettore prende SOLO le righe il cui
   unico contenuto e' un `.elemento` con `--imb-dx`/`--imb-sx` al 10% — la
   giostra "Omaggia" e la fotografia dell'eroe non hanno questo pattern e
   restano intonse (verificato leggendo `_conversione/html/16515.html`). */
.sezione[style*="--larghezza-sezione:none"] .riga:has(> .colonna > .elemento[style*="--imb-dx:10%"][style*="--imb-sx:10%"]) {
	max-width: min(48vw, 100%);
	margin-inline: auto;
}

/* 🚨 H7, 31/8/2026 — LA REGOLA 48vw QUI SOPRA NON VALE PER TUTTE E DUE LE
   SEZIONI CHE CONDIVIDONO LO STESSO SCHEMA HTML, ED È QUI L'ERRORE DEL 27/8.

   Il commento sopra diceva "stessa percentuale, stesso pattern, su Cimitero
   Virtuale" — MAI VERIFICATO SUL VIVO per quella sezione specifica, solo
   assunto perché il markup (`--imb-dx:10%;--imb-sx:10%`) è identico. Misurato
   ORA col righello vero (Chrome reale via Playwright, DUE larghezze, mai una
   sola — v. `misura-animali.py`): il paragrafo di "Cimitero Virtuale Per i
   nostri amici Animali" sul VIVO è **912px a 1440 (63,3%) e 1219px a 1920
   (63,5%)** — non 48%. Le due sezioni hanno lo stesso schema di padding ma
   NON la stessa larghezza di contenuto sul vivo: applicare 48vw qui dava
   **737px, su 4 righe** contro le **2 righe** del vivo — il difetto visto da
   Gabriele nella sezione «Cimitero virtuale per i nostri amici animali».

   Scoped su `id="5"` soltanto (selettore composto, sovrainsieme di quello
   sopra: nessun `!important`, vince per specificità pura), così la sezione 4
   — dove 48vw è già verificato giusto — non cambia. 79,3vw di riga, meno il
   20% di `--imb-dx:10%;--imb-sx:10%`, torna ai 63,4vw di testo misurati. */
[id="5"].sezione[style*="--larghezza-sezione:none"] .riga:has(> .colonna > .elemento[style*="--imb-dx:10%"][style*="--imb-sx:10%"]) {
	max-width: min(79.3vw, 100%);
}

/* 🚨 F12-bis, SQUADRA LARGHEZZE (27/8/2026) — LA GRIGLIA DEI SERVIZI RESTA AL
   66% ANCHE SOTTO GLI 800px, DOVE IL VIVO SI ALLARGA QUASI A TUTTO SCHERMO.

   `--larghezza-riga:66vw` (scritto dal convertitore) non ha variante di
   breakpoint: e' lo stesso valore da 1920 a 375px. Sopra gli 800px va bene
   (950px a 1440 e 1267px a 1920 sono IDENTICI al vivo, 66% tutte e due le
   volte — v. la nota alla riga 135). Sotto, il vivo abbandona la proporzione:
   misurato **756px su 768 (98%) e 363px su 375 (97%)**; lo staging restava a
   507 e 248 (66% anche li'), **sotto la sua stessa soglia dichiarata di
   335px a 375** (SISTEMA-ESTETICO §4).

   Aperti i PNG affiancati a 768 e 375 (non dedotto): il badge "Free" della
   prima scheda comincia a x≈131 da noi contro x≈6 sul vivo — si vede, non
   e' un dettaglio di misura.

   Sotto la soglia telefono del sito (800px, la stessa della riga 493) si
   spegne il tetto proporzionale: resta il respiro della sezione (1.25rem,
   riga 69), che a 375 da' 335px — esattamente il piede della soglia
   dichiarata in SISTEMA-ESTETICO §4.
   ⚠ Solo i due `66vw` della griglia servizi (le righe Free e Pro): il `90vw`
   di MEMORIE IMMORTALI non si tocca, e' gia' verde a queste larghezze
   (verificato guardando il PNG: stesso testo, stessi a-capo, su entrambi i
   lati — il 29% contro 90% misurato a 1440/1920 e' un artefatto del sonda,
   che a quella larghezza legge la colonna singola invece del widget intero,
   non un difetto vero. V. `MISURE.md`). */
@media (max-width: 800px) {
	.colonne[style*="--larghezza-riga:66vw"] { max-width: none; }
}

/* ⛔ I VENTI PIXEL FRA UN WIDGET E L'ALTRO: PROVATI E TOLTI. (6/8/2026.)

   Il Kit li serve con una riga sola, che vale su tutto il sito:

       .elementor-widget:not(:last-child) { margin-block-end: 20px }

   Sembra che si traduca in `.colonna > *:not(:last-child)`, e **non si
   traduce**, perché nel nostro markup **il widget non ha un involucro**:
   `elementor-a-html.py` versa il contenuto di un `text-editor` dentro la
   colonna così com'è. Su `la-tua-pubblicita` i figli di `.colonna` sono due
   scatole e la regola funzionava; su `politiche-sulla-privacy`, che è **un
   solo widget** con dentro tutta la pagina, i figli di `.colonna` sono ogni
   titolo e ogni paragrafo — e i 20px finivano in mezzo a **tutti**.

   Il numero: `sviluppo-siti-web` da −20,4% a −13,3% e `mi-presento` da −10,4%
   a −8,3%, cioè **meglio**; `politiche-sulla-privacy` da +5,3% a **+6,3%**, e
   l'`h3` misurato da `8px/16px` (il vivo) a `8px/20px` (noi). Una regola che
   aiuta due pagine e ne rompe una terza non è una causa chiusa: è una
   coincidenza con due testimoni.

   ✅ **CHIUSO IL 7/8/2026**, e la strada era quella: **serviva un confine**.
   La copia di cantiere del convertitore ora avvolge ogni widget in un
   `<div class="elemento">`, e allora la riga del Kit si scrive per quello che
   è — venti pixel fra un widget e l'altro — invece che per «ogni figlio della
   colonna», che su una pagina fatta di un widget solo vuol dire ogni paragrafo.

   ⚠ Il margine del grafico (`.stacco`) resta **dentro** l'involucro, e non è
   una svista: in Elementor i 20px stanno su `.elementor-element` e il `_margin`
   su `.elementor-widget-container`, che ci sta dentro.

   🚨 **E QUI C'ERA SCRITTO IL CONTRARIO DI QUELLO CHE FA IL VIVO. (8/8/2026.)**
   La riga che stava qui diceva *«fra il margine del genitore e quello
   dell'ultimo figlio c'è l'accorpamento, che tiene il più grande — ed è
   esattamente quello che fa il vivo»*. **Non è quello che fa il vivo**, e quella
   frase era il buco delle tre pagine corte a 1440. La prova sta nel foglio di
   Elementor, letto l'8/8:

       .elementor:not(.elementor-bc-flex-widget) .elementor-widget-wrap{display:flex}

   Ogni widget è un **elemento flessibile**, e un elemento flessibile è un
   contesto di formattazione indipendente: **niente di quello che ha dentro si
   accorpa verso fuori**. I 20px del Kit e il `_margin` del grafico stanno su due
   scatole diverse e **si sommano**; da noi il margine del figlio usciva
   dall'involucro, dalla colonna e dalla sezione, e la sezione lo perdeva.

   Il numero: l'ultima sezione di `sviluppo-siti` dichiara `_margin: 50px 0 0 0`
   sul primo widget e `0 0 70px 0` sull'ultimo. Il vivo fa **292px**, noi ne
   facevamo **159**. Con `display: flow-root` qui sotto: **295**.

   ⚠ `flow-root` e non `overflow: hidden`: taglia niente, e `.sezione--foto` e le
   fasce diagonali continuano a debordare come devono. */
.colonna > .elemento:not(:last-child) { margin-block-end: 20px; }
.elemento { display: flow-root; }

/* ⛔ E CON IL CONFINE VENGONO FUORI I MARGINI CHE IL TEMA HA INVENTATO.
   (8/8/2026, e va letta insieme alla nota qui sopra: sono una riparazione sola.)

   Finché il margine si accorpava via, questi non si vedevano. Con `flow-root`
   diventano veri — e sul vivo non esistono. Il foglio di Elementor sull'immagine
   dice **solo** questo, e non c'è nessun margine:

       .elementor img{border:none;border-radius:0;box-shadow:none;height:auto;max-width:100%}

   In Elementor lo spazio fra due widget è **venti pixel e basta**. Quindi dove
   il blocco È il widget, il margine del tema si spegne. Misurato su
   `termini-uso` (una sezione sola, il banco locale la riproduce a pixel): con
   `flow-root` da 1234 a **1428**; spegnendo questi, **1316**.

   ⚠ Solo `> `, cioè solo quando il blocco è il widget: un `<img>` dentro il
   testo di un `text-editor` sta dentro un `<p>` e non è un widget, e lì il
   respiro lo mette il paragrafo — come di là.

   🚨 **E PER LE IMMAGINI QUESTA RIGA NON HA MAI VINTO. (8/8/2026, misurato.)**
   `.elemento > img` pesa (0,1,1) — una classe e un tipo — esattamente quanto
   `.pagina img` più sotto (`:424`, `margin-block: 1rem`), che sta **dopo** nel
   foglio: a parità di peso vince l'ultima, e le immagini dei widget si tenevano
   i loro 16px sopra e 16 sotto. Il foglio diceva una cosa e il browser ne
   faceva un'altra, e il conto del 7/8 («flow-root da 1234 a 1428, spegnendo
   questi 1316») era stato fatto sul banco locale, dove il numero tornava.
   Sullo staging, letto con `getComputedStyle` sull'immagine di `termini-uso`:
   `margin-top: 16px`. Le due immagini di quella pagina costavano **64px** — 32
   la prima, e 32 la seconda, che è alta **zero** perché il file non c'è più:
   due margini attorno al niente.
   Il `.pagina` davanti porta il peso a (0,2,1) e la riga vince dove deve.
   ⚠ Le miniature `.larghezza-auto` non si muovono: erano già a 0 sopra e 20
   sotto (verificato su `prepara-manifesto` prima di toccare), e i 20 glieli dà
   la riga qui sotto, che pesa (0,3,0) e resta davanti a questa. */
.pagina .elemento > img,
.pagina .elemento > a > img,
.pagina .elemento > .schede,
.pagina .elemento > .fisarmonica { margin-block: 0; }

/* ⛔ E L'INVOLUCRO NON DEVE ROMPERE LA FILA. (7/8/2026.)

   Un `<div>` è un blocco, e i widget che il grafico ha messo **in riga** —
   `_element_width: auto`, cioè `.larghezza-auto` — sono elementi in linea che
   si affiancano da soli. Avvolgendoli uno per uno andavano a capo tutti.

   Il numero: `prepara-manifesto` da +1,6% a **+141,5%**. Sono le 52 miniature
   dei modelli, che scorrevano quattro per fila e sono diventate 52 file.

   `display: contents` toglie di mezzo la scatola e lascia il figlio dov'era.
   E i 20px non si applicano più a quei widget, che è giusto: fra due elementi
   in fila lo spazio lo mette il grafico, non la spaziatura dei widget — è la
   stessa cosa che `kit-a-css.py` si è scritta in fronte il 5/8 per
   `.larghezza-auto + .larghezza-auto`.

   ⚠ E il figlio DIRETTO non basta: il widget immagine con un collegamento esce
   `<div class="elemento"><a …><img class="larghezza-auto"></a></div>`, e la
   classe sta due livelli sotto. Le 52 miniature restavano una per riga anche
   con `:has(> .larghezza-auto)`, e il numero non si muoveva: +137,3%. */
.elemento:has(.larghezza-auto) { display: contents; }

/* 🚨 «I 20px NON SI APPLICANO PIÙ A QUEI WIDGET, CHE È GIUSTO» — GIUSTO DI LATO,
   SBAGLIATO SOTTO. (8/8/2026.)

   La frase qui sopra vale per due elementi **sulla stessa riga**. Ma su
   `prepara-manifesto` quei widget sono **50 miniature che vanno a capo**, e fra
   una fila e l'altra il vivo lo spazio ce l'ha: ogni miniatura è un
   `.elementor-widget:not(:last-child)` e prende i **20px del Kit**
   (`post-1023.css`). Togliendo la scatola con `display: contents` abbiamo tolto
   anche il posto dove quei 20px stavano scritti.

   Finché il tema metteva `1rem` alle immagini (`.pagina img`) il buco non si
   vedeva: 16+16 = 32 al posto di 20, un po' troppo ma c'era. L'8/8, azzerando i
   margini inventati (v. la nota su `flow-root`), è rimasto **zero**, e la pagina
   si è accorciata di 268px a 1440, **532 a 768 e 1.555 a 375**.

   Il conto torna a tre larghezze diverse, ed è quello che lo rende una causa e
   non un'ipotesi: 1.555 / 32 = **48,6 file** a 375 (le miniature sono 50, una per
   fila); 532 / 32 = **16,6** a 768 (tre per fila); 268 / 32 = **8,4** a 1440
   (sei per fila, e il banco locale conta 8 file). Rimettendo i 20 del vivo al
   posto dei 32 inventati: 50×20, 17×20, 8×20.

   ⚠ Va sul figlio, non sull'involucro: l'involucro non c'è più. */
.elemento:not(:last-child) > .larghezza-auto,
.elemento:not(:last-child) > a > .larghezza-auto { margin-block-end: 20px; }

/* ⛔ TOLTA IL 31/8/2026 (H7, il calco della home) — `.sezione--eroe` non è mai
   stata usata da nessuna delle 61 pagine convertite (`grep -r sezione--eroe
   _conversione/html/`, zero risultati): era una regola morta con la STESSA
   specificità di `.sezione` (0,1,0) e un'altezza inventata (`min(88vh,760px)`)
   che IGNORAVA del tutto `--alta` scritta dal contenuto. Il commento a :4443
   (oggi qualche riga più giù) la chiamava già «una mina»: fra 801 e 1300px
   solo un selettore di attributo scritto apposta la teneva a bada. Con la
   mina tolta non serve più difendersi da lei, e la decisione dell'altezza
   torna a passare da UN punto solo — questa regola, più le sue due varianti
   di soglia qui sotto, tutte e tre nella stessa forma `var(--alta-X, var(--alta,
   auto))`. Il gemello a 768px (`.sezione--eroe { min-height: 70vh }`, dentro
   `@media (max-width: 800px)`) è tolto con lei, per lo stesso motivo. */
/* Una sezione che si dichiara scura porta con sé il proprio inchiostro: da qui
   in giù i titoli tornano bianchi anche dentro una pagina chiara, senza che
   nessuna regola debba saperlo. (15/8/2026 — v. la nota in `base.css`.) */
.sezione--scura {
	background-color: var(--c-fondo);
	color: var(--c-bianco);
	--c-inchiostro: var(--c-bianco);
	--c-tenue: var(--c-minore);
}
.sezione--foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	pointer-events: none;
}
.sezione--foto > * { position: relative; z-index: 1; }

.sezione--rientrata-poco { padding-inline: clamp(1.25rem, 6vw, 5rem); }

.separatore { height: 1px; margin: 0; border: 0; background: var(--c-separatori); }

/* 🚨 LA VECCHIA TESTATA DENTRO LA HOME. (7/8/2026.)

   La prima sezione del contenuto della home **è un menù**: dentro ci sono
   `[nexen_menu menu="sx"]`, `[nexen_menu menu="dx"]`, `[nexen_ricerca]` e
   `[nexen_menu menu="utente"]`. Non è un errore della conversione: nel JSON le
   **prime sei sezioni** sono la vecchia testata in sei varianti (`_title`:
   DESKTOP, TABLET, MOBILE…), e sul sito di oggi sono spente da una riga scritta
   a mano dal grafico:

       body:not(.logged-in) #sezioninolog { display: none }

   Quella riga si aggancia a un `_element_id`, e `elementor-a-html.py` **non
   legge `_element_id` affatto**. Risultato: un secondo menù, alto **654px**, in
   mezzo alla prima pagina, visto da chiunque. È la parte grossa del +11,0% con
   cui la home esce dal cancello a 1440.

   📌 **La sezione NON si toglie**: Gabriele, il 6/8, *«dalla home non si toglie
   niente»*. Si riproduce quello che fa il vivo, cioè nasconderla a chi non è
   entrato — e a chi è entrato resta visibile, come là.

   ⚠ **Questo è un ponte, e va detto.** L'aggancio giusto è l'identificativo del
   grafico; qui si aggancia al **contenuto** (`:has(.nexen-menu)`), che su questo
   sito è preciso — delle 61 pagine convertite **solo la home** ha un
   `[nexen_menu]` dentro il testo — ma resta un aggancio indiretto. Si toglie il
   giorno in cui il convertitore porta `_element_id`: quel file, la notte in cui
   questa riga è stata scritta, era dichiarato dalla sessione Mancini.

   ✅ **19/8/2026 — il convertitore adesso legge `_element_id`.** Le quattro
   sezioni `sezioninolog` non escono più in pagina: `SEZIONI_SCARTATE` in
   `_conversione/elementor-a-html-cimiteri.py`, e nei «lasciati fuori» c'è una
   riga per ognuna. La home passa da 26.020 a 25.183 byte di `post_content` e la
   sua misura a 1440 **non si muove** (54,76% prima, 54,76% dopo): la prova che
   qui non si è tolto niente che si vedesse — si è tolto markup che il foglio di
   stile nascondeva comunque.

   📌 **La riga qui sotto resta lo stesso, ed è una rete, non più un ponte.** Il
   `post_content` di prima è ancora nel dump di `~/nexen-rilancio/20260804-pre-T/`:
   chi lo ripristina senza rigenerare si ritroverebbe la seconda barra, e questa
   riga gliela spegne. Si toglie quando quel dump non è più una strada. */
body:not(.logged-in) .pagina__contenuto > .sezione:has(.nexen-menu) { display: none; }

/* ---------------------------------------------------------------- colonne */

.colonne {
	display: grid;
	gap: 2rem;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	/* ⚠ ANCHE LE SEZIONI ANNIDATE HANNO UN RESPIRO DICHIARATO, E NON LO
	   LEGGEVA NESSUNO. (6/8/2026.)

	   `elementor-a-html.py` scrive `--su`, `--giu` e le loro varianti di tablet
	   e telefono su ogni `.colonne` che le dichiara — sono **sei** occorrenze,
	   sei per variante — e qui c'era solo `display: grid`. Il dato arrivava e
	   cadeva a terra.

	   Su `la-tua-pubblicita` la riga a due colonne dichiara `margin-top: 30px`
	   e sul vivo si vedono: 30px che noi non avevamo.

	   ⛔ **E si legge con il selettore di attributo, non con `var(--su, 0)`.**
	   Le variabili CSS **si ereditano**: `var(--su)` dentro `.colonne` avrebbe
	   preso il respiro della SEZIONE MADRE — su `la-tua-pubblicita` 50px sopra
	   e 50 sotto — e ogni riga a colonne del sito sarebbe cresciuta di cento
	   pixel senza che nessun dato lo dicesse. Il ripiego zero non salva da
	   questo: il valore ereditato non è mai il ripiego.
	   Con `[style*="--su:"]` la regola vale **solo dove il dato è scritto su
	   quell'elemento**, ed è lo stesso schema che il tema usa già per il
	   tablet e per il telefono. */
}
.colonne[style*="--su:"] { padding-block-start: max(0px, var(--su)); margin-block-start: min(0px, var(--su)); }
.colonne[style*="--giu:"] { padding-block-end: max(0px, var(--giu)); margin-block-end: min(0px, var(--giu)); }

/* `content_position` di Elementor: dove stanno le colonne dentro la riga
   quando una è più corta dell'altra. `elementor-a-html.py` lo scrive come
   `--vert` e qui non lo leggeva nessuno — nono dato scritto e caduto a terra
   contato stanotte. Stesso selettore di attributo, stessa ragione: `--vert` si
   eredita come tutte le variabili. */
.colonne[style*="--vert:"] { align-items: var(--vert); }
.colonne--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.colonne--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.colonne--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.colonne--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.colonne--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

/* 🚨 ANCHE UNA COLONNA HA UN FONDO, E OGGI NON GLIELO PORTA NESSUNO.
   (15/8/2026.)

   La riga c'era per la sezione (`:68`) e per il riquadro (`.riquadro`), per la
   colonna no. E la colonna è proprio dove il vivo lo mette: su `/termini-uso/`
   il rettangolo chiaro dietro al testo è
   `DIV.elementor-widget-wrap 1250×1109 → rgba(165,165,165,0.1)`, cioè il fondo
   di una **colonna**, non di una sezione.

   ⚠ QUESTA RIGA OGGI NON DIPINGE NIENTE, ed è giusto così: nessuna pagina
   convertita porta `--fondo` su una colonna, perché a perderlo è il
   CONVERTITORE, non il tema — `elementor-a-html-cimiteri.py` legge
   `background_color` solo sulle sezioni, e solo quando è scritto per esteso.
   Contati sull'estrazione del 4/8: **40 colonne con un fondo su 23 pagine**
   (26 delle quali rimandano a un colore globale del Kit, 14 lo scrivono), più
   **12 sezioni** il cui fondo è un rimando globale e sparisce per la stessa
   ragione. In tutto **29 pagine**. Rigenerare la conversione non è compito di
   questo giro: questa riga è la metà che sta nel tema, e quando la conversione
   tornerà a scrivere `--fondo` sulle colonne il fondo comparirà da solo.

   ⛔ SELETTORE DI ATTRIBUTO, E NON PER SIMMETRIA CON LE RIGHE QUI SOTTO: scritto
   come `.colonna { background-color: var(--fondo, transparent) }` **rompe il
   sito**, e l'ho misurato lo stesso giorno. `--fondo` è una proprietà
   personalizzata, quindi si EREDITA: una sezione che dichiara `--fondo:#000`
   lo passa a tutte le colonne dentro di lei, che si sono ridipinte del colore
   della sezione. Il metro l'ha visto subito — la home, che non doveva muoversi
   di un pixel, si è spostata di **+1,17% a 1440, +1,79% a 768, +1,01% a 375**.
   Con `[style*="--fondo"]` dipinge solo la colonna che se lo scrive addosso. */
.colonna { min-width: 0; }
.colonna[style*="--fondo"] { background-color: var(--fondo); }

/* E lo stesso per una RIGA, dal 21/8/2026: `fondo_di()` era chiamata sulle
   sezioni e sulle colonne, non sulle righe annidate — e sulla home sono le
   fasce chiare sotto il testo. La fascia `c42a916` dichiara #F7F7F7 **solo**
   come rimando globale del Kit, e senza di lei «Richiedi una lapide digitale» e
   «Servizio Gratuito» stavano sul nero: 2,97:1 da noi contro 6,20:1 sul vivo.
   ⛔ Selettore di attributo, per la stessa ragione scritta qui sopra. */
.riga[style*="--fondo"],
.colonne[style*="--fondo"] { background-color: var(--fondo); }

/* 🚨 REGOLA 1, SQUADRA S (26/8/2026) — LA FASCIA DEI SERVIZI ERA STROZZATA A
   1140/1200, CON LE BANDE NERE AI LATI. Misurato sullo staging a 1905: il
   fondo chiaro `#F7F7F7` delle due righe «Manifesti Free/Pro» (le sei schede)
   cominciava a x≈352 e finiva a x≈1553, cioè 1201px centrati su una finestra
   di 1905 — il `max-width` che `.sezione > .colonne` mette al CONTENUTO
   (riga 108) stava tappando anche il COLORE di fondo, che sul vivo va da
   bordo a bordo.

   Non si allarga la scatola: le colonne devono restare nei loro 1140/1200,
   altrimenti le tre schede si staccano dal margine di tutta la pagina (lo
   stesso difetto già trovato e tolto il 22/8 per `.riga--intera`, v. sopra).
   Si allarga solo il COLORE, con un'ombra piena — `box-shadow: 0 0 0 100vmax`
   non costa un byte di margine e `.pagina__contenuto{overflow-x:clip}`
   (riga 729) la taglia esatta al bordo della finestra, senza barra
   orizzontale. Perimetro: `--fondo:#F7F7F7` su `.colonne` esce due volte in
   tutta la home (le righe Free e Pro), ed è il solo posto giusto per questa
   ombra — un `--fondo` generico allargherebbe anche riquadri che sul vivo
   restano nella colonna (es. i pulsanti Accedi/Registrati, `#FFFFFF00`). */
/* 🚨 CORRETTO IL 26/8 SERA, e il difetto l'ha filmato Gabriele.

   `box-shadow: 0 0 0 100vmax` allarga il colore in TUTTE le direzioni: a 1440
   sono 1440px anche VERSO L'ALTO, e coprivano per intero la fascia sopra —
   quella del cimitero degli animali. Misurato: 976px uniformi #F7F7F7, il 15%
   della pagina, con dentro titolo, testo, bottone e fotografia del cane resi
   invisibili. Provato togliendo l'ombra da JS: la fotografia ricompare.

   👉 L'ombra risolveva un difetto vero (il fondo strozzato a 1140 con due bande
   nere ai lati) e ne creava uno peggiore. Qui si allarga SOLO DI LATO. */
.colonne[style*="--fondo:#F7F7F7"] {
	position: relative;
	background: none;
}
.colonne[style*="--fondo:#F7F7F7"]::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline: -100vmax;
	background: var(--fondo);
	z-index: 0;
}
.colonne[style*="--fondo:#F7F7F7"] > * {
	position: relative;
	z-index: 1;
}

/* ================================ la visibilità per dispositivo (15/8/2026)

   🚨 IL DIFETTO CHE HA FATTO NASCERE QUESTE TRE RIGHE SI VEDEVA A OCCHIO NUDO.

   Su `prepara-manifesto` compariva **a 1440** il riquadro «ATTENZIONE! *A causa
   delle dimensioni ridotte del tuo display*, è fortemente consigliato creare i
   manifesti funebri da PC o Tablet muniti di tastiera». Cioè a chi apre il sito
   da un monitor grande stavamo dicendo che il suo schermo è piccolo — una pagina
   che sembra rotta, non 125px di geometria. Nel JSON quel widget porta
   `hide_desktop`, e il convertitore non lo portava fuori: adesso sì, come
   classe (v. `classi_visibilita()`). Sono **55 dichiarazioni su 7 pagine**.

   ⛔ LE SOGLIE SONO QUELLE DEL SITO, NON NUOVE, e la ragione è che soglie nuove
   fanno sparire o comparire qualcosa a una larghezza dove nient'altro si muove.
   Sono le stesse tre fasce già usate da `.colonne`, dai rientri e dai corpi in
   questo stesso foglio — 800 e 1300, misurate sul vivo il 6/8/2026 (v. la nota
   «800 E 1300 NON SONO NUMERI DI COMODO»), non i 767/1024 predefiniti di
   Elementor:

       telefono   fino a  800px      →  `nascosto-telefono`
       tavoletta  801 – 1300px       →  `nascosto-tavoletta`
       schermo    da     1301px      →  `nascosto-schermo`

   ⚠ Quindi **768 su questo sito è TELEFONO, non tavoletta**: un elemento
   `hide_tablet` a 768 si vede, e a 1000 no. Chi prova a 768 aspettandosi la
   tavoletta legge il numero al contrario.

   `display: none` e non `visibility: hidden`: l'elemento non deve occupare
   spazio, che è tutto il punto — con `hidden` i 125px sarebbero rimasti lì.

   ⛔ `!important`, E NON PER PIGRIZIA: È MISURATO. (15/8/2026.)

   Scritte senza, queste tre righe pesano (0,1,0) e **perdevano**: `.elemento`
   `:has(.larghezza-auto)`, poche righe più su, pesa (0,2,0) — `:has()` somma la
   specificità del suo argomento — e riportava a `display: contents` gli
   involucri che dovevano sparire. Misurato sulla home a 375: **5 elementi su 8
   con `nascosto-telefono` restavano `display: contents`** invece di sparire.
   Non è un caso limite: una riga che dice «non mostrare» deve battere ogni
   riga che dice «come mostrare», perché sono due domande diverse e la prima
   viene prima. È anche quello che fa il sito di oggi, verificato sul vivo:
   `.elementor-hidden-desktop` a 1440 calcola `display: none`, altezza 0. */
@media (max-width: 800px) {
	.nascosto-telefono { display: none !important; }
}
@media (min-width: 801px) and (max-width: 1300px) {
	.nascosto-tavoletta { display: none !important; }
}
@media (min-width: 1301px) {
	.nascosto-schermo { display: none !important; }
}

/* 🚨 IL RIENTRO DELLA COLONNA NON LO LEGGEVA NESSUNO — NÉ DI LATO NÉ SOPRA.
   (7/8/2026.)

   `elementor-a-html.py` scriveva `--sx` e `--dx` su 25 colonne, e qui `.colonna`
   aveva **solo `min-width: 0`**: il dato arrivava fino al foglio e cadeva. Il
   verticale non usciva nemmeno dal convertitore, perché la funzione che lo
   scrive si chiama «l'imbottitura *laterale*» ed era davvero solo laterale
   (aggiunto nella copia di cantiere, `_conversione/elementor-a-html-cimiteri.py`).

   ⚠ **E il rientro laterale non è vestizione: è QUANTO È LARGO IL TESTO.** Su
   `la-tua-pubblicita` la colonna dichiara `padding: 20px 30px 20px 30px`. I 30
   di lato fanno il testo **60px più stretto**, cioè una riga in più ogni tante;
   i 20 sopra e sotto sono 40px per colonna. Senza, la nostra pagina è più larga
   e quindi **più corta** del vivo — ed è il segno che mancava per capire perché
   le pagine con molti widget uscivano corte a 1440 (−12,6%, −12,4%, −11,7%).

   ⛔ Selettore di ATTRIBUTO, per la quarta volta stanotte: `--su` e `--giu` sono
   scritti sulla sezione madre e sulla riga, e si **ereditano**. `var(--su)` su
   `.colonna` prenderebbe i 50px della sezione su ogni colonna del sito. */
.colonna[style*="--sx:"] { padding-inline-start: var(--sx); }
.colonna[style*="--dx:"] { padding-inline-end: var(--dx); }
.colonna[style*="--su:"] { padding-block-start: max(0px, var(--su)); margin-block-start: min(0px, var(--su)); }
.colonna[style*="--giu:"] { padding-block-end: max(0px, var(--giu)); margin-block-end: min(0px, var(--giu)); }
.colonna--foto { background-position: center; background-size: cover; min-height: 240px; }

/* 🚨 LA FOTOGRAFIA DELLA COLONNA ARRIVAVA FINO AL FOGLIO E CADEVA. (21/8/2026.)

   La riga qui sopra veste la posizione e il taglio di una fotografia **senza
   mai nominarla**: nessun `background-image`. Il convertitore scrive
   `--sfondo` sulle colonne dal 2/8/2026 (`elementor-a-html-cimiteri.py`, ramo
   `elType == "column"`), e quel dato non lo leggeva nessuno.

   Misurato sullo staging il 21/8/2026 a 1440, `getComputedStyle` sulla
   `.colonna--foto` della home:
       `--sfondo`         = url(/wp-content/uploads/2021/10/sfondo-nuvole-home-page-cimiteri-online.webp)
       `background-image` = **none**
   E' la meta' dell'eroe che sul vivo e' cielo, e da noi era nera.

   ⚠ E la fotografia da sola non bastava: la colonna era **larga 0**. Dentro
   `.riga` (che e' `display: flex`) una colonna il cui unico figlio e' nascosto
   si stringe sul contenuto, cioe' su niente. Sul vivo la stessa colonna e'
   `elementor-col-100`, larga 1440 (misurato: `f1602ff`, w 1440, h 540).

   ⛔ Selettore di ATTRIBUTO come per `--fondo` (v. la nota alla riga 364):
   `--sfondo` e' una proprieta' personalizzata e si EREDITA — `.colonna--foto`
   senza attributo prenderebbe la fotografia della sezione madre.

   Perimetro: `colonna--foto` esce **una volta sola** in tutto il sito
   convertito (`_conversione/html/16515.html`), quindi queste righe toccano
   l'eroe della home e nient'altro. */
.colonna--foto[style*="--sfondo"] { background-image: var(--sfondo); background-repeat: no-repeat; }
.riga > .colonna--foto { flex: 1 1 100%; }

/* 🚨 UNA RIGA CON UNA COLONNA SOLA E' TUTTA DI QUELLA COLONNA. (21/8/2026, F12
   secondo giro.)

   `.riga` e' `display: flex` e `.colonna` non dichiara `flex`, quindi vale il
   predefinito `0 1 auto`: la colonna **si stringe sul contenuto** invece di
   prendersi la riga. Dove dentro c'e' del testo non si vede, perche' il testo
   e' largo da se'. Dove dentro c'e' una figura dichiarata in percentuale il
   conto gira a vuoto e la colonna esce a meta' riga.

   Cosa costava, misurato a 1440 sui due siti:

       la freccia «scorri giu»    vivo x=696..744, centro **720** = centro pagina
                                  noi  x=396..444, centro **420**, decentrata di 300
                                  (cinque frecce su sei; quella dell'eroe, che sta
                                  in una colonna larga 1200, era gia' al centro)
       il pulsante «Vai al Modulo» vivo x=646..794, centro **720**
                                  noi  x=120..262, centro **191**, appiccicato a sinistra
                                  mentre il titolo e il testo sopra di lui sono centrati

   E' la voce 6 della scheda dello sguardo, «tre assi diversi nella stessa
   colonna»: non erano tre scelte del grafico, era una colonna che non prendeva
   la sua riga.

   ⛔ `:only-child` e non `.colonna` in generale: dove le colonne sono piu' di
   una si dividono la riga secondo quello che dichiarano, e quel conto qui non
   si tocca. Con una colonna sola non c'e' niente da dividere, e questo e'
   anche quello che fa Elementor — `_column_size` assente vuol dire 100.
   ⚠ E' la stessa forma della riga qui sopra, che per la colonna-fotografia
   questa cosa la diceva gia' dal 5/8. */
.riga > .colonna:only-child { flex: 1 1 100%; }

/* Il taglio in diagonale dell'eroe. E' il blocco 1/11 di `16515` nel censimento
   `_calco/css-scritto-a-mano.md`, mai portato fin qui:

       @media screen and (min-width: 1200px) { .elementor-element-9823723 {
           background-image: url(...sfondo-nuvole...);
           background-position: center top;
           clip-path: polygon(0 0, 100% 0, 100% 100%, 0 49%); } }

   piu' il `min-height: 60vh` che il vivo mette sul contenitore di quella
   sezione (misurato: h 540 su una finestra alta 900).

   ⚠ La soglia dei 1200 del vivo qui NON si riscrive: la sezione che porta
   questa colonna e' `.sezione--solo-largo`, che vive solo da 1301px in su
   (`nascosto-tavoletta` + `nascosto-telefono`). Una media query in piu' sarebbe
   una seconda soglia per lo stesso pixel. */
.sezione--solo-largo .riga > .colonna--foto {
	min-height: 60vh;
	background-position: center top;
	/* 🚨 REGOLA 2, SQUADRA S (26/8/2026) — IL 49% ERA UNA PERCENTUALE
	   DELL'ALTEZZA, QUINDI L'ANGOLO CAMBIAVA CON LA LARGHEZZA. A 1920 il
	   taglio usciva 8,16°, a 1440 10,83° (SISTEMA-ESTETICO.md §3): la stessa
	   riga di CSS disegnava due tagli diversi solo perché lo schermo cambiava.

	   L'unico angolo stabile misurato sul vivo è il 9,7° del
	   `linear-gradient(189.7deg)`. Qui il punto in basso a sinistra non è più
	   una quota dell'altezza della scatola (che vale «100%» in un polygon):
	   è un'altezza VERA, calcolata da `100vw * tan(9,7°)` — e siccome questa
	   colonna è larga esattamente 100vw (v. sotto), il rapporto fra il
	   dislivello e la larghezza resta 9,7° a qualunque finestra, non solo alle
	   quattro misurate. tan(9,7°) = 0,1709.
	   ⛔ Questa sezione vive solo da 1301px in su (v. la nota sopra): non
	   serve la variante 11° sotto i 768, che qui non si vede mai. */
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 100vw * 0.1709));
	/* ⚠ E arriva ai bordi dello schermo: sul vivo quella sezione e'
	   `elementor-section-full_width` e il cielo e' largo 1440, da noi la riga
	   tappava a 1200 e restavano 120px di nero per lato (misurato: cielo da
	   x=120 a x=1320). E' lo stesso scavalco gia' scritto per `.riga--intera`
	   qui sotto — il convertitore su questa riga non scrive quella classe.
	   La barra di scorrimento la taglia `.pagina__contenuto { overflow-x: clip }`. */
	flex: none;
	width: 100vw;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

.riga { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* ⛔ LO STACCO DICHIARATO: PROVATO, MISURATO, TOLTO. Non rifarlo così.
   (6/8/2026.)

   `elementor-a-html.py` scrive la classe `stacco` su ogni elemento che porta un
   respiro suo — il `_margin` del widget, o padding e margine sommati di una
   riga — e riempie tutta la scala (`--su`, `--su-t`, `--su-m`). Su
   cimiteri.online esce su **9 pagine** e nessuna regola la nomina: il dato è
   scritto e buttato all'ultimo passo. Sembrava una vestizione mancante.

   Vestito come lo veste il tema di Mancini — `margin-block: var(--su) var(--giu)`
   sulle tre larghezze — e misurato: **le pagine si sono allungate più di quanto
   il dato dichiari**. `la-tua-pubblicita` da +28,4% a **+40,3%** a 1440 (+97px
   dove i valori dichiarati sommano +20), `termini-uso` da +5,6 a **+10,5**,
   `sviluppo-siti-web` da dentro soglia a **+8,3**. A 375 invece migliorava
   (una pagina in meno fuori soglia). Verdetto misto, e a 1440 chiaramente in
   perdita: quello spazio nel tema **c'è già**, e arriva dai margini
   predefiniti di `<p>` e dei titoli.

   Quindi non è una vestizione che manca: è una vestizione che **raddoppia**. È
   la trappola «due correzioni per lo stesso pixel» che il tema di Mancini si è
   scritto in fronte. Per portare lo stacco davvero bisogna prima azzerare i
   margini predefiniti dentro `.colonna` — e quello è un pacchetto suo, che
   tocca tutte le pagine e vuole la sua misura. Non è un ritocco.

   ⚠ **RIAPERTO IL 7/8/2026, e la premessa di sopra era cambiata sotto i piedi.**

   Quella misura è stata presa quando i margini del tema erano **scelti a
   occhio** — titoli `0 0 .5em`, paragrafi `1em`, interlinea 1,6 — cioè più
   larghi di quelli del vivo. Sommarci sopra lo stacco raddoppiava davvero.
   Adesso i margini sono **quelli misurati sul vivo** (8/16 sui titoli, 14,4 sui
   paragrafi, interlinea 1,5), che è la stessa base su cui Elementor applica il
   `_margin` del widget — e fra il margine di un blocco e quello del figlio c'è
   l'**accorpamento**, che tiene il più grande, non la somma.

   E c'era una seconda ragione per riaprire, che nessuna misura aveva visto:
   **su 52 di questi respiri il valore è NEGATIVO**, e un valore negativo non
   raddoppia niente — accorcia. Su `mi-presento` a 375 sono −30, −34 e −45, cioè
   **109px** che la pagina deve perdere e non perdeva, su un +9,2% di troppo.

   ⛔ **E si legge con il selettore di attributo, per la terza volta stanotte**:
   `--su` si eredita dalla sezione madre, e `var(--su)` su `.stacco` prenderebbe
   i 50px della sezione.

   ⚠ RIAPERTO IL 28/8/2026 -- il doppione trovato sui servizi business.
   Un elemento che e' insieme .colonne e .stacco prendeva --su/--giu DUE
   VOLTE: come padding da :466-467 (.colonne[style*="--su:"]) e come margine
   da qui sotto. Sulla riga "Griglia->Accedi" di 16515.html (--giu:11%)
   uscivano 154px di padding PIU' 154px di margine -- 154 di troppo, contro
   il vivo che li' sta a 0 (sezione servizi: 900px = 100vh a 1440 e a 1920,
   la nostra arrivava a 1159/1280). :not(.colonne) chiude il doppione: chi e'
   .colonne prende solo il padding di :466-467, chi non lo e' (righe,
   elementi singoli) prende il margine di qui, come sempre.
   Tocca 8 occorrenze su 5 pagine (grep su _conversione/html/, 61 file):
   16515.html (4, la sezione servizi e altre tre righe a colonne della
   stessa pagina), 295.html, 14092.html, 50.html, 291.html (1 ciascuna) --
   su tutte il verso e' lo stesso, tolgono lo spazio doppiato, mai aggiunto:
   nessuna ragione per una via piu' stretta di questa. */
.stacco:not(.colonne)[style*="--su:"] { margin-block-start: var(--su); }
.stacco:not(.colonne)[style*="--giu:"] { margin-block-end: var(--giu); }

/* Una RIGA con la sua fotografia. Sulla home sono la fascia di foglie
   autunnali, le tombe col QR e gli amici animali: sul vivo sono sezioni
   annidate con `background_image`, e fino al 5/8/2026 il convertitore leggeva
   la foto delle sezioni di primo livello e delle colonne, ma non questa. */
.riga--foto,
.colonne--foto {
	background-image: var(--sfondo);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* Una fascia è una riga che NON ha contenuto: c'è solo la fotografia, e senza
   un'altezza sua sarebbe alta zero. `--alta` arriva dal contenuto quando il
   grafico l'ha dichiarata; il ripiego è la proporzione della fascia sul vivo
   (1440×549). */
.riga--fascia {
	display: block;
	width: 100%;
	height: var(--alta, min(38vw, 549px));
	flex: none;
	margin: 0;
}

/* 🚨 L'ALTEZZA DICHIARATA DI UNA RIGA CHE HA CONTENUTO. (21/8/2026, F12.)

   La fascia qui sopra è una riga SENZA contenuto e la sua altezza si leggeva.
   Le righe CON contenuto no: `custom_height_inner` arrivava dal JSON e cadeva
   nel convertitore (riparato lo stesso giorno, ramo `liv > 0`).

   È la causa delle bande vuote della home. Le sei sezioni di primo livello
   dichiarano tutte `100vh`, cioè **900 px di minimo** su uno schermo alto 900;
   se le righe dentro perdono la loro altezza, il contenuto si stringe e i 900
   restano scoperti. Misurato sullo staging a 1440 prima della correzione,
   `getComputedStyle` sulle sezioni di primo livello:

       sezione        altezza   contenuto   vuoto sotto
       73b604d foglie   900       458 px      **426 px** di bianco
       96d9a7b QR       900       235 px      **657 px** di grigio

   ⛔ SELETTORE DI ATTRIBUTO, non la classe nuda, ed è la quarta volta che
   questo foglio se lo scrive: `--alta` è una proprietà personalizzata e si
   EREDITA. `.riga { min-height: var(--alta) }` prenderebbe i `100vh` della
   sezione madre e farebbe **ogni riga della home alta 900 px** — cioè il
   difetto di partenza moltiplicato per il numero di righe.

   ⚠ `--alta-t` non si legge, qui come sulle sezioni (v. la nota a fondo
   foglio): il tema oggi porta solo il valore dello schermo e quello del
   telefono. Non è una dimenticanza di questa riga, è il comportamento che c'è. */
.riga[style*="--alta:"],
.colonne[style*="--alta:"] { min-height: var(--alta); }

/* `layout: full_width` sul vivo: la fascia arriva ai bordi dello schermo, non
   si ferma alla colonna del testo. Serve scavalcare il `max-width` che
   `.sezione > *` mette a tutti i figli. */
/* Senza `>`: la fascia non è sempre figlia diretta della sezione — sulla home
   sta dentro una colonna, e con il figlio diretto la regola non si applicava
   (fotografia larga 1200 invece dei 1440 del vivo). */
.sezione .riga--intera {
	max-width: none;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	/* 🚨 LA FOTOGRAFIA ARRIVA AI BORDI, IL TESTO NO. (21/8/2026, F12 secondo giro.)

	   Le tre righe qui sopra portano la riga a 100vw, ed e' giusto: sul vivo
	   quelle fasce sono `full_width` e la fotografia tocca i bordi. Solo che
	   con la riga larga 1440 anche le sue COLONNE ripartono da x=0, e dentro
	   ci sta del testo.

	   Misurato a 1440 sullo staging del 21/8, tutti i blocchi della home:

	       ogni sezione, ogni riga, ogni colonna con testo   x = **120**
	       la colonna del QR («Darai piu' valore…»)          x = **0**, larga 704
	       la colonna delle foglie (marchio + presentazione) x = **0**, larga 1440

	   Il testo del QR cominciava a 4 px dal bordo della finestra e finiva a
	   704, lasciando vuota tutta la meta' destra: e' l'unico blocco della
	   pagina che non rispetta il margine di 120 che tiene insieme il resto.
	   Il rapporto del primo giro lo elencava sotto «gusto, non difetto». Non lo
	   e': un allineamento rotto rispetto a TUTTA la pagina e' la voce 6 della
	   scheda dello sguardo.

	   L'imbottitura ridà alla riga la gabbia della sezione senza toglierle la
	   larghezza: lo sfondo si dipinge sulla scatola intera (l'imbottitura sta
	   DENTRO, e `background-origin` predefinito e' `padding-box`, che qui
	   coincide col bordo), il contenuto sta nei 1200 centrati come tutti.

	   ⛔ `max(0px, …)` e non il conto nudo: sotto i 1200 px di finestra la
	   sottrazione va sotto zero e un'imbottitura negativa non esiste. A 768 e a
	   375 questa riga vale zero e non cambia niente — verificato nelle catture.
	   ⚠ Perimetro: `riga--intera` esce **3 volte su tutte e 61 le pagine**, e
	   tutte e tre sulla home. Due hanno del testo dentro (foglie, QR), la terza
	   e' `riga--fascia`, cioe' la sola fotografia degli animali: li' non c'e'
	   contenuto e l'imbottitura non sposta niente.

	   ⛔ **TOLTA IL 22/8/2026, F12 quarto giro: era una gronda inventata.**

	   Il difetto era vero — il testo del QR cominciava a 4px dal bordo — ma la
	   causa non era che alla riga mancasse la gabbia: era che al WIDGET dentro
	   mancava la sua imbottitura, che il convertitore buttava. Rimessa quella
	   (`--imb-*` e `--mrg-*`, v. in fondo al foglio), i 120px di qui si sommano
	   e il testo si stringe. Misurato a 1440, «Nell'era digitale...»:

	       vivo      x=352 largo 736
	       con la gronda   x=472 largo **496**   (una gronda di troppo)
	       senza           x=352 largo **736**   (uguale al vivo)

	   e il paragrafo del QR: vivo x=864 largo 432, con la gronda x=736 largo
	   584, senza x=864 largo 432.
	   👉 Una compensazione scritta per un sintomo va tolta quando si trova il
	   dato che mancava, altrimenti si correggono due volte gli stessi pixel. */
}

/* ⚠ E il contenuto TAGLIA quello che esce di lato, perché `100vw` qui sopra
   comprende anche la barra di scorrimento: su un browser vero che la mostra,
   la fascia sarebbe ~15px più larga dello spazio disponibile e comparirebbe
   una barra ORIZZONTALE su tutto il sito.
   Misurato in headless non si vede — lì la barra non c'è — ed è esattamente il
   difetto che questa serata ha visto quattro volte: uno strumento che non ha
   la cosa che romperebbe non può dire che non si rompe.
   `clip` e non `hidden`: `hidden` creerebbe un contenitore di scorrimento e
   ammazzerebbe `position: sticky` dentro la pagina. */
.pagina__contenuto { overflow-x: clip; }

/* ---------------------------------------------------------------------------
   I TRE TAGLI GRANDI DELLA HOME, MAI PORTATI. (26/8/2026, SQUADRA U.)

   Sono i blocchi 3, 5 e 6 di 11 censiti in `_calco/css-scritto-a-mano.md`
   (5/8/2026) dentro `post-16515.css`: `clip-path: polygon()` scritto a mano
   nel riquadro CSS di Elementor, per-elemento, in coppia
   `min-width:1200px`/`max-width:1199px`. Il convertitore
   (`elementor-a-html-cimiteri.py`, righe 3219-3314) legge solo
   `shape_divider_*` e non li ha mai tradotti — v. anche REGOLA 2 qui sopra,
   che ha risolto lo stesso problema sul quarto taglio (l'eroe, blocco 1/11).

   ⚠ QUI LA MATEMATICA È DIVERSA DA QUELLA DELL'EROE, E VA DETTO PERCHÉ.

   REGOLA 2 ha scoperto che il 49% dell'eroe era una percentuale
   dell'ALTEZZA della scatola, e siccome quella scatola è larga 100vw ma
   alta un `min-height: 60vh` che il contenuto poteva spingere oltre, la
   percentuale usciva un angolo diverso a ogni larghezza (8,16° a 1920,
   10,83° a 1440) mentre il vivo mostra un angolo VERO stabile (9,7°, letto
   da un `linear-gradient` indipendente dalla scatola).

   Qui non c'è nessun gradiente esterno da cui leggere un angolo vero — solo
   gli angoli misurati sul vivo a due larghezze, dal brief:

       fascia    id        alta    1920      1440
       foglie    89494df   540px   5,6°      7,5°
       lapide    c5159bd   495px   1,9°/1,5° 2,6°/2,0°
       cane      47ad35a   549px   2,5°/2,1° 3,3°/2,8°

   Rifacendo il conto con le percentuali GREZZE di Elementor (v. sotto ogni
   regola) e l'altezza dichiarata dalla tabella, i sei angoli tornano
   ESATTI, alla prima cifra decimale, su tutte e tre le fasce — per esempio
   le foglie: atan(0,35×540 / 1920) = 5,63° ≈ 5,6°, atan(0,35×540 / 1440) =
   7,48° ≈ 7,5°. Cosa vuol dire: qui l'altezza NON si muove con la larghezza
   (`--alta` è lo stesso vh a 1920 e a 1440, il contenuto non la spinge
   oltre come succedeva sull'eroe) — è la LARGHEZZA a cambiare da sola, e un
   dislivello che è una quota fissa dell'altezza dà per forza un angolo
   diverso a ogni larghezza. Non è il bug dell'eroe: è la trigonometria di
   una quota fissa vista da larghezze diverse.

   ⛔ Quindi qui `100vw × tan(angolo)` sarebbe SBAGLIATO: farebbe crescere
   il dislivello con la larghezza, mentre il vivo lo tiene fisso. Verificato
   coi due angoli insieme (non uno solo, come poteva sembrare bastasse):
   nessun angolo unico moltiplicato per `100vw` riproduce ENTRAMBI 5,6° a
   1920 e 7,5° a 1440 — solo un dislivello fisso in pixel lo fa. La tecnica
   resta la stessa dell'eroe nello spirito (mai la percentuale della
   scatola, un numero calcolato e scritto in un `calc()`): cambia solo QUALE
   quantità è quella stabile — lì l'angolo, qui il pixel.
   ⚠ Sotto i 1200px non ci sono angoli misurati nel brief: i dislivelli lì
   sotto sono ricalcolati con lo stesso metodo (percentuale grezza ×
   altezza dichiarata), non ri-misurati sul vivo. Se un giro futuro li
   misura e non tornano, si aggiorna solo quel numero. */

/* REGOLA 6, SQUADRA U — fascia delle foglie autunnali (89494df), verso
   basso-destra. Percentuali grezze: min-width:1200 → 35%/65% (dislivello
   simmetrico 0,35×540 = 189px); max-width:1199 → 0%/86% (nessun taglio in
   alto, 0,14×540 = 75,6px in basso). */
.riga--foto.riga--intera[style*="foglie-cimitero-autunno-2.webp"] {
	clip-path: polygon(0 0, 100% 189px, 100% 100%, 0 calc(100% - 189px));
}
@media (max-width: 1199px) {
	.riga--foto.riga--intera[style*="foglie-cimitero-autunno-2.webp"] {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 75.6px));
	}
}

/* SQ-HTML (33-gabriele/SQ-HTML.md, G6) — LO STACCO SPARITO CON IL TITOLO.

   G6 ha tolto l'`<h2>` "Cimiteri.Online" fra il marchio e il paragrafo
   "Nell'era digitale…" di questa fascia (ordine di Gabriele: la scritta non
   torna, in nessuna forma). Quell'h2 portava anche l'aria: era `.stacco`
   con `--su:4rem`, lo stesso numero che questa pagina usa altrove per lo
   stacco sotto un marchio (l'h2 dell'eroe, `16515.html:5`, `--su:4rem`).
   Tolto il titolo, resta solo la regola generica fra `.elemento` fratelli
   (`.colonna > .elemento:not(:last-child)`, riga 288): **PRIMA 20px**, il
   paragrafo incollato al logo su una fascia alta 60vh.

   Non si rimette la scritta (sarebbe aggirare l'ordine con un `::before`):
   si rimette solo l'aria, con lo stesso numero che il titolo portava e che
   il resto del sito già usa per questo stacco. **DOPO 4rem (64px)**, mirato
   solo qui perché il resto del sito continua a usare i 20px generici fra
   elementi qualunque. */
.riga--foto.riga--intera[style*="foglie-cimitero-autunno-2.webp"] > .colonna > .elemento:first-child {
	margin-block-end: 4rem;
}

/* 🚨 30/8/2026 — TROVATO DAL CERTIFICATO (R2-BORDO), NON DA UN OCCHIO: L'AREA
   DI CLIC DEL MARCHIO TOCCA IL BORDO A 375, IL LOGO VISIBILE NO.
   Il logo qui dentro (`<a href="#top"><img … style="width:150px"></a>`) si
   centra con `margin-inline:auto` sull'IMG (riga ~3510: serve a tutte le
   immagini `.elemento > a > img` del sito, 124 casi su 61 pagine — non si
   tocca, e' condivisa). Ma un margine automatico centra un box STRETTO dentro
   un contenitore LARGO: perche' funzioni, l'ancora attorno all'immagine resta
   `display:block` a piena larghezza — 363px a 375, fino al bordo (0px di
   margine a destra), mentre il logo dentro resta 150px e ben centrato.
   **Verificato aprendo l'immagine** (`verifica-logo-bordo-crop.png`): a
   schermo non si vede niente fuori posto, il logo e' centrato con margine su
   entrambi i lati — è un'area di click invisibile piu' larga del disegno,
   non un difetto visivo. Si stringe comunque, scoped alla sola ancora di
   questa fascia (non alla regola condivisa): l'ancora si centra da sola con
   `width:fit-content`, l'immagine dentro non ha piu' bisogno del proprio
   margine automatico ma lo tiene (l'altra regola non la vede piu', essendo
   gia' stretta) per non toccare le altre 123 immagini che la condividono. */
.riga--foto.riga--intera[style*="foglie-cimitero-autunno-2.webp"] > .colonna > .elemento:first-child > a {
	display: block;
	width: fit-content;
	margin-inline: auto;
}

/* REGOLA 7, SQUADRA U — fascia della lapide col QR (c5159bd), verso
   alto-destra. ⚠ NON è un parallelogramma: bordo sopra e sotto hanno
   dislivelli diversi (13% e 10%), un trapezio a imbuto — non si
   semplifica a un valore solo. Percentuali grezze: min-width:1200 →
   13%/90% (0,13×495 = 64,35px sopra, 0,10×495 = 49,5px sotto);
   max-width:1199 → 6%/94% (0,06×495 = 29,7px, simmetrico).

   🚨 FIX-1920 (28/8/2026): IL RITAGLIO TAGLIAVA ANCHE IL TITOLO, NON SOLO LA
   FOTO. Misurato via DOM su staging: l'h2 «Darai più valore…» sta a soli 8px
   dal bordo alto della riga (getBoundingClientRect), e la sua colonna
   comincia a x=50% del contenitore. A quell'x il ritaglio qui sopra toglie
   64,35×(1-0,5)≈32px dall'alto — più degli 8px di margine dell'h2, quindi le
   lettere finiscono nella zona invisibile. Presente a QUALSIASI larghezza da
   800px in su: anche a 1440 (misurato: taglia solo «DA» di «DARAI», poco
   visibile). Peggiora a 1920/2560 perché il titolo ha una lunghezza fissa in
   px (--corpo:30px, non risponde alla larghezza) mentre la colonna di testo
   cresce con la finestra: il testo, centrato nella colonna, si avvicina al
   centro della colonna — cioè più a fondo nella fascia tagliata — quanto più
   la finestra è larga, finché quasi tutto il titolo ci cade dentro.

   Il ritaglio era sul CONTENITORE intero (foto + le due colonne, titolo e
   paragrafo compresi): la foto va tagliata, il testo no. Si sposta la foto
   (e il suo ritaglio) su uno pseudo-elemento dietro al contenuto — stessa
   immagine, via `--sfondo` che il pseudo eredita, stesso poligono — e il
   contenuto vero resta sopra, fuori dal clip-path. `isolation: isolate`
   tiene lo z-index negativo del pseudo dentro questo contenitore, cosi' non
   dipende da quale antenato piu' in alto ha gia' un contesto di sovrapposizione. */
.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"] {
	position: relative;
	isolation: isolate;
	background-image: none;
}
.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--sfondo);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	/* 🚨 G9(c), 28/8/2026 — IL TAGLIO SOPRA E QUELLO SOTTO TAGLIAVANO LO STESSO
	   LATO: NON ERA UN TRAPEZIO A IMBUTO, ERA UN LATO PIENO E L'ALTRO NO.

	   I quattro punti di prima — (0 64.35px), (100% 0), (100% 100%),
	   (0 calc(100% - 49.5px)) — tagliano il TOP a sinistra e il BOTTOM di
	   nuovo a sinistra: a destra (x=100%) i punti sono (100% 0) e
	   (100% 100%), cioè altezza PIENA, zero taglio. Risultato: a destra il
	   bordo inferiore combacia col rettangolo della scatola — non è
	   «diagonale che si raddrizza», è proprio dritto, perché lì non c'è
	   nessun taglio. Gabriele l'ha visto: «parte in diagonale da sinistra e
	   poi si raddrizza a destra».
	   Un imbuto vero taglia due angoli OPPOSTI (come la REGOLA 6 qui sopra:
	   su a destra, giù a sinistra) — qui invece tagliava due angoli dallo
	   STESSO lato. Si sposta il taglio del bordo inferiore sul lato destro
	   (`100% calc(100% - 49.5px)` invece di `100% 100%`, e `0 100%` al posto
	   del punto sinistro): stessi due dislivelli di sempre (64,35px sopra,
	   49,5px sotto — nessun numero nuovo, solo l'angolo giusto), ora un'unica
	   diagonale per bordo, da bordo a bordo. */
	clip-path: polygon(0 64.35px, 100% 0, 100% calc(100% - 49.5px), 0 100%);
}
@media (max-width: 1199px) {
	.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]::before {
		clip-path: polygon(0 29.7px, 100% 0, 100% calc(100% - 29.7px), 0 100%);
	}
}

/* 🚨 G9(a), 28/8/2026 MATTINA — SBAGLIATO, RIAPERTO LA SERA STESSA.

   La nota che stava qui diceva che a questa larghezza il vivo non ha più
   due colonne, e collassava la griglia a UNA sola larga quanto la foto:
   il titolo e i due paragrafi finivano centrati sull'immagine INTERA,
   cioè sopra la lapide e sopra il QR, che restavano dietro le parole.
   Gabriele, guardando il risultato: «ho detto testo centrato alla foto,
   ma intendevo centrato nello spazio libero orizzontale, guarda come si
   vede sul mio sito live». E sul vivo è così: la lapide col QR sta nella
   metà sinistra, il testo nella metà destra, centrato dentro quella metà
   — mai sopra il disegno.

   Non mancava il collasso: mancava la lettura dell'ordine. Si toglie la
   riga di sopra e torna a valere `.colonne--2` (riga 475), che è la
   struttura che il convertitore scrive già (`16515.html:85`): la colonna
   sinistra `role="presentation"` resta vuota e riserva lo spazio della
   lapide, quella di destra prende testo e `a-centro` lo centra dentro sé
   stessa, non sull'immagine intera.
   ⛔ Solo sopra gli 800px: sotto, la riga già in fondo al foglio (26/8,
   «IL TESTO DEL QR PASSA SOTTO IL SUO STESSO GRAFICO») impila le colonne
   di proposito e sposta l'inquadratura della foto a destra per lo stesso
   motivo — quella non si tocca, ed è per questo che qui non serve una
   media query: il collasso di sopra era SENZA soglia e vinceva anche a
   1920, dove le colonne sul vivo stanno affiancate.

   `align-items: center` in più: `.colonne` è una griglia (riga 442) e non
   centra da sola come fa `.riga` (flex, riga 746) — senza, il testo parte
   dall'alto del `min-height:55vh` (riga 843) invece di stare a mezza foto
   come sul vivo. Perimetro invariato: lo stesso selettore di REGOLA 7, una
   sola occorrenza su tutta la home. */
.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"] {
	align-items: center;
}

/* REGOLA 8, SQUADRA U — fascia del cane al tramonto (47ad35a), la sola
   fotografia senza testo sopra, verso basso-destra. Percentuali grezze:
   min-width:1200 → 15%/87% (0,15×549 = 82,35px sopra, 0,13×549 = 71,37px
   sotto); max-width:1199 → 8%/92% (0,08×549 = 43,92px, simmetrico).
   ⚠ Selettore su `[style*="tombe-animali-domestici"]`, non sull'URL intero:
   `.riga--fascia` esce una volta sola sulla home, ma il prefisso del file
   («tombe-animali-domestici…») è quello che la distingue dalla lapide qui
   sopra, che condivide la coda del nome («…qr-code-collegamento-cimiteri-
   online.webp»). */
	/* 🚨 FOTO-CANE (28/8/2026) — LA DIAGONALE DI SOTTO USCIVA A SCALINO, NON DA
	   BORDO A BORDO. Il `clip-path` era già giusto (stessi numeri del vivo,
	   confermato da `getComputedStyle` su entrambi i siti a 1920: identico
	   `polygon(0px 0px, 100% 82.35px, 100% calc(100% - 71.37px), 0px 100%)`).
	   Non era un taglio sbagliato: era un ORDINE DI SOVRAPPOSIZIONE sbagliato.

	   Questa riga non ha contenuto (`.riga--fascia`), quindi non ha una sua
	   altezza dichiarata dai fratelli e sfora sotto la propria `<section>` di
	   15,6px (549 di foto contro 900 di `100vh`, con la sezione sopra di testo
	   che ne mangia il resto). Quei 15,6px avanzano nel flusso normale, e la
	   `<section>` SUCCESSIVA (Servizi Business) — anche lei senza `position`,
	   cioè anche lei "statica" — si dipinge SOPRA quell'avanzo perché viene
	   dopo nell'ordine del documento: le zone statiche si dipingono nell'ordine
	   in cui compaiono, l'ultima vince. Risultato misurato pixel per pixel su
	   `staging.cimiteri.online` a 1920: da x=0 a x≈1280 il confine appariva
	   PIATTO a y=4389 (il bordo della sezione dopo, non la foto), e solo da
	   x≈1280 a 1920 si vedeva la vera diagonale — lo scalino che ha visto
	   Gabriele. Prova diretta: con `position:relative` la riga passa dal
	   gruppo di disegno "blocchi statici in ordine di documento" al gruppo
	   "elementi posizionati", che si dipinge DOPO — la sezione successiva (che
	   resta statica) torna sotto, e la diagonale è tornata unica da bordo a
	   bordo su tutta la larghezza (verificato: senza `z-index` non bastava,
	   qualcosa lì sotto ha già uno z-index proprio; con `z-index:5` la foto
	   vince in modo netto, sopra ai 2/3 che il foglio usa altrove per le fasce
	   "davanti"). Non è la stessa causa del bug di REGOLA 7 (due angoli
	   tagliati sullo stesso lato) né dei tagli in px fissi anziché in
	   proporzione: qui il taglio era già corretto, era coperto. */
.riga--fascia[style*="tombe-animali-domestici"] {
	position: relative;
	z-index: 5;
	/* 🔁 29/8/2026 - IN PERCENTUALE, COME IL VIVO, NON IN PIXEL.
	   Il commento qui sopra dice che il taglio era «già giusto, stessi numeri
	   del vivo, confermato su entrambi i siti **a 1920**». Ed è lì l'errore:
	   il vivo scrive `polygon(0 0, 100% 15%, 100% 87%, 0 100%)`, in
	   PERCENTUALE; noi scrivevamo 82,35px e 71,37px. Su una foto alta 549px
	   sono lo stesso taglio — 82,35/549 = 15%, 71,37/549 = 13% — e infatti a
	   1080 le due misure coincidevano. Su una finestra più bassa la foto si
	   accorcia e i pixel no: il taglio resta grande mentre tutto il resto
	   rimpicciolisce, e si somma alla fascia della sezione sotto.
	   👉 Verificare due valori a UNA sola risoluzione non dice se sono la
	   stessa cosa: dice solo che in quel punto valgono uguale. */
	clip-path: polygon(0 0, 100% 15%, 100% 87%, 0 100%);
}
@media (max-width: 1199px) {
	.riga--fascia[style*="tombe-animali-domestici"] {
		clip-path: polygon(0 0, 100% 43.92px, 100% calc(100% - 43.92px), 0 100%);
	}
}

/* 🚨 IL TITOLO DI «SERVIZI BUSINESS» SPARIVA SOTTO LA FOTO DEGLI ANIMALI.
   (30/8/2026, ZONA BASSA — segnalazione di Gabriele: testo nascosto/sbordante
   sulla fascia Servizi.)

   La foto qui sopra ha `position:relative;z-index:5` apposta (per il taglio
   diagonale che deve vincere sulla sezione dopo, v. il commento sopra
   REGOLA 8) e la sua riga (`.riga--fascia`, senza contenuto) e' piu' alta
   del rapporto d'aspetto che della sezione: sborda sotto il fondo della
   PROPRIA sezione (misurato a 375/768: foto fino a y=3809, sezione fino a
   3766 — 43px di sconfino) ed entra nella sezione «Servizi business»
   (id=6) che viene subito dopo. `.sezione` ha `position:relative` ma
   `z-index:auto`, quindi NON isola un contesto di sovrapposizione proprio:
   lo z-index:5 della foto si confronta con quello del titolo (l'`.elemento`
   che avvolge l'h2, z-index:2, riga ~2360) nello stesso livello, e 5 batte
   2 — sul pezzo di larghezza dove sconfina, la foto vince e copre l'inizio
   del titolo («SERVIZI BUSINESS P…» spariva, restava solo «…ER OPERATORI
   DI SETTORE»). Misurato con scroll vero (non solo con la geometria): la
   dicitura tagliata si vede identica dopo uno scroll reale, non e' un
   artefatto di cattura.
   👉 Non si tocca la foto (REGOLA 8, sopra: serve cosi' per il taglio) ne'
   la sezione: si alza SOLO il titolo di «Servizi business», sopra il 5
   della foto, scoping per id cosi' non cambia nessun altro dei nove h2
   della home (`[id="6"]`, lo stesso schema gia' in uso qui sotto).
   ⛔ `!important` necessario: l'`.elemento` scrive `z-index:2` come STILE
   INLINE (Elementor), e l'inline vince su qualunque selettore esterno a
   parità di `!important` — senza, questa regola non si applicherebbe mai.

   🚨 SEGUITO, 30/8/2026 (G7) — IL FIX DI SOPRA ALZAVA IL TITOLO SOPRA LA FOTO
   DEGLI ANIMALI, MA A 1920/1440 IL TITOLO RESTAVA ILLEGGIBILE LO STESSO, PER
   UNA CAUSA DIVERSA CHE IL Z-INDEX NON TOCCA.

   Misurato con `getBoundingClientRect`+`getComputedStyle` sullo staging: l'h2
   sta a viewport-y 65-87px; il cuneo nero (`.colonne.sezione--fascia-su::before`,
   riga ~2412 sotto, `inset-block-start:-114.6px` + `height:10vw`≈192px alla
   larghezza di 1920) arriva **solo fino a y≈72-264** — e il cuneo è uno spicchio
   sottile a sinistra e profondo a destra (v. commento REGOLA 8): alla x dove
   comincia la parola "SERVIZI" lo spicchio non è ancora nero, sotto c'è il
   fondo chiaro dichiarato sulla `.colonna` (`--fondo:#F7F7F7`, 16515.html
   sezione id="6"). Testo bianco (`color:#F7F7F7` inline) su fondo quasi
   bianco: **le prime lettere sparivano per contrasto, non per z-index** —
   lo z-index vinto sopra faceva vedere il testo, ma sopra il colore sbagliato.
   Non si tocca il cuneo (stessa ragione di sopra: e' tarato sulle icone
   Free/Pro, cambiarlo ci farebbe perdere quella misura) e non si tocca
   l'allineamento del titolo (contenuto, fuori da questo foglio): si dà al
   RIQUADRO del titolo un fondo nero SUO, a piena larghezza della riga,
   indipendente dalla geometria del cuneo sotto — stesso nero (`--fascia-su-c`),
   quindi il bordo fra i due non si vede. */
[id="6"] .elemento:has(> h2.a-destra.m-centro.stacco) {
	z-index: 6 !important;
	/* 🚨 RICHIESTA DI GABRIELE, 30/8 — LA VERA FONTE DEL NERO DIETRO IL
	   TITOLO NON ERA IL CUNEO DI R10 (quello si tocca poco sopra in questo
	   stesso file), ERA QUESTO RIQUADRO: dato nero apposta il 28/8 perché
	   doveva combaciare col cuneo sottostante (`--fascia-su-c`, qui sotto)
	   senza far vedere il bordo fra i due. Con la sezione diventata chiara,
	   il riquadro segue lo stesso colore del cuneo: stesso ragionamento di
	   allora, colore diverso. Lo `z-index:6 !important` resta, e' di prima. */
	background: #F7F7F7;
}

/* ------------------------------------------------------------------ testi */

/* 🚨 I TITOLI E I COLLEGAMENTI SONO #54595F, E SONO LETTI SUL VIVO. (15/8/2026.)

   Erano `var(--c-bianco)`, che con il fondo nero di tutto il sito stava in
   piedi. Con il fondo bianco — che è quello vero, v. `base.css` — sarebbero
   andati a **1,00:1**: bianco su bianco. Il valore giusto non è una scelta:
   `getComputedStyle` sul vivo, contando gli elementi del solo contenuto,

       /termini-uso/    h2 e h3 → rgb(84,89,95)   a → rgb(84,89,95)   p → rgb(127,127,127)
       /mi-presento…/   h2 e h3 → rgb(84,89,95)                       p → rgb(127,127,127)
       /?s=manifesto    h3 ×10  → rgb(84,89,95)   a ×20 → rgb(84,89,95)

   cioè `--c-secondario` per il colore forte e `--c-testo` per il corrente.

   Il contrasto, con la formula di WCAG, sui due fondi che il sito ha:

       #54595F su #FFFFFF → **7,07:1**   ✓ (titoli e collegamenti, pagine chiare)
       #FFFFFF su #000000 → **21,0:1**   ✓ (home, 404, sezioni scure)
       #7F7F7F su #FFFFFF →   4,00:1     = quello che fa il vivo sul suo corpo
                                           del testo. Non si «corregge»: si copia.

   `--c-inchiostro` vale #54595F sulle pagine chiare e #FFFFFF su quelle scure,
   e la riga qui sotto è una sola per tutte e due. */
.pagina h1, .pagina h2, .pagina h3, .pagina h4 { color: var(--c-inchiostro); }
.pagina p, .pagina li { color: var(--c-testo); }
/* 4/9/2026 (S-RESIDUI-1) — aggiunta `:not([class*="civ-bottone"])`, la stessa
   esclusione che `pagine-testo.css` §8 usa già per lo stesso motivo: un
   `<a class="civ-bottone">` (il componente bottone dell'archivio civile,
   usato anche fuori dalle pagine di testo — es. `/memorie/`, l'archivio del
   plugin, che si avvolge in `.pagina` come ogni pagina) perdeva colore e
   sottolineatura locali contro questa regola, (0,3,1) contro la (0,2,1) del
   suo stile di componente: bottone d'inchiostro con testo sottolineato in
   grigio invece che bianco e pulito. */
.pagina a:not(.bottone):not(.pulsante):not([class*="civ-bottone"]) { color: var(--c-inchiostro); text-decoration: underline; text-underline-offset: .18em; }

/* 🚨 REGOLA 4, SQUADRA S (26/8/2026) — I TITOLI DELLE SEI SCHEDE DEI SERVIZI
   ERANO SOTTOLINEATI, E SUL VIVO NON LO SONO MAI.

   Le sei schede della fascia servizi (MARKETPLACE, PIAZZA DEL CIMITERO,
   MANIFESTI FUNEBRI FREE, SVILUPPO WEB, PUBBLICITÀ, MANIFESTI FUNEBRI PRO —
   `_conversione/html/16515.html` righe 128, 135, 142, 150, 157, 164) hanno il
   titolo scritto come `<h2><a href="…">TITOLO</a></h2>`: la regola qui sopra
   sottolinea ogni collegamento del contenuto, e un titolo-collegamento non fa
   eccezione. Un titolo non si sottolinea mai su questo sito — è la stessa
   voce 4 di `SISTEMA-ESTETICO.md` §6 (i titoli sono maiuscolo, mai altro
   trattamento) — e la regola vale per ogni titolo linkato, non solo per la
   home: non è mai stato un caso previsto finché nessuna pagina lo faceva.

   🚨 PRIMO GIRO SBAGLIATO, TROVATO GUARDANDO LA CATTURA E NON IL CODICE: qui
   c'era solo `.pagina h2 a { text-decoration:none }`, specificità (0,1,2), e
   la regola qui sopra — coi suoi due `:not()` — pesa (0,3,1): vince lei, i
   titoli restavano sottolineati e la schermata lo diceva chiaro. Servono gli
   stessi due `:not()` anche qui per pareggiare le classi e vincere sugli
   elementi. */
.pagina h1 a:not(.bottone):not(.pulsante),
.pagina h2 a:not(.bottone):not(.pulsante),
.pagina h3 a:not(.bottone):not(.pulsante),
.pagina h4 a:not(.bottone):not(.pulsante) { text-decoration: none; }

.pagina img { margin-block: 1rem; }

/* 🚨 GLI ELENCHI E I FILETTI SCRITTI NELL'EDITOR: IL RESPIRO SOPRA E SOTTO NON
   È NOSTRO. (8/8/2026, letto nei fogli del vivo, non dedotto.)

       reset.css              dd, dl, dt, li, ol, ul { … margin-block: 0 }
       custom-frontend.min.css .elementor hr { background-color: transparent; margin: 0 }

   Sono due righe del sito vivo, e valgono su tutte le sue pagine. Da noi
   `base.css:113` dà a ogni elenco `margin: 0 0 1em` e il filetto si tiene il
   mezzo em del browser sopra e sotto: **13px per elenco, 13 per filetto**, e
   dentro un testo lungo diventano un conto vero. Su
   `politiche-sulla-privacy` il solo pannello aperto ne aveva **dieci elenchi e
   tre filetti**, più quelli annidati: **370px** dei 372 di troppo a 1440.

   ⚠ `:not([class])` non è prudenza, è la riga di confine: gli elenchi e i
   filetti **senza classe** sono l'HTML che il grafico ha scritto nell'editor,
   e lì il respiro lo deve mettere chi lo mette sul vivo, cioè nessuno. Quelli
   **con** una classe li ha costruiti il tema — `hr.separatore` (il widget
   `divider`, 56 sul sito), `ul.carosello`, `ul.elenco-voci`, `ul.social` sulla
   home, `ul.quattrocentoquattro__strade` sul 404 — e hanno il loro respiro
   scritto apposta. Contati: 59 elenchi su 64 e 9 filetti su 65 sono senza
   classe, e le cinque liste della home sono tutte del tema, quindi la home non
   si muove di un pixel. */
.pagina__contenuto ul:not([class]),
.pagina__contenuto ol:not([class]),
.pagina__contenuto hr:not([class]) { margin-block: 0; }

/* 🚨 E IL RIENTRO DELL'ELENCO È QUELLO DEL BROWSER, NON UNO NOSTRO. (9/8/2026.)

   Sopra ho azzerato il margine degli elenchi dell'editor perché il vivo lo
   azzera. Il rientro no, e lì il vivo non tocca niente: `reset.css` gli leva il
   margine e gli lascia il `padding-inline-start: 40px` del browser. Noi diamo
   `1.4em` a ogni elenco del sito (`base.css:113`), cioè **18,2px** a 13px di
   corpo — venti di meno, testo più largo, meno righe.

   L'8/8 l'avevo misurato e lasciato stare, scrivendo che «va a nostro favore».
   Era vero e per questo era pericoloso: su `politiche-sulla-privacy` faceva
   coppia con i blocchi di testo a 14px, che tiravano dall'altra parte, e i due
   errori si annullavano dentro un numero buono. Chiudendone uno solo la pagina
   sarebbe uscita. Chiusi tutti e due: **+332px a 375 e +96 a 768** da questa
   riga, −38 e −49 dalla tipografia, e la pagina passa da −2,1% a +0,2%.

   ⚠ Stesso confine di sopra, e per la stessa ragione: `:not([class])` sono gli
   elenchi che il grafico ha scritto nell'editor. `ul.carosello`,
   `ul.elenco-voci`, `ul.social` e `ul.quattrocentoquattro__strade` sono del
   tema, hanno il rientro loro, e non si toccano. */
.pagina__contenuto ul:not([class]),
.pagina__contenuto ol:not([class]) { padding-inline-start: 40px; }

/* --------------------------------------------------------------- pulsanti */

/* 🚨 Censimento del 26/8, terzo giro: «Vai al Modulo» (home) e «Contattaci»
   (mi-presento, sviluppo-siti-web) usano QUESTA classe, non `.bottone` —
   sono «lo stesso mestiere» (v. nota sotto) ma due fogli diversi, e il
   fix di `.bottone` in base.css non li tocca. Stessa misura, stesso motivo:
   40 e' sotto i 44 della scheda. */
.pulsante {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .55em 1.4em;
	/* 🚨 ERA `--c-testo`, E SONO 0,5 PUNTI DI CONTRASTO SOTTO LA SOGLIA.
	   (21/8/2026, F12.)

	   `.pulsante` e `.bottone` fanno lo stesso mestiere e avevano due fondi
	   diversi: #7F7F7F qui, #767676 di la'. Misurato sul pixel della cattura
	   della home, bianco sul fondo del pulsante: **4,00:1**, sotto il 4,5 di
	   WCAG AA per un corpo di 15px. Con `--c-bottone` fa **4,54:1**.

	   ⛔ Non e' un colore nuovo e non e' una scelta: `--c-bottone` sta in
	   `base.css:39` con il conto scritto accanto — «il grigio piu' chiaro su cui
	   il bianco arriva a 4,5:1». Era gia' calcolato, lo usava un componente su
	   due. Adesso lo usano tutti e due.

	   ⚠ Perimetro: `.pulsante` esce su **8 pagine** delle 61. Lo scarto e' di 9
	   punti per canale, cioe' sotto la soglia di 24 di `confronta-pixel.py`:
	   il metro a pixel non lo vede, e infatti non si e' mosso. */
	background: var(--c-bottone);
	color: var(--c-bianco);
	font-size: 15px;
	text-decoration: none;
	transition: background-color .18s ease;
}
.pulsante:hover, .pulsante:focus-visible { background: var(--c-secondario); }
.pulsante__icona { line-height: 0; }

/* --------------------------------------------------- carosello e galleria */

/* Il carosello dei manifesti: `scroll-snap`, zero JavaScript. Sostituisce i
   cinque `media-carousel` di Elementor Pro, che per scorrere cinque immagini
   caricavano Swiper. */
.carosello {
	display: flex;
	gap: 1rem;
	list-style: none;
	margin: 1.5rem 0;
	padding: 0 0 .75rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	overscroll-behavior-x: contain;
}
.carosello > li {
	flex: 0 0 clamp(220px, 30%, 320px);
	scroll-snap-align: start;
}
.carosello img { width: 100%; margin: 0; }

.galleria {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}
.galleria img { width: 100%; margin: 0; }

/* ------------------------------------------------- fisarmonica (`toggle`) */

/* Le guide del sito sono sei fisarmoniche. Con Elementor erano un widget
   `toggle` più il suo JavaScript; qui sono `<details>` nativi: si aprono col
   dito, col mouse e con la tastiera, e non c'è niente da caricare. */
.fisarmonica { margin: 1.5rem 0; border-top: 1px solid var(--c-separatori); }
.fisarmonica__voce { border-bottom: 1px solid var(--c-separatori); }
.fisarmonica__voce > summary {
	padding: 1rem .25rem;
	cursor: pointer;
	font-family: "Lusitana", serif;
	font-size: 16px;
	color: var(--c-inchiostro);
	list-style: none;
}
.fisarmonica__voce > summary::-webkit-details-marker { display: none; }
.fisarmonica__voce > summary::after { content: "+"; float: inline-end; font-size: 20px; line-height: 1; }
.fisarmonica__voce[open] > summary::after { content: "–"; }
.fisarmonica__corpo { padding: 0 .25rem 1.25rem; }

/* ------------------------------------------------- riquadri ed elenchi */

/* Il riquadro con l'icona (`icon-box`). Le misure arrivano dal contenuto, come
   per le sezioni: il grafico ha deciso 30px sopra e 40 sotto, 19 di stacco sotto
   il titolo, l'icona a 40px con 30 di aria, il fondo bianco al 58% e un'ombra.
   Erano tutte nel JSON e nessuna veniva letta: il riquadro usciva alto 129px
   dove il vivo ne fa 247, e la terza sezione di «Sviluppo siti Web» 433 contro
   741. I valori qui sotto sono il ripiego di chi non porta il dato. */
.riquadro {
	display: block;
	padding: var(--su, 1.25rem) var(--dx, 1.25rem) var(--giu, 1.25rem) var(--sx, 1.25rem);
	text-decoration: none;
	background: var(--fondo, transparent);
	box-shadow: var(--ombra, none);
}
/* Le icone che erano di Font Awesome: il disegno lo fa `icone.css`, generato
   dal font che il sito aveva. Questa regola vale anche per la vecchia forma a
   `<img>`, che resta per le icone caricate come file. */
.riquadro > img.riquadro__icona { width: 48px; height: auto; }
.riquadro__icona { margin: 0 0 var(--icona-aria, .75rem); }
.riquadro__titolo {
	margin: 0 0 var(--stacco, .5rem);
	font-size: var(--corpo, inherit);
	color: var(--c-inchiostro);
}
.riquadro__corpo { color: var(--c-testo); }

.elenco-voci { list-style: none; margin: 1rem 0; padding: 0; }
.elenco-voci li { margin: 0 0 .4rem; }

.social { display: flex; flex-wrap: wrap; gap: .75rem; list-style: none; margin: 1rem 0; padding: 0; }
.social__voce { text-decoration: none; }

/* ---------------------------------------------------------- scheda doppia */

.scheda-doppia { position: relative; display: block; text-decoration: none; }
.scheda-doppia__retro {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	opacity: 0;
	background: rgba(0, 0, 0, .7);
	transition: opacity .2s ease;
}
.scheda-doppia:hover .scheda-doppia__retro,
.scheda-doppia:focus-visible .scheda-doppia__retro { opacity: 1; }

/* ------------------------------------------------------------ gli elenchi */

.elenco { display: grid; gap: 2rem; max-width: var(--larghezza-max); margin-inline: auto; padding: 3rem 1.25rem; }
.elenco--risultati { gap: 1.5rem; }
.scheda { display: grid; gap: .75rem; }
.scheda__titolo { margin: 0; }
.scheda__titolo a { color: var(--c-inchiostro); text-decoration: none; }
/* A-028: il titolo della notizia reagisce al mouse e alla tastiera (prima nessun segno). */
.scheda__titolo a:hover,
.scheda__titolo a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.scheda__data { margin: 0; font-size: 12px; color: var(--c-secondario); }
.scheda__estratto { margin: 0; }
.elenco__vuoto { max-width: var(--larghezza-max); margin-inline: auto; padding: 4rem 1.25rem; }

/* ============================ la griglia di schede della ricerca (15/8/2026)

   🚨 SUL VIVO LA RICERCA È UNA GRIGLIA, NON UN ELENCO — e valeva il 73,79% di
   pixel diversi a 1440, il confronto peggiore dopo la home.

   Tutti i numeri qui sotto sono `getComputedStyle` e `getBoundingClientRect` su
   `cimiteri.online/?s=manifesto`, alle tre larghezze del cancello:

       larghezza   colonne              contenitore      scheda      miniatura
        1440       4 × 275,75px         1190px a x=125   276×336     190px
         768       1                    728px  a x=20    728×493     364px
         375       1                    335px  a x=20    335×314     168px
       stacco fra le schede: 35px sopra/sotto, 29px di fianco, a ogni larghezza

   Le tre misure del contenitore sono **la stessa regola**: `min(1190px, 100% −
   40px)`. A 1440 fa 1190 e lo centra a 125; a 768 fa 728; a 375 fa 335. E le
   quattro colonne cadono esatte: (1190 − 3×29) / 4 = **275,75**.

   La miniatura non ha un'altezza in pixel ma una percentuale della larghezza
   della scheda, e il vivo ne usa due: 190/276 = **68,9%** sopra gli 800,
   364/728 e 168/335 = **50%** sotto. (È il punto di rottura del sito, 800 e non
   767: v. la nota sui punti di rottura più in alto.)

   ⚠ `object-fit: fill` e non `cover`, ed è misurato: il vivo stira la
   miniatura dentro il riquadro invece di ritagliarla. A 1440 le due cose
   coincidono quasi (l'immagine è 208×148, cioè 71,2%, contro un riquadro al
   68,9%); a 768, dove il riquadro va al 50%, `cover` taglierebbe dove il vivo
   schiaccia, e sarebbe mezza miniatura diversa su dieci schede. */
.elenco--carte {
	display: grid;
	width: min(1190px, 100% - 40px);
	max-width: none;
	margin-inline: auto;
	padding: 0;
	grid-template-columns: 1fr;
	gap: 35px 29px;
}
@media (min-width: 801px) {
	.elenco--carte { grid-template-columns: repeat(4, 1fr); }
}

.scheda--carta { margin: 0; }

/* Tutta la scheda è un collegamento solo: sul vivo lo sono la miniatura, il
   titolo e «Visita »», e tre collegamenti alla stessa pagina sono tre fermate
   inutili per chi naviga con la tastiera. */
.scheda__carta {
	display: block;
	height: 100%;
	background: var(--c-bianco);
	box-shadow: 0 0 10px rgba(0, 0, 0, .15);
	color: var(--c-secondario);
	text-decoration: none;
}

.scheda__miniatura {
	position: relative;
	display: block;
	padding-block-end: 50%;
	overflow: hidden;
}
@media (min-width: 801px) {
	.scheda__miniatura { padding-block-end: 68.9%; }
}
.scheda__miniatura img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: fill;
	margin: 0;
}

/* 15px di fianco e 25 sopra: le due misure di `.elementor-post__text` sul vivo.
   Il titolo esce largo 246 su una scheda da 276, cioè 276 − 15 − 15. */
/* 45 e non 25, e i 45 stanno in un posto solo. Sul vivo la pila è: miniatura
   190, `margin-bottom: 20px` del collegamento, `margin-top: 25px` del testo —
   ma due margini adiacenti si FONDONO, e scritti su due elementi darebbero 25,
   non 45. Il conto della scheda, letto riga per riga sul vivo:
   190 + 45 + 36 (titolo su due righe) + 25 + 20 («Visita »») + 20 = **336**,
   che è l'altezza misurata. */
.scheda__carta-testo { display: block; padding: 0 15px 20px; margin-block-start: 45px; }
.scheda__carta-titolo {
	display: block;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--c-secondario);
}
.scheda__visita {
	display: inline-block;
	/* I 25px che sul vivo sono il `margin-bottom` del titolo. */
	margin-block-start: 25px;
	font-size: 13px;
	color: var(--c-secondario);
}

/* --------------------------------------------- ricerca, 404 e impaginazione */

/* 🚨 `--articolo` MANCAVA DA QUESTO ELENCO, E SONO 116 PAGINE PIÙ GLI ARTICOLI.
   (8/8/2026, misurato da un'altra squadra.)

   `single.php` mette `pagina pagina--articolo` sull'`<article>`, e qui la parola
   non c'era: la pagina restava senza `max-width` e senza `padding`. Misurato: a
   1280 il testo è largo **1265px**, a **375 tocca i due bordi** (0 e 0). La
   controprova è che le pagine dei comuni, che non passano da `single.php`, stanno
   a 20px dai bordi come devono.

   Non serviva una regola nuova: serviva una parola. È il template delle schede
   dei cimiteri.

   ⚠ Nessuna delle **20 pagine del metro** (`_calco/pagine.txt`) passa da
   `single.php`: sono tutte `page.php`, youzify, ricerca o 404. Quindi il
   Cancello A non si muove — ma le 116 schede sì, e vanno rimisurate con il loro
   strumento. */
/* 🚨 E LO STESSO BUCO SI È RIAPERTO CON UN ALTRO NOME: `--singola`. (19/8/2026.)

   Le tre pagine della porta pubblica delle imprese — rivendica, correggi,
   rimuovi — escono da `nexen-luoghi/imprese-pagine.php` con
   `class="pagina pagina--singola …"`. `--singola` non stava in questo elenco,
   quindi succedeva esattamente quello che l'8/8 succedeva a `--articolo`:
   nessuna gabbia e nessun respiro. Misurato a 1440 sulla resa vera: il testo
   partiva da **x=0** e arrivava a 1440, righe da ~230 caratteri.

   👉 La lezione dell'8/8 non era «aggiungere `--articolo`»: era che questa riga
   è un **elenco chiuso di nomi**, e ogni template nuovo deve entrarci o nasce
   senza pagina. Un `:where(.pagina[class*="pagina--"])` avrebbe preso anche
   `--ricerca`, che la gabbia la rifiuta apposta (riga qui sotto): l'elenco
   resta esplicito, e questo commento è il promemoria di allungarlo. */
.pagina--ricerca, .pagina--404, .pagina--archivio, .pagina--articolo,
.pagina--singola, .pagina--archivio-memorie {
	max-width: var(--larghezza-max);
	margin-inline: auto;
	padding: 4rem 1.25rem;
}
/* S-RIFINITURA, 4/9/2026 — `.pagina--archivio-memorie` (archive.php, l'indice
   `/memorie/`, CPT `nexen_lapide`) mancava da questo elenco chiuso: stesso
   buco già descritto qui sopra per `--articolo` e `--singola` (SGUARDO-
   TUTTO-20260903.md §2 "Memorie", gravità 2 e 3 — il titolo "Le memorie"
   partiva da x≈6 invece dei ~146px usati altrove). Un template nuovo, non
   entrato nella lista. */
/* ⚠ LA RICERCA NON PORTA LA GABBIA DELLE ALTRE TRE. (15/8/2026.)

   `--ricerca` sta nella riga qui sopra insieme a `--404`, `--archivio` e
   `--articolo`, e quella riga tappa a 1200px con 20px di respiro: il contenuto
   utile resta largo **1160**. La griglia del vivo ne vuole **1190**, e 30px in
   meno spostano tutte e quattro le colonne. Qui la gabbia si toglie e la
   larghezza la decidono i pezzi dentro, che la sanno per misura. Il respiro
   sopra e sotto resta, ed è quello delle altre pagine. */
.pagina--ricerca { max-width: none; padding-inline: 0; }

/* 4/9/2026 (S-RESIDUI-1) — `.pagina--archivio-memorie` esce dalla gabbia
   generica per la STESSA ragione di `--ricerca` sopra: da oggi porta la
   sua testata vera (`.testata-pagina`, la stessa markup/foglio delle
   pagine di testo — v. `nexen-memoriale/template/archivio.php`) e il
   corpo nella griglia a 12 colonne di `pagine-testo.css`
   (`.pagina-testo__corpo`), che hanno GIA' il proprio `max-width`/
   `margin-inline:auto`/`padding-inline` (`var(--ac-colonna)`/
   `var(--pt-margine)`, unico anche per la testata). Una seconda gabbia
   qui sopra (1200px, 20px di respiro) restringerebbe la colonna di 40px
   in più di quella delle altre pagine della famiglia — non «uguali»,
   solo vicine. Zero cage qui, esattamente come le pagine `pagina-testo`
   vere (`page.php` non porta nessuna classe `.pagina--*`). */
.pagina--archivio-memorie { max-width: none; padding: 0; }

/* A-027 (checkup 15/10): `.pagina--archivio` ha gia' il suo respiro laterale (riga 1717): l'elenco
   e la paginazione dentro non ne aggiungono un secondo (a 375 px titolo a x=20, notizie a x=40). */
.pagina--archivio .elenco,
.pagina--archivio .navigation.pagination { padding-inline: 0; }

/* S-RIFINITURA, 4/9/2026 — pagina «Imprese» (ID 73584, /imprese/): unica fra
   le pagine `page.php` senza famiglia il cui `post_content` è un `<p>` nudo,
   senza `.sezione/.colonne` (lo scaffold che dà il respiro alle altre 55
   pagine convertite da Elementor) — toccava il bordo sinistro a 1440
   (SGUARDO-TUTTO-20260903.md §2 "Editoriali", gravità 2). Scelto un
   selettore per ID (`.post-73584`, da `post_class()`), non una regola
   generica su `.pagina__contenuto`: non si sa se le altre 55 pagine hanno
   già il proprio respiro dal loro `.sezione` interno, e allargare la regola
   a tutte rischiava di raddoppiare il margine dove già c'è. Stessa gabbia
   delle righe sopra. */
.pagina.post-73584 .pagina__contenuto {
	max-width: var(--larghezza-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

/* Il titolo: `h2` a 20px Lusitana lo dà già il Kit, il colore la riga dei
   titoli. Restano il maiuscolo e il centro, che sul vivo `getComputedStyle`
   riporta come `text-transform: uppercase` e `text-align: center`. */
.ricerca__testa { margin-block-end: 2rem; }
.ricerca__titolo { margin: 0; text-align: center; text-transform: uppercase; }
.ricerca__parole { color: var(--c-inchiostro); }
.ricerca__conto { color: var(--c-secondario); }
.ricerca__modulo, .quattrocentoquattro__ricerca { margin-block: 1.5rem 2.5rem; }
.quattrocentoquattro__spiega { max-width: 46ch; }

/* Le sei strade che il vivo offre sotto «Forse stavi cercando:». Una lista,
   non sei pulsanti: sono collegamenti, e un elenco lo dice da solo a chi
   naviga con la tastiera o con un lettore di schermo. */
.quattrocentoquattro__errore { margin: 0; text-transform: uppercase; letter-spacing: .2em; }
.quattrocentoquattro__numero { margin: 0; font-size: 72px; line-height: 1; color: var(--c-bianco); }
.quattrocentoquattro__trovata { margin: 0 0 1rem; font-family: "Lusitana", serif; font-size: 20px; color: var(--c-bianco); }
.quattrocentoquattro__forse { margin-block: 0 .75rem; color: var(--c-bianco); }
.quattrocentoquattro__strade { margin: 0 0 2rem; padding: 0; list-style: none; }
.quattrocentoquattro__strade li { margin-block: .35rem; }
.quattrocentoquattro__strade a { color: var(--c-testo); text-decoration: underline; }
.quattrocentoquattro__strade a:hover,
.quattrocentoquattro__strade a:focus-visible { color: var(--c-bianco); }

.navigation.pagination { max-width: var(--larghezza-max); margin-inline: auto; padding: 0 1.25rem 4rem; }
.navigation.pagination .page-numbers { display: inline-block; padding: .4em .8em; color: var(--c-testo); text-decoration: none; }
.navigation.pagination .current { color: var(--c-inchiostro); }

/* ⚠ 800 E 1300 NON SONO NUMERI DI COMODO: SONO I PUNTI DI ROTTURA DI QUESTO
   SITO. (6/8/2026.)

   Fino a oggi il tema usava 767 e 1024, che sono i valori **predefiniti** di
   Elementor. cimiteri.online li ha cambiati nel Kit, e il foglio che il sito
   vivo serve lo dice apertamente: `.elementor-col-*` porta le sue percentuali
   dentro `@media (min-width: 801px)`, e le misure del tablet stanno in
   `(min-width: 801px) and (max-width: 1300px)`. Contate sul vivo: 173 regole a
   `(max-width: 800px)`, 98 a `(max-width: 1300px)`.

   Quindi sotto gli 801px il vivo IMPILA le colonne, e il tema — che aspettava
   767 — le teneva affiancate proprio a **768**, che è una delle tre larghezze
   del cancello. Misurato lo stesso giorno su «Sviluppo siti web»: le due
   sezioni a colonne uscivano 722 invece di 1203 e 811 invece di 1538, cioè
   **−33% sulla pagina intera**. Non erano quattro pagine con quattro difetti:
   era questa riga. */
@media (max-width: 800px) {
	.colonne--2, .colonne--3, .colonne--4, .colonne--5, .colonne--6 { grid-template-columns: 1fr; }
	/* ⚠ `var(--su, 2.5rem)` e non `2.5rem` secco: il 2,5rem è il RIPIEGO di chi
	   non dichiara niente, non un tetto che cancella quello che il grafico ha
	   deciso. Con il punto di rottura a 767 la differenza non si vedeva —
	   nessuna delle tre larghezze del cancello cadeva nella fascia stretta
	   tranne 375. Portandolo a 800 il 2,5rem secco è arrivato su **768** e ha
	   spento il respiro dichiarato di ogni sezione.
	   ⚠ E il ripiego è **zero** anche qui, per la stessa ragione della riga
	   larga: il predefinito di una sezione di Elementor è zero, e 2,5rem sopra
	   più 2,5rem sotto su 96 sezioni erano 80px inventati a testa. Chi
	   dichiara continua a essere servito da `--su`, `--su-t` e `--su-m`. */
	.sezione {
		padding-block: max(0px, var(--su, 0px)) max(0px, var(--giu, 0px));
		margin-block: min(0px, var(--su, 0px)) min(0px, var(--giu, 0px));
	}
	/* `.sezione--eroe { min-height: 70vh; }` stava qui: tolta insieme al suo
	   gemello desktop (v. la nota a :387), stessa regola morta, stesso motivo. */

	/* 🚨 IL TESTO DEL QR PASSA SOTTO IL SUO STESSO GRAFICO, A 768 E A 375.
	   (26/8/2026, cancello dello sguardo — «Tagli».)

	   La riga delle «tombe col QR» tiene UNA fotografia sola dietro due
	   colonne (`.colonne--2.riga--foto`): a 1440 le colonne stanno affiancate
	   e il grafico del QR, cucito dentro la foto a sinistra (misurato sul
	   file sorgente: x 598-970 su 1920), cade sotto la colonna SENZA testo.
	   Qui sopra le colonne si impilano (`grid-template-columns: 1fr`), e la
	   stessa foto — `background-position: center`, `cover` — resta UNA sola
	   dietro il blocco impilato: la parte con la foto e la parte col testo
	   non sono più due zone separate, sono la STESSA zona. Il testo, ora
	   largo quanto tutta la colonna, ci finisce sopra.

	   ⚠ **Non è il vivo a inventarlo**: il vivo ha lo stesso taglio (misurato
	   il 26/8 su `cimiteri.online` a 375, stesso paragrafo sopra lo stesso
	   QR) — ma è un difetto del disegno originale, non un capriccio nostro,
	   e la regola già scritta per il piede (21/8) vale anche qui: si legge,
	   e ci si allontana dal vivo dove il vivo sbaglia.

	   La cura non è un velo più scuro sopra il testo (nasconderebbe il
	   sintomo lasciando la causa) e non è un `overflow` (la foto è lo sfondo
	   di riga, non un elemento che trabocca): è spostare l'INQUADRATURA della
	   stessa fotografia, cosa che `background-position` fa da sempre, senza
	   ridisegnare né tagliare nulla. Spostandola tutta a destra
	   (`background-position: right center`), il ritaglio visibile — per
	   qualunque altezza di riga, la foto essendo 1920×588, molto più larga
	   che alta — parte da x≈1010 su 1920: il grafico del QR (598-970) resta
	   fuori campo, e quello che si vede è il prato vuoto della stessa foto.
	   Perimetro: **un solo elemento** ha questo sfondo su tutta la home
	   (`grep -c` sul convertito, 1 su 1); nessun'altra riga fotografica
	   (l'eroe con le foglie, la fascia degli animali) ha testo sopra un
	   grafico cucito nella foto, quindi non tocca loro.

	   🚨 SQ-375-QR (28/8/2026, BANCO-8 punto 4) — SPENTA DA UN FIX DELLO
	   STESSO POMERIGGIO SULLO STESSO ELEMENTO, PERCHÉ PUNTAVA UN CONTENITORE
	   CHE NON DISEGNA PIÙ NIENTE.

	   Questa regola e la REGOLA 7 (riga 1044) toccano lo STESSO elemento —
	   un solo `.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]`
	   in tutta la home, verificato sul convertito. Il pomeriggio del 28/8 la
	   REGOLA 7 gli ha tolto `background-image` (per salvare il titolo dal
	   ritaglio, v. sopra) e ha spostato la foto su `::before`, dietro al
	   contenuto. Spostare `background-position` sul CONTENITORE, come faceva
	   questa regola da un'altra sessione (26/8), non serve più a niente: il
	   contenitore non disegna più sfondo, e `::before` resta con
	   `background-position: center` (riga 1055), MAI toccato da questa
	   query. Due correzioni giuste ciascuna per il proprio giorno, scritte
	   guardando solo il proprio sintomo: la prima spostava l'inquadratura
	   sull'elemento che ALLORA disegnava la foto, la seconda ha cambiato
	   quale elemento la disegna senza aggiornare chi altro la puntava.
	   Risultato misurato: a 375 il titolo tornava a cadere sopra lapide e
	   QR, come prima del 26/8.

	   Si punta `::before` invece del contenitore: stessa specificità della
	   regola base (riga 1049-1057), vince per ordine — questa query viene
	   dopo nel foglio. Nessun numero nuovo, stesso `right center` di sempre. */
	.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]::before {
		background-position: right center;
	}
}

/* ------------------------------------------------- l'aiuto dei manifesti */

/* La barra sopra l'editor: avviso, primi passi, e i cinque tipi di modello.
   Sta in `template-parts/aiuto-manifesti.php` e vale sulle 52 pagine figlie
   della 288. Sparisce con L7, insieme a Photopea. */
.aiuto-manifesti { max-width: var(--larghezza-max); margin-inline: auto; padding: 1.5rem 1.25rem 0; }
.aiuto-manifesti .sezione { padding-block: 0 1.5rem; }
.aiuto-manifesti h3, .aiuto-manifesti h5 { margin: .5rem 0; }
.aiuto-manifesti .fisarmonica { margin-block: 1rem; }
.aiuto-manifesti .colonna--centra,
.aiuto-manifesti .m-colonna--centra { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }

/* 🚨 IL RIQUADRO DELL'EDITOR È ALTO UNO SCHERMO, NON 690px. (6/8/2026.)

   `nexen-igiene` sostituisce l'iframe di Photopea con un riquadro che ne tiene
   l'altezza, e la legge dall'attributo: `height="690px"`. Quel numero è scritto
   nel `post_content`, quindi sembrava il dato. **Non lo è.**

   `height="690px"` non è HTML valido — l'attributo vuole un numero, non una
   lunghezza — e il browser lo butta via. L'altezza vera gliela dà una riga di
   CSS scritta a mano dal grafico dentro le impostazioni del template #5519
   («Testata Manifesti»), che il vivo serve in `post-5519.css`:

       #manifesti { height: 100vh !important; width: 100vw !important; }

   Misurato sul vivo a 1440 (finestra 900): l'iframe è **900px**, non 690; il
   suo contenitore 906 (l'iframe è `display:inline`, sotto ci sta la riga di
   base); il widget 875, per un `_margin: top -31` del grafico. Da noi erano
   690, cioè **185px in meno su 51 pagine**: −15,8% a 1440, −18,5% a 768,
   −21,6% a 375 sul manifesto civile, e le altre 50 sono la stessa pagina.

   ⚠ **E la lezione, che non riguarda i manifesti**: quel blocco sta in fondo
   al foglio del post, dentro due commenti che dicono «Start custom CSS» e «End
   custom CSS», cioè nelle **impostazioni di pagina** di Elementor Pro — NON
   dentro `_elementor_data`. L'estrazione legge `_elementor_data`, quindi
   **tutto il CSS scritto a mano dal grafico non è mai stato portato**, su
   nessuna pagina. Il censimento sta in `_calco/css-scritto-a-mano.md`.

   ⛔ E una trappola pagata scrivendo proprio questo commento: la prima
   versione **citava per esteso** i due delimitatori di Elementor, con le
   stelline e le barre. Un commento CSS che ne cita un altro **si chiude dove
   non deve**, e da lì in poi il foglio è spazzatura: la regola qui sotto non
   è mai arrivata al browser. Il file era giusto sul disco, giusto servito
   dall'indirizzo, e il numero non si muoveva di un decimale. Un `*` seguito da
   una barra non si scrive dentro un commento, nemmeno fra virgolette.

   L'`!important` non è pigrizia: il riquadro porta `--nexen-esterno-h:690px`
   in uno stile in linea, e sul vivo è esattamente un `!important` di foglio a
   scavalcare l'altezza dichiarata sull'elemento. Si riproduce quello.

   Vale su `body.sezione-manifesti`, cioè la 288 e le sue 52 figlie. La 288 non
   ha iframe (51 pagine su 61 ce l'hanno, lei no), quindi non la tocca. */
body.sezione-manifesti .nexen-esterno { --nexen-esterno-h: 100vh !important; }

.manifesto__titolo {
	max-width: var(--larghezza-max);
	margin: 2rem auto .5rem;
	padding-inline: 1.25rem;
	color: var(--c-inchiostro);
}

/* ---------------------------------------------------- schede e avvisi */

/* Le schede di Elementor (`tabs`) diventano una pila di `<details>`, come le
   fisarmoniche: una fila di linguette che si scambiano vuole JavaScript e
   `aria-selected` scritti giusti, una pila no. Sulla pagina delle politiche
   sulla privacy dentro un solo widget c'era tutta la tabella dei cookie.

   🚨 **MISURATO IL 7/8/2026, e il vivo fa due cose diverse a due larghezze.**
   Il widget `tabs` di `termini-uso`, letto sul sito di oggi:

       larghezza   vivo   noi
        1440        294   552     linguette in FILA, un pannello aperto
         768        585   734     fisarmonica, un pannello aperto
         375        916  1070     fisarmonica, un pannello aperto

   Cioè: **sotto gli 801 anche il vivo è una pila** — la pila non era
   sbagliata, era sbagliata *a 1440*. E dove la pila è giusta restavamo
   comunque 150px più alti, perché la nostra riga misura **56px** e la sua
   **45**: padding `16px` invece di `10px`, e peso 400 invece di 600.

   I numeri qui sotto sono i suoi, letti con `getComputedStyle`, non scelti.
   E il pannello aperto è **uno solo**: `pannelli: 6, pannelli_visibili: 1` a
   tutte e tre le larghezze. Lo tiene il `name` sui `<details>`, che la copia di
   cantiere del convertitore adesso scrive — senza, la pila si apriva tutta e la
   pagina cresceva a ogni clic. */
/* ✅ LE LINGUETTE IN FILA, FATTE PER DAVVERO. (8/8/2026.)

   Il 7/8 erano state provate con `display: contents` sul `<details>` e tolte:
   quella dichiarazione porta via la scatola, e con lei **la regola del browser
   che nasconde il pannello chiuso** — `corpi_visibili: 6` invece di 1,
   `termini-uso` a +124,0% e `politiche-sulla-privacy` a +253,8%.

   Il markup adesso è **radio + etichette** (v. il ramo `tabs` del convertitore),
   e la ragione per cui regge è esattamente quella che faceva cadere l'altro
   tentativo, letta al contrario: a nascondere il pannello chiuso siamo **noi**,
   con un `display: none` scritto qui sotto, non il browser. Sciogliere le
   scatole non toglie più niente.

   I numeri sono quelli del vivo, letti con `getComputedStyle` l'8/8/2026 sul
   widget `tabs` di `termini-uso`, non scelti:

       larghezza  blocco  linguetta                     pannello
        1440       294    58 = 20+16+20 +1sopra +1sotto  20+testo+20 +1sotto
         768       585    45 = 10+24+10 +1sopra          10+testo+10 +1sopra
                          (e 1px sotto l'involucro)

   Cioè **sotto gli 801 anche il vivo è una pila**, con l'imbottitura da 10px;
   sopra è una fila, con l'imbottitura da 20px. I `10px` che stavano qui prima
   erano il valore del vivo — ma quello della **linguetta del telefono**, non
   quello del pannello del desktop, che è 20.

   ⚠ Resta una differenza dichiarata, e va a nostro favore: dentro il pannello
   il vivo lascia agli elenchi il rientro predefinito del browser (**40px**),
   noi diamo `1.4em` (18,2px) a tutti gli elenchi del sito (`base.css:113`).
   Il testo nostro è più largo, va a capo di meno, e su `termini-uso` a 1440 il
   pannello aperto esce **19px più corto** del suo. È una scelta del tema su
   ogni elenco di ogni pagina: non si scavalca in un punto solo. */
.schede { position: relative; margin: 1.5rem 0; border-bottom: 1px solid var(--c-separatori); }

/* La radio porta lo stato senza JavaScript. Resta raggiungibile da tastiera —
   le frecce scorrono il gruppo — e invisibile: non `display: none`, che la
   toglierebbe anche al percorso di tabulazione. */
.schede__scelta {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
/* ⚠ Il rientro sta sulla `<label>` dentro, non sull'involucro: se sta fuori, la
   fascia intorno al testo smette di essere cliccabile. L'involucro c'è perché
   una `<label>` nuda non sopravvive a `wpautop` (v. il ramo `tabs` del
   convertitore); porta i bordi, che l'altezza la fanno lo stesso. */
.schede__linguetta { border-top: 1px solid var(--c-separatori); }
.schede__linguetta > label {
	display: block;
	padding: 10px;
	cursor: pointer;
	font-family: "Lusitana", serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	color: var(--c-inchiostro);
}
.schede__corpo { display: none; padding: 10px; border-top: 1px solid var(--c-separatori); }

/* Il `<p>` che `wpautop` lascia per strada. Dopo l'ultima radio compare un
   `</p>` spaiato, e il parser di HTML5 da un `</p>` spaiato non fa niente: fa
   un `<p></p>` VUOTO. Vuoto non vuol dire innocuo — si porta i 14,4px di
   margine di ogni paragrafo, e nella colonna verticale spingeva giù di 14px
   tutte le linguette. Dentro `.schede` un `<p>` figlio non esiste: i figli
   sono le radio, le linguette e i pannelli. */
.schede > p { display: none; }

/* Il pannello scelto. I `<div>` figli di `.schede` si alternano
   linguetta/pannello, quindi il pannello k è `div:nth-of-type(2k)` e la
   linguetta k `div:nth-of-type(2k-1)`. `nth-of-type` conta per tipo, e gli
   `<input>` (e l'eventuale `<p>` vuoto che `wpautop` lascia per strada) non
   entrano nel conto dei `<div>`. `~` basta perché le radio stanno tutte prima.
   Sul sito il massimo è 6 pannelli; ne stanno scritti 8 per non tornarci. */
.schede > .schede__scelta:nth-of-type(1):checked ~ div:nth-of-type(2),
.schede > .schede__scelta:nth-of-type(2):checked ~ div:nth-of-type(4),
.schede > .schede__scelta:nth-of-type(3):checked ~ div:nth-of-type(6),
.schede > .schede__scelta:nth-of-type(4):checked ~ div:nth-of-type(8),
.schede > .schede__scelta:nth-of-type(5):checked ~ div:nth-of-type(10),
.schede > .schede__scelta:nth-of-type(6):checked ~ div:nth-of-type(12),
.schede > .schede__scelta:nth-of-type(7):checked ~ div:nth-of-type(14),
.schede > .schede__scelta:nth-of-type(8):checked ~ div:nth-of-type(16) { display: block; }

/* Sotto gli 801 è una fisarmonica, e il segno «+/–» dice quale voce è aperta.
   Sopra non serve: una fila di linguette lo dice da sé. */
.schede__linguetta > label::after { content: "+"; float: inline-end; font-size: 20px; line-height: 1; margin-inline-start: 14px; /* SGUARDO-PRE-MAIL 16/10 giro 2, B8: spazio fra titolo e segno (a 1920 la scheda aperta mostrava «intellettuale—» attaccato). */ }
.schede > .schede__scelta:nth-of-type(1):checked ~ div:nth-of-type(1) > label::after,
.schede > .schede__scelta:nth-of-type(2):checked ~ div:nth-of-type(3) > label::after,
.schede > .schede__scelta:nth-of-type(3):checked ~ div:nth-of-type(5) > label::after,
.schede > .schede__scelta:nth-of-type(4):checked ~ div:nth-of-type(7) > label::after,
.schede > .schede__scelta:nth-of-type(5):checked ~ div:nth-of-type(9) > label::after,
.schede > .schede__scelta:nth-of-type(6):checked ~ div:nth-of-type(11) > label::after,
.schede > .schede__scelta:nth-of-type(7):checked ~ div:nth-of-type(13) > label::after,
.schede > .schede__scelta:nth-of-type(8):checked ~ div:nth-of-type(15) > label::after { content: "–"; }

/* ⚠ 801 e non 768: sono i punti di rottura del Kit di QUESTO sito, v. la nota
   in fondo al foglio. È la stessa riga che decide se le colonne si impilano. */
@media (min-width: 801px) {
	/* La fila. `flex-wrap` + `order` e non una griglia: le caselle di una
	   griglia sono tutte larghe uguale, e il vivo dà a ogni linguetta la
	   larghezza del suo testo (224, 173, 144, 119, 140, 132 su `termini-uso`,
	   `display: table-cell`). A caselle uguali «Proprietà intellettuali» andava
	   a capo e la riga cresceva di 16px. */
	.schede { display: flex; flex-wrap: wrap; border-bottom: 0; }
	.schede__linguetta {
		border-block-end: 1px solid var(--c-separatori);
		border-inline-start: 1px solid var(--c-separatori);
	}
	.schede__linguetta > label { padding: 20px 25px; line-height: 16px; }
	.schede__linguetta > label::after { content: none; }
	/* SGUARDO-PRE-MAIL 16/10 giro 2, B16: la fila di linguette finiva 81 px prima del pannello (le caselle hanno la larghezza del testo).
	   Le caselle crescono in parti proporzionate al testo e riempiono tutta la riga; il testo resta centrato. Non vale per la colonna verticale (galleggia). */
	.schede:not(.schede--verticale) > .schede__linguetta { flex: 1 1 auto; text-align: center; }
	/* `width: 100%` manda il pannello a capo da solo: è quello che lo mette
	   sotto la fila senza dover contare le linguette. */
	.schede__corpo {
		order: 1;
		width: 100%;
		padding: 20px;
		border-top: 0;
		border-block-end: 1px solid var(--c-separatori);
		border-inline-start: 1px solid var(--c-separatori);
	}
	/* La linguetta scelta si salda al pannello: il bordo sotto sparisce senza
	   sparire, cioè resta 1px trasparente e l'altezza non si muove. */
	.schede > .schede__scelta:nth-of-type(1):checked ~ div:nth-of-type(1),
	.schede > .schede__scelta:nth-of-type(2):checked ~ div:nth-of-type(3),
	.schede > .schede__scelta:nth-of-type(3):checked ~ div:nth-of-type(5),
	.schede > .schede__scelta:nth-of-type(4):checked ~ div:nth-of-type(7),
	.schede > .schede__scelta:nth-of-type(5):checked ~ div:nth-of-type(9),
	.schede > .schede__scelta:nth-of-type(6):checked ~ div:nth-of-type(11),
	.schede > .schede__scelta:nth-of-type(7):checked ~ div:nth-of-type(13),
	.schede > .schede__scelta:nth-of-type(8):checked ~ div:nth-of-type(15) {
		border-block-end-color: transparent;
	}

	/* 🚨 E DUE SCHEDE SU TRE NON SONO IN RIGA: SONO IN COLONNA. (8/8/2026.)

	   `type: "vertical"` e `navigation_width` sono due campi del widget che il
	   convertitore non leggeva. Il vivo, misurato a 1440:

	       pagina                    colonna   pannello   forma
	       termini-uso                  --       1190     orizzontale
	       mi-presento                 283        848     verticale, 25% (il predefinito)
	       politiche-sulla-privacy     190       1000     verticale, 16%

	   Non è vestizione: un pannello largo 848 invece di 1130 va a capo molto di
	   più. Sul solo blocco di `mi-presento` sono **58px**.

	   Il galleggiamento e non la griglia, e la ragione è il conto delle righe:
	   in una griglia il pannello dovrebbe attraversare tante righe quante sono
	   le linguette, che non si sanno; e facendolo attraversare «tutte» la sua
	   altezza si distribuisce sulle righe delle linguette e le allontana.

	   ⛔ E GALLEGGIANO TUTTI E DUE, non solo le linguette. Provato prima con il
	   pannello nel flusso e un margine a sinistra: **le linguette dalla seconda
	   in poi finiscono SOTTO il pannello**, a 6.128px dall'inizio del blocco.
	   Un elemento che galleggia non può salire sopra il punto in cui sta scritto,
	   e nel documento l'ordine è linguetta/pannello/linguetta/pannello — quello
	   che serve al telefono, dove è una fisarmonica. La seconda linguetta viene
	   dopo il primo pannello, quindi parte da sotto.
	   Facendo galleggiare il pannello **a destra**, lui e la prima linguetta
	   stanno sulla stessa riga (16% + 84% = 100%), e `clear: inline-start`
	   impila le linguette senza toccare il pannello, che è dall'altra parte.
	   `flow-root` sul contenitore li richiude dentro tutti e due. */
	.schede--verticale { display: flow-root; }
	.schede--verticale .schede__linguetta {
		float: inline-start;
		clear: inline-start;
		width: var(--nav, 25%);
		border-block-start: 1px solid var(--c-separatori);
		border-inline-end: 1px solid var(--c-separatori);
	}
	.schede--verticale .schede__corpo {
		float: inline-end;
		width: calc(100% - var(--nav, 25%));
		border-block-start: 1px solid var(--c-separatori);
	}
	/* Qui la linguetta scelta si salda al pannello di FIANCO, non sotto. */
	.schede--verticale > .schede__scelta:nth-of-type(1):checked ~ div:nth-of-type(1),
	.schede--verticale > .schede__scelta:nth-of-type(2):checked ~ div:nth-of-type(3),
	.schede--verticale > .schede__scelta:nth-of-type(3):checked ~ div:nth-of-type(5),
	.schede--verticale > .schede__scelta:nth-of-type(4):checked ~ div:nth-of-type(7),
	.schede--verticale > .schede__scelta:nth-of-type(5):checked ~ div:nth-of-type(9),
	.schede--verticale > .schede__scelta:nth-of-type(6):checked ~ div:nth-of-type(11),
	.schede--verticale > .schede__scelta:nth-of-type(7):checked ~ div:nth-of-type(13),
	.schede--verticale > .schede__scelta:nth-of-type(8):checked ~ div:nth-of-type(15) {
		border-block-end-color: var(--c-separatori);
		border-inline-end-color: transparent;
	}
}

.avviso {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	background: var(--c-sfondo-chiaro);
	border-inline-start: 3px solid var(--c-secondario);
}
.avviso__titolo { display: block; margin-bottom: .35rem; color: var(--c-inchiostro); }

/* Il respiro a tablet e a telefono, quando il contenuto lo dichiara.
   ⚠ 1300 e 800, non 1024 e 767: v. la nota sui punti di rottura qui sopra. */
@media (max-width: 1300px) {
	/* ⚠ Il positivo in `padding`, il negativo in `margin`: v. la nota su
	   `.sezione`. Qui i negativi sono `--su-t:-50px` e `--giu-t:-50px`.
	   🚨 IL TESTO DEI SERVIZI SI SOVRAPPONEVA AD «ACCEDI PER USUFRUIRE DEI
	   SERVIZI» A 375px. (28/8/2026, MOBILE-FIX-1.) `.stacco:not(.colonne)
	   [style*="--su:"]` (riga 805) pesa (0,3,0) e NON ha soglia di larghezza:
	   vale sempre. Questa riga, senza `:not(.colonne)`, pesava solo (0,2,0) —
	   perdeva anche dentro la propria media query, e il blocco «riga stacco»
	   di `16515.html:168` (`--su:-95px`, `--su-m:0px`) restava tirato su di
	   95px pure sotto gli 800px, incollato all'ultima riga di «MANIFESTI
	   FUNEBRI PRO». Misurato: getComputedStyle(...).marginBlockStart dava
	   -95px a 375, non gli 0px dichiarati in --su-m. `:not(.colonne)` pareggia
	   la specificità a (0,3,0): a parità vince l'ultima nel file, ed è questa
	   — lo stesso schema già usato alla riga 797 per il doppione dei servizi
	   business, qui chiuso per la scala tablet. Non tocca `.colonne.stacco`:
	   quella combinazione la decide già `.colonne[style*="--su-t"]` (:1952),
	   stessa specificità, e vince lei per ordine essendo dopo. */
	.stacco:not(.colonne)[style*="--su-t"] { margin-block-start: var(--su-t); }
	.stacco:not(.colonne)[style*="--giu-t"] { margin-block-end: var(--giu-t); }
	.colonna[style*="--sx-t"] { padding-inline-start: var(--sx-t); }
	.colonna[style*="--dx-t"] { padding-inline-end: var(--dx-t); }
	.colonna[style*="--su-t"] { padding-block-start: max(0px, var(--su-t)); margin-block-start: min(0px, var(--su-t)); }
	.colonna[style*="--giu-t"] { padding-block-end: max(0px, var(--giu-t)); margin-block-end: min(0px, var(--giu-t)); }
	.colonne[style*="--su-t"] { padding-block-start: max(0px, var(--su-t)); margin-block-start: min(0px, var(--su-t)); }
	.colonne[style*="--giu-t"] { padding-block-end: max(0px, var(--giu-t)); margin-block-end: min(0px, var(--giu-t)); }
	.sezione[style*="--su-t"] { padding-block-start: max(0px, var(--su-t)); margin-block-start: min(0px, var(--su-t)); }
	.sezione[style*="--giu-t"] { padding-block-end: max(0px, var(--giu-t)); margin-block-end: min(0px, var(--giu-t)); }
	/* 🚨 E IL RIENTRO LATERALE DELLA SEZIONE, che qui decide QUANTO È LARGO IL
	   TESTO e quindi quante righe fa. (8/8/2026.)

	   `padding-inline: 1.25rem` e il `clamp(1.25rem, 6vw, 5rem)` di
	   `.sezione--rientrata-poco` sono il RIPIEGO di chi non dichiara: sotto i
	   1301 il 6vw diventa 46px a 768 e 23 a 375, dove il grafico ha scritto
	   **10**. Misurato su `mi-presento`: testo largo 656 invece di 728 a 768, e
	   310 invece di 335 a 375 — cioè più righe, cioè una pagina più alta.
	   A 1440 non si vedeva perché lì comanda `content_width`, che tappa il
	   contenitore prima che il rientro conti.

	   ⛔ Selettore di ATTRIBUTO, e non per abitudine: deve battere la classe del
	   rientro, che a parità di ordine vincerebbe lei. */
	.sezione[style*="--sx-t"] { padding-inline-start: var(--sx-t); }
	.sezione[style*="--dx-t"] { padding-inline-end: var(--dx-t); }
	/* ⛔ LO STACCO VA RIAFFERMATO DENTRO OGNI FASCIA, E NON È PIGRIZIA.
	   (9/8/2026.) `.sezione[style*="--su-t"]` qui sopra scrive
	   `margin-block-start: min(0px, var(--su-t))`, pesa quanto la riga dello
	   stacco e sta **dopo** di lei: dove una sezione dichiara anche
	   l'imbottitura del tablet, lo zero di quel `min()` cancellava i 50px.
	   Misurato: su `mi-presento` a 375 arrivavano 16 dei 66 attesi, e i 50 di
	   «Domande Frequenti» sparivano perché quella sezione dichiara `--su-m:10px`.
	   L'ordine qui sotto è quello dell'ereditarietà di Elementor: la base, poi
	   il tablet, poi il telefono — l'ultima che trova un valore vince. */
	.sezione[style*="--sopra:"] { margin-block-start: var(--sopra); }
	.sezione[style*="--sopra-t"] { margin-block-start: var(--sopra-t); }
}
@media (max-width: 800px) {
	/* Stesso schema della riga 1946 (tablet), per il telefono: senza
	   `:not(.colonne)` questa coppia pesava (0,2,0) e perdeva sempre contro
	   `.stacco:not(.colonne)[style*="--su:"]` (riga 805, (0,3,0), nessuna
	   soglia). V. la nota lì per la misura completa. */
	.stacco:not(.colonne)[style*="--su-m"] { margin-block-start: var(--su-m); }
	.stacco:not(.colonne)[style*="--giu-m"] { margin-block-end: var(--giu-m); }
	.colonna[style*="--sx-m"] { padding-inline-start: var(--sx-m); }
	.colonna[style*="--dx-m"] { padding-inline-end: var(--dx-m); }
	.colonna[style*="--su-m"] { padding-block-start: max(0px, var(--su-m)); margin-block-start: min(0px, var(--su-m)); }
	.colonna[style*="--giu-m"] { padding-block-end: max(0px, var(--giu-m)); margin-block-end: min(0px, var(--giu-m)); }
	.colonne[style*="--su-m"] { padding-block-start: max(0px, var(--su-m)); margin-block-start: min(0px, var(--su-m)); }
	.colonne[style*="--giu-m"] { padding-block-end: max(0px, var(--giu-m)); margin-block-end: min(0px, var(--giu-m)); }
	.sezione[style*="--su-m"] { padding-block-start: max(0px, var(--su-m)); margin-block-start: min(0px, var(--su-m)); }
	.sezione[style*="--giu-m"] { padding-block-end: max(0px, var(--giu-m)); margin-block-end: min(0px, var(--giu-m)); }
	/* Il rientro laterale del telefono: v. la nota gemella nel blocco del tablet. */
	.sezione[style*="--sx-m"] { padding-inline-start: var(--sx-m); }
	.sezione[style*="--dx-m"] { padding-inline-end: var(--dx-m); }
	/* Lo stacco, riaffermato: v. la nota nel blocco del tablet. Base, tablet,
	   telefono, in quest'ordine — l'ultima che trova un valore vince. */
	.sezione[style*="--sopra:"] { margin-block-start: var(--sopra); }
	.sezione[style*="--sopra-t"] { margin-block-start: var(--sopra-t); }
	.sezione[style*="--sopra-m"] { margin-block-start: var(--sopra-m); }
}

@media (max-width: 800px) {
	/* A telefono comanda l'altezza che il contenuto dichiara per il telefono.
	   Dove non la dichiara comanda quella di prima — **non lo zero**.

	   ⚠ Il ripiego era `0`, e la ragione scritta era «100vh su uno schermo alto
	   700 vuol dire una schermata di vuoto sotto ogni blocco». Misurato sul
	   vivo il 6/8/2026: **il sito quel vuoto ce l'ha**. A 768 ognuna delle sette
	   sezioni della home tiene `min-height: 900px` sul suo contenitore, identica
	   a 1440, e non c'è nessuna variante per il telefono. Lo zero non copiava il
	   sito: lo correggeva, e la home perdeva 643px (−10,7%) appena il punto di
	   rottura è salito a 800.

	   E dove il grafico ha DAVVERO deciso di rinunciare, lo scrive: la sezione
	   «01 Desktop» dichiara `custom_height_mobile: 0vh`, che arriva qui come
	   `--alta-m: 0` e vince da sé. La rinuncia è un dato, non una regola. */
	.sezione { min-height: var(--alta-m, var(--alta, auto)); }

	/* Stessa scala per le righe, con lo stesso selettore di attributo: senza,
	   una riga che non dichiara niente prenderebbe per eredità l'`--alta-m`
	   della sezione madre. */
	.riga[style*="--alta-m:"],
	.colonne[style*="--alta-m:"] { min-height: var(--alta-m); }
}

/* ====================================================== le fasce diagonali */

/* ⚠ È il modo in cui questo sito sta insieme: ogni sezione entra nella
   successiva con un taglio inclinato. Il tema non ne aveva nessuna, e per
   quello «non era lui» pur avendo le altezze giuste. Lo ha detto un video.

   Elementor le disegna con un SVG, e il tracciato letto sul vivo il 5/8/2026 è
   sempre lo stesso: `M0,6 V0 h1000 v100 L0,6z` su un viewBox 1000×100 con
   `preserveAspectRatio: none`. È un quadrilatero, non una curva: qui è un
   `clip-path`, che non costa un byte e si stira a qualunque larghezza.
   La fascia in basso è la stessa ruotata di 180°.

   Altezza e colore arrivano dal contenuto (`--fascia-su-h`, `--fascia-su-c`);
   la forma è del tema. */

/* 🚨 FIX-1920 (28/8/2026): `inset-inline:0` va DA BORDO A BORDO DELLA RIGA,
   NON DELLO SCHERMO — e per due righe della sezione 11 («Accedi per
   usufruire dei servizi», --fascia-su-h/--fascia-giu-h:38px, nere) la riga è
   quella stretta di `--larghezza-riga:66vw` (168-169), centrata. Il pseudo-
   elemento è `position:absolute` dentro quella riga (2948-2949 lo rende il
   suo antenato posizionato), quindi `inset-inline:0` lo stira solo ai bordi
   dei 66vw, non ai bordi dello schermo: un cuneo nero che non tocca né
   sinistra né destra, tanto più stretto quanto la finestra è larga (66vw
   cresce più lento di 100vw). Le altre fasce della home non hanno
   `--larghezza-riga`, sono già larghe quanto lo schermo, e per loro il
   cambio qui sotto non sposta un pixel.
   Il rimedio non è togliere il taglio (sul vivo c'è): è farlo uscire dalla
   riga fino ai bordi dello schermo, con lo stesso scavalco già usato per
   `.riga--intera` (:851-854, `calc(50% - 50vw)`), qui su un elemento
   assoluto invece che su un margine. */
.sezione--fascia-su::before,
.sezione--fascia-giu::after {
	content: "";
	position: absolute;
	left: calc(50% - 50vw);
	width: 100vw;
	z-index: 1;
	pointer-events: none;
}

/* 🔁 29/8/2026 - LE FASCE IN `vh`, NON IN PIXEL, E SENZA FESSURE.
   Due difetti, e la stessa radice.

   ① **I pixel non scalano con la finestra.** Le sezioni della home sono
   alte `100vh`, le fasce erano alte in **px** (93, 87, 80, 192, presi dal
   vivo a 1080). Su una finestra piu' bassa la sezione si accorcia ma la
   fascia no: la stessa fascia che a 1080 e' un accento diventa a 800 un
   terzo dello schermo. Un taglio che decora a una altezza e sfregia a
   un'altra non e' un taglio: e' un numero copiato.
   👉 Adesso l'altezza e' in `vh` (`--fascia-su-vh`), con il valore in px
   che resta come ripiego se il vh non c'e'. Cosi' a QUALUNQUE altezza di
   finestra la fascia occupa sempre la stessa frazione della sezione.

   ② **La fessura bianca fra due fasce.** Misurata il 29/8 sulla cattura:
   una riga chiara di **10px** a y=5309-5319, dove la fascia nera finiva e
   il fondo chiaro della sezione spuntava prima del blocco successivo.
   Sono i mezzi pixel dell'arrotondamento piu' il bordo netto del
   `clip-path`. 👉 Rimedio: la fascia sborda di 1px oltre il bordo e ne
   recupera 2 in altezza. Non si vede, e la fessura non puo' piu' aprirsi.
   (Con 1px la fessura scendeva da 10px a 2px, misurata sui pixel della
   cattura: portata a 3px per lato, si chiude del tutto.) */
.sezione--fascia-su::before {
	inset-block-start: -3px;
	height: calc(var(--fascia-su-vh, var(--fascia-su-h, 9vh)) + 6px);
	background: var(--fascia-su-c, var(--c-fondo));
	clip-path: polygon(0 6%, 0 0, 100% 0, 100% 100%);
}

.sezione--fascia-giu::after {
	inset-block-end: -3px;
	height: calc(var(--fascia-giu-vh, var(--fascia-giu-h, 9vh)) + 6px);
	background: var(--fascia-giu-c, var(--c-fondo));
	/* la stessa forma girata di 180°, come fa Elementor con `matrix(-1,0,0,-1)` */
	clip-path: polygon(100% 94%, 100% 100%, 0 100%, 0 0);
}

/* Le quattro altezze della home, tradotte una volta sola da px a vh sul
   riferimento a cui erano state misurate (1080): 93 -> 8.6vh, 87 -> 8.05vh,
   80 -> 7.4vh, 192 -> 17.8vh. Il contenuto continua a dichiarare i px, che
   restano come ripiego: qui li si traduce, non li si cancella. */
body.home [style*="--fascia-su-h:93px"]  { --fascia-su-vh: 8.6vh; }
body.home [style*="--fascia-giu-h:93px"] { --fascia-giu-vh: 8.6vh; }
body.home [style*="--fascia-su-h:87px"]  { --fascia-su-vh: 8.05vh; }
body.home [style*="--fascia-giu-h:87px"] { --fascia-giu-vh: 8.05vh; }
body.home [style*="--fascia-su-h:80px"]  { --fascia-su-vh: 7.4vh; }
body.home [style*="--fascia-giu-h:80px"] { --fascia-giu-vh: 7.4vh; }
body.home [style*="--fascia-su-h:10vw"]  { --fascia-su-vh: 17.8vh; }
body.home [style*="--fascia-giu-h:10vw"] { --fascia-giu-vh: 17.8vh; }

/* `flip` la specchia sull'asse verticale. */
.sezione--fascia-su-rovescia::before { transform: scaleX(-1); }
.sezione--fascia-giu-rovescia::after { transform: scaleX(-1); }

/* `above_content` la mette davanti al contenuto invece che dietro. */
.sezione--fascia-su-davanti::before,
.sezione--fascia-giu-davanti::after { z-index: 3; }

/* 🚨 G8, 28/8/2026 — LE BANDE DEL CAROSELLO ERANO NERE, VANNO BIANCHE.

   Il markup di quella riga (`16515.html:48`) dichiara `--fascia-su-h:87px` e
   `--fascia-giu-h:87px` ma NON `--fascia-su-c`/`--fascia-giu-c`: il colore
   cade sul ripiego `var(--fascia-su-c, var(--c-fondo))` (:1960) — nero, lo
   stesso che le fasce del riquadro business dichiarano ESPLICITO
   (`--fascia-su-c:#000000`, giusto lì). Non si tocca il ripiego (lo
   leggono anche altre fasce mute) né le fasce nere dichiarate: si punta
   SOLO questa riga, riconoscibile perché è l'unica con `-su-davanti` E
   `-giu-davanti` insieme (verificato: una sola occorrenza di ciascuna
   classe su tutta `16515.html`).

   🚨 CORRETTO LO STESSO GIORNO, SERA — IL BIANCO ERA UN ALTRO BIANCO.
   Gabriele guardando il risultato: «è chiaro che tu non abbia usato il
   bianco per lo sfondo, il che va bene, ma non si deve vedere il taglio
   fra il bianco e il grigio». `--c-bianco` è #FFFFFF, ma le due fasce che
   toccano — quella in fondo alla sezione 2 (foglie, `--fascia-giu-c`) e
   quella in cima alla sezione 4 (`--fascia-su-c`, «Conserva i loro
   ricordi…») — dichiarano ENTRAMBE nel markup un grigio chiarissimo,
   `#F6F6F6` (`16515.html`, due occorrenze, lette dal JSON del vivo:
   `shape_divider_top_color`/`shape_divider_bottom_color`, un colore
   scritto a mano dal grafico e non un rimando al Kit — non esiste un
   `--c-…` per questo esatto valore, e non è `--c-sfumatura-1` (#F7F7F7,
   quello sì un colore del Kit, un'unità di grigio più chiaro).
   Un bianco vero appoggiato su due bande già #F6F6F6 è la riga di stacco
   che Gabriele vedeva. Le bande del carosello prendono lo stesso numero
   delle due fasce che toccano, non un bianco a parte. */
.sezione--fascia-su-davanti::before,
.sezione--fascia-giu-davanti::after { background: #F6F6F6; }

/* Il contenuto della sezione sta sopra la fascia, altrimenti la fascia lo
   copre: è il difetto che si vede solo quando il taglio è alto. */
.sezione--fascia-su > *,
.sezione--fascia-giu > * { position: relative; z-index: 2; }

/* 🚨 LA FASCIA GIÙ MANGIAVA LE ULTIME RIGHE DEL TESTO A 375px. (27/8/2026,
   FIX-CSS-2, casella 32 — v3-375-servizi-crop.png, riquadro «MANIFESTI
   FUNEBRI PRO».)

   Il taglio è tenuto (sul vivo c'è), ma qui non aveva dove stare: chi lo
   porta non è una `.sezione` (che di solito ha decine di px di respiro
   sotto) ma la RIGA di tre schede `.colonne--3`, che a telefono chiude con
   appena `--giu-m:6px` (:1846) — 32px meno degli `--fascia-giu-h:38px`
   della fascia. L'ultima scheda (il testo più lungo) tocca il fondo della
   riga esattamente dove comincia la fascia.

   ⛔ Non basta il z-index qui sopra: la stessa riga dichiara anche
   `--fondo:#F7F7F7`, e `.colonne[style*="--fondo:#F7F7F7"] > *` (:561,
   specificità 0,2,0) pesa più di `.sezione--fascia-giu > *` (qui sopra,
   0,1,0) e riporta lo z-index dei figli a 1 — pari a quello della fascia
   stessa (:1899): a parità vince l'ordine nel documento, e la fascia,
   generata per ultima, dipinge sopra il testo. Si potrebbe rincorrere la
   specificità, ma la via più stretta è non farli toccare affatto: si dà
   alla riga un respiro sotto pari all'altezza della fascia, e il problema
   di stacking non si pone più.

   Scoped a `.colonne.sezione--fascia-giu`: su tutto `_conversione/html/`
   (61 pagine + 2 di riserva) questa combinazione esce UNA sola volta —
   è solo questa riga, non sposta nient'altro (grep 27/8/2026).
   Solo a telefono: a tavoletta (`--giu-t:9%`) e desktop (`--giu:2rem`) il
   respiro c'è già ed è più che sufficiente per un taglio di 38px. */
@media (max-width: 800px) {
	.colonne.sezione--fascia-giu[style*="--giu-m:"] {
		padding-block-end: calc(max(0px, var(--giu-m)) + var(--fascia-giu-h, 38px));
	}
}

/* Verificato sullo stesso crop: il taglio gemello in cima
   (`sezione--fascia-su`, riga 1 «Marketplace/Piazza/Manifesti Free») NON
   copre niente — i tre bollini «Free» restano leggibili e allineati
   (v3-375-servizi-crop.png). Nessuna correzione gemella in cima. */

/* 🚨 SERVIZI BUSINESS: LA GRIGLIA AVEVA 32px DI DISTACCO, IL VIVO 0.
   (28/8/2026, ordine di Gabriele — la sezione deve stare in 100vh.)

   `.colonne` (:441-443) porta `gap: 2rem` di default, giusto altrove ma non
   qui: sul vivo le due righe di tre schede («Free» e «Pro») sono a contatto,
   gap 0, misurato a 1440 e a 1920. Scoped alla stessa coppia di classi già
   usata sopra: `grep` su `_conversione/html/` (61 pagine) trova
   `.colonne.sezione--fascia-su` e `.colonne.sezione--fascia-giu` UNA sola
   volta ciascuna, entrambe qui — nessun'altra riga del sito le porta
   insieme, tocca solo questa griglia. */
.colonne.sezione--fascia-su,
.colonne.sezione--fascia-giu { gap: 0; }

/* 🚨 CANTIERE TAGLI-SERVIZI (28/8/2026 sera) — I DUE TAGLI DIAGONALI ERANO
   POCO PIÙ DI UNA BANDA: mancava l'altezza vera, e quella della riga Free
   era comunque INVISIBILE per una collisione trovata solo misurando.

   1) L'ALTEZZA. Letta dal vivo (`_elementor_data`, sezione 9772575, righe
      2694243/9f62c1f — «Free»/«Pro»): nessuna delle due dichiara un'altezza,
      quindi Elementor usa quella intrinseca dell'SVG (`viewBox="0 0 1000
      100"`, `preserveAspectRatio="none"`, nessun `height` in CSS in
      `conditionals/shapes.min.css`) — 1/10 della LARGHEZZA del contenitore,
      che per queste due righe (`elementor-section-full_width`) è lo
      schermo intero: altezza = 10vw. Misurato con `misura-dom.py --js` sul
      vivo: 192,1px a 1920, 144,1px a 1440 — **10,0vw in entrambi i casi**,
      non i 38px fissi scritti il 28/8 mattina (quel 38 era la stessa
      misura ma presa a 375px: 375/10=37,5≈38 — giusta lì, sbagliata qui).
      16515.html:124/146 ora portano `--fascia-su-h/--fascia-giu-h:10vw`.

   2) LA COLLISIONE (solo su ::before, solo sulla riga Free). Le due righe
      portano ANCHE `--fondo:#F7F7F7` (il fondo esce dai 1140/1200px, righe
      549-560 sopra) — che usa `::before` per allargare il colore. La riga
      Free porta insieme `sezione--fascia-su`, che vuole lo STESSO `::before`
      per il taglio nero (2058-2072). Stessa specificità (0,2,1): a parità
      vince l'ordine nel file, e la regola del fondo (riga 553, prima) batte
      quella della fascia (riga 2068, dopo) su TUTTE le proprietà che
      dichiarano entrambe — `background` e `z-index`. Misurato:
      `getComputedStyle(riga,'::before').background` dava `rgb(247,247,247)`
      (il fondo chiaro), non il nero di `--fascia-su-c`: la fascia era
      invisibile anche prima di oggi, a qualunque altezza. La riga Pro non
      ha lo stesso problema: la sua fascia usa `::after` (giù), il fondo usa
      solo `::before` — nessuno scontro, verificato in console (z-index:1,
      sfondo nero, entrambi giusti senza toccare niente).
      🚨 STESSA COLLISIONE, TERZA PROPRIETÀ — trovata solo dopo aver GUARDATO
      la cattura: il cuneo usciva incollato al bordo sinistro invece di
      attraversare tutta la larghezza. La regola del fondo scrive anche
      `inset-inline:-100vmax` (riga 557) — l'equivalente LOGICO di
      `left`+`right`. Per le proprietà logiche/fisiche corrispondenti il
      cascade le tratta come lo STESSO slot: a parità di specificità vince
      comunque l'ultima in ordine di file, quindi `inset-inline-start`
      del fondo (-100vmax = -1920px a 1920) batteva il `left:calc(50% -
      50vw)` della fascia (riga 2062) — misurato: `getComputedStyle(...)
      .left` dava `-1920px`, non i -326px attesi. Si riafferma anche
      `left`/`width` qui, alla stessa specificità alzata.
      Non si tocca la regola del fondo (riga 553): è la stessa che tiene il
      colore fuori dai 1140/1200px, e l'ombra alternativa l'ha già rotta
      Gabriele il 26/8 (righe 539-548). Si alza solo la specificità della
      fascia aggiungendo `.colonne` alla firma — vero per queste due righe,
      non cambia le fasce su `.riga` (carosello, sezione 4) che restano
      sulla regola di base. */
.colonne.sezione--fascia-su::before {
	background: var(--fascia-su-c, var(--c-fondo));
	z-index: 1;
	left: calc(50% - 50vw);
	width: 100vw;
}

/* 3) LO SPAZIO — RISCRITTO IL 28/8/2026 SERA (TESTA-SERVIZI, quarto giro:
   Gabriele confrontava le due schermate e la fascia da noi partiva
   ATTACCATA dentro sé stessa, dal basso verso l'alto, invece che dall'alto
   verso il basso come sul vivo, e questo la faceva uscire dalla finestra.

   🚨 LA CAUSA VERA, MISURATA (non dedotta): l'ancoraggio precedente teneva
   fisso il BORDO INFERIORE del cuneo (`38px - altezza`, cresce verso
   l'alto) — e con l'altezza portata a 10vw quel bordo inferiore fisso
   spinge il bordo SUPERIORE fuori dallo schermo. Misurato con
   `misura-dom.py` su staging (`getComputedStyle(riga,'::before').top` +
   `getBoundingClientRect` di sezione e riga, `#6`, `--scorri`):
   - la riga «Free» comincia **121,6px sotto il bordo della sezione, alla
     stessa identica distanza a 1920 E a 1440** (141,4-19,8 e 142,2-20,6:
     121,6 in entrambi i casi — non è un caso di una sola misura, è la
     stessa quota alle due larghezze);
   - con la vecchia formula il bordo SUPERIORE del cuneo cadeva a
     **-32,4px dalla sezione a 1920** (sopra lo schermo, tagliato: da qui
     il "manca tutto il lato sinistro" delle catture) e a **+15,6px a
     1440** (visibile, per questo a 1440 il difetto si vedeva meno).
   Confrontato col vivo (`shapeTop`, stessa misura): lì il cuneo comincia a
   **+7,4px dalla sezione a 1920, +21px a 1440** — sempre un piccolo
   margine POSITIVO, mai sopra lo schermo, perché lì il cuneo cresce verso
   IL BASSO da un bordo superiore fisso, non verso l'alto da un bordo
   inferiore fisso.

   IL RIMEDIO: si capovolge l'ancoraggio, come sul vivo — bordo SUPERIORE
   fisso a +7px dalla sezione (stesso numero del vivo a 1920), il cuneo
   cresce verso il basso. Tradotto nel sistema di coordinate della riga
   (che comincia 121,6px sotto la sezione): 7 - 121,6 = **-114,6px**, un
   valore FISSO, non più legato a `--fascia-su-h` — l'altezza del cuneo non
   sposta più il suo bordo superiore, solo quanto scende quello inferiore.

   ⚠ VERIFICATO che non mangi le icone «Free» (il rischio per cui era nata
   la vecchia formula): il taglio è DIAGONALE, sottile a sinistra e profondo
   solo a destra — le tre icone stanno tutte al 61% della larghezza dello
   schermo (misurato: 1171,2/1920 e 878,4/1440, uguale), dove il cuneo è
   profondo circa 122px a 1920 e 91px a 1440. Con l'ancoraggio nuovo il
   fondo del cuneo lì arriva a **127,6px (1920) e 97,2px (1440)** dalla
   sezione, contro le icone a **202,9px e 150,1px**: restano **75px e 53px
   di margine libero**, mai meno di quanto ce n'era già (col vecchio
   ancoraggio il margine a 1920 era teorico, perché il cuneo era comunque
   tagliato fuori dallo schermo prima di arrivarci).
   Scoped a `--fondo:#F7F7F7` + `sezione--fascia-su` insieme: uniche in
   tutto il sito (righe 535-536 sopra), non cambia le fasce-su ancorate al
   bordo altrove (carosello, sezione 4). Non tocca la fascia-giu (riga Pro),
   che resta ancorata al suo bordo inferiore come prima — lì il problema
   non c'era mai stato. */
.colonne[style*="--fondo:#F7F7F7"].sezione--fascia-su::before {
	inset-block-start: -114.6px;
	/* 🚨 RICHIESTA DI GABRIELE, 30/8 — il cuneo (`--fascia-su-c:#000000`
	   inline) segue la sezione, che ora è chiara. Combinazione già scoperta
	   unica in tutto il sito (v. il commento qui sopra), quindi il colore
	   cambia solo qui: le altre `sezione--fascia-su` del sito (carosello,
	   sezione 4) restano sul loro nero. Non è un `!important` nuovo: la
	   sfida è `background` esterno contro `background` esterno (il valore
	   inline sta dentro `--fascia-su-c`, non su `background` stesso), e
	   questo selettore è già più specifico della regola generica di riga
	   ~2402. */
	background: #F7F7F7;
}

/* 🚨 SERVIZI BUSINESS, ULTIMO SCARTO: 13,9px DI TROPPO A 1920 DOPO I PASSI
   SOPRA. (28/8/2026.) Misurato su staging (misura-dom.py su `#6`, `--scorri`,
   senza `--ferma-animazioni`): sezione 900px esatti a 1440, 913,9 a 1920.
   Isolato elemento per elemento: il paragrafo «Accedi per usufruire dei
   servizi» porta il margin-bottom di DEFAULT del browser (14,4px, mai
   azzerato su questo `<p>`), e il contenitore che lo avvolge e'
   `display:flow-root` — il margine non collassa nel nulla, diventa spazio
   vero sotto una riga di testo che non ha altro dopo. Non e' un dato
   dichiarato (nessun --su/--giu lo porta): e' un margine di default rimasto
   scoperto. Tolto SOLO qui: `id="6"` esiste una volta sola in tutto il sito
   (grep confermato) e dentro c'e' UN SOLO `.riga.stacco` (questo blocco
   «Accedi») — non tocca gli altri 4 `.riga.stacco` della stessa pagina, ne'
   i `.riga.stacco` di `285.html` e `50.html` (stessa combinazione di
   classi, pagine diverse). A 1920 chiude l'eccedenza (913,9 - 14,4 = 899,5,
   dentro i 900); a 1440 lascia margine (900 - 14,4 = 885,6): tolto un
   respiro morto, non aggiunta una compressione.
   ⛔ Selettore per ATTRIBUTO, non `#6`: un id che comincia con una cifra non
   e' un identificatore CSS valido senza escape (`#6` va scritto `#\36 `), e
   la regola scritta come id sarebbe caduta a terra senza errore visibile —
   controllato: `[id="6"]` e' lo stesso schema gia' usato sopra per la
   griglia. */
[id="6"] .riga.stacco p { margin-bottom: 0; }

/* 🚨 MOBILE-FIX-1 (28/8/2026), DISFATTO IL 28/8/2026 SERA (CAROSELLO-MOBILE).

   Il fix qui sotto dipingeva `[id="3"]` di `#F7F7F7` sotto 800px per coprire
   due barre nere verticali (il `padding-inline` di 20px sopra il nero del
   `<body>`) comparse SOLO dopo aver nascosto il carosello sulla riga con
   `nascosto-telefono` (v. `16515.html:46`). Era una toppa su un difetto
   creato dalla stessa modifica: la premessa — «il vivo non mostra il
   carosello sul telefono» — era sbagliata, si riferiva alla sezione 5
   (l'eroe, che HA `hide_mobile`/`hide_tablet`), non alla sezione 8 (il
   carosello, che quei campi non li ha — verificato in diretta sul vivo a
   375: `display:block`, 900px, nessuna classe che lo nasconda). Rimesso il
   carosello: il bordo nero del carosello torna a coprire il bordo nero
   della sezione, come faceva prima di stasera — bordo nero su bordo nero
   non si vede, la toppa non serve più. Regola tolta, non solo commentata:
   pesava comunque sotto 800px e avrebbe dipinto un pixel chiaro dove ora
   c'è di nuovo il carosello nero, un difetto nuovo al posto del vecchio. */

/* --------------------------------------------- il carosello a schermo pieno */

/* Le cinque fotografie dell'eroe, ognuna con il suo titolo. Sostituisce il
   widget `slides` di Elementor Pro, l'ultimo del sito. */
.carosello__testo {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding-inline: 1.25rem;
	text-align: center;
	color: var(--c-bianco);
}
.carosello__titolo {
	margin: 0;
	font-family: "Lusitana", serif;
	font-size: clamp(1.4rem, 2.6vw, 2.2rem);
	color: var(--c-bianco);
	text-shadow: 0 1px 12px rgba(0, 0, 0, .55);
	/* 🚨 IL MAIUSCOLO DELLA GIOSTRA, RIMESSO IL 26/8/2026 (F12-bis).
	   Sul vivo i titoli delle diapositive sono in maiuscolo — «OMAGGIA I TUO
	   CARI DEFUNTI» — e da noi uscivano in maiuscoletto misto: `text-transform`
	   misurato **`none`** sulle cinque diapositive, contro il maiuscolo del
	   vivo. Il testo nel `post_content` e' scritto in minuscolo su tutti e due
	   i siti (`carosello__titolo` in `_conversione/html/16515.html`, riga 48):
	   👉 **il maiuscolo e' una scelta di stile, non di contenuto**, e quindi si
	   rimette qui e non riscrivendo il testo — o alla prossima conversione di
	   Elementor tornerebbe minuscolo da solo.
	   ⚠ Solo il titolo: sul vivo il sottotitolo (`__sotto`) **non** e' maiuscolo. */
	text-transform: uppercase;
}

/* ⛔ IL RIMEDIO DEL 28/8 (hyphens:auto) SUPERATO IL 30/8/2026 — CURAVA UNA
   PAROLA E NE ROMPEVA ALMENO CINQUE ALTRE. Segnalazione di Gabriele dopo aver
   aperto `HOME-375px.png`: «AN-CHE», «ME-MORIE», «PER-METTI», «FAMI-LIARI»,
   «COMMEMORA-ZIONE» — tutti titoli display, in maiuscolo, sulla foto, la cosa
   più grande della schermata. Un trattino vero non è meno grave di un taglio
   cieco: su un titolo display **nessuna sillabazione si legge come una
   scelta**, si legge come un sito rotto.
   La causa non era la sillabazione mancante: era che `hyphens:auto` non
   sillaba solo quando serve — un browser lo usa ogni volta che una parola
   non entra nello spazio rimasto sulla riga corrente, anche se quella parola
   interera ci sta benissimo scendendo alla riga dopo. Misurato: a 20px
   Lusitana maiuscolo, dentro il contenitore di 335px di `SISTEMA-ESTETICO
   §4`, anche «COMMEMORAZIONE.» (la parola che aveva motivato il rimedio del
   28/8) sta larga circa 195px — entra su una riga tutta sua senza spezzarsi,
   *se le si lascia scendere invece di forzarla a stare accanto alla parola
   prima*. `overflow-wrap:normal` fa esattamente questo da solo: sposta la
   parola intera a capo, e la sillabazione non serve mai su queste due classi.
   Tolta `hyphens`, tenuto `overflow-wrap/word-break:normal` (impedisce anche
   il taglio cieco di `base.css:160`, quello vero del 28/8). */
.carosello__titolo,
.stile-a0720a2 {
	overflow-wrap: normal;
	word-break: normal;
	-webkit-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* 🚨 STESSO GIRO — IL GIUSTIFICATO SUL TELEFONO APRIVA FIUMI BIANCHI, NON SOLO
   SU QUESTO PARAGRAFO. `.m-giustificato` (`token.css:84`, GENERATO — non si
   tocca lì, si sovrascrive qui) mette `text-align:justify` sotto gli 800px.
   Su una colonna di 335px, con righe di 3-6 parole, il browser allarga gli
   spazi per pareggiare il bordo destro: «di          Cimiteri.Online»,
   «piccoli          Angeli.» — buchi larghi quanto due parole, dentro il
   testo che accompagna la fascia amici animali (l'unico punto della home che
   usa questa classe: grep su `_conversione/html/` conferma un'occorrenza
   sola). Non è un difetto del contenuto, è la classe stessa: un testo
   giustificato regge su colonne larghe (molte parole per riga assorbono lo
   spazio in eccesso), non su colonne strette. Sinistra invece di giustificato
   — l'ordine di oggi — tiene lo spazio fra le parole sempre uguale, il bordo
   destro diventa irregolare mai vuoto a metà riga. `contenuto.css` carica
   dopo `token.css` (dichiarato `array('nexen-token')` in `functions.php`),
   quindi la stessa specificità (0,1,0) basta a vincere senza `!important`. */
@media (max-width: 800px) {
	.m-giustificato {
		text-align: left;
	}
}
.carosello__sotto {
	margin: 0;
	max-width: 46ch;
	font-size: clamp(.85rem, 1.2vw, 1rem);
	color: var(--c-bianco);
	text-shadow: 0 1px 10px rgba(0, 0, 0, .55);
}
.carosello > li { position: relative; }

/* Un carosello che dichiara la propria altezza è l'eroe di una pagina, non la
   striscia dei manifesti: le sue fotografie sono larghe quanto lo schermo.
   Sulla home `slides_height` dice 65vh.

   🎠 LA GIOSTRA GIRA — 27/8/2026, casella 9 delle segnalazioni di Gabriele.
   Sul vivo la seconda fascia è un widget `slides` di Elementor Pro: cinque
   diapositive, transizione a dissolvenza da 1.000 ms, cambio automatico ogni
   4.000 ms, frecce (INVENTARIO-COMPORTAMENTI §2). Da noi le cinque diapositive
   c'erano tutte nel markup, ma stavano AFFIANCATE dentro uno `scroll-snap`
   orizzontale: si vedeva solo la prima, ferma, e le altre quattro sembravano
   non esistere. L'HTML dichiarava perfino il giro — `--carosello-giro:25s`,
   che è esattamente 5 × (4.000 + 1.000) ms — e nessuna regola lo leggeva.
   👉 Qui le diapositive si sovrappongono e sfumano una nell'altra da sole,
   senza JavaScript e senza libreria. Le frecce le aggiunge `testata-home.js`,
   che gira solo sulla home: senza JavaScript la giostra gira lo stesso, solo
   senza frecce. */
.carosello[style*="--altezza-carosello"] {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
	gap: 0;
	height: var(--altezza-carosello);
	overflow: hidden;
	overflow-x: hidden;
	scroll-snap-type: none;
}

/* Le diapositive stanno una sopra l'altra, non una accanto all'altra: è la
   differenza fra una giostra e una striscia da scorrere col dito. */
.carosello[style*="--altezza-carosello"] > li {
	position: absolute;
	inset: 0;
	height: var(--altezza-carosello);
	opacity: 0;
	animation: carosello-dissolvenza var(--carosello-giro, 25s) linear infinite;
}
.carosello[style*="--altezza-carosello"] > li:nth-child(1) { animation-delay: calc(var(--carosello-giro, 25s) / 5 * 0); }
.carosello[style*="--altezza-carosello"] > li:nth-child(2) { animation-delay: calc(var(--carosello-giro, 25s) / 5 * 1); }
.carosello[style*="--altezza-carosello"] > li:nth-child(3) { animation-delay: calc(var(--carosello-giro, 25s) / 5 * 2); }
.carosello[style*="--altezza-carosello"] > li:nth-child(4) { animation-delay: calc(var(--carosello-giro, 25s) / 5 * 3); }
.carosello[style*="--altezza-carosello"] > li:nth-child(5) { animation-delay: calc(var(--carosello-giro, 25s) / 5 * 4); }

/* Cinque diapositive su 25s: ognuna sta in scena 5s (il 20% del giro) e la
   dissolvenza dura 1s (il 4%). Le due percentuali NON sono arbitrarie: sono i
   4.000 e i 1.000 ms del vivo, tradotti in centesimi del giro. */
@keyframes carosello-dissolvenza {
	0%   { opacity: 0; }
	4%   { opacity: 1; }
	20%  { opacity: 1; }
	24%  { opacity: 0; }
	100% { opacity: 0; }
}

.carosello[style*="--altezza-carosello"] img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 🚨 G4, 1/9/2026 — MANCAVA LO ZOOM, CASELLA 4 DELLE RISERVE DI GABRIELE.
   Le sue parole: «il carosello di slide è fisso mentre sul mio ogni slide
   aveva un leggero effetto zoom avanti e indietro alternato, lento ed
   elegante». La dissolvenza (sopra) c'era già; mancava il movimento della
   fotografia stessa — un "Ken Burns" lento, indipendente dal cambio di
   diapositiva.

   Sull'immagine, non sul `<li>`: il contenitore `.carosello[...]` ha già
   `overflow: hidden` (riga ~2666), quindi il 6% di crescita dell'immagine
   resta tagliato dentro la sua cornice, senza toccare il layout intorno.

   Alternato per davvero — «una diapositiva ingrandisce, la successiva
   rimpicciolisce» — non sincronizzato: `animation-direction: alternate`
   sulle diapositive dispari parte da 1 e cresce verso 1,06, `alternate-
   reverse` sulle pari parte già a 1,06 e scende verso 1 — stessa curva,
   fase opposta. 7s è il numero indicativo di Gabriele, non legato ai 25s
   del giro delle cinque diapositive: i due movimenti sono indipendenti,
   come lo erano sul suo carosello.
   ⚠ `transform-origin` resta il centro (il valore di default): uno zoom
   dagli angoli avrebbe fatto scivolare il soggetto della foto, non solo
   ingrandirlo. */
@keyframes carosello-zoom {
	from { transform: scale(1); }
	to   { transform: scale(1.06); }
}
.carosello[style*="--altezza-carosello"] img {
	animation: carosello-zoom 7s ease-in-out infinite alternate;
}
.carosello[style*="--altezza-carosello"] > li:nth-child(even) img {
	animation-direction: alternate-reverse;
}

/* Chi ha chiesto al sistema operativo di non far muovere le cose non si vede
   una giostra girare: resta la prima diapositiva, e le frecce continuano a
   funzionare. Lo stesso vale per lo zoom qui sopra: e' movimento anche lui. */
@media (prefers-reduced-motion: reduce) {
	.carosello[style*="--altezza-carosello"] > li { animation: none; opacity: 0; }
	.carosello[style*="--altezza-carosello"] > li:first-child { opacity: 1; }
	.carosello[style*="--altezza-carosello"] img { animation: none; }
}

/* Appena qualcuno tocca una freccia il giro automatico si ferma e comanda lui:
   la classe la mette `testata-home.js`. La dissolvenza resta di 1.000 ms, come
   quella automatica.
   ⚠ IL SELETTORE PORTA ANCHE L'ATTRIBUTO, E NON È PIGNOLERIA: la regola
   automatica qui sopra è `.carosello[style*="--altezza-carosello"] > li`, che
   pesa 0,2,1. Un `.carosello--manuale > li` da 0,1,1 avrebbe perso sempre, e
   le frecce sarebbero state due bottoni che non fermano niente — con la logica
   del JavaScript giusta e il difetto invisibile a chi legge solo il codice del
   JavaScript. Trovato da VERIFICA-1 il 27/8/2026. */
.carosello[style*="--altezza-carosello"].carosello--manuale > li {
	animation: none;
	opacity: 0;
	transition: opacity 1s linear;
}
.carosello[style*="--altezza-carosello"].carosello--manuale > li.diapositiva--viva { opacity: 1; }

/* Le frecce: due cerchi discreti ai lati, come sul vivo. Le costruisce il
   JavaScript, così nel markup convertito non entra niente che Elementor non
   avesse. */
.carosello-giostra { position: relative; }
.carosello__freccia {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .32);
	color: var(--c-bianco);
	cursor: pointer;
	transition: background .2s ease;
}
.carosello__freccia:hover,
.carosello__freccia:focus-visible { background: rgba(0, 0, 0, .55); }
.carosello__freccia--indietro { left: 16px; }
.carosello__freccia--avanti { right: 16px; }
.carosello__freccia svg { width: 20px; height: 20px; fill: currentColor; }

/* Sul telefono il cerchio VISIBILE si stringe e si avvicina al bordo: a 375px
   due cerchi da 44px mangiano un quarto della fotografia (motivo per cui
   erano stati stretti a 34px). Ma un cerchio da 34px è anche un'area di
   tocco da 34px, sotto ai 44px minimi — R18, cancello del 30/8.

   Si tengono separati i due numeri: l'AREA DI TOCCO resta 44×44 (il bottone
   vero, trasparente), il CERCHIO CHE SI VEDE resta 34×34 (uno `::before`
   centrato dentro). Stesso ingombro visivo sulla foto, dito vero che non
   sbaglia il bersaglio. */
@media (max-width: 767px) {
	.carosello__freccia {
		width: 44px;
		height: 44px;
		background: transparent;
		transition: none;
	}
	.carosello__freccia::before {
		content: "";
		position: absolute;
		inset: 5px; /* (44 - 34) / 2 */
		border-radius: 50%;
		background: rgba(0, 0, 0, .32);
		transition: background .2s ease;
	}
	.carosello__freccia:hover::before,
	.carosello__freccia:focus-visible::before { background: rgba(0, 0, 0, .55); }
	.carosello__freccia--indietro { left: 1px; }
	.carosello__freccia--avanti { right: 1px; }
	.carosello__freccia svg { position: relative; z-index: 1; width: 15px; height: 15px; }
}

/* L'eroe esce dal riquadro: è a tutta larghezza, come sul sito di oggi. La
   regola `.sezione > *` lo stringerebbe a 1200px. */
.sezione > .carosello[style*="--altezza-carosello"],
.sezione > .carosello-giostra { max-width: none; }

/* =========================================================================
   LA SCHEDA DI UN CIMITERO — la testa della pagina.
   (10/8/2026. Il corpo della scheda lo veste `nexen-luoghi/assets/luoghi.css`.)

   ⚠ È un cimitero, e si vede da come è spaziata: niente riquadri con il bordo
   intorno a ogni cosa, niente colore oltre a quello che il tema ha già. Le
   sezioni si separano con un filo, non con una scatola. Il rosso di NeXeN
   resta dov'era: il punto «sei qui» sulla sagoma e il filo accanto agli inviti.

   📌 IL COLORE NON SI RIDICHIARA QUI, E L'HO VERIFICATO PRIMA DI SCRIVERLO.
   Avevo scritto che il testo generato ereditava `--c-secondario` (#54595F),
   che su nero fa 3,2:1 e non basta. **Era falso**: la riga 18 di questo stesso
   foglio dice già `.pagina { color: var(--c-testo) }` (#7F7F7F, 5,2:1), la 456
   porta i titoli al bianco e la 457 i paragrafi e le voci di elenco. Misurato
   sul banco: `dt`, `figcaption` e le briciole escono tutti a #7F7F7F. Quindi
   qui sotto non c'è nessuna riga di colore per il corpo — c'era, l'ho tolta.
   ========================================================================= */

/* Le schede non hanno i 4rem di respiro di un articolo lungo: cominciano
   subito, perché la prima riga utile è il nome. */
.pagina--luogo { padding-block: 2rem 3.5rem; }

.luogo__testa { margin-bottom: 2rem; }

.luogo__nome { margin: 0 0 .5rem; }

/* La riga sotto il titolo: «A Cascina (PI) · confessione cattolica».
   ⚠ `p.` e non `.` soltanto: `.pagina p` (riga 457) pesa (0,1,1) e vincerebbe
   su una classe sola. Misurato sul banco — usciva #7F7F7F invece di #BCBCBC. */
p.luogo__occhiello {
	margin: 0 0 1.5rem;
	color: var(--c-tenue);
	font-size: 15px;
}
.luogo__occhiello a { color: var(--c-inchiostro); text-decoration: underline; text-underline-offset: 3px; }
.luogo__occhiello span[aria-hidden] { opacity: .45; margin: 0 .25em; }

/* Zero su 117 schede ce l'hanno. Se ne arriverà una, non si prende lo schermo:
   `40vh` è alta abbastanza per riconoscere un cancello e bassa abbastanza da
   lasciar vedere che sotto c'è dell'altro. */
.luogo__foto { margin: 0 0 1.5rem; }
.luogo__foto img { width: 100%; max-height: 40vh; object-fit: cover; }

/* Le due cose che si possono fare. In colonna sul telefono — due bottoni
   affiancati a 375 diventano due bersagli stretti — e in riga da 480 in su. */
.luogo__azioni { display: flex; flex-direction: column; gap: .6rem; align-items: stretch; }
.luogo__azione { flex: 0 0 auto; }

/* Nessun colore: la riga sta in un `<p>` dentro `.pagina`, e la 457 la porta
   già a #7F7F7F. Una dichiarazione in più qui sarebbe una riga che non vince
   mai — la prova è l'occhiello qui sopra. */
.luogo__coordinate { margin: .3rem 0 0; line-height: 1.45; }
.luogo__coordinate code { color: var(--c-tenue); font-size: .95em; }

@media (min-width: 480px) {
	.luogo__azioni { flex-direction: row; flex-wrap: wrap; align-items: center; }
	.luogo__coordinate { flex: 1 0 100%; margin-top: .5rem; }
}

/* ================================================== la home, 21/8/2026 (F12)

   🚨 QUESTO BLOCCO NASCE DA UNA MISURA, NON DA UN GUSTO.

   Il metro: per ogni nodo di testo della home si prende la scatola dal DOM, si
   legge il colore VERO del fondo dal pixel piu' frequente della cattura dentro
   quella scatola, e si calcola il contrasto WCAG. Serve perche' il fondo qui e'
   quasi sempre una FOTOGRAFIA o un gradiente, e `getComputedStyle` sul
   `background-color` risponde `rgba(0,0,0,0)` — cioe' un metro che guarda la
   cosa sbagliata e non da' errore.

   Primo giro, staging a 1440: **40 nodi misurati, 39 sotto la soglia AA**.
   Stesso metro sul vivo: 21 su 62. La differenza non e' «il vivo e' fatto
   meglio»: sono difetti NOSTRI, e uno per uno hanno una causa. */

/* ---------------------------------------------------------------------------
   1 · IL COLORE CHE IL CONTENUTO DICHIARA VINCE SUL RIPIEGO DEL TEMA.

   `.pagina p, .pagina li { color: var(--c-testo) }` (riga 457) ha specificita'
   0,1,1 e batte QUALUNQUE colore che il contenuto dichiari su un antenato,
   perche' quello arriva per eredita' e l'eredita' perde contro ogni regola.

   Il caso vero, misurato: nella sezione col QR il convertitore porta
   `color:#F7F7F7` sull'involucro dei due paragrafi — e' la scelta del grafico,
   scritta nel JSON — e il tema la buttava, rendendoli #7F7F7F sopra una
   fotografia verde chiara: **1,77:1**. Sul vivo gli stessi paragrafi sono
   #F7F7F7.

   ⚠ Perimetro contato: involucri con un `color:` in linea che contengono un
   `<p>` o un `<li>`, in tutte e 61 le pagine convertite → **12, su 5 pagine**
   (7 sulla home). Sulle altre quattro il colore dichiarato e' #54595F o
   #7F7F7F, cioe' uguale o piu' scuro del ripiego: nessuna ci perde. */
.pagina__contenuto [style*="color:"] :is(p, li) { color: inherit; }

/* ---------------------------------------------------------------------------
   2 · SULLA HOME I TITOLI SEGUONO IL KIT, COME SUL VIVO.

   `base.css` mette `--c-inchiostro: var(--c-bianco)` su `body.home`, e per una
   pagina tutta scura e' giusto. La home pero' scura non e': ha tre fasce chiare
   (#F7F7F7) dove stanno **nove intestazioni**, e li' il bianco spariva.

   Misurato a 1440 sui due siti, stesso metro:

       intestazione                        vivo              staging
       MEMORIE IMMORTALI · VALORE AGGIUNTO
       DURA PER SEMPRE · MARKETPLACE
       PIAZZA DEL CIMITERO · SVILUPPO WEB
       PUBBLICITA' · MANIFESTI FREE/PRO    #54595F  6,20:1   #FFFFFF  1,14:1

   Nove su nove. E il valore non e' scelto: e' il Kit (`h2_color` →
   `secondary` → #54595F), cioe' quello che il vivo rende su OGNI sua pagina.

   ⚠ Controllato prima di scriverlo che non rompa niente: sulla home ogni
   titolo che sta su una superficie SCURA porta gia' un `color` suo scritto dal
   grafico (#F7F7F7, #FFFFFF80, #474747, o uno `<span>` bianco in linea).
   Quelli senza colore proprio sono esattamente i nove di sopra piu' i titoli
   del carosello, che sono un componente del tema e si vestono da se' — v. il
   punto 3. */
body.home { --c-inchiostro: var(--c-secondario); }

/* ---------------------------------------------------------------------------
   3 · IL CAROSELLO SI VESTE DA SE', E NON CI RIUSCIVA.

   `.carosello__titolo` dichiara `color: var(--c-bianco)` con specificita' 0,1,0
   e `.pagina h2` la batte con 0,1,1: il titolo del carosello prendeva
   l'inchiostro della pagina invece del suo. Finche' la home era «scura» i due
   valori coincidevano e il difetto non si vedeva; col punto 2 si sarebbe visto
   subito, cinque titoli scuri sopra cinque fotografie.
   Si alza la specificita' del componente, non si abbassa quella della regola
   generale: il componente sa cosa gli serve, la regola generale no. */
.pagina .carosello__titolo,
.pagina .carosello__sotto { color: var(--c-bianco); }

/* ---------------------------------------------------------------------------
   4 · UNA RIGA CHE E' UNA FOTOGRAFIA CON DEL TESTO SOPRA E' SCURA.

   `.sezione--foto` ha il velo nero al 45% dal 4/8 (riga 258) proprio per questo.
   Alle RIGHE con fotografia non l'aveva nessuno, e sono due sulla home: la
   fascia di foglie autunnali (logo, «Cimiteri.Online» e il testo di
   presentazione) e le tombe col QR. Misurato: «Cimiteri.Online» #F7F7F7 sopra
   le foglie **1,83:1**, «Riceverai gratuitamente…» **1,77:1**.

   ⛔ `.riga--fascia` NO: quella e' una riga senza contenuto, cioe' la
   fotografia e basta. Velarla vorrebbe dire scurire una fotografia che nessuno
   deve leggere — e il vivo non la scurisce.

   ⚠ Il velo e' `position: absolute`, quindi esce dal flusso del `flex` e non
   diventa una colonna in piu'. Stesso velo e stesso valore di `.sezione--foto`:
   non e' un colore nuovo.

   📌 Cosa fa il vivo al posto del velo: `background-attachment: fixed`. Con
   l'attacco fisso il ritaglio della fotografia si prende sul VIDEO (1440x900)
   invece che sull'elemento (1440x540), e quello che finisce dietro al testo e'
   la parte scura delle foglie. E' un parallasse: cambia con lo scorrimento, e
   su iOS non funziona. Il velo legge uguale a ogni altezza di scorrimento. */
.riga--foto:not(.riga--fascia),
.colonne--foto:not(.riga--fascia) { position: relative; }
.riga--foto:not(.riga--fascia)::after,
.colonne--foto:not(.riga--fascia)::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	pointer-events: none;
}
.riga--foto:not(.riga--fascia) > *,
.colonne--foto:not(.riga--fascia) > * { position: relative; z-index: 1; }
.riga--foto:not(.riga--fascia),
.colonne--foto:not(.riga--fascia) {
	--c-inchiostro: var(--c-bianco);
	--c-tenue: var(--c-minore);
}
.riga--foto:not(.riga--fascia) :is(p, li),
.colonne--foto:not(.riga--fascia) :is(p, li) { color: var(--c-sfumatura-1); }

/* 🚨 G9(b), 28/8/2026 — LA STRISCIA NERA IN TRASPARENZA SOPRA LA FOTO DEL QR.

   Il velo qui sopra («4 · una riga fotografica con del testo sopra è
   scura», nato per le foglie E per questa fascia) è un rettangolo nero al
   45% che copre l'intera scatola. Sulla fascia del QR, ora che la foto
   sotto è un ritaglio diagonale (REGOLA 7 / G9-c, riga ~985), il velo
   restava un rettangolo pieno sopra: la striscia nera che Gabriele vedeva
   dietro al titolo «Darai più valore…» era questo velo, non una fotografia
   scura.
   Va tolto SOLO qui: sull'altra riga fotografica con testo (le foglie,
   «Cimiteri.Online») resta, giustificato dal contrasto misurato lì (nota
   qui sopra, 1,83:1 e 1,77:1 sul bianco). `content: none` toglie la
   scatola generata, non solo lo sfondo: stessa specificità del velo
   generico (0,2,1 contro 0,2,1: classe+attributo contro classe+:not), vince
   perché scritta dopo, in questo stesso punto del foglio — spostarla prima
   della regola generica la farebbe perdere. */
.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]::after { content: none; }

/* 🚨 CANCELLO DELLO SGUARDO, 30/8/2026 — R8: 3,47:1 misurato sul paragrafo
   di presentazione a 375 (y≈1130-1290), «senza velatura sotto il testo».
   Il velo qui SOPRA (0,45) è acceso — verificato con la sonda,
   `getComputedStyle(el,'::after').backgroundColor` risponde davvero
   `rgba(0,0,0,.45)` — ma sulle foglie più chiare (arancio/giallo autunnale)
   non basta: 3,47:1 è quello che resta anche col velo, e serve un 4,5:1 per
   un corpo 16px (non è testo grande). Conto a ritroso dal numero misurato:
   luminanza dello sfondo oggi ≈0,238 (da 3,47:1 su un bianco ≈0,95 di
   luminanza) → la foto sotto il velo vale ≈0,238/0,55 = 0,433 di luminanza
   propria. Per arrivare a 4,5:1 serve uno sfondo ≤0,172 di luminanza:
   0,433 × (1-opacità) ≤ 0,172 → opacità ≥ 0,60. Scelto **0,62**, con un
   margine oltre il minimo invece di un numero al filo. Stessa fascia, stesso
   meccanismo del velo generico: solo l'opacità cambia, scoped alla sola
   foto delle foglie perché è l'unica a non bastare col valore comune. */
.riga--foto[style*="foglie-cimitero-autunno-2.webp"]::after {
	background: rgba(0, 0, 0, .62);
}

/* 🚨 CANCELLO DELLO SGUARDO, 30/8/2026 (primo giro) — R7: 2,14:1 misurato sul
   paragrafo del QR a 375/768 (y≈3910-4010), «bianco su erba». La riga qui
   sopra (G9(b), 28/8) aveva tolto il velo generico da questa fascia perché,
   con la foto spostata su `::before` (REGOLA 7), il rettangolo pieno del
   vecchio velo copriva anche il taglio diagonale della foto sopra gli
   800px — ma togliendolo del tutto ha lasciato SENZA PROTEZIONE anche il
   caso sotto gli 800px (impilato, REGOLA `IL TESTO DEL QR PASSA SOTTO IL
   SUO STESSO GRAFICO`), dove il testo sta di nuovo sopra il prato nudo,
   senza nessun taglio da rispettare. Stesso conto di R8: da 2,14:1 la
   luminanza dello sfondo oggi è ≈0,417; per 4,5:1 serve ≤0,172 → opacità
   ≥0,59. Stessi 0,62 di R8 (un numero solo per due difetti della stessa
   causa, non due a caso), aggiunti come secondo livello di sfondo sullo
   STESSO `::before` che disegna la foto — non un nuovo elemento, non tocca
   lo z-index/isolation che REGOLA 7 ha già sistemato.

   🚨 CANCELLO DEL SECONDO GIRO — QUI SOTTO GLI 800PX NON BASTAVA: L'IPOTESI
   «sopra le due colonne restano affiancate e il testo non tocca la foto»
   era sbagliata. `ui-qa-expert` ha rimisurato bianco su questa stessa
   fotografia a TUTTE E QUATTRO le larghezze: 375 e 768 restano verdi
   (8,70:1 · 9,02:1, il velo qui sotto li copre già), **1440 e 1920 sono
   rossi** (2,56:1 · 2,46:1, peggior caso 2,26 e 2,20) — il testo sta
   comunque sopra il prato anche dove la colonna è "affiancata", la foto non
   è mai del tutto senza testo sopra. Tolto il cancello dei 800px: la stessa
   riga di R8 qui sopra (`.riga--foto[style*="foglie..."]::after`) non ha
   mai avuto questo cancello, ed è la stessa causa. Nessun `!important`
   nuovo: stessa dichiarazione, a qualunque larghezza. */
.colonne.riga--foto[style*="tombe-cimitero-lapidi-qr-code"]::before {
	background-image: linear-gradient(rgba(0, 0, 0, .62), rgba(0, 0, 0, .62)), var(--sfondo);
}

/* ---------------------------------------------------------------------------
   5 · IL CORPO DEL TESTO DELLA HOME: CONTRASTO E MISURA.

   Le parole di Gabriele, 21/8: «i tre blocchi valore sono in grigio chiaro su
   bianco a corpo minimo: si leggono male. Contrasto e corpo dentro lo stile che
   c'e'». Misurato: **13 px, #7F7F7F su #F0F0F0 → 3,51:1**, sotto il 4,5 di AA.
   Sul vivo e' lo stesso numero: e' un difetto del disegno originale, e
   correggerlo ci allontana dal vivo. E' la decisione, non una regressione.

   ⛔ Nessun colore nuovo: #54595F e' `--c-secondario`, il colore che il Kit da'
   gia' ai titoli e ai collegamenti di questo sito. Su #F7F7F7 fa **6,20:1**.
   ⛔ Nessuna misura nuova: 15 px e' un corpo che questa pagina usa gia' — il
   titoletto «Richiedi una lapide digitale» e i pulsanti sono `--corpo:15px`.
   E' un PAVIMENTO, non una taglia fissa: chi dichiara di piu' resta dov'e'.

   ⚠ `:where(body.home)` azzera la specificita' del corpo, cosi' questa regola
   pesa 0,1,1 come `.pagina p` e vince solo per posizione — e il punto 1, che
   pesa 0,2,1, continua a vincere su tutte e due dove il contenuto ha detto la
   sua. L'ordine e' voluto e va tenuto. */
:where(body.home) .pagina__contenuto :is(p, li) { color: var(--c-secondario); }
body.home .pagina__contenuto [style*="--corpo"] { font-size: max(var(--corpo), 15px); }

@media (max-width: 800px) {
	body.home .pagina__contenuto [style*="--corpo-m"] { font-size: max(var(--corpo-m), 15px); }
}

/* ⚠ ECCEZIONE VOLUTA AL PAVIMENTO QUI SOPRA, SOLO SULLE SEI CELLE DEI SERVIZI
   BUSINESS. Ordine di Gabriele del 28/8/2026: «non inventare, guarda e falla
   uguale» — la sezione deve stare in 100vh, dal titolo alla freccia. Il vivo
   porta 13px su queste sei celle (`--corpo:13px` nel dato, INVENTARIO §11: 13
   e' il corpo, 9 occorrenze; 15 sta solo su titoli e bottoni brevi). Col
   pavimento a 15 il testo va a 7 e 5 righe invece delle 6 e 4 del vivo, e la
   griglia non ci sta piu' in una schermata.
   Il pavimento del 21/8 RESTA per tutto il resto del sito — qui si vince
   solo per specificita' (stessa massa di classi/attributo della regola
   sopra, ma dopo nell'ordine del file) e solo dove il grep su
   `_conversione/html/` (61 pagine) trova la classe: `sezione--fascia-su` e
   `sezione--fascia-giu` (esatte, non le varianti -rovescia/-davanti) escono
   UNA volta ciascuna, entrambe su queste due righe di 16515.html — nessun'
   altra cella del sito scende sotto i 15px. */
body.home .sezione--fascia-su [style*="--corpo"],
body.home .sezione--fascia-giu [style*="--corpo"] { font-size: var(--corpo); }

/* ---------------------------------------------------------------------------
   5-bis · DUE FRASI CHIARE SU UNA FASCIA CHIARA, E QUI IL CONTENUTO SBAGLIA.

   Il punto 1 dice che il colore dichiarato dal contenuto vince. Su due frasi
   della fascia dei servizi quel colore le fa sparire, e sono misurate:

       «Servizi business Per operatori di settore»  #F7F7F7 su #F0F0F0  1,06:1
       «Accedi per usufruire dei servizi»           #F6F6F6 su #F0F0F0  1,05:1

   Le due non hanno la stessa storia, e vale la pena distinguerle:

   · **«Accedi per usufruire dei servizi» e' invisibile anche sul VIVO** —
     misurata la' con lo stesso metro: **1,05:1**, #F6F6F6 dentro la colonna
     `7da610b` che il vivo dipinge #F7F7F7. E' un difetto dell'originale.
   · **«Servizi business» sul vivo si legge (19,6:1)**, ed e' un difetto NOSTRO:
     il vivo le mette dietro un cuneo nero, che e' lo `shape_divider_top` della
     RIGA `2694243` (colore `#000000`, misurato sul DOM del vivo), e il
     convertitore le fasce diagonali le legge solo sulle sezioni di primo
     livello. Sono **4 righe con una fascia, tutte su 16515**, e portarle vuole
     anche `_z_index` sui widget (il titolo dichiara 10, ed e' cosi' che sta
     sopra il cuneo). ⛔ Non l'ho fatto: mezza fascia disegnata nel posto
     sbagliato e' peggio di nessuna fascia — e' la stessa trappola della «forma
     dentro la foto». Resta scritto come lavoro suo.

   Fino ad allora la fascia sotto e' chiara e l'inchiostro deve essere scuro.
   ⛔ `!important` e non specificita': il colore chiaro e' **in linea**, e in
   linea si batte solo cosi'. E' l'unico `!important` di questo foglio: sta
   legato a `body.home` **e** a una colonna che dichiara #F7F7F7, cioe' alla
   fascia dei servizi e a nient'altro. Le sei intestazioni delle schede che
   stanno dentro la stessa colonna sono gia' #54595F: per loro non cambia
   niente, e l'ho verificato nel giro dopo. */
/* 🔁 29/8/2026 - CORRETTA, e la causa era una misura fatta sul posto sbagliato.
   La regola qui sotto e' giusta per il corpo delle sei schede, che stanno su
   fondo chiaro. NON lo era per il titolo «Servizi business per operatori di
   settore»: quel titolo cade DENTRO la banda nera che taglia la sezione, e li'
   il colore scuro non si legge. Sul vivo quel titolo e' `rgb(247,247,247)`,
   cioe' CHIARO, ed e' per questo che sul nero si legge - misurato il 29/8 su
   cimiteri.online, mentre da noi il computed era `rgb(84,89,95)`.
   Chi ha scritto la regola ha guardato il fondo della colonna (#F7F7F7) senza
   vedere che la banda ci passa sopra: un colore giusto per lo sfondo sbagliato.
   👉 Adesso chi dichiara il chiaro IN LINEA resta chiaro; tutto il resto
   continua a diventare scuro come prima.

   🚨 RICHIESTA DI GABRIELE, 30/8 — L'ECCEZIONE CHIUDE. Con la sezione
   diventata chiara (sopra), non c'è più nessuna banda nera dietro cui
   questo titolo debba restare chiaro: `color:#F7F7F7` in linea sarebbe
   bianco su bianco, lo stesso difetto da cui si scappa. Verificato prima di
   toccare (`grep` su tutte le `.colonna[style*="--fondo:#F7F7F7"]` della
   home): è l'UNICO elemento che questa eccezione teneva chiaro su tutta la
   pagina — toglierla non scurisce nient'altro. Non è un `!important` nuovo:
   è la stessa dichiarazione di prima, con il selettore ristretto (l'esclusione
   toglie sé stessa, la regola non guadagna un carattere). */
body.home .colonna[style*="--fondo:#F7F7F7"] :is(h1, h2, h3, h4, p, li) {
	color: var(--c-secondario) !important;
}

/* ---------------------------------------------------------------------------
   5-ter · E IL VERDETTO QUI SOPRA VALEVA SOLO A 1440.

   «La fascia sotto e' chiara e l'inchiostro e' scuro» e' vero a 1440, dove il
   titolo poggia sul bianco e il metro da' 6,6. Alle altre due larghezze no, e
   nessuno le aveva guardate:

       @768  il titolo sta a y=4662..4680, il riquadro chiaro comincia a
             **y=4669**: la linea del bordo passa all'altezza della x delle
             lettere. Meta' titolo sopra la fotografia dell'erba, meta' sul
             bianco.
       @375  il titolo (y=4953..4971) sta **tutto sopra la fotografia**, e il
             riquadro comincia esatto sotto la base delle lettere. #54595F
             sopra l'erba dorata: **il metro della squadra stessa lo dava 1,0**,
             e quella riga stava in `contrasto-375-dopo.txt` marcata ROSSO
             senza essere mai arrivata in un rapporto.

   La causa non e' il colore: e' che il titolo **esce dal riquadro**. Il
   contenuto dichiara `--su-m: -18px` su quell'h2, e sotto gli 800 px
   `.stacco[style*="--su-m"]` lo applica: il titolo viene tirato su di 18 px e
   scavalca il bordo alto della colonna che gli fa da riquadro.

   Sul vivo lo stesso −18px c'e', e non fa danno perche' li' sotto il titolo
   c'e' il cuneo nero (lo `shape_divider_top` della riga `2694243`): il titolo
   esce dal riquadro e atterra sul nero. Il cuneo non l'abbiamo portato, ed e'
   stata la scelta giusta — v. il punto 5-bis. Senza cuneo, il −18 va tolto: un
   titolo dentro il proprio riquadro e' quello che il grafico voleva, e la
   riparazione e' **dare al titolo un posto dentro il riquadro chiaro invece
   che a cavallo del suo bordo**.

   ⛔ Non si tocca `.stacco`, che vale su tutto il sito: si clampa a zero il
   solo margine NEGATIVO, e solo per un titolo dentro una colonna che dichiara
   il fondo chiaro.
   ⚠ PERIMETRO CONTATO SULLE 61 PAGINE CONVERTITE: titoli con un `--su-m`
   negativo dentro una colonna `--fondo:#F7F7F7` → **1**, ed e' questo.
   (Titoli con `--su-m` negativo in generale ce ne sono 9: gli altri otto non
   stanno in un riquadro chiaro e non li tocca nessuno.) */
@media (max-width: 800px) {
	body.home .colonna[style*="--fondo:#F7F7F7"] :is(h1, h2, h3, h4).stacco[style*="--su-m"] {
		margin-block-start: max(0px, var(--su-m));
	}
}

/* R6, CANCELLO DEL 30/8 — TESTO SEGATO A META' DAL BORDO DI UNA SEZIONE (375,
   y≈4085): misura in corso, non ancora chiuso. V. G7quater-GRAFICA-20260830.md
   §R6 per cosa e' stato escluso e cosa resta da guardare — non e' `--su-m`
   della riga foto+testo del QR Code: azzerarlo sposta tutto il blocco di 96px
   ma il vuoto fra `offsetHeight` e `scrollHeight` della colonna che lo
   contiene resta lo stesso, 68px, prima e dopo. */

/* 🚨 E A 1440 LA E DI «SETTORE» TOCCAVA IL BORDO DEL RIQUADRO. (21/8/2026.)

   Il titolo e' allineato a destra (`a-destra`, e la scelta e' del grafico), il
   riquadro chiaro va da x=120 a x=1320, e il titolo finisce **esatto a 1320**:
   zero margine, l'ultima lettera attaccata al bordo.

   Il vivo, stesso titolo a 1440: il testo finisce a **1195** dentro una colonna
   che arriva a 1440, cioe' **245 px di respiro**. Il riquadro largo lo abbiamo
   noi, ma il respiro lo dobbiamo mettere: senza, sembra un testo tagliato.

   ⛔ Nessuna misura nuova: 1.25rem e' il rientro laterale che questo foglio usa
   gia' in `.carosello__testo`, `.elenco` e `.piede__dentro`.
   ⚠ Legato a `body.home` e alla colonna che dichiara il fondo chiaro, come le
   due regole qui sopra: perimetro **1 titolo su 61 pagine**. */
body.home .colonna[style*="--fondo:#F7F7F7"] > .elemento > .a-destra {
	padding-inline-end: 1.25rem;
}

/* 🚨 5-quater · E NON ERA SOLO IL TITOLO: TUTTO IL RIQUADRO E' A FILO DEL BORDO.
   (21/8/2026, F12 terzo giro.)

   La riga qui sopra ha staccato dal bordo il titolo. Guardata la cattura a
   1440, la stessa cosa capita al testo delle SCHEDE, e si vede a occhio nudo:

       «…di scaricare o installare» (terza colonna, y≈4900 e y≈5145)
           finisce a **x=1320**, cioe' esattamente sul confine fra il bianco del
           riquadro e il nero della pagina. La «e» finale tocca il nero.
       «Accedi per usufruire dei servizi» e i due pulsanti (y≈5428 e y≈5485)
           partono da **x=120**, cioe' esattamente sul bordo sinistro.

   Non e' che quelle due colonne siano piu' larghe: e' che il riquadro **non ha
   nessun rientro**, e le prime due colonne si salvano solo perche' le loro
   righe piu' lunghe finiscono prima. Sul vivo il rientro c'e', ed e' grosso —
   misurato a 1440 con `getBoundingClientRect` sugli stessi due elementi:

       elemento                              vivo            noi (prima)
       paragrafo «Prova il nostro…»    x=885  w=304    x=941  w=379
       fine del paragrafo              1189            **1320** = bordo
       «Accedi per usufruire…»         x=245  w=950    x=120  w=1200
       riquadro chiaro                 x=0 → 1440      x=120 → 1320

   cioe' sul vivo il testo sta dentro il contenitore da 1140 di Elementor e il
   riquadro arriva ai bordi della finestra: **~150 px di aria per lato**. Da noi
   il riquadro E' la gabbia, e l'aria e' zero.

   ⛔ Non si copia il numero del vivo: 150 px per lato su un riquadro largo 1200
   stringerebbero ogni colonna da 400 a 317 e riscriverebbero tutte le righe —
   quello sarebbe un ridisegno. Si mette il rientro che questo foglio usa gia'
   dappertutto, **1.25rem**, lo stesso della riga qui sopra e di
   `.carosello__testo`, `.elenco`, `.piede__dentro`.
   ⚠ PERIMETRO: `.sezione > .colonna` che dichiara un `--fondo`, sulle 61 pagine
   → colonne con `--fondo` ce ne sono 17 su 14 pagine, ma **legato a body.home**
   e al figlio diretto della sezione ne resta **1**, il riquadro dei servizi.
   L'altra colonna con `--fondo` della home (`#FFFFFF00`, quella dei pulsanti)
   sta dentro una `.riga` e non e' toccata.

   🚨 E QUESTO RESPIRO SI SOMMAVA A QUELLO DELLA SEZIONE, SOTTO GLI 800 PX.
   (27/8/2026, F12-bis casella (4).) Scritta e provata solo a 1440 ("Guardata
   la cattura a 1440" qui sopra), questa riga non aveva la guardia di
   breakpoint della regola gemella (`.sezione[style*="--larghezza-sezione:none"]`,
   riga 125, `@media (min-width: 801px)`). Sotto gli 800px `.sezione` non perde
   il suo `padding-inline: 1.25rem` (si azzera solo sopra 800), quindi la
   griglia dei sei servizi si ritrovava CON DUE rientri da 20px per lato invece
   di uno: 40+40=80px persi invece di 40.

   Misurato con `getComputedStyle` reale (CDP, non dedotto): a 768px il
   riquadro `.colonna[style*="--fondo"]` risultava 688px invece dei 728px che
   il solo padding della sezione avrebbe lasciato — lo scarto di 68px rispetto
   al vivo (756px) segnalato in `MISURE-DOPO.md` era per il 59% (40 dei 68px)
   proprio questa doppia imbottitura fissa, uguale a 768 e a 375 perche' non
   dipende dalla larghezza. Il resto (28px) resta un residuo del contenitore,
   non indagato qui.
   👉 Stessa cornice, stesso rientro: sopra 800 lo mette la colonna (la
   sezione l'ha gia' perso), sotto 800 lo mette gia' la sezione — non serve
   due volte. */
@media (min-width: 801px) {
	body.home .sezione > .colonna[style*="--fondo"] {
		padding-inline: 1.25rem;
	}
}

/* 🚨 5-quinquies · TOLTA IL 28/8/2026 (SQUADRA SERVIZI-2, banco 33-gabriele).
   Centrava di proposito «Accedi per usufruire dei servizi» e i due pulsanti,
   con la motivazione scritta qui sotto (rimasta come storia, non piu' valida
   come scelta). Gabriele ha guardato le due schermate affiancate e ha detto
   che non si somigliano: sul vivo quella riga e' allineata a sinistra, a filo
   della prima colonna delle schede — misurato di nuovo il 28/8 con
   `misura-dom.py` scrollato sulla sezione vera (non un ritaglio a freddo, il
   popup GDPR blocca lo scroll ed e' stato chiuso prima di ogni cattura):

       paragrafo «Accedi…»   vivo x=326 (a filo di "MARKETPLACE", x=356)
                              noi (prima) centrato, x=326..1593 ma testo a metà
       pulsanti Accedi/Registrati   vivo x=326..544, sinistra
                                    noi (prima) centrati sotto il paragrafo

   Ordine esplicito: «non inventare, guarda e falla uguale». Si torna indietro
   togliendo la regola, esattamente come la nota di sotto (5-quinquies, storia)
   aveva già previsto come via di rientro.

   ⚠ **E questa era anche la causa vera della freccia sovrapposta ai
   pulsanti** (casella 1 della stessa sessione): la freccia «scorri giù» resta
   sempre centrata sulla larghezza piena della sezione (`left:50%` su
   `.sezione`, riga ~3509) — sul vivo i pulsanti stanno lontani dal centro
   (x=326..544) e non la incontrano mai, anche se le due file si sovrappongono
   in verticale (misurato anche sul vivo: freccia y=5273..5321, pulsanti
   y=5299..5337, stessa fascia). Da noi i pulsanti centrati finivano proprio
   sotto al centro, dove sta la freccia (x=936..984): tolto il centraggio,
   tornano a sinistra e la freccia resta sola, come sul vivo. Nessuna riga
   nuova per la freccia stessa: il `bottom:24px` di riga ~3510 non cambia,
   cambia solo dove stanno i pulsanti.

   Storia della regola tolta, per chi la ritrovasse in un log:
   -----------------------------------------------------------------------
   5-quinquies · L'ULTIMA RIGA DEL RIQUADRO ROMPE L'ASSE DI TUTTO IL RESTO.
   (21/8/2026, F12 terzo giro.)

   Dentro il riquadro dei servizi tutto e' centrato: il titolo di sezione, le
   sei intestazioni, i sei paragrafi. L'ultima riga no: «Accedi per usufruire
   dei servizi» e i pulsanti «Accedi» / «Registrati» sono allineati a sinistra
   (`a-sinistra`, che e' l'`align: left` scritto dal grafico) e con la riga
   5-quater partono a 20 px dal bordo. In mezzo a un riquadro tutto centrato si
   leggeva come un pezzo caduto fuori posto.

   E il grafico non aveva torto: sul vivo quella riga non sta dentro il
   riquadro — il riquadro chiaro finisce con un cuneo nero e «Accedi per
   usufruire dei servizi» atterra sul nero, in bianco (`#F6F6F6`, che dentro
   il riquadro sarebbe invisibile — v. il punto 5-bis). Su una fascia nera
   larga quanto la finestra un blocco allineato a sinistra si legge; dentro un
   riquadro centrato, no. Il cuneo era deciso di non portarlo (v. 5-bis e
   5-ter), quindi quella riga restava dentro il riquadro e prendeva il suo
   asse. Oggi resta lo stesso limite (il cuneo non c'e'), ma l'ordine di
   Gabriele vale più della coerenza interna: si accetta che la riga sembri un
   po' fuori posto pur di essere allineata come sul vivo. */

/* 🚨 5-quinquies-bis · SINISTRA SÌ, MA A FILO DI COSA? (28/8/2026, stessa
   sessione della riga qui sopra.)

   Togliere il centraggio allinea il paragrafo e i pulsanti a sinistra, ma
   dentro il riquadro chiaro (che arriva a filo di finestra) «a sinistra»
   voleva dire **al bordo della sezione** (x=20, il solo padding di riga
   ~2757), non al bordo della griglia delle sei schede — che sul vivo è
   esattamente dove Gabriele ha detto «a filo della prima colonna»: misurato
   il marchio «MARKETPLACE» a 1920, x=326; il paragrafo, prima di questa
   riga, stava a x=20 — 306px più a sinistra della sua stessa griglia.

   La griglia dei sei servizi ha già la sua regola per stare al 66% centrata
   (`--larghezza-riga:66vw`, riga ~168): sul vivo la stessa larghezza torna
   identica a due misure (950px/1440 e 1267px/1920, sempre 66% — nota alla
   riga 163). Basta dare la STESSA cornice alla riga «Accedi…», che ha
   `--fondo:#FFFFFF00` e nessun `--larghezza-riga` proprio (non è una
   `.colonne`, è un `.riga > .colonna` normale): a `max-width` e
   `margin-inline: auto` uguali, i due bordi sinistri coincidono per
   costruzione, a qualunque larghezza — non serve una misura nuova, è la
   stessa già provata.
   ⚠ PERIMETRO invariato dalla riga qui sopra: lo stesso, unico
   `.riga > .colonna[style*="--fondo"]` dentro il riquadro chiaro della
   home. */
body.home .colonna[style*="--fondo:#F7F7F7"] .riga > .colonna[style*="--fondo"] {
	max-width: 66vw;
	margin-inline: auto;
}

/* 🚨 «ACCEDI/REGISTRATI» SOTTO GLI 800px: STESSO TETTO AL 66%, STESSO BUCO
   GIA' VISTO SULLA GRIGLIA DEI SERVIZI. (30/8/2026, ZONA BASSA.)

   La regola qui sopra copia apposta il `max-width:66vw` della griglia dei
   sei servizi (riga ~168) per allineare i due bordi sinistri — ma la
   griglia ha GIA' la sua eccezione sotto 800px (riga 233-234, `max-width:
   none`) mentre questa copia no: sotto 800px il tetto resta al 66% (247,5px
   a 375) mentre il resto della fascia e' gia' passato a larghezza piena.
   Dentro quei 247,5px (meno 40px di padding, 208px liberi) i due pulsanti
   «Accedi» (93px) e «Registrati» (111px) non ci stanno appaiati — total
   204px più il gap del `.riga` (1rem, riga 746) — e vanno a capo: due
   pulsanti impilati, spostati a sinistra (x=84, non centrati), invece che
   appaiati come sul vivo. Stessa soglia, stessa cura della griglia qui
   sopra: si spegne il tetto, non si tocca il resto. */
@media (max-width: 800px) {
	body.home .colonna[style*="--fondo:#F7F7F7"] .riga > .colonna[style*="--fondo"] {
		max-width: none;
	}
}

/* 🚨 5-sexies · IL PAVIMENTO DEI 15 px AVEVA UN BUCO, E CI CADEVA UN PARAGRAFO.
   (21/8/2026, F12 terzo giro.)

   Il punto 5 mette un pavimento di 15 px al corpo del testo della home, ma il
   selettore chiede `[style*="--corpo"]`: prende solo chi la misura **se la
   scrive addosso**. Chi non la scrive eredita i **13 px** che il Kit da' a
   `.stile-text` (`token.css:24`) e passa sotto il pavimento senza toccarlo.

   Ci cade un paragrafo solo, ed e' lungo:

       «Si dice che l'anima dei nostri cari sopravviva nelle memorie…»
       13 px a tutte e tre le larghezze — a 1440 y≈3079, su una riga larga
       **1200 px** da x=120 a x=1320, cioe' circa centottanta caratteri per
       riga. E' l'unico corpo di testo della home sotto i 15 px: tutti gli
       altri paragrafi sono a 15.

   ⚠ Ereditato: sondato il vivo, la stessa frase e' **13 px anche li'**. Non e'
   una regressione nostra — ed e' esattamente il caso che il punto 5 ha gia'
   deciso una volta per i tre blocchi «valore»: sul vivo era 13, l'abbiamo
   portato a 15, e la decisione e' scritta.
   ⛔ Nessuna misura nuova: 15 px e' lo stesso pavimento del punto 5.
   ⚠ PERIMETRO, contato sul `16515.html` generato: `.stile-text` sulla home
   → **16**, di cui **1 sola** senza `--corpo`. Le altre 15 non si muovono. */
body.home .pagina__contenuto .stile-text:not([style*="--corpo"]) {
	font-size: 15px;
}

/* ---------------------------------------------------------------------------
   5-septies · `.disegno` NON ESISTEVA IN QUESTO FOGLIO, E DIECI FORME ERANO
   ALTE ZERO. (21/8/2026, F12 terzo giro — trovata guardando, non cercando.)

   Il convertitore stampa le forme del grafico cosi':

       <span class="disegno … disegno--maschera" aria-hidden="true"
             style="--misura:38px;--icona:url('…/free.svg')"></span>

   e da' per scontato che il tema sappia cosa farne — il suo commento dice
   perfino «il tetto di `.disegno` (96px) resta». **In `nexen-cimiteri` non
   c'era una sola riga per `.disegno`**: uno `<span>` vuoto senza dimensione e
   senza fondo e' alto zero. Misurato nel DOM prima di scrivere una riga:
   **8 elementi sulla home, tutti `0 × 0` con `mask: none`** — i **sei bollini
   Free/Pro** sopra le schede della fascia business e **due icone cornice** —
   piu' altri 2 su `14092`. Dieci forme su 61 pagine, tutte invisibili.

   🚨 E LA MASCHERA QUI SAREBBE STATA LA RIPARAZIONE SBAGLIATA.
   `free.svg` (viewBox **75 × 36,1**) e `pro.svg` (**60,1 × 36,1**) sono a **due
   colori**: una piastra `#1d1d1b` e la scritta `#fff` sopra. Una maschera tiene
   la SAGOMA e butta i colori: la scritta «Free» sparirebbe dentro la sua targa
   e resterebbe una pillola piena. Otto bollini sbagliati sono peggio di otto
   bollini invisibili.

   ⛔ Quindi la maschera si usa **solo quando il contenuto dichiara un colore**,
   che e' il `primary_color` scritto dal grafico: allora il file e' monocromo e
   il colore lo mette il CSS (e' il caso delle due icone cornice, `--colore:#54595F`).
   Senza `--colore` il file si stampa **com'e'**, coi suoi colori.

   ⚠ LA MISURA VIENE DAL VIVO, non e' scelta qui. `getComputedStyle` sugli
   otto elementi corrispondenti di `cimiteri.online` a 1440:

       tre bollini Free   **38 × 38**   riquadro QUADRATO
       tre bollini Pro    **30 × 30**   riquadro QUADRATO
       due icone cornice  **26 × 26**   `fill: rgb(84, 89, 95)` = #54595F

   cioe' esattamente `--misura` per lato, e il disegno dentro sta in mezzo col
   suo rapporto (il vivo lo inserisce come `<svg>` col `preserveAspectRatio`
   predefinito, che e' quello che `background-size: contain` fa qui).

   ⛔ Legata a `span.disegno`: la forma a `<img>` di `.disegno` — il ramo raster
   del convertitore, quello dell'esagono da 430px — **non si tocca**. Sulle 61
   pagine di questo sito non esce mai (0 occorrenze di `<img class="disegno`),
   ma il ramo esiste e squadrarlo deformerebbe una fotografia. */
span.disegno {
	display: inline-block;
	vertical-align: middle;
	inline-size: var(--misura, 96px);
	block-size: var(--misura, 96px);
	max-inline-size: 100%;
	background: var(--icona) center / contain no-repeat;
}
span.disegno--maschera[style*="--colore"] {
	background: var(--colore, currentColor);
	-webkit-mask: var(--icona) center / contain no-repeat;
	mask: var(--icona) center / contain no-repeat;
}

/* ---------------------------------------------------------------------------
   5-octies · UN'ICONA DI FONT SUL WIDGET `icon` STANDALONE, non `icon-box`.
   (22/8/2026, F12 quarto giro — le nove icone che il convertitore buttava.)

   Il ramo qui sopra (`disegno--maschera`) veste un'icona caricata come FILE
   (`--icona:url('…/free.svg')`). Un'icona di FONT non ha un file da puntare:
   il convertitore la stampa gia' come classe pronta, `icona--<nome>`, che
   `icone.css` genera dal font che il sito aveva — la STESSA classe che
   `icon-box` usa da giorni su `.riquadro__icona`. Qui manca solo la cornice:
   la taglia la da' gia' `span.disegno` (`--misura`), resta da dire ai due
   proprieta' di maschera come comportarsi.

   Chiude da soli due rossi del giro 22/8: lo stacco di `far fa-hourglass`
   sopra «MEMORIE IMMORTALI» a 768 (il titolo sporgeva sulla fotografia,
   1,45:1) e le icone di `icon icon-store-solid`/`fas fa-church`/
   `fas fa-globe`/`far fa-flag` che mancavano alle prime due colonne delle
   schede business a 1440 (la terza, con la sua icona-cornice a SVG, era gia'
   allineata da sola).

   ⚠ Il colore lo mette `--colore` come nel ramo maschera qui sopra (il Kit lo
   scrive con `primary_color`); senza, resta `currentColor` — il testo intorno
   decide.

   🚨 I 20px DEL WIDGET NON BASTANO: MANCANO 6px, E SUL VIVO NON SONO UN
   NUMERO SCRITTO DA NESSUNA PARTE.

   Prima riparazione (misurata subito dopo averla scritta): lo scarto fra
   fotografia e titolo passava da 0 (sovrapposti) a **10px** — il rosso non
   c'era piu', ma il vivo alla stessa misura da' **16px**
   (`stacco_titolo_da_foto`, sonda su `cimiteri.online` a 768). Sei px in meno,
   e non venivano da un dato buttato: venivano da un pezzo di DOM che il vivo
   ha e noi no.

   Sul vivo l'icona (`<i class="far fa-hourglass">`, 20×20) sta dentro
   `.elementor-icon-wrapper`, un `<div>` di blocco senza padding ne' margine
   che pero' e' alto **26px**, non 20: il resto e' lo spazio che un elemento
   `inline-block` (`.elementor-icon`) lascia sotto di se' dentro un blocco che
   non gli toglie la riga di testo (`vertical-align: baseline`, l'effetto e'
   lo stesso «spazio fantasma sotto le immagini» dei manuali CSS). Non e' un
   `icon_padding` che il grafico ha scritto — cercato nel JSON e non c'e' — e'
   un margine che Elementor produce da solo per OGNI icona sola in una riga,
   sempre, sulle nove misurate qui: 6px, indipendenti dal colore o dal nome.

   Non lo si ricrea rifacendo la stessa struttura (un `<div>` in piu' e la
   riga di testo del genitore, per un dettaglio che nessuno leggerebbe mai in
   `elementor-a-html-cimiteri.py`): si porta il NUMERO, misurato, come si fa
   con ogni altro scarto che questo foglio prende dal vivo. */
span.disegno--font {
	background-color: var(--colore, currentColor);
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
	-webkit-mask-size: contain; mask-size: contain;
}
/* ⚠ Discendente, non figlio diretto: quattro delle nove icone (store-solid,
   church, globe, flag) sono anche un collegamento, ed escono
   `.elemento > a.disegno-collegamento > span.disegno--font` — un `>` qui le
   avrebbe escluse in silenzio. Misurato: coi due bollini Free/Pro le colonne
   business tornavano da 22/34px di scarto a soli 5/16, non a zero, perche' lo
   scarto vero (6px) non arrivava alle colonne CON un collegamento. */
.elemento span.disegno--font:not(.larghezza-auto) {
	margin-block-end: 6px;
}

/* SQ-ICONE (33-gabriele/SQ-ICONE.md) — DUE ICONE RESTANO PICCOLE DOPO IL
   VIEWBOX ALLARGATO, E LA COMPENSAZIONE E' QUI, NON IN icone.css.

   `.icona--church` e `.icona--book-open` avevano lo stesso bug del "pesce"
   dell'infinito (viewBox quadrato su un glifo più largo che alto): corretto
   in `icone.css` allargando il viewBox a 640×512 e 576×512. Ma il riquadro
   che le contiene è quadrato (`span.disegno`, riga ~2733: `inline-size` e
   `block-size` sono entrambi `var(--misura)`), e un riquadro quadrato su un
   viewBox più largo fa scalare `mask-size: contain` sulla LARGHEZZA: l'altezza
   resa si accorcia dello stesso rapporto.

   Misurato sui numeri reali del sito, non su un render: chiesa in home
   (`--misura:20px`, `16515.html:132`) PRIMA 20×20 di riquadro → resa 20×16
   (-20%, esattamente la nota del rapporto); libro aperto su `14092.html:10`
   (`--misura:35px`) PRIMA 35×35 → resa 35×31,1 (-11%). Le icone vicine
   (store-solid, globe, flag: viewBox 512×512, mai toccate) restano piene.

   Si allarga `inline-size` nello stesso rapporto del viewBox, `block-size`
   resta `var(--misura)`: il riquadro prende l'aspetto vero del glifo e
   `contain` non scarta più nulla. DOPO: chiesa 25×20 (l'altezza torna 20,
   uguale alle vicine), libro aperto 39,4×35 (l'altezza torna 35). La
   larghezza cresce — è il glifo vero, più largo che alto — l'altezza no. */
.disegno--font.icona--church { inline-size: calc(var(--misura, 96px) * 640 / 512); }
.disegno--font.icona--book-open { inline-size: calc(var(--misura, 96px) * 576 / 512); }

/* ---------------------------------------------------------------------------
   SQ-HOVER (33-gabriele/SQ-HOVER.md) — LE TRE CELLE «MEMORIE IMMORTALI»,
   «VALORE AGGIUNTO», «DURA PER SEMPRE» ERANO FERME AL PASSAGGIO DEL MOUSE.
   (28/8/2026.)

   Gabriele guardando la home: «queste tre celle avevano un lieve effetto
   hover». Letto `_elementor_data` del vivo (post 16515, sola lettura via
   SSH) sui tre widget di testo (44eaead, 9104586, 0640f6f): dichiarano
   `_border_hover_color`/`_border_hover_width`, ma SENZA `_border_border`
   (lo stile del bordo) quella dichiarazione non produce nessuna riga nel
   CSS che Elementor genera davvero — verificato scaricando
   `post-16515.css` dal vivo: zero regole di bordo o di hover sui tre
   selettori. Un dato scritto e mai arrivato al foglio, come altri già
   trovati in questo file: non è l'effetto che cercava Gabriele.

   L'effetto vero sta due nodi più in alto, sulle COLONNE e sulle ICONE:

       colonna (143bd14 / 7fa2e1a / 4c21f4a)
           background_hover_background: classic
           background_hover_color: globals/colors?id=5a2189f → #A5A5A51A
       icona (d6faef6 / 502905d / fac7db8, clessidra / coppa / infinito)
           hover_animation: grow

   e il CSS generato dal vivo lo conferma alla lettera:

       .elementor-element-143bd14:hover > .elementor-element-populated
           { background-color: var(--e-global-color-5a2189f); }
       .elementor-animation-grow
           { transition-duration:.3s; transition-property:transform }
       .elementor-animation-grow:hover,
       .elementor-animation-grow:focus,
       .elementor-animation-grow:active { transform: scale(1.1); }

   `#A5A5A51A` è già un token qui: `--c-sfondo-chiaro` (base.css:22), lo
   stesso colore "Sfondo chiaro" del Kit — non un grigio scelto ora, è il
   numero del vivo. `scale(1.1)` e `.3s` sono gli stessi del vivo, non
   inventati.

   ⚠ Perimetro: nel nostro markup le tre icone sono le uniche col loro
   nome — `icona--hourglass`, `icona--award`, `icona--infinity` compaiono
   UNA volta ciascuna su tutto `_conversione/html/` (grep 28/8/2026) — il
   selettore non tocca nessun altro riquadro del sito.
   ⚠ `background-color` e `transform: scale()` non cambiano lo spazio
   occupato: nessun testo delle celle vicine si sposta, il calcolo della
   griglia resta lo stesso.
   Spento sotto `prefers-reduced-motion: reduce` e dove non c'è un
   puntatore (`@media (hover: hover)`): nessuna delle due condizioni la
   dichiara il vivo (Elementor non le scrive), ma è la regola che questo
   foglio segue già per tutto quello che si muove al passaggio del mouse. */
@media (hover: hover) {
	.colonna:has(> .elemento > .icona--hourglass, > .elemento > .icona--award, > .elemento > .icona--infinity) {
		transition: background-color .3s;
	}
	.colonna:has(> .elemento > .icona--hourglass, > .elemento > .icona--award, > .elemento > .icona--infinity):hover {
		background-color: var(--c-sfondo-chiaro);
	}
	.icona--hourglass, .icona--award, .icona--infinity { transition: transform .3s; }
	.colonna:hover > .elemento > .icona--hourglass,
	.colonna:hover > .elemento > .icona--award,
	.colonna:hover > .elemento > .icona--infinity { transform: scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
	.colonna:has(> .elemento > .icona--hourglass, > .elemento > .icona--award, > .elemento > .icona--infinity),
	.icona--hourglass, .icona--award, .icona--infinity { transition: none; }
}

/* ---------------------------------------------------------------------------
   7 · IL CAROSELLO HA UN VELO, E IL VALORE E' DEL VIVO.

   «Richiedi Gratuitamente un'identita' funebre digitale per custodire le loro
   biografie», 16 px bianchi sopra il prato illuminato: y=2195 a 1440, y=2472 a
   375. Il metro la marca 1,01 e «fondo non uniforme: guardare l'immagine» —
   cioe' dice di guardarla. **Guardata** (`23-home/zoom-768.png`): le parole si
   sciolgono nel verde chiaro, e l'ombra che il foglio le da' non basta.

   ⛔ Non ho inventato un rettangolo dietro al testo: sono andato a vedere cosa
   ci mette il VIVO. Il widget `slides` di Elementor Pro rende su ogni
   diapositiva un `.elementor-background-overlay`, e misurato con
   `getComputedStyle` su `cimiteri.online` a 768 vale **`rgba(0, 0, 0, 0.31)`**,
   uguale su tutte e cinque. Il titolo e il sottotitolo del vivo, sempre
   misurati li', hanno `text-shadow: none`: **il vivo il testo lo fa leggere col
   velo, non con l'ombra**.

   Quindi si porta il velo del vivo, col suo numero. L'ombra del tema resta
   dov'era (`.carosello__titolo`/`__sotto`, .55): e' piu' debole del velo e non
   fa danno, e toglierla sarebbe un secondo cambiamento per un difetto solo.

   ⚠ Il velo sta sopra la fotografia e sotto il testo: `.carosello__testo` e'
   gia' `position: absolute; inset: 0`, quindi basta dipingere il `<li>` con uno
   pseudo-elemento e lasciare il testo dove sta.
   ⚠ Perimetro contato sulle 61 pagine: `class="carosello"` esce su **1 sola
   pagina**, la home, con **5 diapositive e tutte e 5 con il testo sopra**.
   `:has(.carosello__testo)` e' comunque scritto: una diapositiva senza testo
   e' una fotografia e basta, e una fotografia che nessuno deve leggere non si
   scurisce — e' la stessa regola gia' scritta per `.riga--fascia`. */
.carosello > li:has(.carosello__testo)::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .31);
	pointer-events: none;
	z-index: 1;
}
.carosello__testo { z-index: 2; }

/* ---------------------------------------------------------------------------
   9 · UN WIDGET IMMAGINE E' CENTRATO, E DA NOI STAVA A SINISTRA.

   `img { display: block }` (`base.css`) e nessun margine automatico: una figura
   piu' stretta della sua colonna si incolla al bordo sinistro, mentre il testo
   che le sta sopra e sotto e' centrato. E' la voce 6 della scheda dello sguardo
   — «blocchi che dovrebbero stare sulla stessa colonna partono da margini
   diversi».

   ⛔ Non e' un gusto: e' un valore del vivo che non avevamo portato, ed e' la
   stessa famiglia del `background_background` spento. Elementor scrive nel suo
   `frontend.min.css` `.elementor-widget-image { text-align: center }`, cioe'
   **una figura e' centrata se il grafico non dice altro**. Misurato con
   `getComputedStyle` su `cimiteri.online` a 1440, tutti e 15 i widget immagine
   della home: `text-align: center`, quindici su quindici. E dove si vede:

       il marchio della fascia di foglie   vivo  x=645, largo 150, centro **720**
                                          noi   x=**0**, incollato al bordo
       la freccia «scorri giu» in fondo    vivo  x=696, centro **720**
                                          noi   x=**120**

   ⛔ `:not(.larghezza-auto)`: quella classe e' `_element_width: auto`, cioe'
   una figura che sta IN RIGA con quello che ha accanto e segue l'allineamento
   del testo. Li' i margini automatici la staccherebbero dai suoi vicini.
   ⚠ PERIMETRO CONTATO SULLE 61 PAGINE: 124 figure dentro un `.elemento`, di cui
   **56** `larghezza-auto` (non si toccano), **57** larghe il 100% (un margine
   automatico su una figura larga quanto il contenitore non sposta niente), e
   **11 che si spostano davvero**, su 3 pagine: 4 sulla home, 5 su `50`, 2 su
   `221`. Immagini con un allineamento dichiarato da se' o da un antenato: **0**
   in tutte e 61, quindi qui non si scavalca nessuna decisione del grafico. */
.elemento > img:not(.larghezza-auto),
.elemento > a > img:not(.larghezza-auto) { margin-inline: auto; }

/* 📌 E LA STESSA REGOLA VALE PER LE FORME, non solo per le figure.
   (21/8/2026, F12 terzo giro, subito dopo aver dato una dimensione a `.disegno`
   — v. il punto 5-septies.)

   Il widget icona e quello immagine sono la stessa cosa per Elementor: senza
   `_element_width: auto` prendono il `text-align: center` predefinito del suo
   `frontend.min.css`. Misurato sul vivo a 1440, dentro le colonne della fascia
   business (x da 885 a 1189, centro 1037):

       i tre bollini Free/Pro   x=885   → **a sinistra** (sono `width-auto`)
       l'icona cornice          x=1024  → **centrata** (non lo e')

   Da noi l'icona cornice restava a x=935, cioe' sul bordo sinistro della sua
   colonna, mentre il bollino sopra ci sta di diritto. Uno `<span>` e' in linea,
   quindi i margini automatici non lo centrano: va reso di blocco largo quanto
   il suo contenuto, come si e' gia' fatto per i pulsanti al punto 8.
   ⛔ `:not(.larghezza-auto)`, esattamente come la riga qui sopra: i sei bollini
   la portano e restano dove il grafico li ha messi.
   ⚠ Perimetro sulle 61 pagine: `<span class="disegno">` senza `larghezza-auto`
   → **4**, di cui **2 sulla home** e 2 su `14092`.
   ⚠ E il figlio DIRETTO non basta — stessa trappola della riga qui sopra e di
   `.elemento:has(.larghezza-auto)`: una forma che e' anche un collegamento esce
   `<div class="elemento"><a class="disegno-collegamento"><span class="disegno">`,
   e la classe sta due livelli sotto. Le due icone cornice della home sono
   esattamente questo caso, e con il solo `> span` non si erano mosse di un
   pixel: restavano a x=935, il bordo della colonna. */
.elemento > span.disegno:not(.larghezza-auto) {
	display: block;
	inline-size: var(--misura, 96px);
	margin-inline: auto;
}
.elemento > a.disegno-collegamento:has(> span.disegno:not(.larghezza-auto)) {
	display: block;
	inline-size: fit-content;
	margin-inline: auto;
}

/* ---------------------------------------------------------------------------
   8 · «VAI AL MODULO» DICE DI STARE AL CENTRO E STAVA A SINISTRA.

   `a-centro` e' `text-align: center` (`token.css:46`), e su un pulsante centra
   il testo DENTRO il pulsante, non il pulsante dentro la colonna. Elementor
   invece la scrive sull'involucro (`.elementor-button-wrapper`), ed e' per
   questo che sul vivo il bottone e' al centro:

       vivo @1440   «Vai al Modulo»  x=646..794, centro **720** = centro pagina
       noi          x=120..262, centro **191**, appiccicato al bordo sinistro
                    mentre titolo e testo della stessa colonna sono centrati

   Il foglio questa cosa la sa gia' fare per le figure — `.a-centro > img,
   img.a-centro { margin-inline: auto }`, `token.css:50` — e li' funziona
   perche' una figura e' di blocco. Un pulsante e' `inline-flex`, e su un
   elemento in linea i margini automatici non centrano niente. Serve renderlo
   di blocco largo quanto il suo contenuto, e allora i margini automatici
   fanno il loro mestiere.

   ⛔ `:not(.larghezza-auto)`: quella classe e' `_element_width: auto`, cioe'
   «il widget si stringe e sta IN RIGA con quelli accanto». Su `mi-presento` ce
   ne sono due affiancati: renderli di blocco li impilerebbe. Quelli seguono
   l'allineamento della colonna, come dice la nota di `token.css`.
   ⚠ Perimetro contato sulle 61 pagine: `class="pulsante a-centro"` senza
   `larghezza-auto` → **3 pulsanti su 2 pagine** (16515 e 14092). */
.pulsante.a-centro:not(.larghezza-auto),
.bottone.a-centro:not(.larghezza-auto) {
	display: flex;
	width: fit-content;
	margin-inline: auto;
}

/* ---------------------------------------------------------------------------
   6 · L'EROE STRETTO DICE DOVE SI E' ARRIVATI.

   Sotto i 1301 px la home mostrava **900 px di fotografia muta**: cielo e
   nuvole, zero immagini dentro, testo vuoto. Misurato da S8 il 21/8 su tutti e
   due i siti — il vivo ce l'ha uguale, e nel sorgente del vivo quella sezione
   e' `<div class="elementor-widget-wrap"></div>`.

   Ordine di Gabriele, 21/8: dentro ci va **quello che il sito gia' dice di se'
   altrove**. Qui non si inventa niente:

   · il marchio e' `cimiteribianco.svg`, la versione BIANCA dello stesso segno,
     che la home mostra gia' nella fascia delle foglie (6.225 byte, 200 OK
     verificato). ⚠ Il primo giro usava `logo-cimiter-online-vettoriale.svg` —
     il file che il grafico aveva scelto **per gli schermi stretti**
     (`elementor-hidden-desktop` sul suo widget) e che non si e' mai visto,
     perche' l'antenato che lo contiene e' nascosto a tavoletta e telefono.
     Guardata la cattura a 768: quel file e' il marchio SCURO, e sopra le
     nuvole chiare spariva. Non e' un'opinione, si vede nella schermata. Si usa
     la versione bianca, che e' lo stesso marchio e sta gia' su questa pagina.
   · la frase e' quella che l'eroe largo mostra gia': «Social Media del Settore
     Funebre e Cimiteriale», scritta nel `post_content` della home.
   · il velo e' quello di `.sezione--foto`, 45% di nero, lo stesso valore che il
     tema usa da sempre per far leggere del testo sopra una fotografia. Serve
     perche' qui il testo ce lo mettiamo NOI: finche' la sezione era muta il
     cielo chiaro andava bene com'era.

   ⚠ DEBITO DICHIARATO: una frase scritta con `content` non si seleziona e non
   si traduce. Il posto giusto e' il markup, e il markup di questa sezione lo
   fa `elementor-a-html-cimiteri.py` dal ramo `solo_sfondo()` — che oggi rende
   un contenitore vuoto perche' vuoto e' nell'originale. Metterci del testo
   dentro vorrebbe dire far INVENTARE contenuto al convertitore, e quella riga
   non si scrive. Finche' non c'e' un `front-page.php` che lo tenga, sta qui.

   ⚠ Perimetro: `.sezione.nascosto-schermo` esce 2 volte su 16515 e 1 su 288
   (`prepara-un-manifesto`), quindi la regola e' legata a `body.home` **e** al
   fondo delle nuvole, che e' solo dell'eroe. */
body.home .sezione.nascosto-schermo[style*="sfondo-nuvole-home-page"] {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	padding-block: 2rem;
	text-align: center;
	/* Il velo, lo stesso 45% di nero di `.sezione--foto`, messo come primo
	   strato di sfondo SOPRA la fotografia.
	   ⛔ Non `background-color`: il colore di fondo sta sempre SOTTO l'immagine,
	   quindi un velo scritto li' non si vedrebbe mai. Un gradiente a due stop
	   uguali e' un colore pieno che pero' e' un `background-image`, e gli strati
	   si impilano nell'ordine in cui sono scritti. */
	background-image: linear-gradient(rgba(0, 0, 0, .45), rgba(0, 0, 0, .45)), var(--sfondo);
}
/* 🚨 CASELLA 5, 28/8/2026 — «DUE LOGHI DOVE NE VA UNO», E IL SECONDO ERA QUESTO.

   A 1440 la casella era già chiusa: restava aperta sotto i 767px, dove al
   `::before` qui sopra si aggiunge un secondo marchio, quello fisso
   dell'angolo (`.testata-home__logo`, `testata-home.css:128-144`) — e i due
   si leggono insieme nella stessa schermata, non solo in sovrapposizione a
   scroll come il difetto già chiuso il 26/8.

   Guardato il vivo a 375 (`_calco/_prove-A/32-caselle/vivo-375.png`, primi
   900px): **nessun marchio**. Non l'angolo, non il centro — la sezione delle
   nuvole è fotografia muta, poi sopra ci si apre un riquadro di accesso
   (`Accedi gratuitamente`) che non è editoriale, è un cancello per ospiti.
   Il marchio con lo sfondo di foglie che si vede scendendo (segmento
   900-1800px) appartiene a un'ALTRA sezione, quella che sulla pagina esiste
   già con markup vero — non è il modello per questo pseudo-elemento.

   Fra i due marchi da spegnere, la scelta non è nostra: quello dell'angolo è
   un miglioramento già dichiarato e motivato («A 375 sul vivo il logo non
   c'è proprio: qui invece c'è sempre», `testata-home.css:130-131`), e vive in
   un foglio che questo giro non tocca. Resta questo, il `::before` sotto:
   spento con `display: none`, non cancellato — la regola e la nota del 21/8
   qui sopra restano, per chi la riaprirà.

   ⚠ La tagline nell'`::after` NON si spegne insieme: non duplica niente a
   375 (l'angolo porta solo il marchio, non la frase), ed è il contenuto che
   Gabriele ha ordinato il 21/8 per non lasciare le nuvole mute. Resta lei
   sola a riempire la sezione — non è un buco, ma il vuoto intorno cresce:
   l'altezza della sezione non è di questo foglio (arriva da uno stile
   inline sull'HTML, `_conversione/html/16515.html`, fuori perimetro), quindi
   togliere il marchio non l'abbassa. Se lo schermo resta troppo vuoto è
   un'osservazione per un giro sull'altezza, non per questo. */
body.home .sezione.nascosto-schermo[style*="sfondo-nuvole-home-page"]::before {
	content: "";
	width: min(60vw, 220px);
	aspect-ratio: 220 / 64;
	background: url("/wp-content/uploads/2021/10/cimiteribianco.svg") no-repeat center / contain;
	display: none;
}
body.home .sezione.nascosto-schermo[style*="sfondo-nuvole-home-page"]::after {
	content: "Social Media del Settore Funebre e Cimiteriale";
	max-width: 26ch;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	line-height: 1.5;
	color: var(--c-bianco);
	/* Il cielo e' chiaro e la frase e' bianca: sotto ci va la stessa ombra che
	   il tema usa gia' sul carosello, non un rettangolo di colore nuovo. */
	text-shadow: 0 1px 12px rgba(0, 0, 0, .75);
}

/* ═══════════════════════════════════════════════════════════════════════════
   IL QUARTO GIRO DELLA HOME — 22/8/2026, F12.
   Tre difetti, una causa sola: il convertitore leggeva le impostazioni della
   sezione di PRIMO livello e buttava quelle delle sezioni INTERNE e dei
   WIDGET. Le tre correzioni stanno in `elementor-a-html-cimiteri.py`, con
   la misura accanto a ognuna; qui c'e' quello che serve al foglio per
   renderle. ═══════════════════════════════════════════════════════════════ */

/* 🚨 LE FASCE DIAGONALI ADESSO STANNO ANCHE SULLE RIGHE.

   Contate sul DOM del vivo della home a 375x667, `.elementor-shape`: sono
   **sei**, alte 93, 36, 36, 27, 38, 38 px, e stanno tutte sull'orlo di una
   sezione INTERNA — cioe' di una riga, da noi. Il tema le disegnava solo sulle
   sezioni di primo livello, e le disegnava anche dove Elementor non disegna
   niente (undici avanzi di impostazione senza il tipo della forma).

   `.sezione::before/::after` sono `position: absolute`: senza un antenato
   posizionato si attaccherebbero alla pagina. `.sezione` e `.riga--foto` lo
   sono gia'; una riga qualunque no. */
.riga.sezione--fascia-su, .riga.sezione--fascia-giu,
.colonne.sezione--fascia-su, .colonne.sezione--fascia-giu { position: relative; }

/* ⚠ E il ripiego dell'altezza e' 38px, non 95: e' quello che il vivo disegna
   sulle due fasce che non dichiarano un'altezza (le due del riquadro business,
   misurate `svgH=38` tutte e due). I 95 erano il valore di una fascia che
   dichiarava, preso come predefinito per tutte. */
.sezione--fascia-su::before { height: var(--fascia-su-h, 38px); }
.sezione--fascia-giu::after { height: var(--fascia-giu-h, 38px); }

/* 🚨 E L'ALTEZZA DELLA FASCIA HA UNA SCALA. È IL CUORE DI QUESTO GIRO.

   Il grafico le fasce le ha rimpicciolite a telefono e lo ha scritto:
   il carosello 87px e **36 a telefono**, la sezione del «CONSERVA» 80px e
   **27 a telefono**. È la stessa mano che ha capito il problema che questo
   giro e' venuto a chiudere — un ingombro fisso dentro un'altezza in `vh`
   mangia il testo appena la finestra si accorcia — e lo ha risolto nel dato.
   ⛔ Selettore di attributo per la stessa ragione di sempre: `--fascia-su-h-m`
   si eredita, e la riga nuda lo prenderebbe dalla sezione madre. */
@media (max-width: 1300px) {
	[style*="--fascia-su-h-t:"]::before { height: var(--fascia-su-h-t); }
	[style*="--fascia-giu-h-t:"]::after { height: var(--fascia-giu-h-t); }
}
@media (max-width: 800px) {
	[style*="--fascia-su-h-m:"]::before { height: var(--fascia-su-h-m); }
	[style*="--fascia-giu-h-m:"]::after { height: var(--fascia-giu-h-m); }
}

/* 🚨 IL `z-index` SCRITTO DAL GRAFICO, che il convertitore buttava.

   Su Elementor ogni sezione e' `position: relative`: fra due blocchi che si
   scavalcano vince l'ordine del documento. Da noi solo le righe con la
   fotografia lo sono, e una riga fotografica PRECEDENTE si stampava sopra il
   blocco che le saliva addosso. È «MEMORIE IMMORTALI» a 768: nel DOM c'e',
   `visibility: visible`, `opacity: 1`, e la sonda lo dava 9 punti su 9 sotto
   la fotografia delle foglie. Il vivo gli mette `z-index: 10`, ed e' scritto
   nel JSON. */
[style*="--z:"] { position: relative; z-index: var(--z); }

/* 🚨 L'IMBOTTITURA DEL WIDGET, nelle tre scale.

   Misurato sui due siti, «Nell'era digitale…»: il vivo la tiene larga 736 a
   1440 (`_padding: 0 22rem`), 748 a 768 e **355 a 375** (`_padding_mobile:
   0 10px`); noi la stendevamo da bordo a bordo — 1200, 768 e 375. I «10px di
   gronda persi» della scheda dello sguardo sono questo dato.
   E sul paragrafo «Si dice che l'anima…» il grafico ha scritto
   `_padding_mobile: bottom 27%`: e' la contromisura con cui tiene il testo
   fuori dal blocco del QR, che gli sale addosso di −6rem.

   ⛔ Nomi propri (`--imb-*`): `--su`/`--sx` sono gia' di sezioni, righe e
   colonne, si ereditano, e il foglio li legge con dei selettori di attributo.
   ⚠ Lo zero si scrive e si legge: un widget che dichiara `0` a telefono sta
   spegnendo l'imbottitura che ha sullo schermo, e quello e' un dato. */
.elemento[style*="--imb-su:"]  { padding-block-start: var(--imb-su); }
.elemento[style*="--imb-giu:"] { padding-block-end: var(--imb-giu); }
.elemento[style*="--imb-sx:"]  { padding-inline-start: var(--imb-sx); }
.elemento[style*="--imb-dx:"]  { padding-inline-end: var(--imb-dx); }
@media (max-width: 1300px) {
	.elemento[style*="--imb-su-t:"]  { padding-block-start: var(--imb-su-t); }
	.elemento[style*="--imb-giu-t:"] { padding-block-end: var(--imb-giu-t); }
	.elemento[style*="--imb-sx-t:"]  { padding-inline-start: var(--imb-sx-t); }
	.elemento[style*="--imb-dx-t:"]  { padding-inline-end: var(--imb-dx-t); }
}
@media (max-width: 800px) {
	.elemento[style*="--imb-su-m:"]  { padding-block-start: var(--imb-su-m); }
	.elemento[style*="--imb-giu-m:"] { padding-block-end: var(--imb-giu-m); }
	.elemento[style*="--imb-sx-m:"]  { padding-inline-start: var(--imb-sx-m); }
	.elemento[style*="--imb-dx-m:"]  { padding-inline-end: var(--imb-dx-m); }
}

/* Il margine laterale del widget, tre scale. v. `imbottitura_widget()`. */
.elemento[style*="--mrg-sx:"] { margin-inline-start: var(--mrg-sx); }
.elemento[style*="--mrg-dx:"] { margin-inline-end: var(--mrg-dx); }
@media (max-width: 1300px) {
	.elemento[style*="--mrg-sx-t:"] { margin-inline-start: var(--mrg-sx-t); }
	.elemento[style*="--mrg-dx-t:"] { margin-inline-end: var(--mrg-dx-t); }
}
@media (max-width: 800px) {
	.elemento[style*="--mrg-sx-m:"] { margin-inline-start: var(--mrg-sx-m); }
	.elemento[style*="--mrg-dx-m:"] { margin-inline-end: var(--mrg-dx-m); }
}

/* 🚨 LA ZONA DEL POLLICE: 16 BERSAGLI SOTTO I 44 PX A 375. (22/8/2026, F12.)

   Misurati PREMENDO, non leggendo la scatola — la scatola qui sbaglia in tutte
   e due le direzioni: le icone social hanno un rettangolo di 32 e una zona di
   48 (`piede.css`), e i titoli delle schede hanno una scatola di 22 e una zona
   di 22. Contati sullo staging a 375 x 667, banner dei cookie spento:

       testata: «Top» 66x33 · marchio 100x33 · «Gruppi» 87x33 · «Cerca» 48x32
       i due «Vai al Modulo» 142x40 · «Accedi» 93x40 · «Registrati» 111x40
       i sei titoli delle schede business, da 103x26 a 221x22
       le due icone cornice, collegamenti da 26x26

   Il velo `::after` allarga la ZONA e non muove un pixel di quello che si
   vede: e' la stessa riparazione gia' provata sulle social, e la sua trappola
   e' scritta li' — ⛔ **niente `border-radius` sul velo**, o la zona diventa un
   cerchio e un quadrato da 44 non ci sta dentro.

   ⚠ Solo sotto gli 800: e' la soglia del telefono di questo sito (Elementor:
   `viewport_mobile: 800`), ed e' dove la voce 10 della scheda dello sguardo
   chiede il pollice. Sopra, i bersagli si premono col mouse e allargare la
   zona rischierebbe di rubare il clic al vicino nelle colonne strette.
   ⚠ Verificato che due zone allargate non si tocchino: i sei titoli delle
   schede a 375 stanno incolonnati con oltre 60 px di stacco, i due bottoni
   «Accedi»/«Registrati» hanno 4 px di `gap` piu' 2+2 di velo, cioe' si
   sfiorano senza sovrapporsi. */
@media (max-width: 800px) {
	.nexen-menu__voce > a,
	.testata__logo,
	.nexen-ricerca__invio,
	.pulsante,
	.disegno-collegamento,
	.colonna h2 > a, .colonna h3 > a, .colonna strong > a { position: relative; }

	.nexen-menu__voce > a::after,
	.testata__logo::after,
	.nexen-ricerca__invio::after { content: ""; position: absolute; inset-block: -6px; inset-inline: 0; }

	.pulsante::after { content: ""; position: absolute; inset-block: -2px; inset-inline: 0; }

	/* 26 x 26 -> 44 x 44: nove pixel per lato. */
	.disegno-collegamento::after { content: ""; position: absolute; inset: -9px; }

	/* I titoli delle schede: 26 alti -> 44 con 9 per lato, 22 alti -> 44 con 11. */
	.colonna h2 > a::after,
	.colonna h3 > a::after { content: ""; position: absolute; inset-block: -9px; inset-inline: 0; }
	.colonna strong > a::after { content: ""; position: absolute; inset-block: -11px; inset-inline: 0; }
}

/* ⚠ Il bersaglio sotto i 44px di «Accedi/Registrati/Google/Facebook» su
   gruppi e piazza NON si sistema qui: quel blocco (`.npc-porta`) non è
   testo di pagina, è il plugin `nexen-porta-comunita` — la correzione sta
   nel suo file, in `Lavori\nexen-plugins\nexen-porta-comunita\`. (26/8/2026,
   dopo aver scoperto la fonte vera: prima si credeva contenuto incollato.) */

/* =========================================================================
   FIX-CSS · scorrimento e torna-su (27/8/2026)
   v. `_calco/_prove-A/32-caselle/C-scorrimento.md` e `B-100vh.md`.
   ========================================================================= */

/* 🚨 LA FRECCIA «SCORRI GIÙ» ERA LARGA QUANTO LA SEZIONE, NON L'8% DI UNA
   COLONNA STRETTA. (27/8/2026, C-scorrimento §1.)

   Il numero scritto sull'immagine, `width:8%`, è quello giusto — identico al
   vivo. Sbagliato è il contenitore su cui quell'8% si calcola:
   `.elemento:has(.larghezza-auto)` (:320) toglie la scatola dell'icona con
   `display: contents`, e la percentuale sale alla `.colonna` che la ospita,
   che a `.riga > .colonna:only-child { flex: 1 1 100%; }` (:671) è larga
   quanto tutta la sezione — qui nessuna sezione con lo scrolldown dichiara
   `--larghezza-sezione`, quindi niente `max-width` la ferma.

   Calcolato sulla struttura (sezione senza cap ≈1400px di contenuto a 1440,
   40px tolti dal `padding-inline: 1.25rem` per lato): 8% ≈ **112px**, contro
   le 17 icone vere della home, 20-38px (INVENTARIO §4). A 375 l'icona resta
   nascosta da `.nascosto-telefono` (invariato, già coerente col vivo): non
   misurabile in larghezza, e non deve esserlo.

   ⛔ Non si tocca né `:320` né `:671`: vestono tutto il sito, e spostarle
   sposterebbe mezzo sito. Regola mirata sulla sola immagine dello scrolldown,
   per `src`, così non dipende dalla colonna in cui capita di stare.
   `!important` perché deve battere lo `style="width:8%"` inline, che pesa più
   di qualunque selettore in questo foglio.
   Dopo: fissa a **48px**.

   🚨 E IL 48 NON È UNA SCELTA DI GUSTO: È IL NUMERO DEL VIVO, MISURATO SUL
   VIVO la notte del 27/8 (`RIFERIMENTO-VIVO.md`). Lì la freccia risulta
   **48×48px a 1440 e 48×48px a 1920**, perché l'8% dichiarato si calcola su
   una colonna interna **fissa a 600px**: 8% di 600 = 48, sempre, a qualunque
   larghezza di finestra. 📌 Quindi una misura FISSA è la formula giusta da
   riprodurre, e «8% della finestra» sarebbe stata la traduzione sbagliata di
   un numero giusto. La prima stesura aveva scelto 32px dentro la forchetta
   20-60: dentro la forchetta, ma 16px lontano dal vivo. */
img[src$="scrolldown.gif"] { width: 48px !important; }

/* 🚨 G4, 28/8/2026 — LA FRECCIA BALLAVA DA UNA FASCIA ALL'ALTRA.

   Le sei `scrolldown.gif` della home stanno nell'ultima riga di ognuna delle
   sei sezioni di primo livello (`16515.html:9,42,74,98,118,175`), in fondo
   al flusso normale: la loro distanza dal basso è quello che resta dopo il
   contenuto sopra di loro, ed è diversa sezione per sezione — non un numero
   scelto, un resto di conto. Non misurabile con un DOM vivo in questa
   sessione (nessun browser disponibile): il rimedio non insegue il resto,
   lo rende impossibile, mettendo la freccia FUORI dal flusso.

   `.sezione` è già l'antenato posizionato di tutta la pagina (`position:
   relative`, riga 25): l'`<a>` che porta l'icona (bersaglio già scoperto
   con `:has()` per lo stesso motivo del cookie qui sotto — l'`.elemento`
   sparisce con `display:contents`) si assolutizza dentro quella sezione, a
   una distanza dal fondo FISSA e identica per tutte e sei. Risultato:
   uguale ovunque per costruzione, non per misura.
   Scelto **24px**: metà della larghezza dell'icona (48px, fix di ieri sera,
   non si tocca), un respiro visibile ma non eccessivo dal bordo della
   sezione. ⚠ Larghezza invariata: la riga sopra resta l'unica a scrivere
   `width`.

   ⚠ DEBITO DICHIARATO — sezione 6 (`#7` nel link, riga «Accedi»): quella
   riga porta `--z:100`, che la rende ANCH'ESSA un antenato posizionato
   (:3035); per la sua sola freccia il riferimento del `bottom` diventa
   quella riga, non la sezione. Coincidono quando il contenuto della
   sezione supera i 100vh (qui probabile: titolo più due file di schede più
   il blocco Accedi), perché allora quella riga, ultima del flusso e senza
   margine sotto (`--giu:0px`), tocca già il fondo vero della sezione. Sotto
   i 100vh di contenuto i due fondi si separano e la freccia numero sei
   potrebbe non tornare identica alle altre cinque: da riverificare con uno
   strumento che apra davvero la pagina. */
/* H7, 31/8/2026 sera - ordine diretto di Gabriele: un valore solo, in un punto
   solo, per tutte e sei le frecce. Prima di stanotte ognuna aveva la propria
   misura scritta in momenti diversi (24px per quattro, 60px per la sezione
   QR, 32px per "amici animali" - le due eccezioni sotto ora non scrivono piu'
   `bottom`, lo leggono da qui). Valore: 42px, i 32px di stanotte + i 10px
   chiesti oggi ("falle salire di 10 px in piu' rispetto al fondo"). Da
   riverificare con cattura vera su ogni sezione: QR e amici-animali sono le
   due dove il taglio diagonale della foto lasciava meno margine. */
:root {
	--freccia-scorri-fondo: 42px;
}
a:has(> img[src$="scrolldown.gif"]) {
	position: absolute;
	left: 50%;
	bottom: var(--freccia-scorri-fondo);
	transform: translateX(-50%);
	z-index: 2;
}

/* 🚨 SEGNALAZIONE DI GABRIELE, 30/8, POMERIGGIO — LA FRECCIA SUL QR A
   CAVALLO DEL CONFINE, META' SULLA FOTO META' SUL NERO.

   Stessa causa della freccia degli amici animali qui sotto: il taglio
   diagonale della foto (`.colonne.riga--foto[style*="tombe-cimitero-lapidi-
   qr-code"]::before`, REGOLA 7) non è un rettangolo — `clip-path: polygon(0
   64.35px, 100% 0, 100% calc(100% - 49.5px), 0 100%)` — e al centro (dove
   sta la freccia, x=50%) il bordo VISIBILE della foto è più in alto del
   bordo della sua scatola: foto alta 495px, ma a x=696/1440 il taglio lascia
   visibile solo fino a **y≈471px dall'inizio della foto**, non fino a 495.
   Misurato con CDP: bottone a y=3468-3516, taglio visibile a y≈3510 — il
   bottone sconfinava di 6px nel nero sotto, esattamente il difetto descritto
   («metà foto, metà nero»).
   👉 Dentro la foto per intero, con respiro: bottom portato da 24 a 60px
   (36px in più, il taglio a x=50% lascia circa 24-25px di margine sopra il
   bordo della sezione — 60px lo tiene comodo dentro, non appoggiato). */
/* TOLTO il `bottom: 60px` proprio di questa regola, H7 31/8/2026 sera:
   Gabriele ha chiesto un valore solo per tutte e sei, non piu' sei numeri
   scritti a mano. Ora eredita `--freccia-scorri-fondo` (42px) dalla regola
   di base qui sopra. Storia lasciata per chi rimisura: qui la foto ha un
   taglio diagonale che a 24px lasciava la freccia sconfinare 6px nel nero
   (misurato il 30/8, 1440px), e 60px la rimetteva comoda dentro la foto -
   con 42px il margine e' minore di allora, da controllare a vista dopo il
   deploy, non solo sul numero. */

/* 🚨 LA FRECCIA DEGLI AMICI ANIMALI, TROPPO VICINA AL TAGLIO DIAGONALE.
   (30/8/2026, ZONA BASSA — segnalazione di Gabriele: «va messa un po' più
   su».)

   Le sei frecce condividono `bottom: 24px` dalla regola sopra, misurato
   dal fondo della SEZIONE (768/900px), non dalla foto. Qui la foto
   (`.riga--fascia[style*="tombe-animali-domestici"]`, REGOLA 8 qui sotto)
   non riempie la sezione: e' alta quanto il suo rapporto d'aspetto (~468px
   a 1440/768) e il taglio diagonale (`clip-path`) le toglie altri 7-8% ai
   due lati. Misurato su staging a 1440 (viewport 768, coerente con
   `sguardo.js`): freccia a y=3714-3762, taglio diagonale al centro
   (x=50%) a y≈3778 — **solo 16px di margine**, e sul vivo lo stesso
   margine e' 46px (freccia 3709-3757, sezione fino a 3803). 👉 Si sposta
   SOLO questa freccia, scoping sulla stessa sezione che ospita la foto
   (`section:has(...)`, lo stesso schema di `[style*="tombe-animali-
   domestici"]` usato dalla REGOLA 8): le altre cinque frecce restano a
   24px, non e' un numero da cambiare ovunque. */
/* 🚨 G7-sexies, GIRO 4 — LA FRECCIA NON SI VEDEVA E NON SI PREMEVA: proprio
   l'ipotesi di Gabriele, il meccanismo era doppio. `.sezione` è
   `position:relative` senza z-index (riga 24): due sezioni sorelle, senza
   z-index esplicito, si impilano per ORDINE NEL DOM, non per trasparenza.
   La sezione «Servizi Business» viene dopo e vince: la sua `.colonna`
   porta `--fondo:#F7F7F7` A TINTA PIENA (non trasparente — verificato,
   non supposto), e quella tinta comincia esattamente dove finisce la
   sezione «amici animali», lo stesso punto dove la freccia prova a
   sporgere con un `bottom` negativo. Risultato: non si vedeva (coperta
   dalla tinta piena) E non si premeva (`elementFromPoint` sul centro
   vero tornava `DIV.elemento`, non l'`<a>`) — due facce dello stesso
   ordine di stacking.
   👉 Serve vincere lo stacking (nessun `pointer-events` la fa vedere: non
   tocca la stampa, solo il click), e per vincerlo bisogna alzare l'INTERA
   sezione amici animali, non solo la freccia — un discendente non
   scavalca mai una sezione sorella da solo. Tastato con CDP: sotto **10**
   vince "sulla carta" ma un suo stesso discendente (la foto, z-index:5
   per il taglio diagonale) resta comunque sotto.
   ⚠ TENTATIVO SBAGLIATO AL PRIMO GIRO, TROVATO GUARDANDO LA CATTURA A 375
   (non solo il DOM): alzare la sezione la alza TUTTA, foto compresa. A
   1440 le due sezioni non si sovrappongono altrove e sembrava innocuo,
   ma a 375 la foto (che sotto gli 800px vive comunque senza la freccia,
   nascosta da `.nascosto-telefono` — riga 620, regola del sito non mia)
   arriva davvero a scavalcare il titolo di Servizi Business (misurato:
   la foto finisce a **5393**, la sezione dopo comincia a **5325** — 68px
   di sconfinamento pre-esistente, sempre lì ma invisibile finché
   nessuno alzava lo z-index). 👉 Scoped SOLO sopra la soglia dove la
   freccia esiste davvero (**801px**, la stessa soglia «telefono» del
   sito, riga 597): sotto, l'intera domanda non si pone perché
   `nascosto-telefono` toglie la freccia dal flusso, quindi zero rischio
   di riesumare quello sconfinamento sul telefono. */
@media (min-width: 801px) {
	section:has(.riga--fascia[style*="tombe-animali-domestici"]) {
		z-index: 10;
	}
}
section:has(.riga--fascia[style*="tombe-animali-domestici"]) a:has(> img[src$="scrolldown.gif"]) {
	/* 🚨 SEGNALAZIONE DI GABRIELE, 30/8, POMERIGGIO — «coperto, ipotizzo dagli
	   z-index». Giusta l'ipotesi, sbagliato solo il nome: non è un altro
	   z-index a coprirla, è QUESTA stessa foto (sopra, `.riga--fascia`,
	   z-index:5 voluto per il taglio diagonale) che arriva quasi al fondo
	   della sezione. Misurato con CDP (porta 9223), non supposto: al centro
	   (x=50%) il taglio lascia visibile la foto fino a **y≈4415** assoluti,
	   e la sezione finisce a **4426** — **11px di margine**, mentre la
	   freccia (48px) ne occupava 24 da `bottom`. A 70px (il tentativo di
	   stamattina) il conto non cambia: 70px si misurano dal fondo della
	   SEZIONE, non dal fondo REALE della foto, che sfora la sezione di **25px
	   in più** (foto fino a 4451, sezione fino a 4426 — proprio il debito
	   scritto sopra, REGOLA 8).
	   ⛔ Non si alza lo z-index del pulsante (la stessa gara che ha portato
	   fin qui): si tiene la freccia LONTANA dalla foto invece di provare a
	   vincerci sopra. Bottom negativo, oltre il fondo nominale della
	   sezione, fino a superare il fondo VERO della foto (4451) con un
	   margine: punto d'arrivo scelto a **y≈4470** (19px oltre la foto),
	   che a `bottom` vuol dire `sezione(4426) - (4470+48) = -92px`. Da lì
	   in giù il fondo è la fascia Servizi Business, oggi chiara: la freccia
	   ci sta su uno sfondo pulito, non su un'altra fotografia. */
	/* AGGIORNATO SUBITO DOPO IL PRIMO DEPLOY, RIMISURATO CON CDP: a -92px la
	   freccia usciva dalla foto ma entrava nel RIQUADRO DEL TITOLO di Servizi
	   Business (.elemento con l'h2, z-index:6, che copre 4426-4567) - un
	   altro elemento coperto, non piu' la foto. Portata oltre anche quello:
	   sezione(4426) - (4580+48) = -202px, dentro lo spazio chiaro fra il
	   titolo e le sei schede, dove oggi non c'e' nulla sopra. */
	/* 🚨 G7-sexies, 31/8/2026 — REGRESSIONE MIA, TROVATA GUARDANDO LA
	   CATTURA (non il DOM): chiudendo il vuoto sotto il titolo (qui sotto,
	   §③) lo spazio "dove oggi non c'e' nulla sopra" e' sceso da ~150px a
	   59px, e questa freccia (48px) ci finiva dentro solo per 11px: gli
	   altri 37 sconfinavano nella riga dei bollini Free, coperti dal
	   bollino "Piazza del Cimitero" (visto per caso in una cattura, con la
	   sagoma della freccia — non un cursore — sopra la scritta "Free").
	   Rimisurato con CDP dopo la chiusura del vuoto: il testo del titolo
	   (non la scatola del suo `.elemento`, che è `flow-root` e si tiene
	   dentro il margine — invisibile ma non vuoto per la sagoma) finisce a
	   4510, i bollini iniziano a 4597: **87px veri**, non 59. La freccia +
	   il suo anello (`box-shadow` 8px, riga ~4127) occupano 64px: centrata
	   nei 23px che restano, arrivo a **y≈4578** (base della sola scatola,
	   anello escluso): sezione(4426) - 4578 = -152px. */
	/* 🚨 G7-sexies, GIRO 4, 31/8/2026 — Gabriele l'ha chiesta esplicitamente
	   ("qui ci dovrebbe essere il tasto per scorrere giù, ipotizzo coperto
	   dagli z-index"): il giro 2 l'aveva tolta perché il conto di allora
	   (37px veri) non ci stava. Rimisurato ORA con CDP dopo i giri 2-3
	   (bollini rimpiccioliti, margine del titolo sistemato): quel numero
	   era vecchio. Sui pixel veri, non sulla geometria del box (il taglio
	   diagonale rende inutile misurare `.bottom` della foto): al centro
	   (x=720/1440) l'ultimo pixel di foto/banda nera è a **y=4422**, il
	   primo pixel di testo del titolo è a **y=4501** → **79px puliti**,
	   più dei 64 richiesti, comparsi come effetto collaterale onesto dei
	   giri precedenti (il margine sotto il titolo era stato allargato per
	   i bollini, non per questa freccia). Nessun margine aggiunto apposta:
	   quello che c'era già basta, misurato, non supposto.
	   Centrata nel corridoio: y≈4437-4485 (24,5px di aria sopra e sotto).
	   sezione(4426) - 4485 = -59, arrotondato a -60. */
	/* 🚨 H7, 31/8/2026 — TUTTO IL CALCOLO SOPRA ERA SUL SITO MAI CARICATO IN
	   PROVA (v. nota di apertura di questo giro): quando finalmente il CSS è
	   arrivato su staging e si è misurato con Chrome vero a 1920×1080 (la
	   risoluzione di Gabriele, non 1440), il "corridoio" verso Servizi
	   Business non esisteva più con questi numeri — la freccia (-60px)
	   cadeva a viewport-y 1092-1140, **sotto i 1080px della finestra**:
	   invisibile in una schermata sola, esattamente il difetto segnalato
	   («come non si vede il tasto per scorrere giù»).

	   E le parole di Gabriele sulla COPPIA di catture erano diverse da quelle
	   lette dal giro precedente: non «coperta dagli z-index verso Servizi
	   Business», ma **dentro la fotografia**, sopra il suo margine inferiore.
	   Misurato di nuovo (Playwright, Chrome vero, staging dopo il deploy):
	   sezione fino a y=1079,95; foto (scatola vera, non tagliata) fino a
	   1106,66; il taglio diagonale (REGOLA 8, `clip-path` in percentuale) al
	   centro lascia visibile la foto fino a y≈1063,86 (447,86 + 93,5% di
	   658,8px). 👉 Si torna DENTRO la foto, non nel corridoio: bottom
	   positivo (rispetto al fondo della sezione), non più negativo. */
	/* TOLTO il `bottom: 32px` proprio di questa regola, H7 31/8/2026 sera:
	   Gabriele ha chiesto un valore solo per tutte e sei. Eredita
	   `--freccia-scorri-fondo` (42px, 10px più in su dei 32px di stanotte)
	   dalla regola di base. Qui il taglio diagonale lasciava meno margine
	   delle altre sezioni (v. storia sopra): da riverificare a vista. */
	/* La foto (REGOLA 8, sopra) ha `z-index:5` nello stesso contesto di
	   sovrapposizione di questo pulsante (entrambi discendenti diretti della
	   stessa `.colonna`, nessuno dei due dentro un contesto proprio più in
	   basso): tornando DENTRO il suo riquadro, senza uno z-index più alto la
	   foto la coprirebbe di nuovo, stavolta dipingendoci sopra invece di
	   coprirla da un corridoio vicino. A differenza del divieto scritto nel
	   giro precedente (non alzare per vincere sulla sezione SORELLA,
	   Servizi Business — quella gara resta vietata, R10 sopra), qui la gara
	   è con la foto DENTRO la stessa sezione: 6 basta, un solo scatto sopra
	   il 5 della foto, e non tocca lo z-index:10 della sezione né quello
	   della sezione dopo. */
	z-index: 6;
}
/* 🚨 SPOSTANDOLA SUL CHIARO, LA FRECCIA È DIVENTATA INVISIBILE (SCOPERTO
   GUARDANDO LA CATTURA, NON SOLO MISURANDO LA POSIZIONE). Misurato sui
   pixel: (254,254,254) su (247,247,247) di sfondo, 1,06:1 — l'icona e il
   fondo sono lo stesso colore. Causa: `filter:brightness(200%)...` e'
   IN LINEA sull'`<img>` (dal convertitore, sul GIF originale), e batte
   qualunque `filter` esterno senza `!important` — che qui non si
   aggiunge. Non si tocca il filtro: si dà all'icona lo sfondo scuro che ha
   SEMPRE avuto nelle altre cinque posizioni (li' e' la fotografia a
   fornirlo, qui non c'e' piu' una fotografia sotto), lo stesso alone gia'
   in uso nel resto del sito per i comandi che galleggiano su un fondo che
   cambia (SISTEMA-ESTETICO §1). Il blend mode e il filtro del GIF tornano a
   funzionare come sempre, perche' il nero dietro c'e' di nuovo.
   🚨 GIRO 4 — stesso identico difetto già trovato e riparato sul pulsante
   in fondo a Servizi Business (riga ~4762): l'anello da 8px sull'`<a>`
   presumeva che la GIF coincidesse con la scatola dell'ancora, ma la
   regola condivisa (riga ~4590) sposta ogni GIF 20px più in basso — qui,
   su fondo chiaro senza foto a coprire lo scarto, sarebbe risuccesso lo
   stesso "pulsante doppio". Stesso rimedio: il cerchio diventa un
   `::before` che insegue il `top:20px` vero dell'immagine, non la
   scatola dell'`<a>`. */
/* ⛔ TOLTO IL CERCHIO, G4, 1/9/2026 — le parole di Gabriele guardando la
   home: «i pulsanti per andare giù, gli ultimi due hai deciso di mettergli
   un'ombra di fondo. Non l'ha chiesta nessuno: la togli e tornano tutti
   uguali». Qui c'era esattamente il cerchio `rgba(0,0,0,.4)` descritto sopra
   (GIRO 4, 30-31/8): serviva a dare un fondo scuro alla freccia bianca dove
   la fotografia non c'è più, altrimenti l'icona torna 1,06:1 su #F7F7F7 (la
   stessa misura scritta qui sopra). Tolto su ordine diretto: le sei frecce
   sono di nuovo uguali, ma QUESTA (verso la sezione «Servizi business») su
   fondo chiaro perde di nuovo il contrasto misurato il 30/8 — non è stato
   risolto in altro modo, è stato deciso di accettarlo. Da riverificare a
   vista se il difetto vecchio (freccia invisibile qui) torna a farsi notare. */

/* 🚨 COOKIE E TORNA-SU: LE ICONE C'ERANO, MA IN FONDO AL FLUSSO. (27/8/2026,
   C-scorrimento §4, INVENTARIO §12.)

   Le due icone sono già nell'HTML (`_conversione/html/16515.html:181-182`)
   con la misura giusta (`--misura:20px`, uguale al vivo — la taglia la dà già
   `span.disegno`, non è qui il problema). Ma stanno in una `<section>`
   normale, in fondo alla pagina: nessuna regola le rende fisse.

   L'involucro `.elemento` di ciascuna icona porta `larghezza-auto` (sul suo
   `span`), quindi anche lui sparisce con `display: contents` (:320): il
   bersaglio buono per il posizionamento è l'`<a class="disegno-collegamento">`
   che resta, ed è per questo scoperto con `:has()` sull'icona dentro — non
   con l'`href`, perché `#top` lo scrivono altri quattro collegamenti della
   pagina (il marchio, «Accedi», due volte), e prenderli tutti sposterebbe il
   sito intero in un angolo.

   Coordinate del vivo: `right: 11px` per entrambe, cookie a `0,7vh` dal
   basso, torna-su **40px più in alto**. `z-index: 900`: sotto i fissi della
   testata (997-999 in `testata-home.css`), sopra tutto il resto — qui non si
   sono mai visti valori sopra 4.
   ⚠ Verificato a 375: `right:11px` e i 20px dell'icona restano ben dentro lo
   schermo, nessuna sovrapposizione col contenuto oltre a quella che ha già
   il vivo. */
a.disegno-collegamento:has(> .icona--fingerprint) {
	position: fixed;
	right: 11px;
	bottom: 0.7vh;
	z-index: 900;
}
/* Il torna-su in più sfuma allo scorrimento sul vivo (`motion_fx_opacity`
   20%-20%). Chi ascolta lo scroll e scrive la variabile è FIX-EROE, in
   JavaScript — contratto dichiarato in C-scorrimento §4: qui c'è solo la
   proprietà da leggere e una transizione breve, non il calcolo. */
a.disegno-collegamento:has(> .icona--arrow-alt-circle-up) {
	position: fixed;
	right: 11px;
	bottom: calc(0.7vh + 40px);
	z-index: 900;
	opacity: var(--sfumatura-torna-su, 1);
	transition: opacity .2s ease;
}

/* 🚨 ICONE-FISSE — ordine di Gabriele (28/8, pomeriggio): «il tasto dei cookies sotto il tasto
   torna su, il torna-su della stessa misura del cookie». VERIFICATO, NON MODIFICATO.

   Le due regole qui sopra mettono già il torna-su 40px più in alto del cookie
   (`bottom: 0.7vh` contro `calc(0.7vh + 40px)`): è la STESSA relazione che INVENTARIO §12 aveva
   misurato dal vivo, non un'altra — l'ordine di oggi e quella misura coincidono, non c'è nessuna
   inversione da fare qui. Misure rese, entrambe le icone (righe sotto, 3613-3623 nella numerazione
   di questa lettura): riquadro cliccabile 26×26px, glifo 20px (`--misura:20px`, identico per le
   due in `16515.html:179-180`), anello 26px di diametro esterno / 23px interno (bordo 1,5px) — già
   uguali da FIX-CSS-2 (27/8 sera). Nessun valore toccato qui.
   ⚠ Vedi la nota accanto a `display: none` più sotto: la misura e l'ordine sono pronti, ma il
   cookie oggi non si vede. */

/* 🚨 FIX-VISTA (27/8/2026) — FISSE AL POSTO GIUSTO, MA INVISIBILI: LE DUE
   ICONE DICHIARANO `--colore:#02010121`, NERO ALL'8% DI OPACITÀ.

   Non è un refuso: `#02010121` è `--c-separatori` (base.css riga 21), il
   token che il Kit usa per righe divisorie sottili — qui il grafico l'ha
   scritto anche sull'icona cookie e su quella torna-su, che così restano
   quasi trasparenti su qualunque fondo. La casella 1 di Gabriele («manca il
   tasto per tornare su») restava aperta anche a coordinate corrette: un
   tasto che non si vede è un tasto assente.

   `span.disegno--font` (riga 2603) legge `background-color: var(--colore,
   currentColor)`, e il colore inline vince sempre sul valore di ripiego:
   si scavalca il colore, non la proprietà.

   🚨 CORRETTO IL 27/8 SERA (FIX-CSS-2, VERIFICA-3) — DA `--c-nexen` A
   `--c-bottone`. Il rosso del marchio è una scelta forte su un sito
   funebre, e il vivo lì non è rosso. Si passa al grigio `--c-bottone`
   (`#767676`, base.css riga 39), lo stesso già usato per i pulsanti pieni
   del tema (riga 332): contrasto calcolato (WCAG, coppia colore/fondo, non
   testo) **4,62:1 su nero, 4,24:1 su #F7F7F7, 4,54:1 su bianco** — sopra la
   soglia 3:1 per un'icona grafica su ogni fondo che la pagina mostra
   durante lo scorrimento.

   E `!important` non serve: verificato, non tolto a caso. Lo `style`
   inline dichiara solo la CUSTOM PROPERTY `--colore` (es.
   `style="--misura:20px;--colore:#02010121"`), mai `background-color` —
   l'inline non ha nulla da scavalcare su quella proprietà, la decide solo
   il foglio. Questo selettore (`a.disegno-collegamento:has(>
   .icona--fingerprint) > .icona--fingerprint`, specificità 0,3,1: un
   elemento, tre classi) pesa già più di `span.disegno--font` (0,1,1) da
   solo. Era rimasto da quando doveva scavalcare `#02010121` scritto
   apposta per essere invisibile — non serviva nemmeno allora, la
   specificità bastava già. */
a.disegno-collegamento:has(> .icona--fingerprint) > .icona--fingerprint,
a.disegno-collegamento:has(> .icona--arrow-alt-circle-up) > .icona--arrow-alt-circle-up {
	background-color: var(--c-bottone);
}

/* 🚨 DUE FORME DIVERSE PER LA STESSA COPPIA. (27/8/2026, FIX-CSS-2, banco
   VERIFICA-3.)

   `icona--arrow-alt-circle-up` (icone.css) è un cerchio pieno con la
   freccia ritagliata come buco nella maschera — la forma la porta già l'SVG.
   `icona--fingerprint` è solo il glifo dell'impronta, senza cerchio: stesso
   colore, forma diversa, coppia disomogenea.

   Non si tocca la maschera della freccia (già corretta) né si aggiunge un
   secondo colore di sfondo pieno (i tre contrasti misurati qui sopra
   valgono per il grigio SOLO se resta l'unico colore acceso, senza un disco
   posato sopra che li renderebbe inutili). Si dà a entrambe le stesse
   dimensioni e lo stesso anello di bordo, nello stesso grigio: la freccia
   resta un cerchio pieno con l'anello appena fuori dal proprio bordo (già
   quasi invisibile, perché coincide), l'impronta guadagna per la prima
   volta un contorno circolare. Stessa forma (cerchio), stessa misura
   (26px), stesso stacco dal bordo (icona 20px centrata, ~2,25px per lato
   al netto del bordo di 1,5px). */
a.disegno-collegamento:has(> .icona--fingerprint),
a.disegno-collegamento:has(> .icona--arrow-alt-circle-up) {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	box-sizing: border-box;
	border: 1.5px solid var(--c-bottone);
	border-radius: 50%;
}

/* 🚨 G11, 28/8/2026 — DUE PULSANTI COOKIE, UNO DI TROPPO.

   Il sito ha già il suo pulsante cookie in basso a SINISTRA (la rotella del
   pannello GDPR, fuori da questo foglio). Questa `icona--fingerprint` era
   un secondo pulsante cookie, `position:fixed` in basso a DESTRA
   (:3196-3201): si spegne, non si cancella la regola — resta la storia di
   com'era.
   ⛔ `display:none` va scritto QUI, dopo le due regole che toccano lo
   stesso selettore (:3196 posiziona, :3271 e :3287 dichiarano `display:
   flex`): a parità di specificità vince l'ultima della cascata, e prima di
   questo punto avrebbe perso.
   ⚠ Il torna-su (l'altra icona, `.icona--arrow-alt-circle-up`) NON si
   sposta: la sua posizione è `bottom: calc(0.7vh + 40px)` (:3209), un
   numero FISSO scritto nel foglio — non dipende dal fingerprint, non lo
   legge, non lo eredita. Spegnere il fingerprint non cambia una virgola
   nel calcolo del torna-su: verificato leggendo la regola, non serve
   ricalcolare niente. */
a.disegno-collegamento:has(> .icona--fingerprint) { display: none; }

/* ⚠ ICONE-FISSE (28/8, pomeriggio) — CONTRASTO CON L'ORDINE DI OGGI, NON SCIOLTO QUI.
   L'ordine di Gabriele di oggi («il tasto dei cookies sotto il tasto torna su») presuppone il
   cookie VISIBILE e appaiato al torna-su. Questa riga lo spegne per G11, chiuso VERDE in
   VERIFICA-6 perché Gabriele stesso, nello stesso giorno, aveva chiesto «il pulsante dei cookie
   lo abbiamo messo sia a sinistra che a destra, lascia solo a sinistra» (la rotella Moove GDPR,
   fuori da questo foglio, resta l'unico accesso). Riaccendere questo pulsante rimette il doppione
   che G11 toglieva: non è una scelta di posizione o misura (quella è già pronta, vedi sopra), è
   la STESSA decisione presa due volte in modo opposto lo stesso giorno. Non sciolta qui: serve
   conferma di Gabriele su quale dei due ordini vince prima di toccare questo `display: none`. */

/* 🚨 ICONE-FISSE (28/8, sera) — SCIOLTO DAL CAPO: IL COOKIE VERO È QUELLO DEL PLUGIN, NON IL
   NOSTRO DOPPIONE. «A sinistra» nell'ordine di stamattina era la rotella Moove GDPR (non nostra,
   mai spenta da noi); «a destra» era il nostro doppione impronta, giustamente spento da G11. I
   due ordini di oggi non si contraddicono: l'ordine del pomeriggio («cookie sotto il torna-su,
   stessa misura») parla dell'UNICO pulsante cookie rimasto — quello del plugin, oggi fisso in
   basso a SINISTRA: `#moove_gdpr_save_popup_settings_button` (markup e CSS in
   `gdpr-cookie-compliance/dist/…/gdpr-main-nf.css`, fuori da questo repo). Si sposta da qui,
   senza toccare il plugin: `display:none/block` resta sua — decide lui quando mostrarlo, dopo la
   scelta dell'utente sul banner — qui si cambiano solo posizione e misura.

   Specificità: il plugin lo piazza con
   `#moove_gdpr_save_popup_settings_button:not(.gdpr-floating-button-custom-position)
   {bottom:20px;left:20px}` — un ID e una classe, (1,1,0) — e il suo foglio carica DOPO
   `contenuto.css` nell'head della pagina (verificato sull'ordine dei `<link>`): a parità di peso
   vincerebbe lui, non serve nemmeno controllare l'ordine per il resto delle sue regole (tutte
   ID-nudo, (1,0,0)). Il secondo `:not()` qui sotto è un aggancio fittizio — nessun elemento porta
   mai la classe `.nexen-solo-specificita` — e serve solo a portare il conteggio delle classi a 2,
   (1,2,0): batte sempre il plugin, in qualunque ordine di caricamento. Nessun `!important`.

   Posizione: stesso `right:11px` e stesso `bottom:0.7vh` che aveva il nostro cookie spento poco
   sopra — lo stacco dal torna-su (`calc(0.7vh + 40px)`) resta perciò 40px, il numero di oggi.
   Misura: riquadro 26×26px, anello 1,5px nello stesso `--c-bottone` delle nostre due icone, glifo
   portato a 20px (l'SVG del plugin è quadrato, viewBox 512×512 come `fingerprint`: `width:auto`
   sull'altezza non lo schiaccia). `overflow:hidden` sul pulsante tiene pulito il riquadro anche
   quando il plugin, al passaggio del mouse, scopre la sua etichetta di testo (`.moove_gdpr_text`,
   sua regola `:hover`, non toccata qui): il testo semplicemente non entra più, invece di
   sformare il cerchio.
   ⚠ NON toccato il colore: resta il cerchio scuro del plugin (`background-color:rgba(0,0,0,.8)`,
   icona bianca) con solo l'anello aggiunto — non il nostro grigio `--c-bottone` a riempimento
   zero. L'ordine di oggi chiedeva la stessa MISURA, non lo stesso colore; ridipingere l'icona di
   un plugin di terzi per un obbligo di legge è un passo in più, non chiesto — se serve, lo dice
   Gabriele.
   ⚠ Rischio non verificabile da codice, solo da cattura vera: se il JS del plugin, alla scelta
   dell'utente, scrive `display` INLINE sul pulsante (non un cambio di classe), quell'inline
   vince sempre sul `display:flex` scritto qui sotto — l'icona resterebbe `float:left` invece che
   centrata. Va guardato nella cattura dello staging, non deducibile leggendo solo questo foglio. */
#moove_gdpr_save_popup_settings_button:not(.gdpr-floating-button-custom-position):not(.nexen-solo-specificita) {
	position: fixed;
	right: 11px;
	left: auto;
	bottom: 0.7vh;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	box-sizing: border-box;
	border-radius: 50%;
	border: 1.5px solid var(--c-bottone);
	overflow: hidden;
}
#moove_gdpr_save_popup_settings_button:not(.gdpr-floating-button-custom-position):not(.nexen-solo-specificita) span.moove_gdpr_icon {
	width: 20px;
	height: 20px;
	min-width: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
}
#moove_gdpr_save_popup_settings_button:not(.gdpr-floating-button-custom-position):not(.nexen-solo-specificita) span.moove_gdpr_icon svg {
	height: 20px;
	width: auto;
}

/* 🚨 LA SEZIONE SERVIZI NON RINUNCIAVA MAI AL 100VH SOTTO 1301PX. (27/8/2026,
   B-100vh, FIX-HTML §3.)

   Sul vivo la sezione 11 (servizi business) è l'unica delle otto sezioni
   «100vh» che RINUNCIA al minimo su tablet e telefono — campo vuoto nel Kit.
   A telefono (≤800px) il tema legge già `--alta-m` (:1846), e FIX-HTML ha
   scritto `--alta-m:auto` sulla sezione: lì il difetto è già chiuso, niente
   da aggiungere qui.

   A tavoletta (801-1300px, la sola soglia di mezzo di questo foglio) non
   c'era NESSUNA regola che leggesse `--alta-t`, mai scritta da nessuna parte
   (nota a :811): la sezione ci arrivava con `min-height: var(--alta, auto)`
   della regola base, cioè sempre 100vh. FIX-HTML ha scritto
   `--alta-t:auto` sulla sezione 11 (unica a portarla): questa regola la
   legge, e siccome nessun'altra sezione dichiara `--alta-t` il `var()` cade
   sul secondo valore — `--alta`, cioè il comportamento di sempre — per tutte
   le altre. Non si tocca la regola base né quella del telefono.

   🔁 CORRETTO IL 27/8 SERA (FIX-CSS-2, VERIFICA-3), E SEMPLIFICATO IL 31/8
   (H7): allora il selettore era ristretto a `.sezione[style*="--alta-t:"]`
   per battere di specificità `.sezione--eroe` (0,2,0 contro 0,1,0), che aveva
   PARI specificità della regola base e quindi vinceva lei se scritta dopo.
   `.sezione--eroe` è stata tolta (v. la nota a :387): non c'è più niente da
   scavalcare, e il selettore torna alla classe nuda, come la sua variante da
   telefono qui sopra (:2171) — stessa forma, stessa specificità (0,1,0), in
   ogni soglia. Per le sezioni che non dichiarano `--alta-t` il risultato è
   IDENTICO a prima: `var(--alta-t, ...)` cade comunque sul secondo valore. */
@media (min-width: 801px) and (max-width: 1300px) {
	.sezione { min-height: var(--alta-t, var(--alta, auto)); }
}


/* 🔁 29/8/2026, secondo giro - LA FRECCIA «VAI GIU'».
   Il primo rimedio era un alone tondo dietro l'immagine: si vedeva, ed era
   peggio del difetto. Tolto.
   Restano due cose vere: la freccia e' bianca e su una foto chiara sparisce,
   e nella sezione degli amici animali le passa sopra la fascia nera del
   taglio, che ha `z-index:1` mentre lei non ne ha nessuno.
   👉 `drop-shadow` segue il contorno della freccia invece di disegnarle
   dietro un cerchio, e uno `z-index` piu' alto della fascia la rimette
   davanti. Sono sei, dalla #2 alla #7. */
/* ⛔ 29/8/2026 - TOLTA: `position:relative` su questo `<a>` lo spostava a
   destra (x=1896 invece di 960, misurato su tutte e sei). Il genitore ha
   `display:contents`, quindi il collegamento partecipa al layout del nonno:
   dargli una posizione lo tirava fuori dall'allineamento. Era un danno mio,
   e nasconderlo in un angolo e' peggio del difetto che volevo curare. */
/* TOLTA la regola con `filter: drop-shadow(0 1px 2px rgba(0,0,0,.55))`,
   H7 31/8/2026 sera - ordine diretto di Gabriele: «leva quell'effetto
   ombra». Restava attiva solo sulla freccia senza `filter` in linea
   (quella verso #2, `16515.html:9`): le altre cinque hanno un
   `filter:brightness(...)` scritto nell'HTML che vince sempre su un
   filtro esterno senza `!important`, quindi la vedevano solo su una foto
   scura, mai come ombra propria. Nessun `!important` da togliere altrove:
   qui c'era solo la dichiarazione, ora rimossa. */

/* 🔁 29/8/2026 - LA RIGA BIANCA IN FONDO ALLA FASCIA DEI SERVIZI.
   Misurata sui pixel, non dedotta: 8px di #F7F7F7 a tutta larghezza fra
   y=6212 e y=6219, con nero sopra e nero sotto.
   La causa: la `.colonna` chiara della fascia servizi finisce a 6220, la
   fascia nera che deve coprirla arriva a 6211. Quei nove pixel di colonna
   restano scoperti, e sotto ricomincia il nero della sezione: una riga
   chiara sospesa fra due neri.
   👉 La colonna chiude dove chiude il nero. Il contenuto non si sposta:
   a quella quota le schede e i bottoni sono gia' finiti. */
/* 🔁 29/8/2026, quarto giro - LA STRUTTURA, non piu' i numeri.
   Me l'ha detto Gabriele, ed e' la cosa che mancava: nel suo sito quella
   fetta e' UNA sola sezione `min-height:100vh`, **flex**, col contenuto
   appoggiato dentro. Da noi erano due blocchi impilati.

   Misurato sui due siti, dal titolo verso l'alto:
     vivo   -> section 900 > container **flex** min-height:900px
               > column flex > wrap 863 col fondo chiaro
               (900 - 863 = 37px di nero restano ai bordi)
     nostro -> section **947** (sfora il min-height:900!) > colonna **947**
               col fondo chiaro, display **block**
   Cioe': da noi il chiaro riempiva tutta la sezione e la sezione sforava,
   perche' il contenuto impilato la spingeva. Da li' la colonna che avanzava
   oltre la fascia nera, e la striscia chiara che ho inseguito tre volte con
   tre numeri sbagliati.

   👉 La sezione diventa flex e la colonna si appoggia dentro invece di
   spingere. Nessun numero da indovinare: e' il contenitore che tiene. */
body.home .sezione:has(> .colonna[style*="--fondo:#F7F7F7"]) {
	display: flex;
	/* 🚨 RICHIESTA DI GABRIELE, 30/8 — «questa barra nera falla diventare
	   bianca». `--fondo:#000000` è inline sulla `<section>` (scritto dal
	   convertitore): non lo si tocca da fuori senza `!important`, quindi si
	   ridipinge `background-color` con un selettore più specifico della
	   regola di base `.sezione{background-color:var(--fondo)}` — stessa
	   tecnica già in uso su questa riga per `display:flex`, non serve un
	   `!important` nuovo perché qui la sfida è fra due regole esterne, non
	   contro l'inline. Colore uguale alla colonna chiara che c'è già sotto
	   (`#F7F7F7`): non un bianco diverso, lo stesso grigio chiarissimo di
	   sempre — un solo colore per tutta la sezione, dal titolo alle schede. */
	background-color: #F7F7F7;
}
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
}

/* 🔁 29/8/2026, quinto giro - LA FASCIA IN FONDO PASSA ALLA SEZIONE.
   Con la sezione flex il contenuto sta appoggiato, ma la striscia chiara
   restava: la fascia nera in fondo la disegnava il BLOCCO INTERNO delle
   schede, che finisce col contenuto, mentre la colonna chiara arriva in
   fondo alla sezione. Fra le due, il chiaro scoperto.
   👉 La fascia la disegna la sezione, che finisce esattamente dove finisce
   il chiaro. Il blocco interno smette di disegnarla: una sola fascia, un
   solo bordo, niente da far coincidere. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .colonne.sezione--fascia-giu::after {
	content: none;
}
body.home .sezione:has(> .colonna[style*="--fondo:#F7F7F7"]) {
	position: relative;
}
body.home .sezione:has(> .colonna[style*="--fondo:#F7F7F7"])::after {
	content: "";
	position: absolute;
	left: calc(50% - 50vw);
	width: 100vw;
	inset-block-end: -3px;
	height: calc(17.8vh + 6px);
	/* 🚨 RICHIESTA DI GABRIELE, 30/8 — stessa ragione del cuneo di entrata
	   qui sopra: la sezione è chiara adesso, il cuneo di uscita la segue. */
	background: #F7F7F7;
	clip-path: polygon(100% 94%, 100% 100%, 0 100%, 0 0);
	z-index: 1;
	pointer-events: none;
}

/* 🔁 29/8/2026, sesto giro - ANCHE LA FASCIA SOPRA PASSA ALLA SEZIONE.
   Stessa causa di quella in fondo, dall'altro lato, e la vedeva solo
   Gabriele perche' e' inclinata: **1px a x=1400, 7px a x=1700 e 1900**.
   Il mio controllo campionava tutta la larghezza e chiedeva che la riga
   fosse chiara quasi dappertutto: una riga che esiste solo a destra non
   la vedeva mai. 👉 Un controllo che guarda la media non trova un difetto
   che sta in un angolo.
   La fascia superiore era sul BLOCCO INTERNO delle schede, che comincia
   dopo il titolo, mentre la colonna chiara comincia in cima alla sezione:
   fra i due, il chiaro scoperto. Passa alla sezione, come l'altra. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .colonne.sezione--fascia-su::before {
	content: none;
}
body.home .sezione:has(> .colonna[style*="--fondo:#F7F7F7"])::before {
	content: "";
	position: absolute;
	left: calc(50% - 50vw);
	width: 100vw;
	inset-block-start: -3px;
	height: calc(17.8vh + 6px);
	/* 🚨 RICHIESTA DI GABRIELE, 30/8 — insieme al fondo della sezione, anche
	   il cuneo diventa chiaro: era nero apposta per leggersi contro il
	   `--fondo:#F7F7F7` sotto, e con la sezione ora `#F7F7F7` un cuneo nero
	   qui sarebbe un triangolo appiccicato in mezzo alla foto sopra — il
	   difetto descritto, non un miglioramento. Stesso colore della sezione,
	   non un secondo grigio. */
	background: #F7F7F7;
	/* 🚨 R10, CANCELLO DEL 30/8 (secondo giro) — CUNEO ASIMMETRICO, STRISCIA
	   CHIARA A SINISTRA. Misurato con CDP (porta 9223) sui pixel veri, non
	   sulla scatola di un antenato (l'errore del giro precedente, che leggeva
	   `.sezione` a piena larghezza e concludeva "già coperta"): a 1440,
	   `elementsFromPoint` su x=1430 mostra questo `::before` coprire di nero
	   fin quasi in cima (il cuneo `0 6% → 100% 100%` arriva quasi a piena
	   altezza sul bordo destro) mentre su x=0-18 il cuneo copre solo i primi
	   ~10px (6% di 166px) e sotto resta scoperto: là sotto c'è la `.colonna`
	   chiara (`#F7F7F7`), che appare come una striscia di **20×137px**
	   (y=4428-4564) — a destra zero perché lì il cuneo è già alto quanto
	   basta, a sinistra no.
	   Il pannello nero del titolo (`.elemento`, x=20→1420) copre il centro:
	   il cuneo qui serve a coprire SOLO i due margini di 20px fuori da quel
	   pannello, e su quelli deve essere pieno quanto sul lato destro — non
	   un cuneo che cresce da 6% a 100%, un rettangolo pieno. Il taglio
	   diagonale vero (fra la fotografia sopra e questa sezione) lo fa già la
	   sezione precedente col proprio `::after` (verificato: stesso cuneo,
	   speculare, sovrapposto per 6px sul bordo -3px/-3px) — coprire anche qui
	   tutta l'altezza non toglie il taglio, lo ripete a favore di sicurezza
	   dove il pannello nero non arriva. Nessun `!important` nuovo: si toglie
	   il `clip-path`, non se ne aggiunge un secondo. */
	z-index: 1;
	pointer-events: none;
}

/* 🔁 29/8/2026 - LE QUATTRO RIFINITURE CHIESTE DA GABRIELE SULLA FASCIA SERVIZI.
   Misurato prima di toccare: il titolo era `text-align:right` dentro un blocco
   con `padding-right:319,59px`, quindi il suo centro cadeva a **800** invece
   che a 960; il blocco delle schede aveva `padding-top:78,8px` e
   `padding-bottom:32px`. */

/* ① Il titolo al centro, non a destra. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .elemento:first-child {
	padding-right: 0 !important;
	padding-left: 0 !important;
}
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .elemento:first-child > h2 {
	text-align: center !important;
}

/* ② I margini della fascia bianca a metà: 78,8 -> 39,4 e 32 -> 16. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .colonne {
	padding-top: 39.4px;
	padding-bottom: 16px;
}

/* ③ «Accedi per usufruire dei servizi» con i suoi due bottoni, e la freccia
   di scorrimento: giù di 20px. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] ~ .riga,
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .colonne ~ .riga {
	margin-top: 20px;
}

/* ④ La freccia sopra la fascia nera, SENZA spostarla.
   Il tentativo di ieri metteva `position` sul collegamento e lo buttava a
   x=1896: il suo genitore ha `display:contents`, quindi il link entra nel
   layout del nonno. Qui la posizione la prende l'IMMAGINE, che sta dentro il
   link e non ne cambia l'allineamento. */
.pagina__contenuto a > img[src*="scrolldown"] {
	position: relative;
	z-index: 3;
	top: 20px;
	/* 🔁 29/8/2026 - LA FRECCIA SI VEDE SU QUALUNQUE FONDO.
	   Misurato: nella fascia degli amici animali cadeva su fondo #F7F7F7 ed
	   e' un'immagine BIANCA - 1.375 pixel chiari su un fondo chiaro. Non era
	   coperta e non mancava: era bianca su bianco.
	   `difference` la fa diventare il negativo di cio' che ha sotto: nera sul
	   chiaro, bianca sul nero, leggibile sulla foto. Nessun alone, e nessun
	   colore da indovinare a seconda di dove cade. */
	mix-blend-mode: difference;
}

/* 🔁 29/8/2026 - LE QUATTRO CORREZIONI CHIESTE DA GABRIELE SULLA FOTO.
   Misurato prima: sezione 4421 alta 900 · fascia su 166,19 · titolo a 4467
   (46px dall'inizio, quindi NON al centro della banda, che sta a 83) ·
   schede 4589 alte 300 · fascia giu' che comincia a 5155.
   Il bianco fra le due bande e' **568px** e le schede ne usano 300: restano
   **268px di vuoto, tutti sotto**, perche' il contenuto e' spinto in alto
   invece che centrato. Da li' lo spazio bianco che gli dava fastidio. */

/* ① Il titolo al centro VERTICALE della banda nera, non appoggiato in alto.
   (166,19 - 22) / 2 = 72 dall'inizio, contro i 46 di adesso. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .elemento:first-child {
	padding-top: 39px;
}

/* ⛔ 29/8/2026 - ANNULLATA. Avevo alzato la banda a 41vh per stringere il
   bianco: **copre il testo di «Sviluppo web»**, verificato da Gabriele su
   schermo. Il mio controllo diceva 44px di margine ed era sbagliato, perche'
   misurava la distanza dal FONDO del blocco schede mentre la banda e'
   DIAGONALE: a sinistra il nero sale molto piu' in alto, e li' c'e' testo.
   👉 Misurare una banda inclinata con un solo numero non la misura.
   Torna al valore che non copre. Lo spazio bianco va ridotto in un altro
   modo: avvicinando le schede, non alzando il nero sopra di loro. */
body.home .sezione:has(> .colonna[style*="--fondo:#F7F7F7"])::after {
	height: calc(17.8vh + 6px);
}

/* ③ «Accedi per usufruire dei servizi» e i suoi bottoni scendono davvero.
   Il `margin-top` di prima non li muoveva: il selettore non li prendeva. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .riga:last-child {
	margin-top: 20px;
	position: relative;
	z-index: 2;
}

/* ④ La freccia sopra la foto, non sotto: la fascia e le immagini di sfondo
   hanno `z-index:1`, a lei ne serve di piu' e le serve anche sul GENITORE
   con `display:contents`, che non fa da contesto. */
.pagina__contenuto a > img[src*="scrolldown"] {
	z-index: 5;
}

/* 🚨 30/8/2026, 08:1x — LA CORNICE NERA CHE NON C'ERA SUL VIVO.
   Rimettere il riempimento sulla SEZIONE (giro precedente, `2d10afb`) ha
   fatto rientrare i bollini «Free»/«Pro» — che era il difetto — ma ha
   stretto anche la **fascia chiara** che sta dentro: a 375 andava da
   **20 a 355** e ai due lati compariva il fondo nero della sezione, due
   bande verticali che sul vivo **non ci sono**. Misurato: vivo `padding: 0`
   sulla sezione, fascia chiara da bordo a bordo, testo da **13**; noi
   `padding: 20px`, fascia **20→355**, testo da 20.

   👉 Il riempimento serve al CONTENUTO, non alla fascia. La fascia chiara
   riprende la larghezza piena con un margine negativo pari al riempimento
   che la stringeva, e se lo rimette dentro per il contenuto: un blocco
   solo, senza inseguire la catena dei bollini.
   📌 E' la stessa forma trovata stanotte sulle pagine interne: *sotto gli
   800 il pannello e' una fascia piena e l'aria la mette il contenuto.*
   Vale sotto gli 800, dove la regola della sezione e' attiva. */
@media (max-width: 800px) {
	body.home .sezione[style*="--fondo:#000000"] > .colonna[style*="--fondo:#F7F7F7"] {
		margin-inline: -20px;
		padding-inline: 20px;
		box-sizing: content-box;
	}
}

/* =========================================================================
   G7-sexies, 31/8/2026 — RIFINITURE SULLA FASCIA SERVIZI BUSINESS, ORA CHIARA.
   Sei voci di Gabriele dopo il giro che l'ha resa bianca (`937c447`). Stesso
   perimetro di prima: solo questa sezione (`[id="6"]` / `--fondo:#F7F7F7`),
   niente `!important` nuovo. */

/* ③ IL VUOTO FRA IL TITOLO E LA PRIMA RIGA DI SCHEDE — oltre 150px di niente.
   Misurato con CDP: il titolo (`h2.stacco`, inline `--giu:5rem`) prende
   `margin-block-end:80px` dalla regola generale `.stacco:not(.colonne)
   [style*="--giu:"]` (riga ~818) — un margine tarato per un titolo grande,
   rimasto identico anche ora che il titolo qui è un occhiello di 18px. Sopra
   quello, la `.colonne` porta altri 39,4px di `padding-top` (riga ~4543, le
   quattro rifiniture del 29/8). Somma: 80 + 39,4 + ~20px di flusso = la
   voragine vista in `_calco/servizi-1440-v2.png`.
   👉 Non si tocca l'inline (`--giu` è nel convertitore, v. rapporto G7sexies
   punto ⑥): si scavalca la SUA CONSEGUENZA con un selettore più specifico,
   stesso schema già in uso su questa fascia per padding/text-align. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] > .elemento:first-child > h2.stacco {
	margin-block-end: 28px;
}
/* ⚠ Non sceso oltre 28px: nello spazio che resta galleggia la freccia
   "scorri giù" della sezione amici animali (§④ qui sotto ha il perché),
   spinta li' da un `bottom` negativo perché la sua foto la copriva altrove.
   Quella freccia porta un anello di 8px (`box-shadow`, riga ~4127) oltre
   ai suoi 48px: sotto i 28px di margine il cerchio+anello (64px) non ci
   sta più fra il titolo e i bollini senza toccare l'uno o gli altri —
   misurato con CDP, non a occhio. V. rapporto G7sexies §③ per il numero
   della sessione dopo, se si vuole stringere ancora. */

/* ② I BOLLINI FREE/PRO — GIRO 3, dopo il verdetto di Logos su GIRO 2:
   "visivamente funziona, ma è un'inversione — se cambia il colore della
   piastra sorgente, ribalta anche quello, e fra sei mesi nessuno capisce
   perché". Tolto `filter:invert(1)`: al suo posto un `background-image`
   che punta a una COPIA a colori dichiarati di `free.svg`/`pro.svg`
   (stesso disegno, stessi due `<path>`, ricodificata qui sotto in
   data-URI — l'originale caricato dal tema non si tocca, resta il file
   sorgente). Piastra e testo sono ora due valori scritti a mano
   (`#e2e2e4` e `#000`), non più il risultato di un'operazione sull'altro:
   stessa resa pixel per pixel di GIRO 2 (invertire (29,29,27)/(255,255,255)
   dà esattamente questi due valori), ma dichiarata, non calcolata — se
   domani la piastra vera cambia colore, questi due bollini non se ne
   accorgono nemmeno, perché non guardano più il file originale.
   Contrasto testo/piastra dichiarato: nero puro su #e2e2e4 → **17,6:1**
   (WCAG AA richiede 4,5:1 per testo piccolo). Misurato sul reso vero
   (screenshot, non teoria): il nucleo dei tratti tocca (21,21,21) su
   piastra (224,224,228) → 13,9:1. Il grigio intermedio (112,112,112) che
   si vede sul bordo antialiasing di una lettera scende a ~3,8:1, ma è
   la stessa cosa che succede al bordo di QUALSIASI testo su QUALSIASI
   sfondo a questa scala — non è un valore su cui si giudica il contrasto
   dichiarato di un font (quello si giudica sul colore intenzionale,
   nero puro, non sul pixel di transizione). */
.elemento > span.disegno[style*="free.svg"],
.elemento > span.disegno[style*="pro.svg"] {
	display: block;
	margin-inline: auto;
	block-size: 18px;
	border-radius: 4px;
	overflow: hidden;
	border: 1px solid rgba(0, 0, 0, .18);
	box-shadow: none;
}
/* 🔁 H7, 31/8/2026 SERA — I BOLLINI ERANO INVERTITI DI COLORE (difetto 5 del
   confronto con la cattura di Gabriele): piastra chiara #e2e2e4 con testo
   nero, quasi invisibili sul fondo #F7F7F7 della fascia. Sua richiesta:
   «nere con la scritta bianca». Stessa tecnica GIRO 3 (colori dichiarati a
   mano, non calcolati): stesse due path per disegno, piastra e testo
   scambiati — #e2e2e4→#0a0a0a, #000→#fff. Contrasto bianco su #0a0a0a:
   19,3:1, oltre il 4,5:1 minimo. Verificato con una pagina di prova
   renderizzata (Chrome reale) prima di scrivere qui: le due parole si
   leggono nitide, piastra nera piena, nessun alone. */
.elemento > span.disegno[style*="free.svg"] {
	inline-size: calc(18px * 75 / 36.09);
	background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NSAzNi4xIj48cmVjdCBmaWxsPSIjMGEwYTBhIiB3aWR0aD0iNzUiIGhlaWdodD0iMzYuMDkiPjwvcmVjdD48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTcuNyw2LjVWOC40SDcuN3Y4LjVoOC41djEuOUg3LjdWMjkuM0g1LjRWNi41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSI+PC9wYXRoPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yNi4xLDEyLjFhNy40LDcuNCwwLDAsMSwzLjgtMXYyLjRoLS43YTUuNiw1LjYsMCwwLDAtMy45LDEuNGMtMSwuOS0xLjUsMi4zLTEuNSw0LjR2MTBIMjEuNVYxMS41aDIuM3YzLjFBNS4xLDUuMSwwLDAsMSwyNi4xLDEyLjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQ5LjMsMjEuM0gzNC42YTcuMSw3LjEsMCwwLDAsLjksMy40LDUuNiw1LjYsMCwwLDAsMi40LDIuMiw2LjQsNi40LDAsMCwwLDMuMS43LDUuNiw1LjYsMCwwLDAsMy43LTEuMSw0LjcsNC43LDAsMCwwLDItMi45aDIuNGE3LDcsMCwwLDEtMi44LDQuM0E4LjQsOC40LDAsMCwxLDQxLDI5LjVhOC40LDguNCwwLDAsMS00LjUtMS4xLDcuNCw3LjQsMCwwLDEtMy4xLTMuMiw5LjUsOS41LDAsMCwxLTEuMi00LjgsOS42LDkuNiwwLDAsMSwxLjItNC45LDcuNCw3LjQsMCwwLDEsMy4xLTMuMkE5LjQsOS40LDAsMCwxLDQxLDExLjJhOC4yLDguMiwwLDAsMSw3LjQsNC4xLDguNCw4LjQsMCwwLDEsMSw0LjJBOS43LDkuNywwLDAsMSw0OS4zLDIxLjNabS0zLTUuM0E1LjgsNS44LDAsMCwwLDQ0LDEzLjlhNi40LDYuNCwwLDAsMC0zLjEtLjcsNS45LDUuOSwwLDAsMC00LjMsMS42LDYuNCw2LjQsMCwwLDAtMiw0LjZINDcuMUE3LjEsNy4xLDAsMCwwLDQ2LjMsMTZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTY5LjYsMjEuM0g1NC44YTcuMiw3LjIsMCwwLDAsMSwzLjQsNiw2LDAsMCwwLDIuMywyLjIsNi44LDYuOCwwLDAsMCwzLjIuN0E1LjgsNS44LDAsMCwwLDY1LDI2LjVhNC43LDQuNywwLDAsMCwyLTIuOWgyLjRhNy40LDcuNCwwLDAsMS0yLjgsNC4zLDguNCw4LjQsMCwwLDEtNS4zLDEuNiw4LjQsOC40LDAsMCwxLTQuNS0xLjEsNy42LDcuNiwwLDAsMS0zLjItMy4yLDEwLjYsMTAuNiwwLDAsMS0xLjEtNC44LDEwLjcsMTAuNywwLDAsMSwxLjEtNC45LDguNyw4LjcsMCwwLDEsMy4xLTMuMiwxMC4xLDEwLjEsMCwwLDEsNC42LTEuMSw5LDksMCwwLDEsNC40LDEuMSw3LjYsNy42LDAsMCwxLDIuOSwzLDguNSw4LjUsMCwwLDEsMS4xLDQuMkM2OS43LDIwLjIsNjkuNiwyMC44LDY5LjYsMjEuM1ptLTMtNS4zYTYuNiw2LjYsMCwwLDAtMi4zLTIuMSw2LjcsNi43LDAsMCwwLTMuMS0uNyw2LjMsNi4zLDAsMCwwLTQuNCwxLjYsNi44LDYuOCwwLDAsMC0yLDQuNkg2Ny40QTcuMSw3LjEsMCwwLDAsNjYuNiwxNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiPjwvcGF0aD48L3N2Zz4=');
}
.elemento > span.disegno[style*="pro.svg"] {
	inline-size: calc(18px * 60.1 / 36.09);
	background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MC4xIDM2LjEiPjxyZWN0IGZpbGw9IiMwYTBhMGEiIHdpZHRoPSI2MC4xIiBoZWlnaHQ9IjM2LjA5Ij48L3JlY3Q+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjIsMTcuOGMtMS4zLDEuMi0zLjIsMS44LTUuOCwxLjhIOC44djkuN0g2LjVWNi41aDYuOWMyLjYsMCw0LjUuNiw1LjgsMS44YTYuMiw2LjIsMCwwLDEsMS45LDQuOEE2LjEsNi4xLDAsMCwxLDE5LjIsMTcuOFptLS40LTQuN2E0LjcsNC43LDAsMCwwLTEuMy0zLjUsNS45LDUuOSwwLDAsMC00LjEtMS4ySDguOHY5LjJoNC42UTE4LjgsMTcuNiwxOC44LDEzLjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI5LjUsMTIuMWE3LjQsNy40LDAsMCwxLDMuOC0uOXYyLjRoLS42YTUuNyw1LjcsMCwwLDAtNCwxLjNxLTEuNSwxLjMtMS41LDQuNXY5LjlIMjQuOVYxMS41aDIuM3YzLjJBNS44LDUuOCwwLDAsMSwyOS41LDEyLjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQwLDI4LjRhOC4yLDguMiwwLDAsMS0zLjItMy4yLDEwLDEwLDAsMCwxLTEuMS00LjgsOS4yLDkuMiwwLDAsMSwxLjItNC44LDcuMSw3LjEsMCwwLDEsMy4yLTMuMiw5LDksMCwwLDEsOSwwLDcuMSw3LjEsMCwwLDEsMy4yLDMuMiw5LjIsOS4yLDAsMCwxLDEuMiw0LjgsOS41LDkuNSwwLDAsMS0xLjIsNC44LDcuNiw3LjYsMCwwLDEtMy4yLDMuMiw5LDksMCwwLDEtNC42LDEuMkE4LjQsOC40LDAsMCwxLDQwLDI4LjRabTcuOC0xLjZhNi45LDYuOSwwLDAsMCwyLjQtMi40LDguMiw4LjIsMCwwLDAsLjktNCw4LjIsOC4yLDAsMCwwLS45LTRBNi45LDYuOSwwLDAsMCw0Ny44LDE0YTcuMiw3LjIsMCwwLDAtMy4yLS44LDcuMyw3LjMsMCwwLDAtMy4zLjgsNi45LDYuOSwwLDAsMC0yLjQsMi40LDguMiw4LjIsMCwwLDAtLjksNCw4LjIsOC4yLDAsMCwwLC45LDQsNi4zLDYuMywwLDAsMCw1LjYsMy4yQTcuMyw3LjMsMCwwLDAsNDcuOCwyNi44WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSI+PC9wYXRoPjwvc3ZnPg==');
}
/* Allineati sulla stessa riga in tutte e tre le colonne: il grid delle
   schede (`.colonne.colonne--3`) eredita `align-items:center` da una
   regola generale, e centra ogni colonna sulla propria altezza totale —
   la terza scheda ("Manifesti Funebri Free/Pro", testo più lungo) ha
   un'altezza diversa dalle prime due e il bollino, da centrato, cadeva
   un po' più in basso. Scoped a questa sola fascia: le altre griglie a 3
   colonne del sito possono avere ragioni proprie per restare centrate. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] .colonne.colonne--3 {
	align-items: start;
}

/* 🔁 H7, 31/8/2026 SERA — LA SCHEDA EVIDENZIATA, mancava (difetto 5, seconda
   metà). Sua: «Manifesti funebri Pro» (terza colonna della riga Pro, la
   riga `.sezione--fascia-giu`) porta un fondo grigio proprio, le altre
   cinque no. Scoped alla sola terza colonna di quella riga, dentro questa
   sola fascia: le altre griglie a 3 colonne del sito non la ereditano. */
/* 🔁 G4, 1/9/2026 — QUEL FONDO FISSO ERA LETTO COME UN HOVER RIMASTO ACCESO
   SU UNA SCHEDA SOLA. Le parole di Gabriele: «un effetto hover che è
   rimasto attivo nella schermata dei servizi, mentre sugli altri servizi
   non funziona» — o su tutte, o su nessuna, e ha scelto tutte.

   La forma della scheda (angoli arrotondati, respiro interno) resta fissa
   su tutte e sei, così il passaggio del mouse non sposta il testo (nessun
   salto di layout): cambia solo lo sfondo, ed è quello che diventa un vero
   `:hover`. Stesso schema già in uso in questo foglio per le tre celle
   MEMORIE IMMORTALI/VALORE AGGIUNTO/DURA PER SEMPRE (SQ-HOVER, riga
   ~3584): `@media (hover:hover)` perché un dito non ha un passaggio del
   mouse da simulare, spento sotto `prefers-reduced-motion`. */
body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] .colonne.colonne--3 > .colonna {
	border-radius: 8px;
	padding-block: 16px;
	padding-inline: 12px;
}
@media (hover: hover) {
	body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] .colonne.colonne--3 > .colonna {
		transition: background-color .2s ease;
	}
	body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] .colonne.colonne--3 > .colonna:hover {
		background-color: #EAEAEA;
	}
}
@media (prefers-reduced-motion: reduce) {
	body.home .sezione > .colonna[style*="--fondo:#F7F7F7"] .colonne.colonne--3 > .colonna {
		transition: none;
	}
}

/* ④ IL PULSANTE «SCORRI GIÙ» IN FONDO ALLA FASCIA, INVISIBILE SUL CHIARO —
   stesso identico difetto già chiuso il 29/8 per la freccia degli amici
   animali (riga ~4111 qui sopra): `filter:brightness(200%)…` è IN LINEA
   sul GIF originale (dal convertitore) e batte qualunque filtro esterno
   senza `!important`; il `mix-blend-mode:difference` ha bisogno di uno
   sfondo scuro dietro per funzionare, e qui non c'è più una fotografia.
   Stesso rimedio, scoped SOLO a questa sezione perché le altre cinque
   frecce stanno già su fotografie scure e non vanno toccate.
   🚨 GIRO 2 — Logos: "cerchio pieno, pesante, scurirlo bastava". Tolto
   l'anello (`box-shadow` di 8px, pensato per un fondo fotografico rumoroso
   che qui non c'è) e abbassata l'opacità: resta un cerchio piccolo e scuro
   quanto serve al `mix-blend-mode` per invertire la freccia, non un disco
   pieno piantato nella fascia.
   🚨 GIRO 3 — Logos: "sembrano due pulsanti sovrapposti male". Sono uno
   solo (confermato con CDP: un `<a>` con un solo `<img>` dentro, nessun
   duplicato nel DOM), ma non coincidono: l'`<a>` (dove stava questo sfondo)
   misura 814-862px, il suo `<img>` 834-882 — 20px più in basso.
   NON è un buco da baseline (provato `line-height:0`: zero effetto, lo
   scarto restava identico). Causa vera, trovata con CDP sull'`<img>`
   stesso: `.pagina__contenuto a > img[src*="scrolldown"] { position:
   relative; top:20px; }` (riga ~4590) — regola CONDIVISA dalle sei
   frecce della home (28/8, "la freccia sopra la fascia nera senza
   spostarla"), che sposta ogni GIF 20px sotto la propria scatola per
   design. Sulle altre cinque non si vede perché il cerchio ci sta sopra
   una fotografia scura che copre comunque quei 20px; qui, senza foto,
   il cerchio sull'`<a>` (che quel `top:20px` non lo eredita) finiva 20px
   più in alto della GIF vera.
   👉 Non si tocca la regola condivisa (sposterebbe le altre cinque): il
   cerchio si stacca dall'`<a>` e diventa uno `::before` posizionato
   sullo stesso `top:20px` dell'immagine — la insegue invece di
   presumere che coincida con la sua scatola. */
/* ⛔ TOLTO IL CERCHIO, G4, 1/9/2026 — stesso ordine e stessa nota di riga
   ~4260 qui sopra: Gabriele ha visto due delle sei frecce «scorri giù»
   con un'ombra di fondo che le altre non hanno, e nessuno l'ha chiesta.
   Tolto anche qui: questa freccia (verso «Accedi per usufruire dei
   servizi», sempre su fondo #F7F7F7) torna a rischiare lo stesso
   1,06:1 di contrasto misurato sull'altra. Stessa scelta, stesso debito
   dichiarato: uniformità dei sei pulsanti prima del contrasto su questi
   due, per ordine diretto. */


/* 🔁 1/9/2026, SERA — LA FRECCIA «SCORRI GIÙ» SI INVERTE SUL CHIARO.
   Ordine di Gabriele, parole sue: «sul bianco inverti i colori, come fai già per il
   logo che sul nero appare bianco e sul bianco appare nero».

   Perche' serviva, misurato l'1/9 sera sullo staging con CDP:
   il `mix-blend-mode: difference` messo il 29/8 (riga ~4770) NON basta. L'immagine
   porta `position: relative` + `z-index`, quindi e' un gruppo di fusione isolato: il
   `difference` non vede il fondo chiaro che sta sotto, e la freccia resta bianca su
   #F7F7F7 — contrasto 1,06:1, praticamente invisibile. Tolto il cerchio grigio (G4,
   stessa giornata) non restava piu' niente da guardare.

   Perche' `invert(1)` e non un colore scelto a mano: non dipende dal contesto di
   fusione, e il GIF e' bianco su trasparente — misurato: 600×600, 26.374 pixel opachi
   e TUTTI chiari, 333.626 trasparenti. Invertendolo la figura diventa nera e la
   trasparenza resta: nessun riquadro, nessun alone.

   `!important` non e' pigrizia: il GIF porta un `filter: brightness(...)` IN LINEA dal
   convertitore Elementor, che senza `!important` vince su qualunque regola esterna
   (gia' pagato due volte, 29/8 e 1/9).

   Perimetro: SOLO le due frecce che cadono su fondo chiaro. Misurato con CDP l'1/9:
   delle sei frecce della home, esattamente la 2 (fascia degli amici animali) e la 5
   (fascia «Servizi business») hanno un antenato con `--fondo:#F7F7F7` dichiarato in
   linea; le altre quattro no, e restano bianche sulle fotografie scure. */
[style*="--fondo:#F7F7F7"] a > img[src*="scrolldown"] {
	mix-blend-mode: normal;
	filter: invert(1) !important;
}

/* ==========================================================================
   MODELLO NOTIZIA (11/10/2026) — la pagina di un articolo `post`.

   Gabriele, dopo aver guardato la guida 01: «più foto, il carattere appena più
   grande, una barra laterale sinistra per leggere altre notizie».

   🚨 Solo `.articolo-pagina`, che `single.php` scrive per i `post`: gli altri tipi
   che cadono in `single.php` restano nella gabbia di `.pagina--articolo` qui sopra.
   Il testo resta largo 720px (lettura comoda); barra e testo sono centrati
   insieme nei 1200px del sito. Il DOM ha il testo PRIMA della barra (così si
   legge prima il testo, e su telefono la barra sta sotto senza trucchi): a
   schermo largo la griglia mette la barra a sinistra. La barra segue `base.css`
   (caratteri e colori del sito), nessuno stile nuovo inventato.
   ========================================================================== */
.articolo-pagina {
	max-width: var(--larghezza-max);
	margin-inline: auto;
	padding: 4rem 1.25rem;
}
.articolo-pagina > .pagina--articolo { max-width: none; margin: 0; padding: 0; }

.articolo-pagina--barra {
	display: grid;
	grid-template-columns: 280px minmax(0, 720px);
	grid-template-areas: "barra testo";
	justify-content: center;
	column-gap: 3.5rem;
	align-items: start;
}
.articolo-pagina--barra > .pagina--articolo { grid-area: testo; }
.articolo-pagina--barra > .articolo__barra { grid-area: barra; }

/* Senza barra (nessun'altra notizia) il testo resta in colonna di lettura, centrato. */
.articolo-pagina:not(.articolo-pagina--barra) > .pagina--articolo { max-width: 720px; margin-inline: auto; }

.articolo__barra {
	position: sticky;
	top: calc(var(--testata-h, 56px) + 1.5rem);
	display: flex;
	flex-direction: column;
	gap: 2rem;
	padding-top: .35rem;
}
.articolo__barra-intestazione {
	margin: 0 0 .9rem;
	padding-bottom: .6rem;
	border-bottom: 1px solid var(--c-separatori, #0201011f);
	font-family: "Lusitana", serif;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--c-risalto);
	text-transform: none;
}
.articolo__barra-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.articolo__barra-link { display: flex; gap: .85rem; align-items: flex-start; text-decoration: none; color: inherit; }
.articolo__barra-foto { flex: 0 0 72px; width: 72px; height: 72px; overflow: hidden; border-radius: 6px; background: var(--c-sfondo-chiaro); }
.articolo__barra-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.articolo__barra-testo { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.articolo__barra-titolo { font-size: .95rem; line-height: 1.35; font-weight: 500; color: var(--c-risalto); overflow-wrap: anywhere; }
.articolo__barra-link:hover .articolo__barra-titolo,
.articolo__barra-link:focus-visible .articolo__barra-titolo { text-decoration: underline; }
.articolo__barra-data { font-size: .8rem; line-height: 1.2; color: var(--c-testo); }

/* Il corpo della notizia e della guida: un passo più grande, solo qui. ⚠ Misurato prima: 13px a 1920 e 14px a 390
   (non i 17 che diceva il brief). Ora 18px (desktop) e 17px (telefono): 19px erano troppi su 720px di colonna. */
.articolo-pagina .pagina__contenuto :is(p, li, dd, blockquote, td, th) {
	font-size: 18px;
	line-height: 1.7;
}
.articolo-pagina .pagina__contenuto :is(h2, h3) { line-height: 1.25; }
/* SGUARDO-PRE-MAIL 16/10, A32: il testo dell'articolo era il grigio chiaro del corpo (#7F7F7F); stesso colore dei paragrafi delle altre pagine. */
.articolo-pagina .pagina__contenuto :is(p, li, dd, blockquote, td) { color: #1B1D1A; }
.articolo-pagina .pagina__contenuto .guida-credito,
.articolo-pagina .pagina__contenuto .guida-credito :is(small) { font-size: 14px; line-height: 1.5; }

/* La foto in apertura occupa tutta la colonna di lettura (prima restava a 640px dentro 720). */
.articolo-pagina .articolo__foto { margin: 0 0 1.5rem; }
.articolo-pagina .articolo__foto img { display: block; width: 100%; height: auto; border-radius: 6px; }

/* Le foto dentro il testo (pubblica-guida.php): figure a tutta colonna, didascalia sempre visibile. */
.articolo-pagina .guida-foto { margin: 2rem 0; }
.articolo-pagina .guida-foto img { display: block; width: 100%; height: auto; border-radius: 6px; }
.articolo-pagina .guida-foto figcaption { margin-top: .6rem; font-size: 14px; line-height: 1.5; color: var(--c-testo); }
.articolo-pagina .guida-foto figcaption a { color: inherit; text-decoration: underline; }

/* Telefono e tablet stretto: la barra scende sotto il testo, a tutta larghezza. */
@media (max-width: 900px) {
	.articolo-pagina { padding-block: 2.5rem; }
	.articolo-pagina--barra {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "testo" "barra";
		row-gap: 3rem;
	}
	.articolo__barra { position: static; padding-top: 2rem; border-top: 1px solid var(--c-separatori, #0201011f); }
	.articolo-pagina .pagina__contenuto :is(p, li, dd, blockquote, td, th) { font-size: 17px; line-height: 1.65; }
}

/* ==========================================================================
   DATA DEL DECESSO (14/10/2026) — gli articoli su una persona scomparsa portano il giorno
   della morte, «† 6 ottobre 2026», non quello di pubblicazione (`inc/notizie.php`). Stessi
   caratteri e colori della barra e delle schede: nessuno stile nuovo.
   ========================================================================== */
.articolo__data--morte { margin: .35rem 0 0; font-family: "Lusitana", serif; font-size: 1.15rem; line-height: 1.3; color: var(--c-risalto); }
.articolo__data--pubblicato { margin: .25rem 0 0; font-size: .8rem; line-height: 1.2; color: var(--c-secondario); }
.scheda__data--morte { color: var(--c-risalto); font-size: 13px; }
.articolo__morte { white-space: nowrap; }
.articolo__morte-croce { margin-right: .15em; }

/* «Tutte le notizie» in fondo alla colonna «Ultime notizie». */
.articolo__barra-voce--tutte { margin-top: .2rem; }
.articolo__barra-tutte { font-size: .95rem; font-weight: 500; color: var(--c-risalto); text-decoration: underline; }
.articolo__barra-tutte:hover,
.articolo__barra-tutte:focus-visible { text-decoration: none; }
