.gn-header {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: rgba(245, 240, 232, 0.92);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--c-border-soft);
    transition: box-shadow var(--t-base) var(--ease-out);
}
.gn-header.is-scrolled { box-shadow: var(--shadow-sm); }

.gn-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-5);
    padding-block: var(--s-4);
    min-height: 72px;
}

.gn-header__brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
.gn-header__brand img { max-height: 40px; width: auto; }
.gn-header__brand-text {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: var(--fw-medium);
    color: var(--c-text);
    letter-spacing: var(--ls-tight);
}

.gn-header__nav { flex: 1; display: flex; justify-content: center; }

.gn-nav {
    display: flex;
    align-items: center;
    gap: var(--s-5);
}
.gn-nav a {
    color: var(--c-text);
    font-size: 0.9375rem;
    font-weight: var(--fw-medium);
    text-decoration: none;
    padding: var(--s-2) 0;
    position: relative;
    transition: color var(--t-fast) var(--ease-out);
}
.gn-nav a::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 1px;
    background: var(--c-accent);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--t-base) var(--ease-out);
}
.gn-nav a:hover { color: var(--c-accent); }
.gn-nav a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}
.gn-nav .current-menu-item > a { color: var(--c-accent); }

.gn-header__cta {
    display: flex;
    gap: var(--s-3);
    align-items: center;
}

.gn-header__toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: var(--s-3);
}
.gn-header__toggle span {
    width: 24px;
    height: 1.5px;
    background: var(--c-text);
    transition: transform var(--t-base) var(--ease-out), opacity var(--t-fast) var(--ease-out);
}

/* Mobile-only CTA block at bottom of nav overlay */
.gn-header__nav-cta { display: none; }

@media (max-width: 1024px) {
    /* Kill backdrop-filter on mobile so position:fixed on nav anchors to viewport, not the header */
    .gn-header {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background: var(--c-base) !important;
    }
    .gn-header .gn-header__nav {
        position: fixed !important;
        top: 72px;
        right: 0;
        bottom: 0;
        left: 0;
        background: var(--c-base) !important;
        z-index: 110;
        flex-direction: column;
        padding: var(--s-5) var(--gutter) var(--s-7);
        transform: translateX(100%);
        transition: transform var(--t-base) var(--ease-out);
    }
    .gn-header__nav.is-open { transform: translateX(0); }
    .gn-nav { flex-direction: column; gap: var(--s-5); align-items: flex-start; }
    .gn-nav a { font-size: 1.5rem; font-family: var(--font-display); }
    .gn-header__cta .gn-button--ghost { display: none; }
    .gn-header__toggle { display: inline-flex; }
    .gn-header__toggle.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .gn-header__toggle.is-open span:nth-child(2) { opacity: 0; }
    .gn-header__toggle.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    .gn-header__nav-cta {
        display: flex;
        flex-direction: column;
        gap: var(--s-2);
        margin-top: auto;
        padding-top: var(--s-6);
        border-top: 1px solid var(--c-border-soft);
        width: 100%;
    }
    .gn-header__nav-cta a {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: var(--s-3) 0;
        text-decoration: none;
        color: var(--c-text);
    }
    .gn-header__nav-cta strong {
        font-family: var(--font-body);
        font-weight: var(--fw-semi);
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: var(--ls-wide);
        color: var(--c-accent);
    }
    .gn-header__nav-cta span {
        font-family: var(--font-body);
        font-size: 1rem;
        color: var(--c-text);
    }
}
