#nm-root{--nm-accent:#651d73;display:flex;height:62vh;min-height:420px;background:#fff;font-family:'Barlow',system-ui,sans-serif;color:#1F1B2E;}
#nm-root *{box-sizing:border-box;}
#nm-root .nm-rail{width:212px;flex:0 0 auto;background:#FAFAFC;border-right:1px solid #EEECF5;padding:20px 12px;overflow-y:auto;}
#nm-root .nm-rail-label{display:block;font-size:11px;font-weight:700;letter-spacing:.09em;color:#9791AB;text-transform:uppercase;padding:4px 12px 12px;}
#nm-root .nm-rail-list{display:flex;flex-direction:column;gap:2px;}
#nm-root .nm-tab{display:flex;align-items:center;width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:#3A3550;cursor:pointer;}
#nm-root .nm-tab:hover{background:#F3EFFC;}
#nm-root .nm-tab.active{background:var(--nm-accent);color:#fff;}
#nm-root .nm-content{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:26px 32px 0;}
#nm-root .nm-pane{display:none;flex-direction:column;gap:16px;}
#nm-root .nm-pane.active{display:flex;flex:1 1 auto;min-height:0;}
#nm-root #nm-pane-menu{overflow-y:auto;padding-bottom:36px;}
#nm-root .nm-search,#nm-root .nm-meta{flex:0 0 auto;}
#nm-root .nm-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9791AB;}
#nm-root .nm-search{position:relative;max-width:420px;}
#nm-root .nm-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9791AB;pointer-events:none;}
#nm-root .nm-search .nm-search-input{height:42px;padding-left:40px;}
#nm-root .nm-search .nm-search-input:focus{border-color:var(--bs-border-color,#dee2e6);box-shadow:none;outline:0;}
#nm-root .nm-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:#9791AB;flex-wrap:wrap;}
#nm-root .nm-hint{font-size:11px;font-weight:600;color:var(--nm-accent);background:#F3EFFC;border-radius:999px;padding:3px 10px;}
#nm-root .nm-all{margin-left:auto;font-size:13px;font-weight:500;color:var(--nm-accent);text-decoration:underline;}
#nm-root .nm-models,#nm-root .nm-cat-list{display:grid;gap:4px 14px;list-style:none;margin:0;padding:0;}
#nm-root .nm-models{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));}
#nm-root .nm-models{flex:1 1 auto;min-height:0;overflow-y:auto;align-content:start;padding-bottom:24px;}
#nm-root .nm-cat-list{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));}
#nm-root .nm-model,#nm-root .nm-cat{position:relative;min-width:0;}
#nm-root .nm-model-link,#nm-root .nm-cat a{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 12px;border-radius:8px;font-size:12.5px;font-weight:500;color:#2B2640;text-decoration:none;}
#nm-root .nm-model:hover .nm-model-link,#nm-root .nm-model.nm-active .nm-model-link,#nm-root .nm-cat a:hover{background:#F7F5FC;color:var(--nm-accent);}
#nm-root .nm-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#nm-root .nm-count{display:inline-block;width:52px;text-align:center;font-size:12.5px;font-weight:500;line-height:1.5;font-variant-numeric:tabular-nums;color:#4B4560;background:#F2F1F7;border-radius:5px;padding:2px 0;flex:0 0 auto;}
#nm-root .nm-model:hover .nm-count,#nm-root .nm-model.nm-active .nm-count,#nm-root .nm-cat a:hover .nm-count{background:var(--nm-accent);color:#fff;}
#nm-root .nm-menu-wrap{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap;}
#nm-root .nm-menu-wrap .nm-eyebrow{flex:1 0 100%;}
#nm-root .nm-cat-list{flex:1 1 640px;}
#nm-root .nm-side{list-style:none;margin:0;padding:0 0 0 24px;border-left:1px solid #EEECF5;display:flex;flex-direction:column;gap:6px;}
#nm-root .nm-side a{font-size:13px;text-decoration:underline;}
#nm-root .nm-empty{display:flex;justify-content:center;padding:48px 0;color:#8B84A0;font-size:13.5px;}
#nm-root .nm-empty[hidden]{display:none;}
.nm-flyout{position:fixed;width:236px;background:#fff;border:1px solid #E4E1F0;border-radius:12px;box-shadow:0 16px 32px rgba(31,27,46,.16);z-index:2000;overflow:hidden;font-family:'Barlow',system-ui,sans-serif;}
.nm-flyout-head{padding:10px 14px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#9791AB;border-bottom:1px solid #F0EEF6;}
.nm-flyout-row{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:12.5px;color:#2B2640;border-bottom:1px solid #F5F4FA;text-decoration:none;}
.nm-flyout-row:hover{background:#F7F5FC;color:#651d73;}
.nm-flyout-label{flex:1 1 auto;min-width:0;}
.nm-flyout-count{display:inline-block;width:52px;text-align:center;font-size:12.5px;font-weight:500;line-height:1.5;font-variant-numeric:tabular-nums;color:#4B4560;background:#F2F1F7;border-radius:5px;padding:2px 0;flex:0 0 auto;}
.nm-flyout-row:hover .nm-flyout-count{background:#651d73;color:#fff;}
.nm-flyout-total{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#FAFAFC;font-size:12.5px;font-weight:500;color:#1F1B2E;text-decoration:none;}
.nm-flyout-total span:last-child{color:#651d73;}
@media (max-width:991.98px){
#nm-root .nm-models{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
#nm-root .nm-cat-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
#nm-root .nm-content{padding:22px 22px 0;}
}

@media (min-width: 992px) {
    #nm-root .nm-cat {max-width: 260px}
}

/* #mainMenu: single offcanvas used at every viewport (see header.php). Below 992px it's
   a full mobile sheet parked under the header, above it it's reparked as a shadowed
   floating panel under #menu-dropdown-toggle, same visual spot the old dropdown used. */
@media (max-width: 991.98px){
#mainMenu{top:0;height:calc(100vh - var(--nav-h, 64px));height:calc(100dvh - var(--nav-h, 64px));}
#mainMenu,#mainMenu .offcanvas-body,#mainMenu .nm-models,#mainMenu #nm-pane-menu,#mainMenu .nm-rail-list{overscroll-behavior:contain;}
html:has(body.main-menu-offcanvas-open),body.main-menu-offcanvas-open{overflow:hidden;overscroll-behavior:none;}
#mainMenu .nm-models,#mainMenu #nm-pane-menu{touch-action:manipulation;}
#mainMenu .nm-model-link,#mainMenu .nm-cat a,#mainMenu .nm-tab{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;}
html.kb-open #mobileNavbar{display:none !important;}
html.kb-open #mainMenu{top:var(--vv-top,0px);height:100dvh;height:min(100dvh,var(--vv-h,100dvh));}
html.kb-open:has(body.main-menu-offcanvas-open){background:#fff;}
html.kb-open body.main-menu-offcanvas-open *{visibility:hidden;}
html.kb-open body.main-menu-offcanvas-open #mainMenu,html.kb-open body.main-menu-offcanvas-open #mainMenu *{visibility:visible;}
/* Leave the header (search box etc.) outside the dimmed/click-catching backdrop so
   it stays directly usable in one click instead of first dismissing the menu. */
body.main-menu-offcanvas-open .offcanvas-backdrop{top:var(--header-h, 55px);}
}

@media (min-width: 992px){
#mainMenu{top:var(--header-h, 60px);left:0;right:0;bottom:auto;width:auto;height:auto;max-height:calc(100vh - var(--header-h, 60px) - 20px);border-radius:0 0 .25rem .25rem;}
#mainMenu .offcanvas-header{display:none;}
/* Keep the desktop feel of the old dropdown: no dimmed page, no scroll lock. The
   backdrop element still exists (and still closes the menu on click), it's just
   made invisible while #mainMenu specifically is the one open (see header.php).
   Bootstrap hardcodes .offcanvas-backdrop.show{opacity:.5} (not a CSS variable),
   so it has to be overridden directly rather than through --bs-backdrop-opacity. */
body.main-menu-offcanvas-open .offcanvas-backdrop.show{opacity:0;}
/* Same reasoning as the mobile rule above: keep the header out of the backdrop's
   area entirely so clicking straight into the search box (etc.) works on the
   first click instead of needing one click to dismiss the backdrop. */
body.main-menu-offcanvas-open .offcanvas-backdrop{top:var(--header-h, 60px);}
}

@media (max-width:767.98px){
#mainMenu{display:flex;flex-direction:column;}
#mainMenu .offcanvas-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;}
#nm-root{flex-direction:column-reverse;flex:1 1 auto;height:auto;min-height:0;}
#nm-root .nm-rail{width:100%;border-right:none;border-top:1px solid #EEECF5;padding:8px 0;overflow:visible;position:relative;flex:0 0 auto;}
#nm-root .nm-rail-label{display:none;}
#nm-root .nm-rail-list{flex-direction:row;gap:4px;overflow-x:auto;padding:2px 14px;margin-left:15px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
#nm-root .nm-rail-list::-webkit-scrollbar{display:none;}
#nm-root .nm-tab{width:auto;flex:0 0 auto;white-space:nowrap;padding:8px 14px;scroll-snap-align:start;}
#nm-root .nm-rail::before,#nm-root .nm-rail::after{content:'';position:absolute;top:8px;bottom:8px;width:20px;z-index:2;pointer-events:none;}
#nm-root .nm-rail::before{left:0;background:linear-gradient(90deg,rgba(250,250,252,.65),rgba(250,250,252,.3) 50%,rgba(250,250,252,0));}
#nm-root .nm-rail::after{right:0;background:linear-gradient(270deg,#FAFAFC,rgba(250,250,252,0));}
#nm-root .nm-content{padding:16px 14px 12px;}
#nm-root .nm-pane{flex-direction:column-reverse;}
#nm-root #nm-pane-menu{flex-direction:column;}
#nm-root .nm-models{-webkit-overflow-scrolling:touch;padding-bottom:16px;}
#nm-root .nm-search{max-width:none;}
#nm-root .nm-models,#nm-root .nm-cat-list{grid-template-columns:1fr;}
#nm-root .nm-models{display:flex;flex-direction:column-reverse;flex-wrap:nowrap;gap:4px;}
#nm-root .nm-models>.nm-model{flex:0 0 auto;}
#nm-root .nm-model-link,#nm-root .nm-cat a{padding:12px;font-size:14px;}
#nm-root .nm-all{margin-left:0;}
#nm-root .nm-menu-wrap{gap:16px;}
#nm-root .nm-cat-list{flex:1 1 100%;}
#nm-root .nm-side{flex:1 1 100%;padding:14px 0 0;border-left:none;border-top:1px solid #EEECF5;flex-direction:row;flex-wrap:wrap;gap:8px 18px;}
.nm-offcanvas{--bs-offcanvas-height:auto;height:auto;min-height:0;max-height:calc(100vh - var(--nav-h, 64px) - 16px);max-height:calc(100dvh - var(--nav-h, 64px) - 16px);border-radius:16px 16px 0 0;font-family:'Barlow',system-ui,sans-serif; z-index: 10000;bottom:var(--nav-h, 64px);}
.nm-offcanvas .offcanvas-body{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
.nm-offcanvas-head{padding:14px 18px;border-bottom:1px solid #F0EEF6;}
.nm-offcanvas-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#9791AB;}
.nm-offcanvas .nm-flyout-row,.nm-offcanvas .nm-flyout-total{padding:14px 18px;font-size:14px;}
.nm-offcanvas .offcanvas-body{padding-bottom:env(safe-area-inset-bottom);}
}
#nm-root .nm-found{font-size:12.5px;font-weight:600;color:#4B4560;}