/*
Theme Name: VibGroup Theme
Theme URI: https://und3fined.it/
Template: generatepress
Author: Gabriele Visconti
Author URI: https://und3fined.it/
Description: Questo tema è stato realizzato dal developer team di Vib. G.V
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 1.60
Updated: 2025-04-30 16:41:41

*/



/* --------------------------------------------
   Typografy
-------------------------------------------- */
body{
    font-size: clamp(16px, 0.937vw, 18px);
    line-height: clamp(30px, 1.666vw, 32px);
    }
.block--title__30{
   font-size: clamp(22px, 1.562vw, 30px);
   line-height: clamp(27px, 1.822vw, 35px);
}
.block--title__40{
   font-size: clamp(24px, 2.082vw, 35px);
   line-height: clamp(29px, 2.082vw, 40px);
}
.block--title__50{
   font-size: clamp(28px, 2.603vw, 50px);
   line-height: clamp(33px, 2.864vw, 55px);
}
.block--title__60{
   font-size: clamp(34px, 3.124vw, 60px);
   line-height: clamp(40px, 4.166vw, 80px);
}
.block--title__70{
   font-size: clamp(34px, 3.645vw, 70px);
   line-height: clamp(50px, 5.207vw, 100px);
}
/* --------------------------------------------
   Global
-------------------------------------------- */
#to-the-top {
    display: flex;
    background-color: #11111173;
    width: 50px;
    height: 50px;
    border-radius: 25px 0 0 25px;
    position: fixed;
    bottom: 15%;
    right: 0;
    transition: background-color .3s, opacity .5s, visibility .5s;
    opacity: 0;
    visibility: hidden;
    z-index: 1000;
    justify-content: center;
    align-items: center;
}
a#to-the-top svg {
    width: 20px;
    height: 20px;
    fill: #fff;
    transition: 300ms;
}

#to-the-top:hover {
	cursor: pointer;
	background-color: #333;
}

#to-the-top:active {
	background-color: #555;
}

#to-the-top.show {
	opacity: 1;
	visibility: visible;
}
html,body{
    scroll-behavior: smooth;
}
.grecaptcha-badge{visibility:hidden!important}
/* --------------------------------------------
   General
-------------------------------------------- */
/* shortcode social */
.social-link-wrapper{
   display: flex;
   align-items: center;
   gap: 8px;
}
.social-link-wrapper a{
   display: flex;
   transition: 300ms;
}
.social-link-wrapper svg{
   width: 20px;
   height: 20px;
   transition: 300ms;
}
/* shortcode contact */
.company-contacts-main-wrapper,.company-contact {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.company-contacts-main-wrapper .company-contact svg {
    width: 20px;
    height: 20px;
}
.company-contacts-main-wrapper .company-contact a {
    display: flex;
    gap: 8px;
    align-items: center;
}
/* --------------------------------------------
   Header
-------------------------------------------- */


/* --------------------------------------------
   Footer
-------------------------------------------- */


/* Form */
.title-red .block--title h3 {
    color: #EC1C24;
}
.block-contact-form-text-wrapper .block--title {
    max-width: clamp(500px, 30.728vw, 590px);
}
.block--subtitle{
   text-transform: uppercase;
   font-size: 18px;
}
.block--subtitle {
    text-transform: uppercase;
    font-size: 18px;
    margin-bottom: 5px;
}
@media(max-width: 768px){
   .contact_form_action input {
      width: 100%;
      max-width: 100%;
   }
}

/* Logo carousel */
.logos-carousel-item {
    width: max-content;
    max-width: max-content;
}
.logo-carousel.alwaysCarousel .row {
    width: 100%;
    max-width: 100%;
}
@media(max-width: 1333px){ 
   .logo-carousel.noDragOnDesktop .row{
      width: 100%;
      max-width: 100%;
   }
}

/* Two column */
.dark-section {
    background: #000000;
}
.dark-section .block--subtitle,
.dark-section .block--paragraph{
    color: #fff;
}

@media(min-width: 1181px){
   .two-column-section.mx-630 .block-text-wrapper {
      max-width: clamp(580px, 33.072vw, 635px);
      margin: 0 0 0 10%;
   }
   .two-column-section.mx-680 .block-text-wrapper {
      max-width: clamp(650px, 35.416vw, 680px);
   }
}

/* cards carousel */
.cards-carousel-wrapper .card-carousel-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: flex-end;
}
.card-carousel-item .block--title {
    color: #EC1C24;
    font-size: clamp(24px, 1.562vw, 30px);
    margin-bottom: 20px;
}
.card-carousel-item .block--paragraph {
    font-size: 16px;
    line-height: 32px;
}
.card-carousel-item .block--subtitle {
    font-size: 14px;
}
.card-carousel-item .block-text .block--paragraph {
    max-width: clamp(320px, 18.48vw, 355px);
}
.desktop.cards-carousel-wrapper{
   display: none;
}
.mobile.cards-carousel-wrapper{
   display: block;
}
.mobile.cards-carousel-wrapper .card-carousel-item {
    grid-template-columns: 1fr;
}
.mobile.cards-carousel-wrapper .block--paragraph.block--title--center {
    margin: 0 auto;
}
.mobile.cards-carousel-wrapper ul.splide__pagination {
    margin: 40px 0 0;
    position: unset;
}
.mobile.cards-carousel-wrapper ul.splide__pagination button{
    width: 15px;
    height: 15px;
}
.mobile.cards-carousel-wrapper ul.splide__pagination button.is-active{
    background: #EC1C24;
}
.cards-carousel-wrapper {
    margin-top: clamp(40px, 6.24vw, 120px);
}
@media(min-width: 1025px){
   .desktop.cards-carousel-wrapper{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 30px;
   }
   .mobile.cards-carousel-wrapper{
      display: none;
   }
   
}

