/* ============================================================
   Aube Nav
   ============================================================ */

.aube-nav {
    position: sticky;
    top: 0;
    z-index: var(--z-nav);
    background: color-mix(in srgb, var(--color-background) 80%, transparent);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
}

.aube-nav__inner {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    min-height: var(--nav-height);
    padding-block: var(--space-sm);
}

.aube-nav__brand {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--color-text-primary);
    flex-shrink: 0;
}
.aube-nav__brand:hover { color: var(--color-text-primary); }
.aube-nav__logo { width: 2rem; height: 2rem; flex-shrink: 0; }
.aube-nav__name {
    font-family: var(--font-serif);
    font-weight: 500;
    font-size: 1.125rem;
    letter-spacing: -0.01em;
}

.aube-nav__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-inline-start: auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-md);
    color: var(--color-text-primary);
    background: transparent;
    border: 0;
    cursor: pointer;
}
.aube-nav__toggle .icon { width: 1.5rem; height: 1.5rem; }
@media (min-width: 56rem) {
    .aube-nav__toggle { display: none; }
}

.aube-nav__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-inline-start: auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-md);
    color: var(--color-text-primary);
    background: transparent;
    border: 0;
    cursor: pointer;
}
@media (min-width: 56rem) {
    .aube-nav__close { display: none; }
}

.aube-nav__menu {
    display: flex;
    align-items: center;
    gap: var(--space-xl);
    margin-inline-start: auto;
}

@media (max-width: 55.99rem) {
    .aube-nav__menu {
        position: fixed;
        inset-block-start: 0;
        inset-inline-end: 0;
        height: 100dvh;
        width: min(20rem, 88vw);
        background: var(--color-surface);
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-lg);
        padding: var(--space-lg) var(--space-xl);
        box-shadow: -16px 0 48px var(--color-shadow-strong);
        transform: translateX(100%);
        transition: transform var(--motion-base) var(--ease-emphasized);
        z-index: var(--z-modal);
        overflow-y: auto;
    }
    [dir="rtl"] .aube-nav__menu {
        inset-inline-end: auto;
        inset-inline-start: 0;
        transform: translateX(-100%);
        box-shadow: 16px 0 48px var(--color-shadow-strong);
    }
    .aube-nav__menu.is-open { transform: translateX(0); }
    .aube-nav__close { align-self: flex-end; }
}

.aube-nav__links {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    list-style: none;
    margin: 0;
    padding: 0;
}
@media (max-width: 55.99rem) {
    .aube-nav__links {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-xs);
        margin-block-start: var(--space-md);
    }
}

.aube-nav__link {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.875rem;
    border-radius: var(--radius-pill);
    color: var(--color-text-primary);
    font-weight: 500;
    text-decoration: none;
    transition: background var(--motion-fast) var(--ease-standard);
}
.aube-nav__link:hover { background: var(--color-surface-muted); color: var(--color-text-primary); }

.aube-nav__tools {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}
@media (max-width: 55.99rem) {
    .aube-nav__tools {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-md);
        border-top: 1px solid var(--color-border);
        padding-block-start: var(--space-md);
    }
}

.aube-nav__theme-toggle {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--color-text-primary);
    cursor: pointer;
    transition: background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
    position: relative;
}
.aube-nav__theme-toggle:hover { border-color: var(--color-border-strong); background: var(--color-surface-muted); }
.aube-nav__theme-toggle:active { transform: scale(0.92); }
.aube-nav__theme-toggle .icon-theme {
    width: 1.125rem;
    height: 1.125rem;
    transition: transform var(--motion-base) var(--ease-emphasized), opacity var(--motion-fast) var(--ease-standard);
    grid-area: 1 / 1;
}
/* Default (no data-theme-state yet): show sun (assume light) */
.aube-nav__theme-toggle .icon-theme--moon { opacity: 0; transform: rotate(45deg) scale(0.6); }
.aube-nav__theme-toggle .icon-theme--sun  { opacity: 1; transform: rotate(0) scale(1); }
/* Dark active: show moon */
.aube-nav__theme-toggle[data-theme-state="dark"] .icon-theme--sun  { opacity: 0; transform: rotate(-45deg) scale(0.6); }
.aube-nav__theme-toggle[data-theme-state="dark"] .icon-theme--moon { opacity: 1; transform: rotate(0) scale(1); }

.aube-nav__lang { position: relative; }
.aube-nav__lang-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.4375rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    background: var(--color-surface);
    color: var(--color-text-primary);
    cursor: pointer;
    font-size: var(--text-label-md-size);
    font-weight: 600;
    transition: border-color var(--motion-fast) var(--ease-standard);
}
.aube-nav__lang-trigger:hover { border-color: var(--color-border-strong); }
.aube-nav__lang-trigger .icon { width: 1rem; height: 1rem; }

.aube-nav__lang-menu {
    position: absolute;
    inset-block-start: calc(100% + 0.5rem);
    inset-inline-end: 0;
    min-width: 12rem;
    max-height: min(70vh, 28rem);
    overflow-y: auto;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    list-style: none;
    margin: 0;
    padding: 0.375rem;
    z-index: var(--z-overlay);
    overscroll-behavior: contain;
}
@media (max-width: 55.99rem) {
    .aube-nav__lang-menu {
        position: static;
        box-shadow: none;
        border: 0;
        background: transparent;
        margin-block-start: var(--space-sm);
    }
}
.aube-nav__lang-menu[hidden] { display: none; }
.aube-nav__lang-menu a {
    display: block;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    text-decoration: none;
    font-size: var(--text-body-md-size);
}
.aube-nav__lang-menu a:hover { background: var(--color-surface-muted); }
.aube-nav__lang-menu a[aria-selected="true"] {
    background: var(--color-text-primary);
    color: var(--color-background);
    font-weight: 600;
}

/* Body scroll lock when mobile menu open */
body.nav-open { overflow: hidden; }
@media (min-width: 56rem) {
    body.nav-open { overflow: auto; }
}
