@font-face{font-family:'Oswald';src:url('https://affissioni.roma.it/wp-content/uploads/wca-bridge-managed/fonts/aff-oswald-latin-v57.woff2') format('woff2');font-weight:200 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Source Sans 3';src:url('https://affissioni.roma.it/wp-content/uploads/wca-bridge-managed/fonts/aff-sourcesans3-latin-v19.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Oswald fallback';src:local('Arial Narrow'),local('Liberation Sans Narrow'),local('Roboto Condensed'),local('Helvetica Neue Condensed'),local('DejaVu Sans Condensed'),local('Liberation Sans'),local('Roboto');size-adjust:98.22%;ascent-override:121.2%;descent-override:29.5%;line-gap-override:0.0%;font-display:swap}@font-face{font-family:'Source Sans 3 fallback';src:local('Arial'),local('Liberation Sans'),local('Roboto'),local('Helvetica Neue'),local('Helvetica'),local('DejaVu Sans');size-adjust:91.44%;ascent-override:111.5%;descent-override:43.7%;line-gap-override:0.0%;font-display:swap}:root{
--carta:#F2EEE6; --superficie:#FBF9F5; --inchiostro:#17161B; --secondario:#4A4750;
--notte:#14161F; --magenta:#A8005E; --magenta-pieno:#D6006F; --magenta-notte:#FF3D96;
--riga:rgba(23,22,27,.14);
}
/* ⚠️ 3 set 2026, in due passate: prima erano scritte `body.page` e sugli ARTICOLI non
valevano, perche' un post non ha la classe `page` (ha `single`, `single-post`).
Conseguenze misurate sui nove articoli appena rifatti: fondo del body BIANCO invece
del cemento, e la fascia bianca di 20px sopra la topbar, che e' il margine del primo
widget (il blocco stili, alto zero) che nessuno azzerava. La classe che c'e' su tutte
e due, pagine e articoli, e' `elementor-page`. */
body[class*="elementor-page"]{ background:var(--carta); color:var(--inchiostro);
font-family:"Source Sans 3","Source Sans 3 fallback",system-ui,sans-serif; font-size:17px; line-height:1.625;
-webkit-font-smoothing:antialiased; }
body[class*="elementor-page"] h1,body[class*="elementor-page"] h2,body[class*="elementor-page"] h3{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif;
font-weight:700; letter-spacing:-0.02em; line-height:1.05; margin:0; text-transform:none; }
body[class*="elementor-page"] p{ margin:0; }/* PARALLELE DI PIATTAFORMA — il reset atomic azzera padding e display dei
contenitori con !important: ogni contenitore che deve impaginare ha bisogno
della sua parallela. Regola: si alza la specificita' del perdente, mai si
abbassa quella del vincitore, e mai regole su .e-con nudo. */
/* ⚠️ `a` mancava da questo elenco, e i contenitori-link si tenevano il padding
di serie di Elementor (10px): nel piede i tre link legali erano alti 39px
contro i 19 del «© 2026» accanto, ed e' il motivo per cui la riga sembrava
storta. I bottoni non ne risentono: dichiarano il loro padding con una
specificita' piu' alta (.af-btn.e-con batte a.e-con). */
section.e-con, header.e-con, div.e-con, ul.e-con, li.e-con, figure.e-con,
article.e-con, footer.e-con, nav.e-con, a.e-con, details.e-con, summary.e-con{
padding:0 !important; }
ul.e-con{ list-style:none !important; margin:0 !important; }
body[class*="elementor-page"] a{ text-decoration:none; }/* ⛔ LO SPAZIO VUOTO SOPRA LA BARRA (trovato dal responsabile, poi misurato): il widget
html del blocco stili e' alto 0 ma nasce col margine di default di Elementor
(20px). Un elemento vuoto fa collassare i suoi margini, che escono dal
contenitore e diventano spazio SOPRA la pagina: il wrapper partiva a y=20
invece che a y=0. E' il caso A5 del ledger nella sua variante in cima. */
body[class*="elementor-page"] .elementor-widget-html{ margin:0 !important; }/* ⛔ IL RESET DI ELEMENTOR METTE `overflow:clip` SUL BODY, e con quello NESSUNO
scroll programmatico passa: misurato, window.scrollTo(0,5000) lasciava la
pagina a 242px. La rotella funziona (l'utente scrolla), ma NON funziona il
salto del browser su un'ancora, che e' scroll programmatico: cliccando «Vedi
il listino» l'indirizzo prendeva #prezzo e la pagina restava dov'era.
Il clip qui non serve a niente: l'overflow orizzontale di questa pagina e'
ZERO a 375, 768 e 1440, verificato a ogni giro. */
body[class*="elementor-page"]{ overflow:visible !important; }/* =================== barra in testa ===================
BOCCIATURA del responsabile (2 set): il nero era fuori palette e il telefono
era ripetuto tre volte (qui, nel bottone dell'header e nella barra gialla del
plugin, che sotto i 768 e' sempre a schermo). Ora la barra porta solo cose che
NON stanno altrove: perimetro, orari, email. Fondo carta scura, testo scuro:
#4A4750 su #E7E1D5 = 7,1:1, contro il 12,5px grigio chiaro su nero di prima. */
.af-topbar.e-con{ background:#E7E1D5 !important;
padding:9px max(28px, calc((100% - 1200px) / 2)) !important;
display:flex !important; align-items:center !important; justify-content:space-between !important;
gap:20px !important; flex-wrap:wrap !important;
border-bottom:1px solid rgba(23,22,27,.08) !important; }
.af-topbar span{ color:var(--secondario) !important; font-size:13px; letter-spacing:.08em;
text-transform:uppercase; font-weight:600; white-space:nowrap; }
.af-topbar a span{ color:var(--secondario) !important; }
.af-topbar .zona{ display:inline-flex !important; align-items:center !important; }
.af-topbar-dx.e-con{ display:flex !important; flex-direction:row !important;
align-items:center !important; gap:22px !important; width:auto !important; }
.af-topbar-mail.e-con{ display:inline-flex !important; align-items:center !important;
transition:color 300ms ease-out; }
.af-topbar-mail:hover span{ color:var(--magenta) !important; }/* =================== header =================== */
.af-header.e-con{ background:var(--carta) !important;
padding:18px max(40px, calc((100% - 1200px) / 2)) !important;
display:flex !important; align-items:center !important; justify-content:space-between !important;
gap:28px !important; position:relative !important; border-bottom:1px solid var(--riga) !important; }
.af-header > *{ flex:0 0 auto !important; width:auto !important; min-width:0 !important; }
.af-marchio.e-con{ display:flex !important; align-items:center !important; gap:12px !important; }
/* IL MARCHIO (bifacciale, 4 set 2026). Non e' piu' un contenitore con dentro una
lettera: e' un widget e-svg, e il wrapper che Elementor gli mette attorno nasce
65x65 inline-block (collaudo copia-mano 11 lug). La misura si da' qui, alla classe
nostra, e l'svg dentro riempie il wrapper. Niente .e-con nel selettore: quello vale
per i contenitori, e questo ora e' un widget. */
.af-sigla{ width:44px !important; height:44px !important; flex:0 0 auto !important;
display:block !important; line-height:0 !important; }
.af-sigla svg{ display:block !important; width:100% !important; height:100% !important; }
.af-nome.e-con{ display:flex !important; flex-direction:column !important; gap:1px !important; }
.af-nome .n{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-weight:600; font-size:20px;
color:var(--inchiostro) !important; letter-spacing:.01em; line-height:1.1; text-transform:uppercase; }
.af-nome .q{ font-size:10.5px; letter-spacing:.19em; text-transform:uppercase;
color:var(--secondario) !important; }/* il menu e' uno shortcode: il wrapper di Elementor nasce width:100% e sfonda
l'header. La cura sta sul wrapper del widget, non su .e-con nudo. */
.af-nav.e-con{ display:flex !important; align-items:center !important; width:auto !important; }
.af-nav .elementor-widget-shortcode{ width:auto !important; }
.af-nav ul.nav-ul{ display:flex !important; flex-direction:row !important; gap:28px !important;
list-style:none !important; margin:0 !important; padding:0 !important; align-items:center; }
.af-nav ul.nav-ul li{ margin:0 !important; }
/* BOCCIATURA del responsabile: a desktop le voci si leggevano poco. Misurato: 15px/600
accanto a un marchio da 20px in Oswald, cioe' troppo piccole per il loro peso
nella riga. Portate a 16.5px e messe in Oswald come il marchio, che e' anche
il carattere del mestiere. */
.af-nav ul.nav-ul a{ font-family:"Oswald","Arial Narrow",sans-serif !important;
font-size:16.5px; font-weight:500; letter-spacing:.03em;
color:var(--inchiostro) !important;
border-bottom:2px solid transparent; padding-bottom:4px; display:inline-block;
transition:color 300ms ease-out, border-color 300ms ease-out; }
.af-nav ul.nav-ul a:hover{ color:var(--magenta) !important; border-bottom-color:var(--magenta) !important; }.af-header-dx.e-con{ display:flex !important; flex-direction:row !important;
align-items:center !important; gap:12px !important; }
/* il burger e' un widget html: Elementor lo avvolge in un div che nasce width:0
e il bottone esce dal contenitore (misurato su un gemello: 29px di sfondamento
a 375). Questa parallela e' la cura, ed e' gemella di quella dello shortcode. */
.af-header-dx > *{ flex:0 0 auto !important; width:auto !important;
display:flex !important; align-items:center !important; }
.af-htel.e-con{ background:var(--inchiostro) !important; padding:12px 22px !important;
display:inline-flex !important; align-items:center !important; flex:0 0 auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.af-htel span{ color:#FFFFFF !important; font-size:15px; font-weight:700; letter-spacing:.02em; }
.af-htel:hover{ background:var(--magenta-pieno) !important; transform:translateY(-2px); }.af-burger{ display:none; width:44px; height:44px; padding:0; border:0; cursor:pointer;
background:transparent; flex-direction:column; justify-content:center; gap:5px; align-items:center; }
/* il panino e' magenta SEMPRE, non solo quando lo si tocca (il responsabile, 2 set):
e' l'unico segno di marchio nell'header a mobile, e in inchiostro spariva */
.af-burger span{ display:block; width:26px; height:2.5px; background:var(--magenta-pieno);
transition:transform 300ms ease-out, opacity 300ms ease-out, background 300ms ease-out; }
.af-burger:hover span{ background:var(--magenta) !important; }
.af-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.af-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.af-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }/* il menu mobile vive DENTRO l'header (regola copia-a-mano: da fuori, con la
pagina scrollata, si aprirebbe invisibile in cima).
⛔ BUG TROVATO DAL RESPONSABILE e poi MISURATO (2 set): stando dentro un header
`display:flex`, il pannello diventava la QUARTA COLONNA della riga e si apriva
FUORI dallo schermo — x=339 e larghezza 214 su un viewport da 375, con la
pagina che sfondava a 554px. La cura e' toglierlo dal flusso della riga:
l'header e' gia' `position:relative`, quindi il pannello si ancora sotto di lui
a tutta larghezza. La regola `.af-header > *{flex:0 0 auto}` non lo tocca piu'
perche' un elemento assoluto non e' piu' un flex item. */
.af-mobile.e-con{ display:none !important; background:var(--superficie) !important;
padding:6px 22px 22px !important; flex-direction:column !important; gap:0 !important;
border-bottom:1px solid var(--riga) !important;
position:absolute !important; top:100% !important; left:0 !important; right:0 !important;
width:100% !important; z-index:60 !important;
box-shadow:0 18px 40px -18px rgba(23,22,27,.28) !important; }
.af-mobile.aperto{ display:flex !important; }
.af-mobile ul.nav-ul{ display:flex !important; flex-direction:column !important;
list-style:none !important; margin:0 !important; padding:0 !important; width:100% !important; }
.af-mobile ul.nav-ul li{ border-bottom:1px solid var(--riga); }
.af-mobile ul.nav-ul li:last-child{ border-bottom:0; }
/* il wrapper che Elementor mette attorno allo shortcode nasce senza larghezza
utile in colonna: senza questa il menu non prende tutta la riga */
.af-mobile .elementor-widget-shortcode, .af-mobile .elementor-shortcode{
width:100% !important; display:block !important; }
.af-mobile ul.nav-ul a{ display:block; padding:16px 2px; font-size:18px; font-weight:600;
color:var(--inchiostro) !important; text-align:center !important; }
.af-mobile-tel.e-con{ margin-top:18px !important; background:var(--inchiostro) !important;
padding:15px 20px !important; display:flex !important; flex-direction:column !important;
gap:2px !important; align-items:center !important; width:100% !important; }
/* il TEMA colora ogni ancora col suo giallo (misurato: rgb(255,196,3) sul link del
telefono). Si vince alzando la specificita' del perdente, mai abbassando
quella del vincitore: qui il selettore porta anche il tag. */
a.af-mobile-tel span.et{ color:#CFCBD6 !important; font-size:11.5px; letter-spacing:.16em;
text-transform:uppercase; }
a.af-mobile-tel span.nu{ color:#FFFFFF !important; font-size:23px; font-weight:700;
font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; }
.af-mobile ul.nav-ul a:hover{ color:var(--magenta) !important; }/* =================== HERO =================== */
.af-hero.e-con{ background:var(--carta) !important; padding:0 !important;
display:block !important; overflow:hidden !important; }
/* «l'immagine sul desktop è abbastanza piccola e sembra messa così a caso»
(il responsabile, 2 set). Misurata: 617px in una colonna da 1425, cioè un
francobollo accanto al testo, ed è esattamente il difetto che la regola delle
foto-scena vieta. Ora la colonna della foto DOMINA quella del testo
(0.95 contro 1.3), il contenitore respira fino a 1480 e il taglio passa da
16/10 a 4/3: la foto va da 617x385 a ~770x578. Niente 100vw per sfondare al
bordo: include la scrollbar e produce overflow orizzontale. */
.af-hero-wrap.e-con{ display:grid !important;
grid-template-columns:minmax(0,0.95fr) minmax(0,1.3fr) !important;
align-items:center !important; gap:64px !important; max-width:1200px !important;
margin:0 auto !important; padding:96px 40px !important; }
.af-hero-testo.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; }.af-badge.e-con{ display:inline-flex !important; align-items:center !important;
gap:9px !important; background:var(--superficie) !important;
border:1px solid var(--riga) !important; padding:8px 15px !important;
margin-bottom:26px !important; flex:0 0 auto !important; width:auto !important; }
.af-badge .pallino{ width:7px; height:7px; background:var(--magenta-pieno); flex:0 0 auto; }
.af-badge span.et{ font-size:12px; letter-spacing:.13em; text-transform:uppercase;
color:var(--secondario) !important; font-weight:600; }/* 12ch mandava il titolo su quattro righe con "costa" da solo: misurato 422px di
larghezza in una colonna da 647. A 16ch sta in tre righe piene. */
.af-h1{ font-size:64px !important; margin-bottom:24px !important; max-width:16ch; }
.af-h1 .ris{ color:var(--magenta) !important; display:block; }
.af-sub{ font-size:19px; line-height:1.6; color:var(--secondario) !important;
max-width:56ch; margin-bottom:32px !important; }
.af-sub b{ color:var(--inchiostro); font-weight:600; }.af-cta.e-con{ display:flex !important; flex-direction:row !important; align-items:center !important;
gap:14px !important; flex-wrap:wrap !important; margin-bottom:34px !important; width:auto !important; }
.af-btn.e-con{ background:var(--magenta-pieno) !important; padding:16px 32px !important;
display:inline-flex !important; align-items:center !important; flex:0 0 auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.af-btn span{ color:#FFFFFF !important; font-size:14px; font-weight:700; letter-spacing:.1em;
text-transform:uppercase; }
.af-btn:hover{ background:#B00059 !important; transform:translateY(-2px); }
.af-btn-tel.e-con{ background:transparent !important; border:2px solid var(--inchiostro) !important;
padding:12px 26px !important; display:inline-flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; flex:0 0 auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.af-btn-tel .et{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
color:var(--secondario) !important; font-weight:600; }
.af-btn-tel .nu{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:23px; font-weight:700;
color:var(--inchiostro) !important; letter-spacing:.01em; line-height:1.15; }
.af-btn-tel:hover{ background:var(--superficie) !important; transform:translateY(-2px); }.af-prove.e-con{ display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
gap:0 !important; list-style:none !important; border-top:1px solid var(--riga) !important;
padding-top:20px !important; width:100% !important; }
.af-prove > li{ flex:1 1 0 !important; min-width:150px !important; padding-right:20px !important;
display:flex !important; flex-direction:column !important; gap:3px !important; }
/* «si vedono abbastanza poco» (il responsabile, 2 set): la riga delle prove aveva i
numeri in inchiostro e le etichette nel grigio secondario a 13,5px, cioe' due
toni tenui uno sopra l'altro. Ora il numero porta il magenta (6,43:1, ed e'
anche marchio) e l'etichetta scende a un grigio piu' scuro: 9,5:1 invece di
7,86, con mezzo punto di peso in piu'. */
.af-prove .nu{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:27px; font-weight:700;
color:var(--magenta) !important; line-height:1.1; }
.af-prove .et{ font-size:14.5px; color:#3A3742 !important; line-height:1.45; font-weight:500; }.af-hero-foto.e-con{ display:block !important; position:relative !important; margin:0 !important; }
.af-hero-foto img{ display:block; width:100%; height:auto; aspect-ratio:4/3;
object-fit:cover; }/* la striscia dei formati: aggancia la scena al mestiere con le misure VERE */
.af-formati.e-con{ background:var(--notte) !important; display:flex !important;
flex-direction:row !important; flex-wrap:wrap !important; gap:0 !important;
list-style:none !important; padding:0 !important; }
.af-formati > li{ flex:1 1 0 !important; min-width:200px !important;
padding:22px 34px !important; display:flex !important; flex-direction:column !important;
gap:4px !important; border-right:1px solid rgba(255,255,255,.12) !important; }
.af-formati > li:last-child{ border-right:0 !important; }
.af-formati .fm{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:19px; font-weight:600;
color:#FFFFFF !important; letter-spacing:.02em; }
.af-formati .ms{ font-size:14.5px; color:var(--magenta-notte) !important; font-weight:600;
letter-spacing:.06em; }/* =================== §2 IL PREZZO IN CHIARO (la sezione-firma) ===================
Nessun operatore romano pubblica il listino: e' la differenziazione misurata,
quindi sta subito sotto l'hero e su fondo scuro, che la stacca da tutto.
⛔ Niente tre schede identiche (e' la firma dei siti fatti da una IA): le due
della quattordicina sono gemelle e piene, la permanente e' diversa davvero
(non ha una cifra) e lo dice con una forma diversa, di solo bordo. */
.af-prezzo.e-con{ background:var(--notte) !important; display:block !important; }
.af-prezzo-wrap.e-con{ display:flex !important; flex-direction:column !important;
max-width:1200px !important; margin:0 auto !important; padding:104px 40px !important;
gap:0 !important; }
.af-prezzo-testa.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; margin-bottom:48px !important;
max-width:74ch !important; }
.af-occhiello{ font-size:12.5px !important; letter-spacing:.22em !important;
text-transform:uppercase !important; color:var(--magenta-notte) !important;
font-weight:600 !important; margin-bottom:18px !important; }
.af-h2{ font-size:46px !important; color:#FFFFFF !important; margin-bottom:20px !important; }
.af-prezzo-sub{ font-size:19px; color:#CFCBD6 !important; line-height:1.6; max-width:62ch; }
.af-prezzo-sub b{ color:#FFFFFF; font-weight:600; }.af-listino.e-con{ display:grid !important;
grid-template-columns:1.15fr 1.15fr 1fr !important; gap:24px !important;
align-items:stretch !important; list-style:none !important; }
.af-voce.e-con{ background:#1E202B !important; padding:32px 30px 30px !important;
display:flex !important; flex-direction:column !important; align-items:flex-start !important;
gap:0 !important; border-top:3px solid var(--magenta-pieno) !important;
transition:transform 300ms ease-out, background 300ms ease-out; }
.af-voce:hover{ transform:translateY(-4px); background:#232634 !important; }
/* la terza non ha una cifra: e' un'altra cosa, e si vede dalla forma */
.af-voce.aperta.e-con{ background:transparent !important;
border:1px solid rgba(255,255,255,.22) !important; border-top:3px solid #CFCBD6 !important; }
.af-voce.aperta:hover{ background:rgba(255,255,255,.04) !important; }
.af-voce .fm{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:21px; font-weight:600;
color:#FFFFFF !important; letter-spacing:.02em; margin-bottom:6px !important; }
.af-voce .du{ font-size:14px; color:#CFCBD6 !important; margin-bottom:22px !important; }
.af-voce .pz{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:54px; font-weight:700;
color:var(--magenta-notte) !important; line-height:1; letter-spacing:-0.01em;
margin-bottom:14px !important; }
.af-voce .pz-piccolo{ font-size:30px !important; color:#FFFFFF !important; }
.af-voce .inc{ font-size:15px; color:#E4E1E8 !important; line-height:1.55;
border-top:1px solid rgba(255,255,255,.14); padding-top:14px !important; width:100%; }.af-prezzo-piede.e-con{ display:flex !important; flex-direction:row !important;
align-items:center !important; justify-content:space-between !important;
gap:28px !important; flex-wrap:wrap !important; margin-top:40px !important;
border-top:1px solid rgba(255,255,255,.14) !important; padding-top:28px !important; }
.af-nota{ font-size:16px; color:#CFCBD6 !important; max-width:64ch; line-height:1.6; }
/* un contenitore col tag dell'ancora nasce width:100% e si prende tutta la riga: senza
width:auto il bottone finiva largo 755px sotto la nota invece di starle
accanto. E' la parallela gemella di quella del burger e dello shortcode. */
.af-btn-chiaro.e-con{ background:#FFFFFF !important; padding:16px 30px !important;
display:inline-flex !important; align-items:center !important; justify-content:center !important;
flex:0 0 auto !important; width:auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.af-btn-chiaro span{ color:var(--inchiostro) !important; font-size:14px; font-weight:700;
letter-spacing:.1em; text-transform:uppercase; }
.af-btn-chiaro:hover{ background:var(--magenta-notte) !important; transform:translateY(-2px); }/* =================== 1024 =================== */
@media (max-width:1024px){
.af-hero-wrap.e-con{ grid-template-columns:1fr !important; gap:40px !important;
padding:64px 32px !important; }
.af-h1{ font-size:52px !important; }
.af-nav ul.nav-ul{ gap:20px !important; }
.af-prezzo-wrap.e-con{ padding:72px 32px !important; }
.af-h2{ font-size:38px !important; }
/* due schede sopra e la terza sotto a tutta riga: resta chiaro che la
permanente e' un'altra cosa, senza schiacciare le cifre */
.af-listino.e-con{ grid-template-columns:1fr 1fr !important; }
.af-voce.aperta.e-con{ grid-column:1 / -1 !important; }
}
/* =================== 900: si passa al burger =================== */
@media (max-width:900px){
.af-nav.e-con{ display:none !important; }
.af-burger{ display:flex; }
.af-header.e-con{ padding:14px 20px !important; }
.af-htel.e-con{ display:none !important; }
}
/* =================== 600 ===================
BOCCIATURA del responsabile sul mobile: margini da sistemare, e gli elementi da
centrare invece che allineati a sinistra. Qui il margine di gronda e' UNO
(22px) e vale per ogni fascia, e tutta la colonna del testo e' centrata. */
@media (max-width:600px){
.af-hero-wrap.e-con{ padding:36px 22px 40px !important; gap:30px !important; }
.af-hero-testo.e-con{ align-items:center !important; text-align:center !important; }
.af-h1{ font-size:38px !important; max-width:none; text-align:center !important; }
.af-sub{ font-size:18px; text-align:center !important; margin-bottom:28px !important; }
/* il badge andava su due righe alte e sbilanciate (57px per una riga di
etichetta): a 375 si stringe la spaziatura invece di accorciare il testo,
che dice una cosa vera e serve intera */
.af-badge.e-con{ margin-bottom:22px !important; justify-content:center !important;
padding:7px 14px !important; gap:8px !important; }
.af-badge span.et{ font-size:11px; letter-spacing:.07em; }/* la barra in testa: una riga sola, centrata, senza il "LUN-VEN / 8:00-20:00"
spezzato a meta' che si vedeva prima (il nowrap sugli span lo impedisce) */
.af-topbar.e-con{ padding:9px 22px !important; justify-content:center !important;
text-align:center !important; gap:0 !important; }
.af-topbar .zona{ display:none !important; }
.af-topbar-dx.e-con{ gap:16px !important; justify-content:center !important;
flex-wrap:nowrap !important; }
.af-topbar span{ font-size:12px; letter-spacing:.06em; }.af-header.e-con{ padding:14px 22px !important; }/* a 375 i flex-row coi figli che non si restringono sforano: la CTA va in colonna */
.af-cta.e-con{ flex-direction:column !important; align-items:stretch !important;
width:100% !important; gap:12px !important; margin-bottom:30px !important; }
.af-btn.e-con, .af-btn-tel.e-con{ width:100% !important; justify-content:center !important;
align-items:center !important; }
.af-btn-tel.e-con{ align-items:center !important; padding:14px 26px !important; }.af-prove.e-con{ padding-top:22px !important; gap:16px !important; }
.af-prove > li{ flex:1 1 100% !important; min-width:0 !important;
padding:0 !important; align-items:center !important; text-align:center !important; }
.af-prove .nu{ font-size:26px; }
.af-prove .et{ font-size:14px; }.af-hero-foto figcaption, .af-didascalia{ text-align:center !important; }.af-vai-formato span{ font-size:11.5px; letter-spacing:.04em; }
.af-formati > li{ flex:1 1 100% !important; min-width:0 !important;
border-right:0 !important; border-bottom:1px solid rgba(255,255,255,.12) !important;
padding:18px 22px !important; align-items:center !important; text-align:center !important; }
.af-formati > li:last-child{ border-bottom:0 !important; }.af-prezzo-wrap.e-con{ padding:48px 22px 52px !important; }
.af-prezzo-testa.e-con{ align-items:center !important; text-align:center !important;
margin-bottom:30px !important; }
.af-h2{ font-size:31px !important; text-align:center !important; }
.af-prezzo-sub{ font-size:17px; text-align:center !important; }
.af-listino.e-con{ grid-template-columns:1fr !important; gap:16px !important; }
.af-voce.e-con{ padding:26px 22px 24px !important; align-items:center !important;
text-align:center !important; }
.af-voce .inc{ text-align:center !important; }
.af-prezzo-piede.e-con{ flex-direction:column !important; align-items:stretch !important;
text-align:center !important; gap:22px !important; }
.af-nota{ font-size:15.5px; text-align:center !important; }
.af-btn-chiaro.e-con{ width:100% !important; justify-content:center !important; }/* i link lunghi non si spezzano da soli e sfondano la pagina */
body[class*="elementor-page"] a, body[class*="elementor-page"] p{ overflow-wrap:anywhere; }
}/* ============ impianto comune delle sezioni chiare ============ */
.af-sez.e-con{ display:block !important; }
.af-sez-wrap.e-con{ display:flex !important; flex-direction:column !important;
max-width:1200px !important; margin:0 auto !important; padding:104px 40px !important;
gap:0 !important; }
.af-sez.chiara.e-con{ background:var(--carta) !important; }
.af-sez.alta.e-con{ background:var(--superficie) !important; }
.af-sez.scura.e-con{ background:var(--notte) !important; }
.af-testa.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; margin-bottom:44px !important;
max-width:76ch !important; }
.af-occhiello-scuro{ font-size:12.5px !important; letter-spacing:.22em !important;
text-transform:uppercase !important; color:var(--magenta) !important;
font-weight:600 !important; margin-bottom:18px !important; }
.af-h2-scuro{ font-size:44px !important; color:var(--inchiostro) !important;
margin-bottom:18px !important; }
.af-intro{ font-size:19px; color:var(--secondario) !important; line-height:1.6; max-width:66ch; }
.af-intro b{ color:var(--inchiostro); font-weight:600; }
.af-sez.scura .af-h2-scuro{ color:#FFFFFF !important; }
.af-sez.scura .af-occhiello-scuro{ color:var(--magenta-notte) !important; }
.af-sez.scura .af-intro{ color:#CFCBD6 !important; }
/* ⚠️ `af-elenco` e' nato per il fondo chiaro: dentro una sezione scura il suo grigio
(#3A3742) fa 1,55 di contrasto. Misurato sul calendario il 2 set. Le varianti scure
si dichiarano qui una volta, o ogni pagina rifa' lo stesso errore. */
/* ⚠️ Simmetrico e speculare: `af-nota` e' nata per il fondo SCURO (#CFCBD6) e usata
su una sezione chiara fa 1,38 di contrasto. Misurato su chi-siamo il 2 set. Le due
varianti si dichiarano qui una volta: una classe di testo deve funzionare su
entrambi i fondi, o diventa una trappola per la pagina dopo. */
.af-sez.chiara .af-nota, .af-sez.alta .af-nota{ color:#3A3742 !important; }
.af-sez.chiara .af-nota b, .af-sez.alta .af-nota b{ color:var(--inchiostro) !important; }
.af-sez.scura .af-elenco .vv{ color:#CFCBD6 !important; }
.af-sez.scura .af-elenco .vv b{ color:#FFFFFF !important; }
.af-sez.scura .af-elenco .seg{ color:var(--magenta-notte) !important; }
.af-sez.scura .af-elenco.e-con{ border-top-color:rgba(255,255,255,.18) !important; }
.af-sez.scura .af-intro b{ color:#FFFFFF; }/* ============ §3 come si compra: quattro passi numerati ============ */
.af-passi.e-con{ display:grid !important; grid-template-columns:repeat(4,1fr) !important;
column-gap:56px !important; row-gap:0 !important; list-style:none !important;
border-top:1px solid var(--riga) !important; }
/* ⛔ STORIA DI QUESTO BLOCCO, perche' non lo si rifaccia una terza volta.
Prima il divisorio era un BORDO DESTRO della colonna: per non incollarci il testo
serviva un rientro, ma solo alle voci che avevano un filo a sinistra. Cosi' il
primo passo restava a filo e gli altri rientrati, e i quattro titoli cadevano su
verticali diverse (segnalato dal responsabile il 3 set). Ora il filo e' uno
PSEUDO-ELEMENTO che sta in mezzo al vuoto fra le colonne: ogni passo comincia sul
filo della sua colonna, rientro zero per tutti, e i titoli sono allineati. */
.af-passo.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important;
padding:30px 0 32px !important; position:relative !important; }
.af-passi > li.af-passo + li.af-passo::before{ content:"" !important;
position:absolute !important; left:-28px !important; top:30px !important;
bottom:32px !important; width:1px !important;
background:var(--riga) !important; }
.af-passo .nn{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:15px; font-weight:600;
color:var(--magenta) !important; letter-spacing:.16em; margin-bottom:14px !important; }
.af-passo .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:21px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:9px !important; line-height:1.15; }
.af-passo .dd{ font-size:15.5px; color:#3A3742 !important; line-height:1.55; }/* ============ §4 i formati: due grandi con foto, sette compatti ============ */
.af-formati-grandi.e-con{ display:grid !important;
grid-template-columns:1fr 1fr !important; gap:28px !important; margin-bottom:28px !important;
list-style:none !important; }
.af-scheda.e-con{ display:flex !important; flex-direction:column !important;
background:var(--superficie) !important; border:1px solid var(--riga) !important;
gap:0 !important; overflow:hidden !important;
transition:transform 300ms ease-out, box-shadow 300ms ease-out; }
.af-scheda:hover{ transform:translateY(-4px);
box-shadow:0 25px 50px -12px rgba(23,22,27,.18); }
.af-scheda img{ display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover;
transition:transform 700ms ease-out; }
.af-scheda:hover img{ transform:scale(1.05); }
.af-scheda-testo.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; padding:26px 28px 28px !important; gap:0 !important;
flex:1 1 auto !important; }
.af-scheda .fm{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:23px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:4px !important; }
.af-scheda .ms{ font-size:14px; color:var(--magenta) !important; font-weight:600;
letter-spacing:.06em; margin-bottom:12px !important; }
.af-scheda .dd{ font-size:16px; color:#3A3742 !important; line-height:1.55; }.af-formati-lista.e-con{ display:grid !important;
grid-template-columns:repeat(4,1fr) !important; gap:1px !important;
background:var(--riga) !important; border:1px solid var(--riga) !important;
list-style:none !important; }
/* sette schede in una griglia da quattro lasciano una cella vuota nell'ultima
riga, e il buco si vede (fondo grigio dove non c'e' niente). L'ultima si
prende due colonne e la riga si chiude. */
/* lo span serve SOLO quando le colonne sono piu' di una: su una colonna sola
genera una seconda colonna implicita, ed e' cosi' che la sezione degli
impianti si spaccava sul telefono (una scheda larghissima e una a fisarmonica) */
.af-formati-lista > li:last-child{ grid-column:span 2; }
.af-mini.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:var(--carta) !important;
padding:22px 22px 24px !important; gap:0 !important;
transition:background 300ms ease-out; }
.af-mini:hover{ background:var(--superficie) !important; }
.af-mini .fm{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:18px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:3px !important; }
.af-mini .ms{ font-size:13.5px; color:var(--magenta) !important; font-weight:600;
margin-bottom:9px !important; }
.af-mini .dd{ font-size:14.5px; color:#3A3742 !important; line-height:1.5; }/* ============ §5 permanente o temporanea: due colonne a confronto ============ */
.af-confronto.e-con{ display:grid !important; grid-template-columns:1fr 1fr !important;
gap:0 !important; list-style:none !important; border:1px solid var(--riga) !important; }
.af-colonna.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; padding:36px 34px 38px !important; gap:0 !important;
background:var(--superficie) !important; }
.af-colonna.seconda.e-con{ background:var(--carta) !important;
border-left:1px solid var(--riga) !important; }
.af-colonna .durata{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:15px;
font-weight:600; letter-spacing:.14em; text-transform:uppercase;
color:var(--magenta) !important; margin-bottom:12px !important; }
.af-colonna .h3{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:27px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:14px !important; line-height:1.1; }
.af-colonna .dd{ font-size:16.5px; color:#3A3742 !important; line-height:1.6;
margin-bottom:20px !important; }
.af-elenco.e-con{ display:flex !important; flex-direction:column !important;
gap:9px !important; list-style:none !important; width:100% !important;
border-top:1px solid var(--riga) !important; padding-top:18px !important; }
.af-elenco > li{ display:flex !important; flex-direction:row !important;
align-items:flex-start !important; gap:10px !important; }
.af-elenco .seg{ color:var(--magenta) !important; font-weight:700; flex:0 0 auto; }
.af-elenco .vv{ font-size:15.5px; color:#3A3742 !important; line-height:1.5; }/* ============ §6 il calendario delle quattordicine ============ */
/* 26 date in una griglia a 8 colonne lasciano sei celle vuote nell'ultima riga:
col fondo sul CONTENITORE quel vuoto si vedeva come un blocco grigio. Il fondo
sta sulle celle, e le linee di separazione le fanno i loro bordi. */
.af-cal.e-con{ display:grid !important;
grid-template-columns:repeat(auto-fill, minmax(158px, 1fr)) !important;
gap:0 !important; background:transparent !important;
border-top:1px solid var(--riga) !important;
border-left:1px solid var(--riga) !important; list-style:none !important; }
/* «troppo uso del colore nero»: il calendario era la terza fascia scura di
fila. Passa su carta, e il nero resta dove pesa: il prezzo (la firma), il
preventivo e il piede. */
.af-quind.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:var(--superficie) !important;
padding:14px 16px 15px !important; gap:2px !important;
border-right:1px solid var(--riga) !important;
border-bottom:1px solid var(--riga) !important;
transition:background 300ms ease-out; }
/* ⛔ qui c'erano DUE hover: quello nuovo (carta) e quello della versione scura
di prima, rimasto sotto. A parita' di specificita' vince l'ultimo scritto,
quindi la cella diventava nera col testo scuro sopra: illeggibile. Una
regola sostituita va TOLTA, non solo riscritta piu' su. */
.af-quind:hover{ background:#FFFFFF !important; border-color:var(--magenta) !important; }
.af-quind .nq{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:13px; font-weight:600;
color:var(--magenta) !important; letter-spacing:.1em; }
.af-quind .dt{ font-size:15px; color:var(--inchiostro) !important; font-weight:600; }
.af-cal-nota{ margin-top:20px !important; font-size:15px; color:#3A3742 !important; }/* ============ §7 le zone, con la foto a fianco ============ */
/* le due colonne partono dalla stessa riga: col centraggio la foto scendeva a
meta' di una colonna molto alta e sembrava scollata dal testo */
.af-duecol.e-con{ display:grid !important;
grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) !important;
gap:56px !important; align-items:start !important; }
.af-duecol > *{ min-width:0 !important; }
/* ⛔ il colpevole vero delle pillole a colonna: `.af-zone-testo` non aveva
regole, quindi ereditava il contenitore atomic di serie, che centra i figli
invece di allargarli. Risultato misurato: l'elenco dei comuni largo 137px
piantato a x=517 in mezzo al testo. Ogni contenitore che deve impaginare
vuole la sua parallela: qui colonna, allineata a sinistra, a tutta larghezza. */
.af-zone-testo.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; width:100% !important; gap:0 !important; }
.af-zone-testo > *{ width:100% !important; }
.af-zone-foto.e-con{ display:block !important; width:100% !important; margin:0 !important; }
.af-duecol img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
/* ⛔ ROTTO E MISURATO (il responsabile: «le celle rompono tutto il layout»): il
contenitore delle pillole nasceva largo 137px invece di 614, quindi ogni
comune finiva su una riga sua, in una colonna stretta in mezzo al testo.
Un ul dentro un flex non si allarga da solo: gli serve width:100%. */
.af-zone.e-con{ display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
gap:9px !important; list-style:none !important; margin-top:26px !important;
width:100% !important; }
/* ⛔ le pillole finivano una per riga: un contenitore nasce width:100% e nel
wrap si prende tutta la riga da solo. `width:auto` + `flex:0 0 auto` e' la
stessa parallela gia' pagata sul bottone del listino e sul burger. */
.af-zone > li{ display:inline-flex !important; background:var(--superficie) !important;
border:1px solid var(--riga) !important; padding:8px 15px !important;
width:auto !important; flex:0 0 auto !important; max-width:100% !important;
transition:background 300ms ease-out, border-color 300ms ease-out; }
.af-zone .zz{ min-width:0; overflow-wrap:anywhere; }
.af-zone > li:hover{ background:#FFFFFF !important; border-color:var(--magenta) !important; }
.af-zone .zz{ font-size:14.5px; color:#3A3742 !important; font-weight:600; }/* ============ §8 le regole: tre riquadri con la norma ============ */
.af-regole.e-con{ display:grid !important; grid-template-columns:repeat(3,1fr) !important;
gap:24px !important; list-style:none !important; }
.af-regola.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:var(--superficie) !important;
border-top:3px solid var(--magenta-pieno) !important; padding:28px 26px 30px !important;
gap:0 !important; }
.af-regola .norma{ font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
color:var(--magenta) !important; font-weight:600; margin-bottom:12px !important; }
.af-regola .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:20px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:10px !important; line-height:1.15; }
.af-regola .dd{ font-size:15.5px; color:#3A3742 !important; line-height:1.55; }/* ============ §9 come lavoriamo: impegni ============ */
.af-impegni.e-con{ display:grid !important; grid-template-columns:repeat(3,1fr) !important;
gap:0 !important; list-style:none !important; }
.af-impegno.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; padding:26px 30px 28px 0 !important; gap:0 !important;
border-top:1px solid var(--riga) !important; margin-right:28px !important; }
.af-impegno .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:19px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:8px !important; }
.af-impegno .dd{ font-size:15.5px; color:#3A3742 !important; line-height:1.55; }/* ============ §10 il preventivo, col form vero ============ */
.af-prev.e-con{ display:grid !important;
grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr) !important;
gap:56px !important; align-items:start !important; }
.af-prev-info.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; }
/* «gli elementi non partono tutti dalla stessa posizione a sinistra»: le
etichette dentro i recapiti stavano a x=50 mentre il testo stava a x=40.
Il padding orizzontale dei widget va azzerato, non compensato. */
.af-prev-info.e-con > *, .af-prev-info .e-con > *{ padding-left:0 !important;
padding-right:0 !important; }
.af-recapito.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:3px !important; margin-top:22px !important;
width:100% !important; padding:18px 0 0 0 !important;
border-top:1px solid rgba(255,255,255,.16) !important; }
.af-recapito > *{ padding-left:0 !important; margin-left:0 !important; }
.af-recapito .et{ font-size:12px; letter-spacing:.16em; text-transform:uppercase;
color:#CFCBD6 !important; font-weight:600; }
.af-recapito .vv{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:24px;
color:#FFFFFF !important; font-weight:600; }
a.af-recapito:hover .vv{ color:var(--magenta-notte) !important; }
.af-form.e-con{ background:var(--superficie) !important; padding:34px 32px 30px !important;
display:block !important; }
.af-form .elementor-widget-shortcode, .af-form .elementor-shortcode{ width:100% !important; }
.af-form-nota{ margin-top:14px !important; font-size:13.5px; color:var(--secondario) !important; }/* ============ §11 le FAQ: details/summary nativi ============ */
.af-faq.e-con{ display:flex !important; flex-direction:column !important; gap:0 !important;
border-top:1px solid var(--riga) !important; }
.af-domanda.e-con{ display:block !important; border-bottom:1px solid var(--riga) !important;
padding:0 !important; }
.af-domanda > summary{ display:flex !important; align-items:center !important;
justify-content:space-between !important; gap:20px !important; cursor:pointer;
padding:22px 4px !important; list-style:none; }
.af-domanda > summary::-webkit-details-marker{ display:none; }
.af-domanda > summary::after{ content:"+"; font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif;
font-size:26px; color:var(--magenta); flex:0 0 auto; line-height:1;
transition:transform 300ms ease-out; }
.af-domanda[open] > summary::after{ transform:rotate(45deg); }
.af-domanda .qq{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:20px; font-weight:600;
color:var(--inchiostro) !important; line-height:1.25; }
.af-domanda .rr{ font-size:16.5px; color:#3A3742 !important; line-height:1.65;
padding:0 4px 24px !important; max-width:82ch; }/* ============ §12 il piede ============ */
.af-piede.e-con{ background:var(--notte) !important; display:block !important; }
.af-piede-wrap.e-con{ display:grid !important;
grid-template-columns:1.4fr 1fr 1fr !important; gap:48px !important;
max-width:1200px !important; margin:0 auto !important; padding:72px 40px 40px !important; }
.af-piede-col.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:0 !important; }
/* il marchio della prima colonna e' 21px, i titoli delle altre 14: partendo
dalla stessa riga le tre colonne sembravano sfalsate. I quattro pixel di
scarto portano i titoli sulla stessa base del marchio. */
.af-piede h2{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:14px !important;
font-weight:600 !important; letter-spacing:.18em !important; text-transform:uppercase;
color:var(--magenta-notte) !important; margin-bottom:18px !important;
padding-top:4px !important; line-height:1.2 !important; }
.af-piede-marchio.e-con{ display:flex !important; flex-direction:row !important;
align-items:center !important; gap:12px !important; margin-bottom:16px !important; }
.af-piede .nome{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:21px; font-weight:600;
color:#FFFFFF !important; text-transform:uppercase; letter-spacing:.02em; }
.af-piede .paglia{ font-size:15.5px; color:#CFCBD6 !important; line-height:1.6;
max-width:46ch; margin-bottom:20px !important; }
/* nel piede il blocco dell'editore aveva addosso la classe del preventivo, che
porta con se' margine e filo sopra: qui serve solo l'etichetta col dato */
.af-piede-editore.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:3px !important; width:100% !important;
padding:16px 0 0 0 !important; margin:0 !important;
border-top:1px solid rgba(255,255,255,.14) !important; }
.af-piede-editore .et{ font-size:12px; letter-spacing:.16em; text-transform:uppercase;
color:var(--magenta-notte) !important; font-weight:600; }
.af-piede-editore > *{ padding-left:0 !important; margin-left:0 !important; }
.af-piede-col > *{ padding-left:0 !important; padding-right:0 !important; }
/* le voci dei contatti uscivano allineate a DESTRA (i contenitori senza
align-items dichiarato prendono quello di serie, e a colonna non e' il filo
sinistro): ogni voce parte dal bordo della sua colonna, come nel resto del
piede. Vale anche per i figli, che nascono a tutta larghezza. */
.af-piede-voci.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; gap:9px !important; list-style:none !important;
width:100% !important; }
.af-piede-voci > li{ display:flex !important; align-items:flex-start !important;
justify-content:flex-start !important; width:100% !important; text-align:left !important; }
.af-piede-voci > li > *{ text-align:left !important; }
.af-piede-voci a span, .af-piede .dato{ text-align:left !important; }
.af-piede-voci a span, .af-piede .dato{ font-size:15px; color:#E4E1E8 !important; }
.af-piede-voci a:hover span{ color:var(--magenta-notte) !important; }
/* i widget dentro i link nascono width:100%, quindi le voci legali si
impilavano una sotto l'altra invece di stare in riga (visto guardando il
fondo pagina). Stessa parallela del bottone e del burger. */
.af-piede-basso > *{ width:auto !important; flex:0 0 auto !important; }
.af-piede-basso.e-con{ display:flex !important; flex-direction:row !important;
flex-wrap:wrap !important; align-items:center !important; gap:10px 26px !important;
max-width:1200px !important; margin:0 auto !important; padding:22px 40px 40px !important;
border-top:1px solid rgba(255,255,255,.14) !important; }
/* il «© 2026» stava 10px piu' in basso delle tre voci legali: e' un testo
sciolto in mezzo a dei link, e senza la stessa altezza di riga si siede
diverso. Stessa line-height per tutti e quattro, e allineamento al centro. */
.af-piede-basso span, .af-piede-basso a span{ font-size:13.5px; color:#CFCBD6 !important;
line-height:1.4 !important; }
.af-piede-basso > *{ display:flex !important; align-items:center !important; }
.af-piede-basso a:hover span{ color:#FFFFFF !important; }/* ⚠️ TOPPA DICHIARATA, non una cura: Table of Contents Plus inietta al render un
riquadro «Indice [Chiudi]» DENTRO la pagina (misurato: #toc_container alto 64px
piantato nell'hero, con un link href="#" che non porta da nessuna parte). Non e'
roba nostra e non si toglie dal tree: l'opzione del plugin non e' in allowlist
sul bridge, quindi l'esclusione della pagina va fatta dal pannello TOC+.
Finche' non e' fatta, qui lo si nasconde. */
#toc_container{ display:none !important; }/* ============ QUELLO CHE LA HOME NON HA (il buco del foglio comune) ============
Briciole, tabella e sorelle non esistono sulla home, quindi le loro regole nel
foglio comune non c'erano: e' il difetto che nasce SOLO costruendo in diretta,
e si chiude aggiungendole alla libreria PRIMA della prima money, non dopo. *//* --- briciole: nascono come e senza parallela si prendono il padding
delle sezioni di contenuto (su un gemello erano alte 291px invece di 51) */
.af-briciole.e-con{ background:var(--superficie) !important;
border-bottom:1px solid var(--riga) !important; display:block !important; }
.af-briciole-wrap.e-con{ display:flex !important; flex-direction:row !important;
flex-wrap:wrap !important; align-items:center !important; gap:9px !important;
max-width:1200px !important; margin:0 auto !important;
padding:14px 40px !important; list-style:none !important; }
.af-briciole-wrap > *{ width:auto !important; flex:0 0 auto !important; }
.af-briciole span{ font-size:13.5px; color:var(--secondario) !important; }
.af-briciole a span{ color:var(--magenta) !important; }
.af-briciole a:hover span{ text-decoration:underline; }
.af-briciole .sep{ color:rgba(23,22,27,.35) !important; }/* --- la tabella del listino: in atomic thead/tbody/tr/th/td sono CONTENITORI
col loro tag, e il display va ridichiarato uno per uno o la tabella esce
come una colonna di parole */
/* ⚠️ `table-layout:auto` distribuisce sul contenuto: la riga piu' lunga della
prima colonna («Parapedonali, stendardi, paline...») se la prendeva tutta,
981px su 1345, e le altre tre finivano a 114px col testo su quattro righe.
Con `fixed` le larghezze le decido io, e le decido una volta sola. */
.af-tab.e-con{ display:table !important; width:100% !important;
table-layout:fixed !important;
border-collapse:collapse !important; background:var(--superficie) !important;
border:1px solid var(--riga) !important; }
.af-tr > .af-td:nth-child(1), .af-tr > .af-th:nth-child(1){ width:34% !important; }
.af-tr > .af-td:nth-child(2), .af-tr > .af-th:nth-child(2){ width:19% !important; }
.af-tr > .af-td:nth-child(3), .af-tr > .af-th:nth-child(3){ width:30% !important; }
.af-tr > .af-td:nth-child(4), .af-tr > .af-th:nth-child(4){ width:17% !important;
text-align:right !important; }
.af-thead.e-con{ display:table-header-group !important; }
.af-tbody.e-con{ display:table-row-group !important; }
.af-tr.e-con{ display:table-row !important; }
.af-th.e-con, .af-td.e-con{ display:table-cell !important;
padding:16px 20px !important; vertical-align:top !important;
border-bottom:1px solid var(--riga) !important; text-align:left !important; }
.af-th.e-con{ background:var(--notte) !important; }
.af-th span{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:13px; font-weight:600;
letter-spacing:.14em; text-transform:uppercase; color:#FFFFFF !important; }
.af-td .vv{ font-size:16px; color:#3A3742 !important; line-height:1.5; }
.af-td .ff{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:18px; font-weight:600;
color:var(--inchiostro) !important; }
.af-td .pp{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:27px; font-weight:700;
color:var(--magenta) !important; line-height:1.1; }
.af-td .pp-piccolo{ font-size:17px !important; color:var(--secondario) !important; }
.af-tr:nth-child(even) .af-td{ background:var(--carta) !important; }
.af-tab-nota{ margin-top:18px !important; font-size:15px; color:#3A3742 !important; }/* --- sorelle: senza il loro layout uscivano impilate a tutta larghezza
(su un gemello una sezione alta 2381px invece di ~450) */
.af-sorelle.e-con{ display:grid !important;
grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) !important;
gap:20px !important; list-style:none !important; }
.af-sorella.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:var(--superficie) !important;
border:1px solid var(--riga) !important; padding:24px 26px 26px !important;
gap:0 !important; width:auto !important;
transition:transform 300ms ease-out, border-color 300ms ease-out; }
.af-sorella:hover{ transform:translateY(-4px); border-color:var(--magenta) !important; }
.af-sorella .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:19px; font-weight:600;
color:var(--inchiostro) !important; margin-bottom:7px !important; }
.af-sorella .dd{ font-size:15px; color:#3A3742 !important; line-height:1.5; }
.af-sorella .vai{ margin-top:12px !important; font-size:13px; font-weight:700;
letter-spacing:.1em; text-transform:uppercase; color:var(--magenta) !important; }/* --- BANNER COOKIE (plugin automa-manager): due cure del 3 set 2026.
Il link «Leggi la privacy» nasce alto 20px, sotto i 24 che servono a un dito, ed
e' l'unico bersaglio piccolo rimasto su OGNI pagina del sito. Il banner non e'
nostro, ma il foglio della pagina viene dopo il suo e vince. */
#bc-cookie-banner .bc-privacy-readmore{ display:inline-block !important;
padding:7px 4px !important; min-height:24px !important; line-height:1.45 !important; }/* --- il rimando all'articolo dentro la scheda di formato (home, 3 set 2026) */
/* ⚠️ due cose chieste dal responsabile il 3 set: i rimandi devono stare sulla STESSA
riga fra loro (quindi in fondo alla scheda, con margin-top:auto, e non subito sotto
un testo che cambia lunghezza da scheda a scheda) e non devono andare a capo
(«la scheda di affissione permanente» si spezzava). Percio' `margin-top:auto`,
`white-space:nowrap` e il testo accorciato in «Scheda: nome». */
.af-vai-formato.e-con{ display:inline-flex !important; width:auto !important;
margin-top:auto !important; padding-top:14px !important; padding-bottom:0 !important;
padding-left:0 !important; padding-right:0 !important; }
.af-vai-formato span{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif;
font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
white-space:nowrap !important;
color:var(--magenta) !important; border-bottom:2px solid var(--magenta) !important;
padding-bottom:3px !important; }
.af-vai-formato:hover span{ color:var(--inchiostro) !important;
border-bottom-color:var(--inchiostro) !important; }/* --- fascia foto a tutta larghezza (le money ne hanno, la home no) */
.af-fascia.e-con{ display:block !important; overflow:hidden !important; }
.af-fascia img{ display:block; width:100%; height:auto; aspect-ratio:21/9;
object-fit:cover; }/* ============ 1024 ============ */
@media (max-width:1024px){
.af-sez-wrap.e-con{ padding:72px 32px !important; }
.af-h2-scuro{ font-size:36px !important; }
/* sotto i 1024 i quattro passi vanno IN COLONNA: due colonne strette rimettevano
i titoli su due verticali diverse, ed e' proprio la cosa segnalata. Uno sotto
l'altro sono tutti sullo stesso filo, e il divisorio torna orizzontale. */
.af-passi.e-con{ grid-template-columns:minmax(0,1fr) !important;
column-gap:0 !important; }
.af-passo.e-con{ padding:24px 0 26px !important;
border-bottom:1px solid var(--riga) !important; }
.af-passo:last-child{ border-bottom:0 !important; }
.af-passi > li.af-passo + li.af-passo::before{ content:none !important; }
.af-formati-lista.e-con{ grid-template-columns:repeat(2,1fr) !important; }
.af-regole.e-con{ grid-template-columns:1fr !important; }
.af-impegni.e-con{ grid-template-columns:1fr 1fr !important; }
/* ⚠️ `1fr` non scende sotto il contenuto minimo dei figli: a 375 le pillole
dei comuni sfondavano la pagina di 35px (scrollWidth 410 su 375). La forma
che si restringe davvero e' minmax(0,1fr), piu' min-width:0 sui figli. */
.af-duecol.e-con, .af-prev.e-con{ grid-template-columns:minmax(0,1fr) !important;
gap:36px !important; }
.af-duecol > *, .af-prev > *{ min-width:0 !important; }
.af-piede-wrap.e-con{ grid-template-columns:1fr 1fr !important; gap:36px !important;
padding:56px 32px 32px !important; }
.af-briciole-wrap.e-con{ padding:12px 32px !important; }
}
/* ============ 600 ============ */
@media (max-width:600px){
.af-sez-wrap.e-con{ padding:48px 22px 52px !important; }
.af-testa.e-con{ align-items:center !important; text-align:center !important;
margin-bottom:28px !important; }
.af-h2-scuro{ font-size:30px !important; text-align:center !important; }
.af-intro{ font-size:17px; text-align:center !important; }
.af-passi.e-con, .af-formati-grandi.e-con, .af-formati-lista.e-con,
.af-confronto.e-con, .af-regole.e-con, .af-impegni.e-con{
grid-template-columns:1fr !important; }
/* su una colonna sola lo span va spento, o nasce una seconda colonna
implicita e la sezione degli impianti si spacca (visto sul telefono) */
.af-formati-lista > li:last-child{ grid-column:auto !important; }
.af-passo.e-con{ border-right:0 !important; border-bottom:1px solid var(--riga) !important;
padding:24px 0 26px !important; align-items:center !important; text-align:center !important; }
.af-passi > li.af-passo + li.af-passo{ padding-left:0 !important; }
.af-passo:last-child{ border-bottom:0 !important; }
.af-scheda-testo.e-con, .af-mini.e-con, .af-colonna.e-con, .af-regola.e-con,
.af-impegno.e-con{ align-items:center !important; text-align:center !important; }
.af-colonna.seconda.e-con{ border-left:0 !important;
border-top:1px solid var(--riga) !important; }
/* «i dot stanno uno di dove gli pare»: centrando OGNI riga, il pallino si
sposta con la lunghezza del testo. L'elenco resta allineato a sinistra
dentro una colonna centrata, cosi' i pallini stanno tutti sullo stesso filo. */
.af-elenco.e-con{ align-items:flex-start !important; width:100% !important;
max-width:31ch !important; margin:0 auto !important; }
.af-elenco > li{ justify-content:flex-start !important; text-align:left !important; }
.af-elenco .vv{ text-align:left !important; }
.af-impegno.e-con{ margin-right:0 !important; padding:22px 0 24px !important; }
.af-cal.e-con{ grid-template-columns:1fr 1fr !important; }
.af-zone.e-con{ justify-content:center !important; }
.af-form.e-con{ padding:24px 20px 22px !important; }
.af-domanda .qq{ font-size:18px; }
.af-domanda > summary{ padding:18px 2px !important; }
.af-piede-wrap.e-con{ grid-template-columns:1fr !important; gap:32px !important;
padding:44px 22px 26px !important; }
.af-piede-basso.e-con{ padding:20px 22px 34px !important; }
.af-briciole-wrap.e-con{ padding:11px 22px !important; }
/* la tabella su 375 non si legge a colonne: diventa un elenco di schede, e
ogni cella si porta dietro la sua etichetta col ::before */
.af-tab.e-con, .af-thead.e-con, .af-tbody.e-con, .af-tr.e-con,
.af-th.e-con, .af-td.e-con{ display:block !important; }
.af-thead.e-con{ display:none !important; }
.af-tr.e-con{ border-bottom:1px solid var(--riga) !important; padding:6px 0 12px !important; }
.af-td.e-con{ border-bottom:0 !important; padding:6px 20px !important;
text-align:center !important; }
.af-tr:nth-child(even) .af-td{ background:transparent !important; }
/* a colonna sola le larghezze fisse non servono piu' */
/* ⚠️ le larghezze in percentuale delle colonne sono dichiarate con
`:nth-child(N)` (specificita' 0,3,0): un reset scritto senza nth-child
(0,2,0) PERDE, e a colonna sola le celle restavano larghe il 30 per cento
della riga. Misurato il 3 set 2026 sulla tabella degli impianti a 390:
cella da 91px dentro una riga da 304. Si resetta con la stessa forma. */
.af-tr > .af-td:nth-child(n), .af-tr > .af-th:nth-child(n){
width:auto !important; text-align:center !important; }
.af-sorelle.e-con{ grid-template-columns:1fr !important; }
.af-sorella.e-con{ align-items:center !important; text-align:center !important; }
.af-fascia img{ aspect-ratio:16/9; }
}/* ============================================================================
MONEY PREZZI — le forme che la home non ha. Scritte con addosso le cure che
la home ha pagato una per una: display dichiarato su OGNI contenitore che
impagina, width:auto sui contenitori-link, minmax(0,1fr) nelle griglie con
min-width:0 sui figli, padding sui DUE lati, e nessun grid-column:span.
============================================================================ *//* --- l'apertura: niente scena, la risposta. E' la differenza dalla home. */
.af-apertura.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; max-width:74ch !important; }
.af-h1-money{ font-family:"Oswald","Arial Narrow",sans-serif !important;
font-size:54px !important; font-weight:700 !important; line-height:1.05 !important;
letter-spacing:-.02em; color:var(--inchiostro) !important; margin-bottom:22px !important;
max-width:20ch; }
.af-risposta{ font-size:21px !important; line-height:1.55 !important;
color:#2C2A33 !important; max-width:62ch; margin-bottom:10px !important; }
.af-risposta b{ color:var(--inchiostro) !important; font-weight:700; }
.af-risposta .cifra{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:26px;
font-weight:700; color:var(--magenta) !important; }
.af-iva{ font-size:15px !important; color:var(--secondario) !important;
margin-bottom:30px !important; }
.af-cta-riga.e-con{ display:flex !important; flex-direction:row !important;
flex-wrap:wrap !important; align-items:center !important; gap:16px !important;
width:auto !important; }
.af-cta-riga > *{ width:auto !important; flex:0 0 auto !important; }/* --- cosa comprende: due elenchi affiancati, uno dice i SI e uno i DIPENDE */
.af-comprende.e-con{ display:grid !important;
grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:34px !important;
align-items:start !important; }
.af-comprende > *{ min-width:0 !important; }
.af-blocco.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:var(--superficie) !important;
border-top:3px solid var(--magenta) !important; padding:26px 28px 28px !important; }
.af-blocco.dipende.e-con{ border-top-color:var(--riga) !important;
background:var(--carta) !important; }
.af-blocco .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:19px;
font-weight:600; color:var(--inchiostro) !important; margin-bottom:14px !important; }/* --- le cinque leve: righe, non schede (le schede sono la forma della home) */
.af-leve.e-con{ display:flex !important; flex-direction:column !important;
gap:0 !important; list-style:none !important; width:100% !important;
border-top:1px solid var(--riga) !important; }
.af-leva.e-con{ display:grid !important;
grid-template-columns:96px minmax(0,1fr) minmax(0,1.15fr) !important;
gap:24px !important; align-items:start !important;
padding:22px 0 22px !important;
border-bottom:1px solid var(--riga) !important; }
.af-leva > *{ min-width:0 !important; }
.af-leva .dir{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:15px;
font-weight:700; letter-spacing:.06em; color:var(--magenta) !important;
text-transform:uppercase; }
.af-leva .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:20px;
font-weight:600; color:var(--inchiostro) !important; line-height:1.2; }
.af-leva .dd{ font-size:16px; color:#3A3742 !important; line-height:1.55; }/* --- il conto in chiaro: l'aritmetica in vista, su fondo notte */
.af-conto.e-con{ display:grid !important;
grid-template-columns:repeat(3, minmax(0,1fr)) !important; gap:20px !important;
list-style:none !important; }
.af-conto > *{ min-width:0 !important; }
.af-conto-caso.e-con{ display:flex !important; flex-direction:column !important;
align-items:flex-start !important; background:rgba(255,255,255,.05) !important;
border:1px solid rgba(255,255,255,.16) !important;
padding:26px 26px 28px !important; }
.af-conto-caso .cc{ font-size:15px; color:#CFCBD6 !important; line-height:1.5;
margin-bottom:16px !important; min-height:3em; }
.af-conto-caso .op{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:17px;
font-weight:600; color:#FFFFFF !important; letter-spacing:.04em;
margin-bottom:6px !important; }
.af-conto-caso .tot{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:38px;
font-weight:700; color:var(--magenta-notte) !important; line-height:1.05; }
.af-conto-caso .gg{ font-size:14px; color:#CFCBD6 !important; margin-top:6px !important; }/* --- come si paga: righe numerate senza cornice, diverse dai passi della home */
.af-paga.e-con{ display:flex !important; flex-direction:column !important;
gap:18px !important; list-style:none !important; width:100% !important;
max-width:76ch !important; }
.af-paga > li{ display:grid !important;
grid-template-columns:minmax(0,1fr) !important; gap:4px !important; }
.af-paga .tt{ font-family:"Oswald","Oswald fallback","Arial Narrow",sans-serif; font-size:18px;
font-weight:600; color:var(--inchiostro) !important; }
.af-paga .dd{ font-size:16px; color:#3A3742 !important; line-height:1.55; }/* --- LE SCENE DELLE PAGINE INTERNE (3 set 2026) -----------------------------
Nate dalla correzione del responsabile: tre pagine erano senza una sola foto e due
ne avevano una. Sono DUE forme, dichiarate QUI una volta e usate da tutte le
pagine interne, cosi' una cura vale ovunque (la lezione della cornice: una
regola scritta nel tree di UNA pagina non arriva alle sorelle).
· af-scena-lato : il testo e la scena sulla stessa riga, la foto 3/2 entra
accanto al blocco che spiega. Sotto i 1024 va a colonna, foto in fondo.
· af-figura : la scena dentro la colonna della sezione, con la sua
didascalia. Variante `larga` = 16/9 a tutta colonna.
La fascia a tutta larghezza (21/9) esiste gia' nel guscio e resta la terza forma.
⚠️ La didascalia NON ripete l'alt: l'alt descrive la scena per chi non la vede,
la didascalia dice al lettore PERCHE' sta guardando quella scena li'. */
.af-scena-lato.e-con{ display:grid !important;
grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr) !important;
gap:46px !important; align-items:start !important; width:100% !important; }
.af-scena-lato > *{ min-width:0 !important; }
.af-figura.e-con{ display:block !important; margin:0 !important; width:100% !important; }
.af-figura img{ display:block; width:100%; height:auto; aspect-ratio:3/2;
object-fit:cover; }
.af-figura.larga img{ aspect-ratio:16/9; }
/* ⚠️ MISURATO il 3 set: a 1440 la scena in sezione usciva 1360x765, cioe' piu' alta
dello schermo, e mangiava la sezione che doveva accompagnare. La banda a tutta
larghezza in questo sito e' UNA SOLA (.af-fascia): la scena dentro la sezione si
ferma a 900 e resta un accompagnamento. Il margine sopra c'e' perche' af-sez-wrap
ha gap:0 e ogni blocco si porta il suo spazio. */
.af-figura.larga.e-con{ max-width:900px !important; margin-top:34px !important; }
.af-didascalia{ font-size:14.5px !important; line-height:1.5 !important;
color:var(--secondario) !important; margin-top:12px !important;
padding-left:14px !important; border-left:2px solid var(--magenta) !important;
max-width:62ch; }
/* la variante scura si dichiara qui, una volta: il grigio della didascalia sul
fondo notte faceva 2,6 (e' lo stesso difetto gia' chiuso per af-elenco) */
.af-sez.scura .af-didascalia{ color:#CFCBD6 !important;
border-left-color:var(--magenta-notte) !important; }@media (max-width:1024px){
/* le scene affiancate vanno a colonna: a 768 due colonne da ~330px
schiacciavano la foto sotto il suo rapporto e il testo a 28ch */
.af-scena-lato.e-con{ grid-template-columns:minmax(0,1fr) !important;
gap:30px !important; }
.af-h1-money{ font-size:42px !important; }
.af-leva.e-con{ grid-template-columns:96px minmax(0,1fr) !important; }
.af-leva .dd{ grid-column:1 / -1 !important; }
.af-conto.e-con{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
.af-comprende.e-con{ gap:24px !important; }
}
@media (max-width:600px){
.af-figura img{ aspect-ratio:3/2; }
.af-figura.larga img{ aspect-ratio:3/2; }
/* ⚠️ il blocco 600 di CSS_SEZIONI centra ogni figcaption per via della hero: sulla
didascalia, che ha il filo magenta a sinistra, il centrato sembrava un errore. */
.af-didascalia{ font-size:14px !important; text-align:left !important; }
.af-h1-money{ font-size:33px !important; max-width:none; }
.af-risposta{ font-size:18.5px !important; }
.af-apertura.e-con{ align-items:flex-start !important; }
.af-cta-riga.e-con{ flex-direction:column !important; align-items:stretch !important;
width:100% !important; }
.af-cta-riga > *{ width:100% !important; }
.af-comprende.e-con{ grid-template-columns:minmax(0,1fr) !important; }
.af-leva.e-con{ grid-template-columns:minmax(0,1fr) !important; gap:8px !important; }
.af-leva .dd{ grid-column:auto !important; }
.af-conto.e-con{ grid-template-columns:minmax(0,1fr) !important; }
.af-conto-caso .cc{ min-height:0 !important; }
}/* ============ PREVENZIONE COMUNE (guscio_comune.py) ============
Difetti che il crawl gemello prende su OGNI pagina, e che si chiudono una volta
sola nella cornice. Ogni riga qui dentro ha un finding dietro, misurato. *//* --- TOCCABILI SOTTO 24x24 (WCAG 2.5.8, ed e' un finding del crawl).
Misurato il 2 set su affissioni: il link email era 158x20 e la briciola «Home»
34x22. La cura non e' ingrandire il testo, che sposterebbe il disegno: e' dare
AREA al bersaglio con padding verticale e min-height, lasciando il font com'e'.
Si esclude cio' che non e' nostro (il banner cookie ha le sue classi bc-*). */
a:not(.bc-privacy-readmore):not([class*="bc-"]),
button:not([class*="bc-"]),
summary{ min-height:24px; }
/* i link INLINE dentro un paragrafo non si toccano: allargarli spezzerebbe la riga.
Si allargano solo quelli che stanno per conto loro (blocco, flex o griglia). */
a:not([class*="bc-"]):where(.e-con, [class*="af-"], [class*="wca-"]){
display:flex; align-items:center; }
/* i bersagli piccoli e isolati (email, telefono, briciole, voci di piede) prendono
l'area con lo pseudo-elemento, che NON sposta il testo di una virgola */
.wca-tocc{ position:relative; }
.wca-tocc::after{ content:""; position:absolute; left:0; right:0; top:50%;
transform:translateY(-50%); height:24px; }/* --- LINK DENTRO IL TESTO: colore ereditato e area toccabile.
Misurato il 2 set: i link inline aggiunti nei paragrafi uscivano a 1,38 di
contrasto (il colore glielo dava il tema, su un fondo che non e' il suo) e alti
21px. `color:inherit` e' la cura che vale ovunque: il testo attorno ha gia' il
contrasto verificato, quindi il link ce l'ha per costruzione, su fondo chiaro
come su fondo scuro. La sottolineatura resta, o il link non si distingue piu'.
Il padding verticale non sposta la riga ma allarga il rettangolo del bersaglio. */
/* ⚠️ `!important` su padding e decorazione non e' esagerazione: senza, il reset di
piattaforma li azzera e il link resta alto 21px e senza sottolineatura (misurato
sul vivo il 2 set, prima con la regola debole e poi con questa). */
/* ⚠️ `label a` e `.campo a` sono qui dal 7 set 2026, e il perche' e' il buco del
foglio comune: la cura sopra esisteva gia' da cinque giorni, ma i link dentro le
spunte del modulo (l'informativa privacy e la policy) non stanno in un p, in uno
span, in un li ne' in un td: stanno dentro una , che nell'elenco non
c'era. Risultato misurato con Lighthouse mobile su affissioni.roma.it: magenta
#a8005e sul testo #17161b, 2,42:1 contro il 3:1 minimo, e nessuna sottolineatura
(axe link-in-text-block, uno dei due soli falliti di accessibilita').
La lezione vale piu' della riga: una cura in libreria non e' una cura applicata
finche' non si e' cercato il suo selettore nell'HTML SERVITO della pagina. */
p a, span a, li a, td a, label a, .campo a{ color:inherit !important;
text-decoration:underline !important; text-underline-offset:.18em;
text-decoration-thickness:.06em; padding-block:0.2em !important; }
p a:hover, span a:hover, li a:hover, td a:hover,
label a:hover, .campo a:hover{ text-decoration-thickness:.12em; }/* --- PAROLE LUNGHE CHE SFORANO A 390 (finding «sfora in larghezza su mobile»).
Un indirizzo email o un numero scritti in un font grande non si spezzano da soli:
a 390px il testo esce dal viewport e la pagina scorre in orizzontale. Misurato sui
contatti: l'email in Oswald 27px arrivava a 463px su 390.
`anywhere` e non `break-word`: break-word spezza solo se la parola e' l'unica cosa
nella riga, anywhere spezza sempre quando serve. */
main a, main span, main p, main td{ overflow-wrap:anywhere; }
main .e-con{ max-width:100% !important; }
/* un bottone con `flex:0 0 auto` non si restringe: se l'etichetta e' lunga esce dallo
schermo. Il tetto glielo mette il contenitore, non il contenuto. */
main a[class*="btn"]{ min-width:0 !important; max-width:100% !important; }/* --- il contenuto principale: il tag e' `main`, qui solo la forma neutra.
⚠️ `main.e-con` va nel reset dei contenitori del sito insieme a section/div/a:
senza, si tiene il padding di serie di Elementor (10px), che e' lo stesso difetto
gia' pagato sui contenitori-link (58px di altezza spuria nel piede). */
main.e-con{ padding:0 !important; }
main.wca-main{ display:block !important; }