/* General */

* {
    margin: 0;
    padding: 0;
    font-family: "Open Sans", sans-serif;
    color: #ede8e1;
}

body {
    /*background: url("bg.jpg") no-repeat center center fixed;*/
    background: #e4002b;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

a {
    text-decoration: none;
    color: #FFFFFF;
}

/* Head */

#head {
    width: 100vw;
    height: 19.479vh;
    background-color: rgba(0, 0, 0, 0.2);
}

#head-inner {
    margin: 0 auto;
}

#head-inner p {
    height: 100%;
    font-size: 4.8vmin;
    line-height: 19.479vh;
    text-align: center;
    font-weight: bolder;
}

#head-inner img {
    max-width: 80%;
    max-height: 14vh;
    padding-top: calc((19.479vh - 14vh) / 2);
    display: block;
    margin: 0 auto;
}

/* Slogan */

.slogan {
    height: 20.987vh;
}

.slogan p {
    padding: 4.3vh 0 0 0;
    margin: 0;
    overflow: hidden;
    text-align: center;
    font-size: 6.035vmin;
    font-weight: 100;
}

/* Body */

#body {
    width: 100vw;
    height: 48.560vh;
}

div[class^='col-body'] {
    float: left;
    height: 48.560vh;
}

.col-body-a {
    width: calc((100vw - 68vmin)*0.47);
}

.col-body-b {
    width: 14vmin;
    position: relative;
}

.col-body-c {
    width: calc((100vw - 68vmin)*0.03);
}

.col-body-d {
    width: 40vmin;
    position: relative;
}

.circle-info {
    width: 14vmin;
    height: 14vmin;
    border-radius: 7vmin;
    top: calc(40vmin / 2 - 14vmin/2);
    position: absolute;
    background: rgba(255, 255, 255, 0.1) url("info.svg") no-repeat center center;
    background-size: 3vmin 5vmin;
}

.circle-mail {
    width: 14vmin;
    height: 14vmin;
    border-radius: 14vmin;
    top: calc(40vmin / 2 - 14vmin/2);
    position: absolute;
    background: rgba(255, 255, 255, 0.1) url("mail.svg") no-repeat center center;
    background-size: 6vmin 5vmin;
}

.circle-gears {
    width: 40vmin;
    height: 40vmin;
    border-radius: 20vw;
    top: 0;
    position: absolute;
    background: rgba(255, 255, 255, 0.1);
}

#gear-big {
    width: 19vmin;
    height: 19vmin;
    position: absolute;
    top: 31.5%;
    left: 11.8%;
    -webkit-animation: rotating-right 13.47826087s linear infinite;
    -moz-animation: rotating-right 13.47826087s linear infinite;
    -ms-animation: rotating-right 13.47826087s linear infinite;
    -o-animation: rotating-right 13.47826087s linear infinite;
    animation: rotating-right 13.47826087s linear infinite;
}

#gear-small {
    width: 13.5vmin;
    height: 13.5vmin;
    position: absolute;
    top: 23.10%;
    left: 55%;
    -webkit-animation: rotating-left 10s linear infinite;
    -moz-animation: rotating-left 10s linear infinite;
    -ms-animation: rotating-left 10s linear infinite;
    -o-animation: rotating-left 10s linear infinite;
    animation: rotating-left 10s linear infinite;
}

/* Footer */

#footer {
    width: 100vw;
    height: 10.974vh;
    font-weight: lighter;
}

div[class^='col-footer'] {
    display: inline-block;
    vertical-align: middle;
}

.col-footer-a {
    width: 12.5vw;
}

.col-footer-b {
    width: calc(75vw - 40px);
    margin: 0;
    text-align: center;
    font-size: 2.8vmin;
    padding: 0 20px;
}

.col-footer-c {
    width: 12.5vw;
}

.col-footer-c img {
    width: 10vw;
    max-height: 10.974vh;
    display: block;
}

/* Animations */

@keyframes rotating-right {
    0% {
        -ms-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -ms-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@-webkit-keyframes rotating-right {
    0% {
        -ms-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -ms-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes rotating-left {
    0% {
        -ms-transform: rotate(361deg);
        -moz-transform: rotate(361deg);
        -webkit-transform: rotate(361deg);
        -o-transform: rotate(361deg);
        transform: rotate(361deg);
    }
    100% {
        -ms-transform: rotate(1deg);
        -moz-transform: rotate(1deg);
        -webkit-transform: rotate(1deg);
        -o-transform: rotate(1deg);
        transform: rotate(1deg);
    }
}

@-webkit-keyframes rotating-left {
    0% {
        -ms-transform: rotate(361deg);
        -moz-transform: rotate(361deg);
        -webkit-transform: rotate(361deg);
        -o-transform: rotate(361deg);
        transform: rotate(361deg);
    }
    100% {
        -ms-transform: rotate(1deg);
        -moz-transform: rotate(1deg);
        -webkit-transform: rotate(1deg);
        -o-transform: rotate(1deg);
        transform: rotate(1deg);
    }
}

/* Popup */

.overlay {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(1, 22, 49, 0.95);
    transition: opacity 500ms;
    visibility: hidden;
    opacity: 0;
}
.overlay:target {
    visibility: visible;
    opacity: 1;
}

.popup {
    margin: 0 auto;
    width: 100%;
    height: 100%;
    max-height: 100vh;
    position: relative;
    transition: all 5s ease-in-out;
}

.popup .close {
    width: 1.84vw;
    height: 1.84vw;
    position: absolute;
    top: 2.25vw;
    right: 2.25vw;
    transition: all 200ms;
    background: url("close_x.svg") no-repeat center center;
}

.popup .content {
    width: 100vw;
    min-width: 350px;
    max-height: calc(100vh - 20.16vh);
    overflow: auto;
    padding-top: 20.16vh;
    margin: 0 auto;
}

.popup .content h1 {
    text-align: center;
    margin-bottom: 2em;
    font-size: 5.4vh;
    text-transform: uppercase;
}

.popup .content p {
    margin-bottom: 1.5em;
    font-size: 20px;
    padding: 0 6.25vw;
    font-weight: 100;
    letter-spacing: 1px;
    text-align: justify;
}

/* Helpers */

.helper {
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}