/*!
 * App style
 */
:root{
  --swiper-navigation-color: #0a9faa;
  --swiper-pagination-color: #0a9faa;
  --swiper-pagination-bullet-inactive-color: white;
  --swiper-pagination-bullet-inactive-opacity: 1;
  --size-element-form: 398px;
  --swiper-pagination-bullet-width: max(10px, min(1.73vw, 20px));
  --swiper-pagination-bullet-height: max(10px, min(1.73vw, 20px));
}
.swiperSlide-art, .swiperImmaginiArticolo{
  --swiper-navigation-color: white;
}
*{
  box-sizing: border-box;
}
*::not(i){
  font-family: "Open Sans", sans-serif;
}

body{
  position: relative;
}
button{
  outline:none;
  border:0;
}

header{
  z-index: 110;
  position: relative;
  background-color: white;
}
.container-header-linee{
  max-width: 1640px;
  padding-top: max(10px, min(2.66vw, 40px));
}
.container-header-linee div{
  row-gap: 10px;
}
.container-header-linee p{
  color: var(--primary);
  margin: 0;
  font-size: max(14px, min(3.2vw, 23px));
  line-height: max(16px, min(3.2vw, 36px));
  font-family: "Open Sans", sans-serif;
  font-weight: bold;
  text-align: left;
}
.container-header-linee .social{
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
  column-gap: 6px !important;
}
.container-header-linee .social a{
  border: 2px solid var(--primary);
  width: max(30px, min(47px, 5.2vw));
  height: max(30px, min(47px, 5.2vw));
  border-radius: 50%;
  display: grid;
  place-items:center;
}
.container-header-linee .social a:hover{
  text-decoration: none;
  color: white;
  background-color: var(--primary);
}
.container-header-linee .social a:hover i::before{
  color: white;
}

.container-header-linee .social a i, footer .social a i{
  font-size: max(20px, min(3.47vw, 32px));
  line-height: max(26px, min(4.51vw, 35px));
}
#logo{
  width: max(100px, min(26vw,222px));
  padding-block: 30px;
  padding-bottom: max(10px, min(1.73vw, 30px));
}
#voci-menu{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 5px;
  width: 100%;
}
#voci-menu .menu-item{
  width: 100%;
}
#voci-menu .menu-item .voce-menu{
  font-size: 23px;
  line-height: 32px;
  color: black;
  font-weight: 600;
  text-transform: uppercase;
  padding-block: 5px;
  padding-inline: max(10px, min(1vw, 20px));  
  text-align: center;
  width: fit-content;
  display: block;
  margin: auto;
}
#voci-menu .menu-item .voce-menu:hover{
  text-decoration: none;
}
#voci-menu .menu-item:hover .voce-menu, #voci-menu .menu-item.active .voce-menu{
  background-color: var(--primary);
  color: white;
  border-radius: 40px;
}
#voci-menu .collapse-mobile{
  background-color: var(--primary);
  color: white;
  padding: 26px 54px;
  margin-top: 10px;
  position: relative;
  /* top: 27px !important; */
}
#voci-menu .collapse-item{
  color: white;
  font-size: max(18px, min(3.12vw, 23px));
  padding: 0;
}

#voci-menu .collapse-item:hover, #voci-menu .collapse-item:focus{
  background-color: transparent;
  font-weight: 700;;
}
#voci-menu .collapse-item.categoria{
  text-transform: uppercase;
  text-decoration: underline;
  font-weight: 700;
}
#voci-menu .collapse-item.categoria:not(:first-child){
  margin-top: 20px;
}

#backdrop-menu{
  display:none;
  background-color: var(--primary);
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 10;
  top: 0;
  opacity: 0.4;
}


.collapse-child-container{
  display: flex;
  flex-direction: column;
  background-color: var(--primary);
  border-radius: 0 0 3px 3px;
  position: relative;
  z-index: 10;
}
.collapse-child-container .collapse-item {
  background-color: var(--primary);
  /* padding: 0.6rem 1rem; */
  color: var(--primary);
  position: relative;
}

.row-menu{
    overflow-y: hidden;
    max-height: 0;
    left: 0;
    flex-direction: column;
    align-items: flex-end;
    position: absolute;
    transition: max-height 1.2s 1ms, overflow 20s 10s;
    background-color: white;
    width: 100%;
}


