/* Base del design — variabili, reset, utility.
   Lo stile dei blocchi (colori, testi, spazi, bordi, layout) NON sta qui: è nelle opzioni dei widget e nel Kit globale.
   Qui restano solo le basi comuni e poche utility `lto-…` da inserire nel campo «Classi CSS» di un widget. */

/* Variabili: replicano i colori del Kit (servono alle utility e ai widget custom). Adattare ai colori del cliente. */
:root{
  --lto-primary:#174b8e;--lto-secondary:#b8962e;--lto-text:#454545;--lto-accent:#123c72;
  --lto-line:#d0cfc9;--lto-paper:#ffffff;--lto-tint:#f4f1eb;--lto-card:#ffffff;--lto-muted:#6b6b6b;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body.lto{background-color:#fff;color:var(--lto-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0;overflow-x:clip}
img{max-width:100%;height:auto}
p{margin:0 0 1em}

/* Neutralizza i valori predefiniti di Elementor / Hello */
body.lto :where(.elementor-widget:not(:last-child)){margin-block-end:0}
body.lto .e-con{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}
body.lto .elementor-widget-container{min-width:0}
body.lto .site-main,body.lto #content,body.lto .page-content{margin:0;padding:0;max-width:none}
body.lto .page-header{display:none}
body.lto .elementor-widget-heading .elementor-heading-title{margin:0;font-optical-sizing:auto}
body.lto .elementor-widget-heading .elementor-heading-title a,body.lto .elementor-widget-text-editor a{color:inherit}
body.lto .elementor-widget-text-editor p:last-child{margin-bottom:0}
body.lto .elementor-widget-heading p.elementor-heading-title,body.lto .elementor-widget-heading span.elementor-heading-title,body.lto .elementor-widget-heading div.elementor-heading-title{text-transform:none}
/* Loop Grid: le schede riempiono l'altezza e non sforano la colonna */
body.lto .elementor-loop-container{align-items:stretch}
body.lto .e-loop-item{height:100%;min-width:0}
body.lto .e-loop-item>.e-con{height:100%}
/* Senza immagine in evidenza Elementor mostra un segnaposto grigio */
body.lto img[src*="elementor/assets/images/placeholder"]{display:none}
/* Se un contenitore non deve poter scorrere da solo (es. mappe con tooltip) usare overflow:clip invece di hidden */

/* ---------- Utility (lto-…) ---------- */
/* Etichetta di sezione: trattino di 32px prima del testo (classe sul widget Editor di testo) */
body.lto .lto-eb{display:flex;align-items:center;gap:12px}
body.lto .lto-eb p{margin:0}
body.lto .lto-eb::before{content:"";width:32px;height:1px;background:currentColor;flex:none}
body.lto .lto-eb--c{justify-content:center}
body.lto .lto-eb--c::before{opacity:.4}
body.lto .lto-eb--dark::before{opacity:.45}
/* Voci di menu che compaiono solo nel menu a tendina mobile (preventivo, lingua) */
body.lto .lto-m-only{display:none}
body.lto .elementor-nav-menu--dropdown .lto-m-only{display:block}
/* Separatore sopra una voce di sottomenu */
body.lto .lto-sep-top>a{border-top:1px solid var(--lto-line)}
body.lto .lto-sep-top{margin-top:6px}
body.lto .lto-hl>a{color:var(--lto-primary)!important;font-weight:500}
/* Link di colonna del footer: nessuna decorazione */
body.lto .lto-flist .elementor-icon-list-item>a,body.lto .lto-flist .elementor-icon-list-item{text-decoration:none}
/* Spinge un elemento in fondo a una card (colonna flex) */
body.lto .lto-push{margin-top:auto}
/* Il selettore di lingua è un widget a parte nella barra: nel menu principale compare solo nel menu mobile */
body.lto .lto-nav .elementor-nav-menu--main .pll-parent-menu-item{display:none}
body.lto .lto-nav .elementor-nav-menu--dropdown .pll-parent-menu-item{display:block}
/* Testo multilinea da campo (a capo del campo SCF conservati) */
body.lto .lto-prel{white-space:pre-line}
/* Righe di una scheda i cui valori (campi SCF) sono vuoti: la riga sparisce, label compresa */
/* un widget con valore dinamico vuoto non viene stampato: resta solo l'etichetta → la riga si nasconde */
body.lto .lto-hide-empty:not(:has(.elementor-widget ~ .elementor-widget)){display:none}
/* Briciole di pane su sfondo chiaro */
body.lto .lto-crumb--light a:hover{color:var(--lto-primary)}
body.lto .lto-crumb a:hover{color:#fff}
/* Filtro per colore dei materiali: pallino colorato davanti al nome (il tema originale lo mostrava) */
body.lto .lto-colorf .e-filter-item::before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:#ccc;margin-right:6px;vertical-align:middle;box-shadow:0 1px 2px rgba(0,0,0,.12)}
body.lto .lto-colorf .e-filter-item[data-filter="__all"]::before{background:conic-gradient(#b03030 0 20%,#d4c5a9 20% 40%,#888 40% 60%,#111 60% 80%,#f8f8f8 80%)}
body.lto .lto-colorf .e-filter-item[data-filter^="bianco"]::before{background:#f0eeeb}
body.lto .lto-colorf .e-filter-item[data-filter^="nero"]::before{background:#1a1a1a}
body.lto .lto-colorf .e-filter-item[data-filter^="grigio"]::before{background:#999}
body.lto .lto-colorf .e-filter-item[data-filter^="beige"]::before{background:#d4c5a9}
body.lto .lto-colorf .e-filter-item[data-filter^="rosa"]::before{background:#e8a0a0}
body.lto .lto-colorf .e-filter-item[data-filter^="rosso"]::before{background:#b03030}
body.lto .lto-colorf .e-filter-item[data-filter^="verde"]::before{background:#4a7a4a}
body.lto .lto-colorf .e-filter-item[data-filter^="blu"]::before{background:#3060a0}
body.lto .lto-colorf .e-filter-item[data-filter^="azzurro"]::before{background:#5090c0}
body.lto .lto-colorf .e-filter-item[data-filter^="giallo"]::before{background:#d4a020}
body.lto .lto-colorf .e-filter-item[data-filter^="arancio"]::before{background:#d06020}
body.lto .lto-colorf .e-filter-item[data-filter^="marrone"]::before{background:#7a4a20}
body.lto .lto-colorf .e-filter-item[data-filter^="viola"]::before{background:#7a40a0}
body.lto .lto-colorf .e-filter-item[data-filter^="oro"]::before{background:#c8a030}
/* Footer: le schede delle sedi (Loop Grid) si comportano come colonne della riga del footer (vanno a capo insieme alle altre) */
body.lto .lto-fsedi,body.lto .lto-fsedi .elementor-widget-container,body.lto .lto-fsedi .elementor-loop-container{display:contents}
body.lto .lto-fsedi .e-loop-item{flex:1 1 140px;min-width:140px}
@media(max-width:600px){body.lto .lto-fsedi .e-loop-item{flex:none}}
/* Filtro colore come elenco di link (pagine categoria) */
body.lto .lto-colorlinks .elementor-icon-list-item a::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:#ccc;margin-right:7px;vertical-align:middle}
body.lto .lto-colorlinks .elementor-icon-list-item:first-child a::before{background:conic-gradient(#b03030 0 20%,#d4c5a9 20% 40%,#888 40% 60%,#111 60% 80%,#f8f8f8 80%)}
body.lto .lto-colorlinks a[href*="colore=bianco"]::before{background:#f0eeeb}
body.lto .lto-colorlinks a[href*="colore=nero"]::before{background:#1a1a1a}
body.lto .lto-colorlinks a[href*="colore=grigio"]::before{background:#999}
body.lto .lto-colorlinks a[href*="colore=beige"]::before{background:#d4c5a9}
body.lto .lto-colorlinks a[href*="colore=rosa"]::before{background:#e8a0a0}
body.lto .lto-colorlinks a[href*="colore=rosso"]::before{background:#b03030}
body.lto .lto-colorlinks a[href*="colore=verde"]::before{background:#4a7a4a}
body.lto .lto-colorlinks a[href*="colore=blu"]::before{background:#3060a0}
body.lto .lto-colorlinks a[href*="colore=azzurro"]::before{background:#5090c0}
body.lto .lto-colorlinks a[href*="colore=giallo"]::before{background:#d4a020}
body.lto .lto-colorlinks a[href*="colore=arancio"]::before{background:#d06020}
body.lto .lto-colorlinks a[href*="colore=marrone"]::before{background:#7a4a20}
body.lto .lto-colorlinks a[href*="colore=viola"]::before{background:#7a40a0}
body.lto .lto-colorlinks a[href*="colore=oro"]::before{background:#c8a030}
body.lto .lto-nav .elementor-nav-menu--main .sub-menu{min-width:230px}
/* Link legali del footer: l'elenco in linea non deve sporgere dal contenitore */
body.lto .lto-flegal .elementor-icon-list-items{margin-inline:0!important;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:600px){body.lto .lto-flegal .elementor-icon-list-items{justify-content:center}}
/* Mappa della sede: riempie tutta l'altezza della colonna (griglia a due colonne) */
body.lto .lto-map-box{min-height:440px}
body.lto .lto-map-box>.elementor-widget-google_maps{flex:1 1 auto;display:flex;flex-direction:column}
body.lto .lto-map-box .elementor-custom-embed{flex:1 1 auto;display:flex}
body.lto .lto-map-box iframe{width:100%;height:100%!important;min-height:440px}
/* Contenitore con tutti i widget dinamici vuoti: si nasconde (pagina architetto senza foto/descrizione) */
body.lto .lto-hide-if-empty:not(:has(.elementor-widget)){display:none}
/* Filtri materiali: contatori, filtri attivi e colore selezionato (come nel tema originale) */
body.lto .e-filter-item .lto-count{margin-left:8px;font-size:10px;font-weight:500;letter-spacing:0;opacity:1;color:#5c5c5c;background:rgba(0,0,0,.05);border-radius:999px;padding:2px 7px}
body.lto .e-filter-item[aria-pressed="true"] .lto-count{background:rgba(255,255,255,.2);color:#fff}
body.lto .e-filter-item[aria-pressed="true"] .lto-count{opacity:.7}
body.lto .lto-colorf .e-filter-item[aria-pressed="true"]::before{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--lto-primary)}
body.lto .lto-activef{display:none;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px}
body.lto .lto-activef.is-active{display:flex}
body.lto .lto-activef .lto-tag{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--lto-primary);background:rgba(23,75,142,.08);border:0;border-radius:999px;padding:8px 8px 8px 16px}
body.lto .lto-activef .lto-tag__x{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:rgba(23,75,142,.15);font-size:14px;line-height:1;color:var(--lto-primary);margin-left:0;opacity:.8;text-decoration:none;transition:background .2s,color .2s}
body.lto .lto-activef .lto-tag__x:hover{opacity:1;background:var(--lto-primary);color:#fff}
body.lto .lto-activef .lto-activef__reset{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--lto-muted);text-decoration:none;border-bottom:1px solid currentColor;margin-left:6px;padding-bottom:1px}
body.lto .lto-activef .lto-activef__reset:hover{color:var(--lto-primary)}
/* Schede dei contenuti: il link del titolo copre tutta la scheda; l'immagine si ingrandisce al passaggio */
body.lto .lto-card{position:relative}
body.lto .lto-stretch a::after{content:"";position:absolute;inset:0;z-index:2}
body.lto .lto-card .elementor-widget-image img{transition:transform .5s cubic-bezier(.4,0,.2,1)}
body.lto .lto-card:hover .elementor-widget-image img{transform:scale(1.04)}
body.lto .lto-card:hover .lto-stretch a{color:inherit}
body.lto .lto-stretch{position:static!important}
/* Chi preferisce meno movimento: niente animazioni di ingresso e contenuti subito visibili */
@media (prefers-reduced-motion:reduce){body.lto .elementor-invisible{visibility:visible!important}body.lto .animated{animation:none!important}}
/* Modulo preventivo: testo del consenso e link come nel tema originale; sul telefono le coppie di campi hanno più aria */
body.lto .lto-form .elementor-field-type-acceptance label{font-size:13px;color:var(--lto-muted)}
body.lto .lto-form .elementor-field-type-acceptance a{color:var(--lto-primary);text-decoration:underline}
@media(max-width:600px){body.lto .lto-form .lto-pair-first{margin-bottom:24px}}
/* Sollevamento delle schede al passaggio: movimento lento e morbido */
body.lto .e-transform{transition-timing-function:cubic-bezier(.22,.61,.36,1)}
/* Sollevamento delle schede: lento e morbido (proprietà `translate`, indipendente dall'animazione di ingresso) */
body.lto .lto-lift{transition:translate 1s cubic-bezier(.22,.61,.36,1),box-shadow 1s cubic-bezier(.22,.61,.36,1),border-color .6s ease}
body.lto .lto-lift:hover{translate:0 -6px}
@media (prefers-reduced-motion:reduce){body.lto .lto-lift,body.lto .lto-lift:hover{transition:none;translate:none}}
