/* ============================================================
   MAIN SITE NAV - nav.css
   MDB5 navbar scoped under #menu.

   Hamburger breakpoint is controlled by data-fp-expand on #menu:
     (none) = Main nav, collapses at 768 px (MDB default)
     1005   = Main Swipeclock nav
      930   = Swipeclock Support / Reports
      880   = Swipeclock QA
   ============================================================ */


/* ---- Shell ---- */
#menu { box-shadow: none; }

#menu > .navbar {
    position: relative;
    z-index: 1030;
    padding: 0 !important;
    align-items: stretch;
    box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%) !important;
}

#menu .navbar .nav-link,
#menu .navbar .navbar-toggler,
#menu .navbar .dropdown-item { font-family: sans-serif; }


/* ---- Desktop grid: brand | links | toggler ---- */
#menu .navbar .container,
#menu .navbar .container-sm,
#menu .navbar .container-md,
#menu .navbar .container-lg,
#menu .navbar .container-xl,
#menu .navbar .container-xxl {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    align-items: stretch;
}

#menu .navbar .brand-wrapper    { grid-column: 1; grid-row: 1; justify-self: start; padding-left: 12px; }
#menu .navbar .navbar-toggler   { grid-column: 3; grid-row: 1; justify-self: end; }
#menu .navbar .navbar-collapse  { grid-column: 2; grid-row: 1; justify-self: center; flex-grow: 0; align-items: stretch; }
#menu .navbar-dark .navbar-nav  { margin: 0; align-items: stretch; }
#menu .navbar-dark .navbar-nav .nav-item { display: flex; }
#menu .navbar .nav-item.dropdown { position: relative; }


/* ---- Brand ---- */
#menu .navbar-dark .navbar-brand {
    color: #00ccff;
    font: 18px verdana;
    padding: 15.5px 0;
    display: flex;
    align-items: center;
}
#menu .navbar-dark .navbar-brand:hover { color: #269EDE; text-decoration: none; }


/* ---- Top-level links ---- */
#menu .navbar-dark .navbar-nav .nav-link {
    padding: 17px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    color: #ddd;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    border: 0;
    border-radius: 0;
    outline: none;
    height: 100%;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
}
#menu .navbar-dark .navbar-nav .nav-link.dropdown-toggle { position: relative; padding-right: 30px; }

#menu .navbar-dark .navbar-nav .nav-link:not(.active):hover,
#menu .navbar-dark .navbar-nav .nav-link:not(.active):focus,
#menu .navbar-dark .navbar-nav .nav-link:not(.active):focus-visible,
#menu .navbar-dark .navbar-nav .nav-link:not(.active):active { outline: none !important; box-shadow: none !important; }

/* Hover - non-active links only */
#menu .navbar-dark .navbar-nav .nav-link:not(.active):hover { color: #fff; background: #363636; }

/* Keep parent highlighted while submenu is open */
#menu .navbar-dark .navbar-nav .nav-item.dropdown.show > .nav-link,
#menu .navbar-dark .navbar-nav .nav-link.dropdown-toggle[aria-expanded="true"] { color: #fff; background: #363636; }

/* Active - blue, beats hover/focus/open states */
#menu .navbar .navbar-nav .nav-link.active,
#menu .navbar-dark .navbar-nav .nav-link.active:hover,
#menu .navbar-dark .navbar-nav .nav-link.active:focus,
#menu .navbar-dark .navbar-nav .nav-item.dropdown.show > .nav-link.active,
#menu .navbar-dark .navbar-nav .nav-link.dropdown-toggle.active[aria-expanded="true"]
{ color: #fff; background: #269EDE !important; }

/* Active 3D shadow - main nav desktop only, locked in on hover/focus too */
@media (min-width: 768px) {
    #menu:not([data-fp-expand]) .navbar .navbar-nav .nav-link.active,
    #menu:not([data-fp-expand]) .navbar .navbar-nav .nav-link.active:hover,
    #menu:not([data-fp-expand]) .navbar .navbar-nav .nav-link.active:focus
    { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
}


/* ---- Plus → minus indicator (desktop) ---- */
#menu .navbar .submenu-button { display: none; }

#menu .navbar .nav-link.dropdown-toggle::after {
    position: absolute;
    top: 50%; right: 11px;
    width: 8px; height: 2px; margin-top: -1px;
    display: block; background: #ddd; content: "";
    border: 0; margin-left: 0; margin-right: 0; margin-bottom: 0; vertical-align: 0; transform: none;
}
#menu .navbar .nav-link.dropdown-toggle::before {
    position: absolute;
    top: 50%; right: 14px;
    display: block; width: 2px; height: 8px; margin-top: -4px;
    background: #ddd; content: "";
    transition: height 0.25s ease, margin-top 0.25s ease;
}

