/* ==========================================================================
   Mobile navigation (≤767px) — R46
   - no header bar and no ticker on phones: logo + burger sit on the page
   - homepage (dark hero): light logo + light burger; subpages: dark versions
   - burger is fixed; once scrolled it gets a frosted pill so it stays legible
   - menu = light full-screen sheet sliding down from the top, staggered items,
     accordion sub-items, search on top, CTAs at the bottom
   Markup is built by dist/mobileNav.js from the Elementor nav menu.
   ========================================================================== */

.tox-mnav-btn,
.tox-mnav { display: none; }

@media (max-width: 767px) {

    /* ---- no ticker, no bar ---------------------------------------------- */
    #tox-ticker { display: none !important; }
    :root { --tox-ticker-h: 0px !important; }

    html.tox-mnav-ready .elementor-location-header .elementor-element-3e73a56 {
        position: absolute !important;
        top: 0 !important;
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
        border: 0 !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }
    html.tox-mnav-ready .elementor-location-header .elementor-element-3e73a56 > .e-con,
    html.tox-mnav-ready .elementor-location-header .elementor-element-3e73a56 > .e-con-inner {
        background: transparent !important;
        box-shadow: none !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }
    /* Elementor's own toggle, search button and dropdown are replaced */
    html.tox-mnav-ready .elementor-location-header .elementor-menu-toggle,
    html.tox-mnav-ready .elementor-location-header .tox-search-toggle,
    html.tox-mnav-ready .elementor-location-header .elementor-nav-menu--dropdown {
        display: none !important;
    }
    /* subpages: less top offset now that the bar + ticker are gone */
    html.tox-mnav-ready .elementor-location-header + * { margin-top: 84px !important; }
    html.tox-mnav-ready body.page-id-44 .elementor-location-header + * { margin-top: 0 !important; }

    /* ---- hard reset: theme + site styles paint every <button> blue ------- */
    .tox-mnav-btn,
    .tox-mnav-btn:hover,
    .tox-mnav-btn:focus,
    .tox-mnav-btn:active,
    .tox-mnav button,
    .tox-mnav button:hover,
    .tox-mnav button:focus,
    .tox-mnav button:active {
        -webkit-appearance: none !important;
        appearance: none !important;
        background-color: transparent !important;
        background-image: none !important;
        border: 0 !important;
        box-shadow: none !important;
        text-transform: none !important;
        letter-spacing: normal !important;
        min-height: 0 !important;
        line-height: 1 !important;
        text-decoration: none !important;
    }

    /* ---- burger ----------------------------------------------------------- */
    .tox-mnav-btn {
        display: flex !important;
        position: fixed;
        top: var(--tox-mnav-top, 16px);
        right: 12px;
        z-index: 100001;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        max-width: none !important;
        padding: 0 !important;
        border-radius: 14px !important;
        color: #0F172A !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        transition: background-color .35s ease, box-shadow .35s ease, color .35s ease;
    }
    .tox-mnav-btn span {
        display: block !important;
        flex: 0 0 auto;
        width: 22px;
        height: 2px;
        margin: 0;
        border-radius: 2px;
        background: currentColor;
        transform-origin: center;
        transition: transform .5s cubic-bezier(.22, 1, .36, 1), opacity .25s ease, width .35s ease;
    }
    .tox-mnav-btn span:nth-child(2) { width: 16px; align-self: flex-end; margin-right: 12px; }
    .tox-mnav-btn:focus-visible { outline: 2px solid #2278C0; outline-offset: 2px; }

    html.tox-mnav-dark-hero:not(.tox-mnav-scrolled):not(.tox-mnav-open) .tox-mnav-btn { color: #fff !important; }
    html.tox-mnav-scrolled:not(.tox-mnav-open) .tox-mnav-btn {
        background-color: rgba(255, 255, 255, .8) !important;
        -webkit-backdrop-filter: blur(14px) saturate(160%);
        backdrop-filter: blur(14px) saturate(160%);
        box-shadow: 0 6px 24px rgba(15, 23, 42, .12), inset 0 0 0 1px rgba(15, 23, 42, .06) !important;
    }
    html.tox-mnav-open .tox-mnav-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    html.tox-mnav-open .tox-mnav-btn span:nth-child(2) { opacity: 0; transform: scaleX(.2); }
    html.tox-mnav-open .tox-mnav-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* ---- sheet ------------------------------------------------------------ */
    .tox-mnav {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 100000;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: linear-gradient(180deg, #EEF5FF 0%, #FFFFFF 42%);
        border-radius: 0 0 32px 32px;
        box-shadow: 0 30px 60px rgba(15, 23, 42, .18);
        transform: translateY(-100%);
        visibility: hidden;
        transition: transform .45s cubic-bezier(.65, 0, .35, 1), border-radius .45s ease, visibility 0s linear .45s;
    }
    html.tox-mnav-open .tox-mnav {
        transform: none;
        visibility: visible;
        border-radius: 0;
        transition: transform .6s cubic-bezier(.22, 1, .36, 1), border-radius .6s ease;
    }
    html.tox-mnav-open,
    html.tox-mnav-open body { overflow: hidden !important; }

    .tox-mnav__inner {
        min-height: 100%;
        display: flex;
        flex-direction: column;
        padding: 0 24px calc(28px + env(safe-area-inset-bottom, 0px));
        box-sizing: border-box;
    }
    .tox-mnav__top {
        display: flex;
        align-items: center;
        height: calc(var(--tox-mnav-top, 16px) * 2 + 46px);
        flex: 0 0 auto;
    }
    .tox-mnav__logo img { display: block; width: var(--tox-mnav-logo-w, 56px); height: auto; }

    /* staggered entrance for every block inside the sheet */
    .tox-mnav__fx {
        opacity: 0;
        transform: translateY(-12px);
        transition: opacity .2s ease, transform .3s ease;
    }
    html.tox-mnav-open .tox-mnav__fx {
        opacity: 1;
        transform: none;
        transition: opacity .45s ease, transform .6s cubic-bezier(.22, 1, .36, 1);
        transition-delay: calc(120ms + var(--i, 0) * 45ms);
    }

    .tox-mnav .tox-mnav__search {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        height: 50px;
        margin: 4px 0 10px;
        padding: 0 16px;
        border-radius: 14px !important;
        background-color: rgba(255, 255, 255, .9) !important;
        box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .1) !important;
        color: #4B5563 !important;
        font: inherit;
        font-size: 16px !important;
        font-weight: 500 !important;
        justify-content: flex-start !important;
        text-align: left;
        cursor: pointer;
    }
    .tox-mnav__search svg { width: 18px; height: 18px; flex: 0 0 auto; }

    .tox-mnav__list { list-style: none; margin: 0; padding: 0; }
    .tox-mnav__item { border-bottom: 1px solid rgba(15, 23, 42, .08); }
    .tox-mnav__row { display: flex; align-items: center; min-height: 62px; }
    .tox-mnav__link {
        flex: 1 1 auto;
        padding: 14px 0;
        font-size: 24px;
        font-weight: 600;
        line-height: 1.15;
        letter-spacing: -.01em;
        color: #1A1A2E !important;
        text-decoration: none !important;
    }
    .tox-mnav__item.is-current > .tox-mnav__row .tox-mnav__link { color: #2278C0 !important; }
    .tox-mnav .tox-mnav__chev {
        flex: 0 0 auto;
        width: 44px;
        height: 44px;
        margin-right: -10px;
        padding: 0;
        border-radius: 12px !important;
        color: #4B5563 !important;
        display: grid !important;
        place-items: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .tox-mnav__chev svg { width: 18px; height: 18px; transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
    .tox-mnav__item.is-expanded .tox-mnav__chev svg { transform: rotate(180deg); }
    .tox-mnav__chev:focus-visible,
    .tox-mnav__link:focus-visible,
    .tox-mnav__search:focus-visible { outline: 2px solid #2278C0; outline-offset: 2px; }

    .tox-mnav__sub {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows .45s cubic-bezier(.22, 1, .36, 1);
    }
    .tox-mnav__item.is-expanded .tox-mnav__sub { grid-template-rows: 1fr; }
    .tox-mnav__sub > ul { overflow: hidden; list-style: none; margin: 0; padding: 0; }
    .tox-mnav__sub li:last-child { padding-bottom: 14px; }
    .tox-mnav__sub a {
        display: block;
        padding: 9px 0 9px 2px;
        font-size: 17px;
        line-height: 1.3;
        color: #4B5563 !important;
        text-decoration: none !important;
    }
    .tox-mnav__sub a.is-current { color: #2278C0 !important; }

    .tox-mnav__cta {
        margin-top: auto;
        padding-top: 32px;
        display: grid;
        gap: 10px;
    }
    .tox-mnav__cta a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 52px;
        border-radius: 14px;
        font-size: 16px;
        font-weight: 700;
        text-decoration: none !important;
    }
    .tox-mnav__cta .is-primary {
        color: #fff !important;
        background-image: linear-gradient(135deg, #2B5CA8 0%, #2278C0 100%);
        box-shadow: 0 8px 22px rgba(34, 120, 192, .28);
    }
    .tox-mnav__cta .is-secondary {
        color: #2B5CA8 !important;
        background: #fff;
        box-shadow: inset 0 0 0 1.5px #2B5CA8;
    }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
    .tox-mnav,
    html.tox-mnav-open .tox-mnav,
    .tox-mnav__fx,
    html.tox-mnav-open .tox-mnav__fx,
    .tox-mnav__sub,
    .tox-mnav-btn span { transition: none !important; }
}
