@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
Roma e Città metropolitana
Lun-Ven 8:00-20:00 info@affissioni.roma.it
Affissioni Roma Pubblicità esterna
Il catalogo

Paline monumentali

Le paline monumentali portano manifesti informativi presso i siti di interesse storico, architettonico, paesaggistico e monumentale. Sono impianti di contesto: contano tanto per dove stanno quanto per la misura. Chi le sceglie di solito non cerca un’offerta: cerca di essere presente in un posto che ha un valore suo.

Se ti serve una mano a scegliere, il preventivo è qui sotto.

Palina pubblicitaria illuminata su una piazza, davanti a un edificio storico
La scheda

Dove stanno e che cosa portano

Quello che si sa di questo impianto, in chiaro.

  • • Dove: presso siti di interesse storico, architettonico, paesaggistico e monumentale.
  • • Che cosa portano: manifesti informativi.
  • • Quante: a Roma le posizioni di questo tipo sono migliaia.
Il contesto

Dove si sta, si sta con un certo tono

Un impianto davanti a un monumento non è lo stesso impianto in una via qualsiasi: chi guarda quella palina sta guardando anche quello che ha intorno, e il manifesto entra nel confronto che voglia o no.

Per questo la palina monumentale regge bene i messaggi informativi e mal sopporta il tono da promozione. Non è una regola nostra, la impone il posto.

In un piano la palina non sta quasi mai da sola: fa la parte del contesto, mentre gli impianti su strada fanno la parte del passaggio. È una divisione di compiti, e conviene deciderla prima di scegliere le posizioni, non dopo.

Il manifesto per una palina si progetta con più aria del solito: il posto è già ricco di suo, e una grafica affollata gli finisce contro. Poche parole, un’immagine sola e un marchio che si legga a distanza di passo reggono meglio il confronto con quello che c’è intorno.

Quando la prenoti. Chiedi dove sta esattamente e che cosa ha intorno: in un contesto di pregio il vicino conta, e due posizioni a cento metri l’una dall’altra possono valere in modo molto diverso a seconda di che cosa si guarda mentre le si legge.

Onestà

Quando conviene e quando no

Due righe, e valgono più di un elenco di pregi.

  • • Sì. Conviene a chi ha un messaggio da comunicare in un contesto di pregio, e vuole che il contesto giochi a favore.
  • • No. Non conviene per un’offerta a tempo: in quel contesto stona, e rende meno di un impianto qualsiasi su una strada di passaggio.
  • • Da tenere presente. Le posizioni di questo tipo sono legate ai luoghi, quindi sono meno intercambiabili delle altre: se una zona ti interessa davvero, si guarda presto che cosa c’è libero.
Il preventivo

Dicci zona e periodo

Ti rispondiamo con le posizioni disponibili e la cifra completa, stampa e affissione comprese.

Dicci la zona che ti interessa e la quattordicina: su questo formato la disponibilità cambia da un’uscita all’altra, e sapere presto che cosa è libero evita di rifare il piano due volte. Il preventivo arriva con le posizioni scritte una per una, non con una zona generica.

Per mettere paline monumentali a confronto con gli altri formati c’è il confronto fra i formati, e la cifra di partenza sta nella cifra di partenza del listino.

Telefono 06 94802308 Email info@affissioni.roma.it
Orario Lun-Ven 8:00-20:00
/* PESO E CARICAMENTO DELLE FOTO (guscio_comune.py). Il crawler chiede `loading=lazy` su OGNI immagine tranne la prima, e senza l'attributo il browser sceglie eager: sulla home due foto sotto la piega restavano eager e finivano nel report (2 istanze nostre su 44). La prima immagine resta eager con fetchpriority=high: e' la hero, ed e' la prima cosa che si vede. */ (function(){ var foto = document.querySelectorAll('main img, .af-foto, .af-scheda-foto, .af-foto-zone'); for (var k = 0; k 0 && !i.sizes) { i.sizes = largo + 'px'; } var sopra = i.getBoundingClientRect().top < window.innerHeight; if (sopra && k === 0) { i.loading = 'eager'; i.setAttribute('fetchpriority', 'high'); } else if (!i.getAttribute('loading')) { i.setAttribute('loading', 'lazy'); } } })();/* NOME ACCESSIBILE AI CAMPI DEL MODULO (guscio_comune.py, 7 set 2026). Il form richieste-it nella variante compatta nasce con la classe `fr-no-label`: il plugin NON stampa le etichette e ogni campo prende il nome accessibile dal proprio placeholder. Un pero' il placeholder non ce l'ha, e resta SENZA NOME. Prova del due: su asfalti.milano.it il campo e' `campo w-100` con la sua