img{
    width: 75%;
    height: auto;
}
* {
    box-sizing: border-box;
}
:root{
    font-size: 2vmax;
    font-family: Helvetica, serif!important;
    --ba-gray: #dedede;
    --ba-blue: #224e34;
    --ba-light-blue: #224e34;
    --ba-foot: #000000;
    --stripe-h: 0rem;
    --stripe-f: 2rem;
    --nav-h: 9vh;
    --bs-body-font-weight: 300;
    --full-nav-h: calc(var(--nav-h));
    --radius: 1vmin;
    text-align: justify;
}
body{
    font-family: inherit;
}
@font-face {
    font-family: ConceptBold;
    src: url("../fonts/concept-bold.ttf");
}
h1, .h1 {
    font-size: calc(1.375rem + 0.5vw);
}


.heading-font{
    font-family: "ConceptBold", serif;
}
.svg-cont object{
    width: 100%;
    pointer-events: none;
}
.img-cont div{
    background-size: cover;
    width: 100%;
    height: 100%;
}
.title{
    color: var(--ba-blue);
}
.title-cont, .title-cont div{
    margin: 0 0 2vmin 0;
    font-weight: bold;
    align-self: center;
    justify-self: center;
}
.about-us .title-cont{
    align-self: start;
}


.navbar{
    padding: 0;
}
.navbar-collapse{
    background-color: white;
    margin-top: var(--bs-navbar-padding-y)
}
.navbar-toggler, .navbar-toggler:focus, .navbar-toggler:focus-visible{
    border: none;
    box-shadow: none;
}
.navbar-nav{
    justify-content: space-around;
    width: 100%;
    align-items: center;
}
.navbar-nav li{
    /*padding: 0 5vmin;
     */
}
.nav-link{
    font-size: calc(var(--bs-body-font-size));
}
.top-stripe{
    height: var(--stripe-h);
    background-color: var(--ba-blue);
    padding: 0 5vw;
    display: none;
}
.top-stripe .svg-cont{
    margin-right: 3vmin;
    width: 2.5vh;
    height: 2.5vh;
}
.top-stripe .svg-cont object{
    height: 100%;
}
.stripe{
    color: white;
    text-align: center;
    align-content: center;
    font-size: calc(var(--bs-body-font-size)*0.7);
}
.top-stripe a{
    text-decoration: none;
    color: white;
}
.logo{
    height: 6vh;
    display: block;
    position: relative;
    margin: 0 5vmin;
    background-image: url("../../resources/images/logo.png");
    background-size: cover;
    width: 37vmin;
}
.top-nav{
    background-color: white;
    height: var(--nav-h);
    padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
}
.top-nav .img-cont{
    height: 100%;
}
.top-nav .img-cont div{
    height: 100%;
    width: calc(var(--nav-h)*1.5);
}

