/****************************
 * Global style
*****************************/
/* Main sections */
.site-sticky {position:fixed; z-index:40; top:0; left:0; right:0;}
.site-header {position:relative; z-index:30;}
.site-content {position:relative; z-index:20;}
.site-footer {position:relative; z-index:10;}

/* Container */
.container, .container-small {
    position:relative; width:100%; max-width:calc(var(--vii-container) + var(--vii-gap-container) * 2);
    margin-right:auto; margin-left:auto;
    padding-right:var(--vii-gap-container); padding-left:var(--vii-gap-container);
}
.container-small {max-width:calc(820px + var(--vii-gap-container) * 2);}

/* Footer stick to bottom */
html, body {min-height:100vh;}
body {
    display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex;
    -webkit-box-orient:vertical; -webkit-box-direction:normal; -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column;
    -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between;
}


/****************************
 * Footer
****************************/
/* Footer text and permalink */
.site-footer-content {padding:var(--vii-spacing-48) 0 var(--vii-spacing-32); font-weight:400; font-size:16px;}
.site-footer-content a {}

.site-footer .site-footer-content a {text-decoration:none;}
.site-footer-content .wpb_text_column a:not([class*="btn_"]) {font-weight:400;}

/* Footer rows and columns */
.footer-row.vc_row {display:flex; flex-wrap:wrap; justify-content:space-between;}
.footer-row.vc_row:before, .footer-row.vc_row:after {display:none;}
.footer-row.vc_row > div {width:auto;}

/* Footer logo image */
.vii-footer-logo.wpb_single_image img {width:106px; height:auto;}

/* Footer nav menu */
.site-footer-content .widget_nav_menu ul {margin:0; list-style:none;}
.site-footer-content .widget_nav_menu ul li {margin:0; padding:0;}
.site-footer-content .widget_nav_menu ul li a {color:var(--vii-color-white);}
.site-footer-content .widget_nav_menu ul li a:hover,
.site-footer-content .widget_nav_menu ul li a:focus {color:var(--vii-color-permalink-highlight);}
.site-footer-content .horizontal-footer-menu .widget_nav_menu ul {display:flex; gap:0 32px;}

/* Footer menu */
.site-footer-content .vii-footer-menu .widget_nav_menu ul li {font-weight:500;}

/* Nav Links menu */
.vii-footer-menu__link .widget_nav_menu ul li:not(:last-child) {margin-bottom:8px;}

/* paragraph in vii-footer-menu__link */
.vii-footer-menu__link {--vii-spacing-paragraph:8px;}

/* Footer > Menu info */
.vii-footer-menu__info {
    --vii-spacing-paragraph:20px;
}

/* white line */
#vii-footer-policy .vc_separator {border-top:1px solid #fff;}

/* Remove margin */
.site-footer-content .vc_wp_custommenu {margin-bottom:0 !important;}
.site-footer-content a:focus-visible {outline:2px solid var(--vii-color-secondary); border-radius:4px;}

/* Image background */
.site-footer-content__bg {
    bottom:-10px; right:-360px; transform:rotate(-6.29deg);
    width:974px; height:455px; mix-blend-mode:screen;
}

/* Button back-to-top */
.site-footer__btt {top:var(--vii-spacing-56); right:var(--vii-gap-side);}
.site-footer__btt button {
    color:var(--vii-color-white); font-size:40px; border-radius:50%;
    display:flex; background:var(--vii-color-blue); box-shadow:0 0 5px 0 rgba(0, 85, 199, .5);
}

/* Hover */
.site-footer__btt button:hover {color:var(--vii-color-orange);}

