.elementor-kit-476813{--e-global-color-primary:#000000;--e-global-color-secondary:#E30613;--e-global-color-text:#1A1A1A;--e-global-color-accent:#E30613;--e-global-color-7511243e:#4054B2;--e-global-color-2bf1a3e9:#23A455;--e-global-color-7de7dea3:#000;--e-global-color-2f9efb72:#FFF;--e-global-color-e8d58ba:#C12E1F;--e-global-color-478f046:#F5F5F5;--e-global-color-04a5f73:#D6A938;--e-global-color-f0a60dd:#E30613;--e-global-color-38ee40c:#C12E1F;--e-global-color-386b7d8:#F4F4F4;--e-global-color-6842347:#E5E5E5;--e-global-color-83a32a8:#353535;--e-global-color-90cd5fa:#7900FF;--e-global-color-a72306b:#4B4B4B;--e-global-typography-primary-font-family:"Manrope";--e-global-typography-primary-font-weight:300;--e-global-typography-secondary-font-family:"Manrope";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-weight:300;--e-global-typography-accent-font-family:"Manrope";--e-global-typography-accent-font-weight:500;--e-global-typography-3f189b5-font-family:"Manrope";--e-global-typography-3f189b5-font-size:48px;--e-global-typography-3f189b5-font-weight:400;--e-global-typography-3f189b5-line-height:1.35em;--e-global-typography-58a63df-font-family:"Manrope";--e-global-typography-58a63df-font-size:30px;--e-global-typography-58a63df-font-weight:400;--e-global-typography-58a63df-line-height:1.35em;--e-global-typography-dfh1-font-family:"Manrope";--e-global-typography-dfh1-font-size:60px;--e-global-typography-dfh1-font-weight:300;--e-global-typography-dfh1-line-height:1.35em;--e-global-typography-dfh3-font-family:"Manrope";--e-global-typography-dfh3-font-size:37px;--e-global-typography-dfh3-font-weight:400;--e-global-typography-dfh3-line-height:1.35em;--e-global-typography-dfh5-font-family:"Manrope";--e-global-typography-dfh5-font-size:26px;--e-global-typography-dfh5-font-weight:400;--e-global-typography-dfh5-line-height:1.35em;--e-global-typography-dfh6-font-family:"Manrope";--e-global-typography-dfh6-font-size:20px;--e-global-typography-dfh6-font-weight:500;--e-global-typography-dfh6-line-height:1.35em;--e-global-typography-dfbody-font-family:"Inter";--e-global-typography-dfbody-font-size:16px;--e-global-typography-dfbody-font-weight:300;--e-global-typography-dfbody-line-height:2em;--e-global-typography-dflabel-font-family:"Manrope";--e-global-typography-dflabel-font-size:16px;--e-global-typography-dflabel-font-weight:600;--e-global-typography-dflabel-line-height:1.35em;--e-global-typography-dfsmall-font-family:"Manrope";--e-global-typography-dfsmall-font-size:13px;--e-global-typography-dfsmall-font-weight:500;--e-global-typography-dfsmall-line-height:1.35em;color:var( --e-global-color-text );font-family:"Inter", Sans-serif;font-size:16px;font-weight:300;line-height:1.35em;}.elementor-kit-476813 button,.elementor-kit-476813 input[type="button"],.elementor-kit-476813 input[type="submit"],.elementor-kit-476813 .elementor-button{background-color:var( --e-global-color-primary );font-family:"Inter", Sans-serif;font-size:18px;font-weight:500;text-transform:none;line-height:1em;color:var( --e-global-color-2f9efb72 );border-style:solid;border-width:0px 0px 0px 0px;border-color:var( --e-global-color-2f9efb72 );border-radius:8px 8px 8px 8px;padding:20px 35px 20px 035px;}.elementor-kit-476813 button:hover,.elementor-kit-476813 button:focus,.elementor-kit-476813 input[type="button"]:hover,.elementor-kit-476813 input[type="button"]:focus,.elementor-kit-476813 input[type="submit"]:hover,.elementor-kit-476813 input[type="submit"]:focus,.elementor-kit-476813 .elementor-button:hover,.elementor-kit-476813 .elementor-button:focus{background-color:var( --e-global-color-text );color:var( --e-global-color-2f9efb72 );}.elementor-kit-476813 e-page-transition{background-color:#FFBC7D;}.elementor-kit-476813 a{color:var( --e-global-color-text );font-family:"Manrope", Sans-serif;font-weight:500;}.elementor-kit-476813 h1{color:var( --e-global-color-primary );font-family:var( --e-global-typography-dfh1-font-family ), Sans-serif;font-size:var( --e-global-typography-dfh1-font-size );font-weight:var( --e-global-typography-dfh1-font-weight );line-height:var( --e-global-typography-dfh1-line-height );}.elementor-kit-476813 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-3f189b5-font-family ), Sans-serif;font-size:var( --e-global-typography-3f189b5-font-size );font-weight:var( --e-global-typography-3f189b5-font-weight );line-height:var( --e-global-typography-3f189b5-line-height );letter-spacing:var( --e-global-typography-3f189b5-letter-spacing );word-spacing:var( --e-global-typography-3f189b5-word-spacing );}.elementor-kit-476813 h3{color:var( --e-global-color-primary );font-family:var( --e-global-typography-dfh3-font-family ), Sans-serif;font-size:var( --e-global-typography-dfh3-font-size );font-weight:var( --e-global-typography-dfh3-font-weight );line-height:var( --e-global-typography-dfh3-line-height );}.elementor-kit-476813 h4{color:var( --e-global-color-primary );font-family:var( --e-global-typography-58a63df-font-family ), Sans-serif;font-size:var( --e-global-typography-58a63df-font-size );font-weight:var( --e-global-typography-58a63df-font-weight );line-height:var( --e-global-typography-58a63df-line-height );}.elementor-kit-476813 h5{color:var( --e-global-color-primary );font-family:var( --e-global-typography-dfh5-font-family ), Sans-serif;font-size:var( --e-global-typography-dfh5-font-size );font-weight:var( --e-global-typography-dfh5-font-weight );line-height:var( --e-global-typography-dfh5-line-height );}.elementor-kit-476813 h6{color:var( --e-global-color-primary );font-family:var( --e-global-typography-dfh6-font-family ), Sans-serif;font-size:var( --e-global-typography-dfh6-font-size );font-weight:var( --e-global-typography-dfh6-font-weight );line-height:var( --e-global-typography-dfh6-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1290px;}.e-con{--container-max-width:1290px;--container-default-padding-top:30px;--container-default-padding-right:30px;--container-default-padding-bottom:30px;--container-default-padding-left:30px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-476813{--e-global-typography-3f189b5-font-size:38px;--e-global-typography-58a63df-font-size:27px;--e-global-typography-dfh1-font-size:48px;--e-global-typography-dfh3-font-size:32px;--e-global-typography-dfh5-font-size:23px;}.elementor-kit-476813 h1{font-size:var( --e-global-typography-dfh1-font-size );line-height:var( --e-global-typography-dfh1-line-height );}.elementor-kit-476813 h2{font-size:var( --e-global-typography-3f189b5-font-size );line-height:var( --e-global-typography-3f189b5-line-height );letter-spacing:var( --e-global-typography-3f189b5-letter-spacing );word-spacing:var( --e-global-typography-3f189b5-word-spacing );}.elementor-kit-476813 h3{font-size:var( --e-global-typography-dfh3-font-size );line-height:var( --e-global-typography-dfh3-line-height );}.elementor-kit-476813 h4{font-size:var( --e-global-typography-58a63df-font-size );line-height:var( --e-global-typography-58a63df-line-height );}.elementor-kit-476813 h5{font-size:var( --e-global-typography-dfh5-font-size );line-height:var( --e-global-typography-dfh5-line-height );}.elementor-kit-476813 h6{font-size:var( --e-global-typography-dfh6-font-size );line-height:var( --e-global-typography-dfh6-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;--container-default-padding-top:24px;--container-default-padding-right:24px;--container-default-padding-bottom:24px;--container-default-padding-left:24px;}}@media(max-width:767px){.elementor-kit-476813{--e-global-typography-3f189b5-font-size:32px;--e-global-typography-58a63df-font-size:24px;--e-global-typography-dfh1-font-size:40px;--e-global-typography-dfh3-font-size:26px;--e-global-typography-dfh5-font-size:20px;--e-global-typography-dfh6-font-size:18px;--e-global-typography-dfbody-font-size:16px;--e-global-typography-dflabel-font-size:14px;--e-global-typography-dfsmall-font-size:12px;}.elementor-kit-476813 h1{font-size:var( --e-global-typography-dfh1-font-size );line-height:var( --e-global-typography-dfh1-line-height );}.elementor-kit-476813 h2{font-size:var( --e-global-typography-3f189b5-font-size );line-height:var( --e-global-typography-3f189b5-line-height );letter-spacing:var( --e-global-typography-3f189b5-letter-spacing );word-spacing:var( --e-global-typography-3f189b5-word-spacing );}.elementor-kit-476813 h3{font-size:var( --e-global-typography-dfh3-font-size );line-height:var( --e-global-typography-dfh3-line-height );}.elementor-kit-476813 h4{font-size:var( --e-global-typography-58a63df-font-size );line-height:var( --e-global-typography-58a63df-line-height );}.elementor-kit-476813 h5{font-size:var( --e-global-typography-dfh5-font-size );line-height:var( --e-global-typography-dfh5-line-height );}.elementor-kit-476813 h6{font-size:var( --e-global-typography-dfh6-font-size );line-height:var( --e-global-typography-dfh6-line-height );}.elementor-kit-476813 button,.elementor-kit-476813 input[type="button"],.elementor-kit-476813 input[type="submit"],.elementor-kit-476813 .elementor-button{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:16px;--container-default-padding-right:16px;--container-default-padding-bottom:16px;--container-default-padding-left:16px;}}:root { --black:#000000; --DUP_black:#000000; --brand:#D53221; --black_1:#000000; --border:#CECECE; --bg-light:#F4F4F4; --white:#FFFFFF; --color-2:#4B4B4B; --color-3:#818080; --color-4:#A8A8A840; --color-5:#787878; --color-6:#747373; --color-7:#CE2B37; --color-8:#009246; --color-9:#EEEEEE; --color-10:#E9E9E9; --color-11:#939393; --color-12:#3D3D3D; --color-13:#FDFBFBD4; --color-14:#808080; --color-15:#E5D9D9; --color-16:#141414DB; --color-17:#484343; --color-18:#1B1B1B; --DUP_black1:#000000; --DUP_black2:#000000; --DUP_white:#FFFFFF; --DUP_brand:#D53221; --DUP_black3:#000000; --DUP_white1:#FFFFFF; --DUP_brand1:#D53221; --DUP_black_1:#000000; --DUP_black21:#000000; --DUP_black_11:#000000; --DUP_black22:#000000; --DUP_black_12:#000000; --DUP_black23:#000000; --DUP_black24:#000000; --DUP_black25:#000000; --DUP_black26:#000000; --DUP_black_13:#000000; --DUP_black251:#000000; --DUP_black261:#000000; --DUP_black27:#000000; --DUP_black28:#000000; --DUP_black29:#000000; --DUP_black210:#000000; --DUP_black211:#000000; --DUP_black212:#000000; --DUP_black_14:#000000; --DUP_black_15:#000000; --DUP_black_16:#000000; --DUP_black_17:#000000; --DUP_black2101:#000000; --DUP_black2111:#000000; --DUP_black213:#000000; --DUP_black_18:#000000; --DUP_black2102:#000000; --DUP_black2112:#000000; --DUP_black_19:#000000; --DUP_black2103:#000000; --DUP_black2113:#000000; --DUP_black_110:#000000; --DUP_black2104:#000000; --DUP_black2114:#000000; --DUP_black_111:#000000; --DUP_black2105:#000000; --DUP_black2115:#000000; --DUP_black_112:#000000; --DUP_black2106:#000000; --DUP_black2116:#000000; --DUP_black214:#000000; --section-padding:120px; --DUP_black_113:#000000; --DUP_black215:#000000; --DUP_black_114:#000000; --DUP_black216:#000000; --DUP_border:#CECECE; --DUP_white2:#FFFFFF; --DUP_black_115:#000000; --DUP_black217:#000000; --DUP_black_116:#000000; --DUP_black218:#000000; --DUP_white3:#FFFFFF; --DUP_black_117:#000000; --DUP_black219:#000000; --DUP_black_118:#000000; --DUP_black_119:#000000; --DUP_black220:#000000; --DUP_black221:#000000; --DUP_black_120:#000000; --DUP_black2201:#000000; --DUP_black2211:#000000; --DUP_black_121:#000000; --DUP_black2202:#000000; --DUP_black2212:#000000; --DUP_black_122:#000000; --DUP_black2203:#000000; --DUP_black2213:#000000; --DUP_black222:#000000; --DUP_brand2:#D53221; --DUP_bg-light:#F4F4F4; --DUP_black_123:#000000; --DUP_black223:#000000; --DUP_white4:#FFFFFF; --DUP_black224:#000000; --DUP_black225:#000000; --DUP_black226:#000000; --DUP_black227:#000000; --DUP_black228:#000000; --DUP_black229:#000000; --DUP_black230:#000000; --DUP_black_124:#000000; --DUP_black231:#000000; --DUP_brand3:#D53221; --DUP_bg-light1:#F4F4F4; --DUP_black232:#000000; --DUP_black233:#000000; --DUP_black234:#000000; --DUP_black235:#000000; --DUP_black236:#000000; --DUP_black_1191:#000000; --DUP_black237:#000000; --DUP_black238:#000000; --DUP_black239:#000000; }
/* Start custom CSS *//* =============================================================================
   AVE - CSS custom (Elementor)
   rev 2026-07-28: separati GUTTER e MISURA del contenuto (max 1290px).
   Commenti in ASCII puro per evitare problemi di encoding.
   ============================================================================= */

/* ===== AVE design tokens - PILOT + migrazione (scope body) ===== */
body {
  --ave-color-brand: var(--e-global-color-f0a60dd);
  --ave-color-brand-dark: var(--e-global-color-38ee40c);
  --ave-color-surface: var(--e-global-color-386b7d8);
  --ave-color-border: var(--e-global-color-6842347);
  --ave-color-white: #ffffff;
  --ave-color-black: #000000;
  --ave-color-text: #4b4b4b;
  --ave-button-radius: 8px;
  --ave-button-transition-duration: 200ms;
  --ave-button-font-size: 16px;
  --ave-button-wide-padding-top: 20px;
  --ave-button-wide-padding-right: 35px;
  --ave-button-wide-padding-bottom: 20px;
  --ave-button-wide-padding-left: 35px;
  --ave-button-default-padding-top: 25px;
  --ave-button-default-padding-right: 30px;
  --ave-button-default-padding-bottom: 25px;
  --ave-button-default-padding-left: 30px;
  --ave-card-radius: 0px;
  --ave-card-border: 0 solid transparent;
  --ave-card-shadow: none;
  --ave-image-radius: 8px;
}

@media (max-width: 1024px) {
  body {
    --ave-button-font-size: 16px;
    --ave-button-wide-padding-top: 20px;
    --ave-button-wide-padding-right: 20px;
    --ave-button-wide-padding-bottom: 20px;
    --ave-button-wide-padding-left: 20px;
    --ave-button-default-padding-top: 20px;
    --ave-button-default-padding-right: 20px;
    --ave-button-default-padding-bottom: 20px;
    --ave-button-default-padding-left: 20px;
  }
}

@media (max-width: 767px) {
  body {
    --ave-button-default-padding-top: 15px;
    --ave-button-default-padding-right: 20px;
    --ave-button-default-padding-bottom: 15px;
    --ave-button-default-padding-left: 20px;
  }
}

body{
    overflow-x: hidden;
}

/* base: radius + transizione (tutte le ave-button) */
.ave-button .elementor-button {
  border-radius: var(--ave-button-radius);
  transition:
    background-color var(--ave-button-transition-duration) ease,
    color var(--ave-button-transition-duration) ease,
    border-color var(--ave-button-transition-duration) ease;
}

/* font-size: solo famiglie migrate (le eccezioni mantengono l'inline) */
.ave-button--wide .elementor-button,
.ave-button--default .elementor-button {
  font-size: var(--ave-button-font-size);
}

/* varianti padding */
.ave-button--wide .elementor-button {
  padding: var(--ave-button-wide-padding-top)
    var(--ave-button-wide-padding-right)
    var(--ave-button-wide-padding-bottom)
    var(--ave-button-wide-padding-left);
}

.ave-button--default .elementor-button {
  padding: var(--ave-button-default-padding-top)
    var(--ave-button-default-padding-right)
    var(--ave-button-default-padding-bottom)
    var(--ave-button-default-padding-left);
}

/* variante colore brand (pronta, non applicata) */
.ave-button--brand .elementor-button {
  background-color: var(--ave-color-brand);
  border-color: var(--ave-color-brand);
}

.ave-button--brand .elementor-button:hover,
.ave-button--brand .elementor-button:focus-visible {
  background-color: var(--ave-color-brand-dark);
  border-color: var(--ave-color-brand-dark);
}

/* card */
.ave-card {
  border: var(--ave-card-border);
  border-radius: var(--ave-card-radius);
  box-shadow: var(--ave-card-shadow);
}

.ave-card-image img {
  border-radius: var(--ave-image-radius);
}

/* bordo arrotondato riutilizzabile - funziona su container (anche con immagine
   di sfondo) e su elementi normali. Classe da mettere nel campo CSS Classes. */
.elementor-element.ave-round {
  border-radius: var(--ave-image-radius);
  overflow: hidden;
}

/* =============================================================================
   AVE spacing system - rev 2026-07-28
   -----------------------------------------------------------------------------
   TRE scale, un'unica fonte di verita':

   1) SCALA SEZIONE   (--ave-space-*) : ritmo VERTICALE tra/attorno alle sezioni
                                        (grande: 24 -> 150px). Alimenta py/px.
   2) SCALA CONTENUTO (--ave-gap-*)   : ritmo INTERNO, gap TRA gli elementi
                                        dentro una sezione (fine: 4 -> 64px).
   3) MISURA          (--ave-content-max + --ave-gutter -> --ave-pad-x)
                                        governa l'asse ORIZZONTALE.

   COME FUNZIONA --ave-pad-x:
     max(gutter, (100% - 1290px) / 2)
   - viewport  vince il gutter, contenuto fluido;
   - viewport > 1290 + 2*gutter  -> vince (100% - 1290)/2, contenuto centrato
                                    e bloccato a 1290px.
   => il cap 1290 e' attivo a TUTTI i breakpoint, non serve ripeterlo nelle
      media query (dentro le MQ si cambia solo il gutter).

   ATTENZIONE (due gotcha):
   - il 100% della formula si risolve sulla larghezza del CONTENITORE PADRE:
     usa .ave-section--box / .ave-measure-x solo su sezioni di PRIMO LIVELLO,
     altrimenti il padding si somma a quello del genitore.
   - i container Elementor BOXED mettono un max-width proprio (Content Width)
     su > .e-con-inner: qui lo azzeriamo, la misura la fa solo --ave-pad-x
     sull'esterno. Cosi' boxed e full-width si comportano identici.
   ============================================================================= */
body {
  /* --- 1. scala SEZIONE (ritmo verticale) --- */
  --ave-space-xs: 24px;
  --ave-space-sm: 50px;
  --ave-space-md: 100px;
  --ave-space-lg: 120px;
  --ave-space-xl: 150px;

  /* --- 2. scala CONTENUTO (ritmo interno, gap tra elementi) --- */
  --ave-gap-3xs: 4px;
  --ave-gap-2xs: 8px;
  --ave-gap-xs: 12px;
  --ave-gap-sm: 16px;
  --ave-gap-md: 24px;
  --ave-gap-lg: 32px;
  --ave-gap-xl: 48px;
  --ave-gap-2xl: 64px;

  /* --- 3. MISURA (asse orizzontale) --- */
  --ave-content-max: 1290px;  /* larghezza massima del contenuto */
  --ave-gutter: 40px;         /* aria ai bordi: 40 / 32 / 20 */
  --ave-pad-x: max(var(--ave-gutter), (100% - var(--ave-content-max)) / 2);
  --ave-measure-article: 740px; /* misura di lettura articoli (concetto a parte) */

  /* padding VERTICALE del blocco boxed: resta sulla scala sezione (120/64/24) */
  --ave-box-py: var(--ave-space-lg);

  /* gap interno del blocco boxed = gradino della scala contenuto */
  --ave-box-gap: var(--ave-gap-lg);   /* 32 / 24 / 16 */

  /* gap variante template 2 colonne (one-off, non allineato alla scala) */
  --ave-gap-2col: 80px;               /* 80 / 32 / 24 */

  /* alias retrocompat */
  --ave-gx: var(--ave-gutter);        /* DEPRECATO: usa --ave-pad-x */
  --ave-gx-box: var(--ave-gutter);    /* DEPRECATO: usa --ave-pad-x */
  --ave-py-xs: var(--ave-space-xs);
  --ave-py-sm: var(--ave-space-sm);
  --ave-py-md: var(--ave-space-md);
  --ave-py-lg: var(--ave-space-lg);
  --ave-py-xl: var(--ave-space-xl);
  --ave-px-xs: var(--ave-space-xs);
  --ave-px-sm: var(--ave-space-sm);
  --ave-px-md: var(--ave-space-md);
  --ave-px-lg: var(--ave-space-lg);
  --ave-px-xl: var(--ave-space-xl);
}

@media (max-width: 1024px) {
  body {
    --ave-space-xs: 16px;
    --ave-space-sm: 32px;
    --ave-space-md: 60px;
    --ave-space-lg: 64px;
    --ave-space-xl: 90px;

    --ave-gap-3xs: 4px;
    --ave-gap-2xs: 8px;
    --ave-gap-xs: 10px;
    --ave-gap-sm: 14px;
    --ave-gap-md: 20px;
    --ave-gap-lg: 24px;
    --ave-gap-xl: 36px;
    --ave-gap-2xl: 48px;

    --ave-gap-2col: 32px;

    /* solo il gutter: il cap 1290 e' gia' dentro --ave-pad-x */
    --ave-gutter: 32px;
  }
}

@media (max-width: 767px) {
  body {
    --ave-space-xs: 12px;
    --ave-space-sm: 20px;
    --ave-space-md: 40px;
    --ave-space-lg: 24px;
    --ave-space-xl: 70px;

    --ave-gap-3xs: 4px;
    --ave-gap-2xs: 6px;
    --ave-gap-xs: 8px;
    --ave-gap-sm: 12px;
    --ave-gap-md: 16px;
    --ave-gap-lg: 16px;
    --ave-gap-xl: 24px;
    --ave-gap-2xl: 32px;

    --ave-gap-2col: 24px;

    --ave-gutter: 20px;
  }
}

/* ===== base sezione: gutter + misura; il verticale via modifier ===== */
.ave-section {
  padding-inline: var(--ave-pad-x);
}

/* utility "solo misura orizzontale": per elementi non-sezione (menu, barre,
   breadcrumb...) che devono allinearsi alle sezioni senza padding verticale */
.ave-measure-x,
.elementor-element.ave-measure-x {
  padding-inline: var(--ave-pad-x);
}

/* ===== blocco boxed (template DF) =====
   1. misura + gutter + padding verticale -> SEMPRE sul container esterno
   2. max-width dell'inner azzerato (vedi nota in testa al blocco spacing)
   3. gap -> sul VERO genitore flex: .e-con-inner nei boxed, il container nei full */

/* 1. */
.elementor-element.ave-section--box,
.elementor-element.ave-section--box-2col {
  padding-inline: var(--ave-pad-x);
  padding-block: var(--ave-box-py);
}

/* 2. */
.elementor-element.ave-section--box > .e-con-inner,
.elementor-element.ave-section--box-2col > .e-con-inner {
  max-width: none;
  width: 100%;
  padding-inline: 0;
}

/* 3. */
.elementor-element.ave-section--box > .e-con-inner,
.elementor-element.ave-section--box:not(:has(> .e-con-inner)) {
  gap: var(--ave-box-gap);
}

.elementor-element.ave-section--box-2col > .e-con-inner,
.elementor-element.ave-section--box-2col:not(:has(> .e-con-inner)) {
  gap: var(--ave-gap-2col);
}

/* ===== ritmo verticale simmetrico (top+bottom) ===== */
.ave-py-xs { padding-top: var(--ave-py-xs); padding-bottom: var(--ave-py-xs); }
.ave-py-sm { padding-top: var(--ave-py-sm); padding-bottom: var(--ave-py-sm); }
.ave-py-md { padding-top: var(--ave-py-md); padding-bottom: var(--ave-py-md); }
.ave-py-lg { padding-top: var(--ave-py-lg); padding-bottom: var(--ave-py-lg); }
.ave-py-xl { padding-top: var(--ave-py-xl); padding-bottom: var(--ave-py-xl); }

.ave-py-xs-important { padding-top: var(--ave-py-xs) !important; padding-bottom: var(--ave-py-xs) !important; }
.ave-py-sm-important { padding-top: var(--ave-py-sm) !important; padding-bottom: var(--ave-py-sm) !important; }
.ave-py-md-important { padding-top: var(--ave-py-md) !important; padding-bottom: var(--ave-py-md) !important; }
.ave-py-lg-important { padding-top: var(--ave-py-lg) !important; padding-bottom: var(--ave-py-lg) !important; }
.ave-py-xl-important { padding-top: var(--ave-py-xl) !important; padding-bottom: var(--ave-py-xl) !important; }


/* ===== ritmo orizzontale simmetrico (left+right) - NIENTE cap di misura =====
   Usare solo dove serve un padding fisso "vecchio stile"; per allinearsi
   ai 1290 usa .ave-section / .ave-measure-x / .ave-section--box.
   Prefisso .elementor-element per poter vincere sulle regole del box. */
.ave-px-xs, .elementor-element.ave-px-xs { padding-inline: var(--ave-px-xs); }
.ave-px-sm, .elementor-element.ave-px-sm { padding-inline: var(--ave-px-sm); }
.ave-px-md, .elementor-element.ave-px-md { padding-inline: var(--ave-px-md); }
.ave-px-lg, .elementor-element.ave-px-lg { padding-inline: var(--ave-px-lg); }
.ave-px-xl, .elementor-element.ave-px-xl { padding-inline: var(--ave-px-xl); }

/* ===== override singolo lato (sezioni asimmetriche pt != pb) ===== */
.ave-pt-0, .elementor-element.ave-pt-0 { padding-top: 0; }
.ave-pb-0, .elementor-element.ave-pb-0 { padding-bottom: 0; }
.ave-pt-xs, .elementor-element.ave-pt-xs { padding-top: var(--ave-py-xs); }
.ave-pb-xs, .elementor-element.ave-pb-xs { padding-bottom: var(--ave-py-xs); }
.ave-pt-sm, .elementor-element.ave-pt-sm { padding-top: var(--ave-py-sm); }
.ave-pb-sm, .elementor-element.ave-pb-sm { padding-bottom: var(--ave-py-sm); }
.ave-pt-md, .elementor-element.ave-pt-md { padding-top: var(--ave-py-md); }
.ave-pb-md, .elementor-element.ave-pb-md { padding-bottom: var(--ave-py-md); }
.ave-pt-lg, .elementor-element.ave-pt-lg { padding-top: var(--ave-py-lg); }
.ave-pb-lg, .elementor-element.ave-pb-lg { padding-bottom: var(--ave-py-lg); }
.ave-pt-xl, .elementor-element.ave-pt-xl { padding-top: var(--ave-py-xl); }
.ave-pb-xl, .elementor-element.ave-pb-xl { padding-bottom: var(--ave-py-xl); }

/* ===== full-bleed: azzeramenti (dopo le regole del box, per poterle battere) ===== */
.ave-section--flush-x,
.elementor-element.ave-section--flush-x { padding-inline: 0; }

.ave-section--flush-y,
.elementor-element.ave-section--flush-y { padding-block: 0; }

.ave-section--flush,
.elementor-element.ave-section--flush { padding: 0; }

/* =============================================================================
   AVE inner spacing - gap tra elementi interni (scala contenuto)
   Si agisce sul vero genitore flex: .e-con-inner (boxed) o il container (full).
   Regola: NON impostare anche "Spazio tra elementi" nell'editor, o l'inline
   vince sulla classe.
   ============================================================================= */

/* gap su entrambi gli assi */
.elementor-element.ave-gap-3xs > .e-con-inner,
.elementor-element.ave-gap-3xs:not(:has(> .e-con-inner)) { gap: var(--ave-gap-3xs); }

.elementor-element.ave-gap-2xs > .e-con-inner,
.elementor-element.ave-gap-2xs:not(:has(> .e-con-inner)) { gap: var(--ave-gap-2xs); }

.elementor-element.ave-gap-xs > .e-con-inner,
.elementor-element.ave-gap-xs:not(:has(> .e-con-inner)) { gap: var(--ave-gap-xs); }

.elementor-element.ave-gap-sm > .e-con-inner,
.elementor-element.ave-gap-sm:not(:has(> .e-con-inner)) { gap: var(--ave-gap-sm); }

.elementor-element.ave-gap-md > .e-con-inner,
.elementor-element.ave-gap-md:not(:has(> .e-con-inner)) { gap: var(--ave-gap-md); }

.elementor-element.ave-gap-lg > .e-con-inner,
.elementor-element.ave-gap-lg:not(:has(> .e-con-inner)) { gap: var(--ave-gap-lg); }

.elementor-element.ave-gap-xl > .e-con-inner,
.elementor-element.ave-gap-xl:not(:has(> .e-con-inner)) { gap: var(--ave-gap-xl); }

.elementor-element.ave-gap-2xl > .e-con-inner,
.elementor-element.ave-gap-2xl:not(:has(> .e-con-inner)) { gap: var(--ave-gap-2xl); }

/* gap solo orizzontale (column-gap) */
.elementor-element.ave-gap-x-3xs > .e-con-inner,
.elementor-element.ave-gap-x-3xs:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-3xs); }

