.desktop-nav { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.desktop-nav > a, .desktop-nav summary, .desktop-nav .nav-parent > a, .desktop-nav .nav-parent button { color: var(--color-ink); font-size: var(--fs-small); font-weight: var(--weight-semibold); line-height: 1.35; text-decoration: none; padding: var(--space-3) var(--space-2); min-height: 44px; display: flex; align-items: center; }
.nav-group { position: relative; }
.nav-parent { display: flex; align-items: center; }
.nav-parent button { display: flex; align-items: center; justify-content: center; min-width: var(--space-10); min-height: var(--space-12); border: 0; border-radius: var(--radius-xs); background: transparent; color: var(--color-ink); }
.nav-parent button[aria-expanded="true"] { background: var(--color-soft); }
.nav-group summary { list-style: none; }
.nav-group summary::-webkit-details-marker { display: none; }
/* Labels retain their typography/padding; SVGs share the 12px spacing token. */
.desktop-nav summary { gap:var(--space-1);white-space:nowrap; }
.desktop-nav .nav-chevron { width:var(--space-3);height:var(--space-3);flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-duration) ease; }
.desktop-nav details[open] > summary .nav-chevron { transform:rotate(180deg); }
@media (prefers-reduced-motion:reduce) { .desktop-nav .nav-chevron { transition:none; } }
.nav-group[open] summary { background: var(--color-soft); border-radius: var(--radius-xs); }
.nav-dropdown { position: absolute; top: 100%; left: 0; width: 380px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-lg); }
.nav-dropdown a { display: block; padding: var(--space-3); font-size: var(--fs-small); color: var(--color-ink); text-decoration: none; min-height: 44px; }
.nav-dropdown a:hover { background: var(--color-soft); border-radius: var(--radius-xs); }
.mobile-menu { position: fixed; inset: 0 0 0 auto; width: min(430px, 100%); max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: var(--space-5); background: var(--color-white); color: var(--color-text); overflow-y: auto; }
.mobile-menu::backdrop { background: var(--color-overlay); }
.mobile-menu-header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin-bottom: var(--space-5); }
.mobile-menu-header p { margin: 0; font-weight: var(--weight-bold); }
.mobile-menu .menu-close { display: flex; font-size: 28px; }
.mobile-menu nav { margin-top: var(--space-5); }
.mobile-menu nav > a, .mobile-menu summary, .mobile-menu .nav-parent > a { display: block; min-height: 48px; padding-block: var(--space-3); color: var(--color-ink); text-decoration: none; font-weight: var(--weight-semibold); border-bottom: 1px solid var(--color-border); }
.mobile-menu .nav-parent { border-bottom: 1px solid var(--color-border); }
.mobile-menu .nav-parent > a { flex: 1; border-bottom: 0; }
.mobile-menu summary::after { content: '+'; float: right; }
.mobile-menu details[open] summary::after { content: '−'; }
.mobile-menu .nav-dropdown { position: static; width: 100%; display: block; border: 0; box-shadow: none; padding: var(--space-2); }
.mobile-menu-footer { margin-top: var(--space-6); display: grid; gap: var(--space-3); }
.mobile-menu-footer > a:not(.button) { min-height: 44px; display: flex; align-items: center; }
.menu-open { overflow: hidden; }
.no-js-nav { display: flex; flex-wrap: wrap; gap: var(--space-4); padding-block: var(--space-4); }
@media (max-width: 1279px) { .desktop-nav { display: none; } }

.desktop-nav > .nav-group:last-child .nav-dropdown { left: auto; right: 0; }
.nav-dropdown[hidden] { display: none; }

/* Size desktop columns to their labels without changing the mobile accordion. */
@media (min-width: 1280px) {
 .desktop-nav .nav-dropdown { width: max-content; max-width: calc(100vw - var(--gutter) * 2); grid-template-columns: repeat(2, minmax(0, max-content)); }
}