/****************************
 * Footer Responsive
****************************/
@media only screen and (min-width:768px) {
    /* Layout */
    .vii-footer-menu {
        --gap-x:44px;
        justify-content:start !important; column-gap:var(--gap-x); flex-wrap:nowrap !important;
    }
    .site-footer-content .vii-footer-menu .vii-footer-menu__info {max-width:360px; margin-right:60px;}

    /* Footer > Social buttons */
    .vii-footer-menu__social-buttons {margin-left:auto;}

    /* copyright for align with footer-menu */
    .vii-footer-copyright {padding-left:55px !important;}

}
@media only screen and (max-width:1180px) and (min-width:768px) {
    /* Layout */
    .vii-footer-menu {
        --gap-x:20px;
    }
    .site-footer-content .vii-footer-menu .vii-footer-menu__info {margin-right:20px;}
}
@media only screen and (max-width:1024px) and (min-width:768px) {
    .site-footer-content .vii-footer-menu .vii-footer-menu__info {margin-right:0; max-width:260px;}
}
@media only screen and (min-width:1025px) {
    .site-footer-content {overflow:hidden;}
}
@media only screen and (max-width:1024px) {
    /* Image background */
    .site-footer-content__bg {display:none;}

    .site-footer-content .horizontal-footer-menu .widget_nav_menu ul {gap:0 20px;}
}
@media only screen and (max-width:767px) {
    /* Layout */
    .site-footer-content .vii-footer-menu {justify-content:center; margin-bottom:var(--vii-spacing-32) !important;}
    .vii-footer-menu .vc_col-sm-3 {width:100% !important; text-align:center;}
    .vii-footer-menu .vc_col-sm-3:not(:last-child) {margin-bottom:var(--vii-spacing-24);}

    /* Align image */
    .vii-footer-logo.wpb_single_image {text-align:center;}

    /* footer > logo */
    .site-footer-content .vii-footer-menu .vii-footer-menu__info {max-width:460px;}

    /* Policy menu */
    .site-footer-content .horizontal-footer-menu .widget_nav_menu ul {flex-direction:column; align-items:center; margin-bottom:var(--vii-spacing-10);}

    /* copyright */
    .vii-footer-copyright .wpb_wrapper p,
    .vii-footer-copyright .wpb_wrapper [class*="heading"] {text-align:center !important; font-size:13px;}

    /* Footer > Links */
    .vii-footer-menu__link .wpb_wrapper > .wpb_text_column:first-child {margin-bottom:8px !important;}
    .vii-footer-menu__link .widget_nav_menu ul li:not(:last-child) {margin-bottom:5px;}

    /* Footer > Social Buttons */
    .vii-footer-menu__social-buttons .wpb_text_column {margin-bottom:10px !important;}

    /* Footer > White line */
    #vii-footer-policy .vc_empty_space {height:26px !important;}

    /* Button back-to-top */
    .site-footer__btt {top:unset; bottom:65px; right:var(--vii-gap-container);}
    body:not(.scroll-bottom) .site-footer__btt {opacity:0; visibility:hidden;}
}

/****************************
 * Editor style
****************************/
p:empty {display:none;}

/* Button group */
p.vii-button-group {display:flex; justify-content:center; flex-wrap:wrap; gap:8px 11px;}

/* Force white text color */
.txt_color_white {
    --vii-color-heading:var(--vii-color-white);
    --vii-color-permalink:var(--vii-color-white);
    --vii-color-permalink-highlight:var(--vii-color-primary-highlight);
}

.txt_color_white [class*="icon_txt"]:before {color:var(--vii-color-white);}

.txt_color_white [class*="btn_primary"] {
    --btn-bg-color:var(--vii-color-blue-hover); --btn-color:var(--vii-color-white);
    --btn-bg-color-hover:var(--vii-color-orange); --btn-color-hover:var(--vii-color-white);
}
.txt_color_white [class*="btn_primary_border"] {
    --btn-bg-color:transparent; --btn-color:var(--vii-color-white);
    --btn-bg-color-hover:var(--vii-color-blue-hover); --btn-color-hover:var(--vii-color-white);
    --btn-border:var(--vii-color-white);
}
.txt_color_white [class*="btn_arrow"] {
    color:var(--vii-color-white);
}

.txt_color_gray_70 {color:var(--vii-color-gray-70) !important;}

/* Text color */
.main_content .txt_color_primary {color:var(--vii-color-primary);}

/* Text size */
.main_content .txt_14px {font-size:var(--vii-size-14);}
.main_content .txt_16px {font-size:var(--vii-size-16);}
.main_content .txt_18px {font-size:var(--vii-size-18);}
.main_content .txt_20px {font-size:var(--vii-size-20);}

/* Text alignment */
.txt_inline_block {display:inline-block;}
.txt_right {text-align:right; display:block;}
.txt_center {text-align:center; display:block;}
.txt_italic {font-style:italic;}
.txt_center_justify {text-align:justify; -moz-text-align-last:center; text-align-last:center; display:block;}

/* Caption */
.txt_caption {font-size:14px; font-family:var(--vii-font-primary); font-weight:400;}

/* Overline */
.txt_overline {font-size:12px; font-family:var(--vii-font-primary); font-weight:400;}

/****************************
 * BUTTONS in DEV_MODE
****************************/
/* button back */
[class*="btn_back"] {
    --icon-size:24px;
    letter-spacing:0.05em; font-family:var(--vii-font-primary); font-weight:600; line-height:1.2;
    border-radius:4px; gap:10px; color:var(--vii-color-gray-50);
}