.elementor-element.ave-gap-x-2xs > .e-con-inner,
.elementor-element.ave-gap-x-2xs:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-2xs); }

.elementor-element.ave-gap-x-xs > .e-con-inner,
.elementor-element.ave-gap-x-xs:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-xs); }

.elementor-element.ave-gap-x-sm > .e-con-inner,
.elementor-element.ave-gap-x-sm:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-sm); }

.elementor-element.ave-gap-x-md > .e-con-inner,
.elementor-element.ave-gap-x-md:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-md); }

.elementor-element.ave-gap-x-lg > .e-con-inner,
.elementor-element.ave-gap-x-lg:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-lg); }

.elementor-element.ave-gap-x-xl > .e-con-inner,
.elementor-element.ave-gap-x-xl:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-xl); }

.elementor-element.ave-gap-x-2xl > .e-con-inner,
.elementor-element.ave-gap-x-2xl:not(:has(> .e-con-inner)) { column-gap: var(--ave-gap-2xl); }

/* gap solo verticale (row-gap) */
.elementor-element.ave-gap-y-3xs > .e-con-inner,
.elementor-element.ave-gap-y-3xs:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-3xs); }

.elementor-element.ave-gap-y-2xs > .e-con-inner,
.elementor-element.ave-gap-y-2xs:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-2xs); }

