@charset "utf-8";

:root {
  /* --bs-body-font-size: 1rem; */

  --cBlu: #384655;
  --cRosso: #d71249;
  --cDRosso: #B6163E;  
  --cLCiano: #80BEE9;  
  --cCiano: #03a4f7;
  --cXLGrigio: #f5f6f6;
  --cLGrigio: #b4b4b4;
  --cGrigio: #5f5f64;
  --cDGrigio: #4d4f53;
  --cXLBianco: #cbd3d6;
  --cLBianco: #f2f2f2;
  --cBianco: #FFFFFF;
  --cNero: #000000;
  --cDNero: #333333; 
  
  --cTesto: #5f5f64;
  --cWFTesto: #5f5f64;

  --cShadow: rgba(0, 0, 0, 0.32); 

  --cValid: #3BAA35;
  --cInvalid: #c91617;

  --bradius: 0rem;
  --bcorner: 1rem;
  
  /* @link https://utopia.fyi/clamp/calculator?a=300,1400,18—52 */
  --fluid-32-80: clamp(2rem, 1.1818rem + 4.3636vw, 5rem);

}

/* SYSTEM */
html, body { 

}

body {
  background: transparent none no-repeat scroll top left;
  background-color: var(--cBianco);
  font-family: Arial, Helvetica, sans-serif;
  font-family: "Ubuntu", sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
  color: var(--cTesto);
  /* margin: 0rem 0rem; */
}

h1, h2, h3, h4, h5, h6, p,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: Arial, Helvetica, sans-serif;
  font-family: "Ubuntu", sans-serif;
  font-weight: 300;
  color: var(--cTesto);
  line-height: 1.4;
}

h1.big, .h1.big { font-weight: 300; font-size: 2.555em; line-height: 1.1; } /*46*/

h1, .h1 { font-weight: 300; font-size: 2em; line-height: 1.1; } /*36*/

h2, .h2 { font-weight: 300; font-size: 1.777em; line-height: 1.3; } /*32*/

h3, .h3 { font-weight: 300; font-size: 1.666em; line-height: 1.3; } /*30*/

h4, .h4 { font-weight: 300; font-size: 1.222em; line-height: 1.4; } /*22*/

h5, .h5 { font-weight: 300; font-size: 0.888em; line-height: 1.4; } /*16*/

h6, .h6 { font-weight: 300; font-size: 0.777em; line-height: 1.4; } /*14*/

p.big { font-size: 1.111em; line-height: 1.4; } /*20*/

p, ul, ol {
  font-family: "Ubuntu", sans-serif;
  font-size: 1em;
  color: var(--cTesto);
  line-height: 1.4;
  font-weight: 300;
  /* margin-top: 0rem; */
}

ul, ol {}

ul.bullet-image { list-style: outside url("../images/arrow.png") none; padding-left: 3rem; }
ul.list-nostile { list-style: outside none none; padding-left: 2rem; }
ul.list-bullet { padding-left: 1.5rem; list-style: outside none none;  }
ul.list-bullet li { display: block; margin-bottom: 0.5rem; margin-bottom: 0.5rem; }
ul.list-bullet li:before {
  /* content: "—"; */
  /* content: "✅︎"; */
  /* content: "✓"; */
  /* content: "✔"; */
  content: "•";
  font-family: "Ubuntu", sans-serif;
  font-size: 1em;
  float: left;
  margin-top: 0;
  margin-left: -1.5rem;
  color: var(--cRosso);
}

ul.list-bullet--spunta li:before {
  /* content: "✅︎"; */
  /* content: "✓"; */
  content: "✔";
}

ol.list-increment { counter-reset: item; padding-left: 0rem; }
ol.list-increment li { display: block; }
ol.list-increment li:before { font-weight: 300; content: counters(item, ".") ". "; counter-increment: item;  }

.font-thin { font-weight: 100!important; }
.font-elight { font-weight: 200!important; }
.font-light { font-weight: 300!important; }
.font-regular { font-weight: 400!important; }
.font-medium { font-weight: 500!important; }
.font-sbold { font-weight: 600!important; }
.font-bold { font-weight: 700!important; }
.font-ebold { font-weight: 800!important; }
.font-ubold { font-weight: 900!important; }

a, img, 
.transition { 
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
}

a, img { border: 0 none; }

.cover img,
.img-cover { 
  width: 100%; 
  height: 50vw; 
  height: auto; 
  object-fit: cover; 
  object-position: 50% 50%; 
  object-position: center top; 
}

.img-fluid { 
  /* display: inline-block;  */
}

a:link, a:visited, li a:link, li a:visited { color: var(--cBlu); text-decoration: none; }

a:hover, a:focus, li a:hover { color: var(--cCiano); outline: none; }

a:active, li a:active, a.active, li a.active { color: var(--cCiano);  }

.form-required::after { color: var(--cWFTesto); display: none; }

.evidenza { color: var(--cRosso); }
.evidenza1 { color: var(--cBlu); }
.evidenza2 { color: var(--cBianco); }
.cBlu { color: var(--cBlu); }
.cRosso { color: var(--cRosso); }
.cDRosso { color: var(--cDRosso); }
.cLCiano { color: var(--cLCiano); }
.cCiano { color: var(--cCiano); }
.cXLGrigio { color: var(--cXLGrigio); }
.cLGrigio { color: var(--cLGrigio); }
.cGrigio { color: var(--cGrigio); }
.cDGrigio { color: var(--cDGrigio); }
.cXLBianco { color: var(--cXLBianco); }
.cLBianco { color: var(--cLBianco); }
.cBianco { color: var(--cBianco); }
.cNero { color: var(--cNero); }
.cDNero { color: var(--cDNero); }
.cTesto { color: var(--cTesto); }
.cWFTesto { color: var(--cWFTesto); }

.fprimary { font-family: "Ubuntu", sans-serif; }
.fsecondary { font-family: Arial, Helvetica, sans-serif; }

.bgBlu { background-color: var(--cBlu); }
.bgRosso { background-color: var(--cRosso); }
.bgDRosso { background-color: var(--cDRosso); }
.bgLCiano { background-color: var(--cLCiano); }
.bgCiano { background-color: var(--cCiano); }
.bgXLGrigio { background-color: var(--cXLGrigio); }
.bgLGrigio { background-color: var(--cLGrigio); }
.bgGrigio { background-color: var(--cGrigio); }
.bgDGrigio { background-color: var(--cDGrigio); }
.bgXLBianco { background-color: var(--cXLBianco); }
.bgLBianco { background-color: var(--cLBianco); }
.bgBianco { background-color: var(--cBianco); }
.bgNero { background-color: var(--cNero); }
.bgDNero { background-color: var(--cDNero); }

/* STYLE */

strong,b { font-weight: 700; font-weight: 500; }

span.sup { font-size: 70%; position: relative; top: -0.5em; }

sub { font-size: 70%; position: relative; top: 2px; }

.btn { border: none; padding: 0.8rem 1.5rem; }

.btn,
.btn-primary, .btn-secondary {
  border: 1px solid var(--cDRosso) !important;
  background-color: var(--cDRosso)  !important;
  color: var(--cBianco) !important;  
  box-shadow: 0rem 0.3rem 0.6rem var(--cShadow);
  box-shadow: none;  
  outline: none;  
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  font-size: 1em;
  font-size: 1.111em;
  font-weight: 300;
  padding: 0.8rem 1.5rem;
  padding: 0.5rem 1.5rem;
  line-height: 1.2;
  white-space: normal;
  -webkit-border-radius: var(--bradius);
  -moz-border-radius: var(--bradius);
  border-radius: var(--bradius);
  text-decoration: none;
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
  /* text-transform: uppercase; */
  /* min-width: 20rem; */
}

.btn:hover {
  background-color: var(--cRosso) !important;
  border-color: var(--cRosso) !important;
  color: var(--cBianco) !important;
}