[class*="btn_back"]:before {
    content:"\e92e"; padding-top:0.1em; padding-right:0.1em;
    width:var(--icon-size); height:var(--icon-size); border-radius:50%; font-size:11px;
    background-color:var(--vii-color-blue); font-weight:400; color:var(--vii-color-white);
}
[class*="btn_back"]:hover, [class*="btn_back"]:focus {color:var(--vii-color-blue);}
[class*="btn_back"]:hover:before, [class*="btn_back"]:focus:before {
    transform:translateX(-4px); box-shadow:0 0 0 4px rgba(82, 164, 226, 0.2);
}

/* button submit form */
[class*="btn_submit"] {
    --btn-bg-color:var(--vii-color-gray-50); --btn-color:var(--vii-color-white);
    --btn-bg-color-hover:var(--vii-color-blue-hover); --btn-color-hover:var(--vii-color-white);
    font-family:var(--vii-font-primary); font-weight:700; line-height:1.2;
    background:var(--btn-bg-color); color:var(--btn-color);
    padding:5px 20px; min-height:48px; min-width:115px; border-radius:4px;
}
[class*="btn_submit"]:hover, [class*="btn_submit"]:focus {
    text-decoration:none; background:var(--btn-bg-color-hover); color:var(--btn-color-hover);
}

/****************************
 * Spacing
****************************/
/* the last element in a text block will have no spacing */
.wpb_text_column :last-child {margin-bottom:0;}

/* Spacing: Custom */
.no-margin-bottom {margin-bottom:0 !important;}
.margin-bottom-default {margin-bottom:var(--vii-spacing-default) !important;}
.margin-bottom-heading {margin-bottom:var(--vii-spacing-heading) !important;}
.margin-bottom-116px {margin-bottom:var(--vii-spacing-116) !important;}
.margin-bottom-70px {margin-bottom:var(--vii-spacing-70) !important;}
.margin-bottom-60px {margin-bottom:var(--vii-spacing-60) !important;}
.margin-bottom-48px {margin-bottom:var(--vii-spacing-48) !important;}
.margin-bottom-45px {margin-bottom:var(--vii-spacing-45) !important;}
.margin-bottom-32px {margin-bottom:var(--vii-spacing-32) !important;}
.margin-bottom-30px {margin-bottom:var(--vii-spacing-30) !important;}
.margin-bottom-24px {margin-bottom:var(--vii-spacing-24) !important;}
.margin-bottom-20px {margin-bottom:var(--vii-spacing-20) !important;}
.margin-bottom-15px {margin-bottom:var(--vii-spacing-15) !important;}
.margin-bottom-10px {margin-bottom:var(--vii-spacing-10) !important;}
.margin-bottom-5px {margin-bottom:var(--vii-spacing-5) !important;}

.pt-default {padding-top:var(--vii-spacing-default);}
.pt-heading {padding-top:var(--vii-spacing-heading);}
.pb-default {padding-bottom:var(--vii-spacing-default);}
.pb-60 {padding-bottom:var(--vii-spacing-60);}


/****************************
 * Miscellaneous
****************************/
/* Visibility Classes */
.hidden-mobile, .hidden-tablet-v, .hidden-tablet-h, .hidden-touch-devices {display:block;}
.show-mobile, .show-tablet-v, .show-tablet-h, .show-touch-devices {display:none;}

/* Placeholder */
body ::-webkit-input-placeholder {font-family:inherit; font-weight:inherit; font-size:inherit; color:var(--vii-color-placeholder);}
body ::-moz-placeholder {font-family:inherit; font-weight:inherit; font-size:inherit; color:var(--vii-color-placeholder);}
body :-ms-input-placeholder {font-family:inherit; font-weight:inherit; font-size:inherit; color:var(--vii-color-placeholder);}
body :-moz-placeholder {font-family:inherit; font-weight:inherit; font-size:inherit; color:var(--vii-color-placeholder);}

