:root {
    --ui-scale: 1.4;
}

@media (max-width: 480px) {
    :root {
        --ui-scale: 2;
    }
}

/* ---------- base ---------- */

body {
    margin: 0;
    font-family: Georgia, "Times New Roman", Times, serif;
    color: #222;
}

/* ---------- header ---------- */

header {
    width: 100%;
    border-bottom: 1px solid #ddd;
}

header nav {
    display: flex;
    align-items: center;
    gap: calc(1.75rem * var(--ui-scale));
    padding: calc(1rem * var(--ui-scale))
             calc(1.25rem * var(--ui-scale));
    flex-wrap: nowrap;

    /* desktop: centered menu */
    justify-content: center;
}

header nav a,
header nav span {
    white-space: nowrap;
    font-size: calc(1rem * var(--ui-scale));
}

/* nav items */

.nav-items {
    display: flex;
    gap: calc(1.75rem * var(--ui-scale));
}

/* hamburger */

.nav-toggle {
    display: none;
    font-size: 1.4rem; /* fixed size, not scaled */
    background: none;
    border: none;
    cursor: pointer;
    margin-right: 1.5rem;
}

/* ---------- responsive nav ---------- */

@media (max-width: 900px) {

    /* replace centered menu with hamburger */
    header nav {
        justify-content: flex-start;
    }

    .nav-items {
        display: none;
    }

    .nav-toggle {
        display: inline-block;
    }

    /* opened state: vertical menu */
    nav.open .nav-items {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        margin-top: 1rem;
    }
}

/* ---------- main ---------- */

main {
    text-align: center;
    padding-left: 2rem;
    padding-right: 2rem;
}

@media (min-width: 1400px) {
    main {
        padding-left: 4rem;
        padding-right: 4rem;
    }
}

/* ---------- page wrapper ---------- */

.page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2.5rem 2rem;
}
