/* Luna Menu Widget Pro — v1.2
   Desktop: .lpw-menu-nav-master:not(.is-mobile)   Mobile drawer: .lpw-menu-nav-master.is-mobile
   (the is-mobile class is toggled by menu.js from data-breakpoint) */

.lpw-menu-nav-master {
    /* Minimal zinc palette — clean defaults */
    --lpw-menu-surface: #ffffff;
    --lpw-menu-text: #18181b;
    --lpw-menu-text-variant: #71717a;
    --lpw-menu-primary: #18181b;
    --lpw-menu-hover-bg: rgba(24, 24, 27, .05);
    --lpw-menu-hover-text: #18181b;
    --lpw-menu-active-bg: #f4f4f5;
    --lpw-menu-active-text: #18181b;
    --lpw-menu-badge-bg: #18181b;
    --lpw-menu-outline: rgba(24, 24, 27, .08);
    --lpw-menu-panel-bg: #ffffff;
    --lpw-menu-drawer-bg: #ffffff;
    --lpw-menu-overlay: rgba(24, 24, 27, .28);
    --lpw-menu-bar: var(--lpw-menu-text);
    --lpw-menu-ease: cubic-bezier(.22, 1, .36, 1);
    --lpw-menu-gap: 4px;
    --lpw-menu-radius: 999px;
    --lpw-menu-item-radius: 8px;
    --lpw-menu-panel-radius: 12px;
    --lpw-menu-mega-w: 960px;
    --lpw-menu-img-w: 220px;
    --lpw-menu-media-root: 18px;
    --lpw-menu-media-sub: 18px;
    --lpw-menu-media-radius: 6px;
    --lpw-menu-card-ratio: 16 / 10;
    --lpw-menu-drawer-w: 300px;
    --lpw-menu-dir: 1;
    --lpw-menu-side: 1;
    /* shared surface tokens — SAME values as user-menu.css (stroke + shadow) */
    --lpw-menu-bar-border: 1px solid rgba(24, 24, 27, .10);
    --lpw-menu-bar-shadow: 0 1px 2px 0 rgba(24, 24, 27, .05);
    --lpw-menu-panel-border: 1px solid rgba(24, 24, 27, .08);
    --lpw-menu-panel-shadow: 0 12px 32px -8px rgba(24, 24, 27, .18);
    /* animation tokens (all editable from the widget) */
    --lpw-menu-pdur: 250ms;
    --lpw-menu-pdist: 8px;
    --lpw-menu-cdur: 300ms;
    --lpw-menu-ddur: 350ms;
    --lpw-menu-idur: 450ms;
    --lpw-menu-istart: 70ms;
    --lpw-menu-step: 45ms;
    --lpw-menu-dist: 22px;
    --lpw-menu-p-from: translateY(var(--lpw-menu-pdist));
    --lpw-menu-p-from-x: translateX(calc(var(--lpw-menu-pdist) * var(--lpw-menu-dir)));
    font-family: inherit;
    font-size: 14px;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;

    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}
.lpw-menu-nav-master[dir="rtl"] { --lpw-menu-dir: -1; }
.lpw-menu-nav-master.lpw-menu-ease-ease-out { --lpw-menu-ease: cubic-bezier(0, 0, .2, 1); }
.lpw-menu-nav-master.lpw-menu-ease-ease-in-out { --lpw-menu-ease: cubic-bezier(.65, 0, .35, 1); }
.lpw-menu-nav-master.lpw-menu-ease-spring { --lpw-menu-ease: cubic-bezier(.34, 1.4, .64, 1); }
.lpw-menu-nav-master.lpw-menu-ease-linear { --lpw-menu-ease: linear; }
.lpw-menu-nav-master.lpw-menu-pfx-fade { --lpw-menu-p-from: none; --lpw-menu-p-from-x: none; }
.lpw-menu-nav-master.lpw-menu-pfx-scale { --lpw-menu-p-from: scale(.96); --lpw-menu-p-from-x: scale(.96); }
.lpw-menu-nav-master.lpw-menu-pfx-none { --lpw-menu-pdur: 0ms; --lpw-menu-p-from: none; --lpw-menu-p-from-x: none; }
.lpw-menu-nav-master.lpw-menu-side-start { --lpw-menu-side: -1; }
.lpw-menu-nav-master *, .lpw-menu-nav-master *::before, .lpw-menu-nav-master *::after { box-sizing: border-box; }
.lpw-menu-nav-master ul { list-style: none; margin: 0; padding: 0; }

