*{box-sizing:border-box;font-family:'Roboto',sans-serif;}

:root{
    --black:#111111;
    --white:#ffffff;
    --gray:#7e7d7d;
}

html,body{
    margin:0;
    padding:0;
    scroll-behavior: smooth; 
}

section{
    margin:0;
    padding-top:100px;
}
section .container{
    position:relative;
    margin:0 15px;
    z-index:2;
}
section .bg-image{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:468px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    z-index:1;
}
section .bg-image .overlay{
    width:100%;
    height:100%;
    background-color:rgba(0,0,0,0.4);
}

.subtitle{
    color:var(--black);
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 4.5px;
    font-weight: 300;
    margin:0;
    text-align:center;
    text-transform:uppercase;
}
.title{
    color:var(--black);
    margin-top: 18px;
    letter-spacing: 0.9px;
    font-size: 40px;
    line-height: 44px;
    margin:10px 0;
    text-align:center;
}
p{
    color:var(--gray);
    font-size: 16px;
    line-height: 32px;
    font-weight: 400;
    margin:0;
    text-align:center;
}
.text-centered{
    text-align:center !important;
}


section .container.with-bg .subtitle,section .container.with-bg .title{
    color:var(--white);
}
a.a-button-line, button.a-button-line{
    margin-top:40px;
    padding:15px 46px;
    font-size: 11px;
    line-height: 18px;
    letter-spacing: 2px;
    font-weight: 500;
    display: inline-block;
    text-decoration: none;
    border: 1px solid var(--black);
    color:var(--black);
    text-transform:uppercase;
    background-color:transparent;
    cursor:pointer;
    transition:background 1s,border 1s, color 1s;
}
a.a-button-line:hover, button.a-button-line:hover{
    background-color:var(--black);
    border-color:var(--white);
    color:var(--white);
}

nav.navbar{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    padding:15px;
    display:flex;
    background-color:transparent;
    transition: background-color 1s;
    z-index:10;
}
nav.navbar.dark{
    background-color: var(--black);
}
nav.navbar .right-side{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:end;
}
nav.navbar .right-side .menu-button, nav.navbar .right-side .social-links-button{
    background-color:transparent;
    color:var(--white);
    border: 1px solid var(--white);
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-left:15px;
    cursor:pointer;
}
nav.navbar .right-side .menu{
    position:fixed;
    top:80px;
    left:0;
    padding:0 15px;
    background-color:var(--white);
    width:100%;
    height:0;
    overflow-y:auto;
    overflow-x:hidden;
    transition:height 1s, padding 1s;
}
nav.navbar .right-side .menu.active{
    height:calc(100% - 80px);
    padding:15px;
}
nav.navbar .right-side .menu ul{
    list-style:none;
    margin:0;
    padding:0;
}
nav.navbar .right-side .menu ul li a{
    display: block;
    font-size: 12px;
    line-height: 18px;
    font-weight: 300;
    letter-spacing: 2px;
    padding: 5px 15px;
    text-transform: uppercase;
    color:var(--black);
    text-decoration:none;
    padding:15px;
}


nav.navbar .right-side .social-links-menu{
    position:fixed;
    top:80px;
    right:15px;
    overflow:hidden;
    height:0;
    transition:height 1s;
}
nav.navbar .right-side .social-links-menu.active{
    height:calc(49px * 4);
}
nav.navbar .right-side .social-links-menu ul{
    list-style:none;
    margin:0;
    padding:0;
}
nav.navbar .right-side .social-links-menu ul li{
    margin-top:15px;
}
nav.navbar .right-side .social-links-menu ul li a{
    display:flex;
    width:34px;
    height:34px;
    text-decoration:none;
    color:var(--white);
    border: 1px solid var(--white);
    justify-content:center;
    align-items:center;
    mix-blend-mode: overlay;
    background-color:rgba(0,0,0,0.4);
}



header.page-header{
    margin:0;
    padding:0;
    width:100%;
    height:100vh;
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    position:relative;
}
header.page-header .layout{
    width:100%;
    height:100%;
    display:flex;
    background-color:rgba(0,0,0,0.4);
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:15px;
}
header.page-header .layout h4{
    margin:0;
    padding:0;
    text-transform:uppercase;
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 4.5px;
    font-weight: 300;
    color:var(--white);
    text-align:center;
}
header.page-header .layout h1{
    margin:24px 0 0 0;
    padding:0;
    font-size: 34px;
    line-height: 38px;
    font-weight: 700;
    color:var(--white);
    text-align:center;
}
header.page-header a.a-button-line{
    background-color:transparent;
    border-color:var(--white);
    color:var(--white);
}
header.page-header a.a-button-line:hover{
    background-color:var(--white);
    border-color:var(--black);
    color:var(--black);
}

header.page-header .overlay{
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
    background-color:rgba(0,0,0,0.3);
    z-index:2;
}
header.page-header .home-button{
    width:60px;
    height:60px;
    border: 1px solid var(--white);
    display:flex;
    color:var(--white);
    justify-content:center;
    align-items:center;
    z-index:2;
    position:absolute;
    bottom:50px;
    left:50%;
    margin-left:-30px;
    text-decoration:none;
    font-size:1.3em;
}

.slides{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    display:flex;
    overflow-x:hidden;
    z-index:1;
}

.slides .slide{
    width:100%;
    height:100%;
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    flex:0 0 auto;
    z-index: inherit;
    transform:translateX(-100%);
    animation: slider-animation 20s infinite linear;
}

@keyframes slider-animation {
    0%, 100%{transform: translateX(0%);}
    25% {transform: translateX(0%);}
    37%{transform: translateX(-100%);}
    62%{transform:translateX(-100%);}
    74%{transform:translateX(-200%);}
    99%{transform:translateX(-200%);}
}