.elementor-element.ave-gap-y-xs > .e-con-inner,
.elementor-element.ave-gap-y-xs:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-xs); }

.elementor-element.ave-gap-y-sm > .e-con-inner,
.elementor-element.ave-gap-y-sm:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-sm); }

.elementor-element.ave-gap-y-md > .e-con-inner,
.elementor-element.ave-gap-y-md:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-md); }

.elementor-element.ave-gap-y-lg > .e-con-inner,
.elementor-element.ave-gap-y-lg:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-lg); }

.elementor-element.ave-gap-y-xl > .e-con-inner,
.elementor-element.ave-gap-y-xl:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-xl); }

.elementor-element.ave-gap-y-2xl > .e-con-inner,
.elementor-element.ave-gap-y-2xl:not(:has(> .e-con-inner)) { row-gap: var(--ave-gap-2xl); }



/* ===== AVE hero heights - token + classi (tall/short) - 2026-07-23 ===== */
body {
  --ave-hero-tall: 514px;  /* piu' alto (Soluzioni/Whitek) */
  --ave-hero-short: 462px; /* meno alto (Home cards) */
}

@media (max-width: 1024px) {
  body {
    --ave-hero-tall: 187px;
    --ave-hero-short: 350px;
  }
}

@media (max-width: 767px) {
  body {
    --ave-hero-short: 200px;
  }
  /* tall eredita 187 dal tablet */
}

