/* Game Lab top-page shell, shared by all Game Lab pages. */
.game-lab-site-header,
.game-lab-site-footer {
    all: initial;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #263332;
}

.game-lab-site-header *,
.game-lab-site-footer * {
    all: unset;
    box-sizing: border-box;
}

.game-lab-site-header {
    gap: 16px;
    padding: 18px 0 8px;
}

.game-lab-site-header .game-lab-site-logo {
    font-weight: 700;
    letter-spacing: 0;
}

.game-lab-site-header .game-lab-site-nav,
.game-lab-site-footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    color: #667572;
    font-size: 14.72px;
}

.game-lab-site-header a,
.game-lab-site-footer a {
    cursor: pointer;
}

.game-lab-site-header .game-lab-site-nav a:hover,
.game-lab-site-footer a:hover {
    color: #2f8f70;
}

.game-lab-site-header a:focus-visible,
.game-lab-site-footer a:focus-visible {
    outline: auto;
}

.game-lab-site-footer {
    gap: 18px;
    padding: 36px 0 42px;
    border-top: 1px solid #edf5f2;
    color: #667572;
}

.game-lab-site-footer p {
    display: block;
    margin: 0;
    font-weight: 800;
}

@media (max-width: 640px) {
    .game-lab-site-header,
    .game-lab-site-footer {
        align-items: flex-start;
        flex-direction: column;
        width: min(100% - 24px, 1120px);
        font-size: 15px;
    }

    .game-lab-site-header .game-lab-site-nav,
    .game-lab-site-footer nav {
        gap: 8px 14px;
    }
}
