/* ==========================================================================
   Footer Menu Widget – Desktop Columns + Mobile Accordion
   ========================================================================== */

/* ---- Spalten (Desktop) ----
   Bewusst Multi-Column statt Grid: der Browser verteilt die Menüblöcke auf
   gleich hohe Spalten, statt jedem Block eine eigene Rasterspalte zu geben.
   Sonst reißt eine kurze Rubrik (UPC = 1 Punkt) neben einer langen
   (Recht = 12 Punkte) ein großes Loch in den Footer. */
.bew-fmenu {
    --bew-fmenu-row-gap: 40px;
}

.bew-fmenu__grid {
    column-count: 4;
    column-gap: 30px;
    /* Die Margin des letzten Blocks jeder Spalte wieder abziehen, damit
       unter dem Menü kein zusätzlicher Leerraum entsteht. */
    margin-bottom: calc(var(--bew-fmenu-row-gap) * -1);
}

/* Ein Menüblock wird nie über zwei Spalten zerrissen. */
.bew-fmenu__column {
    -webkit-column-break-inside: avoid;
    break-inside: avoid;
    /* Multi-Column kennt kein row-gap – der Abstand zwischen zwei
       untereinander liegenden Blöcken kommt über die Margin. */
    margin-bottom: var(--bew-fmenu-row-gap);
}

/* ---- Heading (top-level items) ---- */
.bew-fmenu__heading {
    display: block;
    font-weight: 700;
    text-decoration: none;
    color: inherit;
}

.bew-fmenu__heading:hover {
    text-decoration: none;
    color: inherit;
}

/* ---- Sub-items list ---- */
.bew-fmenu__sub {
    list-style: none;
    margin: 0;
    padding: 0;
}

.bew-fmenu__link {
    text-decoration: none;
    color: inherit;
    transition: color .2s ease;
}

.bew-fmenu__link:hover {
    text-decoration: none;
}

/* ---- Header row (heading + toggle) ---- */
.bew-fmenu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ---- Toggle button (hidden on desktop) ---- */
.bew-fmenu__toggle {
    display: none;  /* only visible when accordion is active */
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    line-height: 0;
    flex-shrink: 0;
    margin-left: 8px;
}

.bew-fmenu__toggle svg {
    display: block;
    transition: transform .25s ease;
}

/* Vertical bar of the "+" icon – hidden when open (becomes "−") */
.bew-fmenu__toggle[aria-expanded="true"] .bew-fmenu__icon-v {
    display: none;
}

/* ---- Accordion active state (added via JS) ---- */
.bew-fmenu--accordion .bew-fmenu__grid {
    column-count: 1;
    margin-bottom: 0;
}

/* Im Accordion liegen die Rubriken bündig aufeinander, der Spaltenabstand
   würde die Trennlinien auseinanderziehen. */
.bew-fmenu--accordion .bew-fmenu__column {
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 0;
}

.bew-fmenu--accordion .bew-fmenu__column:last-child {
    border-bottom: none;
}

.bew-fmenu--accordion .bew-fmenu__header {
    padding: 14px 0;
}

.bew-fmenu--accordion .bew-fmenu__toggle {
    display: block;
}

.bew-fmenu--accordion .bew-fmenu__sub {
    overflow: hidden;
    max-height: 0;
    transition: max-height .3s ease, padding .3s ease;
    padding-bottom: 0;
}

.bew-fmenu--accordion .bew-fmenu__sub.is-open {
    max-height: 600px; /* big enough for any submenu */
    padding-bottom: 14px;
}
