/*********************************************
 * Column Padding
**********************************************/
/* Column spacing, revert to VC spacing for screen smaller 1024px */
@media only screen and (min-width:1025px) {
    .main_content .vc_row {margin-left:calc(var(--vii-gap-vc-column) * -1); margin-right:calc(var(--vii-gap-vc-column) * -1);}
    .main_content .vc_column_container > .vc_column-inner {padding-left:var(--vii-gap-vc-column); padding-right:var(--vii-gap-vc-column);}
    .main_content .vc_row.vc_row-no-padding .vc_column-inner {padding-left:0; padding-right:0;}
}

/*********************************************
 * Sticky column inside full-width row
**********************************************/
.vc_row[data-vc-full-width]:has(.vii-sticky-vc) {overflow:visible;}
.vc_row:has(.vii-sticky-vc) {align-items:flex-start;}

/*********************************************
 * VC Row - Spacing
**********************************************/
/* Padding top */
.vc_row.vii-row-padding-top {
    --vii-padding-top:var(--vii-spacing-default);
    --vii-spacing-top-extra:0px;
    padding-top:calc(var(--vii-padding-top) + var(--vii-spacing-top-extra));
}

/* Spacing: Visual Composer */
.main_content .wpb_content_element {margin-bottom:var(--vii-spacing-default);}

/* Clear default spacing */
.vc_col-has-fill > .vc_column-inner,
.vc_row-has-fill + .vc_row-full-width + .vc_row > .vc_column_container > .vc_column-inner,
.vc_row-has-fill + .vc_row > .vc_column_container > .vc_column-inner,
.vc_row-has-fill > .vc_column_container > .vc_column-inner {
    padding-top:0;
}

/* Option to clear padding top: no-padding-top */
.vc_row.no-padding-top > .vc_column_container > .vc_column-inner {padding-top:0 !important;}

/*********************************************
 * VC Row - Background image
**********************************************/
/* row has fill */
.vc_row.vc_row-has-fill:not([data-vc-full-width]) {margin-left:0; margin-right:0;}
.vc_row.vc_row-has-fill:not([data-vc-full-width]) .vc_column_container > .vc_column-inner {
    padding-left:20px; padding-right:20px;
}

/* row bg image */
.vc_row.vii-row-has-bg-image {position:relative}
.vc_row.vii-row-has-bg-image > .wpb_column {z-index:2;}
.vc_row.vii-row-has-bg-image > .row-bg-image {z-index:1}

/* row bg image without parallax */
.vc_row.vii-row-has-bg-image .row-bg-image:not([data-parallax]) img {object-position:top center;}

/* gradient */
.vc_row.vii-row-has-bg-gradient .row-bg-image:before, .vc_row.vii-row-has-bg-gradient .row-bg-image:after {
    content:"";
    position:absolute; left:0; right:0; pointer-events:none; z-index:1;
    height:clamp(100px, 16vw, 250px);
}
.vc_row.vii-row-has-bg-gradient .row-bg-image:before {top:-1px;}
.vc_row.vii-row-has-bg-gradient .row-bg-image:after {bottom:-1px;}

/* gradient top & bottom */
.vc_row.vii-row-has-bg-gradient.vii-gradient-top-bottom .row-bg-image:before,
.vc_row.vii-row-has-bg-gradient.vii-gradient-top .row-bg-image:before {
    top:-1px; height:clamp(100px, 22.5vw, 550px);
    background:linear-gradient(to bottom, #fff 0%, rgba(0, 0, 0, 0) 100%);
}
.vc_row.vii-row-has-bg-gradient.vii-gradient-top-bottom .row-bg-image:after,
.vc_row.vii-row-has-bg-gradient.vii-gradient-bottom .row-bg-image:after {
    bottom:-1px;
    background:linear-gradient(to top, #fff 0%, rgba(0, 0, 0, 0) 100%);
}

/* gradient bottom */
.vc_row.vii-row-has-bg-gradient.vii-gradient-bottom .row-bg-image > img {opacity:0.6;}

/* gradient top */
.vc_row.vii-row-has-bg-gradient.vii-gradient-top .row-bg-image > img {opacity:0.66;}

/* first vc row has bg image */
body:not(.page-template-has-home-banner) .site-content > .container > .vc_row.vii-row-has-bg-image:first-child {
    --vii-spacing-top-extra: 56px;
    margin-top:calc(-1 * (var(--vii-spacing-top-extra) + var(--vii-spacing-56)));
}
@media only screen and (max-width:767px) {
    body:not(.page-template-has-home-banner) .site-content > .container > .vc_row.vii-row-has-bg-image:first-child {
        --vii-spacing-top-extra: 48px;
    }
}

/*********************************************
 * empty spacing
**********************************************/
.vc_empty_space {
    --vii-spacing-desktop:0;
    --vii-spacing-tablet:0;
    --vii-spacing-mobile:0;

    height:var(--vii-spacing-desktop);
}
@media only screen and (max-width:1024px) {
    .vc_empty_space {height:var(--vii-spacing-tablet);}
}
@media only screen and (max-width:480px) {
    .vc_empty_space {height:var(--vii-spacing-mobile);}
}


/*********************************************
 * Row container
**********************************************/
.vii-row-container {padding-left:0; padding-right:0;}
@media only screen and (min-width:1025px) {
    .vii-row-container > .vc_row {padding-right:var(--vii-gap-container); padding-left:var(--vii-gap-container);}
}

/*********************************************
 * Row reverse columns on mobile
**********************************************/
@media only screen and (max-width:767px) {
    .vc_row.vii-reverse-col-mobile {
        display:flex;
        flex-direction:column-reverse;
    }
}