.btn-primary,
.wform .form-actions .form-submit {
  background-color: var(--cRosso)  !important;
  border-color: var(--cRosso) !important;
  color: var(--cBianco) !important;
}

.btn-primary:hover,
.wform .form-actions .form-submit:hover {
  background-color: var(--cDRosso) !important;
  border-color: var(--cDRosso) !important;
  color: var(--cBianco) !important;
}

.btn-secondary {
  background-color: transparent !important;
  border-color: var(--cRosso) !important;
  color: var(--cRosso) !important;
}

.btn-secondary:hover {
  background-color: transparent !important;
  border-color: var(--cDRosso) !important;
  color: var(--cDRosso) !important;
}

.btn .icon-custom:before {
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
  font-size: 1em;
  font-weight: 300;
  position: relative;
  /* color: var(--cBianco); */
  /* top: 0rem; */
}

.btn:hover .icon-custom:before { color: var(--cBianco) !important; }

a.link-text { color: var(--cRosso); }
a.link-text:hover { color: var(--cDRosso); }

/* a.link-text { border-bottom: 1px solid transparent; } */
/* a.link-text:hover { border-color: var(--cRosso); } */

.js-backtop {
  cursor: pointer;
  background: var(--cNero);
  background-color: transparent;
  color: var(--cBianco);
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
  /* bottom: 1rem;
  right: 1rem;
  bottom: 0rem;
  right: 0rem;
  padding: 0.5rem 0.7rem;
  -webkit-border-radius: 0.4rem;
  -moz-border-radius: 0.4rem;
  border-radius: 0.4rem;
  max-width: 4rem; */

  top: auto;
  left: auto;
  bottom:auto;
  right: auto;
  opacity: 1;
  visibility: visible;
  z-index: auto;
  position: relative;
  border-radius: 0rem;
  padding: 0rem 0rem;
}

.js-backtop.fixed {
  opacity: 0;
  visibility: hidden;
  z-index: 99;
  position: fixed;
  /* background: var(--cNero); */
  /* background-color: transparent; */
  /* color: var(--cBianco); */
  
  bottom: 1rem;
  right: 1rem;
  bottom: 0rem;
  right: 0rem;
  
  padding: 0.5rem 0.7rem;
  
  -webkit-transition: none;
  -moz-transition: none;
  -o-transition: none;
  -ms-transition: none;
  transition: none;
  -webkit-transition: opacity 0.5s ease-in-out, visibility 0.5s;
  -moz-transition: opacity 0.5s ease-in-out, visibility 0.5s;
  -o-transition: opacity 0.5s ease-in-out, visibility 0.5s;
  -ms-transition: opacity 0.5s ease-in-out, visibility 0.5s; 
  transition: opacity 0.5s ease-in-out, visibility 0.5s;
  
  max-width: 4rem;

}

.js-backtop.rounded {
  -webkit-border-radius: var(--bradius);
  -moz-border-radius: var(--bradius);
  border-radius: var(--bradius);
}

.js-backtop.show {
  opacity: 1;
  visibility: visible;
}

.text-fluid {
  word-break: break-word; /* Spezza le parole lunghe */
  overflow-wrap: break-word; /* Alternativa per la compatibilità */
  white-space: normal; /* Rende il testo fluido */
}

.text-responsive {
  /* Imposta la dimensione del font in modo dinamico */
  
  /* Versione alternativa 1: 
    - Minimo: 1.5em (adatta la dimensione minima del font in base al contenitore)
    - Fluido: 8vw (scala il font in base alla larghezza dello schermo)
    - Massimo: 5em (non supera mai questa dimensione massima)
  */
  font-size: clamp(1.5em, 8vw, 5em);
  
  /* Versione alternativa 2: 
    - Minimo: 2em (dimensione minima più grande rispetto alla versione sopra)
    - Fluido: 10vw (scala il font in base alla larghezza dello schermo)
    - Massimo: 5em (stessa dimensione massima della versione precedente)
    Nota: Se presenti due dichiarazioni con `clamp()`, solo l'ultima verrà applicata.
  */
  font-size: clamp(2em, 10vw, 5em);
  
  /* Evita che il testo vada a capo, mantenendolo su una sola riga */
  /* white-space: nowrap; */
  
  /* Se il testo supera lo spazio disponibile, nasconde la parte in eccesso */
  /* overflow: hidden; */
  
  /* Se il testo è troppo lungo, mostra "..." alla fine invece di tagliarlo bruscamente */
  /* text-overflow: ellipsis; */
  
  /* Il testo occupa l'intera larghezza del contenitore */
  width: 100%;
  
  /* Assicura che il testo non superi mai la larghezza del contenitore */
  max-width: 100%;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: -1;
}

.popup-disclaimer { display: none; }

.popup-informativa-open .modal-backdrop.show {
  background-color: rgba(0, 0, 0, 0.15);
  backdrop-filter: blur(4px);
  opacity: 0.85;
  
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
}

section {
  position: relative;
}

/* https://cssgradient.io/ */
/* https://www.colorzilla.com/gradient-editor/ */
.gradient-hor {
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ffffff+0,f0f5f9+50,f0f5f9+100 */
  background: var(--cBianco);
  background: -moz-linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(247,249,252,1) 6%, rgba(240,245,249,1) 18%);
  background: -webkit-linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(247,249,252,1) 6%, rgba(240,245,249,1) 18%);
  background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(247,249,252,1) 6%, rgba(240,245,249,1) 18%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#f0f5f9",GradientType=1);
}

