* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: UntitledSans;
    font-weight: 400;
    font-size: 16px;
}

html, body {
    height: 100%;
    overflow: auto;
}

#overlay {
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.2s, opacity 0.2s;
}

#overlay.visible {
    width: 100%;
    top: calc(40px + 45px);
    height: calc(100vh - 85px);
    position: absolute;
    background-color: rgba(255, 255, 255, 0.8);
    z-index: 100;
    visibility: visible;
    opacity: 1;
}

/* FONTS */
@font-face {
    font-family: UntitledSans;
    src: url("fonts/untitled-sans-web-regular.eot") format("eot"),
       url("fonts/untitled-sans-web-regular.woff") format("woff"),
       url("fonts/untitled-sans-web-regular.woff2") format("woff2");
    font-weight: 400;
}
  
@font-face {
    font-family: UntitledSans;
    src: url("fonts/untitled-sans-web-medium.eot") format("eot"),
        url("fonts/untitled-sans-web-medium.woff") format("woff"),
        url("fonts/untitled-sans-web-medium.woff2") format("woff2");
    font-weight: 500;
}

.container {
    height: 100%; 
    padding: 60px;
    padding-bottom: 45px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

a:before, a:after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 0;
    right: 0;
    height: 1.5px;
    background-color: #B2B2B2;
}

a:before {
    opacity: 0;
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
    -webkit-transition: opacity 0s, -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 0s, -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s;
    transition: transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s, -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

a:after {
    opacity: 0;
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
    -webkit-transition: opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s;
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

a:hover:before, a:hover:after, a:focus:before, a:focus:after {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

a:hover:before, a:focus:before {
    -webkit-transition: opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s;
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

a:hover:after, a:focus:after {
    -webkit-transition: opacity 0s 0.2s, -webkit-transform 0s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 0s 0.2s, -webkit-transform 0s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: transform 0s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s 0.2s;
    transition: transform 0s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s 0.2s, -webkit-transform 0s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* HEADER */
header {
    height: 70px;
}

/* NAVIGATION*/
.navbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    height: 45px;
    position: relative;
    background-color: #fff;
}

.navbar .navbar-brand {
    height: 100%;
}

.navbar .navbar-brand img {
    width: 100%;
}

.navbar .navbar-links ul {
    list-style-type: none;
    display: flex;
}

.navbar .navbar-links .link {
    padding: 0 26px;
}

.navbar .navbar-links .link.email {
    display: none;
}

.navbar .navbar-links .link:nth-child(4) {
    padding-right: 0;
}

.navbar .navbar-links .link a {
    font-weight: 400;
    text-decoration: none;
    font-size: 20px;
    color: #B2B2B2;
    position: relative;
    bottom: -4px;
    padding-bottom: 8px;
}

#nav-icon {
    width: 18px;
    height: 10px;
    position: relative;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    -o-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
    cursor: pointer;
}
  
#nav-icon span {
    display: block;
    position: absolute;
    height: 2px;
    width: 100%;
    background: #B2B2B2;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out;
}

#nav-icon span:nth-child(1) {
    top: 0px;
}

#nav-icon span:nth-child(2),#nav-icon span:nth-child(3) {
    top: 4px;
    background-color: transparent;
}

#nav-icon span:nth-child(4) {
    top: 8px;
}

#nav-icon.open span:nth-child(1) {
    top: 4px;
    width: 0%;
    left: 50%;
}

#nav-icon.open span:nth-child(2) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    background-color: #C0C0C0;
}

#nav-icon.open span:nth-child(3) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    background-color: #C0C0C0;
}

#nav-icon.open span:nth-child(4) {
    top: 4px;
    width: 0%;
    left: 50%;
}

/* MAIN PAGE CONTENT*/

main {
    height: 100%;
    display: flex;
    align-items: center;
}

.main-page-title {
    font-weight: 500;
    font-size: 100px;
    color: #C0C0C0;
    letter-spacing: -0.025em;
}

.main-page-title br.mobile-break-word {
   display: none;
}

/* FOOTER */
footer {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    background-color: #fff;
}

footer .footer-slogan {
    font-size: 32px;
    line-height: 32px;
    font-weight: 500;
    color: #C0C0C0;
}