/* Incremental numbers */
.section-incremental-numbers .block--paragraph {
    color: #fff;
}
.section-incremental-numbers .number-item span {
    color: #EC1C24;
}
.section-incremental-numbers .block--paragraph {
    color: #fff;
    max-width: 300px;
    margin: 15px auto 0;
}
@media(min-width: 1025px){
   .section-incremental-numbers .block--paragraph {
      color: #fff;
      max-width: 320px;
      margin: 15px auto 0;
   }
}

/* Review block */
.review-item-block {
    max-width: clamp(500px, 28.645vw, 550px);
    text-align: center;
    padding: 40px 30px;
    text-wrap: balance;
}
.review-item-block .block--paragraph {
    margin: 15px auto 30px;
}
.block-star {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 25px;
}
.reviews-splide, .reviews-splide .splide__track {
    overflow: visible;
}
.reviews-splide .splide__slide {
    opacity: 0.3;
    transition: 300ms;
}
.reviews-splide .splide__slide.is-active {
    opacity: 1;
    transition: 300ms;
}
.review-meta .author {
    font-size: 24px;
    color: #EC1C24;
}
.review-meta .type{
    font-size: 20px;
    color: #FFA900;
}
.review-block .arrows-controls {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -100%);
    width: clamp(600px, 44.791vw, 860px);
    z-index: 9999;
    justify-content: center;
    justify-content: space-between;
    margin: 0 auto;
}
.review-block .block--title:before {
    justify-content: center;
    display: flex;
    align-items: center;
    margin: 0 auto 20px;
}
.review-block .block--title {
    max-width: clamp(540px, 29.426vw, 565px);
    text-wrap: balance;
    margin: 0 auto;
}

@media(max-width: 1024px){
    .review-item-block {
        max-width: clamp(500px, 28.645vw, 550px);
        text-align: center;
        padding: 0px 30px;
        text-wrap: balance;
    }
    .review-block .column {
        overflow: hidden;
    }
    .review-block .arrows-controls{
        display: none;
    }
    .block--image-review {
        max-width: 50px;
        margin: 0 auto;
    }
}

.reviews-block ul.splide__pagination.splide__pagination--ltr {
    margin: 0px;
    padding: 40px 0 0;
    position: unset;
}
.reviews-block ul.splide__pagination.splide__pagination--ltr button{
    width: 15px;
    height: 15px;
}
.reviews-block ul.splide__pagination.splide__pagination--ltr button.splide__pagination__page.is-active{
    background: #EC1C24;
}
.arrows-controls div {
    display: flex;
    cursor: pointer;
    transition: 300ms;
}
.arrows-controls {
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: flex-end;
}
.review-block .arrows-controls {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -100%);
    width: clamp(600px, 44.791vw, 860px);
    z-index: 9999;
    justify-content: center;
    justify-content: space-between;
    margin: 0 auto;
}
.arrows-controls path {
    fill: #EC1C24!important;
}