.gradient-ver {
  background: var(--cLBianco);
  background: -webkit-linear-gradient(180deg, rgba(191, 190, 190, 1) 0%, rgba(241, 239, 239, 1) 100%);
  background: -moz-linear-gradient(180deg, rgba(191, 190, 190, 1) 0%, rgba(241, 239, 239, 1) 100%);
  background: linear-gradient(180deg, rgba(191, 190, 190, 1) 0%, rgba(241, 239, 239, 1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#BFBEBE", endColorstr="#F1EFEF", GradientType=0);
}

@media (max-width: 575.98px) {  
  .layout-mobile {
    /* padding-left: 0; */
    /* padding-right: 0; */
    /* padding-right: calc(var(--bs-gutter-x)* 0.2); */
    /* padding-left: calc(var(--bs-gutter-x)* 0.2);   */
  }
}

/* IUBENDA */
.iubenda-tp-btn {
  display: none!important;
} 

.iubenda-cs-preferences-link {
  display: none!important;
}

button.iubenda-tp-btn.iubenda-cs-preferences-link {
  display: none!important;
}

/* SWIPER JS */
.swiper {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  /*object-fit: cover;*/
}

/*EFFECT*/
@keyframes line-from-left {
  from {
    transform: scaleX(0);
    transform-origin: left center;
    opacity: 0;
  }
  to {
    transform: scaleX(1);
    opacity: 1;
  }
}

.line-from-left {
  animation: line-from-left 0.4s cubic-bezier(.785, .135, .15, .86) forwards;
  transform-origin: left center;
}

.wow {
  visibility: hidden;
}

.animated {
  visibility: visible;
}

.rotate-icon:before {
  -webkit-transform:rotate(0deg); /* Chrome, iOS, Safari e Android */
  -moz-transform:rotate(0deg); /* Firefox */
  -o-transform:rotate(0deg); /* Opera */
  -ms-transform:rotate(0deg); /* IE 9 */
  transform:rotate(0deg); /* tutti i nuovi browser */
  -webkit-transition: all 0.25s 0s ease-in-out;
  -moz-transition: all 0.25s 0s ease-in-out;
  -o-transition: all 0.25s 0s ease-in-out;
  -ms-transition: all 0.25s 0s ease-in-out;
  transition: all 0.25s 0s ease-in-out;
}
  
.active .rotate-icon:before {
  -webkit-transform:rotate(180deg); /* Chrome, iOS, Safari e Android */
  -moz-transform:rotate(180deg); /* Firefox */
  -o-transform:rotate(180deg); /* Opera */
  -ms-transform:rotate(180deg); /* IE 9 */
  transform:rotate(180deg); /* tutti i nuovi browser */
}

.custom-barretta,
.custom-barretta--top {
  position: relative;
  display: inline-block;
  width: 3em;
  height: 5px;
  overflow: hidden;
  background-color: var(--cRosso);
  transform: scaleX(0); /* stato iniziale coerente con animazione */
}

/* Variante top (leggermente spostata in alto) */
.custom-barretta--top {
  top: -10px;
}

.custom-boxes-rouded {
  position: relative;
  overflow: hidden;
  -webkit-border-radius: var(--bcorner);
  -moz-border-radius: var(--bcorner);
  border-radius: var(--bcorner);
  /* background-color: #eaeff4; */
}
.custom-boxes-rouded:not(.boxes-rouded-bg) {
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(5px);
}

/*INVIATO*/
.custom-min-vh-75 {
  min-height: 75vh;
}

/*TOP*/
.SezTop .ltop img { 
  max-width: 8rem; 
}

/*HEADER*/
.SezHeader { 
  /* overflow: hidden;  */
}

/*HEADER*/
.SezHeader .wrapper-boxes.boxes1 {
  /* min-height: 40rem; */
  min-height: 20rem;
}

.SezHeader .row-fullR .row-full-content {
  margin: auto;
  height: auto;
  margin-left: 0;
}

.row-fullL .row-full-content,
.row-fullR .row-full-content {
  /* max-width: 80%; */
  /* max-width: 550px; */
  /* max-width: 100%; */
    max-width: none;
}

@media (min-width: 576px) {   

    /*HEADER*/
    .row-fullL .row-full-content,
    .row-fullR .row-full-content {
      /* max-width: calc(495px - 10px); */
      max-width: calc(615 - 10px);    
    }

}

@media (min-width: 992px) {   

    /*HEADER*/
    .row-fullL .row-full-content,
    .row-fullR .row-full-content {
      /* max-width: calc(480px - 10px); */
      max-width: calc(600px - 10px);
    }

}

@media (min-width: 1200px) {   

    /*HEADER*/
    .row-fullL .row-full-content,
    .row-fullR .row-full-content {
      /* max-width: calc(500px - 10px); */
      max-width: calc(620px - 10px);
    }

}

@media (min-width: 1400px) {   

    /*HEADER*/
    .row-fullL .row-full-content,
    .row-fullR .row-full-content {
      /* max-width: calc(500px - 10px); */
      max-width: calc(620px - 10px);
    }

}

/*HEADER*/
.SezHeader .wrapper-boxes.boxes1 {
  /* min-height: 40rem; */
  min-height: 20rem;
}

@media (min-width: 992px)  {   

    /*HEADER*/
    .SezHeader .wrapper-boxes.boxes1,
    .SezHeader .wrapper-boxes {
      max-height: 40rem;
      min-height: 40rem;
    }

    .SezHeader .wrapper-boxes.boxes1 {

    }
  
}

/*PROMO*/
.SezPromo .wrapper-Col1 .overlay {
  /* background-color: transparent; */
  /* background-image: none !important; */
}

@media (min-width: 576px) {   
  .SezPromo .wrapper-Col1 .overlay {
    background-image: -moz-linear-gradient( 0deg, rgb(255,255,255) 0%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 100%);
    background-image: -webkit-linear-gradient( 0deg, rgb(255,255,255) 0%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 100%);
    background-image: -ms-linear-gradient( 0deg, rgb(255,255,255) 0%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 100%);
    background-image: linear-gradient( 0deg, rgb(255,255,255) 0%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 100%);
  }
}

.SezPromo .wrapper-strillo .box-caption {
  padding-left: 2rem;
}

.SezPromo .wrapper-strillo .box-caption .icon {
  position: absolute;
  left: 0.7rem;
  line-height: 1;
}

/*FOOTER*/
/* footer { display: none; } */

.SezFooterFirst { }

.SezFooterFirst a,
.SezFooterFirst .h6 { 
  color: var(--cBianco);
}

.SezFooterFirst .iubenda .spacer { 
  color: var(--cBianco);
  margin: auto 0.25rem;
}

/*  WEBFORM  */
.wform {
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
  align-items: end;
  width: 100%;
}

.wform p,
.wform label {   }

.wform .form-item,
.wform .form-item input,
.wform .form-item select,
.wform .form-item textarea,
.wform fieldset,
.wform .form-item label,
.wform .form-item .description,
.wform .form-actions {
  position: relative;  
  /* display: inline; */
  /* float: left; */  
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  font-weight: 300;
  font-size: 1em;
}

.wform .js-form-item {
  display: inline;
  float: left;
}

/* .wform .form-composite, */
/* .form-item, */
/* .form-actions, */
.wform .js-form-item.wform-component {
  margin: 0.5rem 0 0;
  padding: 0 0.5rem;
  /* padding: 0; */
}

.wform .fieldset.js-form-item.wform-component {
  padding: 0;
}

.wform .js-form-item.form-check .js-form-item {
  margin: 0rem;
  padding: 0.5rem 0.5rem;
}

.wform .js-form-item.wform-item-boolean {
  margin: 0rem;
  /* margin-left: 0.5rem; */
  /* width: 98%; */
}

.wform .form-item label,
.wform .form-item .description,
.wform .form-composite .fieldset-legend {
  position: relative;  
  display: block;
  /* float: left; */  
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  font-size: 1em;
  font-size: 0.777em; 
  font-weight: 300;
  line-height: 1.5;
  color: var(--cWFTesto); 
  width: 100%;
  
  /* margin: 0.5rem 0 0; */
  margin: 0.5rem 0 0.2rem;
  /* margin: 0.5rem 0 0.5rem; */

  text-transform: none;  
}

.wform .form-item label,
.wform .form-composite .fieldset-legend { }

.wform .form-composite .fieldset-legend {  }

.wform .form-item .description {
  font-size: 1em;
  font-size: 0.777em;
  font-weight: 300;  
  /* font-style: italic; */
  margin: 0 0 0.5rem;
}

.wform .form-item .description p { margin-bottom: 0; }

.wform .form-item .text-char-counter {
  position: relative;
  display: inline-block;
  width: 100%;
  margin-top: 1rem;
  
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  display: inline;
  float: left;
  margin: 0.5rem 0 0.5rem;
  font-size: 1em;
  font-size: 0.777em; 
  text-transform: none;
  position: relative;
  color: var(--cWFTesto);
  font-weight: 300;
  width: 100%;
  line-height: 1.5;
  text-align: right;
}

.wform .form-item input,
.wform .form-item select,
.wform .form-item textarea,
.wform fieldset {
  position: relative;  
  /* display: inline; */
  /* float: left; */    

  /* margin: 0; */
  /* padding: 0; */
  /* height: 100%; */
}

.wform .form-item input,
.wform .form-item select,
.wform .form-item textarea { 
  font-size: 1em;
  font-weight: 300;
  color: var(--cWFTesto); 
}

.wform .form-item input:not(.form-check-input),
.wform .form-item select,
.wform .form-item textarea { 
  background-color: var(--cXLGrigio);   
  /* border: 1px solid var(--cGrigio);  */
  
  -webkit-border-radius: 0; 
  -moz-border-radius: 0;
  border-radius: 0;
  box-shadow: none;

  font-size: 1em;
  font-weight: 300;
  
  height: 100%;
  height: 3rem;
}

.wform .form-item input,
.wform .form-item select,
.wform .form-item textarea { 
  border: 0px solid var(--cLGrigio); 
  border-color: #a3a4a4;
  border-color: var(--cLGrigio);
  border-bottom-width: 2px;
}

.wform .form-item textarea { 
  resize: none; 
  height: auto;
  /* padding-left: 1.5rem;  */
  /* padding-right: 1.5rem;  */
}

.wform .form-item select {
  padding-top: 0!important;
  padding-bottom: 0!important;
}

.wform .form-item input:focus, 
.wform .form-item input:active, 
.wform .form-item select:focus, 
.wform .form-item select:active, 
.wform .form-item textarea:focus, 
.wform .form-item textarea:active {
  border-color: var(--cRosso);
  background-color: var(--cXLGrigio);
  /* box-shadow: inset 0 1rem 1rem var(--cRosso); */
  box-shadow: 0px 0px 9px 0px var(--cShadow);
  /* box-shadow: none; */
}

/* .wform .form-item input:invalid,
.wform .form-item textarea:invalid,
.wform .form-item select:invalid, */
.wform .form-item input.error, 
.wform .form-item textarea.error, 
.wform .form-item select.error {
  border: 1px solid var(--cInvalid);
}

.wform .form-item .form-control { 
  color: var(--cWFTesto); 
  /* padding: 1rem 1.2rem;  */
  padding: 0.5rem 0.8rem;
}
.wform .form-item .form-control::-webkit-input-placeholder { color: var(--cWFTesto);  }/* Chrome/Opera/Safari */
.wform .form-item .form-control::-moz-placeholder { color: var(--cWFTesto);  }/* Firefox 19+ */ 
.wform .form-item .form-control:-ms-input-placeholder { color: var(--cWFTesto);  }/* IE 10+ */ 
.wform .form-item .form-control:-moz-placeholder { color: var(--cWFTesto);  }/* Firefox 18- */

.wform .form-item input[type="date"].form-control:invalid,
.wform .form-item select.form-control:invalid, 
.wform .form-item select.form-select:invalid { color: var(--cWFTesto); }

.wform .form-item .form-check-input[type=checkbox] {
  /* border-radius: 0.25em; */
}

.wform .form-item input.form-check-input:checked {
  background-color: var(--cRosso);
  border-color: var(--cRosso);
  /* background-image: none; */
}

.wform .form-item input.form-check-input:checked[type=checkbox] {
  /* --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); */
  /* background-image: var(--bs-form-check-bg-image); */
  /* background-image: none; */
}

/* Importa la gestione Flex */
.webform-has-field-suffix {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}

/* Fa in modo che il label occupi il 100% di larghezza */
.webform-has-field-suffix label {
  display: block;
  width: 100%;
  /* margin-bottom: 0.5rem; */
}

/* Fa in modo che la descrizione occupi il 100% di larghezza */
.webform-has-field-suffix .description {
  display: block;
  width: 100%;
  /* margin-bottom: 0.5rem; */
}

/* Imposta l'input e il suffisso sulla stessa riga, con l'input al 100% meno lo spazio per il suffisso */
.webform-has-field-suffix .form-number {
  display: inline-block;
  /* Rende l'input il 100% meno lo spazio per il suffisso */
  width: calc(100% - 2rem);
  /* vertical-align: middle;  */
}

/* Fa in modo che il suffisso sia visualizzato di fianco all'input e abbia una larghezza automatica */
.webform-has-field-suffix .field-suffix {
  display: inline-block;
  width: auto; 
  vertical-align: middle; 
  margin-left: 0.5rem;
}

.wform .form-item.wform-item-phone .iti {
  width: 100%;
  margin: 0.5rem 0rem;
}

.wform .form-item.wform-item-phone input.webform-webform-telephone-international { 
  padding-left: 3rem;
}

.wform .wform-item-boolean,
.wform .form-switch {
  display: flex;
  flex-wrap: nowrap;
  margin: auto;
  justify-content: start;
}

.wform .wform-item-boolean {

}

.wform .wform-item-boolean input {
  /* margin-left: 0rem; */
  margin: auto 0;
  border: 1px solid var(--cLGrigio);
  background-color: var(--cXLGrigio);  
}

.wform .wform-item-boolean .description {
  margin: auto;
  padding-left: 1rem;
}

.wform .form-check {
  /* display: flex; */
  /* flex-wrap: nowrap; */
  /* margin: auto; */
  /* justify-content: start; */
}

.wform .form-check .fieldset-wrapper .form-item {
  /* padding-left: 1.5em; */
}

.wform .form-check input {
  /* margin-left: -1.5em; */
}

.wform .form-check .description {
  /* margin: auto; */
  /* padding-left: 0.5rem; */
}

.wform .form-switch {

}

.wform .form-switch input {
  margin-left: -2.5rem;
}

.wform .form-switch .description {
  margin: auto;
  padding-left: 0.5rem;
}

.wform .webform-type-radios .form-radios {
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
}

/* .wform .webform-type-radios .form-radio, */
.wform .webform-type-checkboxes .form-checkboxes {
  display: flex;
  flex-wrap: wrap;
  margin: auto;
  justify-content: start;
}

.wform .webform-type-radios input,
.wform .webform-type-checkboxes input {

}

.wform .webform-type-radios label,
.wform .webform-type-checkboxes label {
  margin-left: auto;

  text-transform: none;
  font-size: 1em; 
  font-weight: 300;  
  line-height: 1.5;
  color: var(--cWFTesto); 
  width: 100%;
}

.wform .form-item .form-type-checkbox:not(.campoBoolean),
.wform .form-item .form-type-radio:not(.campoBoolean) {
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
}

.wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item {
  display: flex;
  align-items: center;
  width: 100%;
  /* width: 33%; */
  padding: 0 0.5rem;
}

.wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item label,
.wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item .description,
.wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item label,
.wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item .description {
  font-weight: 300;
  margin: 0.5rem 0;
  line-height: 1;
}

.wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item input {
  width: 1.5rem;
  height: 1.5rem;
  margin: 0.5rem 0;
  margin-right: 0.5rem;
  margin-left: -0.5rem;
  background-color: var(--cXLGrigio)!important;
  border: 1px solid var(--cLGrigio)!important;
}

.wform .form-item.wform-component 
.form-type-checkbox:not(.campoBoolean).js-form-item input:checked,
.wform .form-item.wform-component 
.form-type-radio:not(.campoBoolean).js-form-item input:checked {
  background-image: none;
  background-color: var(--cRosso)!important;
}

.wform .form-item.wform-component.campoList .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campoList .form-type-radio:not(.campoBoolean).js-form-item {
  display: flex;
  align-items: center;  
  width: 100%;
}

.wform .form-item.wform-component.campoList .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.wform-component.campoList .form-type-radio:not(.campoBoolean).js-form-item input {
  /* width: 1.5rem; */
  /* height: 1.5rem; */
  /* margin: 0.5em 0; */
  /* margin-right: 0.5rem; */
}

.wform .form-item.wform-component.campoInline .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campoInline .form-type-radio:not(.campoBoolean).js-form-item {
  display: flex;
  align-items: center;  
  width: 20%;
  padding: 0 0.1rem;
  margin-top: 1rem;
}

.wform .form-item.wform-component.campoInline .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.wform-component.campoInline .form-type-radio:not(.campoBoolean).js-form-item input {
  /* width: 1.5rem; */
  /* height: 1.5rem; */
  /* margin: 0.5em 0; */
  /* margin-right: 0.5rem; */
}

.wform .form-item.wform-component.campo2Col .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campo2Col .form-type-radio:not(.campoBoolean).js-form-item {
  display: flex;
  align-items: center;    
  width: 100%;
  /* width: 50%; */
}

.wform .form-item.wform-component.campo2Col .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.wform-component.campo2Col .form-type-radio:not(.campoBoolean).js-form-item input {
  /* width: 1.5rem; */
  /* height: 1.5rem; */
  /* margin: 0.5em 0; */
  /* margin-right: 0.5rem; */
}

.wform .form-item.wform-component.campo3Col .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campo3Col .form-type-radio:not(.campoBoolean).js-form-item {
  display: flex;
  align-items: center;    
  width: 100%;
  /* width: 50%; */
}

.wform .form-item.wform-component.campo3Col .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.wform-component.campo3Col .form-type-radio:not(.campoBoolean).js-form-item input {
  /* width: 1.5rem; */
  /* height: 1.5rem; */
  /* margin: 0.5em 0; */
  /* margin-right: 0.5rem; */
}

.wform .form-item.wform-component.campoUpload .form-managed-file {
  width: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;

}

.wform .form-item.wform-component.campoUpload .messages--error {
  clear: both;
  display: block;
  width: 100%;
  font-size: 90%;
  order: 1;
  margin: 1rem auto;
}

.wform .form-item.wform-component.campoUpload .form-managed-file .btn-primary {
  display: block!important;
}

.wform .form-item.wform-component.campoUpload .form-managed-file input[type=file] {
  /* width: 100%; */
  flex: 1 0 0; /* Occupa spazio disponibile senza ridimensionarsi */
  min-width: 0; /* Evita problemi di overflow */
  margin-top: 8px; /* Distanza dal messaggio di errore */
}

.wform .form-item.wform-component.campoUpload .form-managed-file .file {
  margin-right: 1rem;
}

.wform .form-item.wform-component.campoUpload .description {
  margin-top: 0.5rem!important;
}

/* .wform .form-item.wform-component.campoUpload a[data-target="#upload-instructions"] {
  margin: 0.5em 0 1.5em;
  display: block;
} */

/* campoSelect */
.wform .form-item.campoSelect .form-type-select {
  width: 100%;
}

/* campoRange */

/* Wrapper: variabili responsive */
.wform .campoRange{
  /* ── Step & geometria tacche ───────────────────────────── */
  --steps:        var(--range-steps, 11);   /* es. 11 per 0..10 */
  --segments:     calc(var(--steps) - 1);   /* numero tacche/etichette (1..max) */
  --segments-h:   0.5rem;                   /* altezza tacche */

  /* ── Dimensioni responsive ─────────────────────────────── */
  --pad-x:        clamp(.4rem, 2.5vw, .75rem); /* padding orizzontale slider/scala */
  --track-h:      0.5rem;                       /* altezza barra grigia */
  --thumb-size:   1rem;                         /* diametro pallino */
  --thumb-radius: 50%;

  /* ── Colori base ───────────────────────────────────────── */
  --track:        var(--cLBianco);   /* track grigio */
  --tick:         var(--cDVerde);   /* colore tacche */
  --tick-w:       4px;       /* larghezza tacche */

  /* ── Etichette (scala numerica) ────────────────────────── */
  --scale-color:  var(--cWFTesto); 
  --scale-font:   1rem;

  /* ── Thumb (cursore) ───────────────────────────────────── */
  --thumb-color:  var(--cDVerde); 
  --thumb-shadow: none;
  --thumb-offset-x: -0.5px;  /* fine-tuning allineamento orizzontale */

  /* ── Contenitore slider ────────────────────────────────── */
  --rangeBg:      transparent;
  --rangeBRadium: 0px;
  --rangeBWidth:  0px;
  --rangeBColor:  none;
}

/* Scala numerica (1..max) */
.wform .campoRange .range-scale{
  display: grid;
  grid-template-columns: repeat(var(--segments), minmax(0,1fr));
  gap: 0;
  margin-top: .25rem;
  padding: 0 var(--pad-x);         /* identico allo slider → allineamento perfetto */
  font-size: var(--scale-font);
  color: var(--scale-color);
  white-space: nowrap;
}
.wform .campoRange .range-scale > span{
  justify-self: end;               /* numero posizionato sulla tacca di destra */
  position: relative;
  left: 0.25rem;                         /* niente offset → centratura esatta */
}

/* Hover: leggero feedback */
.wform .campoRange .range-scale span:hover { 
  color: var(--cMenta);
}

/* Focus tastiera: chiaro e non invadente */
.wform .campoRange .range-scale span:focus-visible {
  outline: 0px solid currentColor;
  outline-offset: 0px;
  border-radius: 0px;
}

/* Stato attivo: già ok, aggiungo transizione morbida */
.wform .campoRange .range-scale span {
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent; /* mobile */
   -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
}
.wform .campoRange .range-scale span.is-active {
  color: var(--thumb-color);
  font-weight: 300;
}

/* Slider con tacche 0..max — track SOTTO, tacche SOPRA */
.wform .campoRange input.form-range{
  width: 100%;
  padding: 0 var(--pad-x);
  height: clamp(1rem, 4vw, 1.25rem);
  border: var(--rangeBWidth) solid var(--rangeBColor);
  border-radius: var(--rangeBRadium);
  background-origin: content-box;
  background-color: var(--rangeBg);

  /* Layer (dall'alto al basso):
     1) tacche ripetute
     2) tacca finale destra (cap)
     3) track grigio
  */
  background-image:
    linear-gradient(to right, var(--tick) 0 var(--tick-w), transparent 0),
    linear-gradient(to right, var(--tick) 0 var(--tick-w), transparent 0),
    linear-gradient(var(--track), var(--track));

  background-size:
    calc(99% / var(--segments)) var(--segments-h),  /* ripetute equidistanti */
    100% var(--segments-h), /* cap finale */
    100% var(--track-h); /* track */

  background-repeat:
    repeat-x,
    no-repeat,
    no-repeat;

  background-position:
    left center,    /* ripetute da sinistra */
    right center,   /* cap allineato a destra (tacca max) */
    center;         /* track centrato verticalmente */
}

/* WebKit/Chromium */
.wform .campoRange input.form-range::-webkit-slider-thumb{
  transform: translateX(var(--thumb-offset-x));
}

/* Firefox */
.wform .campoRange input.form-range::-moz-range-thumb{
  transform: translateX(var(--thumb-offset-x));
}

/* WebKit */
.wform .campoRange input.form-range::-webkit-slider-runnable-track{
  height: var(--track-h);
  background: transparent; /* il track è disegnato nei layer di background */
}
.wform .campoRange input.form-range::-webkit-slider-thumb{
  -webkit-appearance: none; appearance: none;
  width: var(--thumb-size); 
  height: var(--thumb-size);
  border-radius: var(--thumb-radius);
  background: var(--thumb-color);
  border: 0;
  margin-top: calc((var(--track-h) - var(--thumb-size)) / 2); /* centrato sul track */
  box-shadow: var(--thumb-shadow);
}

/* Firefox */
.wform .campoRange input.form-range::-moz-range-track{
  height: var(--track-h);
  background: transparent;
  border: 0;
}
.wform .campoRange input.form-range::-moz-range-thumb{
  width: var(--thumb-size); 
  height: var(--thumb-size);
  border-radius: var(--thumb-radius);
  background: var(--thumb-color);
  border: 0;
  box-shadow: var(--thumb-shadow);
}

/* Hover/Focus */
.wform .campoRange input.form-range:focus-visible::-web

/* --- Modalità compatte per schermi piccoli (opzionali) --- */

/* XS: mostra solo 1,5,10 (riduce affollamento etichette) */
@media (max-width: 420px){
  .wform .campoRange .range-scale > span{
    visibility: hidden;
  }
  /* Indici: 1 (col 1), 5 (col 5), 10 (col 10) */
  .wform .campoRange .range-scale > span:nth-child(1),
  .wform .campoRange .range-scale > span:nth-child(5),
  .wform .campoRange .range-scale > span:last-child{
    visibility: visible;
  }
}

/* SM: mostra 1 su 2 (1,3,5,7,9,10) */
@media (min-width: 421px) and (max-width: 575.98px){
  .wform .campoRange .range-scale > span:nth-child(2n){
    visibility: hidden;
  }
  .wform .campoRange .range-scale > span:last-child{
    visibility: visible;
  }
}

/* campoAltro */
.wform .form-item.campoAltro { 
  margin-top: 1rem;
} 

/* campoData */
.wform .form-item.campoData {

}

.wform .form-item.campoData legend,
.wform .form-item.campoData label,
.wform .form-item.campoData .description { 

}

.wform .form-item.campoData .form-type-checkbox:not(.campoBoolean) label,
.wform .form-item.campoData .form-type-checkbox:not(.campoBoolean) .description,
.wform .form-item.campoData .form-type-radio:not(.campoBoolean) label,
.wform .form-item.campoData .form-type-radio:not(.campoBoolean) .description { 

}

.wform .form-item.campoData input,
.wform .form-item.campoData select,
.wform .form-item.campoData textarea {

}

/* campoDataInline */
.wform .form-item.campoDataInline .form-inline {
  display: flex;
  gap: 5px;
  width: 100%;
  align-items: center;
  justify-content: flex-start;
}

.wform .form-item.campoDataInline .form-inline > div {
  flex: 1 1 0;
}

.wform .form-item.campoDataInline .form-inline legend,
.wform .form-item.campoDataInline .form-inline label,
.wform .form-item.campoDataInline .form-inline .description { 
  display: none;
}

/*SONDAGGIO*/
.wform-multistep .alert {
  width: 100%!important;
  font-size: 1rem;
}

.wform-multistep .webform-progress {
  color: var(--cDVerde);
  font-size: 0.888em;
  font-weight: 300;
  padding: 0 0.5rem;
}

.wform-multistep .webform-progress .separator {
  font-size: 0; 
  position: relative;
}

.wform-multistep .webform-progress .separator::before {
  content: "/";
  font-size: 1rem; 
  position: relative;
}

.wform-multistep .wform-component-step {
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
  width: 100%;
}

.wform-multistep .wform-component-step legend {
  margin-bottom: 0;
}

.wform-multistep .ajax-progress-throbber {
  display: none;
}

.wform-multistep .wform-component.box-action .webform-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}

/*END SONDAGGIO*/

.wform .form-item.fieldset-scheda { counter-reset: item; padding-left: 0rem; }
/* ol.list-increment li { display: block; } */
.wform .fieldset-scheda .wrapper-number {
  position: relative;
  padding-left: 2rem; /* spazio per il numero */
}

.wform .fieldset-scheda .wrapper-number label:not(.option)::before,
.wform .fieldset-scheda .wrapper-number .fieldset-legend:not(.option)::before {
  position: absolute;
  left: -1.5rem;
  top: 0;
  content: counters(item, ".") ". ";
  counter-increment: item;
  font-weight: 300;
  width: 1.5rem; /* larghezza riservata al numero */
  display: inline-block;
}

.wform .form-item.fieldset-action .fieldset-wrapper {
  display: flex;
  overflow: hidden;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

.wform .form-item .campoEtichetta {
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  color: var(--cWFTesto);
  font-weight: 700;
  font-size: 1.222em;
  margin-top: 4rem;
  margin-bottom: 0;
}

/* campoBottone */
.wform .form-item.campoBottone {
  background-color: transparent;
}

.wform .form-item.campoBottone.campoForm { 
  /* padding: 0rem 1rem; */
} 

.wform .form-item.campoBottone label {
  /* position: relative; */
  font-size: 1em;
  color: var(--cWFTesto);
  /* font-weight: 300; */
}

.wform .form-item.campoBottone .control-label label strong {}

.wform .form-item.campoBottone .control-label label em {
  /* display: block;
  clear: both;
  color: var(--cWFTesto);
  font-size: 1em; 
  font-weight: 300;
  font-style: italic;
  font-style: normal;  
  margin-top: 0.5em;
  margin-bottom: 0em; */
}

.wform .form-item.campoBottone input {
  /* position: relative; */
  font-size: 1em;
  color: var(--cWFTesto);
  font-weight: 300;
  width: 100%;
  left: 2em;
  padding: 0;
}

/* .wform .form-item.campoBottone .control-label, */
.wform .form-item.campoBottone .form-radios,
.wform .form-item.campoBottone .form-checkboxes {
  position: relative;
  width: 100%;
  /* display: block; */
  float: left;
  /* padding: 0 15px; */
  padding: 0;
  line-height: 1.3;
}

/* .wform .form-item.campoBottone .control-label { 
  padding: 0;
} */
.wform .form-item.campoBottone .form-radios,
.wform .form-item.campoBottone .form-checkboxes {
  display: flex;
  justify-content: space-between;
  /* justify-content: center; */
  align-items: center;
  gap: 0.5rem;
}

.wform .form-item.campoBottone.campoList .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.campoBottone.campoList .form-type-radio:not(.campoBoolean).js-form-item {
  margin-top: 1em;
  margin-bottom: 0;
}

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item {
  text-align: center;
}

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked)+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked)+label,
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item label {
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;
  background-color: var(--cDNero);
  border: 1px solid var(--cGrigio);
  color: var(--cGrigio);
  font-size: 1em;
  font-weight: 300;
  padding: 1rem 1rem;
  padding: 0.8rem 1rem;
  -webkit-border-radius: var(--bradius);
  -moz-border-radius: var(--bradius);
  border-radius: var(--bradius);
  margin: 0;
}

            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked)+.description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked)+.description,
            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item .description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item .description {
              -webkit-transition: all 0.25s ease-in-out 0s;
              -moz-transition: all 0.25s ease-in-out 0s;
              -o-transition: all 0.25s ease-in-out 0s;
              -ms-transition: all 0.25s ease-in-out 0s;
              transition: all 0.25s ease-in-out 0s;              
              color: var(--cGrigio)!important
            }

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked):hover+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked):hover+label,
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:focus+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:focus+label,
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item:hover label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item:hover label,
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item.attivato label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item.attivato label {
  background-color: var(--cCiano);
  border-color: var(--cBianco);
  color: var(--cBianco) !important;
}

            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked):hover+.description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked):hover+.description,
            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:focus+.description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:focus.description,
            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item:hover .description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item:hover .description,
            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item.attivato .description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item.attivato .description {
              color: var(--cBianco) !important;
            }