/* ---------- shared building blocks ---------- */
.lpw-menu-item { position: relative; margin: 0; }
.lpw-menu-row {
    display: flex;
    align-items: center;
    border-radius: var(--lpw-menu-radius);
    transition: background-color 200ms var(--lpw-menu-ease), color 200ms var(--lpw-menu-ease);
}
.lpw-menu-depth-1 > .lpw-menu-row, .lpw-menu-depth-2 > .lpw-menu-row { border-radius: var(--lpw-menu-item-radius); }

.lpw-menu-link {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    color: var(--lpw-menu-text);
    text-decoration: none;
    border-radius: inherit;
    transition: color 200ms var(--lpw-menu-ease);
}
.lpw-menu-text { display: flex; flex-direction: column; min-width: 0; }
.lpw-menu-label { line-height: 1.35; }
.lpw-menu-desc { margin-top: 2px; font-weight: 400; font-size: .8125em; line-height: 1.4; color: var(--lpw-menu-text-variant); }

.lpw-menu-row:hover, .lpw-menu-row:focus-within { background: var(--lpw-menu-hover-bg); }
.lpw-menu-row:hover > .lpw-menu-link, .lpw-menu-row:focus-within > .lpw-menu-link { color: var(--lpw-menu-hover-text); }
.lpw-menu-item.is-open > .lpw-menu-row { background: var(--lpw-menu-hover-bg); }
.lpw-menu-depth-0.current-menu-item > .lpw-menu-row,
.lpw-menu-depth-0.current-menu-ancestor > .lpw-menu-row,
.lpw-menu-depth-0.current-menu-parent > .lpw-menu-row,
.lpw-menu-depth-1.current-menu-item > .lpw-menu-row,
.lpw-menu-depth-2.current-menu-item > .lpw-menu-row { background: var(--lpw-menu-active-bg); }
.lpw-menu-depth-0.current-menu-item > .lpw-menu-row > .lpw-menu-link,
.lpw-menu-depth-0.current-menu-ancestor > .lpw-menu-row > .lpw-menu-link,
.lpw-menu-depth-0.current-menu-parent > .lpw-menu-row > .lpw-menu-link,
.lpw-menu-depth-1.current-menu-item > .lpw-menu-row > .lpw-menu-link,
.lpw-menu-depth-2.current-menu-item > .lpw-menu-row > .lpw-menu-link { color: var(--lpw-menu-active-text); }

.lpw-menu-link:focus-visible, .lpw-menu-toggle:focus-visible, .lpw-menu-hamburger:focus-visible, .lpw-menu-close:focus-visible, .lpw-menu-feature-link:focus-visible {
    outline: 2px solid var(--lpw-menu-primary);
    outline-offset: -2px;
}

/* caret button */
.lpw-menu-toggle {
    flex: none;
    appearance: none;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin-inline-end: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lpw-menu-text-variant);
    cursor: pointer;
}
.lpw-menu-toggle svg {
    display: block;
    width: 18px;
    height: 18px;
    transform: translateZ(0) rotate(0deg);
    transform-origin: 50% 50%;
    backface-visibility: hidden;
    will-change: transform;
    shape-rendering: geometricPrecision;
    transition: transform var(--lpw-menu-cdur) var(--lpw-menu-ease);
}
.lpw-menu-item.is-open > .lpw-menu-row > .lpw-menu-toggle svg { transform: translateZ(0) rotate(180deg); }
.lpw-menu-has-sub > .lpw-menu-row > .lpw-menu-link { padding-inline-end: 4px; }

/* icon / image / inline svg */
.lpw-menu-media {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    font-size: var(--lpw-menu-media-root);
    line-height: 1;
    color: var(--lpw-menu-media-color, inherit);
}
.lpw-menu-depth-1 .lpw-menu-media, .lpw-menu-depth-2 .lpw-menu-media { font-size: var(--lpw-menu-media-sub); }
.lpw-menu-media svg { width: 1em; height: 1em; }
.lpw-menu-media svg:not([fill]) { fill: currentColor; }
.lpw-menu-media i { font-size: 1em; line-height: 1; }
.lpw-menu-media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--lpw-menu-media-radius); display: block; }