.ave-hero--tall { min-height: var(--ave-hero-tall); }
.ave-hero--short { min-height: var(--ave-hero-short); }

/* ===== AVE blog size - misura di lettura (concetto separato dalla misura sezione) ===== */
.ave-article-container .elementor-element {
  max-width: var(--ave-measure-article) !important;
  width: 100%;
  margin-inline: auto;
}

/* ===== AVE header ===== */

.force-header-small .header-big, .header-small{ min-height: 350px; padding: 80px 40px; justify-content: end; }
.header-big{ min-height: 515px; padding: 120px 40px; justify-content: end; }

@media (max-width: 1024px) {
    .force-header-small .header-big, .header-small{ min-height: 300px; padding: 40px 20px; }
    .header-big{ min-height: 400px; padding: 63px 32px; }
}

@media (max-width: 767px) {
    .force-header-small .header-big, .header-small{ min-height: auto; height: 300px !important; padding: 0; }
    .header-big{ min-height: auto; height: 300px !important; padding: 0; }
}


/* ===== AVE blog ===== */

.wp-singular .elementor.post.type-post .elementor-widget-text-editor h2,
.wp-singular .elementor.post.type-post .elementor-widget-text-editor h3,
.wp-singular .elementor.post.type-post .elementor-widget-text-editor h4,
.wp-singular .elementor.post.type-post .elementor-widget-text-editor h5{
    margin-top: 60px;
    margin-bottom: 20px;
}