#menu .navbar .nav-item.dropdown.show > .dropdown-toggle::before,
#menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"]::before { height: 0; margin-top: -1px; }

#menu .navbar .nav-item.dropdown.show > .dropdown-toggle:not(.active)::after,
#menu .navbar .nav-item.dropdown.show > .dropdown-toggle:not(.active)::before,
#menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"]:not(.active)::after,
#menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"]:not(.active)::before { background: #fff; }


/* ---- Dropdown panels ---- */
#menu .navbar .dropdown-menu {
    --mdb-dropdown-spacer: 0;
    display: block !important;
    position: absolute !important;
    background: #262626;
    border: 0; border-radius: 0;
    margin: 0 !important; padding: 0;
    min-width: 180px;
    top: 100% !important; left: 0 !important; right: auto !important; bottom: auto !important;
    transform: none !important;
    overflow: hidden;
    max-height: 0; visibility: hidden; pointer-events: none;
    animation: none !important;
    box-shadow: none;
    transition: max-height 0.35s ease, visibility 0s linear 0.35s;
}
#menu .navbar .dropdown-menu.show {
    max-height: 24rem; visibility: visible; pointer-events: auto;
    transition: max-height 0.35s ease, visibility 0s;
}

#menu .navbar .dropdown-menu .dropdown-item {
    color: #ddd; font-size: 12px; font-weight: 400;
    letter-spacing: 0; text-transform: none;
    padding: 11px 15px;
    border: 0; border-radius: 0; outline: none; box-shadow: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
#menu .navbar .dropdown-menu > li:last-child > .dropdown-item { border-bottom: 0; }

#menu .navbar .dropdown-menu .dropdown-item:hover,
#menu .navbar .dropdown-menu .dropdown-item:focus
{ color: #fff; background: #424242; outline: none; box-shadow: none; }

#menu .navbar .dropdown-menu .dropdown-item.active,
#menu .navbar .dropdown-menu .dropdown-item.active:hover,
#menu .navbar .dropdown-menu .dropdown-item.active:focus
{ color: #fff; background: #269EDE !important; outline: none; box-shadow: none; }


/* ---- Toggler button ---- */
#menu .navbar-dark .navbar-toggler {
    color: #fff; padding: 8px 0.75rem; border: 0; box-shadow: none;
    overflow: visible !important; line-height: 0; flex-shrink: 0;
}
#menu .navbar-nav .nav-link svg { flex-shrink: 0; padding-right: 6px; }


/* ==============================================================
   MOBILE LAYOUT - main nav
   MDB's navbar-expand-md hides the collapse above 768 px.
   We only need to fix the grid and show the submenu-button.
   ============================================================== */
@media (max-width: 767.98px)
{
    #menu .navbar-dark .navbar-toggler { display: flex; align-items: center; }

    #menu .navbar .container,
    #menu .navbar .container-sm,
    #menu .navbar .container-md,
    #menu .navbar .container-lg,
    #menu .navbar .container-xl,
    #menu .navbar .container-xxl { grid-template-columns: 1fr auto; padding: 0; }

    #menu .navbar .navbar-toggler   { grid-column: 2; }
    #menu .navbar .navbar-collapse  { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; width: 100%; }
    #menu .navbar-dark .navbar-nav  { width: 100%; display: block; }
    #menu .navbar-dark .navbar-nav .nav-item { display: block; width: 100%; }
    #menu .navbar-dark .navbar-nav .nav-link { width: 100%; border-top: 1px solid rgba(255, 255, 255, 0.2) !important; }
    #menu .navbar .ripple-wave { display: none !important; }
    #menu .navbar-dark .navbar-nav .nav-link.dropdown-toggle { padding-right: 46px; }
    #menu .navbar .nav-link.dropdown-toggle::before,
    #menu .navbar .nav-link.dropdown-toggle::after { display: none; }

    /* Boxed +/- control on the right */
    #menu .navbar .submenu-button {
        display: block; position: absolute; z-index: 2; right: 0; top: 0;
        width: 46px; height: 100%;
        border-left: 1px solid rgba(255, 255, 255, 0.25); pointer-events: none;
    }
    #menu .navbar .submenu-button::after {
        position: absolute; top: 50%; right: 19px;
        width: 8px; height: 2px; margin-top: -1px;
        display: block; background: #ddd; content: "";
    }
    #menu .navbar .submenu-button::before {
        position: absolute; top: 50%; right: 22px;
        width: 2px; height: 8px; margin-top: -4px;
        display: block; background: #ddd; content: "";
        transition: height 0.25s ease, margin-top 0.25s ease;
    }
    #menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button,
    #menu .navbar .nav-item.dropdown.show .submenu-button { background: #262626; }
    #menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button::before,
    #menu .navbar .nav-item.dropdown.show .submenu-button::before { height: 0; margin-top: 0; }
    #menu .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button::after,
    #menu .navbar .nav-item.dropdown.show .submenu-button::after { background: #fff; }

    #menu .navbar-dark .navbar-nav .nav-item.dropdown { flex-direction: column; }
    #menu .navbar .dropdown-menu {
        position: static !important; float: none; width: 100%; box-shadow: none;
        background: #262626; inset: auto !important; top: auto !important;
        left: auto !important; transform: none !important;
    }
    #menu .navbar .dropdown-item { padding-left: 25px; }
}