/* NUOVE CLASSI - Gestione stati checked/unchecked */
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:checked+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:checked+label {}

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked)+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked)+label {
  /* outline: 1px solid var(--cLVerde); */
  background-color: var(--cDNero) !important;
  border: 1px solid var(--cGrigio) !important;
  color: var(--cGrigio) !important;
}

            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked)+.description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked)+.description {
              color: var(--cGrigio)!important;
            }

/* Hover solo su elementi non checked */
.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked):hover+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked):hover+label {
  /* background-color: var(--cBianco)!important;*/
  border: 1px solid var(--cLCiano)!important; 
  color: var(--cLCiano) !important;
}

            .wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:not(:checked):hover+.description,
            .wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:not(:checked):hover+.description {
              color: var(--cCiano) !important;
            }

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input[type="checkbox"]:focus+label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input[type="radio"]:focus+label {
  /* outline: 0px solid var(--cWFTesto); */
}

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item:hover label,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item:hover label {
  /* border-color: var(--cWFTesto); */
}

.wform .form-item.campoBottone .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.campoBottone .form-type-radio:not(.campoBoolean).js-form-item input {
  z-index: -1;
  /* position: relative; */
  position: absolute;
  font-size: 1em;
  color: var(--cWFTesto);
  font-weight: 300;
  left: 2em;
  padding: 0;
  margin: 0;
}

