/* BW Navigation Menu — structural + small neutral presets only. */

/*
 * Header stacking safety.
 * BW Layout replaces the theme header at the theme hook, so the replacement
 * needs its own high stacking context just like mature header builders do.
 * This prevents page sections with their own positioned/z-index layers from
 * painting over an open desktop dropdown. These rules only load when a BW
 * Navigation Menu widget is actually present.
 */
.bwl-site-header {
    position: relative;
    z-index: 99990;
    width: 100%;
    overflow: visible;
}

.bwl-site-header .bwl-nav {
    z-index: 99992;
    overflow: visible;
}

.bwl-site-header .bwl-nav__panel {
    z-index: 99993;
    overflow: visible;
}

.bwl-site-header .bwl-nav__submenu {
    z-index: 99999;
}
.bwl-nav,
.bwl-nav * {
    box-sizing: border-box;
}

.bwl-nav {
    --bwl-nav-text: #17233b;
    --bwl-nav-hover: #0d3c84;
    --bwl-nav-active: #0d3c84;
    --bwl-nav-bg: #fff;
    --bwl-nav-soft: #f5f8fd;
    --bwl-nav-line: #e5eaf2;
    --bwl-nav-toggle: #0d3c84;
    --bwl-nav-toggle-hover: #0a3475;
    --bwl-nav-radius: 10px;
    position: relative;
    width: 100%;
}

.bwl-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bwl-nav li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bwl-nav a {
    color: var(--bwl-nav-text);
    text-decoration: none;
}

.bwl-nav__panel {
    position: relative;
    z-index: 1;
}

.bwl-nav__menu {
    margin: 0;
    padding: 0;
}

.bwl-nav--horizontal .bwl-nav__menu {
    display: flex;
    align-items: center;
    gap: 18px;
}

.bwl-nav--horizontal .bwl-nav__menu > li,
.bwl-nav--horizontal .bwl-nav__submenu > li {
    position: relative;
}

.bwl-nav__menu > li > a {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 4px;
    color: var(--bwl-nav-text);
    font-weight: 600;
    line-height: 1.25;
    transition: color .18s ease, background-color .18s ease;
}

.bwl-nav__menu > li > a:hover,
.bwl-nav__menu > li > a:focus-visible {
    color: var(--bwl-nav-hover);
}

.bwl-nav__menu > li.current-menu-item > a,
.bwl-nav__menu > li.current-menu-ancestor > a,
.bwl-nav__menu > li.current_page_item > a,
.bwl-nav__menu > li.current_page_ancestor > a {
    color: var(--bwl-nav-active);
}

.bwl-nav__submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999;
    width: max-content;
    min-width: 220px;
    padding: 8px;
    background: var(--bwl-nav-bg);
    border: 1px solid var(--bwl-nav-line);
    border-radius: var(--bwl-nav-radius);
    box-shadow: 0 14px 32px rgba(15, 39, 71, .10);
}

.bwl-nav__submenu .bwl-nav__submenu {
    top: -9px;
    left: 100%;
}

.bwl-nav__menu li:hover > .bwl-nav__submenu,
.bwl-nav__menu li:focus-within > .bwl-nav__submenu {
    display: block;
}

.bwl-nav__submenu a {
    display: block;
    width: 100%;
    padding: 9px 12px;
    color: var(--bwl-nav-text);
    border-radius: 7px;
    line-height: 1.35;
    white-space: normal;
    transition: color .16s ease, background-color .16s ease;
}

.bwl-nav__submenu a:hover,
.bwl-nav__submenu a:focus-visible,
.bwl-nav__submenu .current-menu-item > a {
    color: var(--bwl-nav-hover);
    background: var(--bwl-nav-soft);
}

.bwl-nav__submenu-toggle,
.bwl-nav__toggle-wrap {
    display: none;
}

.bwl-nav__submenu-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: currentColor;
    cursor: pointer;
}

.bwl-nav__submenu-icon {
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-1px, -1px);
    transform-origin: center;
    transition: transform .18s ease;
}

.bwl-nav li.is-submenu-open > .bwl-nav__submenu-toggle .bwl-nav__submenu-icon {
    transform: rotate(225deg) translate(-1px, -1px);
}