/* ==============================================================
   SWIPECLOCK NAVS - mobile-first.
   The hamburger layout is the DEFAULT for [data-fp-expand] navs.
   Each nav's own min-width block restores the desktop layout.
   Adding a new breakpoint only needs a new restore block below.
   ============================================================== */

/* Default: hamburger (overrides MDB's navbar-expand-md above 768 px) */
#menu[data-fp-expand] .navbar-expand-md .navbar-toggler { display: flex !important; align-items: center; }
#menu[data-fp-expand] .navbar-expand-md .navbar-collapse:not(.show) { display: none !important; }
#menu[data-fp-expand] .navbar-expand-md .navbar-collapse.show { display: block !important; }

#menu[data-fp-expand] .navbar .container,
#menu[data-fp-expand] .navbar .container-sm,
#menu[data-fp-expand] .navbar .container-md,
#menu[data-fp-expand] .navbar .container-lg,
#menu[data-fp-expand] .navbar .container-xl,
#menu[data-fp-expand] .navbar .container-xxl { grid-template-columns: 1fr auto; padding: 0; }

#menu[data-fp-expand] .navbar .navbar-toggler  { grid-column: 2; }
#menu[data-fp-expand] .navbar .navbar-collapse { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; width: 100%; }
#menu[data-fp-expand] .navbar-dark .navbar-nav { width: 100%; display: block; }
#menu[data-fp-expand] .navbar-dark .navbar-nav .nav-item { display: block; width: 100%; }
#menu[data-fp-expand] .navbar-dark .navbar-nav .nav-link { width: 100%; border-top: 1px solid rgba(255, 255, 255, 0.2) !important; }
#menu[data-fp-expand] .navbar .ripple-wave { display: none !important; }
#menu[data-fp-expand] .navbar-dark .navbar-nav .nav-link.dropdown-toggle { padding-right: 46px; }
#menu[data-fp-expand] .navbar .nav-link.dropdown-toggle::before,
#menu[data-fp-expand] .navbar .nav-link.dropdown-toggle::after { display: none; }

#menu[data-fp-expand] .navbar .submenu-button {
    display: block; position: absolute; z-index: 2; right: 0; top: 0;
    width: 46px; height: 100%;
    border-left: 1px solid rgba(255, 255, 255, 0.25); pointer-events: none;
}
#menu[data-fp-expand] .navbar .submenu-button::after {
    position: absolute; top: 50%; right: 19px;
    width: 8px; height: 2px; margin-top: -1px;
    display: block; background: #ddd; content: "";
}
#menu[data-fp-expand] .navbar .submenu-button::before {
    position: absolute; top: 50%; right: 22px;
    width: 2px; height: 8px; margin-top: -4px;
    display: block; background: #ddd; content: "";
    transition: height 0.25s ease, margin-top 0.25s ease;
}
#menu[data-fp-expand] .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button,
#menu[data-fp-expand] .navbar .nav-item.dropdown.show .submenu-button { background: #262626; }
#menu[data-fp-expand] .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button::before,
#menu[data-fp-expand] .navbar .nav-item.dropdown.show .submenu-button::before { height: 0; margin-top: 0; }
#menu[data-fp-expand] .navbar .nav-link.dropdown-toggle[aria-expanded="true"] .submenu-button::after,
#menu[data-fp-expand] .navbar .nav-item.dropdown.show .submenu-button::after { background: #fff; }

