@font-face{font-family:'Schibsted Grotesk';src:url('https://autoscuola.roma.it/wp-content/uploads/wca-bridge-managed/fonts/schibsted-grotesk.woff2') format('woff2');font-weight:400 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:'Figtree';src:url('https://autoscuola.roma.it/wp-content/uploads/wca-bridge-managed/fonts/figtree.woff2') format('woff2');font-weight:300 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:'Schibsted Grotesk fallback';src:local('Arial'),local('Liberation Sans'),local('Roboto'),local('Helvetica Neue'),local('Helvetica'),local('DejaVu Sans');size-adjust:100.00%;ascent-override:100.0%;descent-override:25.0%;line-gap-override:0.0%;font-display:swap}@font-face{font-family:'Figtree fallback';src:local('Arial'),local('Liberation Sans'),local('Roboto'),local('Helvetica Neue'),local('Helvetica'),local('DejaVu Sans');size-adjust:100.00%;ascent-override:100.0%;descent-override:25.0%;line-gap-override:0.0%;font-display:swap}:root{
--carta:#F4F3F1; --superficie:#FBFAF9; --inchiostro:#1B1E23; --secondario:#5C626B;
--notte:#23262B; --accento:#A33A52; --accento-pieno:#BF3F59; --accento-notte:#F08CA0;
--riga:rgba(27,30,35,.14);
}/* =================== base =================== */
/* body[class*="elementor-page"]: vale su pagine, articoli E archivi (body.page no, body.elementor-page no) */
body[class*="elementor-page"]{ background:var(--carta); color:var(--inchiostro);
font-family:"Figtree","Figtree 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:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",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; }
/* reset dei contenitori: elenca ANCHE a, details, summary (i contenitori-link si tenevano 10px di serie) */
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, main.e-con, ol.e-con, figcaption.e-con{ padding:0 !important; }
/* figcaption dal 17 set 2026 (sartoria.milano.it): la didascalia contenitore rientrava di 10px dal filo della foto */
/* ol nel reset dal 17 set 2026 (falegnameria.milano.it): un elenco numerato atomic teneva 10px di rientro */
ul.e-con, ol.e-con{ list-style:none !important; margin:0 !important; }
body[class*="elementor-page"] a{ text-decoration:none; }
/* il widget stili e' alto 0 ma ha il margine di serie: collassa e diventa vuoto SOPRA la pagina */
body[class*="elementor-page"] .elementor-widget-html{ margin:0 !important; }
/* il reset di Elementor mette overflow:clip sul body e nessuno scroll programmatico passa (ancore) */
body[class*="elementor-page"]{ overflow:visible !important; }/* =================== barra in testa =================== */
/* porta solo cio' che NON sta altrove: perimetro, orari, email (il telefono e' nell'header) */
.wca-topbar.e-con{ background:var(--superficie) !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 var(--riga) !important; }
.wca-topbar span{ color:var(--secondario) !important; font-size:13px; letter-spacing:.08em;
text-transform:uppercase; font-weight:600; white-space:nowrap; }
.wca-topbar-dx.e-con{ display:flex !important; flex-direction:row !important; align-items:center !important;
gap:22px !important; width:auto !important; }
.wca-topbar-mail.e-con{ display:inline-flex !important; align-items:center !important; }
.wca-topbar-mail:hover span{ color:var(--accento) !important; }/* =================== header =================== */
.wca-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; }
.wca-header > *{ flex:0 0 auto !important; width:auto !important; min-width:0 !important; }
.wca-marchio.e-con{ display:flex !important; align-items:center !important; gap:12px !important; }
/* il marchio e' un widget e-svg: misura alla classe, niente .e-con nel selettore */
.wca-sigla{ width:44px !important; height:44px !important; flex:0 0 auto !important; display:block !important; line-height:0 !important; }
.wca-sigla svg{ display:block !important; width:100% !important; height:100% !important; }
.wca-nome.e-con{ display:flex !important; flex-direction:column !important; gap:1px !important; }
.wca-nome .n{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-weight:600; font-size:20px; color:var(--inchiostro) !important;
letter-spacing:.01em; line-height:1.1; text-transform:uppercase; }
.wca-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 */
.wca-nav.e-con{ display:flex !important; align-items:center !important; width:auto !important; }
.wca-nav .elementor-widget-shortcode{ width:auto !important; }
.wca-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; }
.wca-nav ul.nav-ul li{ margin:0 !important; }
.wca-nav ul.nav-ul a{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",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; }
.wca-nav ul.nav-ul a:hover{ color:var(--accento) !important; border-bottom-color:var(--accento) !important; }
.wca-header-dx.e-con{ display:flex !important; flex-direction:row !important; align-items:center !important; gap:12px !important; }
/* il burger e' un widget html: il wrapper nasce width:0 e il bottone esce dal contenitore */
.wca-header-dx > *{ flex:0 0 auto !important; width:auto !important; display:flex !important; align-items:center !important; }
.wca-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; }
.wca-htel span{ color:#FFFFFF !important; font-size:15px; font-weight:700; letter-spacing:.02em; }
.wca-htel:hover{ background:var(--accento-pieno) !important; transform:translateY(-2px); }
.wca-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; }
.wca-burger span{ display:block; width:26px; height:2.5px; background:var(--accento-pieno);
transition:transform 300ms ease-out, opacity 300ms ease-out; }
.wca-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.wca-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.wca-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
/* il menu mobile vive DENTRO l'header ma FUORI dal flusso della riga (da flex item si apriva fuori schermo) */
.wca-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(0,0,0,.28) !important; }
.wca-mobile.aperto{ display:flex !important; }
.wca-mobile ul.nav-ul{ display:flex !important; flex-direction:column !important; list-style:none !important;
margin:0 !important; padding:0 !important; width:100% !important; }
.wca-mobile ul.nav-ul li{ border-bottom:1px solid var(--riga); }
.wca-mobile ul.nav-ul li:last-child{ border-bottom:0; }
.wca-mobile .elementor-widget-shortcode, .wca-mobile .elementor-shortcode{ width:100% !important; display:block !important; }
.wca-mobile ul.nav-ul a{ display:block; padding:16px 2px; font-size:18px; font-weight:600;
color:var(--inchiostro) !important; text-align:center !important; }
.wca-mobile ul.nav-ul a:hover{ color:var(--accento) !important; }
.wca-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: si vince alzando la specificita' (tag + classe) */
a.wca-mobile-tel span.et{ color:#CFCBD6 !important; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; }
a.wca-mobile-tel span.nu{ color:#FFFFFF !important; font-size:23px; font-weight:700; font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; }/* =================== bottoni (pill o sharp, mai 6px di raggio) =================== */
.wca-btn.e-con{ background:var(--accento-pieno) !important; padding:16px 32px !important;
display:inline-flex !important; align-items:center !important; flex:0 0 auto !important; width:auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.wca-btn span{ color:#FFFFFF !important; font-size:14px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.wca-btn:hover{ transform:translateY(-2px); filter:brightness(.92); }
.wca-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; flex:0 0 auto !important; width:auto !important;
transition:background 300ms ease-out, transform 300ms ease-out; }
.wca-btn-tel .et{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--secondario) !important; }
.wca-btn-tel .nu{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:23px; font-weight:700; color:var(--inchiostro) !important; }
.wca-btn-tel:hover{ background:var(--superficie) !important; transform:translateY(-2px); }
.wca-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; }
.wca-cta-riga > *{ width:auto !important; flex:0 0 auto !important; }/* =================== testata lunga (18 set 2026, misurata sul sito) ===================
Sotto 1600 il sottotitolo del marchio lascia il posto, margini e voci si stringono; sotto
1420px la testata non ci sta comunque e si passa al burger, come a 900. */
@media (max-width:1600px){
.wca-nome .q{ display:none !important; }
.wca-header.e-con{ padding-left:max(40px, calc((100% - 1360px) / 2)) !important;
padding-right:max(40px, calc((100% - 1360px) / 2)) !important; }
.wca-nav ul.nav-ul{ gap:22px !important; }
}
@media (max-width:1420px){
.wca-nav.e-con{ display:none !important; }
.wca-burger{ display:flex; }
.wca-htel.e-con{ display:none !important; }
}
/* =================== 900: si passa al burger =================== */
/* ⚠️ 900 e' la soglia di un menu corto. Si MISURA sul menu del sito: la testata intera (marchio, voci,
telefono) deve stare nella larghezza, o fra la soglia e quella misura il telefono esce dalla pagina
(falegnameria.milano.it, sei voci: servivano 1280px, 17 set 2026). Si prova a 1024, non solo a 768 e 1440. */
@media (max-width:900px){
.wca-nav.e-con{ display:none !important; }
.wca-burger{ display:flex; }
.wca-header.e-con{ padding:14px 20px !important; }
.wca-htel.e-con{ display:none !important; }
}
/* =================== 600 =================== */
@media (max-width:600px){
.wca-topbar.e-con{ padding:9px 22px !important; justify-content:center !important; text-align:center !important; gap:0 !important; }
.wca-topbar .zona{ display:none !important; }
.wca-topbar-dx.e-con{ gap:16px !important; justify-content:center !important; flex-wrap:nowrap !important; }
.wca-topbar span{ font-size:12px; letter-spacing:.06em; }
.wca-header.e-con{ padding:14px 22px !important; }
/* 17 set 2026 (falegnameria.milano.it): a 375 marchio 44 + nome in maiuscolo a 20px +
burger non si restringevano e la testata sforava a destra, col burger tagliato.
Il nome scende, il marchio si stringe, e il modulo perde il riempimento largo. */
.wca-marchio .wca-sigla{ width:36px !important; height:36px !important; }
.wca-marchio.e-con{ gap:10px !important; min-width:0 !important; flex:0 1 auto !important; }
.wca-header > .wca-marchio{ flex:0 1 auto !important; min-width:0 !important; }
.wca-nome .n{ font-size:16px; }
.wca-nome .q{ font-size:9.5px; letter-spacing:.14em; }
/* 17 set 2026 (vigilanza.milano.it): questa riga stava PRIMA della regola base del modulo con la
stessa specificita' e non vinceva mai (32px misurati a 375). Classe doppia: vince a prescindere
dall'ordine. E a telefono il riquadro e' uno solo: quello del modulo, non due annidati
(i campi erano larghi 215px su 375). */
.wca-form.wca-form.e-con{ padding:0 !important; background:transparent !important; }
.wca-form form.form-richieste{ padding:20px 16px !important; }
/* a 375 i flex-row coi figli che non si restringono sforano: la CTA va in colonna */
.wca-cta-riga.e-con{ flex-direction:column !important; align-items:stretch !important; width:100% !important; gap:12px !important; }
.wca-cta-riga > *{ width:100% !important; }
.wca-btn.e-con, .wca-btn-tel.e-con{ width:100% !important; justify-content:center !important; align-items:center !important; }
body[class*="elementor-page"] a, body[class*="elementor-page"] p{ overflow-wrap:anywhere; }
}/* =================== sezioni (chiara / alta / scura) =================== */
.wca-sez.e-con{ display:block !important; }
/* ⚠️ IL RESPIRO DENTRO LA SEZIONE (9 set 2026, gate del responsabile su pellet.roma.it,
cinque pagine). Qui c'era `gap:0`, e ogni blocco nasceva ATTACCATO al successivo: il
pulsante appiccicato alla foto sotto, la tabella incollata alla scena, le righe del
conto senza aria prima del pulsante. Non era un difetto di una pagina, era la cornice.
Il respiro si dichiara UNA volta qui, e chi ha bisogno di meno lo stringe da se'. */
.wca-sez-wrap.e-con{ display:flex !important; flex-direction:column !important; max-width:1200px !important;
margin:0 auto !important; padding:104px 40px !important; gap:44px !important; }
.wca-sez.chiara.e-con{ background:var(--carta) !important; }
.wca-sez.alta.e-con{ background:var(--superficie) !important; }
.wca-sez.scura.e-con{ background:var(--notte) !important; }
.wca-testa.e-con{ display:flex !important; flex-direction:column !important; align-items:flex-start !important;
gap:0 !important; margin-bottom:0 !important; max-width:76ch !important; }
.wca-occhiello{ font-size:12.5px !important; letter-spacing:.22em !important; text-transform:uppercase !important;
color:var(--accento) !important; font-weight:600 !important; margin-bottom:18px !important; }
.wca-h2{ font-size:44px !important; color:var(--inchiostro) !important; margin-bottom:18px !important; text-wrap:balance; }
.wca-intro{ font-size:19px; color:var(--secondario) !important; line-height:1.6; max-width:66ch; }
.wca-intro b{ color:var(--inchiostro); font-weight:600; }
/* una classe di testo deve reggere su ENTRAMBI i fondi: le varianti scure stanno qui una volta */
.wca-sez.scura .wca-h2{ color:#FFFFFF !important; }
.wca-sez.scura .wca-occhiello{ color:var(--accento-notte) !important; }
.wca-sez.scura .wca-intro{ color:#CFCBD6 !important; }
.wca-sez.scura .wca-intro b{ color:#FFFFFF; }
.wca-nota{ font-size:15.5px; line-height:1.55; }
.wca-sez.chiara .wca-nota, .wca-sez.alta .wca-nota{ color:#3A3742 !important; }
.wca-sez.scura .wca-nota{ color:#CFCBD6 !important; }/* =================== apertura delle pagine interne: la RISPOSTA, non la scena =================== */
.wca-apertura.e-con{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; max-width:74ch !important; }
.wca-h1{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",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; }
.wca-h1 .ris{ color:var(--accento) !important; display:block; }
.wca-risposta{ font-size:21px !important; line-height:1.55 !important; color:#2C2A33 !important; max-width:62ch; margin-bottom:26px !important; }
.wca-risposta b{ color:var(--inchiostro) !important; font-weight:700; }/* =================== elenco con il segno =================== */
.wca-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; }
/* per CLASSE, non solo per posizione: la guardia dei contenitori senza display
cerca `.wca-voce-el`, e `.wca-elenco > li` da solo non gliela nominava mai. */
.wca-elenco > li, .wca-voce-el.e-con{ display:flex !important; flex-direction:row !important; align-items:flex-start !important; gap:10px !important; }
/* La stessa cosa detta sulla CLASSE della voce: il contenitore atomic nasce flex-row
e qui la riga e' voluta (pallino + testo), ma va DICHIARATA, se no la guardia del
display non distingue una riga voluta da una colonna dimenticata. */
.wca-voce-el.e-con{ display:flex !important; flex-direction:row !important; }
.wca-elenco .seg{ color:var(--accento) !important; font-weight:700; flex:0 0 auto; }
.wca-elenco .vv{ font-size:15.5px; color:#3A3742 !important; line-height:1.5; }
.wca-sez.scura .wca-elenco .vv{ color:#CFCBD6 !important; }
.wca-sez.scura .wca-elenco .seg{ color:var(--accento-notte) !important; }
.wca-sez.scura .wca-elenco.e-con{ border-top-color:rgba(255,255,255,.18) !important; }/* =================== le scene: figura (con didascalia), scena-lato, fascia 21/9 =================== */
/* UNA fascia a tutta larghezza per pagina; la scena dentro la sezione si ferma a 900px */
.wca-figura.e-con{ display:flex !important; flex-direction:column !important; gap:10px !important; width:100% !important;
max-width:900px !important; margin:0 !important; }
.wca-figura .wca-foto{ width:100% !important; }
.wca-figura img.wca-foto{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; display:block; }
.wca-figura.larga img.wca-foto{ aspect-ratio:16/9; }
.wca-didascalia{ font-size:14px; color:var(--secondario) !important; line-height:1.5; border-left:3px solid var(--accento);
padding-left:12px; max-width:60ch; }
/* in una sezione scura il grigio di --secondario spariva sul fondo (trattamento-antitarlo, 375, 17 set 2026) */
.wca-sez.scura .wca-didascalia{ color:#C9CCCF !important; border-left-color:var(--accento-notte) !important; }
.wca-scena-lato.e-con{ display:grid !important; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) !important;
gap:48px !important; align-items:start !important; width:100% !important; }
.wca-scena-lato > *{ min-width:0 !important; }
/* il blocco di testo accanto alla scena: senza display nasce flex ROW (guardia del 9 set).
Stava solo nel CSS di pagina_esempio, quindi ogni pagina che usa scena_lato lo riscriveva:
sale nel guscio il 17 set 2026 (falegnameria.milano.it, seconda pagina che lo usa). */
.wca-blocco-testo.e-con{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:24px !important; }
.wca-fascia.e-con{ display:block !important; width:100% !important; overflow:hidden !important; }
.wca-fascia img{ width:100%; height:auto; aspect-ratio:21/9; object-fit:cover; display:block; }/* =================== FAQ native: details/summary =================== */
.wca-faq.e-con{ display:flex !important; flex-direction:column !important; gap:0 !important; border-top:1px solid var(--riga) !important; }
.wca-domanda.e-con{ display:block !important; border-bottom:1px solid var(--riga) !important; padding:0 !important; }
.wca-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; }
.wca-domanda > summary::-webkit-details-marker{ display:none; }
.wca-domanda > summary::after{ content:"+"; font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:26px; color:var(--accento);
flex:0 0 auto; line-height:1; transition:transform 300ms ease-out; }
.wca-domanda[open] > summary::after{ transform:rotate(45deg); }
.wca-domanda .qq{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:20px; font-weight:600; color:var(--inchiostro) !important; line-height:1.25; }
.wca-domanda .rr{ font-size:16.5px; color:#3A3742 !important; line-height:1.65; padding:0 4px 24px !important; max-width:82ch; }/* =================== preventivo: recapiti + modulo (sezione SCURA) =================== */
.wca-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; }
.wca-prev > *{ min-width:0 !important; }
.wca-prev-info.e-con{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:0 !important; }
.wca-prev-info.e-con > *, .wca-prev-info .e-con > *{ padding-left:0 !important; padding-right:0 !important; }
.wca-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; }
.wca-recapito > *{ padding-left:0 !important; margin-left:0 !important; }
.wca-recapito .et{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#CFCBD6 !important; font-weight:600; }
.wca-recapito .vv{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:24px; color:#FFFFFF !important; font-weight:600; }
a.wca-recapito:hover .vv{ color:var(--accento-notte) !important; }
.wca-form.e-con{ background:var(--superficie) !important; padding:34px 32px 30px !important; display:block !important; }
.wca-form .elementor-widget-shortcode, .wca-form .elementor-shortcode{ width:100% !important; }/* =================== briciole (
, senza parallela prendono il padding delle sezioni) =================== */
.wca-briciole.e-con{ background:var(--superficie) !important; border-bottom:1px solid var(--riga) !important; display:block !important; }
.wca-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; }
.wca-briciole-wrap > *{ width:auto !important; flex:0 0 auto !important; }
/* l'ultima voce (la pagina corrente) puo' andare a capo: il titolo lungo di un articolo, a flex:0 0 auto, portava
la pagina a 438px su 375 (sartoria.milano.it, 17 set 2026, 12 articoli su 16). */
.wca-briciole-wrap > *:last-child{ flex:0 1 auto !important; min-width:0 !important; }
/* le didascalie non si sbiadiscono: il tema porta le figcaption a opacity .75 e la dicitura in grigio scendeva a
contrasto 3,64 (Lighthouse, 29 pagine di sartoria.milano.it, 17 set 2026) */
body[class*="elementor-page"] figcaption{ opacity:1 !important; }
.wca-briciole-wrap > *:last-child span{ overflow-wrap:anywhere; }
.wca-briciole span{ font-size:13.5px; color:var(--secondario) !important; }
.wca-briciole a span{ color:var(--accento) !important; }
.wca-briciole .sep{ color:rgba(0,0,0,.35) !important; }/* =================== sorelle: schede che promettono la pagina che c'e' =================== */
.wca-sorelle.e-con{ display:grid !important; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) !important;
gap:20px !important; list-style:none !important; }
.wca-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:100% !important; flex:1 1 auto !important; transition:transform 300ms ease-out, border-color 300ms ease-out; }
/* il li nasce flex-row: con la scheda a width:auto quelle col testo corto si stringevano sul contenuto
(mobili-su-misura a 375: 331, 331, 255, 235 px, segnalato dal responsabile il 17 set 2026) */
.wca-sorella-li.e-con{ display:flex !important; flex-direction:column !important; width:100% !important; }
.wca-sorella:hover{ transform:translateY(-4px); border-color:var(--accento) !important; }
.wca-sorella .tt{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:19px; font-weight:600; color:var(--inchiostro) !important; margin-bottom:7px !important; }
.wca-sorella .dd{ font-size:15px; color:#3A3742 !important; line-height:1.5; }
.wca-sorella .vai{ margin-top:12px !important; font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accento) !important; }/* =================== tabella nativa: thead/tbody/tr/th/td sono CONTENITORI col tag =================== */
.wca-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; }
.wca-thead.e-con{ display:table-header-group !important; }
.wca-tbody.e-con{ display:table-row-group !important; }
.wca-tr.e-con{ display:table-row !important; }
/* width:auto: la base di e-con da' width:100% a ogni cella, e con table-layout:fixed le
colonne a percentuale scritte dalla pagina (22%, 20%) venivano divise per la somma
(22+600+20): prima e ultima colonna a 38px, una lettera per riga (misura_viewport, 17 set). */
.wca-th.e-con, .wca-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; width:auto !important; }
.wca-th.e-con{ background:var(--notte) !important; }
.wca-th span{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#FFFFFF !important; }
.wca-td span{ font-size:16px; color:#3A3742 !important; line-height:1.5; }
.wca-td span.wca-td-et{ display:none; }
.wca-tr:nth-child(even) .wca-td{ background:var(--carta) !important; }/* =================== piede: asimmetrico, P.IVA visibile, titoli di colonna h2 =================== */
.wca-piede.e-con{ background:var(--notte) !important; display:block !important; }
.wca-piede-wrap.e-con{ display:grid !important; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) !important;
gap:48px !important; max-width:1200px !important; margin:0 auto !important; padding:72px 40px 40px !important; }
.wca-piede-wrap > *{ min-width:0 !important; }
.wca-piede-col.e-con{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:0 !important; }
.wca-piede-col > *{ padding-left:0 !important; padding-right:0 !important; }
.wca-piede h2{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:14px !important; font-weight:600 !important; letter-spacing:.18em !important;
text-transform:uppercase; color:var(--accento-notte) !important; margin-bottom:18px !important; padding-top:4px !important; line-height:1.2 !important; }
.wca-piede .nome{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:21px; font-weight:600; color:#FFFFFF !important; text-transform:uppercase; letter-spacing:.02em; }
.wca-piede .paglia{ font-size:15.5px; color:#CFCBD6 !important; line-height:1.6; max-width:46ch; margin-bottom:20px !important; }
.wca-piede-editore.e-con{ display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; align-items:baseline !important;
gap:6px 22px !important; width:100% !important; padding:16px 0 0 0 !important; margin:0 !important; border-top:1px solid rgba(255,255,255,.14) !important; }
.wca-piede-editore .et{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accento-notte) !important; font-weight:600; }
.wca-piede-editore .dato{ font-size:14.5px; color:#E4E1E8 !important; }
.wca-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; }
.wca-piede-voci > li{ display:flex !important; align-items:flex-start !important; justify-content:flex-start !important; width:100% !important; }
.wca-piede-voci a span, .wca-piede .dato{ font-size:15px; color:#E4E1E8 !important; text-align:left !important; }
.wca-piede-voci a:hover span{ color:var(--accento-notte) !important; }
.wca-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; }
.wca-piede-basso > *{ width:auto !important; flex:0 0 auto !important; display:flex !important; align-items:center !important; }
.wca-piede-basso span, .wca-piede-basso a span{ font-size:13.5px; color:#CFCBD6 !important; line-height:1.4 !important; }
.wca-piede-basso a:hover span{ color:#FFFFFF !important; }/* =================== 1024 / 600 =================== */
@media (max-width:1024px){
.wca-sez-wrap.e-con{ padding:72px 32px !important; }
.wca-h2{ font-size:38px !important; }
.wca-h1{ font-size:44px !important; }
.wca-scena-lato.e-con{ grid-template-columns:minmax(0,1fr) !important; gap:28px !important; }
.wca-prev.e-con{ grid-template-columns:minmax(0,1fr) !important; gap:32px !important; }
.wca-piede-wrap.e-con{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
}
@media (max-width:600px){
.wca-sez-wrap.e-con{ padding:48px 22px 52px !important; gap:32px !important; }
.wca-h2{ font-size:31px !important; }
.wca-h1{ font-size:36px !important; max-width:none; }
.wca-risposta{ font-size:18px !important; }
.wca-piede-wrap.e-con{ grid-template-columns:minmax(0,1fr) !important; gap:32px !important; padding:56px 22px 28px !important; }
.wca-piede-basso.e-con{ padding:18px 22px 34px !important; }
.wca-briciole-wrap.e-con{ padding:12px 22px !important; }
/* le larghezze di colonna dichiarate con :nth-child(N) si resettano con la STESSA forma */
.wca-tab.e-con, .wca-thead.e-con, .wca-tbody.e-con, .wca-tr.e-con, .wca-th.e-con, .wca-td.e-con{ display:block !important; width:100% !important; }
.wca-tr > .wca-td:nth-child(n), .wca-tr > .wca-th:nth-child(n){ width:100% !important; }
.wca-thead.e-con{ display:none !important; }
.wca-td.e-con{ display:flex !important; flex-direction:column !important; gap:4px !important; }
.wca-td span.wca-td-et{ display:block; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--secondario) !important; }
.wca-tr > .wca-td:first-child span{ font-weight:700; color:var(--inchiostro) !important; }
.wca-tr.e-con{ border-bottom:2px solid var(--riga) !important; padding:10px 0 !important; }
}/* ============ I PLUGIN DI FLOTTA, VESTITI (guscio_comune.py) ============
Il banner cookie (automa-manager) e il modulo (richieste-it) sono su tutti i siti
della flotta e nascono coi colori del loro pannello: il banner BLU #0056B3, il
modulo con un bordeaux #3c0a00, i grigi di bootstrap e gli angoli tondi. Tutti e
due dichiarano le loro variabili su `:root` nel proprio foglio, quindi qui si
rimappano — con `!important`, perche' senza il foglio del modulo VINCE lo stesso
(misurato col computed su falegname.roma.it il 9 set 2026: `--fr-button-bg`
restava #3c0a00 finche' non gliel'ho messo).E le variabili da sole non bastano: il bottone di invio prendeva il colore dal
TEMA (Neve, `--nv-primary-accent`), il font era Arial, il testo era tagliato
perche' il plugin gli mette `white-space:nowrap`, `overflow:hidden` e un'altezza
fissa di 40px. Quelle si battono con regole dirette sul modulo.I colori vengono dalle variabili del sito, quindi il blocco vale per tutti; l'unico
valore fisso e' l'hover, fatto con `brightness` per non legarlo a una palette. */
:root{
/* --su-pieno (17 set 2026, elettricista.roma.it): il testo SOPRA l'accento pieno. Il blocco
presumeva un accento pieno scuro col chiaro sopra; con un accento CHIARO (blu #6BB3EA)
il testo chiaro scende a ~2:1. Un sito col pieno chiaro dichiara --su-pieno; gli altri
non la dichiarano e restano identici (fallback ai valori di prima). */
--bc-button-bg:var(--accento-pieno) !important; --bc-button-text-color:var(--su-pieno, var(--carta)) !important;
--bc-link-color:var(--accento) !important; --bc-icon-color:var(--inchiostro) !important;
--bc-accent-color:var(--accento) !important; --bc-bar-bg:var(--superficie) !important;
--bc-bar-text:var(--inchiostro) !important;
--bc-btn-secondary-bg:var(--carta) !important; --bc-btn-secondary-text:var(--inchiostro) !important;
--bc-btn-secondary-border:var(--riga) !important;
--bc-btn-secondary-hover-border:var(--secondario) !important;
--bc-btn-reject-bg:var(--carta) !important; --bc-btn-reject-text:var(--inchiostro) !important;
--bc-modal-bg:var(--superficie) !important; --bc-modal-text:var(--inchiostro) !important;
--bc-modal-footer-bg:var(--carta) !important; --bc-modal-border:var(--riga) !important;
--bc-modal-desc-bg:var(--carta) !important; --bc-modal-desc-text:var(--secondario) !important;
--bc-modal-light-text:var(--secondario) !important;
--fr-label-color:var(--inchiostro) !important; --fr-field-text-color:var(--inchiostro) !important;
--fr-placeholder-color:var(--secondario) !important; --fr-link-color:var(--accento) !important;
--fr-icon-color:var(--accento) !important; --fr-accent-color:var(--accento-pieno) !important;
--fr-bg-form:var(--superficie) !important; --fr-field-bg:#FFFFFF !important;
--fr-border-color:var(--riga) !important; --fr-border-focus:var(--accento-pieno) !important;
--fr-button-bg:var(--accento-pieno) !important; --fr-button-text-color:var(--su-pieno, var(--carta)) !important;
}
/* «Leggi la privacy» del banner nasce alto 16px (97x16 misurato col banco di resa su
elettricista.roma.it il 17 set 2026): unico bersaglio sotto i 24px su OGNI pagina della
flotta. Curato su affissioni.roma.it il 3 set nel SUO foglio, mai salito qui: ogni sito
nuovo lo rinasceva. Il foglio della pagina viene dopo quello del plugin 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; }
form.form-richieste{ background:var(--superficie) !important; border:1px solid var(--riga) !important;
font-family:"Figtree","Figtree fallback",system-ui,sans-serif !important; }
form.form-richieste input, form.form-richieste select, form.form-richieste textarea{
border-color:var(--riga) !important; color:var(--inchiostro) !important; font-family:"Figtree","Figtree fallback",system-ui,sans-serif !important; }
form.form-richieste textarea{ min-height:170px !important; }
form.form-richieste input:focus, form.form-richieste select:focus, form.form-richieste textarea:focus{
border-color:var(--accento-pieno) !important; outline-color:var(--accento-pieno) !important; }
form.form-richieste label, form.form-richieste .ts-label-titolo, form.form-richieste .label-check{
color:var(--inchiostro) !important; font-family:"Figtree","Figtree fallback",system-ui,sans-serif !important; }
form.form-richieste a{ color:var(--accento) !important; }
form.form-richieste .input-icon svg, form.form-richieste .input-icon i{ color:var(--accento) !important; }
form.form-richieste button[type="submit"]{ background:var(--accento-pieno) !important; color:var(--su-pieno, #FFFFFF) !important;
border:0 !important; padding:16px 32px !important; font-family:"Figtree","Figtree fallback",system-ui,sans-serif !important;
font-size:14px !important; font-weight:700 !important; letter-spacing:.1em !important;
text-transform:uppercase !important; white-space:normal !important; line-height:1.25 !important;
height:auto !important; min-height:0 !important;
transition:filter 300ms ease-out, transform 300ms ease-out; }
form.form-richieste button[type="submit"]:hover{ filter:brightness(.88); transform:translateY(-2px); }
@media (max-width:600px){
form.form-richieste button[type="submit"]{ padding:15px 18px !important; letter-spacing:.05em !important; }
}/* ====== MOTO: la scala delle categorie ====== */
.wca-scala.e-con{ display:flex !important; flex-direction:column !important; align-items:stretch !important;
gap:0 !important; width:100% !important; list-style:none !important; }
.wca-scalino.e-con{ display:grid !important; grid-template-columns:78px 104px minmax(0,1fr) !important;
gap:20px !important; align-items:start !important; padding:22px 0 !important;
border-top:1px solid var(--riga) !important; }
.wca-scalino > *{ min-width:0 !important; }
.wca-scalino .ct{ font-family:"Schibsted Grotesk","Schibsted Grotesk fallback","Arial",sans-serif; font-size:31px; font-weight:800; color:var(--inchiostro) !important;
line-height:1; }
.wca-scalino .et{ font-size:15px; font-weight:700; color:var(--accento) !important; letter-spacing:.02em; }
.wca-scalino .co{ font-size:16px; color:#42474F !important; line-height:1.6; }
.wca-scalino .co b{ color:var(--inchiostro); }
.wca-scalino.top.e-con{ background:var(--superficie) !important; padding-left:20px !important;
padding-right:20px !important; border-left:3px solid var(--accento) !important; }
@media (max-width:700px){
.wca-scalino.e-con{ grid-template-columns:minmax(0,1fr) !important; gap:4px !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 LINK DENTRO LE LABEL DI UN MODULO.
`min-height` non li tocca, perche' su un elemento INLINE non ha effetto, e la regola
che mette `display:flex` sopra prende solo i link con le nostre classi. `inline-block`
piu' padding verticale da' l'area senza spezzare la riga della label, che con `flex`
andrebbe a capo.
⚠️ QUESTA REGOLA E' PREVENZIONE, NON LA CURA DI UN DIFETTO MISURATO, e lo scrivo
perche' quando l'ho aggiunta credevo il contrario. Il crawl di pellet.roma.it (9 set
2026) segnalava un bersaglio 97x16 su 12 pagine, «Leggi la privacy»: sono andato a
vedere il markup e quel link ha classe `bc-privacy-readmore`, cioe' e' del BANNER
COOKIE di automa-manager, ed e' escluso di proposito due righe sopra. Il difetto non
era nostro e questa regola non lo tocca: resta per il caso vero, un link dentro una
label nostra. */
label a:not([class*="bc-"]){ display:inline-block; padding-block:4px; }/* 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. */
/* ⚠️ `:not(.e-con)` su li e td (17 set 2026, elettricista.roma.it): un bottone o una scheda sono un che CONTIENE blocchi, non un link nel testo. Dentro una la regola li
sottolineava (i tre bottoni dei canali di Contatti): il banco di resa ora lo misura. */
p a, span a, li a:not(.e-con), td a:not(.e-con), 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:not(.e-con):hover, td a:not(.e-con):hover,
label a:hover, .campo a:hover{ text-decoration-thickness:.12em; }/* --- I LINK DI NAVIGAZIONE NON SONO LINK NEL TESTO (9 set 2026, misurato su
pellet.roma.it, primo sito della flotta su tema Neve).
La cura sopra prende anche le voci di menu, perche' stanno in un : il computed
del servito diceva `text-decoration: underline` su ogni voce della navigazione, e un
menu sottolineato non e' leggibilita', e' rumore. Non si abbassa la specificita' del
vincitore (i link nel testo devono restare sottolineati: axe link-in-text-block): si
ALZA quella del perdente, aggiungendo il contenitore di navigazione al selettore.
Il padding verticale NON si tocca: e' l'area di tocco da 44px sul mobile.
La sottolineatura torna all'hover, perche' tutto cio' che e' cliccabile deve reagire. */
nav li a, .wca-nav li a, .wca-mobile li a, .wca-piede li a, .wca-briciole li a,
.wca-sorelle li a, ul.nav-ul li a{ text-decoration:none !important; }
nav li a:hover, .wca-nav li a:hover, .wca-mobile li a:hover, .wca-piede li a:hover,
.wca-briciole li a:hover, .wca-sorelle li a:hover, ul.nav-ul li a:hover{
text-decoration:underline !important; text-underline-offset:.18em; }/* --- 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; }