/*fonts*/

@import url('https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,700,900&display=swap');

/*global settings*/

*{
    margin: 0;
    padding: 0;
    border: 0;
    text-decoration:none;
    vertical-align: baseline;
    background: transparent;
    box-sizing: border-box;
}

*,
*:before,
*:after {
    moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

html {
    height: 100%;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

body{
    position: relative;
    font-size: 100%;
    min-height: 100%;
}

img{
    width: 100%;
}

a{
    text-decoration: none;
    color: inherit;
}

li{
    list-style: none;
}

/*typography settings*/

p, label, input, select, option, textarea, li{
    font-family: 'Nunito Sans', sans-serif;
     text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

a, button{
    font-family: 'Nunito Sans', sans-serif;
     text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1{
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h2, h3, h4, h5{
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h3 .bigger{
    font-size: 1.5em;
}

.text_reg{
    font-size: 1em;
    line-height: 1.1em;
}

.text_reg .bigger{
    font-size: 1.4em;
}

.text_reg .stronger{
    font-weight: 700;
}

.text_min{
    font-size: .7em;
    line-height: 1.2em;
}

.text_alert, .text_success, .text_process{
    position: relative;
    display: block;
    margin: 1.5% auto;
    font-size: 0.9em;
    font-weight: 700;
    text-align: center;
}

.text_alert{
    color: rgb(190,22,34);
}

.text_success{
    color: rgb(204,220,0);
}

.text_process{
    color: rgb(212,212,212);
}

.title_max{
    font-size: 3.6em;
    line-height: 1.2em;
}

.title_max .smaller{
    font-size: 0.75em;
}

.title_reg{
    font-size: 3em;
    line-height: 1.3em;
}

.title_reg .bigger{
    font-size: 3.6em;
}

.title_reg .smaller{
    font-size: .7em;
}

.subtitle_reg{
    font-size: 2.7em;
    line-height: 1.3em;
}

.subtitle_reg .bigger{
    font-size: 2.1em;
    line-height: 1.35;
}

.sub3_reg{
    font-size: 1.6em;
    line-height: 1.1em;
}

.sub4_reg{
    font-size: 1.2em;
    line-height: 1.1em;
}

.italic{
    font-style: italic;
}

.subtitle_icon{
    align-items: center;
    padding: 0.3%;
}

.subtitle_icon .icon{
    position: relative;
    display: block;
    padding: 1%;
    width: 14%;
}

.subtitle_icon .subtitle_reg{
    position: relative;
    padding: 0 0 0 1%;
}

/*color*/

.bg_primary{
    background-color: rgb(27,27,27);
}

.bg_secondary{
    background-color: rgb(255,255,255);
}

.bg_complement{
    background-color: rgb(238,238,238);
}

.bg_accent{
    background-color: rgb(204,220,0);
}

.primary_color{
    color: rgb(27,27,27);
}

.secondary_color{
    color: rgb(255,255,255);
}

.complement_color{
    color: rgb(238,238,238);
}

.accent_color{
    color: rgb(204,220,0);
}

/*layout*/

.boxed{
    position: relative;
    width: 100%;
    max-width: 1366px;
}

.flexbox{
    display: flex;
    flex-wrap: wrap;
}

.wrap_fixed{
    clip: rect(0,auto,auto,0);
    position: absolute;
    display: none;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 30;
}

.wrap_image{
    position: fixed;
    display: block;
    background-size: cover;
    background-position: 50% 100%;
    width: 100%;
    height: 100%;
    padding: 3%;
    top: 0;
    left: 0;
    transform: translateZ(0);
    will-change: transform;
    border: none;
    z-index: 30;
}

@supports(-webkit-touch-callout: none){
    .wrap_fixed{
        display: block;
    }
}

.main_content{
    position: relative;
    margin: 0 auto;
    width: 100%;
    z-index: 180;
}

.fullblock{
    width: 100%;
}

.pairblock{
    width: 50%;
}

.thirdblock{
    width: 33.33%;
}

.quarterblock{
    width: 25%;
}

.barblock{
    position: relative;
    margin: 0 auto;
    height: .8em;
}

.boxcard .icon{
    position: relative;
    display: block;
    width: 25%;
}

.boxcard .sub3_reg{
    position: relative;
    display: block;
    width: 100%;
}

.boxcard .text_reg{
    position: relative;
    display: block;
    margin: 0 auto;
    width: 97%;
}

.thincard{
    padding: 3% 6%;
}

.thincard .text_reg{
    text-align: justify;
}

.slideshow_wrap{
    position: relative;
    margin: 0 auto;
    width: 100%;
}

.slideshow_bkg{
    position: relative;
    margin: 0 auto;
    width: 100%;
    z-index: 150;
}

.slideshow_item{
    position: relative;
    margin: 0 auto;
}

.slideshow_image{
    display: block;
}

.slideshow_text{
    position: absolute;
    width: 100%;
}

.slideshow_pager{
    position: relative;
    display: flex;
    margin: 1% auto;
    z-index: 180;
}

.slideshow_pager::after{
    position: relative;
    content: '';
    display: table;
    clear: both;
}

.slideshow_pager ul{
    position: relative;
    margin: 0 auto;
    width: 100%;
}

.slideshow_pager ul li{
    position: relative;
    margin: 0 auto;
    list-style: none;
    float: left;
}

.bullet_pager{
    position: relative;
    width: 1em;
    height: 1em;
    cursor: pointer;
}

.activeSlide .bullet_pager{
    border: solid 0.15em red;
}

.slideshow_nav{
    position: relative;
}

.nav_prev{
    position: relative;
    float: left;
    width: 15%;
}

.nav_next{
    position: relative;
    float: right;
    width: 15%;
}

.slideshow_nav div:nth-child(odd){
    cursor: pointer;
}

.slideshow_count{
    position: relative;
}

.slideshow_pan{
}

.slideshow_pan_nav{
    position: relative;
    width: 15%;
}

.carousel_wrap{
    position: relative;
    margin: 0 auto;
}

.carousel_item{
    position: relative;
    padding: 1%;
}

.gallery_box{
    position: relative;
    display: flex;
    flex-wrap: wrap;
}

.gallery_item{
    position: relative;
    padding:  3%;
    cursor: pointer;
}

.gallery_item img{
    position: relative;
    display: block;
    margin: 0 auto;
}

.gallery_vis_bg{
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.gallery_vis{
    position: relative;
    margin: 0 auto;
}

.gallery_sample{
    position: relative;
    display: block;
}

.gallery_info{
    position: absolute;
    padding: 1%;
}

.gallery_close{
    position: absolute;
    width: 3%;
}

.mapblock{
    position: relative;
    padding-bottom: 56.24%;
    width: 100%;
}

.mapblock iframe{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
}

    /*head, foot & nav*/
    
.header_rl{
    position: relative;
    margin: 0 auto;
    width: 100%;
    z-index: 200;
}

.header_fx{
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    z-index: 200;
}

.logosite_lt{
    position: relative;
    margin: 0;
    padding: 0;
    width: 13.28%;
}

.logosite_ct{
    position: relative;
    margin: 0 auto;
    padding: 1%;
    width: 17.68%;
}

.menusite_ct{
    position: relative;
    margin: 0 auto;
    padding: 1%;
}

.menusite_rt{
    position: absolute;
    right: 0;
    bottom: 0;
}

.mobile_menu{
    position: absolute;
    display: none;
    cursor: pointer;
}

[class^="menusite_"] a{
    position: relative;
    display: block;
    margin: 0 auto;
    width: 100%;
}

.nav_horz li{
    position: relative;
    list-style: none;
    float: left;
}

.nav_horz:after{
    position: relative;
    content: '';
    display: table;
    clear: both;
}

.nav_vert li{
    position: relative;
    list-style: none;
}

.nav_social{
    position: relative;
    display: block;
    width: 100%;
}

.nav_social .icon{
    position: relative;
    display: block;
    margin: 0 auto;
    padding: 6%;
    width: 60%;
}

.nav_socialfx{
    position: fixed;
}

.nav_socialfx div{
    cursor: pointer;
}

.nav_contact{
    position: absolute;
    top: 0;
    right: 0;
}

.nav_whatsapp{
    position: fixed;
    display: flex;
    align-items: center;
    right: 0;
    z-index: 200;
    cursor: pointer;
}

.nav_whatsapp .icon{
    position: relative;
    display: block;
}

.nav_whatsapp .text_reg{
    position: relative;
    display: block;
    width: 90%;
}

.nav_cta{
    position: relative;
    padding: 2% 1%;
}

.nav_cta .icon{
    position: relative;
    display: block;
    width: 10%;
}

.nav_cta .text_reg{
    position: relative;
    display: block;
    font-size: 0.9em;
    text-transform: uppercase;
}

.foot_site{
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    width: 100%;
    bottom: 0;
    z-index: 200;
}

.foot_social .flexbox{
    position: relative;
    margin: 0 auto;
    width: 50%;
}

.foot_social .flexbox a{
    width: 50%;
}

.foot_social .flexbox a img{
    width: 40%;
}

.foot_social .flexbox a:first-child img{
    float: right;
}

.foot_social .flexbox a:last-child img{
    float: left;
}

.foot_social .flexbox::after{
    position: relative;
    display: table;
    content: '';
    clear: both;
}

.webmaker{
    position: relative;
    display: flex;
    align-items: center;
    width: 50%;
    float: right;
}

.webmaker::after{
    position: relative;
    display: table;
    content: '';
    clear: both;
}

.webmaker img{
    position: relative;
    display: block;
    margin: 0 auto;
    width: 12%;
}

.webmaker .text_min{
    position: relative;
    display: block;
    width: 85%;
    text-align: right;
}

    /*forms*/
    
.form_site{
    position: relative;
    margin: 0 auto;
}

.form_lab{
    position: relative;
    color: rgb(137,137,137);
}

.form_input, .form_txta{
    background: rgb(255,255,255);
    position: relative;
    padding: 1% 0.5%;
    border: solid 0.1em rgba(137,137,137,.25);
}

.form_status{
    padding: 3% 1.5%;
}

.form_btn{
    position: relative;
    display: block;
    margin: 0;
    padding: 1.5% 3%;
    text-transform: uppercase;
    cursor: pointer;    
}

.mailbox_status{
    position: relative;
    margin: 0 auto;
    padding: 0;
}

.warning{
    border-color: rgb(243,146,0);
}

/*animation*/

@keyframes slideTop{
    0%{
        transform: translateY(-100%);
    }
    100%{
        transform: translateY(0);
    }
}

.slideDown{
    animation-duration: 0.45s;
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: slideTop;
}

@keyframes slideRight{
    0%{
        transform: translateX(100%);
    }
    100%{
        transform: translateX(0);
    }
}

.slideRight{
    animation-duration: 0.45s;
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: slideRight;
}

@keyframes slideBottom{
    0%{
        transform: translateY(100%);
    }
    100%{
        transform: translateY(0);
    }
}

.slideUp{
    animation-duration: 0.45s;
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: slideBottom;
}

@keyframes slideLeft{
    0%{
        transform: translateX(-100%);
    }
    100%{
        transform: translateX(0);
    }
}

.slideLeft{
    animation-duration: 0.45s;
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: slideLeft;
}

@keyframes scaleUp{
    0%{
        transform: scale(0);
    }
    70%{
        transform: scale(1);
    }
    75%{
        transform: scale(1.2);
    }
    80%{
        transform: scale(1.05);
    }
    85%{
        transform: scale(1);
    }
    90%{
        transform: scale(0.95);
    }
    95%{
        transform: scale(0.98);
    }
    100%{
        transform: scale(1);
    }
}

.scaleUp{
    animation-duration: 0.45s;
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: scaleUp;
}