.lpw-menu-badge {
    flex: none;
    margin-inline-start: auto;
    padding: 1px 8px;
    border-radius: 100px;
    background: var(--lpw-menu-badge-bg);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
}

.lpw-menu-hamburger, .lpw-menu-drawer-head, .lpw-menu-overlay { display: none; }
.lpw-menu-drawer { display: contents; }
.lpw-menu-nav-container { flex: 1 1 auto; min-width: 0; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-nav-container { border: var(--lpw-menu-bar-border); box-shadow: var(--lpw-menu-bar-shadow); border-radius: 12px; }
.lpw-menu-root-list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lpw-menu-gap); }

/* ---------- featured card (mega) ---------- */
.lpw-menu-feature { flex: none; width: var(--lpw-menu-img-w); }
.lpw-menu-feature-link { display: block; color: var(--lpw-menu-text); text-decoration: none; border-radius: var(--lpw-menu-panel-radius); }
.lpw-menu-feature-img { display: block; overflow: hidden; border-radius: var(--lpw-menu-panel-radius); }
.lpw-menu-feature-img img { display: block; width: 100%; height: auto; object-fit: cover; transition: transform 400ms var(--lpw-menu-ease); }
.lpw-menu-feature-link:hover .lpw-menu-feature-img img { transform: scale(1.04); }
.lpw-menu-feature-title { display: block; margin-top: 8px; font-weight: 600; font-size: .9375em; }

/* =====================================================================
   DESKTOP
   ===================================================================== */
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-panel {
    position: absolute;
    top: 100%;
    z-index: 1000;
    padding-top: 8px; /* invisible hover bridge */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: var(--lpw-menu-p-from);
    transform-origin: 50% 0;
    transition: opacity calc(var(--lpw-menu-pdur) * .8) var(--lpw-menu-ease), transform var(--lpw-menu-pdur) var(--lpw-menu-ease), visibility 0s linear var(--lpw-menu-pdur);
}
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-item.is-open > .lpw-menu-panel,
.lpw-menu-nav-master:not(.lpw-menu-js) .lpw-menu-item:hover > .lpw-menu-panel,
.lpw-menu-nav-master:not(.lpw-menu-js) .lpw-menu-item:focus-within > .lpw-menu-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition-delay: 0s;
}
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-panel-inner {
    padding: 12px;
    background: var(--lpw-menu-panel-bg);
    border-radius: var(--lpw-menu-panel-radius);
    border: var(--lpw-menu-panel-border);
    box-shadow: var(--lpw-menu-panel-shadow);
}