/* campoEnfasi */

.wform .form-item.campoEnfasi { 
  background-color: transparent;
  margin: 1em auto;
}

/* .wform .form-item.campoBottone.campoForm { 
  padding: 0rem 1rem;
} */

.wform .form-item.campoEnfasi .fieldset-legend,
.wform .form-item.campoEnfasi label {
  /* position: relative; */
  font-size: 1em;
  color: var(--cWFTesto);
  /* font-weight: 300; */

}

.wform .form-item.campoEnfasi .fieldset-legend strong,
.wform .form-item.campoEnfasi .control-label label strong { 

}

.wform .form-item.campoEnfasi .fieldset-legend em,
.wform .form-item.campoEnfasi .control-label label em {
  /* display: block;
  clear: both;
  color: var(--cWFTesto);
  font-size: 1em; 
  font-weight: 300;
  font-style: italic;
  font-style: normal;  
  margin-top: 0.5em;
  margin-bottom: 0em; */
}

.wform .form-item.campoEnfasi input {
  /* position: relative; */
  font-size: 1em;
  color: var(--cWFTesto);
  font-weight: 300;
  width: 100%;
  left: 2em;
  padding: 0;
}

/* .wform .form-item.campoEnfasi .control-label, */
.wform .form-item.campoEnfasi .form-radios,
.wform .form-item.campoEnfasi .form-checkboxes { 
  position: relative;
  width: 100%;
  /* display: block; */
  float: left;
  /* padding: 0 15px; */
  padding: 0;
  line-height: 1.3;
}

