/* Mobile hamburger toggle. Hidden on >900px; shows nav.primary as a drawer below the header on small viewports. */
.mobile-menu-btn {
    display: none;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--ink-2, #334155);
    padding: 6px;
    margin-left: auto;
    margin-right: 8px;
}
.mobile-menu-btn:hover { color: var(--eu-blue, #003399); }

@media (max-width: 1000px) {
    .mobile-menu-btn { display: inline-flex; }

    /* When the menu is closed (default), nav.primary stays hidden as before. */
    body[data-mobile-menu="open"] header.site nav.primary {
        display: flex !important;
        flex-direction: column;
        position: absolute;
        top: 64px;
        left: 0; right: 0;
        background: #fff;
        border-bottom: 1px solid var(--line, #e6eaf2);
        padding: 12px 24px 20px;
        gap: 6px;
        z-index: 25;
        box-shadow: 0 12px 24px rgba(15, 23, 42, .08);
    }
    body[data-mobile-menu="open"] header.site nav.primary a {
        padding: 10px 0;
        border-bottom: 1px solid var(--bg-3, #f4f6fa);
        font-size: 1rem;
    }
    body[data-mobile-menu="open"] header.site nav.primary a:last-child { border-bottom: 0; }
}

/* Language switcher dropdown in header */
header.site .lang-menu {
    position: relative;
}
header.site .lang-menu > summary {
    display: inline-flex; align-items: center; gap: 6px; justify-content: center;
    height: 28px; min-width: 52px; padding: 0 10px;
    border: 1px solid var(--line-2, #d6dce8); border-radius: 6px;
    background: var(--bg, #fff); color: var(--ink-2, #334155);
    font: 600 0.74rem var(--mono, "JetBrains Mono", monospace);
    letter-spacing: 0.04em;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background .15s, border-color .15s, color .15s;
}
header.site .lang-menu > summary::-webkit-details-marker { display: none; }
header.site .lang-menu > summary:hover {
    background: var(--bg-3, #f4f6fa);
    border-color: var(--line-3, #c2cad8);
    color: var(--eu-blue, #003399);
}
header.site .lang-menu[open] > summary {
    background: var(--bg-3, #f4f6fa);
    border-color: var(--line-3, #c2cad8);
    color: var(--eu-blue, #003399);
}
header.site .lang-menu[open] > summary .lang-menu-caret {
    transform: rotate(180deg);
}
header.site .lang-menu .lang-menu-caret {
    transition: transform .15s;
}
header.site .lang-menu-panel {
    position: absolute; top: calc(100% + 6px); right: 0;
    min-width: 200px; max-height: 60vh; overflow-y: auto;
    margin: 0; padding: 4px 0;
    list-style: none;
    background: var(--bg, #fff);
    border: 1px solid var(--line-2, #d6dce8);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .12);
    z-index: 60;
}
header.site .lang-menu-panel li {
    margin: 0;
}
header.site .lang-menu-panel a {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 12px;
    font: 500 0.85rem var(--sans, "Inter", system-ui, sans-serif);
    color: var(--ink-1, #0f172a);
    text-decoration: none;
    transition: background .12s, color .12s;
}
header.site .lang-menu-panel a:hover {
    background: var(--bg-3, #f4f6fa);
    color: var(--eu-blue, #003399);
    text-decoration: none;
}
header.site .lang-menu-panel a[aria-current="true"] {
    background: rgba(0, 51, 153, .06);
    color: var(--eu-blue, #003399);
}
header.site .lang-menu-row-code {
    font: 600 0.7rem var(--mono, "JetBrains Mono", monospace);
    letter-spacing: 0.04em;
    color: var(--ink-3, #64748b);
    min-width: 20px;
}
header.site .lang-menu-panel a[aria-current="true"] .lang-menu-row-code {
    color: var(--eu-blue, #003399);
}
header.site .lang-menu-row-label {
    flex: 1;
}