/* Video embed */
.embed-video-wrapper ul.splide__pagination {
    position: unset;
    margin-top: 40px;
}
.embed-video-wrapper ul.splide__pagination.splide__pagination--ltr button{
    width: 15px;
    height: 15px;
}
.embed-video-wrapper ul.splide__pagination.splide__pagination--ltr button.splide__pagination__page.is-active{
    background: #EC1C24;
}

.embed-video-wrapper {
    margin-top: clamp(40px, 5.207vw, 100px);
}
.embed-video-wrapper iframe{
   width: 100%;
}
.embed-video-wrapper .block--video {
    display: flex;
}

/**/

.two-column-section.mx-575 .block--paragraph ul {
    padding: 0 0 0 25px;
    margin: 0px;
}
.two-column-section.mx-575 .block--paragraph ul li::marker {
    color: #EC1C24;
}
@media(min-width: 1181px){
   .two-column-section.mx-575 .block--paragraph {
      max-width: clamp(500px, 29.947vw, 575px);
   }
}
@media(max-width: 1024px){
   .disable-button-on-mobile .block--button {
      display: none;
   }
   .two-column-section .block--button.block--button--primary, .two-column-section .block--button.block--button--primary a {
      width: 100%;
      max-width: 100%;
   }
}
@media (min-width: 1181px) {
    .two-column-section.mx-575 .block-text-wrapper {
        max-width: clamp(580px, 33.072vw, 635px);
        margin: 0 0 0 10%;
    }
}

/* video and text */
.section.video-and-text .block--video {
    display: flex;
}
.section.video-and-text .block--video iframe{
   width: 100%;
   height: clamp(300px, 41.666vw, 800px);
}
.video-and-text-container .block--title {
    margin-bottom: 20px;
}
.video-and-text-container .block--title h3{
    color: #EC1C24;
}

@media(min-width: 1181px){
   .video-and-text-container .block--text {
      max-width: clamp(600px, 36.978vw, 710px);
   }
}
.text-wrap .block--title {
    text-wrap: balance;
}


/* Grid icon */
.grid-icon-wrapper .block--title {
    font-size: clamp(20px, 1.249vw, 24px);
    margin-top: 20px;
    color: #EC1C24;
    font-weight: 500;
}
.grid-icon-wrapper .block--icon {
    width: 100%;
    height: 100vw;
    max-width: clamp(60px, 4.947vw, 95px);
    max-height: clamp(60px, 4.947vw, 95px);
    justify-content: center;
}
.grid-icon-wrapper .block--icon img {
    width: 100%;
    height: 100%;
}
.grid-icon-wrapper .block--paragraph {
    margin-top: 20px;
}
.icon-grid.desktop .column {
    height: 100%;
}
.grid-icon-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
    max-width: clamp(440px, 24.218vw, 465px);
}
.grid-icon-wrapper .block--paragraph ul li::marker{
   color: #EC1C24;
}
.grid-icon-wrapper .block--paragraph ul {
    padding: 0px 0 0 25px;
    margin: 0px;
    color: #fff;
    font-style: italic;
}
.section.icon-grid.grey-bg.custom-gap .row {
    justify-content: space-between;
    gap: 20px;
    row-gap: 80px;
}
.section.icon-grid {
    background: #000;
    transform: translateY(-2px);
}
.icon-grid.desktop .row .column:nth-child(2) .grid-icon-wrapper {
    margin: 0 auto;
}
.icon-grid.desktop .row .column:nth-child(3) .grid-icon-wrapper {
    margin: 0 0 0 auto;
}
@media(min-width: 1025px) and (max-width: 1280px){
    .section.icon-grid.grey-bg.custom-gap .row.row--4col-equal {
        grid-template-columns: 1fr 1fr;
    }
}
.icon-grid.mobile{
    display: block;
}

.icon-grid.desktop{
    display: none;
}
.icon-grid ul.splide__pagination.splide__pagination--ltr button{

}
.icon-grid ul.splide__pagination.splide__pagination--ltr {
    margin: 0px;
    padding: 40px 0 0;
    position: unset;
}
.icon-grid ul.splide__pagination.splide__pagination--ltr button{
    width: 15px;
    height: 15px;
}
.icon-grid ul.splide__pagination.splide__pagination--ltr button.splide__pagination__page.is-active{
    background: #EC1C24;
}
.section.icon-grid {
    padding-bottom: clamp(80px, 10.40vw, 200px);
}
.button-on-mobile {
    display: none;
}
@media(min-width: 1025px){
   .button-on-mobile {
      margin-top: clamp(40px, 4.166vw, 80px);
      display: flex;
      align-items: center;
      justify-content: center;
   }
    .grid-icon-wrapper {
        height: 100%;
        display: flex;
        flex-direction: column;
        padding-right: unset;
    }
    .icon-grid.desktop{
        display: block;
    }
    .icon-grid.mobile{
        display: none;
    }
    .section.last-block.custom-width-title .block--title {
        max-width: 90%;
    }
}