@media (min-width: 1025px) {
    .elementor-element:has(.cs-menu-container){
        position: sticky;
        top: 108px;
        background-color: #fff;
        z-index: 999;
    }
    .admin-bar .elementor-element:has(.cs-menu-container){
        top: 140px;
    }
}


p.elementor-heading-title {
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.ave-title-tag .elementor-heading-title,
.ave-title-tag:not(:has(.elementor-heading-title)) {
  color: var(--ave-color-text);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .1em;
  font-style: italic;
  text-transform: uppercase;
  line-height: 1.2;
}

/* forma: solo sui widget Elementor, dove la classe sta sul wrapper e il
   testo e' nel figlio. L'HTML dei widget df-* prende la sola tipografia. */
.ave-title-tag .elementor-heading-title {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  display: inline-block; /* così lo sfondo avvolge solo il testo, non tutta la riga */
}

.ave-title-tag--light .elementor-heading-title,
.ave-title-tag--light:not(:has(.elementor-heading-title)) {
  color: var(--ave-color-white);
}


/* ============================================================
   AVE — Gravity Forms (stile Figma) — ID-agnostic
   Aggiungi la classe "ave-gform" nel campo "Classi CSS" del
   widget Gravity Form (funziona su qualsiasi form_id).
   ------------------------------------------------------------
   bordo #cfcfcf · focus blu #2b7fff · rosso #D53221
   sfondo card #f2f2f2 · testo #1a1a1a · raggio 6px
   ============================================================ */

/* ---------- FONT ---------- */
.ave-gform .gform_wrapper,
.ave-gform .gform_wrapper input,
.ave-gform .gform_wrapper select,
.ave-gform .gform_wrapper textarea,
.ave-gform .gform_wrapper label,
.ave-gform .gform_wrapper legend,
.ave-gform .gform_wrapper .gform_button,
.ave-gform .gform_wrapper .gform_drop_area,
.ave-gform .gform_wrapper .gfield_html,
.ave-gform .gform_wrapper .gform_required_legend {
  font-family: 'Manrope', sans-serif !important;
}
.ave-gform .gform_wrapper * { box-sizing: border-box; }

/* ---------- CARD / CONTENITORE ---------- */
.ave-gform .gform_wrapper {
  background: #f2f2f2;   /* TOGLI se lo sfondo grigio è già sulla sezione Elementor */
  padding: 48px;
  border-radius: 8px;
  color: #1a1a1a;
}
.ave-gform .gform_wrapper .gform_required_legend {
  font-size: 13px;
  color: #777;
  margin: 0 0 24px;
}

/* ---------- GRIGLIA 2 COLONNE ---------- */
/* .gravity-theme nel selettore = specificità 0,0,3,0: batte il grid-row-gap del tema */
.ave-gform .gform_wrapper.gravity-theme .gform_fields {
  /*display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));*/
  grid-row-gap: 32px;     /* spazio verticale tra righe */
  grid-column-gap: 24px;  /* spazio tra colonne */
  align-items: start;     /* le celle partono dall'alto: niente stiramenti con label a 2 righe */
}
.ave-gform .gform_wrapper .gfield {          /* default: tutta larghezza */
  grid-column: 1 / -1;
  margin: 0;
}

/* i campi nascosti NON devono occupare celle della griglia */
.ave-gform .gform_wrapper .gfield_visibility_hidden,
.ave-gform .gform_wrapper .gfield[style*="display: none"],
.ave-gform .gform_wrapper .gfield[style*="display:none"] {
  display: none !important;
}

/* ---------- LABEL ---------- */
.ave-gform .gform_wrapper .gfield_label,
.ave-gform .gform_wrapper .gform-field-label,
.ave-gform .gform_wrapper legend.gfield_label {
  display: block;
  font-size: 15px;
  font-weight: 400 !important;   /* batte il bold del tema */
  color: #1a1a1a;
  margin: 0 0 8px;               /* stacco label→campo */
  line-height: 1.2;
}
.ave-gform .gform_wrapper .gfield_required,
.ave-gform .gform_wrapper .gfield_required_asterisk {
  color: #D53221;
  text-decoration: none;
}

/* ---------- INPUT / SELECT / TEXTAREA ---------- */
.ave-gform .gform_wrapper input[type="text"],
.ave-gform .gform_wrapper input[type="email"],
.ave-gform .gform_wrapper input[type="tel"],
.ave-gform .gform_wrapper input[type="url"],
.ave-gform .gform_wrapper input[type="number"],
.ave-gform .gform_wrapper select,
.ave-gform .gform_wrapper textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid #cfcfcf;
  border-radius: 6px;
  padding: 13px 16px;
  font-size: 15px;
  color: #1a1a1a;
  line-height: 1.4;
  transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none;
  appearance: none;
}
.ave-gform .gform_wrapper textarea { min-height: 140px; resize: vertical; }
.ave-gform .gform_wrapper ::placeholder { color: #9a9a9a; opacity: 1; }

/* focus = bordo blu */
.ave-gform .gform_wrapper input:focus,
.ave-gform .gform_wrapper select:focus,
.ave-gform .gform_wrapper textarea:focus {
  outline: none;
  border-color: #2b7fff;
  box-shadow: 0 0 0 1px #2b7fff;
}

/* freccia custom select */
.ave-gform .gform_wrapper select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 42px;
}

