:root {
    --font-size-xs: 14px;
    --font-size-sm: 16px;
    --font-size-normal: 20px;
    --font-size-md: 24px;
    --font-size-lg: 32px;
    --font-size-xl: 40px;

    --font-weight-extralight: 100;
    --font-weight-light: 200;
    --font-weight-normal: 300;
    --font-weight-medium: 400;
    --font-weight-bold: 500;

    --color-accent: #fff36b;
    --color-gentle-gray: #939393;
    --color-soft-white: #e0e0e0;
}

html {
    scroll-behavior: smooth;

    @media (prefers-reduced-motion: reduce) {
        html {
            scroll-behavior: auto;
        }
    }
}

body {
    background-color: #262626;
    color: #ffffff;

    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    letter-spacing: 1px;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        system-ui,
        Segoe UI,
        Roboto,
        Helvetica Neue,
        Arial,
        Noto Sans,
        sans-serif,
        Apple Color Emoji,
        Segoe UI Emoji,
        Segoe UI Symbol,
        Noto Color Emoji;
}

footer {
    text-align: center;
    color: var(--color-gentle-gray);
    font-size: var(--font-size-sm);
    padding: 160px 0px;
}

main {
    position: relative;

    margin: 160px auto;
    max-width: 60rem;
}

main::before {
    content: "";
    position: absolute;
    top: -1%;
    left: -160px;
    width: 1px;
    height: 102%;
    background-color: var(--color-gentle-gray);
}

section {
    position: relative;
    margin-top: 128px;
    padding-bottom: 160px;
}

section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: -25%;
    width: 150%;
    height: 1px;
    background-color: var(--color-gentle-gray);
}

address {
    margin-top: 160px;
    display: flex;
    justify-content: center;
    gap: 32px;
}

a {
    font-weight: var(--font-weight-extralight);
    letter-spacing: 2px;
    font-size: var(--font-size-lg);
    color: var(--color-soft-white);
    font-style: normal;
    text-decoration: none;
}

a:hover {
    color: var(--color-accent);
}

.tagline {
    font-size: var(--font-size-lg);
    color: var(--color-soft-white);
    line-height: 48px;
    margin-top: 64px;
    max-width: 832px;
}

.highlight {
    color: var(--color-accent);
    text-align: right;
    margin: 96px 0px 0px auto;
}

.action {
    display: block;
    text-align: right;
    margin-top: 32px;
    font-size: var(--font-size-md);
}

#hero {
    display: flex;
    justify-content: space-between;

    header {
        margin: 64px 0px 0px 0px;

        h1,
        p {
            font-size: inherit;
            font-weight: inherit;
            margin: 0px;
        }
    }

    img {
        border: 1px solid #ffffff;
        width: 340px;
        max-width: 100%;
    }
}

h2 {
    text-align: right;
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
}

article {
    margin-top: 96px;
    max-width: 768px;

    h3 {
        font-size: var(--font-size-md);
        margin: 0px 0px 32px 0px;
    }

    p {
        font-weight: var(--font-weight-light);
        color: var(--color-soft-white);
    }
}

ul {
    padding: 0px;

    li {
        list-style: none;
        margin: 32px 0px;
    }

    h4 {
        margin: 0px;
        font-weight: var(--font-weight-medium);
        letter-spacing: 1.25px;
    }

    p {
        margin: 0px;
    }
}

#contact {
    margin-top: 0px;
    padding-top: 96px;
}

#contact::after {
    display: none;
}

@media (max-width: 992px) {
    #hero {
        display: flex;
        flex-direction: column-reverse;

        img {
            margin: auto;
        }
    }

    footer {
        padding-top: 0px;
        font-size: var(--font-size-xs);
    }

    h2 {
        font-size: var(--font-size-lg);
    }

    body {
        font-weight: var(--font-weight-normal);
        font-size: var(--font-size-normal);
    }

    header {
        font-size: var(--font-size-sm);
    }

    .tagline {
        font-size: var(--font-size-md);
        line-height: 32px;
    }

    a {
        font-size: var(--font-size-md);
    }

    address {
        margin-top: 96px;
    }

    section::after {
        left: -5%;
        width: 110%;
    }
}

@media (max-width: 1200px) {
    main {
        margin: 160px 32px 0px 32px;
    }
}
