/* HCTCLIENT01 Mobile Left Drawer + Fixed Full Drill Panels V4 */
body.beoi-mobile-menu-open { overflow: hidden; touch-action: none; }
.beoi-mobile-menu { position: fixed; inset: 0; z-index: var(--hctclient01-z-modal, 99999); display: block; border: 0; background: transparent; }
.beoi-mobile-menu[hidden] { display: none !important; }
.beoi-mobile-menu__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(16,24,40,.62); backdrop-filter: blur(3px); }
.beoi-mobile-menu__panel {
    position: absolute; top: 0; bottom: 0; left: 0; z-index: 2;
    width: min(88vw, 390px); max-width: 100%; display: flex; flex-direction: column;
    overflow: hidden; background: #fff; box-shadow: 18px 0 45px rgba(0,0,0,.22);
}
.beoi-mobile-menu__topbar { position: relative; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 88px; padding: 12px 58px 12px 18px; border-bottom: 1px solid var(--beoi-border); }
.beoi-mobile-menu__logo { display: flex; align-items: center; justify-content: center; width: 80%; max-width: 80%; min-width: 0; }
.beoi-mobile-menu__logo img { display: block; width: 100%; max-width: 100%; height: auto; max-height: 62px; object-fit: contain; }
.beoi-mobile-menu__close { position: absolute; top: 50%; right: 10px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; font: inherit; font-size: var(--hctclient01-icon-size-lg); line-height: 1; cursor: pointer; transform: translateY(-50%); }
.beoi-mobile-menu__close:hover,.beoi-mobile-menu__close:focus-visible { color: var(--beoi-primary); background: rgba(0,0,0,.05); }
.beoi-mobile-menu__body { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow: hidden; padding: 0 18px; }
.beoi-mobile-menu__body > .beoi-language-switcher { flex: 0 0 auto; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--beoi-border); }

/* Strong mobile language active state. */
.beoi-mobile-menu .beoi-language-switcher__link.is-active,
.beoi-mobile-menu .beoi-language-switcher__link[aria-current="page"] {
    border-color: var(--beoi-primary);
    background: var(--beoi-primary);
    color: #fff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--beoi-primary) 18%, transparent);
}

.hctclient01-mobile-drill-head { flex: 0 0 auto; padding: 8px 0; border-bottom: 1px solid var(--beoi-border); }
.hctclient01-mobile-drill-back { display: flex; align-items: center; width: 100%; gap: 10px; min-height: 42px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.hctclient01-mobile-drill-back__icon { flex: 0 0 auto; font-size: var(--hctclient01-icon-size-md); }
.hctclient01-mobile-drill-back [data-hctclient01-mobile-back-label] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-hctclient01-mobile-nav] { position: relative; min-height: 0; flex: 1; overflow: hidden; isolation: isolate; }
[data-hctclient01-mobile-nav] .hctclient01-menu-mobile,[data-hctclient01-mobile-nav] .hct-sub-menu,[data-hctclient01-mobile-nav] .hct-mega-menu,[data-hctclient01-mobile-nav] .hct-mega-menu__items { width: 100%; margin: 0; padding: 0; list-style: none; }
[data-hctclient01-mobile-nav] { position: relative; height: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 24px; }
[data-hctclient01-mobile-nav] .hct-menu-item { position: static !important; border-bottom: 1px solid var(--beoi-border); }
[data-hctclient01-mobile-nav] .hct-menu-item__head { display: flex; align-items: stretch; justify-content: space-between; min-width: 0; }
[data-hctclient01-mobile-nav] .hct-menu-link { flex: 1; min-width: 0; padding: 14px 8px 14px 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
[data-hctclient01-mobile-nav] .hct-menu-link:hover,[data-hctclient01-mobile-nav] .hct-menu-link:focus-visible,[data-hctclient01-mobile-nav] .is-current > .hct-menu-item__head > .hct-menu-link,[data-hctclient01-mobile-nav] .is-active > .hct-menu-item__head > .hct-menu-link { color: var(--beoi-primary); }
[data-hctclient01-mobile-nav] .hct-menu-toggle { display: grid; flex: 0 0 48px; place-items: center; width: 48px; min-height: 48px; border-left: 1px solid var(--beoi-border); }
[data-hctclient01-mobile-nav] .hct-menu-toggle:hover,[data-hctclient01-mobile-nav] .hct-menu-toggle:focus-visible { color: var(--beoi-primary); background: rgba(0,0,0,.04); }
[data-hctclient01-mobile-nav] .hct-menu-arrow { transform: rotate(-45deg); }

/* Panel coordinates are written by JS from the actual nav viewport rectangle. */
[data-hctclient01-mobile-nav] [data-hctclient01-mobile-panel] {
    position: fixed !important;
    top: var(--hct-mobile-panel-top, 0) !important;
    left: var(--hct-mobile-panel-left, 0) !important;
    z-index: 100000;
    display: none;
    width: var(--hct-mobile-panel-width, min(88vw, 390px)) !important;
    min-width: 0 !important;
    max-width: none !important;
    height: var(--hct-mobile-panel-height, 100dvh) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    transform: none !important;
}
[data-hctclient01-mobile-nav] [data-hctclient01-mobile-panel].is-mobile-panel-active { display: block !important; }
[data-hctclient01-mobile-nav] .hct-menu-popup__inner { width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 0 18px 24px; background: #fff; border: 0; box-shadow: none; }

/* Critical reset against base theme absolute/desktop submenu rules. */
[data-hctclient01-mobile-nav] .hct-menu-popup__inner > .hct-sub-menu,
[data-hctclient01-mobile-nav] .hct-menu-popup__inner > .hct-mega-menu {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}
[data-hctclient01-mobile-nav] .hct-mega-menu { display: block; }
[data-hctclient01-mobile-nav] .hct-mega-menu__group { display: block; padding: 0; }
[data-hctclient01-mobile-nav] .hct-mega-menu__title { margin: 0; padding: 14px 0 8px; color: var(--beoi-primary); font-size: var(--hctclient01-text-meta); text-transform: uppercase; }

@media (prefers-reduced-motion: no-preference) {
    .beoi-mobile-menu__backdrop { animation: hctclient01-mobile-backdrop-in 180ms ease both; }
    .beoi-mobile-menu__panel { animation: hctclient01-mobile-panel-in-left 220ms ease both; }
    [data-hctclient01-mobile-nav] [data-hctclient01-mobile-panel].is-mobile-panel-active { animation: hctclient01-mobile-drill-in 180ms ease both; }
}
@keyframes hctclient01-mobile-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hctclient01-mobile-panel-in-left { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes hctclient01-mobile-drill-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
@media (min-width: 992px) { .beoi-mobile-menu { display: none !important; } }


/* V5: active language state applies both outside and inside mobile menu. */
.beoi-language-switcher__link.is-active,
.beoi-language-switcher__link[aria-current="page"] {
    border-color: var(--beoi-primary) !important;
    background: var(--beoi-primary) !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--beoi-primary) 18%, transparent);
    cursor: default;
}

/* Every nested item with a real panel remains a drill row; nested panels never flow inline. */
[data-hctclient01-mobile-nav] [data-hctclient01-mobile-item] > [data-hctclient01-mobile-panel] {
    display: none !important;
}
[data-hctclient01-mobile-nav] [data-hctclient01-mobile-item] > [data-hctclient01-mobile-panel].is-mobile-panel-active {
    display: block !important;
}


/* V6: all drill panels are detached from nested LI elements into one host. */
.hctclient01-mobile-panel-host {
    position: absolute;
    inset: 0;
    z-index: 20;
    overflow: hidden;
    pointer-events: none;
}

.hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel] {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1;
    display: none !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    pointer-events: auto;
}

.hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel].is-mobile-panel-active {
    display: block !important;
}

.hctclient01-mobile-panel-host .hct-menu-popup__inner {
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0 18px 24px;
    background: #fff;
}

/* Nested panels must never remain inside a menu row after JS initialization. */
[data-hctclient01-mobile-nav] [data-hctclient01-mobile-item] > [data-hctclient01-mobile-panel] {
    display: none !important;
}


/* V8 definitive detached-panel reset: panel host is a sibling of root UL. */
/*
 * IMPORTANT:
 * Do not target the detached panel element itself with `.hct-mega-menu`.
 * A mega panel also owns that class. Applying `display: block !important`
 * directly to it overrides both `[hidden]` and the inactive-panel rule,
 * leaving an old drill visible underneath the newly opened branch.
 */
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel] .hct-sub-menu,
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel] .hct-mega-menu:not([data-hctclient01-mobile-panel]),
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel] .hct-mega-menu__items {
    position: static !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    list-style: none !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-menu-item {
    position: static !important;
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid var(--beoi-border) !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-menu-item__head {
    display: flex !important;
    align-items: stretch !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-width: 0 !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-menu-link {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding: 14px 8px 14px 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.4 !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-menu-toggle {
    display: grid !important;
    flex: 0 0 48px !important;
    place-items: center !important;
    width: 48px !important;
    min-height: 48px !important;
    border-left: 1px solid var(--beoi-border) !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-menu-arrow {
    transform: rotate(-45deg) !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host .hct-mega-menu__group {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
}


/* =========================================================
 * V22 — Shared backdrop + single visible drill panel
 * ========================================================= */
.beoi-mobile-menu {
    z-index: 1010;
    pointer-events: none;
}

.beoi-mobile-menu__panel {
    pointer-events: auto;
}

/* The old private backdrop is no longer rendered. */
.beoi-mobile-menu__backdrop {
    display: none !important;
}

.hctclient01-mobile-panel-host {
    pointer-events: none;
}

.hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel].is-mobile-panel-active {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
}


/* =========================================================
 * V24 — definitive inactive-panel guard
 * Keep this block at the very end of the file.
 * It intentionally wins over legacy V4/V5/V6/V8 menu rules.
 * ========================================================= */
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel],
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel][hidden],
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel][aria-hidden="true"],
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel]:not(.is-mobile-panel-active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel].is-mobile-panel-active:not([hidden]),
[data-hctclient01-mobile-nav] .hctclient01-mobile-panel-host > [data-hctclient01-mobile-panel].is-mobile-panel-active[aria-hidden="false"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}


/* =========================================================
 * V25 — Mobile Menu must stay above Shared Backdrop
 * ========================================================= */
:root {
    --hctclient01-ui-z-mobile-menu: 1010;
}

body > [data-beoi-mobile-menu] {
    position: fixed !important;
    inset: 0 !important;
    z-index: var(--hctclient01-ui-z-mobile-menu) !important;
    isolation: isolate;
}

body > [data-beoi-mobile-menu] > .beoi-mobile-menu__panel {
    position: absolute;
    z-index: 1;
}