/* select a piena larghezza del proprio campo (fix select in campi full-width) */
.ave-gform .gform_wrapper .ginput_container_select {
  width: 100%;
}
.ave-gform .gform_wrapper .ginput_container_select .gfield_select,
.ave-gform .gform_wrapper select.gfield_select {
  width: 100%;
  max-width: 100%;
}

/* ---------- EMAIL con conferma ---------- */
.ave-gform .gform_wrapper .ginput_complex.ginput_container_email {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px; 
}
.ave-gform .gform_wrapper .ginput_complex.ginput_container_email > span {
  display: block; padding: 0; width: 100%;
}
.ave-gform .gform_wrapper .gform-field-label--type-sub {
  font-size: 13px; color: #777; margin-top: 6px; font-weight: 400;
}

/* ---------- TELEFONO INTERNAZIONALE ---------- */
/* La nazione (bandiera + "+39") e' un <button>: senza queste regole prende il
   colore dei bottoni del kit (#FFF) sullo sfondo grigio di Gravity (#f2f3f5) e il
   prefisso non si legge. Bordo #767676 come gli altri campi (il valore che
   ave-a11y-css da' agli input, contrasto 1.4.11).
   ATTENZIONE: qui dentro non si puo' scrivere la classe di Gravity del bottone
   (gform-phone__country-...), perche' finisce con la parola che Elementor
   sostituisce col selettore del kit, e la regola smette di colpire. Per questo si
   passa da ".gform-phone__input-wrapper button", che e' anche piu' specifico della
   regola di Gravity (0-5-1 contro 0-4-0). */
