/* === Font del sito (file nel tema: assets/fonts) ===
   Kelson Sans (titoli, etichette, bottoni) e Inter solo alfabeto latino (testi).
   Dichiarati qui e non da Elementor: Kelson non veniva più stampato da Elementor e Inter caricava un foglio da 48 KB con tutti gli alfabeti.
   I due file usati sopra la piega (Kelson Bold, Inter) sono caricati in anticipo da functions.php. */
@font-face{font-family:'Kelson Sans';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/KelsonSans-Light.woff2') format('woff2'),url('../fonts/KelsonSans-Light.woff') format('woff');}
@font-face{font-family:'Kelson Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/KelsonSans-Normal.woff2') format('woff2'),url('../fonts/KelsonSans-Normal.woff') format('woff');}
@font-face{font-family:'Kelson Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/KelsonSans-Bold.woff2') format('woff2'),url('../fonts/KelsonSans-Bold.woff') format('woff');}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/Inter-latin.woff2') format('woff2');
  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:'Inter';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/Inter-latin-italic.woff2') format('woff2');
  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;}

/* === AF — basi globali (kit) === */
:root{
  --af-ease:cubic-bezier(.22,1,.36,1);
  --af-dur-s:400ms; --af-dur-m:600ms; --af-dur-l:800ms;
  --af-shift:24px; --af-stagger:80ms;
}
@media (max-width:767px){ :root{ --af-shift:16px; } }

/* Reveal: stato iniziale solo se lo script è attivo (html.af-js) */
.af-js body:not(.elementor-editor-active) .af-reveal{opacity:0;transform:translate3d(0,var(--af-shift),0);transition:opacity var(--af-dur-m) var(--af-ease),transform var(--af-dur-m) var(--af-ease);transition-delay:var(--af-delay,0ms);}
.af-js body:not(.elementor-editor-active) .af-reveal.af-in{opacity:1;transform:none;}
/* Immagini statiche: zoom-in in ingresso (da 92% a 100% + dissolvenza). Solo transform/opacity:
   nessun ricalcolo del layout. L'effetto sta sull'<img> interna, il riquadro osservato resta fermo. */
.af-js body:not(.elementor-editor-active) .af-reveal-img img{opacity:0;transform:scale(.92);transform-origin:50% 50%;transition:opacity var(--af-dur-m) var(--af-ease),transform var(--af-dur-l) var(--af-ease);transition-delay:var(--af-delay,0ms);}
.af-js body:not(.elementor-editor-active) .af-reveal-img.af-in img{opacity:1;transform:none;}

/* Zoom leggero immagini in hover */
.af-zoom{overflow:hidden;}
.af-zoom img{transition:transform var(--af-dur-l) var(--af-ease);}
.af-zoom:hover img,a:hover .af-zoom img,.af-card:hover .af-zoom img{transform:scale(1.04);}

/* Bottoni: solo cambio colore */
.elementor-button{transition:background-color var(--af-dur-s) var(--af-ease),color var(--af-dur-s) var(--af-ease),border-color var(--af-dur-s) var(--af-ease);}

/* Angolo tagliato in alto a sinistra — misure da Figma.
   Desktop: vertici del taglio vivi, altri 3 angoli raggio 5.
   .af-smusso         card (Cosa facciamo, servizi, Impianti)  D 56x59 · M 44x46
   .af-smusso--panel  pannello statistiche, pannello form      D 56x59 · M 46x48
   .af-smusso--step   card basse (step, vantaggi, risultati)   D 56x64 · M 34x36
   Tablet: valori intermedi. */
.af-smusso{--af-cut-x:56px;--af-cut-y:59px;border-radius:5px;clip-path:polygon(var(--af-cut-x) 0,100% 0,100% 100%,0 100%,0 var(--af-cut-y));}
.af-smusso--step{--af-cut-x:56px;--af-cut-y:64px;}
@media (max-width:1024px){
  .af-smusso{--af-cut-x:50px;--af-cut-y:52px;}
  .af-smusso--panel{--af-cut-x:51px;--af-cut-y:53px;}
  .af-smusso--step{--af-cut-x:45px;--af-cut-y:50px;}
}
@media (max-width:767px){
  .af-smusso{--af-cut-x:44px;--af-cut-y:46px;}
  .af-smusso--panel{--af-cut-x:46px;--af-cut-y:48px;}
  .af-smusso--step{--af-cut-x:34px;--af-cut-y:36px;}
}

/* Riduci movimento: solo dissolvenze */
@media (prefers-reduced-motion:reduce){
  .af-js body:not(.elementor-editor-active) .af-reveal{transform:none;}
  .af-js body:not(.elementor-editor-active) .af-reveal-img img{transform:none!important;opacity:0;transition:opacity var(--af-dur-m) linear;}
  .af-js body:not(.elementor-editor-active) .af-reveal-img.af-in img{opacity:1;}
  .af-zoom img{transform:none!important;}
}

/* === Header: desktop da 1366px, sotto versione con menu a comparsa === */
@media (max-width:1365px){ .af-hdr-desk{display:none!important;} }
@media (min-width:1366px){ .af-hdr-mob{display:none!important;} }
/* Desktop: logo | menu centrato | bandiere + bottone. Le colonne laterali sono uguali (1fr) ma mai più
   strette del loro contenuto: menu al centro esatto da ~1430px, sotto resta fra i due senza sovrapporsi. */
@media (min-width:1366px){
  .af-hdr-desk{display:grid!important;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;column-gap:24px;}
  .af-hdr-desk > .elementor-widget-image{justify-self:start;}
  .af-hdr-desk > .af-hdr-cta{justify-self:end;}
  /* il menu ha margini -7 (per allineare il testo al bordo): nella griglia restringerebbero la colonna
     e "Contatti" andrebbe a capo; qui niente margini e niente a capo, così il centro è esatto */
  .af-hdr-desk > .af-nav{margin-left:0!important;margin-right:0!important;}
  .af-hdr-desk > .af-nav .elementor-nav-menu--main > ul.elementor-nav-menu{flex-wrap:nowrap!important;}
}
/* Portatili 1366–1499: spazio stretto → voci menu un po' più vicine e gruppo più compatto, così restano
   sempre ~20px fra menu, logo e bandiere (il menu torna al centro esatto da ~1430px) */