.hamburger {
  font-family: 'Barlow', sans-serif;
  font-size: 12px;
  background-color: transparent;
  border: none;
  outline: none;
  align-self: flex-start;
  /* position: absolute; */
  margin-left: 10px;
  right: 0px;
  bottom: 15px;
  padding-right: 0;
}
.hamburger .linea-menu {
  border-radius: 20px;
  display: block;
  width: 23px;
  height: 3px;
  background-color: var(--primary);
  margin-bottom: 4px;
  transition: transform 0.5s, opacity 0.4s;
}
.hamburger.attivo .linea-menu:nth-child(1) {
  transform: translateY(7px) rotate(40deg);
}
.hamburger.attivo .linea-menu:nth-child(2) {
  opacity: 0;
}
.hamburger.attivo .linea-menu:nth-child(3) {
  transform: translateY(-7px) rotate(-40deg);
}


.breadcrumb-title{
  font-size: max(24px, min(40px, 5.2vw));
  line-height: max(30px, min(6vw, 55px));
  padding-inline: 10px;
  padding-block: max(20px, min(3.47vw, 30px));
  color: white;
  text-align: center;
  margin:0;
}
.breadcrumb-title a{
  text-decoration: none;
  color: white;
  letter-spacing: -1px;
}
.breadcrumb-title a:hover:not(.active){
  text-decoration: underline;
  color: white;
}




#slider-banner .swiper .swiper-slide img {
  object-fit: cover;
  min-height: 300px;
  object-position: center;
  width: 100%;
  height: 100%;
}

#slider-banner .button-sito {
  position: relative;
  text-align: center;
  top: -50%;
  z-index: 10;
}
.button-sito{
  display: block;
  width: fit-content;
  font-size: max(20px, min(36px, 3.47vw));
  color: white;
  background-color: var(--primary);
  border: 10px solid white;
  border-radius: 100px;
  /* padding: 20px 100px; */
  padding-block: max(13px, min(2.2vw, 20px));
  padding-inline: max(30px, min( 5vw, 100px));
  box-shadow: 0px 3px 6px #00000029;
  margin: auto;
  transition: all 0.2s ease-in;
}
.button-sito:hover{
  text-decoration: none;
  color: var(--primary);
  border-color: var(--primary);
  background-color: white;
}


.container-servizi, .container-contatti, .container-footer-line,
.container-articoli-servizi, #blocco-contatti{
  width: 100%;
  margin: auto;
  /* background-color: red; */
}
.container-articoli-servizi{
  padding-top: max(40px, min(6.9vw, 133px));
  padding-bottom: max(40px, min(6.9vw, 90px));
}
.titolo-dettaglio-small{
  font-size: max(22px, min(3.8vw, 30px));
  line-height: max(25px, min(4.34vw, 41px));
  color: white;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 20px;
}
.container-articoli-servizi .swiper-slide .button-site-simple{
  background-color: white;
  color: black;
  margin-top: max(20px, min(3.47vw, 42px));
}


.swiperSlideServizi{
  padding-top: max(20px, min(3.47vw, 60px)) !important;
  padding-bottom: max(50px, min(8.6vw, 85px)) !important
}

.title-section{
  font-size: max(24px, min(4.1vw, 40px));
  line-height: max(30px, min(5.2vw, 55px));
  font-weight: bold;
  text-align: center;
}
.swiperSlideServizi .img-block{
 width: max(220px, min(260px, 31vw));
 height: max(220px, min(260px, 31vw));
}
.img-block img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 100%;
  border: 10px solid var(--primary);
}


.swiperSlideServizi h3{
  font-size: 24px;
  line-height: 32px;
  padding-top: max(20px, min(3.47vw, 43px));
  padding-bottom: max(20px, min(3.47vw, 64px));
  margin: 0;
}
.button-site-simple{
  background-color: var(--primary);
  border-radius: 50px;
  padding-inline: 51px;
  padding-block: max(5px, min(0.86vw, 9px));
  color: white;
  font-weight: bold;
  font-size: 24px;
  text-transform: uppercase;
  box-shadow: 0px 3px 6px #00000029;
  height: 50px;
}


#blocco-Banner-Categoria .swiper-slide{
  max-height: 600px;
}
#blocco-Banner-Categoria .swiperDefault-pagination{
  --swiper-pagination-bottom: max(20px, min(3.47vw, 100px));
}
#blocco-Banner-Categoria .swiper-slide img {
  object-fit: cover;
  /* height: 100%; */
  height: max(300px, min(52vw, 500px));
  object-position: center;
  width: 100%;
}
.paragrafo-dettaglio{
  font-size: max(18px, min(3.125vw, 30px));
  line-height: max(22px, min(3.8vw, 50px));
  text-align: center;
  padding-top: max(30px, min(5.2vw, 110px));
  padding-bottom: max(10px, min(1.76vw, 130px));
}
:is(.paragrafo-dettaglio,.paragrafo-highlight) strong{
  color: var(--primary);
}

