* {
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 18vw;
}

@media screen and (max-width: 600px) {
    html {
        scroll-padding-top: 80vw;
    }
}

header {
    width: 100vw;
    position: fixed;
    z-index: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    background-color: #ffffff;
    border-bottom: #060 0.3vw solid;
}

@media screen and (max-width: 600px) {
    header {
        flex-direction: column;
        border-bottom: #060 1vw solid;
    }
}

header img {
    height: 18vw;
    padding: 2vw;
}

@media screen and (max-width: 600px) {
    header img {
        height: 40vw;
        padding: 4vw;
    }
}

nav {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    height: 18vw;
    margin-right: 2vw;
}

@media screen and (max-width: 600px) {
    nav {
        flex-direction: column;
        align-items: center;
        justify-content: space-around;
        height: auto;
        margin-right: 0;
    }
}

nav a {
    text-decoration: none;
    font-family: "Oxygen", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 2.4vw;
    color: #060;
    padding: 1.4vw 2vw;
}

@media screen and (max-width: 600px) {
    nav a {
        font-size: 6vw;
        padding: 3vw;
    }
}

nav a:hover {
    color: #0c0;
}

nav a:active {
    color: #000;
}

main, footer {
    font-family: "Oxygen", sans-serif;
    font-weight: 400;
    font-style: normal;
}


@media screen and (max-width: 600px) {
    main, footer {
        position: relative;
        top: 81vw;
    }
}

#banner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    background-image: url("images/hero.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 66.8vw;
    width: 100vw;
}

@media screen and (max-width: 600px) {
    #banner {
        justify-content: center;
    }
}

#banner div {
    width: 60vw;
    margin-bottom: 8vw;
}

@media screen and (max-width: 600px) {
    #banner div {
        width: 80vw;
        margin-bottom: 0;
    }
}

#banner p {
    text-align: center;
    font-size: 2.4vw;
    color: #fff;
    text-shadow: 0 0 2px #000;
    margin: 2vw;
}

@media screen and (max-width: 600px) {
    #banner p {
        font-size: 6vw;
    }

    @keyframes first {
        0% {opacity: 0;}
        5% {opacity: 1;}
        25% {opacity: 1;}
        30% {opacity: 0;}
        100% {opacity: 0;}
    }
    #first_banner {
        position: relative;
        top: 40vw;
        animation-name: first;
        animation-duration: 24s;
        animation-iteration-count: infinite;
        opacity: 0;
    }

    @keyframes second {
        0% {opacity: 0;}
        30% {opacity: 0;}
        35% {opacity: 1;}
        55% {opacity: 1;}
        60% {opacity: 0;}
        100% {opacity: 0;}
    }
    #second_banner {
        position: relative;
        top: -5vw;
        animation-name: second;
        animation-duration: 24s;
        animation-iteration-count: infinite;
        opacity: 0;
    }

    @keyframes third {
        0% {opacity: 0;}
        60% {opacity: 0;}
        65% {opacity: 1;}
        85% {opacity: 1;}
        90% {opacity: 0;}
        100% {opacity: 0;}
    }
    #third_banner {
        position: relative;
        top: -50vw;
        animation-name: third;
        animation-duration: 24s;
        animation-iteration-count: infinite;
        opacity: 0;
    }
}

#about, #contact {
    background-color: #060;
    color: #fff;
    padding: 2vw 10vw;
}

#services {
    padding: 2vw 10vw;
}

#services div {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

#services div article  {
    background-color: #0c0;
    flex-basis: 24vw;
    margin-bottom: 4vw;
}

@media screen and (max-width: 1200px) {
    #services div article {
        flex-basis: 35vw;
    }
}

@media screen and (max-width: 600px) {
    #services div article {
        flex-basis: 80vw;
    }
}

#services div article img {
    width: 24vw;
}

@media screen and (max-width: 1200px) {
    #services div article img {
        width: 36vw;
    }
}

@media screen and (max-width: 600px) {
    #services div article img {
        width: 80vw;
    }
}

#services div article p {
    margin: 1.6vw;
}

@media screen and (max-width: 1200px) {
    #services div article p {
        margin: 2.4vw;
    }
}

@media screen and (max-width: 900px) {
    #services div article p {
        margin: 3.2vw;
    }
}

@media screen and (max-width: 600px) {
    #services div article p {
        margin: 4vw;
    }
}



h1 {
    color: #0c0;
    font-size: 3.2vw;
    text-align: center;
}

@media screen and (max-width: 1200px) {
    h1 {
        font-size: 4.8vw;
    }
}

@media screen and (max-width: 900px) {
    h1 {
        font-size: 6.4vw;
    }
}

@media screen and (max-width: 600px) {
    h1 {
        font-size: 8vw;
    }
}

h2 {
    color: #fff;
    font-size: 2.4vw;
    text-align: center;
}

@media screen and (max-width: 1200px) {
    h2 {
        font-size: 3.6vw;
    }
}

@media screen and (max-width: 900px) {
    h2 {
        font-size: 4.8vw;
    }
}

@media screen and (max-width: 600px) {
    h2 {
        font-size: 6vw;
    }
}

p {
    font-size: 1.6vw;
    margin: 1.6vw 0;
}

@media screen and (max-width: 1200px) {
    p {
        font-size: 2.4vw;
        margin: 2.4vw 0;
    }
}

@media screen and (max-width: 900px) {
    p {
        font-size: 3.2vw;
        margin: 3.2vw 0;
    }
}

@media screen and (max-width: 600px) {
    p {
        font-size: 4vw;
        margin: 4vw 0;
    }
}