/* =========================================================
   CITY MISSION
   CORE
   ========================================================= */


/* RESET */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #fff8ed;
    color: #183153;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 16px;
    line-height: 1.6;

    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}


/* GLOBAL */

.site-wrapper {
    min-height: 100vh;
}

.page,
.home,
.mission-screen,
.mission-complete {
    width: 100%;
}

.eyebrow {
    margin-bottom: 12px;

    color: #e39318;

    font-size: 0.75rem;
    font-weight: 800;

    letter-spacing: 0.18em;
    text-transform: uppercase;
}

/* HEADER */
.site-header {
    width: 100%;
    min-height: 70px;

    padding:
        max(16px, env(safe-area-inset-top))
        20px
        16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: #ffffff;

    border-bottom: 1px solid #e6ded2;
}

.brand-mark {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.brand-mark img {
    width: 42px;
    height: 42px;
    display: block;
}

.brand-name {
    color: #183153;

    font-size: 0.8rem;
    font-weight: 800;

    letter-spacing: 0.14em;
}

.header-location {
    color: #68798c;

    font-size: 0.65rem;
    font-weight: 700;

    letter-spacing: 0.15em;
}

/* GENERAL PAGE */

.page {
    max-width: 1100px;

    margin: 0 auto;

    padding: 55px 20px 90px;
}

.page-heading {
    max-width: 700px;

    margin-bottom: 40px;
}

.page-heading h1 {
    margin-bottom: 15px;

    font-size: clamp(2.3rem, 9vw, 4rem);
    line-height: 1;

    letter-spacing: -0.04em;
}

.page-heading > p:not(.eyebrow) {
    color: #999fa8;
}


/* FOOTER */
.site-footer {
    padding:
        45px
        22px
        max(45px, env(safe-area-inset-bottom));

    background: #e8eef2;
    color: #52677c;

    border-top: 1px solid #d5dde3;
}

.footer-brand {
    display: block;

    margin-bottom: 8px;

    color: #183153;

    font-size: 0.75rem;
    font-weight: 800;

    letter-spacing: 0.14em;
}

.site-footer p {
    font-size: 0.75rem;
}

.copyright {
    margin-top: 15px;

    color: #82909d;
}
.footer-inner {
    max-width: 1100px;

    margin: 0 auto;
}


/* =========================================================
   ACTIVE RACE BANNER
   ========================================================= */

.active-race-banner {
    margin-bottom: 40px;
    padding: 24px;

    display: flex;
    flex-direction: column;
    gap: 22px;

    background: #e9f6f4;

    border: 1px solid #b8ded9;
    border-left: 5px solid #20a39e;
    border-radius: 8px;
}

.active-race-banner .eyebrow {
    margin-bottom: 8px;

    color: #16847f;
}

.active-race-banner h2 {
    margin: 0 0 6px;

    color: #183153;
    font-size: 1.4rem;
}

.active-race-banner p:last-child {
    margin-bottom: 0;
}

.active-race-banner .btn {
    flex-shrink: 0;
}


@media (min-width: 750px) {

    .active-race-banner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

}


/* RESPONSIVE */

@media (min-width: 700px) {

    .site-header {
        padding-left: 35px;
        padding-right: 35px;
    }

}

.site-credit {
    margin-top: 6px;
    font-size: 0.8rem;
    opacity: 0.65;
}

.site-credit a {
    color: inherit;
    font-weight: 600;
    text-decoration: none;
}

.site-credit a:hover {
    text-decoration: underline;
}