/* .wform .form-item.campoEnfasi .control-label { 
  padding: 0;
} */

.wform .form-item.campoEnfasi .form-radios,
.wform .form-item.campoEnfasi .form-checkboxes { 
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wform .form-item.wform-component.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item {
  -webkit-transition: all 0.25s ease-in-out 0s;
  -moz-transition: all 0.25s ease-in-out 0s;
  -o-transition: all 0.25s ease-in-out 0s;
  -ms-transition: all 0.25s ease-in-out 0s;
  transition: all 0.25s ease-in-out 0s;  
  background-color: var(--cCiano);
  border: 1px solid var(--cCiano);
  color: var(--cWFTesto);
  font-size: 1em;
  font-weight: 300;
  padding: 1rem 1rem;
  padding: 0rem 1rem;
  -webkit-border-radius: var(--bradius);
  -moz-border-radius:var(--bradius);
  border-radius: var(--bradius);
  margin: 0.5rem auto;

  text-align: center;
  /* width: 50%; */
  /* width: 49%; */
  width: 100%;
}

.wform .form-item.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item label,
.wform .form-item.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item label {
  text-align: left;
  margin: auto;
  margin-left: 1rem;
  padding: 1rem 0rem;
}

.wform .form-item.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item.attivato,
.wform .form-item.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item.attivato {
  background-color: var(--cBianco);
  border-color: var(--cCiano);
  color: var(--cBianco) !important;
}

.wform .form-item.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item.attivato label,
.wform .form-item.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item.attivato label {

}

.wform .form-item.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item input,
.wform .form-item.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item input {
  /* z-index: 1; */
  position: relative;
  /* position: absolute; */
  font-size: 1em;
  color: var(--cWFTesto);
  font-weight: 300;

  left: 0em;
  padding: 0;
  margin: 0;
}

.wform .form-item.wform-component.campoEnfasi.campoList .form-type-checkbox:not(.campoBoolean).js-form-item,
.wform .form-item.wform-component.campoEnfasi.campoList .form-type-radio:not(.campoBoolean).js-form-item  {
  margin-top: 1em;
  margin-bottom: 0;
  width: 100%;
}

/* campoDomanda */

.wform .form-item.campoDomanda {
  padding-left: 2rem;
  border-bottom: 1px solid var(--cLGrigio);
  padding-bottom: 2rem;
}

.wform .form-item.campoDomanda.campoDomandaLabel,
.wform .form-item.campoDomanda .fieldset-legend,
.wform .form-item.campoDomanda label,
.wform .form-item.campoDomanda .description { 
  font-weight: 400;
  font-size: 1.222em;
  margin-top: 0;
  margin-bottom: 0.75rem;
}

.wform .form-item.campoDomanda.campoDomandaLabel {
  padding: 0 0.5rem;
}

.wform .form-item.campoDomanda.campoDomandaLabel em {
  display: block;
  clear: both;
  color: var(--cWFTesto);
  font-size: 1em;
  font-weight: 300;
  font-style: italic;
  font-style: normal;  
  /* margin-top: 0.5em; */
  /* margin-bottom: 0em; */
}

.wform .form-item.campoDomanda .description { 
  margin-bottom: 0.5rem;
}

.wform .form-item.campoDomanda .fieldset-legend strong,
.wform .form-item.campoDomanda label strong,
.wform .form-item.campoDomanda .description strong { 

}

.wform .form-item.campoDomanda .form-type-checkbox:not(.campoBoolean) label,
.wform .form-item.campoDomanda .form-type-checkbox:not(.campoBoolean) .description,
.wform .form-item.campoDomanda .form-type-radio:not(.campoBoolean) label,
.wform .form-item.campoDomanda .form-type-radio:not(.campoBoolean) .description { 

}

.wform .form-item.campoDomanda input,
.wform .form-item.campoDomanda select,
.wform .form-item.campoDomanda textarea {
  margin: 0.5rem 0 0;
}

/* campoDomandaProgressivo */
.wform .form-item.fieldset-sondaggio { 
  counter-reset: item; 
  /* padding-left: 0rem;  */
}
.wform .fieldset-sondaggio .form-item.campoDomandaProgressivo label:not(.option):before,
.wform .fieldset-sondaggio .form-item.campoDomandaProgressivo .fieldset-legend:not(.option):before { 
  font-weight: 700; 
  content: counters(item, ".") ". "; 
  counter-increment: item; 
  left: -2rem;
  position: absolute;
}

/* =========================================================
  MOBILE FIRST (default): 1 colonna
   ========================================================= */
.wform .form-item.fieldset-sondaggio > .fieldset-wrapper {
  display: grid;
  grid-template-columns: 1fr; /* 1 colonna mobile */
  gap: 1.5rem;
}

/* Stile singole domande (resta invariato) */
.wform .form-item.fieldset-sondaggio .campoDomanda {
  padding: 0;
  border-bottom: 1px solid var(--cLGrigio);
  box-sizing: border-box;
  width: 100%;
  padding-left: 2rem;
  padding-bottom: 2rem;
}

/* =========================================================
  DESKTOP (>= 768px): layout 2 colonne con override
   ========================================================= */
@media (min-width: 768px) {

  /* 2 colonne */
  .wform .form-item.fieldset-sondaggio > .fieldset-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }

  /* DOMANDA 1 → prima colonna, prima riga */
  .wform .form-item.fieldset-sondaggio .campoDomanda:first-child {
    grid-column: 1 / 2; 
    grid-row: 1;
  }

  /* DOMANDA 2 e DOMANDA 3 → seconda riga, una accanto all’altra */
  .wform .form-item.fieldset-sondaggio .campoDomanda:nth-child(2),
  .wform .form-item.fieldset-sondaggio .campoDomanda:nth-child(3) {
    grid-row: 2;
  }
}