/* ----- mega ----- */
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-depth-0.lpw-menu-mode-mega { position: static; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega > .lpw-menu-panel-d1 {
    inset-inline-start: 0;
    width: var(--lpw-menu-mega-w);
    max-width: calc(100vw - 32px);
}
.lpw-menu-nav-master.lpw-menu-align-center:not(.is-mobile) .lpw-menu-mode-mega > .lpw-menu-panel-d1 { inset-inline-start: auto; left: 50%; translate: -50% 0; }
.lpw-menu-nav-master.lpw-menu-align-end:not(.is-mobile) .lpw-menu-mode-mega > .lpw-menu-panel-d1 { inset-inline-start: auto; inset-inline-end: 0; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega > .lpw-menu-panel-d1 > .lpw-menu-panel-inner { display: flex; align-items: flex-start; gap: 24px; padding: 20px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-sub-d1 {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 16px 24px;
}
/* level-1 items act as column headings; level-2 list is always visible */
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row > .lpw-menu-toggle { display: none; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row > .lpw-menu-link { font-weight: 600; padding-inline-end: 14px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-panel-d2 {
    position: static;
    padding: 0;
    opacity: 1;
    /* inherit (never force) so a closed mega panel is NOT hoverable / tabbable */
    visibility: inherit;
    pointer-events: inherit;
    transform: none;
    transition: none;
}
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-panel-d2 > .lpw-menu-panel-inner { padding: 4px 0 0; background: none; box-shadow: none; border: 0; border-radius: 0; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-sub-d2 { display: flex; flex-direction: column; gap: 2px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-2 > .lpw-menu-row > .lpw-menu-link { padding-block: 7px; color: var(--lpw-menu-text-variant); }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-2 > .lpw-menu-row:hover > .lpw-menu-link { color: var(--lpw-menu-hover-text); }

/* card layout for level-1 media (optional) */
.lpw-menu-nav-master.lpw-menu-sub-stacked:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row > .lpw-menu-link { flex-direction: column; align-items: stretch; gap: 8px; padding: 8px; }
.lpw-menu-nav-master.lpw-menu-sub-stacked:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row .lpw-menu-media {
    width: 100%; height: auto; aspect-ratio: var(--lpw-menu-card-ratio);
    background: var(--lpw-menu-hover-bg); border-radius: var(--lpw-menu-item-radius); overflow: hidden;
}
.lpw-menu-nav-master.lpw-menu-sub-stacked:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row .lpw-menu-media img { border-radius: 0; }
.lpw-menu-nav-master.lpw-menu-sub-stacked:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row .lpw-menu-media svg,
.lpw-menu-nav-master.lpw-menu-sub-stacked:not(.is-mobile) .lpw-menu-mode-mega .lpw-menu-depth-1 > .lpw-menu-row .lpw-menu-media i { font-size: 36px; width: 36px; height: 36px; }

/* ----- dropdown + flyouts ----- */
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown > .lpw-menu-panel-d1 { inset-inline-start: 0; min-width: 240px; max-width: min(360px, calc(100vw - 32px)); width: max-content; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown > .lpw-menu-panel-d1.lpw-menu-flip { inset-inline-start: auto; inset-inline-end: 0; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-sub { display: flex; flex-direction: column; gap: 2px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-panel-inner { padding: 8px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-panel-d2 {
    top: -8px;
    inset-inline-start: 100%;
    padding-top: 0;
    padding-inline-start: 6px;
    min-width: 220px;
    width: max-content;
    max-width: 320px;
    transform: var(--lpw-menu-p-from-x);
}
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-item.is-open > .lpw-menu-panel-d2 { transform: none; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-panel-d2.lpw-menu-flip { inset-inline-start: auto; inset-inline-end: 100%; padding-inline-start: 0; padding-inline-end: 6px; }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-depth-1 > .lpw-menu-row > .lpw-menu-toggle svg { transform: translateZ(0) rotate(calc(-90deg * var(--lpw-menu-dir))); }
.lpw-menu-nav-master:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-depth-1.is-open > .lpw-menu-row > .lpw-menu-toggle svg { transform: translateZ(0) rotate(calc(-90deg * var(--lpw-menu-dir))); }

/* =====================================================================
   MOBILE / TABLET  (drawer + accordion)
   ===================================================================== */
.lpw-menu-nav-master.is-mobile .lpw-menu-hamburger {
    appearance: none;
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lpw-menu-bar);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.lpw-menu-nav-master.is-mobile .lpw-menu-hamburger:hover { background: var(--lpw-menu-hover-bg); }
.lpw-menu-bars { position: relative; display: block; width: 22px; height: 16px; }
.lpw-menu-bars i {
    position: absolute;
    inset-inline: 0;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 300ms var(--lpw-menu-ease), opacity 200ms, top 300ms var(--lpw-menu-ease);
}
.lpw-menu-bars i:nth-child(1) { top: 0; }
.lpw-menu-bars i:nth-child(2) { top: 7px; }
.lpw-menu-bars i:nth-child(3) { top: 14px; }
.lpw-menu-nav-master.is-drawer-open .lpw-menu-bars i:nth-child(1) { top: 7px; transform: rotate(45deg); }
.lpw-menu-nav-master.is-drawer-open .lpw-menu-bars i:nth-child(2) { opacity: 0; }
.lpw-menu-nav-master.is-drawer-open .lpw-menu-bars i:nth-child(3) { top: 7px; transform: rotate(-45deg); }

.lpw-menu-nav-master.is-mobile .lpw-menu-drawer {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 100001;
    display: flex;
    flex-direction: column;
    width: min(var(--lpw-menu-drawer-w), 88vw);
    background: var(--lpw-menu-drawer-bg);
    box-shadow: 0 4px 24px rgba(24, 24, 27, .12);
    transform: translateX(calc(100% * var(--lpw-menu-dir) * var(--lpw-menu-side)));
    visibility: hidden;
    transition: transform var(--lpw-menu-ddur) var(--lpw-menu-ease), visibility 0s linear var(--lpw-menu-ddur);
}
/* closed position follows the side the drawer is anchored to */
.lpw-menu-nav-master.is-mobile.lpw-menu-side-end .lpw-menu-drawer   { inset-inline-end: 0; }
.lpw-menu-nav-master.is-mobile.lpw-menu-side-start .lpw-menu-drawer { inset-inline-start: 0; }
.lpw-menu-nav-master.is-mobile.is-drawer-open .lpw-menu-drawer { transform: none; visibility: visible; transition-delay: 0s; }

.lpw-menu-nav-master.is-mobile .lpw-menu-drawer-head {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: space-between;
    padding: 8px;
    padding-inline: 20px 8px;
    border-bottom: 1px solid var(--lpw-menu-outline);
}
.lpw-menu-drawer-title { font-size: 1.125em; font-weight: 600; color: var(--lpw-menu-text); }
.lpw-menu-close {
    appearance: none; display: grid; place-items: center; width: 48px; height: 48px; padding: 0;
    border: 0; border-radius: 50%; background: transparent; color: var(--lpw-menu-text); cursor: pointer;
}
.lpw-menu-close:hover { background: var(--lpw-menu-hover-bg); }
.lpw-menu-close svg { width: 24px; height: 24px; }

.lpw-menu-nav-master.is-mobile .lpw-menu-nav-container { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 8px 12px 32px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-root-list { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 2px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-row { border-radius: 16px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-link { min-height: 48px; padding: 12px 16px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-toggle { width: 48px; height: 48px; margin: 0; }
.lpw-menu-nav-master.is-mobile .lpw-menu-toggle svg { width: 22px; height: 22px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-has-sub > .lpw-menu-row > .lpw-menu-link { padding-inline-end: 8px; }

/* accordion panels */
.lpw-menu-nav-master.is-mobile .lpw-menu-panel {
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows var(--lpw-menu-cdur) var(--lpw-menu-ease), visibility 0s linear var(--lpw-menu-cdur);
}
.lpw-menu-nav-master.is-mobile .lpw-menu-item.is-open > .lpw-menu-panel { grid-template-rows: 1fr; visibility: visible; transition-delay: 0s; }
.lpw-menu-nav-master.is-mobile .lpw-menu-panel-inner { min-height: 0; overflow: hidden; }
.lpw-menu-nav-master.is-mobile .lpw-menu-sub { margin-block: 4px; margin-inline-start: 22px; padding-inline-start: 6px; border-inline-start: 2px solid var(--lpw-menu-outline); display: flex; flex-direction: column; gap: 2px; }
.lpw-menu-nav-master.is-mobile .lpw-menu-feature { display: none; }
.lpw-menu-nav-master.is-mobile .lpw-menu-depth-1 > .lpw-menu-row .lpw-menu-link { font-weight: 500; }
.lpw-menu-nav-master.is-mobile .lpw-menu-depth-2 > .lpw-menu-row .lpw-menu-link { color: var(--lpw-menu-text-variant); }

.lpw-menu-nav-master.is-mobile .lpw-menu-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: var(--lpw-menu-overlay);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--lpw-menu-ddur) var(--lpw-menu-ease), visibility 0s linear var(--lpw-menu-ddur);
}
.lpw-menu-nav-master.is-mobile.is-drawer-open .lpw-menu-overlay { opacity: 1; visibility: visible; transition-delay: 0s; }

html.lpw-menu-lock { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
    .lpw-menu-nav-master *, .lpw-menu-nav-master *::before, .lpw-menu-nav-master *::after { transition-duration: 1ms !important; transition-delay: 0s !important; }
}

/* Custom hamburger (icon / image / SVG) */
.lpw-menu-hamburger-custom {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    color: var(--lpw-menu-bar);
    line-height: 0;
}
.lpw-menu-hamburger-custom img,
.lpw-menu-hamburger-custom svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.lpw-menu-hamburger-custom i,
.lpw-menu-hamburger-custom .e-font-icon-svg {
    font-size: inherit;
    width: 1em;
    height: 1em;
}
/* When custom icon is used, skip bars→X morph (JS still toggles drawer) */
.lpw-menu-nav-master.lpw-menu-hb-custom.is-drawer-open .lpw-menu-hamburger-custom {
    opacity: 0.85;
}

/* =====================================================================
   STAGGERED REVEAL  (class .lpw-menu-stagger, toggled from the widget)
   --lpw-menu-i : cascade index inside a whole panel (desktop)
   --lpw-menu-j : index inside its own list (mobile drawer / accordion)
   ===================================================================== */
.lpw-menu-nav-master.lpw-menu-stagger {
    --lpw-menu-fx: var(--lpw-menu-dist);   /* from the right (physical) */
    --lpw-menu-fy: 0px;
}
.lpw-menu-nav-master.lpw-menu-stagger.lpw-menu-from-left { --lpw-menu-fx: calc(var(--lpw-menu-dist) * -1); }
.lpw-menu-nav-master.lpw-menu-stagger.lpw-menu-from-up   { --lpw-menu-fx: 0px; --lpw-menu-fy: var(--lpw-menu-dist); }

/* hidden state (also the "closing" state: quick, no delay) */
.lpw-menu-nav-master.lpw-menu-stagger:not(.is-mobile) .lpw-menu-panel .lpw-menu-sub > .lpw-menu-item,
.lpw-menu-nav-master.lpw-menu-stagger:not(.is-mobile) .lpw-menu-panel .lpw-menu-feature {
    opacity: 0;
    transform: translate3d(var(--lpw-menu-fx), var(--lpw-menu-fy), 0);
    transition: opacity 140ms ease, transform 140ms ease;
    transition-delay: 0s;
}
/* revealed state: mega = every item in the panel cascades; dropdown = direct children only */
.lpw-menu-nav-master.lpw-menu-stagger:not(.is-mobile) .lpw-menu-mode-mega.is-open .lpw-menu-panel .lpw-menu-sub > .lpw-menu-item,
.lpw-menu-nav-master.lpw-menu-stagger:not(.is-mobile) .lpw-menu-mode-mega.is-open .lpw-menu-panel .lpw-menu-feature,
.lpw-menu-nav-master.lpw-menu-stagger:not(.is-mobile) .lpw-menu-mode-dropdown .lpw-menu-item.is-open > .lpw-menu-panel > .lpw-menu-panel-inner > .lpw-menu-sub > .lpw-menu-item {
    opacity: 1;
    transform: none;
    transition: opacity var(--lpw-menu-idur) var(--lpw-menu-ease), transform calc(var(--lpw-menu-idur) * 1.2) var(--lpw-menu-ease);
    transition-delay: calc(var(--lpw-menu-istart) + min(var(--lpw-menu-i, 0), 14) * var(--lpw-menu-step));
}

/* mobile drawer: root items cascade in when the drawer opens, sub items when a branch opens */
.lpw-menu-nav-master.lpw-menu-stagger.is-mobile .lpw-menu-root-list > .lpw-menu-item,
.lpw-menu-nav-master.lpw-menu-stagger.is-mobile .lpw-menu-panel .lpw-menu-sub > .lpw-menu-item {
    opacity: 0;
    transform: translate3d(var(--lpw-menu-fx), var(--lpw-menu-fy), 0);
    transition: opacity 140ms ease, transform 140ms ease;
    transition-delay: 0s;
}
.lpw-menu-nav-master.lpw-menu-stagger.is-mobile.is-drawer-open .lpw-menu-root-list > .lpw-menu-item,
.lpw-menu-nav-master.lpw-menu-stagger.is-mobile .lpw-menu-item.is-open > .lpw-menu-panel > .lpw-menu-panel-inner > .lpw-menu-sub > .lpw-menu-item {
    opacity: 1;
    transform: none;
    transition: opacity var(--lpw-menu-idur) var(--lpw-menu-ease), transform calc(var(--lpw-menu-idur) * 1.15) var(--lpw-menu-ease);
    transition-delay: calc(var(--lpw-menu-istart) + 50ms + min(var(--lpw-menu-j, 0), 12) * var(--lpw-menu-step));
}
/* sub items of a branch: start right after the branch begins expanding */
.lpw-menu-nav-master.lpw-menu-stagger.is-mobile .lpw-menu-item.is-open > .lpw-menu-panel > .lpw-menu-panel-inner > .lpw-menu-sub > .lpw-menu-item {
    transition-delay: calc(var(--lpw-menu-istart) + min(var(--lpw-menu-j, 0), 12) * var(--lpw-menu-step));
}