.bwl-nav__toggle-wrap {
    width: 100%;
    justify-content: flex-end;
}

.bwl-nav__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 52px;
    min-height: 44px;
    padding: 7px 10px;
    border: 0;
    border-radius: 10px;
    background: var(--bwl-nav-toggle);
    color: #fff;
    cursor: pointer;
    line-height: 1;
    transition: background-color .18s ease;
}

.bwl-nav__toggle:hover,
.bwl-nav__toggle:focus-visible {
    background: var(--bwl-nav-toggle-hover);
}

.bwl-nav__toggle:focus-visible,
.bwl-nav__submenu-toggle:focus-visible,
.bwl-nav a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.bwl-nav__hamburger {
    position: relative;
    display: inline-flex;
    width: 20px;
    height: 16px;
    flex: 0 0 20px;
    flex-direction: column;
    justify-content: space-between;
}

.bwl-nav__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
    transform-origin: center;
    transition: transform .18s ease, opacity .18s ease;
}

.bwl-nav.is-open .bwl-nav__hamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.bwl-nav.is-open .bwl-nav__hamburger span:nth-child(2) {
    opacity: 0;
}

.bwl-nav.is-open .bwl-nav__hamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.bwl-nav__toggle-text {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .05em;
}

/* Desktop vertical mode. */
.bwl-nav--vertical .bwl-nav__menu {
    display: block;
}

.bwl-nav--vertical .bwl-nav__submenu {
    display: block;
    position: static;
    width: 100%;
    margin-left: 12px;
    min-width: 0;
    border: 0;
    box-shadow: none;
}

/* Small universal presets. Customer-specific identity stays outside the plugin. */
.bwl-nav--preset-minimal .bwl-nav__submenu {
    padding: 5px 0;
    border-radius: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    box-shadow: none;
}

.bwl-nav--preset-minimal .bwl-nav__submenu a {
    border-radius: 0;
}

.bwl-nav--preset-soft .bwl-nav__menu > li > a:hover,
.bwl-nav--preset-soft .bwl-nav__menu > li > a:focus-visible,
.bwl-nav--preset-soft .bwl-nav__menu > li.current-menu-item > a,
.bwl-nav--preset-soft .bwl-nav__menu > li.current-menu-ancestor > a {
    background: var(--bwl-nav-soft);
    border-radius: 9px;
}

.bwl-nav--preset-soft .bwl-nav__submenu {
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(15, 39, 71, .11);
}

/* Custom keeps only the structural rules above; Elementor/WPCode owns identity. */
.bwl-nav--preset-custom .bwl-nav__menu > li > a,
.bwl-nav--preset-custom .bwl-nav__submenu a {
    transition: none;
}

.bwl-nav__editor-note {
    padding: 10px 12px;
    border: 1px dashed #c3c4c7;
    background: #fff;
    color: #50575e;
    font-size: 13px;
}