/* Stile base */
.wform .form-item.fieldset-sondaggio .campoDomanda {
  border-bottom: 1px solid var(--cLGrigio);
  padding-left: 2rem;
  padding-bottom: 2rem;
  box-sizing: border-box;
  width: 100%;
}

/* Mobile: una colonna sola */
@media (max-width: 767px) {
  .wform .form-item.fieldset-sondaggio > .fieldset-wrapper {
    grid-template-columns: 1fr;
  }
  .wform .form-item.fieldset-sondaggio .campoDomanda {
    grid-column: auto;
    grid-row: auto;
  }
}

/* campoForm */

.wform .form-item.campoForm {
  margin: 0.5rem 0 0.2rem;
}

.wform .form-item.campoForm legend,
.wform .form-item.campoForm label,
.wform .form-item.campoForm .description { 
  /* margin: 0.5rem 0 0.2rem; */
}

.wform .form-item.campoForm .form-type-checkbox:not(.campoBoolean) label,
.wform .form-item.campoForm .form-type-checkbox:not(.campoBoolean) .description,
.wform .form-item.campoForm .form-type-radio:not(.campoBoolean) label,
.wform .form-item.campoForm .form-type-radio:not(.campoBoolean) .description { 

}

.wform .form-item.campoForm input,
.wform .form-item.campoForm select,
.wform .form-item.campoForm textarea {

}