@media (min-width:1366px) and (max-width:1499px){
  .af-hdr-desk{column-gap:16px;}
  .af-hdr-desk > .af-nav .elementor-nav-menu--main .elementor-item{padding-left:5px!important;padding-right:5px!important;}
  .af-hdr-desk > .af-hdr-cta{gap:16px!important;}
}
.af-hdr .elementor-image a,.af-hdr .elementor-widget-image a{display:block;line-height:0;}
.af-hdr .elementor-widget-image img{display:block;}

/* Header fisso: copia dell'header bianco, nascosta sopra la pagina; scende dopo 300px di scroll
   (classe html.af-sticky-on messa dallo script 19). Solo transform: nessun ricalcolo del layout. */
.af-hdr-sticky{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:990;transform:translate3d(0,-100%,0);visibility:hidden;
  box-shadow:0 1px 0 var(--e-global-color-bordo),0 6px 24px rgba(18,43,68,.06);
  transition:transform var(--af-dur-m) var(--af-ease),visibility 0s linear var(--af-dur-m);}
html.af-sticky-on .af-hdr-sticky{transform:none;visibility:visible;transition:transform var(--af-dur-m) var(--af-ease),visibility 0s;}
.admin-bar .af-hdr-sticky{top:32px;}
@media (max-width:782px){ .admin-bar .af-hdr-sticky{top:46px;} }
@media (max-width:600px){ .admin-bar .af-hdr-sticky{top:0;} }
body.elementor-editor-active .af-hdr-sticky{position:relative!important;transform:none;visibility:visible;}
html{scroll-padding-top:100px;}
@media (max-width:1365px){ html{scroll-padding-top:70px;} }
@media (prefers-reduced-motion:reduce){ .af-hdr-sticky,html.af-sticky-on .af-hdr-sticky{transition:none;} }

