/* ─── Navigation ─── */
.nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    height: var(--nav-height);
    display: flex;
    align-items: center;
    padding: 0 var(--section-pad-x);
    transition: background var(--transition-base), box-shadow var(--transition-base);
}

.nav.scrolled {
    background: var(--navy);
    box-shadow: 0 1px 20px rgba(0,0,0,0.3);
}

.nav-inner {
    width: 100%;
    max-width: var(--site-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.nav-logo img {
    height: 48px;
    width: auto;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 2rem;
    list-style: none;
}

.nav-links a {
    font-family: var(--font-body);
    font-size: 1.216rem;
    color: var(--cream);
    letter-spacing: 0.01em;
    transition: opacity var(--transition-base);
}

.nav-links a:hover { opacity: 0.7; }

.nav-burger {
    display: none;
    background: none;
    border: none;
    color: var(--cream);
    font-size: 1.5rem;
    padding: 0.5rem;
}

/* ─── Section base ─── */
.section {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.section-inner {
    max-width: var(--site-max);
    margin: 0 auto;
    padding: var(--section-pad-y) var(--section-pad-x);
}

/* ─── Theme variants ─── */
.section--dark  { background-color: var(--navy); color: var(--cream); }
.section--light { background-color: var(--light); color: var(--navy); }
.section--slate { background-color: var(--slate); color: var(--cream); }

/* ─── Typography helpers ─── */
.label {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.65;
    margin-bottom: 1rem;
    display: block;
}

.display-heading {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1;
}

.display-heading--xl  { font-size: clamp(2.5rem, 5vw, 3.9rem); }
.display-heading--lg  { font-size: clamp(2rem, 4vw, 2.95rem); }
.display-heading--md  { font-size: clamp(1.4rem, 2.5vw, 1.95rem); }

/* ─── Buttons ─── */
.btn {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 0.75rem 2rem;
    border: 1px solid currentColor;
    transition: background var(--transition-base), color var(--transition-base);
    text-decoration: none;
    cursor: pointer;
}

.btn--outline-cream { color: var(--cream); border-color: var(--cream); background: transparent; }
.btn--outline-cream:hover { background: var(--cream); color: var(--navy); }

.btn--solid-cream { background: var(--cream); color: var(--navy); border-color: var(--cream); }
.btn--solid-cream:hover { background: transparent; color: var(--cream); }

.btn--solid-light { background: var(--light); color: var(--navy); border-color: var(--light); }
.btn--solid-light:hover { background: transparent; color: var(--navy); }

/* ─── Responsive ─── */
@media (max-width: 767px) {
    :root { --section-pad-y: 54px; }
    .nav-links { display: none; }
    .nav-burger { display: block; }
    .nav-links.open {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: var(--nav-height);
        left: 0;
        right: 0;
        background: var(--navy);
        padding: 2rem var(--section-pad-x);
        gap: 1.5rem;
    }
}