.blocco-news .img{
  /* min-height: min(100vw, 400px); */
  width: 100%;
}
.blocco-news .img img{
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.blocco-news .title-articolo-highlight{
 padding-top: 26px;
 display: block;
}


.title-articolo-highlight{
  color: var(--primary);
  text-transform: uppercase;
  font-weight: bold;
  font-size: max(24px, min(4.1vw, 30px))
}
.paragrafo-highlight{
  font-size: max(18px, min(3.125vw, 23px));
  line-height: max(22px, min(3.8vw, 30px));
  word-wrap: break-word;
}
.container-articoli{
  padding-top: max(30px, min(5.2vw, 80px)) !important;
}
.container-articoli .blocco-news{
  padding-bottom: 20px;
}
.container-articoli .button-action{
  margin: 20px;
}
.container-articoli .button-action .load-more-area{
  display: flex;
  justify-content: center;
}
.container-articoli .button-action .load-more-area span{
  padding: 9px 0px;
  background-color: var(--primary);
  color: white;
  border-radius: 20px;
  width: min(100%, var(--size-element-form));
  text-align: center;
  font-weight: bold;
  cursor: pointer;
}


#blocco-contatti-tempo{
  /* min-height: 580px; */
  background: url("/media/images/banner_consulenza.png") no-repeat;
  background-size: cover;
}
#blocco-contatti-tempo h2{
  text-shadow: 0px 3px 6px #00000029;
  margin: 0;
  padding-top: max(25px, min(4.35vw, 96px));
  padding-bottom: max(15px, min(2.6vw, 25px));
}
#blocco-contatti-tempo form .row{
  row-gap: 10px;
  padding-bottom: max(30px, min(5.2vw, 80px));
}
#blocco-contatti-tempo form .row :is(input, textarea){
  border: 3px solid white;
  border-radius: 50px;
  background-color: transparent;
  color: white;
  font-size: 20px;
  max-width: var(--size-element-form);
  margin:auto;
  padding-left: 15px;
  padding-bottom: 10px;
  margin-top: 20px;
}
#blocco-contatti-tempo form .row :is(input, textarea):focus{
 border-color: var(--primary);
}
#blocco-contatti-tempo form .row textarea{
  border-radius: 20px;
  min-height: 100px;
  max-height: 300px;
}
#blocco-contatti-tempo form .row button{
  max-width: var(--size-element-form);
  margin: auto;
  display: flex;
  justify-content: center;
  align-items: center;

}
#blocco-contatti-tempo form .row :is(input, textarea)::placeholder{
  color: white;
  text-transform: lowercase;
}

#blocco-contatti-tempo form .row :is(input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active)
{
  transition: background-color 5000s;
  -webkit-text-fill-color: white !important;
}

#blocco-correlati{
  padding: 20px;
  padding-top: max(50px, min(8.6vw,100px));
  padding-bottom: max(50px, min(8.6vw, 120px));
}
.swiperCorrelati :is(.paragrafo-highlight, .title-articolo-highlight){
  padding-right: 20px;
}
#blocco-correlati .title-articolo-highlight{
 padding-top: 25px;
 font-size: max(24px, min(2vw, 30px));
 display: block;
}

#blocco-correlati .arrow{
  position: relative;
  top: 0;
  align-self: center;
}
#blocco-correlati .swiperCorrelati{
  --margin-arrow: max(70px, min(12vw, 138px));
  padding-top: max(20px, min(3.47vw, 49px));
  max-width: calc(100% - var(--margin-arrow));
}
.dettaglioChisiamo #blocco-correlati .swiper-slide .img-block img{
  max-width: max(280px, min(23vw, 280px));
  border-radius: 0;
}
#blocco-correlati .swiper-slide .img-block img{
  max-width: max(280px, min(23vw, 398px));
  border-radius: 0;
}
#blocco-correlati.rounded .swiper-slide .img-block img{
  border-radius: 100%;
}
:is(.container-articoli-servizi, .container-prodotti-correlati) .swiper-slide .img-block img{
  border: none;
}


.swiperImmaginiArticolo{
  height: 100%;
}
.swiperImmaginiArticolo .swiper-slide img{
  height: 100%;
  object-fit: cover;
  max-height: max(320px, min(55vw, 620px));
}
#blocco-elencodettaglio .fotoBanner{
  min-height: 320px;
  object-fit: cover;
}
#blocco-elencodettaglio .paragrafo-dettaglio{
  padding-inline: 14%;
}