.main{
    position: relative;
    top: var(--full-nav-h)
}
.main-text{
    height: calc(100vh - var(--full-nav-h));
    background-image:  url("../../resources/images/main.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-position-x: 65%;
}
.main-text h1,h5{
    color:white;
    text-align: center;
    z-index: 9;
    padding: 0 7vmin;
}
.main-text h1{
    font-size: calc(2.375rem + 0.5vw);;
}
.section{
    scroll-margin-top: var(--full-nav-h);
    padding: 4vh 6vw ;
}
.main-logo{
    padding: 0 20vw;
}


.quick-glance{
    height: auto;
    min-height: 30vh;
    background-color: white;
}
.glance-item {
    margin: 2vh 0;
    height: 55vw;
    background: var(--ba-gray);
    align-items: center;
    justify-content: space-around;
    display: flex;
    flex-flow: column;
    padding: 10%;
    text-align: center;
    border-radius: var(--radius);
}
.glance-item .svg-cont{
    width: 30%;
}
.glance-item p{
    font-weight: bold;
    margin: 0;
}

.about-us{
    min-height: 60vh;
    background-color: white;
}
.about-us div{
    margin: 2vmin 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.about-us .img-cont{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30vh;
    position: relative;
}
.img-cont .about-img{
    background-image: url("../../resources/images/about-us.jpg");
    background-size: contain;
    height: 100%;
    z-index: 2;
    position: absolute;
    width: 100vw;
}
.about-us .title-cont{
    color: var(--ba-blue);
}
.about-us strong{
    display: inline-block;
}


.services{
    min-height: 70vh;
    background: white;
}
.services h1{
    color: var(--ba-blue);
}

.service-item {
    color: white;
    margin: 2vh 0;
    min-height: 60vmin;
    background: var(--ba-light-blue);
    align-items: start;
    justify-content: flex-start;
    display: flex;
    flex-flow: column;
    padding: 10%;
    text-align: left;
    border-radius: var(--radius);
}
.service-item .svg-cont{
    width: 20%;
    margin-bottom: 5vmin;
}
.service-item p{
    margin: 0;
}
.service-item-content .sub-title{
    font-size: calc(var(--bs-body-font-size)*1.1);
    font-weight: bold;
    margin-bottom: 1vmin;
}


.service .svg-cont{
    height: 8vmax;
    text-align: center;
}
.service p{
    text-align: center;
    margin: 0;
}
.service p,.service div{
    margin: 1vh 0;
}

.catalogue{
    min-height: 30vh;
    padding-left: 0!important;
    padding-right: 0!important;
}
.catalogue h1{
    padding: 0 calc(var(--bs-gutter-x) * 0.5 + 6vw);
}
.catalogue .title{
    color: var(--ba-blue);
}
.catalogue .carousel{
    background: var(--ba-gray);
    position: relative;
}

.carousel{
    padding: 2vmin 0;
    height: 15vmax;
}
.carousel-inner{
    display: flex;
    height: 100%;
    align-items: center;
}
.carousel-contents{
    display: flex;
    justify-content: space-evenly;
    flex-flow: row;
    align-items: center;
}
.carousel-contents .client{
    display: flex;
    justify-content: center;
    flex-flow: column;
    align-items: center;
    width: 30vw;
    text-align: center;
    font-size: 0.8rem;
}
.carousel-contents .img-cont{
    width: 100%;
}
.carousel-contents img{
    width: 100%;
}
.carousel-contents .essilor img{
    width: 75%;
}


.cont-item .svg-cont{
    height: 7vmin;
    margin-right: 3vmin;
}

.presence{
    background-image: url("../../resources/images/presencia.jpg");
    background-size: cover;
    background-position: center;
    color: white;
}
.presence .title{
    color: white;
}
.presence-cont div{
    text-align: center;
    font-size: calc(var(--bs-body-font-size)*0.9);
    display: flex;
    justify-content: center;
    align-items: center;
}

.benefits{
    min-height: 60vh;
    background-color: white;
}
.benefits div{
    margin: 2vmin 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.benefits .img-cont{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30vh;
    position: relative;
}
.img-cont .benefits-img{
    background-image: url("../../resources/images/benefits.jpg");
    background-size: contain;
    height: 100%;
    z-index: 2;
    position: absolute;
    width: 100vw;
}
.benefits .title-cont{
    color: var(--ba-blue);
}
.benefits strong{
    display: inline-block;
}

.value-item{
    color: white;
    margin: 2vh 0;
    min-height: 40vmin;
    background: var(--ba-light-blue);
    align-items: center;
    justify-content: center;
    display: flex;
    flex-flow: column;
    padding: 10%;
    text-align: left;
    border-radius: var(--radius);
}
.value-item .h1{
    text-align: center;
}
.value-item p{
    margin: 0;
    text-align: center;
}
.simple-logo{
    width: 14vmax;
}


.contact {
    flex-flow: row;
    background-color: var(--ba-blue);
    color: white;
}
.contact a{
    text-decoration: none;
    color: white;
    font-size: calc(var(--bs-body-font-size)*0.8);
}
.contact .title{
    color: white;
    font-size: calc(1.175rem);
}
.contact-content>div{
    margin: 2vmin 0;
}
.contact-item{
    display: flex;
    flex-flow: row;
    justify-content: center;
    align-items: center;
    margin: 0.5vmax 0;
}
.contact-item .svg-cont{
    width: 5vmin;
    margin-right: 1vmin;
}

.contact-item .svg-cont.fb{
    width: 3vmin;
}
.contact-item .svg-cont.linked-in{
    width: 6vmin;
}
.contact-item p{
    margin: 0 0 0 1vmin;
    color: white;
    text-align: left;
    width: 100%;
}



.wa-logo {
    z-index: 10;
    position: sticky;
    bottom: 3vmax;
    right: 3vmax;
    padding: 1.5vmax;
    height: 9vmax;
    width: 9vmax;
    background-color: mediumseagreen;
    border-radius: 10vmax;
    display: flex;
    justify-content: center;
    align-items: center;
    float: right;
    margin-top: -12vmax;
}
.wa-logo a{
    position: absolute;
    height: 100%;
    width: 100%;
}


.footer{
    position: relative;
    top: var(--full-nav-h);
    padding: 2vmin;
    background-color: var(--ba-foot);
}
.bottom-stripe{
    min-height: calc(var(--stripe-h) * 1);
    display: flex;
    flex-flow: row;
    justify-content: center;
    align-items: center;
    padding: 0 3vw;
}

.bottom-stripe div, .bottom-stripe a{
    margin: 2vmin 0;
}

.bottom-stripe a{
    color: white;
    text-decoration: none;
}

@media screen and (min-aspect-ratio: 1/1) {
    :root{
        font-size: 1.2vmax;
        --stripe-h: 2rem;
        --stripe-f: var(--stripe-h);
        --nav-h: 12vh;
    }

    .navbar-nav{
        justify-content: end;
    }
    .navbar-nav li{
        padding: 0 2vw;
    }

    .top-nav .collapse{
        height: 100%;
    }
    .top-nav ul{
        height: 100%;
    }
    .top-nav .img-cont div{
        width: calc(var(--nav-h)*1.7);
        margin-left: 1.5vw;
    }

    .quick-glance{
        height: 15vmax;
        min-height: auto;
    }
    .glance-item {
        position: relative;
        top: -7vmax;
        height:  15vmax;
        min-height: auto;
    }

    .main-logo{
        padding: 0 35vw;
    }
    .logo{
        margin:0;
        width: 22vmin;
        height: 8vmin;
    }

    .about-img, .benefits-img{
        width: 100%!important;
    }
    .about-us .img-cont, .benefits .img-cont{
        height: auto;
        margin: 0;
    }
    .about-content{
        padding: 0 6vmax;
    }
    .img-cont .about-img, .img-cont .benefits-img{
        position: absolute;
        width: auto;
    }


    .main-text{
        background-size: cover;
        background-position: top;
        height: calc(80vh - var(--full-nav-h));
    }
    .main-text h1{
        padding: 0 3vmin;
        margin: 0
    }

    .main-text video{
        height: auto;
        width: 100vw;
    }

    .section{
        scroll-margin-top: var(--full-nav-h);
        padding: 4vmax 3vmin ;
    }
    .wa-logo{
        bottom: 3vmax;
        right: 3vmax;
        height: 5vmax;
        width: 5vmax;
        padding: 1vmax;
        margin-top: -7vmax;
    }

    .service{
        min-height: 70vh;
    }
    .services>.row{
        padding-top:2vh;
        padding-bottom:2vh;
    }
    .service-item{
        height: 100%;
        min-height: auto;
        margin: 0;
    }

    .gallery>div:nth-child(1){
        height: 75vh;
    }
    .gallery>div:nth-child(2){
        min-height: 75vh;
    }
    .sub-gallery>div {
        height: calc(37.5vh - var(--bs-gutter-x) * 0.5);
    }

    .cont-item .svg-cont{
        height: 3vmin;
        margin-right: 1vmin;
    }

    .carousel{
        height: 10vmax;
    }
    .carousel-contents .client{
        width: 10vmax;
    }


    .presence-cont div{
        text-align: center;
        font-size: calc(var(--bs-body-font-size));
        min-height: 50vh;
    }

    .contact{
        min-height: 30vh;
    }
    .contact .title-cont{
        margin: 0 0 0.5vmin;
    }
    .contact-item .svg-cont {
        width: 3vmin;
        margin-right: 0;
    }
    .contact-item .svg-cont.fb{
        width: 2vmin;
    }
    .contact-item .svg-cont.linked-in{
        width: 4vmin;
    }

    .simple-logo{
        width: 16vmax;
    }
    .footer{
        padding: 0;
    }
}