.ave-gform .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__input-wrapper button,
.ave-gform .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__input-wrapper button:hover,
.ave-gform .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__input-wrapper button:focus {
  background-color: #ffffff;
  color: #1a1a1a;
  border: 1px solid #767676;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 400;
  padding: 8px 12px;
  margin-inline-end: 5px;
}
/* il numero e' un campo a se': Gravity squadra gli angoli a destra (3px) */
.ave-gform .gform_wrapper.gravity-theme .gfield--type-phone .gform-phone__input {
  border-radius: 6px;
}

/* ---------- ETICHETTE DI CHECKBOX E RADIO ---------- */
.ave-gform .gform_wrapper.gravity-theme .gfield-choice-input + label {
  max-width: 100%;
}

/* ---------- RADIO (consensi) ---------- */
.ave-gform .gform_wrapper .gfield_radio .gchoice {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 24px 8px 0;
}
.ave-gform .gform_wrapper .gfield_radio input[type="radio"] {
  width: 18px; height: 18px; accent-color: #D53221; margin: 0;
}
.ave-gform .gform_wrapper .gfield_radio label { margin: 0; font-size: 14px; }
.ave-gform .gform_wrapper .gfield_html a { color: #1a1a1a; text-decoration: underline; }

/* ---------- reCAPTCHA ---------- */
.ave-gform .gform_wrapper .ginput_recaptcha { margin: 4px 0; }

/* ---------- FILE UPLOAD ---------- */
.ave-gform .gform_wrapper .gform_drop_area {
  border: 1px dashed #b3b3b3;
  border-radius: 6px;
  background: transparent;
  padding: 40px 20px;
  text-align: center;
  color: #555;
  font-size: 14px;
}
.ave-gform .gform_wrapper .gform_button_select_files {
  background: #333333;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  margin-top: 10px;
}
.ave-gform .gform_wrapper input[type="file"] {
  width: 100%;
  border: 1px dashed #b3b3b3;
  border-radius: 6px;
  padding: 24px;
  background: transparent;
  cursor: pointer;
}

/* ---------- PULSANTE INVIO ---------- */
.ave-gform .gform_wrapper .gform_footer { margin-top: 28px; padding: 0; }
.ave-gform .gform_wrapper .gform_button,
.ave-gform .gform_wrapper input[type="submit"] {
  background: #000000;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 18px 56px 18px 30px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .2px;
  cursor: pointer;
  transition: background .15s ease;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23D53221' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='7' x2='17' y2='17'/%3E%3Cpolyline points='17 8 17 17 8 17'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 26px center;
}
.ave-gform .gform_wrapper .gform_button:hover,
.ave-gform .gform_wrapper input[type="submit"]:hover { background-color: #1a1a1a; }

/* ---------- VALIDAZIONE ---------- */
.ave-gform .gform_wrapper .gfield_error input,
.ave-gform .gform_wrapper .gfield_error select,
.ave-gform .gform_wrapper .gfield_error textarea { border-color: #D53221; }
.ave-gform .gform_wrapper .gfield_validation_message,
.ave-gform .gform_wrapper .validation_message {
  color: #D53221; font-size: 13px; margin-top: 6px;
  background: none; border: none; padding: 0;
}
.ave-gform .gform_wrapper .gform_validation_errors { border-radius: 6px; }

/* ---------- MOBILE ---------- */
@media (max-width: 640px) {
  .ave-gform .gform_wrapper { padding: 24px; }
  .ave-gform .gform_wrapper.gravity-theme .gform_fields {
    grid-row-gap: 24px;
  }
  .ave-gform .gform_wrapper.gravity-theme .gfield.gfield--width-half {
    grid-column: 1 / -1;   /* .gravity-theme+.gfield per battere lo span 6 del tema */
  }
  .ave-gform .gform_wrapper .ginput_complex.ginput_container_email { grid-template-columns: 1fr; }
  .ave-gform .gform_wrapper .gform_button,
  .ave-gform .gform_wrapper input[type="submit"] { width: 100%; }
}

.ave-gform .gform_wrapper .ginput_complex.ginput_container_email .gf_clear,
.ave-gform .gform_wrapper .ginput_complex.ginput_container_email .gf_clear_complex {
  display: none;
}

/* DF - Etichetta come classe: serve al corpo del testo, che non ha un tag
   da cui prendere una misura diversa da DF - Corpo. */
.ave-text-label .elementor-heading-title,
.ave-text-label:not(:has(.elementor-heading-title)) {
  font-family: var(--e-global-typography-dflabel-font-family), Sans-serif;
  font-size: var(--e-global-typography-dflabel-font-size);
  font-weight: var(--e-global-typography-dflabel-font-weight);
  line-height: var(--e-global-typography-dflabel-line-height);
}

/* DF - Small come classe: serve al corpo del testo, che non ha un tag
   da cui prendere una misura diversa da DF - Corpo. */
.ave-text-small .elementor-heading-title,
.ave-text-small:not(:has(.elementor-heading-title)) {
  font-family: var(--e-global-typography-dfsmall-font-family), Sans-serif;
  font-size: var(--e-global-typography-dfsmall-font-size);
  font-weight: var(--e-global-typography-dfsmall-font-weight);
  line-height: var(--e-global-typography-dfsmall-line-height);
}

/* DF - H5 come classe: serve ai titoli che vogliono la misura di un livello diverso dal proprio tag. */
.ave-text-h5 .elementor-heading-title,
.ave-text-h5:not(:has(.elementor-heading-title)) {
  font-family: var(--e-global-typography-dfh5-font-family), Sans-serif;
  font-size: var(--e-global-typography-dfh5-font-size);
  font-weight: var(--e-global-typography-dfh5-font-weight);
  line-height: var(--e-global-typography-dfh5-line-height);
}

/* === ave-button: varianti di colore (fix-button-variants) === */
/* Solo il COLORE: spessore del bordo e padding restano dell'elemento. */
.ave-button--outline .elementor-button {
  background-color: var(--ave-color-white);
  color: var(--ave-color-black);
  border-color: var(--ave-color-black);
}
.ave-button--outline .elementor-button:hover,
.ave-button--outline .elementor-button:focus-visible {
  background-color: var(--ave-color-black);
  color: var(--ave-color-white);
}
.ave-button--ghost .elementor-button {
  background-color: transparent;
  color: var(--ave-color-black);
  border-color: var(--ave-color-black);
}
.ave-button--ghost .elementor-button:hover,
.ave-button--ghost .elementor-button:focus-visible {
  background-color: var(--ave-color-black);
  color: var(--ave-color-white);
}
.ave-button--ghost-light .elementor-button {
  background-color: transparent;
  color: var(--ave-color-white);
  border-color: var(--ave-color-white);
}
.ave-button--ghost-light .elementor-button:hover,
.ave-button--ghost-light .elementor-button:focus-visible {
  background-color: var(--ave-color-white);
  color: var(--ave-color-black);
}
/* === fine ave-button varianti === */

/* === ave-inline-flex: traduzione del display v4 (fix-v4-inline-flex) === */
/* Sta sul WRAPPER, perche` in v3 e` lui a fare da flex item al posto dell'h3. */
.ave-inline-flex {
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
}
/* === fine ave-inline-flex === *//* End custom CSS */