#menu[data-fp-expand] .navbar-dark .navbar-nav .nav-item.dropdown { flex-direction: column; }
#menu[data-fp-expand] .navbar .dropdown-menu {
    position: static !important; float: none; width: 100%; box-shadow: none;
    background: #262626; inset: auto !important; top: auto !important;
    left: auto !important; transform: none !important;
}
#menu[data-fp-expand] .navbar .dropdown-item { padding-left: 25px; }


/* Restore desktop - QA nav (880 px) */
@media (min-width: 880px)
{
    #menu[data-fp-expand="880"] .navbar-expand-md .navbar-toggler { display: none !important; }
    #menu[data-fp-expand="880"] .navbar-expand-md .navbar-collapse,
    #menu[data-fp-expand="880"] .navbar-expand-md .navbar-collapse.show,
    #menu[data-fp-expand="880"] .navbar-expand-md .navbar-collapse:not(.show) {
        display: flex !important; flex-basis: auto; flex-grow: 0;
        grid-column: 2; grid-row: 1; justify-self: center; width: auto;
    }
    #menu[data-fp-expand="880"] .navbar .container,
    #menu[data-fp-expand="880"] .navbar .container-sm,
    #menu[data-fp-expand="880"] .navbar .container-md,
    #menu[data-fp-expand="880"] .navbar .container-lg,
    #menu[data-fp-expand="880"] .navbar .container-xl,
    #menu[data-fp-expand="880"] .navbar .container-xxl { grid-template-columns: 1fr auto 1fr; }
    #menu[data-fp-expand="880"] .navbar .navbar-toggler { grid-column: 3; }
    #menu[data-fp-expand="880"] .navbar-dark .navbar-nav { width: auto; display: flex; }
    #menu[data-fp-expand="880"] .navbar-dark .navbar-nav .nav-item { display: flex; width: auto; flex-direction: row; }
    #menu[data-fp-expand="880"] .navbar-dark .navbar-nav .nav-link { width: auto; border-top: 0 !important; }
    #menu[data-fp-expand="880"] .navbar-dark .navbar-nav .nav-link.dropdown-toggle { padding-right: 30px; }
    #menu[data-fp-expand="880"] .navbar .nav-link.dropdown-toggle::before,
    #menu[data-fp-expand="880"] .navbar .nav-link.dropdown-toggle::after { display: block; }
    #menu[data-fp-expand="880"] .navbar .submenu-button { display: none; }
    #menu[data-fp-expand="880"] .navbar .dropdown-menu { position: absolute !important; width: auto; inset: auto; top: 100% !important; left: 0 !important; }
    #menu[data-fp-expand="880"] .navbar .dropdown-item { padding-left: 15px; }
    #menu[data-fp-expand="880"] .navbar .navbar-nav .nav-link.active,
    #menu[data-fp-expand="880"] .navbar .navbar-nav .nav-link.active:hover,
    #menu[data-fp-expand="880"] .navbar .navbar-nav .nav-link.active:focus
    { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
}