#blocco-elencodettaglio .colonnaArticoloSinistra .blocco-news{
  max-width: 813px;
  margin: auto;
  display: block;
  padding-top: max(15px, min(2.6vw, 100px));
}
#blocco-elencodettaglio .colonnaArticoloDestra .blocco-articoli{
  padding-top: max(25px, min(2.6vw, 100px));
}
#blocco-elencodettaglio .colonnaArticoloDestra .blocco-articoli > h2.title-articolo-highlight{
  color: white !important;
  text-align: center;
  width: fit-content;
  display: block;
  margin: auto;
  position: relative;
  margin-bottom: 14px;
}
#blocco-elencodettaglio .colonnaArticoloDestra .blocco-articoli > h2.title-articolo-highlight::after{
  position: absolute;
  content: "";
  width: 100%;
  height: 3px;
  background-color: white;
  bottom: -13px;
  left:0;
}
#blocco-elencodettaglio .colonnaArticoloDestra .blocco-news{
  max-width: 396px;
  margin:auto;
  display: block;
  padding:0;
  padding-top: 20px;
  padding-bottom: 40px;
  border-bottom: 3px solid white;
}
#blocco-elencodettaglio .colonnaArticoloDestra .blocco-news .title-articolo-highlight{
  color: black;
}

#blocco-contatti{
  padding:0;
  padding-top: max(40px, min(6.9vw, 100px));
  padding-bottom: max(40px, min(6.9vw, 100px));
}
#blocco-contatti .row{
  row-gap: 30px; 
}
#blocco-contatti .title-articolo-highlight{
  text-transform: initial;
  color: black;
  text-align: center;
  
 display: block;
 margin: auto;
 padding-top: 30px;
 word-wrap: break-word;
}
#blocco-contatti .row > div:nth-child(1) .title-articolo-highlight{
  max-width: 356px;
}



:is(.dettaglioChisiamo, .dettaglioLaboratorio) .paragrafo-dettaglio{
  max-width: 675px;
  text-align: left;
  display: block;
  margin: auto;
}
:is(.dettaglioChisiamo, .dettaglioLaboratorio) .swiper{
  height: 100%;
}
:is(.dettaglioChisiamo, .dettaglioLaboratorio) .swiper-slide img{
  height: 100%;
  object-fit: cover;
}










#gdpr-checkbox{
  /* display: none; */
  opacity: 0.001;
  position: absolute;
  margin-top: 0 !important;
  margin-left: 10px !important;
}
#gdpr-checkbox + label{
  padding: 0 10px;
  display: block;
  margin: auto;
  max-width: var(--size-element-form);
}
#gdpr-checkbox + label .custom-check-correct {
  position: relative;
  width: 20px;
  height: 20px;
  background-color: white;
}
#gdpr-checkbox + label .custom-check-correct::after {
  content: "";
  position: absolute;
  height: 50%;
  width: 100%;
  left:0;
  bottom: 0px;
  transform: rotate(0); 
  transition: transform 0.2s ease-in-out;
}
#gdpr-checkbox + label .custom-check-correct{
  float: left;
}
#gdpr-checkbox + label span{
  margin-left: 10px;
  color: white;
  /* font-weight:bold; */
  text-shadow: 0px 3px 6px #000000;
  padding: 0 10px;
}
#gdpr-checkbox + label span a{
  color: white;
  text-decoration: underline;
}
#gdpr-checkbox + label span a:hover{
  color: black;
}
#gdpr-checkbox:checked + label .custom-check-correct::after{
  content: "";
  bottom:8px;
  transform: rotate(-45deg); 
  border-left: 3px solid var(--primary);
  border-bottom: 3px solid var(--primary);
}
#gdpr-checkbox:checked + label .custom-check-correct::after{
  bottom: 6px;
}

footer{
  padding-top: 61px;
}
.paragrafo-footer{
  color: white;
  font-size: 20px;
  line-height: 27px;
  padding: 0 20px;
}

.paragrafo-footer a{
  text-decoration: none;
  color: white;
}
.paragrafo-footer a:hover{
  text-decoration: underline;
}