/* Loading (woocommerce selectors could be remove) */
.loading, .woocommerce .blockUI.blockOverlay, .woocommerce .loader {position:relative;}
.woocommerce .blockUI.blockOverlay:before, .woocommerce .loader:before,
.loading:before {
    content:""; position:absolute; top:0; left:0; right:0; bottom:0; z-index:2;
    background-color:rgba(255, 255, 255, 0.7);
}
.loading:after,
body .xwc--pf-loader-overlay:after,
.woocommerce .blockUI.blockOverlay:after,
.woocommerce .loader:after {
    --loading-size:35px;
    content:""; position:absolute; top:50%; left:50%; z-index:3;
    width:var(--loading-size); height:var(--loading-size);
    margin:calc(-0.5 * var(--loading-size)) 0 0 calc(-0.5 * var(--loading-size));
    border-radius:50%; border:2px dashed transparent;
    border-bottom-color:var(--vii-color-primary);
    border-right-color:var(--vii-color-primary);
    animation:spinner 2s linear infinite;
    box-sizing:border-box;
}
@keyframes spinner {
    to {transform:rotate(360deg);}
}

/* Full width */
.vii-full-width {margin-left:calc(-1 * var(--vii-gap-side) - 0.5px); margin-right:calc(-1 * var(--vii-gap-side));}

/* Background color */
.vii-bg-gray {background-color:var(--vii-color-gray);}
.vii-bg-primary {background-color:var(--vii-color-primary); color:var(--vii-color-on-primary);}

/* A11y focus */
.a11y-focus:focus-visible {outline:2px solid var(--vii-color-primary); border-radius:3px; transition:none;}

/* Border radius */
.vii-border-radius {border-radius:var(--vii-border-radius) 0; overflow:hidden;}

/* custom scrollbar */
/* Works on Chrome, Edge, and Safari */
.vii-custom-scrollbar *::-webkit-scrollbar {width:5px;}
.vii-custom-scrollbar *::-webkit-scrollbar-track {background:var(--vii-color-gray-10);}
.vii-custom-scrollbar *::-webkit-scrollbar-thumb {background-color:var(--vii-color-orange);}

/* VC WP Custom Menu */
.site-content .vc_wp_custommenu a:hover,
.site-content .vc_wp_custommenu a:focus {text-decoration:underline;}
.site-content .vc_wp_custommenu ul.menu {
    list-style:none; margin:0;
    display:flex; flex-wrap:wrap; gap:var(--vii-spacing-45);
    background:var(--vii-color-gray-10); padding:var(--vii-spacing-45);
}
.site-content .vc_wp_custommenu ul.menu > li {padding:0; width:30%; min-width:300px;}
.site-content .vc_wp_custommenu ul.menu > li > a {
    font-size:var(--vii-size-h4); color:var(--vii-color-blue);
    text-transform:uppercase; font-weight:700; letter-spacing:0.015em;
}

.site-content .vc_wp_custommenu ul.sub-menu {padding-top:10px;}
.site-content .vc_wp_custommenu ul.sub-menu > li:last-child {padding-bottom:0;}


/****************************
 * Flex Grid
****************************/
.vii-flex-grid {
    --grid-gap-x:30px;
    --grid-gap-y:30px;
    --grid-col:3;

    /* calculate new width */
    --grid-gap-x-total:calc(var(--grid-gap-x) * (var(--grid-col) - 1));
    --grid-space-each:calc(var(--grid-gap-x-total) / var(--grid-col));

    display:flex;
    flex-wrap:wrap;
    gap:var(--grid-gap-y) var(--grid-gap-x);
}
.vii-flex-grid > * {
    width:calc(100% / var(--grid-col) - var(--grid-space-each));
}
@media only screen and (max-width:767px) {
    .vii-flex-grid {--grid-col:2;}
}
@media only screen and (max-width:480px) {
    .vii-flex-grid {--grid-col:1;}
}

/* Spiral image */
.vii-spiral-image {width:280px; max-width:40vw; z-index:-1;}
.vii-spiral-image__inner {transition:all 3s cubic-bezier(0.06, 0.26, 0.32, 1.02); transform-origin:center center;}
.vii-spiral-image:not(.animated) .vii-spiral-image__inner {transform:scale(.5) rotate(-180deg); opacity:0;}

/* wp-content media */
.main_content .wp-caption {padding:0; background:none;}
.main_content .wp-caption img {margin:0 !important; border:none;}
.main_content .wp-caption .wp-caption-text {
    padding:var(--vii-spacing-15) 0 0; margin:0 !important;
    text-align:center; font-size:14px; font-weight:400; color:var(--vii-color-gray-70);
}
.main_content .wp-caption .wp-caption-text:before {display:none;}

/* ev_object_bg add display for img */
.ev-bg-object-cover > img {display:block;}

/* animation zoom-in */
.zoom-in-fx {transition:var(--vii-transition);}
.zoom-in-fx:not(.animated) {opacity:0; transform:scale(0);}

/* animation shine */
.shine {animation:shine 2.4s cubic-bezier(0, 0, .5, 1.02);}