/*.text-image-container{
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    position:relative;
    background-clip:text;
    -webkit-background-clip:text;
    color:transparent;
}
.text-image-container::before{
    content:'';
    position:absolute;
    top:10px;
    left:10px;
    bottom:10px;
    right:10px;
    background-color:var(--white);
    z-index:1;
}
.text-image-container span{
    position:relative;
    z-index:10;
}

.text-image-container .overlay{
    background-color:white;
    background-clip:text;
    -webkit-background-clip:text;
    color:transparent;
}
.text-image-container .overlay .text{
    margin:-10px;

}*/

#home{
    height:100vh;
    display:flex;
    align-items:center;
}

.about-centered{
    margin:0 auto;
    max-width:600px;
}

.about-grid .right{
    margin-top:30px;
}

.about.text-image-container{
    border: 10px solid var(--black);
    max-width:600px;
    margin:0 auto;
}
.about.text-image-container span{
    display:block;
    padding:30px;
    color:var(--black);
    font-size:3rem;
    font-weight:600;
    text-align:center;
}
.about.text-image-container span small{
    font-size:0.9rem;
    font-weight: 300;
    letter-spacing: 2px;
    text-transform: uppercase;
    color:var(--black);
    text-decoration:none;
    margin-top:-10px;
}

.project-item{
    margin-bottom:15px;
}
.project-item .project-title{
    margin-top: 0;
    margin-bottom: 0;
    color: var(--black);
    font-weight: 500;
    text-align:center;
}
.project-item .project-subtitle{
    margin-top: 0;
    margin-bottom: 0;
    color: var(--black);
    font-size: 12px;
    line-height: 26px;
    font-weight: 300;
    text-align:center;
}

#services{
    position:relative;
}
.services-grid{
    padding:0 15px;
}
.service-item{
    margin:50px 0;
    padding:50px;
    background-color:var(--white);
    text-align:center;
    box-shadow:0 30px 50px rgba(0, 0, 0, 0.2);
}
.service-item i{
    font-size:2.5rem;
}
.service-item .title{
    margin:10px 0;
    font-size:26px;
    line-height:30px;
    font-weight:700;
    color:var(--black);
}
.services-list li{
    margin-bottom:20px;
}
.services-list li p{
    margin-top:10px;
    text-align:left;
}

.team-grid{
    padding:0 15px;
}
.team-item{
    margin:50px 0;
    text-align:center;
}
.team-item .image{
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    width:100%;
    height:550px;
}
.team-item .team-title{
    margin:30px 0;
    font-size: 26px;
    line-height: 30px;
    font-weight: 700;
    color: var(--black);
    text-align:right;
}
.team-item a.a-button-line{
    margin-top:0;
}
.extra-description{
    padding:0 30px;
    width:100%;
    height:0;
    overflow:hidden auto;
    transition:height 1s, padding 1s;
    position:fixed;
    top:0;
    left:0;
    background-color:var(--white);
    z-index:10;
}
.extra-description.active{
    padding:30px;
    height:100%;

}
.extra-description .header{
    text-align:right;
}
.extra-description button.close{
    border:none;
    background-color:transparent;
    font-size:2rem;
    cursor: pointer;
}
.extra-description .extra-description-container{
    max-width:768px;
    margin:20px auto;
}
.extra-description .extra-description-container .subtitle{
    margin-bottom:50px;
}
.extra-description .extra-description-container p{
    margin:20px 0;
}

.award-item{
    margin:30px 0;
    display:flex;
}
.award-item .award-year{
    padding:15px 15px 0 0;
    border-right:1px solid var(--black);
    min-width: 70px;
    font-size: 14px;
    line-height: 18px;
    font-weight: 300;
    letter-spacing: 3.5px;
    color: var(--black);
}
.award-item .award-description{
    padding:10px 0 0 15px;
}
.award-item .award-title{
    margin:0;
    font-size: 20px;
    line-height: 32px;
    font-weight: 500;
    color: #111111;
    margin-top: 0;
    margin-bottom: 0;
    text-transform: none;
}
.award-item .award-subtitle{
    font-size: 16px;
    line-height: 32px;
    font-weight: 400;
    margin:15px 0;
    color: var(--gray);
}

.contact-item{
    margin:30px 0;
}
.contact-item .contact-subtitle{
    width:100px;
    margin:0 auto;
    border-top: 1px solid var(--black);
    text-align:center;
    padding:30px 0;
    font-size: 11px;
    line-height: 18px;
    letter-spacing: 2.2px;
    font-weight: 500;
    color:var(--black);
    text-transform:uppercase;
}
.contact-item ul{
    list-style:none;
    margin:0;
    padding:0;
}
.contact-item ul li{
    text-align:center;
    margin-bottom:10px;
}
.contact-item a{
    text-decoration:none;
    font-size: 16px;
    line-height: 32px;
    font-weight: 400;
    color:var(--gray);
}

footer{
    padding:30px 15px;
    background-color:var(--black);
}

footer p{
    text-align:center;
    color:var(--white);
    font-size: 10px;
    line-height: 18px;
    letter-spacing: 2px;
    font-weight: 700;
    text-transform:uppercase;
}

.slider{
    width:100%;
    height:80vh;
    margin:0;
    background-color:#ffffff;
    overflow:hidden;
    position:relative;
}

.slider .slider-item{
    width:100%;
    height:100%;
    background-position:center;
    background-size:contain;
    background-repeat:no-repeat;
    position:absolute;
    top:0;
    left:0;
    display:none;
}
.slider .slider-item.active{
    display:block;
}
.slider .slider-controls{
    text-align:center;
    position:absolute;
    bottom:0;
    left:0;
    width:100%;
}