footer .social{
  display: flex;
  justify-content: start;
  gap: 10px;
  margin-top: auto;
  margin-bottom: 20px;
}
footer .social :is(a, i){
  color: white;
}
footer .social a{
  border: 2px solid white;
  width: max(30px, min(47px, 5.2vw));
  height: max(30px, min(47px, 5.2vw));
  border-radius: 50%;
  display: grid;
  place-items: center;
}
footer .social a:hover{
  text-decoration: none;
}
footer .colonna-footer{
  display: flex;
  flex-direction: column;
}
.footer-line{
  font-size: 20px;
  padding: 20px;
  display: inline-flex;
  justify-content: space-between;
  color: black;
  width: 100%;
}






@media (min-width: 576px){
  #blocco-contatti-tempo form .row textarea,
  #gdpr-checkbox + label{
    max-width: 100%;
  }
}
@media (max-width: 767px){

}
@media (min-width: 768px){
  
}
@media (max-width: 991px){
  .colonna-footer{
    padding-bottom: 30px;
    padding-inline: 30px;
  }
  footer .social{
    justify-content: center;
  }
  .colonna-footer, .colonna-footer .title-section{
    text-align: center !important;
  }
  .row-menu.row-menu-open {
    top: 100%;
    display: flex;
    height: auto;
    max-height: calc(100vh - 171px);
    overflow-y: auto;
  }
  #backdrop-menu.active-mobile{
    display: block;
  }
}
@media (min-width: 992px){
  .paragrafo-footer{
    padding: 0;
  }
  .paragrafo-footer span{
    display: block;
    padding-bottom: 10px;
  }
  #backdrop-menu.active-desktop{
    display: block;
  }

  .container-contatti{
    max-width: 810px;
  }
  .container-servizi, .container-footer-line, .container-articoli-servizi, #blocco-contatti{
    max-width: 960px;
  }
  #voci-menu .collapse-mid-desktop{
    position: absolute !important;
    margin-top: 30px;
  }
  #voci-menu{
    padding-bottom: 30px;
  }
  #voci-menu .menu-item{
    width: auto;
  }
  #voci-menu .menu-item .voce-menu{
    /* margin-inline: max(5px, min(0.6vw, 10px)); */
  }
  .row-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: max(17px, min(1.418vw, 20px));
    position: relative;
    max-height: fit-content;
    overflow-y: visible;
  }
  .row-menu #voci-menu{
    width: auto;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: start;
    column-gap: 8px;
  }
  .hamburger {
    display: none;
  }
}

@media (min-width: 1200px){
  .container-servizi{
    max-width: 1480px;
  }
  .container-footer-line, .container-prodotti-correlati{
    max-width: 1360px;
  }
  .container-articoli-servizi{
    max-width: 1500px;
  }
  #blocco-contatti{
    max-width: 1640px;
  }
}






    #privacy .modal-dialog {
      background-image: url(/media/images/cerchio.svg);
      background-size: contain;
      background-repeat: no-repeat;
      min-height: 100%;
      min-width: 560px;
      background-position: center;
      overflow: visible;
      padding: 5rem;
      border:none;
      margin-top:0;
      margin-bottom:0;
    }
    #privacy .modal-content {
      background: transparent!important;
      border: none;
    }
    #privacy .modal-title {text-align: center; margin: 0 auto; font-size: 1.5rem; color: #ffffff; font-weight: 700;}
    #privacy .modal-content .modal-header {
      border-bottom: none;
      padding-bottom:0;
    }
    #privacy .modal-content .modal-body {
      padding-top: 0;
      padding-bottom: 0;
      text-align: center;
    }
    #privacy .modal-content .modal-footer {
      display: none;
    }
    #privacy a {
      color: #ffffff;
      text-decoration: underline;
    }
    #privacy p {
      color: #000;
      font-size: 15px;
      line-height: 18px;
    }
    #privacy button#__accept {
      float: none !important;
      margin: 0 auto;
      margin-top: 20px!important;
      display: block;
      background: white;
      color: black;
      border: none;      
    }

#privacy .custom-control-input:checked~.custom-control-label::before {
    color: #ffffff;
    background-color: black;
    border-color: black;
}
#privacy .custom-control-input:not(:disabled):active~.custom-control-label::before {
    color: #ffffff;
    background-color: rgb(227 165 24 / 19%);
    border-color: rgb(227 165 24 / 19%);
}
#privacy .custom-control-label::before {
	border: none!important;
}

#privacy .custom-checkbox {width: 40%; justify-content: center;}
#privacy .custom-control-label {color:#ffffff; }

@media (max-width: 480px) {
	
	#privacy .modal-dialog {
top: 15vh;
    background-size: auto 100%;
    min-height: auto;
    min-width: 100vw;
    padding: 2rem 0.5rem;
    margin: 0;
}
	#privacy p {
    font-size: 13px;
    line-height: 16px;
}
}