footer .footer-link a {
    position: relative;
    font-size: 20px;
    line-height: 20px;
    font-weight: 400;
    color: #B2B2B2;
    text-decoration: none;
    padding-bottom: 8px;
}


/* ------------------------- Responsive ------------------------- */

@media only screen and (max-width: 376px) {
    .container {
        padding: 30px;
    }

    header {
        height: 40px;
    }

    .navbar {
        height: 26px;
    }

    .navbar .navbar-brand {
        width: 198px;
    }

    .main-page-title {
        font-size: 40px;
        line-height: 44px;
    }

    footer .footer-slogan {
        font-size: 22px;
        line-height: 18px;
    }
}

@media only screen and (min-width: 376px) and (max-width: 426px) {
    .container {
        padding: 40px;
    }

    header {
        height: 50px;
    }

    .navbar .navbar-brand {
        width: 256px;
    }

    .main-page-title {
        font-size: 50px;
        line-height: 55px;
    }

    footer .footer-slogan {
        font-size: 26px;
        line-height: 22px;
    }
}

@media only screen and (min-width: 426px) and (max-width: 768px) {
    header {
        height: 50px;
    }

    .navbar {
        height: 30px;
    }

    .navbar .navbar-brand {
        width: 256px;
    }

    .main-page-title {
        font-size: 60px;
        line-height: 66px;
    }

    footer .footer-slogan {
        font-size: 26px;
        line-height: 22px;
    }
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
    .container {
        padding: 40px;
    }

    header {
        height: 45px;
    }

    .navbar {
        height: 29px;
    }

    .navbar .navbar-links .link {
        padding: 0 15px;
    }

    .navbar .navbar-links .link a {
        font-size: 18px;
    }

    .navbar .navbar-brand {
        width: 220px;
    }

    .main-page-title {
        font-size: 60px;
        line-height: 66px;
    }

    footer .footer-slogan {
        font-size: 26px;
        line-height: 22px;
    }

    footer .footer-link a {
        font-size: 18px;
    }
}

@media only screen and (min-width: 1025px) and (max-width: 1440px) {
    header {
        height: 55px;
    }

    .navbar {
        height: 38px;
    }

    .navbar .navbar-brand {
        width: 290px;
    }

    .navbar .navbar-links .link {
        padding: 0 21px;
    }

    .navbar .navbar-links .link a {
        font-size: 18px;
        bottom: -2px;
    }

    .main-page-title {
        font-size: 70px;
        line-height: 77px;
    }

    footer .footer-slogan {
        font-size: 26px;
    }

    footer .footer-link a {
        font-size: 18px;
    }
}

@media only screen and (min-width: 376px) and (max-width: 768px) {
    .container {
        padding: 40px;
    }

    .navbar {
        height: 34px;
        align-items: center;
    }
}

@media only screen and (max-width: 768px) {
    .navbar {
        align-items: center;
    }

    .navbar-links {
        display: none;
    }

    .navbar .navbar-links.show {
        display: block;
        position: absolute;
        width: 100%;
        right: 0;
        top: 50px;
        z-index: 200;
    }

    .navbar .navbar-links.show ul {
        flex-direction: column;
        align-items: flex-end;
    }

    .navbar .navbar-links .link {
        padding: 10px 0;
        display: none;
    }

    .navbar .navbar-links .link a {
        font-size: 18px;
        position: relative;
        padding-bottom: 8px;
    }

    #nav-icon {
        display: block;
    }

    footer .footer-link {
        display: none;
    }
}

@media only screen and (min-width: 769px) {
    #nav-icon {
        display: none;
    }

    .navbar .navbar-links .link {
        display: block !important;
    }

    .navbar .navbar-links .link.email {
        display: none !important;
    }
}

@media only screen and (max-width: 425px) {
    .main-page-title br.mobile-break-word {
        display: block;
    }
}

@media only screen and (orientation: landscape) and (max-width: 768px) {
    main {
        overflow: auto;
    }

    .main-page-title {
        font-size: 40px;
        line-height: 44px;
    }
}

@media only screen and (orientation: landscape) and (min-width: 769px) and (max-width: 1024px) {
    main {
        overflow: auto;
    }

    .main-page-title {
        font-size: 40px;
        line-height: 44px;
    }
}