/* =========================================================
   MOBILES MENUE (bis 1249px)

   Markup: mysyde/frontend/frontend_mysyde.php (#hamburger-menu),
   Aufklappen der Bereiche und Oeffnen/Schliessen: Skript am Ende derselben
   Datei. Die aelteren Regeln fuer .hamburger-menu in bc-style.min.css und
   ek.css (blaue Liste, zentriert, Icons ausgeblendet) werden hier
   ueberschrieben - daher die IDs und einige !important.
   ========================================================= */

@media (max-width: 1249px) {

    /* Flaeche unter der Kopfleiste bis zum unteren Rand, eigener Scroll */
    #hamburger-menu {
        display: none;
        position: fixed;
        top: var(--mobile-menu-top, 70px);
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        height: auto;
        /* unten Platz fuer die feste Leiste #area-9 (63px) */
        padding: 8px 16px calc(96px + env(safe-area-inset-bottom, 0px));
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: #f5f9fd;
        color: #1f2d3d;
        border-top: 1px solid #d6e2ef;
        z-index: 999;
        text-align: left;
    }

    #hamburger-menu.is-open {
        display: block;
    }

    /* Tablet: Inhalt nicht ueber die ganze Breite ziehen */
    #hamburger-menu > .mobile-nav,
    #hamburger-menu > .mobile-nav__quick {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
    }

    html.mobile-menu-open,
    html.mobile-menu-open body {
        overflow: hidden;
    }

    /* Kontrast-Knopf (fest oben rechts) liegt sonst ueber dem Menue */
    html.mobile-menu-open #accessibility-bar {
        display: none;
    }

    /* ---------- Bereiche ---------- */

    #hamburger-menu .mobile-nav {
        overflow: visible;
    }

    #hamburger-menu .mobile-nav ul {
        display: block;
        margin: 0;
        padding: 0;
        list-style: none;
        background: transparent;
        text-align: left;
    }

    #hamburger-menu .mobile-nav li.level_1 {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        border-bottom: 1px solid #d6e2ef !important;
    }

    #hamburger-menu .mobile-nav li.level_1 > a {
        display: block;
        padding: 16px 4px !important;
        font-size: 18px;
        font-weight: 600;
        line-height: 1.3;
        color: var(--primary-accent, #275b91) !important;
        text-decoration: none;
    }

    #hamburger-menu .mobile-nav li.level_1 > a.active_tree,
    #hamburger-menu .mobile-nav li.level_1 > a.active {
        text-decoration: underline;
        text-underline-offset: 4px;
    }

    /* Knopf zum Aufklappen */
    #hamburger-menu .mobile-nav__toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 10px;
        background: transparent !important;
        color: var(--primary-accent, #275b91);
        cursor: pointer;
    }

    #hamburger-menu .mobile-nav__toggle::before {
        content: "";
        width: 10px;
        height: 10px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: translateY(-3px) rotate(45deg);
        transition: transform 0.2s ease;
    }

    #hamburger-menu li.is-expanded > .mobile-nav__toggle {
        background: #e4f2ff !important;
    }

    #hamburger-menu li.is-expanded > .mobile-nav__toggle::before {
        transform: translateY(3px) rotate(-135deg);
    }

    /* Unterseiten */
    #hamburger-menu .mobile-nav ul.level_2 {
        grid-column: 1 / -1;
        display: none;
        margin: 0 0 14px;
        padding: 2px 0 2px 14px;
    }

    #hamburger-menu .mobile-nav li.is-expanded > ul.level_2 {
        display: block;
    }

    #hamburger-menu .mobile-nav ul.level_2 li {
        display: block;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
    }

    #hamburger-menu .mobile-nav ul.level_2 a {
        display: block;
        padding: 10px 6px !important;
        color: #1f2d3d !important;
        font-size: 16px;
        line-height: 1.35;
        text-decoration: none;
    }

    #hamburger-menu .mobile-nav ul.level_2 a.active,
    #hamburger-menu .mobile-nav ul.level_2 a.active_tree {
        color: var(--primary-accent, #275b91) !important;
        font-weight: 600;
    }

    #hamburger-menu .mobile-nav .level_2_title {
        margin: 0;
        font: inherit;
        color: inherit;
    }

    #hamburger-menu .mobile-nav .nav_description:empty {
        display: none;
    }

    #hamburger-menu .mobile-nav a:focus-visible,
    #hamburger-menu .mobile-nav__toggle:focus-visible {
        outline: 3px solid var(--primary-accent, #275b91);
        outline-offset: 2px;
        border-radius: 6px;
    }

    /* ---------- Schnellzugriff (wie im Desktop-Menue) ---------- */

    #hamburger-menu .mobile-nav__quick {
        margin-top: 24px;
    }

    #hamburger-menu .mobile-nav__heading {
        margin: 0 0 10px;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: #5a6b7d;
    }

    #hamburger-menu .header__col-contact .collection_wrapper {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin: 0;
        padding: 0;
        list-style: none;
        background: transparent !important;
    }

    #hamburger-menu .header__col-contact .collection_wrapper > li {
        display: block;
        margin: 0;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
    }

    /* ungerade Anzahl: letzter Knopf ueber die ganze Breite */
    #hamburger-menu .header__col-contact .collection_wrapper > li:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    #hamburger-menu .header__col-contact article.collection_list {
        position: relative;
        display: block;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        background: transparent;
    }

    #hamburger-menu .header__col-contact .collection_container {
        display: flex;
        flex-direction: row !important;
        justify-content: flex-start !important;
        align-items: center;
        gap: 10px;
        width: 100%;
        height: 100%;
        min-height: 56px;
        margin: 0;
        padding: 10px 12px;
        border-radius: 12px;
        background: var(--primary-accent, #275b91);
        text-align: left;
    }

    #hamburger-menu .header__col-contact .header__col-contact__img {
        order: -1;
        flex: 0 0 auto;
    }

    #hamburger-menu .header__col-contact .collection_container img {
        display: block;
        width: 22px;
        height: 22px;
        object-fit: contain;
    }

    #hamburger-menu .header__col-contact h3.collection_content {
        margin: 0;
        width: auto;
        color: #fff;
        font-size: 15px;
        font-weight: 500;
        line-height: 1.25;
        text-align: left;
        hyphens: auto;
        overflow-wrap: anywhere;
    }

    #hamburger-menu .header__col-contact .collection_container:focus-within {
        outline: 3px solid #1f2d3d;
        outline-offset: 2px;
    }

    /* Hoher Kontrast (main/accessibility.css): Knoepfe weiss mit Rahmen */
    body.high-contrast #hamburger-menu .header__col-contact .collection_container {
        background: #fff;
        border: 2px solid #000;
    }

    body.high-contrast #hamburger-menu .header__col-contact h3.collection_content {
        color: #000;
    }

    body.high-contrast #hamburger-menu .header__col-contact .collection_container img {
        filter: invert(1);
    }
}
