body {
    background: #111;
    font-family: 'Lato', sans-serif;
    color: #2b2b2b;
    display: grid;
    grid-template-areas: "header" "content" "footer";
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
}

header {
    grid-area: header;
    height: 90px;
}

footer {
    min-height: 200px;
    margin-top: 80px;
    background: #333333;
}

ul, li {
    padding-inline-start: 0;
    list-style-type: none;
}

p {
    color: #999999;
}

h2 {
    color: #e5e5e5;
}

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

.content-container {
    margin-left: auto;
    margin-right: auto;
    max-width: 1200px;
    width: 100%;
}

.intro-wrapper {
    display: flex;
    flex-direction: column;
    grid-area: content;
    min-height: calc(100vh - 90px);
}

.menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-left: 24px;
    margin-right: 24px;
}

.menu li a {
    color: #e5e5e5;
    display: block;
    padding: 15px 5px;
}

.logo {
    font-size: 32px;
    font-family: 'Merriweather', serif;
    font-weight: 300;
}

.item {
    order: 2;
    width: 100%;
    text-align: center;
    display: none;
    background: #111;
    z-index: 1000;
    border: 1px solid white;
}

.item a {
    text-decoration: none;
}

.item a:hover {
    color: burlywood;
}

.item a:hover:after {
    content: '';
    height: 1px;
    background: #ffa500;
    display: block;
}

.toggle {
    order: 1;
    font-size: 36px;
    margin-right: 24px;
}

.active .item {
    display: block;
}

.hero {
    color: #e5e5e5;
    text-align: center;
    font-family: 'Lato', sans-serif;
    margin-top: 20%;
    margin-bottom: 0;
    font-size: 60px;
    line-height: 80px;
}

.subtitle {
    font-family: monospace;
    margin: 16px 0 0 0;
    text-align: center;
}

.cursor {
    animation: blink-caret 1.5s steps(1) infinite;
}

.accent {
    margin-left: 8px;
    color: #ffa500;
}

.contact-details h3 {
    margin-top: 0;
    font-weight: normal;
}

.hero-content-wrapper {
    margin: 0 24px auto 24px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.explore-further-link:hover:after {
    content: '';
    height: 1px;
    background: #ffa500;
    display: block;
}

#services, #about-us {
    margin: 80px 24px 24px 24px;
}

.service-grid {
    display: grid;
    color: #e5e5e5;
    grid-template-columns: repeat(1, 1fr);
    grid-column-gap: 24px;
    grid-row-gap: 24px;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 40px 24px 40px 24px;
    color: #e5e5e5;
}

.technology-list {
    display: grid;
    color: #e5e5e5;
}

.service-grid-title {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.grid-content-container {
    padding: 16px;
    background: #333333;
    border-radius: 5px;
}

@keyframes blink-caret {
    from {
        color: #f4f4f4;
    }
    50% {
        color: transparent;
    }
}

@media all and (min-width: 720px) {
    .menu {
        align-items: flex-start;
        flex-wrap: nowrap;
        background: none;
    }

    .logo {
        flex: 1;
        order: 0;
    }

    .hero {
        margin-top: 40%;
    }

    .service-grid {
        width: 100%;
        grid-template-columns: repeat(2, 1fr);
    }

    .technology-list {
        grid-template-columns: repeat(3, 1fr);
    }

    .technology-list li {
        justify-self: center;
    }

    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .hero-content-wrapper {
        margin: auto 24px 100px 24px;
    }

    .item {
        order: 1;
        padding: 0 16px;
        margin: 8px 8px 0 8px;
        position: relative;
        display: block;
        width: auto;
        border: 3px solid transparent;
    }

    .toggle {
        display: none;
    }
}