/* Sottomenu desktop (Impianti Fotovoltaici) */
.af-nav .elementor-nav-menu--main .sub-menu{min-width:280px!important;padding:8px 0;background:#fff;border:1px solid var(--e-global-color-bordo);border-radius:5px;}
.af-nav .elementor-nav-menu--main .sub-menu a{font-family:var(--e-global-typography-menu-font-family),sans-serif;font-weight:500;font-size:14px;line-height:1.3;color:var(--e-global-color-primary)!important;padding:12px 20px!important;background:transparent!important;transition:background-color var(--af-dur-s) var(--af-ease);}
.af-nav .elementor-nav-menu--main .sub-menu a:hover{background:var(--e-global-color-bianco)!important;}
.af-nav .elementor-nav-menu--main .sub-menu{animation:afDrop var(--af-dur-s) var(--af-ease);}
@keyframes afDrop{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.af-nav .elementor-nav-menu .sub-arrow{padding-left:4px;}
.af-nav .elementor-nav-menu .sub-arrow i{font-size:10px;}
.af-nav .elementor-nav-menu--main .elementor-item{transition:color var(--af-dur-s) var(--af-ease);}

/* Menu mobile (popup) — nav-menu in layout "dropdown" senza pulsante */
.af-mmenu .elementor-nav-menu--dropdown{background:transparent!important;box-shadow:none!important;}
.af-mmenu .elementor-nav-menu--dropdown .elementor-nav-menu > li{border-bottom:1px solid rgba(247,247,248,.10);}
.af-mmenu .elementor-nav-menu--dropdown .elementor-nav-menu > li:last-child{border-bottom:0;}
.af-mmenu .elementor-nav-menu--dropdown .elementor-nav-menu > li > a{padding:16px 0!important;justify-content:space-between;border:0!important;line-height:23px!important;}
.af-mmenu .elementor-nav-menu--dropdown a{border-left:0!important;}
.af-mmenu .elementor-nav-menu .sub-arrow{padding:0 0 0 12px;margin:0;}
.af-mmenu .elementor-nav-menu .sub-arrow svg,.af-mmenu .elementor-nav-menu .sub-arrow i{display:none!important;}
.af-mmenu .elementor-nav-menu .sub-arrow::after{content:"";display:block;width:22px;height:22px;background:url("../../../../uploads/af-assets/icona-chevron.svg") center/22px 22px no-repeat;transition:transform var(--af-dur-s) var(--af-ease);}
.af-mmenu .elementor-nav-menu a.highlighted .sub-arrow::after{transform:rotate(180deg);}
.af-mmenu .elementor-nav-menu .sub-menu{background:transparent!important;padding:0 0 16px 2px!important;border:0!important;position:static!important;width:auto!important;}
.af-mmenu .elementor-nav-menu .sub-menu li{margin:0;border:0!important;}
.af-mmenu .elementor-nav-menu .sub-menu li + li{margin-top:12px;}
.af-mmenu .elementor-nav-menu .sub-menu a{padding:0!important;border:0!important;background:transparent!important;color:var(--e-global-color-bianco)!important;font-family:var(--e-global-typography-text-font-family),sans-serif!important;font-size:16px!important;font-weight:400!important;line-height:1.6!important;}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li{animation:afIn var(--af-dur-m) var(--af-ease) both;}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(2){animation-delay:60ms}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(3){animation-delay:120ms}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(4){animation-delay:180ms}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(5){animation-delay:240ms}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(6){animation-delay:300ms}
.elementor-popup-modal .af-mmenu .elementor-nav-menu > li:nth-child(n+7){animation-delay:360ms}
@keyframes afIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){ .elementor-popup-modal .af-mmenu .elementor-nav-menu > li{animation-name:afFade;} }
@keyframes afFade{from{opacity:0}to{opacity:1}}

/* Popup a tutto schermo: scorrimento interno */
.af-popup-full .dialog-message{overflow-y:auto!important;max-height:100vh;}

/* === Form Formidable (.af-form) — misure da Figma === */
.af-form .frm_forms{margin:0;}
.af-form fieldset{border:0;padding:0;margin:0;min-width:0;}
.af-form legend.frm_screen_reader,.af-form .frm_screen_reader{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.af-form .frm_forms .frm_fields_container{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important;row-gap:18px!important;}
/* regole di base che prima arrivavano dal CSS di Formidable (ora non caricato): campi mai più larghi della colonna, elementi nascosti */
.af-form .frm_forms{width:100%;max-width:100%;}
.af-form :is(input,select,textarea){max-width:100%;box-sizing:border-box;}
.af-form :is(.frm_hidden,.frm_none_container > .frm_primary_label,.frm_ajax_loading){display:none;}
.af-form .af-cv :is(.frm_dropzone,.dz-message,.frm_upload_text,.frm_upload_text button){white-space:normal;min-width:0;}
.af-form .af-cv .dz-message{font-size:14px;line-height:20px;}
.af-form .frm_forms .frm_fields_container > *{grid-column:1/-1!important;}
.af-form .frm_forms .frm_form_field{margin:0!important;grid-column:1/-1!important;width:auto!important;}
.af-form .frm_forms .frm_form_field.af-half{grid-column:span 1!important;}
.af-form [id^="frm_field_"][id$="_container"]:has(.frm_verify){display:none!important;}
.af-form .frm_primary_label{display:block;margin:0 0 6px;font-family:var(--e-global-typography-frmlab-font-family),sans-serif;font-weight:700;font-size:var(--e-global-typography-frmlab-font-size);line-height:var(--e-global-typography-frmlab-line-height);letter-spacing:var(--e-global-typography-frmlab-letter-spacing);text-transform:uppercase;color:var(--e-global-color-primary);line-height:14px;}
@media (max-width:767px){ .af-form .frm_primary_label{line-height:12px;} }
.af-form .frm_required{color:inherit;margin-left:2px;}
.af-form input[type=text],.af-form input[type=email],.af-form input[type=tel],.af-form select,.af-form textarea{
  display:block;width:100%;height:44px;margin:0;padding:12px 14px;box-sizing:border-box;
  background:#fff;border:1px solid #fff;border-radius:0;box-shadow:none;outline:none;
  font-family:var(--e-global-typography-frmcam-font-family),sans-serif;font-weight:400;font-size:var(--e-global-typography-frmcam-font-size);line-height:20px;color:var(--e-global-color-primary);
  transition:border-color var(--af-dur-s) var(--af-ease),box-shadow var(--af-dur-s) var(--af-ease);}
.af-form textarea{height:96px;resize:vertical;}
.af-form ::placeholder{color:var(--e-global-color-primary);opacity:1;}
.af-form select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='5' viewBox='0 0 7 5'%3E%3Cpath d='M0 0h7L3.5 5z' fill='%23193A5A'/%3E%3C/svg%3E") no-repeat right 14px center;}
.af-form input:focus,.af-form select:focus,.af-form textarea:focus{border-color:var(--e-global-color-primary);box-shadow:0 0 0 1px var(--e-global-color-primary);}
.af-form .frm_description{margin-top:6px;font-family:var(--e-global-typography-frmnot-font-family),sans-serif;font-size:var(--e-global-typography-frmnot-font-size);line-height:15px;color:var(--e-global-color-primary);}
/* privacy */
.af-form .af-privacy .frm_primary_label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0;}
/* testo del consenso come paragrafo continuo; la casella sta fissa a sinistra (con flex il testo si spezzava in colonne) */
.af-form .af-privacy .frm_checkbox label{display:block;position:relative;padding-left:28px;min-height:18px;margin:0;cursor:pointer;font-family:var(--e-global-typography-frmcam-font-family),sans-serif;font-size:12px;line-height:18px;color:var(--e-global-color-primary);}
.af-form .af-privacy input[type=checkbox]{position:absolute;left:0;top:0;appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;background:#fff;border:1.5px solid var(--e-global-color-primary);border-radius:0;cursor:pointer;display:grid;place-content:center;}
.af-form .af-privacy input[type=checkbox]:checked::after{content:"";width:10px;height:6px;border-left:2px solid var(--e-global-color-primary);border-bottom:2px solid var(--e-global-color-primary);transform:translateY(-1px) rotate(-45deg);}
.af-form .af-privacy a{color:inherit;text-decoration:underline;}
/* invio */
.af-form .frm_forms .frm_submit{margin:0!important;padding:0;display:block;}
.af-form .frm_button_submit{display:flex;align-items:center;justify-content:center;width:100%;height:48px;margin:0;padding:16px 32px;border:0;border-radius:0;cursor:pointer;background:var(--e-global-color-primary);color:#fff;font-family:var(--e-global-typography-accent-font-family),sans-serif;font-weight:700;font-size:var(--e-global-typography-accent-font-size);line-height:1;letter-spacing:var(--e-global-typography-accent-letter-spacing);text-transform:uppercase;transition:background-color var(--af-dur-s) var(--af-ease);}
.af-form .frm_button_submit:hover,.af-form .frm_button_submit:focus{background:var(--e-global-color-blufoot);color:#fff;}
/* errori e conferma */
.af-form .frm_error{margin-top:6px;font-family:var(--e-global-typography-frmlab-font-family),sans-serif;font-size:12px;line-height:1.3;color:#9B1C1C;}
.af-form .frm_blank_field input,.af-form .frm_blank_field select,.af-form .frm_blank_field textarea{border-color:#9B1C1C;}
.af-form .frm_error_style{margin:0 0 18px;padding:12px 14px;background:#fff;color:#9B1C1C;font-size:14px;}
.af-form .frm_message{padding:20px;background:#fff;color:var(--e-global-color-primary);font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:var(--e-global-typography-text-font-size);line-height:1.6;}
.af-form .frm_message p{margin:0;}
/* mobile: campi a colonna singola; bordi e angoli come desktop (bianchi, squadrati) */
@media (max-width:767px){
  .af-form .frm_forms .frm_fields_container{grid-template-columns:minmax(0,1fr)!important;row-gap:14px!important;}
  .af-form .frm_forms .frm_form_field.af-half{grid-column:1/-1!important;}
  .af-form input[type=text],.af-form input[type=email],.af-form input[type=tel],.af-form select,.af-form textarea{height:46px;padding:13px 14px;}
  .af-form textarea{height:64px;}
  .af-form .frm_button_submit{height:46px;padding:15px 26px;}
}

/* A capo solo su desktop/tablet */
@media (max-width:767px){ .af-br-d{display:none;} }

/* Container che abbracciano il contenuto */
.e-con.af-hug{--width:auto;width:auto;flex:0 0 auto;}
.e-con.af-grow{--width:auto;width:auto;flex:1 1 0;min-width:0;}
/* Safari: un contenitore con flex-basis 0 dentro una colonna ha altezza 0 → con "a capo" attivo
   manda i figli in una seconda colonna a destra (pagina più larga dello schermo su iPhone). */
.e-con.af-grow{flex-wrap:nowrap!important;}

/* Immagini: niente spazio sotto (linea di base) */
.elementor-widget-image{line-height:0;}
/* Nota sotto "Spesa energetica": non presente nella bozza mobile */
@media (max-width:767px){ .af-form .frm_description{display:none;} }
/* Riepilogo errori Formidable: una riga in italiano, senza elenco */
.af-form .frm_error_style{font-family:var(--e-global-typography-frmcam-font-family),sans-serif!important;font-size:14px!important;line-height:1.4!important;}
.af-form .frm_error_style ul{display:none!important;}

/* ================= HOMEPAGE / COMPONENTI ================= */
/* Caroselli mobili (Cosa facciamo, Installazioni, Risorse) + barretta indicatore */
.af-scrollbar{display:none;}
@media (max-width:767px){
  .af-carousel,.af-carousel-loop .elementor-loop-container{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-20px!important;padding-right:20px!important;}
  .af-carousel::-webkit-scrollbar,.af-carousel-loop .elementor-loop-container::-webkit-scrollbar{display:none;}
  .af-carousel > *{scroll-snap-align:start;flex:0 0 auto!important;}
  .af-carousel--cosa{gap:18px!important;}
  .af-carousel--cosa > *{width:258px!important;}
  .af-carousel-loop .elementor-loop-container{gap:20px!important;grid-template-columns:none!important;}
  .af-carousel-loop .e-loop-item{flex:0 0 285px!important;width:285px!important;scroll-snap-align:start;}
  .af-scrollbar{display:block;position:relative;width:100%;height:2px;background:rgba(23,29,39,.2);border-radius:1px;overflow:hidden;}
  .af-scrollbar > span{position:absolute;top:0;left:0;height:2px;background:var(--e-global-color-primary);border-radius:1px;will-change:transform;}
}

/* Striscia loghi certificazioni: su mobile e tablet scorre in orizzontale */
@media (max-width:1024px){
  .af-logos{overflow-x:auto;justify-content:flex-start!important;scrollbar-width:none;margin:0 -20px!important;padding:0 20px!important;width:calc(100% + 40px)!important;max-width:none!important;--width:calc(100% + 40px);}
  .af-logos::-webkit-scrollbar{display:none;}
  .af-logos > *{flex:0 0 auto!important;}
}

/* Tablet: le card dei loop (articoli, installazioni) hanno la larghezza fissa del desktop → si adattano alla colonna */
@media (min-width:768px) and (max-width:1024px){
  .af-carousel-loop .elementor-loop-container{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .af-carousel-loop .e-loop-item > .e-con{--width:100%;width:100%!important;max-width:100%;}
}

/* Card "Cosa facciamo": hover giallo con testo blu (variante Figma) */
.af-cosa{position:relative;transition:background-color var(--af-dur-s) var(--af-ease);}
.af-cosa .elementor-heading-title,.af-cosa .elementor-widget-text-editor,.af-cosa .elementor-icon{transition:color var(--af-dur-s) var(--af-ease),fill var(--af-dur-s) var(--af-ease);}
.af-cosa .elementor-icon svg{transition:fill var(--af-dur-s) var(--af-ease);}
.af-cosa:hover{background-color:var(--e-global-color-secondary)!important;}
.af-cosa:hover .elementor-heading-title,.af-cosa:hover .elementor-widget-text-editor{color:var(--e-global-color-primary)!important;}
.af-cosa:hover .elementor-icon{color:var(--e-global-color-primary)!important;}
.af-cosa:hover .elementor-icon svg{fill:var(--e-global-color-primary)!important;}
.af-cosa-arrow{position:absolute!important;right:49px;bottom:25px;width:auto!important;margin:0!important;}
.af-cosa-arrow .elementor-icon{transition:color var(--af-dur-s) var(--af-ease),transform var(--af-dur-s) var(--af-ease);}
.af-cosa:hover .af-cosa-arrow .elementor-icon{transform:translate(3px,-3px);}
@media (max-width:767px){ .af-cosa-arrow{position:static!important;align-self:flex-end;margin-top:auto!important;} }

/* Card step "Come operiamo": numero e badge cambiano posizione desktop/mobile */
.af-step{position:relative;}
.af-step-num{position:absolute!important;top:24px;right:47px;width:auto!important;margin:0!important;}
.af-step-num .elementor-heading-title{font-family:"Inter",sans-serif!important;font-weight:500!important;font-size:20px!important;line-height:20px!important;}
@media (max-width:767px){
  .af-step-num{position:static!important;}
  .af-step-num .elementor-heading-title{font-family:"Kelson Sans",sans-serif!important;font-weight:700!important;font-size:26px!important;line-height:30px!important;}
  .af-step .e-con:not(.af-step-badge){position:static!important;}
  .af-step-badge{position:absolute!important;top:35px;right:30px;margin:0!important;}
  .af-step--light{background-color:var(--e-global-color-griscar)!important;}
}

/* Card dinamiche (installazioni, articoli) */
.af-card{display:flex;flex-direction:column;text-decoration:none!important;}
.af-card .elementor-widget-image{overflow:hidden;}
.af-card .elementor-widget-image img{transition:transform var(--af-dur-l) var(--af-ease);}
.af-card:hover .elementor-widget-image img{transform:scale(1.04);}
/* Riassunto nelle card: 2 righe (3 su mobile). Il riassunto automatico arriva senza <p>: si limita il widget stesso. */
.af-excerpt p,.af-excerpt:not(:has(p)){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;width:100%;}
@media (max-width:767px){ .af-excerpt p,.af-excerpt:not(:has(p)){-webkit-line-clamp:3;} }

/* Immagini settori: zoom leggero in hover */
.af-settore .elementor-widget-image{overflow:hidden;border-radius:10px;}
.af-settore .elementor-widget-image img{transition:transform var(--af-dur-l) var(--af-ease);}
.af-settore:hover .elementor-widget-image img{transform:scale(1.04);}
/* Icone SVG (Elementor le mette in un quadrato): altezza proporzionale, niente spazio extra */
.elementor-widget-icon .elementor-icon-wrapper{line-height:0;}
.elementor-widget-icon .elementor-icon{line-height:0;}
.elementor-widget-icon .elementor-icon svg{height:auto!important;}
/* LinkedIn nelle card team: riga alta 23 come in Figma */
.af-persona .elementor-widget-icon .elementor-icon{display:flex;align-items:center;height:23px;}
/* Contatori del pannello hero allineati a sinistra */
.af-hero .elementor-counter,.af-numeri .elementor-counter{align-items:flex-start;}
.af-hero .elementor-counter-number-wrapper,.af-numeri .elementor-counter-number-wrapper{justify-content:flex-start!important;text-align:left;}
.af-hero .elementor-counter-title,.af-numeri .elementor-counter-title{text-align:left;justify-content:flex-start;}

/* Breadcrumb: voci precedenti al 50%, voce corrente piena */
.af-breadcrumb p{color:rgba(247,247,248,.5)!important;}
.af-breadcrumb a{color:inherit!important;text-decoration:none;transition:color var(--af-dur-s) var(--af-ease);}
.af-breadcrumb a:hover{color:var(--e-global-color-bianco)!important;}
.af-breadcrumb .af-bc-current{color:var(--e-global-color-bianco);}
.af-breadcrumb--light p{color:rgba(25,58,90,.5)!important;}
.af-breadcrumb--light a:hover,.af-breadcrumb--light .af-bc-current{color:var(--e-global-color-primary)!important;}
/* Divisore verticale (desktop) che diventa orizzontale su mobile */
/* align-self:stretch: la linea si allunga fino alla colonna più alta (124px restano il minimo) */
.af-vdiv{flex:0 0 auto!important;align-self:stretch;}
@media (max-width:767px){ .af-vdiv{background-color:rgba(25,58,90,.15)!important;} }

/* Bottone secondario: bordo blu 1.5 interno (altezza 48 invariata), hover pieno blu */
.af-btn-outline .elementor-button{box-shadow:inset 0 0 0 1.5px var(--e-global-color-primary);transition:background-color var(--af-dur-s) var(--af-ease),color var(--af-dur-s) var(--af-ease);}
.af-btn-outline .elementor-button:hover,.af-btn-outline .elementor-button:focus{background-color:var(--e-global-color-primary)!important;color:var(--e-global-color-bianco)!important;}
/* Elenco con check nelle card servizio: in hover check e testo blu */
.af-cosa .elementor-icon-list-icon svg{transition:fill var(--af-dur-s) var(--af-ease);}
.af-cosa .elementor-icon-list-text{transition:color var(--af-dur-s) var(--af-ease);}
.af-cosa:hover .elementor-icon-list-icon svg{fill:var(--e-global-color-primary)!important;}
.af-cosa:hover .elementor-icon-list-text{color:var(--e-global-color-primary)!important;}
.af-cosa-arrow--low{bottom:12px;}
@media (max-width:767px){ .af-cosa-arrow--low{bottom:auto;} }

/* === FAQ (Nested Accordion .af-faq) — misure Figma === */
.af-faq .e-n-accordion{gap:0!important;}
.af-faq .e-n-accordion-item{border-bottom:1px solid rgba(23,29,39,.2);padding:30px 0;}
.af-faq .e-n-accordion-item:first-child{padding-top:0;}
.af-faq .e-n-accordion-item:last-child{border-bottom:0;padding-bottom:0;}
.af-faq .e-n-accordion-item-title{padding:0!important;border:0!important;background:transparent!important;justify-content:space-between!important;gap:20px;cursor:pointer;}
.af-faq .e-n-accordion-item-title-text{flex:1 1 auto;}
.af-faq .e-n-accordion-item-title-icon{flex:0 0 auto;display:flex;align-items:center;}
.af-faq .e-n-accordion-item-title-icon svg{width:23px!important;height:auto!important;transition:transform var(--af-dur-s) var(--af-ease);}
.af-faq .e-opened svg{transform:rotate(90deg);}
.af-faq .e-n-accordion-item > .e-con{padding:26px 0 0!important;border:0!important;background:transparent!important;}
@media (max-width:767px){
  .af-faq .e-n-accordion-item{border-bottom:1px solid rgba(25,58,90,.12);padding:18px 0;}
  .af-faq .e-n-accordion-item:first-child{padding-top:18px;}
  .af-faq .e-n-accordion-item:last-child{border-bottom:1px solid rgba(25,58,90,.12);padding-bottom:18px;}
  .af-faq .e-n-accordion-item > .e-con{padding-top:12px!important;}
  .af-faq .e-n-accordion-item-title-icon svg{display:none!important;}
  .af-faq .e-n-accordion-item-title-icon .e-opened,.af-faq .e-n-accordion-item-title-icon .e-closed{position:relative;width:22px;height:22px;}
  .af-faq .e-n-accordion-item-title-icon .e-opened::before,.af-faq .e-n-accordion-item-title-icon .e-closed::before,
  .af-faq .e-n-accordion-item-title-icon .e-closed::after{content:"";position:absolute;left:4px;right:4px;top:10px;height:2px;border-radius:1px;background:var(--e-global-color-primary);}
  .af-faq .e-n-accordion-item-title-icon .e-closed::after{transform:rotate(90deg);}
}
/* Righe "È la soluzione giusta se": icona sopra (desktop), a sinistra (mobile) */
.af-check-col .elementor-icon svg{width:14px!important;}
@media (max-width:767px){ .af-vdiv.af-vdiv--light{background-color:rgba(247,247,248,.2)!important;} }

/* === Contatti: griglia (desktop: testi a sinistra + form a destra; mobile: A, form, B) === */
.e-con.af-ct-grid{display:grid!important;grid-template-columns:534px 616px;justify-content:space-between;align-items:start;column-gap:40px;row-gap:42px;
  grid-template-areas:"a f" "b f";}
.af-ct-grid > .af-ga{grid-area:a;}
.af-ct-grid > .af-gb{grid-area:b;}
.af-ct-grid > .af-gf{grid-area:f;}
@media (max-width:1024px){ .e-con.af-ct-grid{grid-template-columns:1fr;grid-template-areas:"a" "f" "b";row-gap:40px;} }
@media (max-width:767px){ .e-con.af-ct-grid{row-gap:22px;} }
/* Form Contatti: righe distanziate 23px (Figma) */
@media (min-width:768px){ .af-form--contatti .frm_forms .frm_fields_container{row-gap:23px!important;} }
@media (min-width:768px){
  .af-form--contatti [id^="frm_field_"][id$="_container"]:has(#field_ct_nome){margin-top:-5px!important;}
  .af-form--contatti .frm_forms .frm_submit{margin-top:-5px!important;}
  .e-con.af-ct-grid{row-gap:40px;}
}
@media (max-width:767px){ .af-form--contatti textarea{height:46px!important;} }

/* === Archivio Installazioni: paginazione (attiva gialla, altre con bordo blu) === */
:is(.af-inst-loop,.af-blog-loop) .elementor-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:49px!important;}
:is(.af-inst-loop,.af-blog-loop) .elementor-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:37px;height:36px;padding:10px 15px;margin:0!important;
  border:1px solid var(--e-global-color-primary);background:#fff;color:var(--e-global-color-primary)!important;text-decoration:none;
  font-family:var(--e-global-typography-accent-font-family),sans-serif;font-weight:700;font-size:16px;line-height:1;transition:background-color var(--af-dur-s) var(--af-ease),color var(--af-dur-s) var(--af-ease);}
:is(.af-inst-loop,.af-blog-loop) .elementor-pagination .page-numbers.current{background:var(--e-global-color-secondary);border-color:var(--e-global-color-secondary);color:#fff!important;}
:is(.af-inst-loop,.af-blog-loop) .elementor-pagination a.page-numbers:hover{background:var(--e-global-color-primary);color:#fff!important;}
:is(.af-inst-loop,.af-blog-loop) .elementor-pagination .page-numbers.prev:not(a),:is(.af-inst-loop,.af-blog-loop) .elementor-pagination .page-numbers.next:not(a){display:none;}
@media (max-width:767px){ :is(.af-inst-loop,.af-blog-loop) .elementor-pagination{margin-top:30px!important;} }
/* Filtro settori: transizione colori */
.af-filtro .e-filter-item{transition:background-color var(--af-dur-s) var(--af-ease),color var(--af-dur-s) var(--af-ease),border-color var(--af-dur-s) var(--af-ease);}
/* Filtro settori: ordine come da bozza (nuovi settori in coda) */
.af-filtro .e-filter{justify-content:flex-start!important;}
.af-filtro .e-filter-item{order:50;}
.af-filtro .e-filter-item[data-filter="__all"]{order:0;}
.af-filtro .e-filter-item[data-filter="metalmeccanica"]{order:1;}
.af-filtro .e-filter-item[data-filter="agroalimentare"]{order:2;}
.af-filtro .e-filter-item[data-filter="logistica"]{order:3;}
.af-filtro .e-filter-item[data-filter="plastica"]{order:4;}
.af-filtro .e-filter-item[data-filter="tessile"]{order:5;}
.af-filtro .e-filter-item[data-filter="automotive"]{order:6;}
.af-filtro .e-filter-item[data-filter="gdo"]{order:7;}
.af-filtro .e-filter-item[data-filter="agricoltura"]{order:8;}
/* Filtro settori: se non resta nessun settore popolato (solo "Tutti" o nessuna voce) la barra sparisce */
body:not(.elementor-editor-active) .af-filtro:not(:has(.e-filter-item:not([data-filter="__all"]))){display:none;}
@media (max-width:767px){
.af-filtro .e-filter{flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-20px;padding-right:20px;}
.af-filtro .e-filter::-webkit-scrollbar{display:none;}
.af-filtro .e-filter-item{flex:0 0 auto;}
}
/* Case history (singolo installazione) */
.e-con.af-ch-cols>.e-con{--width:auto;width:auto;flex:1 1 0;min-width:0;}
.af-bc-row .elementor-heading-title{white-space:pre-wrap;}
.af-bc-row .af-breadcrumb p{margin:0;}
.af-punti{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:34.07% 33.61% minmax(0,1fr);column-gap:0;row-gap:37px;}
.af-punti li{padding-right:16px!important;}
.af-punti li:nth-child(3n){padding-right:0!important;}
.af-punti li{margin:0;padding:0;}
.af-punti li::before{content:"";display:block;width:14px;height:13px;margin-bottom:12px;background:url("../../../../uploads/af-assets/check-giallo.svg") no-repeat 0 0/contain;}
@media (max-width:1024px){ .af-punti{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:30px;} .af-punti li{padding-right:0!important;} }
@media (max-width:767px){
  .e-con.af-ch-cols>.e-con{flex:0 0 auto;width:100%;--width:100%;}
  .e-con.af-hug.af-meta{flex:0 0 calc(50% - 10px);width:calc(50% - 10px);}
  .af-punti{grid-template-columns:1fr;row-gap:22px;}
  .af-punti li::before{margin-bottom:8px;}
}

/* === Testo SEO con "Leggi di più" (widget Editor di testo con classe .af-seo) ===
   Il cliente scrive titoli, paragrafi ed elenchi nell'editor. Tutto il testo è nell'HTML (indicizzato);
   lo script mostra titolo + primi paragrafi e raccoglie il resto in .af-seo-more. Nell'editor si vede tutto. */
.af-seo{--af-seo-gap:30px;}
@media (max-width:767px){ .af-seo{--af-seo-gap:26px;} }
.af-seo :where(h1,h2,h3,h4,p,ul,ol){margin:0;}
/* spazi: 30px fra i blocchi (come la bozza); sottotitoli con più stacco sopra e vicini al proprio testo */
.af-seo :where(h1,h2,h3,h4,p,ul,ol,.af-seo-more) + :where(h1,h2,h3,h4,p,ul,ol){margin-top:var(--af-seo-gap);}
.af-seo :where(p,ul,ol,.af-seo-more) + :where(h3,h4){margin-top:2em;}
.af-seo :where(h3,h4) + :where(p,ul,ol){margin-top:.6em;}
.af-seo .af-seo-more > :first-child{margin-top:0;}
.af-seo .af-seo-more > :where(h3,h4):first-child{margin-top:.5em;}
.af-seo :is(h1,h2){font-family:var(--e-global-typography-cardgr-font-family),sans-serif;font-weight:700;font-size:var(--e-global-typography-cardgr-font-size);line-height:var(--e-global-typography-cardgr-line-height);text-transform:none;color:var(--e-global-color-primary);}
.af-seo :is(h3,h4){font-family:var(--e-global-typography-tit4-font-family),sans-serif;font-weight:700;font-size:var(--e-global-typography-tit4-font-size);line-height:var(--e-global-typography-tit4-line-height);text-transform:none;color:var(--e-global-color-primary);}
.af-seo strong,.af-seo b{font-weight:600;}
.af-seo :is(ul,ol){padding-left:1.25em;}
.af-seo li + li{margin-top:.35em;}
.af-seo li::marker{color:var(--e-global-color-primary);}
.af-seo a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.af-seo-more{overflow:hidden;height:0;margin-top:0;opacity:0;
  transition:height var(--af-dur-m) var(--af-ease),opacity var(--af-dur-m) var(--af-ease),margin-top var(--af-dur-m) var(--af-ease);}
.af-seo.is-open .af-seo-more{opacity:1;margin-top:var(--af-seo-gap);}
.af-seo .af-seo-toggle{display:inline-block;min-height:0;box-shadow:none;margin:36px 0 0;padding:0;border:0;border-radius:0;background:none;cursor:pointer;
  font-family:var(--e-global-typography-accent-font-family),sans-serif;font-weight:700;font-size:var(--e-global-typography-accent-font-size);
  line-height:1;letter-spacing:var(--e-global-typography-accent-letter-spacing);text-transform:uppercase;color:var(--e-global-color-primary);
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--af-dur-s) var(--af-ease);}
.af-seo .af-seo-toggle:hover,.af-seo .af-seo-toggle:focus,.af-seo .af-seo-toggle:active,.af-seo .af-seo-toggle:focus-visible{background:none;background-color:transparent;border:0;box-shadow:none;color:var(--e-global-color-primary);}
.af-seo .af-seo-toggle:hover,.af-seo .af-seo-toggle:focus-visible{text-decoration-color:currentColor;}
.af-seo .af-seo-toggle:focus-visible{outline:2px solid var(--e-global-color-primary);outline-offset:4px;}
@media (max-width:767px){ .af-seo .af-seo-toggle{margin-top:28px;} }
@media (prefers-reduced-motion:reduce){ .af-seo-more{transition:none;} }

/* Griglia a 3 colonne (classe af-griglia-3 sul contenitore, es. blocchi della pagina Partner).
   Su desktop ogni blocco è largo un terzo meno i due spazi da 20px (lo spazio fra i blocchi impostato nel contenitore):
   sempre 3 per riga a qualsiasi larghezza. Tablet e mobile seguono le larghezze impostate in Elementor. */
@media (min-width:1025px){
  .af-griglia-3 > .e-con{--width:calc((100% - 40px) / 3)!important;max-width:none;}
}

/* Sezione "Analisi dei Costi" (template globale, anche nel popup): colonna testo 560px + pannello form 616px + 30px
   non stanno sotto ~1250px di finestra. Su desktop le due colonne si restringono in proporzione
   e i testi larghi 520px non escono dalla propria colonna. A 1312px di contenuto nulla cambia. */
@media (min-width:1025px){
  .af-sec-analisi > .e-con-inner > .e-con{flex-shrink:1!important;min-width:0;}
  .af-sec-analisi > .e-con-inner > .e-con .elementor-widget{max-width:100%!important;}
}

/* Portatili (1025–1399px): molte colonne hanno larghezze fisse in px dalla bozza a 1512 (535, 646, 424…)
   e non stanno più nei 1312px di contenuto quando la finestra è più stretta: la pagina scorreva in orizzontale.
   Qui le colonne possono restringersi in proporzione. Da 1400px in su il layout è quello della bozza.
   Footer: la colonna Contatti (che riempie lo spazio rimasto) tiene almeno la larghezza della riga "E. email", le altre si stringono. */
@media (min-width:1025px) and (max-width:1399px){
  .e-con > .e-con:not(.af-vdiv),.e-con-inner > .e-con:not(.af-vdiv){flex-shrink:1!important;}
  .af-footer > .e-con-inner > .e-con:first-child > .e-con:last-child{min-width:max-content;}
  /* Contatti: colonne 534 + 616 in proporzione */
  .e-con.af-ct-grid{grid-template-columns:minmax(0,534fr) minmax(0,616fr);}
  /* Case history in Home: le card (386px) riempiono la propria colonna */
  .af-carousel-loop .elementor-loop-container{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .af-carousel-loop .e-loop-item > .e-con{--width:100%;width:100%!important;max-width:100%;}
  /* Fascia loghi: i loghi si riducono un poco invece di uscire dal bordo */
  .af-logos > .elementor-widget{flex-shrink:1!important;min-width:0;}
}

/* === Blog === */
/* Paginazione archivio: 44px sotto le card (bozza) */
.af-blog-loop .elementor-pagination{margin-top:44px!important;}
@media (max-width:767px){ .af-blog-loop .elementor-pagination{margin-top:30px!important;} }
/* Data articolo: "02 Novembre 2026" */
.af-art-data .elementor-heading-title{text-transform:capitalize;}

/* Testo dell'articolo (editor di WordPress), colonna 868px.
   Paragrafi separati da una riga vuota, titoli attaccati al proprio testo, come in bozza. */
.af-art-body{--af-art-gap:calc(var(--e-global-typography-text-font-size,16px) * 1.6);color:var(--e-global-color-primary);
  font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:var(--e-global-typography-text-font-size);
  line-height:var(--e-global-typography-text-line-height);font-weight:var(--e-global-typography-text-font-weight);}
.af-art-body :where(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,table,blockquote){margin:0;}
.af-art-body :where(p,ul,ol,figure,blockquote,.wp-block-image) + :where(p,ul,ol,figure,blockquote,.wp-block-image){margin-top:var(--af-art-gap);}
.af-art-body :where(p) + :where(ul,ol){margin-top:.4em;}
.af-art-body * + :where(h2,h3,h4,h5,h6){margin-top:var(--af-art-gap);}
.af-art-body :where(h2,h3,h4,h5,h6) + *{margin-top:.35em;}
.af-art-body :is(h1,h2,h3){font-family:var(--e-global-typography-secondary-font-family),sans-serif;font-weight:700;
  font-size:var(--e-global-typography-secondary-font-size);line-height:var(--e-global-typography-secondary-line-height);text-transform:none;color:var(--e-global-color-primary);}
.af-art-body :is(h4,h5,h6){font-family:var(--e-global-typography-tit4-font-family),sans-serif;font-weight:700;
  font-size:var(--e-global-typography-tit4-font-size);line-height:var(--e-global-typography-tit4-line-height);text-transform:none;color:var(--e-global-color-primary);}
.af-art-body strong,.af-art-body b{font-weight:600;}
.af-art-body a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.af-art-body :is(ul,ol){padding-left:1.25em;}
.af-art-body li + li{margin-top:.35em;}
.af-art-body li::marker{color:var(--e-global-color-primary);}
.af-art-body hr{display:none;}
.af-art-body img{max-width:100%;height:auto;border-radius:10px;}
/* Tabelle: righe con filetto, intestazione su grigio card; su mobile scorrono in orizzontale */
.af-art-body .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.af-art-body table{width:100%;border-collapse:collapse;font-size:.9375em;line-height:1.45;}
.af-art-body :is(th,td){padding:12px 16px;text-align:left;vertical-align:top;border:0;border-bottom:1px solid var(--e-global-color-bordo)!important;}
.af-art-body .wp-block-table :is(thead,tfoot){border:0!important;}
.af-art-body table tr > :is(th,td){background:transparent!important;border-top:0!important;border-left:0!important;border-right:0!important;}
.af-art-body table thead th{background:var(--e-global-color-griscar)!important;font-weight:600;border-bottom:1px solid var(--e-global-color-bordo)!important;}
.af-art-body tbody tr:last-child :is(th,td){border-bottom:0!important;}
@media (max-width:767px){
  .af-art-body table{min-width:560px;}
  .af-art-body :is(th,td){padding:10px 12px;}
}

/* Caricamento CV (Formidable Pro, campo file .af-cv): riquadro bianco basso come gli altri campi, bordo tratteggiato */
.af-form .af-cv .frm_dropzone{position:relative;max-width:none;min-height:0;margin:0;padding:14px 16px;background:#fff;border:1px dashed rgba(25,58,90,.45);border-radius:0;
  cursor:pointer;transition:border-color var(--af-dur-s) var(--af-ease),box-shadow var(--af-dur-s) var(--af-ease);}
.af-form .af-cv .frm_dropzone:hover,.af-form .af-cv .frm_dropzone.dz-drag-hover{border-color:var(--e-global-color-primary);box-shadow:0 0 0 1px var(--e-global-color-primary);}
.af-form .af-cv .dz-message{display:grid;grid-template-columns:20px 1fr;column-gap:12px;row-gap:2px;align-items:center;margin:0;padding:0;text-align:left;border:0;background:none;}
.af-form .af-cv .dz-message svg{grid-row:1 / span 2;width:20px;height:20px;fill:var(--e-global-color-primary);}
.af-form .af-cv .frm_compact_text{display:none;}
.af-form .af-cv .dz-message .frm_upload_text button,
.af-form .af-cv .dz-message .frm_upload_text button:hover,
.af-form .af-cv .dz-message .frm_upload_text button:focus,
.af-form .af-cv .dz-message .frm_upload_text button:active{display:inline;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;cursor:pointer;
  font-family:var(--e-global-typography-frmcam-font-family),sans-serif;font-weight:400;font-size:var(--e-global-typography-frmcam-font-size);line-height:1.4;
  letter-spacing:0;text-transform:none;text-align:left;color:var(--e-global-color-primary);}
.af-form .af-cv .dz-message .frm_upload_text button:focus-visible{outline:2px solid var(--e-global-color-primary);outline-offset:3px;}
.af-form .af-cv .frm_small_text,.af-form .af-cv .frm_small_text p{margin:0;font-family:var(--e-global-typography-frmnot-font-family),sans-serif;font-size:var(--e-global-typography-frmnot-font-size);line-height:1.4;color:rgba(25,58,90,.7);}
/* file scelto: nome, peso e "rimuovi" sotto il riquadro */
.af-form .af-cv .dz-preview{display:flex;align-items:center;gap:12px;margin:10px 0 0;padding:10px 14px;background:#fff;min-height:0;}
.af-form .af-cv .dz-preview .dz-image,.af-form .af-cv .dz-preview .frm_file_icon,.af-form .af-cv .dz-preview img{display:none;}
.af-form .af-cv .dz-preview .dz-details,.af-form .af-cv .dz-preview .dz-column{flex:1 1 auto;min-width:0;margin:0;padding:0;}
.af-form .af-cv .dz-preview :is(.dz-filename,.dz-filename span){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:var(--e-global-typography-frmcam-font-family),sans-serif;font-size:var(--e-global-typography-frmcam-font-size);color:var(--e-global-color-primary);}
.af-form .af-cv .dz-preview .dz-size{font-size:11px;color:rgba(25,58,90,.7);}
.af-form .af-cv .dz-preview .dz-progress{height:3px;margin-top:6px;background:rgba(25,58,90,.12);overflow:hidden;}
.af-form .af-cv .dz-preview .dz-upload{display:block;height:100%;width:0;background:var(--e-global-color-primary);transition:width var(--af-dur-s) var(--af-ease);}
.af-form .af-cv .dz-preview.dz-complete .dz-progress{display:none;}
.af-form .af-cv .dz-preview .dz-error-message{color:#9B1C1C;font-size:12px;}
.af-form .af-cv .dz-preview :is(.dz-remove,.frm_remove_link){flex:0 0 auto;font-size:12px;color:var(--e-global-color-primary);text-decoration:underline;cursor:pointer;}
/* Diventa agente: su mobile il campo "Presentati" resta alto (nel form Contatti è basso da bozza) */
@media (max-width:767px){ .af-form--agente textarea{height:96px!important;} }

/* Team Chi siamo su tablet e portatili (768-1399px): sempre 3 card per riga che riempiono la riga (le larghezze fisse/percentuali andavano a 2 per riga) */
@media (min-width:768px) and (max-width:1399px){ .af-persona{--width:calc((100% - 42px) / 3)!important;} }

/* Team: l'icona LinkedIn si vede solo se nella card c'è un indirizzo vero (campo vuoto o "#" = nascosta). Nell'editor resta visibile per poterla modificare. */
body:not(.elementor-editor-active) .af-persona .elementor-widget-icon:not(:has(a[href]:not([href="#"]):not([href=""]))){display:none;}

/* Galleria case history ([af_galleria]): due foto per riga alte come le vecchie Foto 1/2 (528 / 360 / 220), dispari = ultima a tutta riga */
.af-galleria{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.af-galleria__foto{display:block;height:528px;border-radius:20px;overflow:hidden;}
.af-galleria__foto:last-child:nth-child(odd){grid-column:1 / -1;}
.af-galleria__foto img{display:block;width:100%;height:100%;object-fit:cover;}
@media (max-width:1024px){ .af-galleria__foto{height:360px;} }
@media (max-width:767px){
  .af-galleria{grid-template-columns:minmax(0,1fr);gap:14px;}
  .af-galleria__foto{height:220px;border-radius:10px;}
}
/* "Altre installazioni": se la parte "I risultati" non c'è (campi vuoti) il titolo sale in cima alla sezione */
.elementor-element.af-altre-titolo:first-child{margin-top:0!important;}