.wform .form-item.campoForm.campoAltro { 
  /* padding-bottom: 1rem;  */
  /* margin-top: 1rem; */
  margin-top: 1.5rem;
}

.wform .form-item.highlight > label,
.wform .form-item.highlight .fieldset-legend {
  color: var(--cInvalid);
}

.wform .form-item.highlight input,
.wform .form-item.highlight .form-control {
  border: 1px solid var(--cInvalid);
  border-color: var(--cInvalid);
}

.wform .form-item--error-message,
.wform .form-item--error-message strong,
.wform .form-item--error-message.error {
  display: block;
  font-size: 90%;
  font-weight: 400 !important;
  font-style: italic;
  margin-bottom: 0.5rem;
  margin-top: 0.5rem;
  color: var(--cInvalid);
}

.wform .form-item--error-message::before {
  display: none;
}

.wform .js-form-item.wform-item-campi { 
  position: relative;
  display: block;
  width: 100%;
  padding: 0rem;
  text-align: right;
  margin-top: 1.5rem;
}

.wform .wform-item-campi .description { 
  font-size: 0.777em;
  font-weight: 300;
  line-height: 1.5; 
  color: var(--cWFTesto); 
  width: 100%; 
  text-transform: none;
  margin-bottom: 0;
}

.wform .wform-item-campi .description .js-form-required {
  position: relative;
  top: 0.5rem;
}

.wform .campoBoolean { 
  padding-top: 2rem; 
  /* width: 100% !important; */
}

.wform .campoBoolean:not(.form-switch) {
  padding-left: 0.5rem;
}

.wform .campoBoolean a { 
  color: var(--cWFTesto); 
  font-weight: 500; 
  text-decoration: underline; 
}

.wform .campoBoolean .description { 
  font-size: 1em;
  font-size: 0.888em; 

  font-weight: 300;
  line-height: 1.5; 
  color: var(--cWFTesto); 
  width: 100%; 
  text-transform: none; 
}

.wform .form-actions { 
  position: relative; 
  /* float: left;  */
  /* width: 100%; */
  max-width: 100%;
  /* margin: 3rem 0 1rem; */
  margin: 1rem 0 0rem;
  text-align: right; 
}

.wform .form-actions .form-submit { 
  position: relative;
  font-family: Arial, Helvetica, sans-serif;  
  font-family: "Ubuntu", sans-serif;
  font-size: 1em; 
  font-size: 1.222em!important;
  font-weight: 300;  
  padding: 1rem 1.5rem;
  padding: 0.8rem 1.5rem;
  padding: 0.5rem 1.5rem;
  line-height: 1.4;
  text-shadow: none;
  z-index: 1;
  /* text-transform: none; */
  /* text-transform: uppercase; */
  outline: none;
  width: 100%;
  max-width: 100%;
  margin: 1rem 0;
  height: auto!important;
    
  /* width: auto; */

  /* -webkit-border-radius: 0px;
  -moz-border-radius: 0px;
  border-radius: 0px; */
}

/* .wform .form-actions .ajax-progress { display: none; } */

.wform .form-actions .form-submit:hover {  }

/* MODAL BOOTSTRAP */
/* Stile predefinito per la modale di errore */
#Xform-error-modal .modal-content {
  background-color: #f8d7da; /* Sfondo rosso chiaro per indicare un errore */
  color: #721c24; /* Colore del testo rosso scuro per un buon contrasto */
  border-color: #f5c6cb; /* Bordo della modale in tono con lo sfondo */
}

/* Stile per il titolo della modale */
#Xform-error-modal .modal-title {
  font-weight: bold;
  color: #721c24; /* Colore del testo del titolo */
}

/* Bottone per chiudere la modale */
#Xform-error-modal .close {
  color: #721c24; /* Colore del bottone di chiusura */
}

/* Bottone "OK" nella modale */
#Xform-error-modal .btn-primary {
  /* background-color: #c82333; 
  border-color: #bd2130;  */
}

/************************************************/
/*            Bootstrap 5 Media Queries         */
/************************************************/

/*MOBILE FIRST METHOD*/
/* `custom-xs` >=  375px */
@media (min-width: 375px)  {   

    body { font-size: 16px; }

}

/* `sm` >=  576px */
@media (min-width: 576px) {   

    body { font-size: 16px; }
  
    /*  WEBFORM  */
    .wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item {
      width: 50%;
    }
  
    .wform .form-item.wform-component.campo2Col .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component.campo2Col .form-type-radio:not(.campoBoolean).js-form-item {
      /* width: 100%; */
    }

    .wform .form-item.wform-component.campoEnfasi .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component.campoEnfasi .form-type-radio:not(.campoBoolean).js-form-item {
      width: 50%;
      width: 49%;
    }

}

/* `md` >=  768px */
@media (min-width: 768px)  {   

    body { font-size: 16px; }

    /*  WEBFORM  */
    .wform .form-item.wform-component .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component .form-type-radio:not(.campoBoolean).js-form-item {
      width: 33%;
    }
  
    .wform .form-item.wform-component.campo2Col .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component.campo2Col .form-type-radio:not(.campoBoolean).js-form-item {
      width: 50%;
    }

    .wform .form-actions .form-submit { 
      width: 100%;
      /* max-width: calc(50% - 1rem); */
      /* max-width: calc(20rem - 1rem); */
      width: auto;
    }

    /*SONDAGGIO*/
    .wform-multistep .wform-component.box-action .webform-actions {
      justify-content: space-between;
    }
    /*END SONDAGGIO*/

}

/* `lg` >=  992px */
@media (min-width: 992px)  {   

    body { font-size: 18px; }

    /*TOP*/
    .SezTop .ltop img { 
      max-width: 8rem; 
    }

    /*WFORM*/
    .wform .fieldset.js-form-item.wform-component {
      padding: 0 0.5rem;
      padding: 0;
    }

    .wform .form-item.wform-component.campo3Col .form-type-checkbox:not(.campoBoolean).js-form-item,
    .wform .form-item.wform-component.campo3Col .form-type-radio:not(.campoBoolean).js-form-item {
      width: 33%;
    }

}

/* `xl` >=  1200px */
@media (min-width: 1200px) {   

    body { font-size: 18px; }

}

/* `xxl` >=  1400px */
@media (min-width: 1400px) {   

    body { font-size: 18px; }

}

/*NO-MOBILE FIRST METHOD*/
/* `custom-xs` applies to x-small devices (portrait phones, less than 375px) */
/* `custom-xs` <  576px */
@media (max-width: 374.98px) {  }

/* `sm` applies to x-small devices (portrait phones, less than 576px) */
/* `sm` <  576px */
@media (max-width: 575.98px) { 

  /*TOP*/
  /* .SezTop .ltop img { 
    max-width: 35%; 
  } */

}

/* `md` applies to small devices (landscape phones, less than 768px) */
/* `md` <  768px */
@media (max-width: 767.98px) { 

  /*TOP*/
  /* .SezTop .ltop img { 
    max-width: 25%; 
  } */

}

/* `lg` applies to medium devices (tablets, less than 992px) */
/* `lg` <  992px */
@media (max-width: 991.98px) {  }

/* `xl` applies to large devices (desktops, less than 1200px) */
/* `xl` <  1200px */
@media (max-width: 1199.98px) {  }

/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
/* `xxl` <  1400px */
@media (max-width: 1399.98px) {  }
