/* Public navigation polish: compact sub-menus, smooth opening, one clear current item. */

/* Desktop dropdowns */
.fhf-public-reference .fhf-nav-button .fhf-icon { transition: transform .2s ease; }
.fhf-public-reference .fhf-nav-button[aria-expanded=true] .fhf-icon { transform: rotate(180deg); }
.fhf-public-reference .fhf-nav-panel { width: min(320px, calc(100vw - 32px)); padding: 6px; border-radius: 14px; box-shadow: 0 14px 36px rgba(0, 60, 43, .14), 0 2px 6px rgba(0, 60, 43, .08); }
.fhf-public-reference .fhf-nav-panel:not([hidden]) { animation: fhf-nav-in .18s cubic-bezier(.2, .7, .3, 1); transform-origin: top left; }
.fhf-public-reference .fhf-nav-panel-mega { width: min(540px, calc(100vw - 48px)); }
.fhf-public-reference .fhf-nav-panel ul { gap: 1px; }
.fhf-public-reference .fhf-nav-panel-mega > ul { gap: 1px 6px; }
.fhf-public-reference .fhf-nav-panel a { min-height: 40px; gap: 10px; padding: 5px 8px; border-radius: 9px; font-size: .875rem; font-weight: 600; transition: background-color .15s ease, color .15s ease; }
.fhf-public-reference .fhf-nav-icon { width: 30px; height: 30px; border-radius: 8px; transition: background-color .15s ease, color .15s ease; }
.fhf-public-reference .fhf-nav-icon .fhf-icon { width: 18px; height: 18px; }
.fhf-public-reference .fhf-nav-panel a:hover .fhf-nav-icon,
.fhf-public-reference .fhf-nav-panel a:focus-visible .fhf-nav-icon,
.fhf-public-reference .fhf-nav-panel a[aria-current="page"] .fhf-nav-icon { background: #006b4e; color: #fff; }
.fhf-public-reference .fhf-nav-panel .fhf-mega-all { min-height: 36px; margin: 6px 0 0; padding: 8px 8px 2px; font-size: .85rem; }
.fhf-public-reference .fhf-nav-panel .fhf-badge { font-size: .68rem; }
@keyframes fhf-nav-in { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: none; } }

/* Phone menu drawer: tighter rows, sub-items indented under their group. */
.fhf-drawer-content { padding-top: 14px; }
.fhf-drawer-menu { gap: 2px; margin-block: 12px; }
.fhf-drawer-menu a, .fhf-drawer-menu summary { min-height: 44px; padding: 8px 12px; }
.fhf-drawer-group { padding-block: 2px; }
.fhf-drawer-group > summary .fhf-icon { transition: transform .2s ease; }
.fhf-drawer-group[open] > summary .fhf-icon { transform: rotate(180deg); }
.fhf-drawer-group > a { min-height: 40px; margin-inline-start: 12px; padding-block: 6px; font-size: .9rem; }
.fhf-drawer-group[open] > a { animation: fhf-nav-in .18s ease-out; }

@media (prefers-reduced-motion: reduce) {
    .fhf-public-reference .fhf-nav-panel:not([hidden]), .fhf-drawer-group[open] > a { animation: none; }
    .fhf-public-reference .fhf-nav-button .fhf-icon, .fhf-drawer-group > summary .fhf-icon { transition: none; }
}

/* Keep the desktop header identical on every page so the menu never jumps. */
html { scrollbar-gutter: stable; background-color: var(--color-fhf-cream, #f7f4ee); }
@media (min-width: 768px) {
    .fhf-public-reference .fhf-desktop-bar { min-height: 76px; }
    .fhf-public-reference .fhf-desktop-header .fhf-brand img { width: 76px; height: 72px; object-fit: contain; }
    /* The current or open item is marked by colour and underline, not a heavier weight that changes its width. */
    .fhf-public-reference .fhf-desktop-header :is(.fhf-nav-link, .fhf-nav-button):is([aria-current], [aria-expanded="true"]) { font-weight: 600; }
}

/* Language button: compact, matching the other header tools. */
.fhf-language summary { min-height: 34px; gap: 4px; padding: 4px 8px; border-radius: 8px; font-size: .72rem; }
.fhf-public-reference .fhf-mobile-tools .fhf-language summary { min-height: 34px; padding-inline: 7px; }
.fhf-language summary .fhf-icon { width: 14px; height: 14px; }
.fhf-language nav { min-width: 168px; padding: 4px; border-radius: 10px; top: calc(100% + 6px); }
.fhf-language nav a { min-height: 36px; gap: 8px; padding: 6px 8px; font-size: .8rem; }
.fhf-language[open] nav { animation: fhf-nav-in .16s ease-out; }

/* Sub-menus: narrower and shorter rows. */
.fhf-public-reference .fhf-nav-panel { width: min(264px, calc(100vw - 32px)); padding: 4px; }
.fhf-public-reference .fhf-nav-panel-mega { width: min(480px, calc(100vw - 48px)); }
.fhf-public-reference .fhf-nav-panel a { min-height: 34px; gap: 8px; padding: 3px 8px; font-size: .82rem; }
.fhf-public-reference .fhf-nav-icon { width: 26px; height: 26px; border-radius: 7px; }
.fhf-public-reference .fhf-nav-icon .fhf-icon { width: 16px; height: 16px; }
.fhf-public-reference .fhf-nav-panel .fhf-mega-all { min-height: 32px; margin-top: 4px; padding: 6px 8px 2px; }
.fhf-drawer-group > a { min-height: 38px; padding-block: 5px; }
@media (prefers-reduced-motion: reduce) { .fhf-language[open] nav { animation: none; } }