.bwl-nav .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Tablet breakpoint. */
@media (max-width: 1024px) {
    .bwl-nav--bp-tablet .bwl-nav__toggle-wrap {
        display: flex;
    }

    .bwl-nav--bp-tablet .bwl-nav__panel {
        display: none;
        width: 100%;
        margin-top: 8px;
        background: var(--bwl-nav-bg);
    }

    .bwl-nav--bp-tablet.is-open .bwl-nav__panel {
        display: block;
    }

    .bwl-nav--bp-tablet .bwl-nav__menu,
    .bwl-nav--bp-tablet.bwl-nav--horizontal .bwl-nav__menu {
        display: block;
        width: 100%;
    }

    .bwl-nav--bp-tablet .bwl-nav__menu > li,
    .bwl-nav--bp-tablet .bwl-nav__submenu > li {
        position: relative;
        width: 100%;
        border-bottom: 1px solid var(--bwl-nav-line);
    }

    .bwl-nav--bp-tablet .bwl-nav__menu > li > a,
    .bwl-nav--bp-tablet .bwl-nav__submenu a {
        width: 100%;
        min-height: 42px;
        padding: 10px 44px 10px 14px;
        border-radius: 0;
    }

    .bwl-nav--bp-tablet .bwl-nav__submenu {
        display: none;
        position: static;
        width: 100%;
        min-width: 0 !important;
        margin: 0;
        padding: 0 0 0 14px;
        border: 0;
        border-top: 1px solid var(--bwl-nav-line);
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .bwl-nav--bp-tablet .bwl-nav__menu li:hover > .bwl-nav__submenu,
    .bwl-nav--bp-tablet .bwl-nav__menu li:focus-within > .bwl-nav__submenu {
        display: none;
    }

    .bwl-nav--bp-tablet .bwl-nav__submenu-toggle {
        display: inline-flex;
        position: absolute;
        top: 3px;
        right: 4px;
        z-index: 2;
        width: 38px;
        height: 36px;
        align-items: center;
        justify-content: center;
    }

    .bwl-nav--bp-tablet li.is-submenu-open > .bwl-nav__submenu {
        display: block;
    }

    .bwl-nav--bp-tablet.bwl-nav--submenu-expanded .bwl-nav__submenu {
        display: block !important;
    }

    .bwl-nav--bp-tablet.bwl-nav--submenu-expanded .bwl-nav__submenu-toggle {
        display: none;
    }
}

/* Mobile-only breakpoint. */
@media (max-width: 767px) {
    .bwl-nav--bp-mobile .bwl-nav__toggle-wrap {
        display: flex;
    }

    .bwl-nav--bp-mobile .bwl-nav__panel {
        display: none;
        width: 100%;
        margin-top: 8px;
        background: var(--bwl-nav-bg);
    }

    .bwl-nav--bp-mobile.is-open .bwl-nav__panel {
        display: block;
    }

    .bwl-nav--bp-mobile .bwl-nav__menu,
    .bwl-nav--bp-mobile.bwl-nav--horizontal .bwl-nav__menu {
        display: block;
        width: 100%;
    }

    .bwl-nav--bp-mobile .bwl-nav__menu > li,
    .bwl-nav--bp-mobile .bwl-nav__submenu > li {
        position: relative;
        width: 100%;
        border-bottom: 1px solid var(--bwl-nav-line);
    }

    .bwl-nav--bp-mobile .bwl-nav__menu > li > a,
    .bwl-nav--bp-mobile .bwl-nav__submenu a {
        width: 100%;
        min-height: 42px;
        padding: 10px 44px 10px 14px;
        border-radius: 0;
    }

    .bwl-nav--bp-mobile .bwl-nav__submenu {
        display: none;
        position: static;
        width: 100%;
        min-width: 0 !important;
        margin: 0;
        padding: 0 0 0 14px;
        border: 0;
        border-top: 1px solid var(--bwl-nav-line);
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .bwl-nav--bp-mobile .bwl-nav__menu li:hover > .bwl-nav__submenu,
    .bwl-nav--bp-mobile .bwl-nav__menu li:focus-within > .bwl-nav__submenu {
        display: none;
    }

    .bwl-nav--bp-mobile .bwl-nav__submenu-toggle {
        display: inline-flex;
        position: absolute;
        top: 3px;
        right: 4px;
        z-index: 2;
        width: 38px;
        height: 36px;
        align-items: center;
        justify-content: center;
    }

    .bwl-nav--bp-mobile li.is-submenu-open > .bwl-nav__submenu {
        display: block;
    }

    .bwl-nav--bp-mobile.bwl-nav--submenu-expanded .bwl-nav__submenu {
        display: block !important;
    }

    .bwl-nav--bp-mobile.bwl-nav--submenu-expanded .bwl-nav__submenu-toggle {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bwl-nav *,
    .bwl-nav *::before,
    .bwl-nav *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

/* =========================================================
   MODERN PANEL PRESET
   Richer built-in design inspired by a polished agency menu.
   It remains generic: colours and key details are controlled
   from Elementor > Style > Modern Designer.
   ========================================================= */
.bwl-nav--preset-modern {
    --bwl-modern-accent: #0d3c84;
    --bwl-modern-accent-dark: #0a3475;
    --bwl-modern-accent-mid: #1251a2;
    --bwl-modern-accent-soft: #eaf2ff;
    --bwl-modern-hover-soft: #f5f8fd;
    --bwl-modern-highlight: #f7c948;
    --bwl-modern-text: #17233b;
    --bwl-modern-line: #e5eaf2;
    --bwl-modern-group-bg: #f4f7fc;
    --bwl-modern-group-mobile-bg: #edf4ff;
    --bwl-modern-tree: #cbd9ed;
    --bwl-modern-group-bar: #7aa7e8;
    --bwl-modern-underline-width: 28px;
    --bwl-modern-item-radius: 10px;
    overflow: visible;
}

.bwl-nav--preset-modern .bwl-nav__panel,
.bwl-nav--preset-modern .bwl-nav__menu {
    overflow: visible;
}

/* Desktop/base Modern Panel treatment. Responsive modes override this below. */
.bwl-nav--preset-modern .bwl-nav__menu > li > a {
    position: relative;
    color: var(--bwl-modern-text);
    background-color: transparent;
    background-image: linear-gradient(var(--bwl-modern-highlight), var(--bwl-modern-highlight));
    background-repeat: no-repeat;
    background-position: center calc(100% - 3px);
    background-size: 0 2px;
    transition: color .22s ease, background-size .22s ease;
}

.bwl-nav--preset-modern .bwl-nav__menu > li > a:hover,
.bwl-nav--preset-modern .bwl-nav__menu > li > a:focus-visible {
    color: var(--bwl-modern-accent);
    background-size: var(--bwl-modern-underline-width) 2px;
}

.bwl-nav--preset-modern .bwl-nav__submenu {
    min-width: 300px;
    max-width: min(460px, calc(100vw - 32px));
    padding: 14px 0;
    background: #fff;
    border: 1px solid #e7edf5;
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(15, 39, 71, .10), 0 3px 10px rgba(15, 39, 71, .04);
    overflow: visible;
    z-index: 99999;
}

.bwl-nav--preset-modern.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title > a {
    display: block;
    width: calc(100% - 20px);
    margin: 8px 10px 5px;
    padding: 9px 12px;
    color: var(--bwl-modern-accent);
    background: var(--bwl-modern-group-bg);
    border: 0;
    border-left: 3px solid var(--bwl-modern-accent);
    border-radius: 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .10em;
    text-transform: uppercase;
    pointer-events: none;
    cursor: default;
    box-shadow: none;
}

.bwl-nav--preset-modern.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title:first-child > a {
    margin-top: 0;
}

.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a {
    display: block;
    position: relative;
    width: calc(100% - 20px);
    margin: 3px 10px;
    padding: 10px 16px 10px 18px;
    color: var(--bwl-modern-text);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--bwl-modern-item-radius);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
    transform: translateX(0);
    transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}

.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 50%;
    width: 3px;
    height: 0;
    border-radius: 99px;
    background: var(--bwl-modern-accent);
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    transition: height .22s ease, opacity .22s ease;
}

.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a:hover,
.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a:focus-visible {
    color: var(--bwl-modern-accent);
    background: var(--bwl-modern-hover-soft);
    border-color: var(--bwl-modern-line);
    transform: translateX(4px);
    box-shadow: 0 6px 18px rgba(13, 60, 132, .07);
}

.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a:hover::before,
.bwl-nav--preset-modern .bwl-nav__submenu li:not(.menu-group-title) > a:focus-visible::before {
    height: 18px;
    opacity: 1;
}

.bwl-nav--preset-modern .bwl-nav__submenu .current-menu-item > a {
    color: var(--bwl-modern-accent);
    font-weight: 700;
    background: #f8fbff;
}


/* Tablet/mobile version of Modern Panel. */
@media (max-width: 1024px) {
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__panel,
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu,
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu ul,
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu li {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu > li.menu-item-has-children > a {
        display: block;
        width: 100%;
        color: var(--bwl-modern-accent);
        background-color: var(--bwl-modern-accent-soft);
        background-image: linear-gradient(var(--bwl-modern-accent), var(--bwl-modern-accent));
        background-repeat: no-repeat;
        background-size: 58px 2px;
        background-position: 14px calc(100% - 6px);
        font-size: 14px;
        font-weight: 800;
        line-height: 1.3;
        padding: 10px 14px 14px;
        margin: 0;
        border-top: 1px solid #d6e2f3;
        border-bottom: 1px solid #d6e2f3;
        border-left: 4px solid var(--bwl-modern-accent);
        border-radius: 0;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__submenu {
        width: 100%;
        min-width: 0 !important;
        max-width: 100%;
        margin: 0;
        padding: 3px 0 5px;
        background: #f8fbff;
        border: 0;
        border-bottom: 1px solid #dce7f5;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title > a {
        display: block;
        color: var(--bwl-modern-accent);
        background: var(--bwl-modern-group-mobile-bg);
        font-size: 9.5px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
        line-height: 1.25;
        padding: 6px 10px;
        margin: 4px 0 0;
        border: 0;
        border-left: 4px solid var(--bwl-modern-group-bar);
        border-radius: 0;
        pointer-events: none;
        cursor: default;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) {
        position: relative;
        background: #fff;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title)::before {
        content: "";
        position: absolute;
        left: 20px;
        top: 0;
        bottom: 0;
        width: 1.5px;
        background: var(--bwl-modern-tree);
        z-index: 3;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title):last-child::before {
        bottom: 50%;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__submenu li:not(.menu-group-title) > a {
        display: block;
        position: relative;
        width: 100%;
        color: #10213f;
        background: #fff;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.3;
        padding: 8px 12px 8px 44px;
        min-height: 34px;
        margin: 0;
        border: 0;
        border-bottom: 1px solid #e8eef6;
        border-radius: 0;
        white-space: normal;
        overflow-wrap: anywhere;
        z-index: 6;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::before {
        content: "";
        position: absolute;
        left: 20px;
        top: 50%;
        width: 10px;
        height: 1.5px;
        background: var(--bwl-modern-tree);
        transform: translateY(-50%);
        z-index: 4;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::after {
        content: "";
        position: absolute;
        left: 20px;
        top: 50%;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--bwl-modern-accent);
        transform: translate(-50%, -50%);
        z-index: 5;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu > li:not(.menu-item-has-children):not(.menu-group-title) > a {
        display: block;
        color: #071b3a;
        background: #fff;
        font-size: 13.5px;
        font-weight: 700;
        line-height: 1.25;
        padding: 9px 14px;
        margin: 0;
        border: 0;
        border-bottom: 1px solid #e9eef6;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__toggle {
        width: 54px;
        min-width: 54px;
        height: 50px;
        min-height: 50px;
        padding: 6px 6px 5px;
        flex-direction: column;
        gap: 5px;
        background: var(--bwl-modern-accent);
        border: 0;
        border-radius: 12px;
        color: #fff;
        box-shadow: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--toggle-pulse .bwl-nav__toggle {
        animation: bwlNavToggleSoft 3.2s infinite ease-in-out;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__toggle:hover,
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__toggle:focus-visible,
    .bwl-nav--preset-modern.bwl-nav--bp-tablet.is-open .bwl-nav__toggle {
        background: var(--bwl-modern-accent-dark);
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.is-open .bwl-nav__toggle {
        animation: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__hamburger {
        width: 20px;
        height: 14px;
        flex-basis: 20px;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__toggle-text {
        font-size: 8px;
        font-weight: 700;
        letter-spacing: .08em;
        line-height: 1;
        color: #fff;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.is-open .bwl-nav__toggle-text {
        font-size: 7px;
        letter-spacing: .05em;
    }
}

/* Same Modern Panel treatment when the responsive breakpoint is mobile-only. */
@media (max-width: 767px) {
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__panel,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__menu,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__menu ul,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__menu li {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__menu > li.menu-item-has-children > a {
        display: block;
        width: 100%;
        color: var(--bwl-modern-accent);
        background-color: var(--bwl-modern-accent-soft);
        border-left: 4px solid var(--bwl-modern-accent);
        border-top: 1px solid #d6e2f3;
        border-bottom: 1px solid #d6e2f3;
        border-radius: 0;
        font-weight: 800;
        padding: 10px 14px 14px;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__submenu {
        width: 100%;
        min-width: 0 !important;
        max-width: 100%;
        margin: 0;
        padding: 3px 0 5px;
        background: #f8fbff;
        border: 0;
        border-bottom: 1px solid #dce7f5;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title > a {
        color: var(--bwl-modern-accent);
        background: var(--bwl-modern-group-mobile-bg);
        font-size: 9.5px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
        padding: 6px 10px;
        border-left: 4px solid var(--bwl-modern-group-bar);
        border-radius: 0;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__submenu li:not(.menu-group-title) > a {
        position: relative;
        width: 100%;
        color: #10213f;
        background: #fff;
        font-size: 13px;
        font-weight: 500;
        padding: 8px 12px 8px 44px;
        min-height: 34px;
        margin: 0;
        border-bottom: 1px solid #e8eef6;
        border-radius: 0;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) {
        position: relative;
        background: #fff;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title)::before {
        content: "";
        position: absolute;
        left: 20px;
        top: 0;
        bottom: 0;
        width: 1.5px;
        background: var(--bwl-modern-tree);
        z-index: 3;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::before {
        content: "";
        position: absolute;
        left: 20px;
        top: 50%;
        width: 10px;
        height: 1.5px;
        background: var(--bwl-modern-tree);
        transform: translateY(-50%);
        z-index: 4;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::after {
        content: "";
        position: absolute;
        left: 20px;
        top: 50%;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--bwl-modern-accent);
        transform: translate(-50%, -50%);
        z-index: 5;
        pointer-events: none;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__toggle {
        width: 54px;
        min-width: 54px;
        height: 50px;
        min-height: 50px;
        padding: 6px 6px 5px;
        flex-direction: column;
        gap: 5px;
        background: var(--bwl-modern-accent);
        border-radius: 12px;
        color: #fff;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--toggle-pulse .bwl-nav__toggle {
        animation: bwlNavToggleSoft 3.2s infinite ease-in-out;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__toggle:hover,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__toggle:focus-visible,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile.is-open .bwl-nav__toggle {
        background: var(--bwl-modern-accent-dark);
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.is-open .bwl-nav__toggle {
        animation: none;
    }
}

@keyframes bwlNavToggleSoft {
    0%, 100% { background-color: var(--bwl-modern-accent); }
    50% { background-color: var(--bwl-modern-accent-mid); }
}

@media (max-width: 390px) {
    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__menu > li.menu-item-has-children > a,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__menu > li.menu-item-has-children > a {
        font-size: 13.5px;
        padding: 9px 12px 13px;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet .bwl-nav__submenu li:not(.menu-group-title) > a,
    .bwl-nav--preset-modern.bwl-nav--bp-mobile .bwl-nav__submenu li:not(.menu-group-title) > a {
        font-size: 12.8px;
        min-height: 32px;
        padding: 7px 9px 7px 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bwl-nav--preset-modern .bwl-nav__toggle,
    .bwl-nav--preset-modern .bwl-nav__menu > li > a,
    .bwl-nav--preset-modern .bwl-nav__submenu a,
    .bwl-nav--preset-modern .bwl-nav__submenu a::before {
        animation: none !important;
        transition: none !important;
    }
}

/* =========================================================
 * dev.11 — responsive panel escape
 *
 * Elementor can size the menu widget itself to only the hamburger width.
 * A percentage-width panel would then inherit that narrow column and force
 * labels to wrap one syllable/word fragment at a time. On responsive layouts
 * the panel therefore escapes the widget width and spans the viewport while
 * remaining anchored below the menu toggle. JS supplies the exact horizontal
 * offset/client width only while the menu is open, so no global layout or
 * body overflow rule is required.
 * ========================================================= */
@media (max-width: 1024px) {
    .bwl-nav--bp-tablet .bwl-nav__panel {
        position: absolute;
        top: calc(100% + 8px);
        left: calc(-1 * var(--bwl-nav-mobile-offset-x, 0px));
        right: auto;
        width: var(--bwl-nav-mobile-width, 100vw);
        max-width: none;
        max-height: var(--bwl-nav-mobile-max-height, calc(100dvh - 88px));
        margin-top: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        box-shadow: 0 16px 32px rgba(15, 39, 71, .10);
    }

    .bwl-nav--bp-tablet .bwl-nav__submenu li:not(.menu-group-title) > a {
        overflow-wrap: break-word;
        word-break: normal;
    }
}

@media (max-width: 767px) {
    .bwl-nav--bp-mobile .bwl-nav__panel {
        position: absolute;
        top: calc(100% + 8px);
        left: calc(-1 * var(--bwl-nav-mobile-offset-x, 0px));
        right: auto;
        width: var(--bwl-nav-mobile-width, 100vw);
        max-width: none;
        max-height: var(--bwl-nav-mobile-max-height, calc(100dvh - 88px));
        margin-top: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        box-shadow: 0 16px 32px rgba(15, 39, 71, .10);
    }

    .bwl-nav--bp-mobile .bwl-nav__submenu li:not(.menu-group-title) > a {
        overflow-wrap: break-word;
        word-break: normal;
    }
}


/* =========================================================
 * dev.12 — mobile clipping escape
 *
 * Some Elementor/GeneratePress header container chains apply overflow/clip
 * at an intermediate wrapper. The panel can have the correct 100vw geometry
 * and still be visually cropped to the hamburger/widget column. While the
 * responsive menu is open, JS marks only the ancestors between this nav and
 * the BW site-header. These temporary classes remove that clipping and are
 * removed immediately when the menu closes or returns to desktop.
 * ========================================================= */
@media (max-width: 1024px) {
    .bwl-nav-mobile-overflow-host {
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        clip-path: none !important;
        contain: none !important;
    }

    .bwl-nav--bp-tablet.is-open .bwl-nav__panel {
        width: var(--bwl-nav-mobile-width, 100vw) !important;
        min-width: var(--bwl-nav-mobile-width, 100vw) !important;
        max-width: none !important;
        z-index: 2147483000;
        isolation: isolate;
    }

    .bwl-nav--bp-tablet.is-open .bwl-nav__menu,
    .bwl-nav--bp-tablet.is-open .bwl-nav__menu ul,
    .bwl-nav--bp-tablet.is-open .bwl-nav__menu li {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .bwl-nav--bp-tablet.is-open .bwl-nav__menu a {
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }
}

@media (max-width: 767px) {
    .bwl-nav--bp-mobile.is-open .bwl-nav__panel {
        width: var(--bwl-nav-mobile-width, 100vw) !important;
        min-width: var(--bwl-nav-mobile-width, 100vw) !important;
        max-width: none !important;
        z-index: 2147483000;
        isolation: isolate;
    }

    .bwl-nav--bp-mobile.is-open .bwl-nav__menu,
    .bwl-nav--bp-mobile.is-open .bwl-nav__menu ul,
    .bwl-nav--bp-mobile.is-open .bwl-nav__menu li {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .bwl-nav--bp-mobile.is-open .bwl-nav__menu a {
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }
}

/* =========================================================
 * dev.13 — responsive opening styles
 *
 * One menu engine, four panel behaviours. Full Width preserves dev.12 exactly.
 * Slide Left / Right add a lightweight off-canvas treatment with a backdrop.
 * Full Screen fills the viewport below the header. No mega-menu layout,
 * extra library, body scroll lock, AJAX, or additional script is introduced.
 * ========================================================= */
.bwl-nav__backdrop {
    display: none;
}

@media (max-width: 1024px) {
    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-left .bwl-nav__backdrop,
    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-right .bwl-nav__backdrop {
        display: block;
        position: fixed;
        top: var(--bwl-nav-mobile-panel-top, 72px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 2147482998;
        background: rgba(8, 18, 33, .42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .22s ease, visibility .22s ease;
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-left.is-open .bwl-nav__backdrop,
    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-right.is-open .bwl-nav__backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-left .bwl-nav__panel,
    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-right .bwl-nav__panel {
        display: block !important;
        position: fixed !important;
        top: var(--bwl-nav-mobile-panel-top, 72px) !important;
        bottom: 0 !important;
        width: min(var(--bwl-nav-side-width, 86vw), 440px) !important;
        min-width: 0 !important;
        max-width: min(var(--bwl-nav-side-width, 86vw), 440px) !important;
        max-height: none !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: var(--bwl-nav-bg);
        z-index: 2147483000 !important;
        visibility: hidden;
        pointer-events: none;
        transition: transform .24s ease, visibility .24s ease;
        will-change: transform;
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-left .bwl-nav__panel {
        left: 0 !important;
        right: auto !important;
        transform: translate3d(-104%, 0, 0);
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-right .bwl-nav__panel {
        left: auto !important;
        right: 0 !important;
        transform: translate3d(104%, 0, 0);
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-left.is-open .bwl-nav__panel,
    .bwl-nav--bp-tablet.bwl-nav--mobile-slide-right.is-open .bwl-nav__panel {
        transform: translate3d(0, 0, 0);
        visibility: visible;
        pointer-events: auto;
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-fullscreen .bwl-nav__panel {
        display: block !important;
        position: fixed !important;
        top: var(--bwl-nav-mobile-panel-top, 72px) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;
        max-height: none !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: var(--bwl-nav-bg);
        z-index: 2147483000 !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate3d(0, -8px, 0);
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }

    .bwl-nav--bp-tablet.bwl-nav--mobile-fullscreen.is-open .bwl-nav__panel {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 767px) {
    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-left .bwl-nav__backdrop,
    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-right .bwl-nav__backdrop {
        display: block;
        position: fixed;
        top: var(--bwl-nav-mobile-panel-top, 72px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 2147482998;
        background: rgba(8, 18, 33, .42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .22s ease, visibility .22s ease;
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-left.is-open .bwl-nav__backdrop,
    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-right.is-open .bwl-nav__backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-left .bwl-nav__panel,
    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-right .bwl-nav__panel {
        display: block !important;
        position: fixed !important;
        top: var(--bwl-nav-mobile-panel-top, 72px) !important;
        bottom: 0 !important;
        width: var(--bwl-nav-side-width, 86vw) !important;
        min-width: 0 !important;
        max-width: var(--bwl-nav-side-width, 86vw) !important;
        max-height: none !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: var(--bwl-nav-bg);
        z-index: 2147483000 !important;
        visibility: hidden;
        pointer-events: none;
        transition: transform .24s ease, visibility .24s ease;
        will-change: transform;
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-left .bwl-nav__panel {
        left: 0 !important;
        right: auto !important;
        transform: translate3d(-104%, 0, 0);
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-right .bwl-nav__panel {
        left: auto !important;
        right: 0 !important;
        transform: translate3d(104%, 0, 0);
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-left.is-open .bwl-nav__panel,
    .bwl-nav--bp-mobile.bwl-nav--mobile-slide-right.is-open .bwl-nav__panel {
        transform: translate3d(0, 0, 0);
        visibility: visible;
        pointer-events: auto;
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-fullscreen .bwl-nav__panel {
        display: block !important;
        position: fixed !important;
        top: var(--bwl-nav-mobile-panel-top, 72px) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;
        max-height: none !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: var(--bwl-nav-bg);
        z-index: 2147483000 !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate3d(0, -8px, 0);
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }

    .bwl-nav--bp-mobile.bwl-nav--mobile-fullscreen.is-open .bwl-nav__panel {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate3d(0, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bwl-nav__backdrop,
    .bwl-nav--mobile-slide-left .bwl-nav__panel,
    .bwl-nav--mobile-slide-right .bwl-nav__panel,
    .bwl-nav--mobile-fullscreen .bwl-nav__panel {
        transition: none !important;
    }
}


/* =========================================================
 * dev.14 — Modern mobile submenu rhythm + tree-guide restore
 *
 * The desktop group-title dimensions were still leaking into responsive
 * panels. That left a large blank area around section labels. The tree stem
 * also sat below each white link surface, so only the dots/connectors were
 * visible. Responsive Modern Panel now resets the group heading box model and
 * layers the tree stem/connectors above the row background without affecting
 * click targets.
 * ========================================================= */
@media (max-width: 1024px) {
    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title > a {
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 4px 0 0 !important;
        padding: 6px 10px !important;
        box-sizing: border-box;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title:first-child > a {
        margin-top: 0 !important;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title)::before {
        z-index: 7;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::before {
        z-index: 8;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-tablet.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::after {
        z-index: 9;
    }
}

@media (max-width: 767px) {
    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title > a {
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 4px 0 0 !important;
        padding: 6px 10px !important;
        box-sizing: border-box;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--group-titles .bwl-nav__submenu li.menu-group-title:first-child > a {
        margin-top: 0 !important;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title)::before {
        z-index: 7;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::before {
        z-index: 8;
    }

    .bwl-nav--preset-modern.bwl-nav--bp-mobile.bwl-nav--mobile-tree .bwl-nav__submenu li:not(.menu-group-title) > a::after {
        z-index: 9;
    }
}