/* background */
.section.background-section.full-height.custom-gradient {
    height: 75vh;
}
.section.background-section.full-height.custom-gradient .row--fluid {
    height: 100%;
}
.section.background-section.full-height.custom-gradient .background-section-content.left {
    display: flex;
    align-items: flex-end;
    height: 100%;
}

@media(min-width: 1025px){
    .section.background-section.full-height.custom-gradient {
        height: 90vh;
    }
}

/*
.review-block .column{
   overflow: hidden;
}*/


/* Footer */
.main-footer-wrapper {
    background: #000000;
    display: flex;
    padding: 65px 0;
}
.bottom-footer-wrapper{
    background: #000000;
    color: #fff;  
}
.logo-wrapper {
    display: flex;
    justify-content: center;
}
.footer-contact {
    margin: 40px 0;
}

.footer-contact .company-contacts-main-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}
.footer-contact .company-contact {
    gap: 20px;
}
.footer-contact svg {
    fill: #EC1C24;
}
.footer-contact a {
    color: #fff;
    text-decoration: none;
}
.footer-social-wrapper svg {
    fill: #EC1C24;
}
.footer-social-wrapper {
    display: flex;
    justify-content: center;
}
.bottom-footer-wrapper.section .row{
    padding: 19px 0;
    border-top: 1px solid #707070;
}
.bottom-footer-wrapper {
    background: #000000;
    color: #fff;
    font-size: 14px;
}
.bottom-footer-wrapper a{
    text-decoration: none;
    color: #fff;
    font-size: 14px;
}
.header-main-wrapper {
    padding: clamp(25px, 2.082vw, 40px) 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.header-main-wrapper .header-main-logo {
    display: flex;
    justify-content: center;
}
@media(min-width: 1025px){
    .footer-contact .company-contacts-main-wrapper {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 20px;
    }
    .footer-contact .company-contact {
        flex-direction: row;
        gap: 20px;
    }
}

.footer-fixed-button-for-mobile {
    width: 100%;
    position: fixed;
    z-index: 999;
    bottom: env(safe-area-inset-bottom);
    display: flex;

}
.footer-fixed-button-for-mobile .block--button.block--button--primary, .footer-fixed-button-for-mobile .block--button.block--button--primary a {
    width: 100%;
    max-width: 100%;
}
@media(min-width: 1025px){
    .footer-fixed-button-for-mobile {
        display: none;
    }
}


.block-background .splide, .block-background .splide__track {
    height: 100%;
}

.section.icon-grid.custom-icon-section .grid-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.section.icon-grid.custom-icon-section .block--title {
    color: #333333;
    text-align: center;
    max-width: 250px;
}


.section.icon-grid.custom-icon-section {
    background: #fff;
}

@media(min-width: 1025px){
    .section.icon-grid.custom-icon-section .column {
        position: relative;
    }
    .section.icon-grid.custom-icon-section .column:after {
        content: '';
        display: flex;
        height: 40%;
        width: 1px;
        background: red;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 0;
    }
    .section.icon-grid.custom-icon-section .column:last-child:after{
        display: none;
    }
}

@media(max-width: 1024px){
    .section.background-section.full-height.custom-gradient .block--button.block--button--primary{
        display: none;
    }
    
.header-main-logo {
    max-width: 200px;
    margin: 0 auto;
    display: flex;
}
.background-section .splide .splide__track .splide__list .splide__slide:nth-child(2) img{
    object-position: 65%;
}
.background-section .splide .splide__track .splide__list .splide__slide:nth-child(3) img{
    object-position: 66%;
}
	.bottom-footer-wrapper {
		padding-bottom: 40px;
	}
}

@media(max-width: 768px){
	.bottom-footer-wrapper {
		text-wrap: balance;
	}
}

.header-main-logo a {
    display: flex;
}