/* Restore desktop - Support + Reports navs (930 px) */
@media (min-width: 930px)
{
    #menu[data-fp-expand="930"] .navbar-expand-md .navbar-toggler { display: none !important; }
    #menu[data-fp-expand="930"] .navbar-expand-md .navbar-collapse,
    #menu[data-fp-expand="930"] .navbar-expand-md .navbar-collapse.show,
    #menu[data-fp-expand="930"] .navbar-expand-md .navbar-collapse:not(.show) {
        display: flex !important; flex-basis: auto; flex-grow: 0;
        grid-column: 2; grid-row: 1; justify-self: center; width: auto;
    }
    #menu[data-fp-expand="930"] .navbar .container,
    #menu[data-fp-expand="930"] .navbar .container-sm,
    #menu[data-fp-expand="930"] .navbar .container-md,
    #menu[data-fp-expand="930"] .navbar .container-lg,
    #menu[data-fp-expand="930"] .navbar .container-xl,
    #menu[data-fp-expand="930"] .navbar .container-xxl { grid-template-columns: 1fr auto 1fr; }
    #menu[data-fp-expand="930"] .navbar .navbar-toggler { grid-column: 3; }
    #menu[data-fp-expand="930"] .navbar-dark .navbar-nav { width: auto; display: flex; }
    #menu[data-fp-expand="930"] .navbar-dark .navbar-nav .nav-item { display: flex; width: auto; flex-direction: row; }
    #menu[data-fp-expand="930"] .navbar-dark .navbar-nav .nav-link { width: auto; border-top: 0 !important; }
    #menu[data-fp-expand="930"] .navbar-dark .navbar-nav .nav-link.dropdown-toggle { padding-right: 30px; }
    #menu[data-fp-expand="930"] .navbar .nav-link.dropdown-toggle::before,
    #menu[data-fp-expand="930"] .navbar .nav-link.dropdown-toggle::after { display: block; }
    #menu[data-fp-expand="930"] .navbar .submenu-button { display: none; }
    #menu[data-fp-expand="930"] .navbar .dropdown-menu { position: absolute !important; width: auto; inset: auto; top: 100% !important; left: 0 !important; }
    #menu[data-fp-expand="930"] .navbar .dropdown-item { padding-left: 15px; }
    #menu[data-fp-expand="930"] .navbar .navbar-nav .nav-link.active,
    #menu[data-fp-expand="930"] .navbar .navbar-nav .nav-link.active:hover,
    #menu[data-fp-expand="930"] .navbar .navbar-nav .nav-link.active:focus
    { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
}

/* Restore desktop - main Swipeclock nav (1005 px) */
@media (min-width: 1005px)
{
    #menu[data-fp-expand="1005"] .navbar-expand-md .navbar-toggler { display: none !important; }
    #menu[data-fp-expand="1005"] .navbar-expand-md .navbar-collapse,
    #menu[data-fp-expand="1005"] .navbar-expand-md .navbar-collapse.show,
    #menu[data-fp-expand="1005"] .navbar-expand-md .navbar-collapse:not(.show) {
        display: flex !important; flex-basis: auto; flex-grow: 0;
        grid-column: 2; grid-row: 1; justify-self: center; width: auto;
    }
    #menu[data-fp-expand="1005"] .navbar .container,
    #menu[data-fp-expand="1005"] .navbar .container-sm,
    #menu[data-fp-expand="1005"] .navbar .container-md,
    #menu[data-fp-expand="1005"] .navbar .container-lg,
    #menu[data-fp-expand="1005"] .navbar .container-xl,
    #menu[data-fp-expand="1005"] .navbar .container-xxl { grid-template-columns: 1fr auto 1fr; }
    #menu[data-fp-expand="1005"] .navbar .navbar-toggler { grid-column: 3; }
    #menu[data-fp-expand="1005"] .navbar-dark .navbar-nav { width: auto; display: flex; }
    #menu[data-fp-expand="1005"] .navbar-dark .navbar-nav .nav-item { display: flex; width: auto; flex-direction: row; }
    #menu[data-fp-expand="1005"] .navbar-dark .navbar-nav .nav-link { width: auto; border-top: 0 !important; }
    #menu[data-fp-expand="1005"] .navbar-dark .navbar-nav .nav-link.dropdown-toggle { padding-right: 30px; }
    #menu[data-fp-expand="1005"] .navbar .nav-link.dropdown-toggle::before,
    #menu[data-fp-expand="1005"] .navbar .nav-link.dropdown-toggle::after { display: block; }
    #menu[data-fp-expand="1005"] .navbar .submenu-button { display: none; }
    #menu[data-fp-expand="1005"] .navbar .dropdown-menu { position: absolute !important; width: auto; inset: auto; top: 100% !important; left: 0 !important; }
    #menu[data-fp-expand="1005"] .navbar .dropdown-item { padding-left: 15px; }
    #menu[data-fp-expand="1005"] .navbar .navbar-nav .nav-link.active,
    #menu[data-fp-expand="1005"] .navbar .navbar-nav .nav-link.active:hover,
    #menu[data-fp-expand="1005"] .navbar .navbar-nav .nav-link.active:focus
    { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
}


/* ==============================================================
   HAMBURGER ICON  -  SVG lines → CSS X
   ============================================================== */
