/* Zashita mobile interaction fixes — 2026-08-29 */

.zs-menu-heading,
.zs-submenu-toggle {
    appearance: none;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    font: inherit;
}

.zs-accessibility-panel[hidden] {
    display: none !important;
}

.zs-accessibility-panel {
    background: #fff;
    border: 2px solid #4484c5;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .3);
    color: #202020;
    direction: ltr;
    inset: 20px;
    margin: auto;
    max-height: calc(100vh - 40px);
    max-width: 390px;
    overflow: auto;
    padding: 24px;
    position: fixed;
    z-index: 2147483646;
}

.zs-accessibility-panel__header {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.zs-accessibility-panel__title {
    font-size: 22px;
    font-weight: 700;
    margin: 0;
}

.zs-accessibility-panel button {
    align-items: center;
    background: #fff;
    border: 2px solid #4484c5;
    border-radius: 8px;
    color: #1d4f80;
    cursor: pointer;
    display: flex;
    font-size: 16px;
    justify-content: center;
    min-height: 48px;
    padding: 10px 14px;
    width: 100%;
}

.zs-accessibility-panel button + button {
    margin-top: 10px;
}

.zs-accessibility-panel button[aria-pressed="true"] {
    background: #1d4f80;
    color: #fff;
}

.zs-accessibility-panel .zs-accessibility-close {
    border-radius: 50%;
    flex: 0 0 48px;
    font-size: 28px;
    padding: 0;
    width: 48px;
}

html.zs-a11y-large-text {
    font-size: 120% !important;
}

html.zs-a11y-high-contrast,
html.zs-a11y-high-contrast body {
    background: #000 !important;
    color: #fff !important;
}

html.zs-a11y-high-contrast body *:not(img):not(svg):not(path) {
    background-color: #000 !important;
    border-color: #ffeb3b !important;
    color: #fff !important;
}

html.zs-a11y-high-contrast a {
    color: #ffeb3b !important;
}

html.zs-a11y-grayscale body {
    filter: grayscale(1);
}

html.zs-a11y-underline-links a {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
}

html.zs-a11y-stop-motion *,
html.zs-a11y-stop-motion *::before,
html.zs-a11y-stop-motion *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
}

#site123-accessibility-widget {
    display: none !important;
}

.fixed-banner.close {
    pointer-events: none !important;
}

@media (max-width: 991.98px) {
    .access-widget-container {
        align-items: center;
        cursor: pointer;
        height: 56px;
        justify-content: center;
        padding: 6px !important;
        width: 56px;
    }

    .access-widget-container img {
        height: 44px !important;
        width: 44px !important;
    }

    /* Beats the later theme .lang { top:150px!important } at <=768px. */
    body .lang {
        height: 44px !important;
        right: 8px !important;
        top: 116px !important;
        width: 44px !important;
    }

    .menu-icon {
        height: 44px !important;
        min-height: 44px;
        min-width: 44px;
        width: 44px !important;
    }

    .mobile-menu {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        padding: 84px 16px 80px !important;
    }

    .mobile-menu .menu {
        margin: 0;
        padding: 0;
        width: 100%;
    }

    .mobile-menu .menu li {
        line-height: 1.35 !important;
        margin: 0 !important;
        position: relative;
    }

    .mobile-menu .menu li > a,
    .mobile-menu .menu li > .zs-menu-heading {
        align-items: center;
        display: flex;
        min-height: 44px;
        padding: 10px 48px 10px 10px;
        text-align: left;
        width: 100%;
    }

    .mobile-menu .menu li.menu-item-has-children > a {
        padding-right: 10px;
        width: calc(100% - 44px);
    }

    .mobile-menu .menu li > .zs-menu-heading::after {
        content: "+";
        font-size: 22px;
        position: absolute;
        right: 14px;
    }

    .mobile-menu .menu li.zs-submenu-open > .zs-menu-heading::after {
        content: "−";
    }

    .mobile-menu .menu li > .sub-menu {
        display: none;
        margin: 0 0 4px 14px !important;
        padding: 0;
    }

    .mobile-menu .menu li.zs-submenu-open > .sub-menu {
        display: block;
    }

    .mobile-menu .zs-submenu-toggle {
        align-items: center;
        display: flex;
        font-size: 22px;
        height: 44px;
        justify-content: center;
        position: absolute;
        right: 0;
        top: 0;
        width: 44px;
        z-index: 2;
    }

    .mobile-menu .zs-submenu-toggle::before {
        content: "+";
    }

    .mobile-menu li.zs-submenu-open > .zs-submenu-toggle::before {
        content: "−";
    }

    .fixed-contacts .item {
        min-height: 60px;
        position: relative;
    }

    .fixed-contacts .item a::before {
        content: "";
        inset: 0;
        position: absolute;
    }

    .fixed-contacts .item a {
        align-items: center;
        display: flex;
        height: 60px;
        justify-content: center;
        min-width: 44px;
    }

    .footer-callback-item,
    .popup__close,
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"] {
        min-height: 44px;
        min-width: 44px;
    }
}

/* v4: live popup z99 was below language z1000 and floating chat z999. */
#popupNotBother {
    z-index: 2147483645 !important;
}
@media (max-width: 991.98px) {
    #popupNotBother .popup__body {
        box-sizing: border-box;
        max-width: calc(100% - 32px);
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        padding-top: 60px;
    }
    #popupNotBother .popup__close {
        align-items: center;
        box-sizing: border-box;
        display: flex;
        height: 44px !important;
        justify-content: center;
        right: 8px !important;
        top: 8px !important;
        width: 44px !important;
        z-index: 1;
    }
}

/* v5 candidate: bound each menu row to the visible container, not min-content. */
@media (max-width: 991.98px) {
    .mobile-menu > .container {
        box-sizing: border-box;
        flex: 0 1 100%;
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }

    .mobile-menu .menu li,
    .mobile-menu .menu li > .sub-menu {
        box-sizing: border-box;
        min-width: 0;
        max-width: 100%;
    }

    .mobile-menu .menu li > a,
    .mobile-menu .menu li > .zs-menu-heading {
        box-sizing: border-box;
        min-width: 0;
        overflow-wrap: anywhere;
    }
}
/* ZS-B46: move the fixed right-side icons down by 20% of the viewport height.
   Owner request 2026-08-31 (Morgan), confirmed from a phone screenshot at 21:25.

   This is not only cosmetic. TODAY the language switcher covers the site-search button:
   at 360x640 the switcher occupies y116-160 x308-352 and the search submit occupies y139-183
   x298-360, and elementFromPoint at the button's centre returns span.lang__text — so a
   Russian-speaking visitor who types a query and taps "Найти" is sent to the Hebrew site instead
   of searching. Measured at 360x640, 390x844 and 414x896. With this rule applied the topmost
   element at the button centre becomes input.search-submit and search works.

   margin-top is used rather than transform: it shifts a top-anchored fixed element by the same
   amount without creating a containing block or a compositing layer, and it leaves `transform`
   free for the theme (.fixed-banner already animates with one).

   SCOPE: the two icons that live in this document. The chat bubble is an amoCRM widget injected
   at runtime by gso.amocrm.ru and is NOT addressed here — see ZS-B46-ADDENDUM-5.
   The WhatsApp/phone bar is out of scope by the owner's explicit instruction. */
@media (max-width: 991.98px) {
    body .access-widget-container,
    body .lang {
        margin-top: 20vh !important;
    }
}