.navbar-toggler .fp-hamburger {
    position: relative;
    display: block;
    width: var(--fp-icon-w, 22px);
    height: var(--fp-icon-h, 16px);
    flex-shrink: 0;
    color: inherit;
}
.navbar-toggler .fp-hamburger-icon {
    position: absolute; inset: 0; width: 100%; height: 100%;
    display: block; fill: currentColor; overflow: visible;
    transition: opacity 0.15s ease 0.1s;
}
.navbar-toggler .fp-hamburger-x {
    position: absolute; inset: 0;
    opacity: 0; pointer-events: none;
    transition: opacity 0.15s ease 0.1s;
}
.navbar-toggler .fp-hamburger-x > span {
    position: absolute; left: 0; top: 50%;
    width: 100%; height: 2px; margin-top: -1px;
    background-color: currentColor;
    transition: transform 0.25s ease;
}
.navbar-toggler .fp-hamburger-x > span:first-child { transform: translateY(calc(var(--fp-icon-h, 16px) * -7 / 16)); }
.navbar-toggler .fp-hamburger-x > span:last-child  { transform: translateY(calc(var(--fp-icon-h, 16px) *  7 / 16)); }

.navbar-toggler[aria-expanded="true"] .fp-hamburger-icon { opacity: 0; transition: opacity 0.12s ease; }
.navbar-toggler[aria-expanded="true"] .fp-hamburger-x    { opacity: 1; transition: opacity 0.12s ease; }
.navbar-toggler[aria-expanded="true"] .fp-hamburger-x > span:first-child { transform: rotate( 45deg); }
.navbar-toggler[aria-expanded="true"] .fp-hamburger-x > span:last-child  { transform: rotate(-45deg); }

@media (prefers-reduced-motion: reduce)
{
    #menu .navbar .nav-link.dropdown-toggle::before,
    #menu .navbar .submenu-button::before,
    #menu .navbar .dropdown-menu,
    #menu .navbar .dropdown-menu.show,
    .navbar-toggler .fp-hamburger-icon,
    .navbar-toggler .fp-hamburger-x,
    .navbar-toggler .fp-hamburger-x > span { transition: none; }
}


/* ==============================================================
   BRAND HOVER FLOURISH - letter bounce + code-token burst
   ============================================================== */
#menu > .navbar.fp-nav-fx { overflow: visible; }
#menu > .navbar.fp-nav-fx > .container-xxl { position: relative; z-index: 1; }

.fp-nav-fx-layer {
    position: absolute; inset: 0;
    overflow: hidden; pointer-events: none; z-index: 0;
}
.fp-nav-glyph {
    position: absolute; z-index: 0;
    pointer-events: none; user-select: none;
    font-weight: 700; font-family: Consolas, "Courier New", monospace;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
    transform: translate(-50%, -50%);
    will-change: transform, opacity;
}
.fp-nav-glyph--burst { animation: fp-glyph-burst 1.05s ease-out forwards; }

@keyframes fp-glyph-burst {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.35) rotate(0deg); }
    18%  { opacity: 0.85;
           transform: translate(calc(-50% + var(--dx, 0px) * 0.28), calc(-50% + var(--dy, 0px) * 0.28))
                      scale(1.05) rotate(calc(var(--rot, 20deg) * 0.35)); }
    100% { opacity: 0;
           transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, 0px)))
                      rotate(var(--rot, 20deg)) scale(0.7); }
}

.navbar-dark .navbar-brand.fp-brand-fx       { position: relative; color: transparent; }
.navbar-dark .navbar-brand.fp-brand-fx:hover { color: transparent; }

.fp-brand-fx .fp-brand-char {
    display: inline-block;
    background-image: linear-gradient(105deg, #00ccff 0%, #00ccff 42%, #ffab40 50%, #ffffff 58%, #ffffff 100%);
    background-size: 240% 100%;
    background-position: 0% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    transition: background-position 0.65s ease;
    transition-delay: calc(var(--i, 0) * 28ms);
}
.fp-brand-fx:hover .fp-brand-char {
    background-position: 100% 50%;
    animation: fp-brand-bounce 0.55s ease both;
    animation-delay: calc(var(--i, 0) * 32ms);
}

@keyframes fp-brand-bounce {
    0%, 100% { transform: translateY(0)    scale(1);    }
    35%       { transform: translateY(-5px) scale(1.08); }
    55%       { transform: translateY(1px)  scale(0.98); }
    75%       { transform: translateY(-2px) scale(1.03); }
}

@media (prefers-reduced-motion: reduce)
{
    .fp-nav-glyph,
    .fp-brand-fx:hover .fp-brand-char { animation: none !important; }
}
