/**
 * Apocalyptic Forge – Navigation Layout (Position, Flex, Reihenfolge)
 * Button-Look: css/style.css (--btn-* Variablen)
 */

.header-container {
    position: relative;
    margin-bottom: var(--gap-columns, 13px) !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.cms-subnav-zone {
    width: 100%;
    max-width: min(100%, var(--layout-max, 1400px));
    box-sizing: border-box;
    margin: 0 auto var(--gap-columns, 13px) auto;
}

.cms-nav-slot {
    width: 100%;
    box-sizing: border-box;
}

.cms-nav-slot.is-empty {
    display: none;
}

/* Ganze Zone verschwindet, wenn sie nur leere Slots enthält (kein Rest-Abstand) */
.cms-subnav-zone:not(:has(.cms-nav-slot:not(.is-empty))) {
    display: none !important;
    margin: 0 !important;
}

#cms-nav-header-top {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    z-index: 1003;
    padding: 6px clamp(8px, 1.2vw, 24px);
}

.cms-subnav-zone .cms-nav-slot--header,
.cms-subnav-zone #cms-nav-header-bottom {
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
}

.cms-subnav-zone #cms-nav-header-bottom:not(.is-empty) {
    margin-top: 4px !important;
}

/* Hauptnavigation – nur Layout */
.cms-subnav-zone .nav-container,
#cms-nav-header-top .nav-container {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 48px;
    margin: 0 !important;
    padding: 10px clamp(8px, 1.2vw, 16px) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    box-sizing: border-box !important;
}

.main-grid {
    align-items: flex-start !important;
}

.side-col,
.center-col {
    align-self: stretch !important;
}

/* Seitenboxen: die letzte Box je Spalte wächst mit der (höheren) Mittelspalte mit –
   nur die Kante/der Rahmen wird höher, der Inhalt bleibt oben unverändert und
   wird nicht gestreckt. */
.side-col {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--gap-columns, 13px) !important;
}

.side-col > .panel-box:last-child {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
}

.side-col > .panel-box:last-child > .box-content {
    flex: 1 1 auto !important;
}

.side-col > .panel-box:first-child,
.center-col > .content-box-middle:first-child {
    margin-top: 0 !important;
}

.side-col > .panel-box {
    margin: 0 !important;
}

.box-content a.side-nav-item,
.content-body a.side-nav-item,
#cms-nav-side a,
.cms-nav-slot--side a {
    color: inherit !important;
    text-decoration: none !important;
}

.box-content #cms-nav-side .side-nav-list,
.box-content .cms-nav-slot--side .side-nav-list,
.content-body #cms-nav-side .side-nav-list,
.content-body .cms-nav-slot--side .side-nav-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}

.box-content #cms-nav-side .side-nav-list li,
.box-content .cms-nav-slot--side .side-nav-list li {
    list-style: none !important;
}

.cms-nav-slot--side .side-nav-list,
.panel-box #cms-nav-side .side-nav-list,
.panel-box .cms-nav-slot--side .side-nav-list {
    list-style: none !important;
    list-style-type: none !important;
    padding: 8px 0 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    background: transparent !important;
}

#cms-nav-side .side-nav-list li,
.cms-nav-slot--side .side-nav-list li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Footer – Layout (Grafik → Nav → Copyright) */
#cms-footer-zone {
    display: flex !important;
    flex-direction: column !important;
}

#cms-footer-zone .footer-frame {
    order: 1;
}

.cms-footer-nav-shell,
#cms-footer-zone .cms-nav-slot--footer:not(.is-empty) {
    order: 2;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#cms-footer-zone .footer-copyright-clean {
    order: 3;
}

#cms-footer-zone #cms-nav-footer,
#cms-footer-zone .cms-nav-slot--footer {
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

#cms-footer-zone .footer-nav-bar,
.cms-nav-slot--footer .footer-nav-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: min(100%, var(--layout-max, 1400px)) !important;
    margin: 0 auto !important;
    padding: 14px clamp(10px, 2vw, 20px) !important;
    box-sizing: border-box !important;
    background: transparent !important;
}

#cms-footer-zone .footer-nav-sep,
.cms-nav-slot--footer .footer-nav-sep {
    display: none !important;
}

@media (max-width: 1024px) {
    #cms-nav-header-top {
        position: static !important;
    }

    #cms-footer-zone .footer-nav-bar,
    .cms-nav-slot--footer .footer-nav-bar {
        gap: 8px !important;
        padding: 12px 10px !important;
    }
}


/**
 * Footer-Nav Layout (alle Templates) – Positionen footer_top / footer_in / footer / footer_bottom
 */
#cms-footer-zone {
    display: flex !important;
    flex-direction: column !important;
}

.cms-footer-nav-shell--top,
#cms-footer-zone .cms-nav-slot--footer-top:not(.is-empty) {
    order: 1;
}

#cms-footer-zone .footer-frame {
    order: 2;
    position: relative !important;
}

.footer-frame .cms-footer-nav-shell--in {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 3 !important;
    line-height: normal !important;
    pointer-events: none;
}

.footer-frame .cms-footer-nav-shell--in .cms-nav-slot--footer-in {
    position: relative !important;
    width: 100% !important;
    pointer-events: auto;
}

.footer-frame .cms-footer-nav-shell--in .footer-nav-bar,
.footer-frame .cms-footer-nav-shell--in a {
    pointer-events: auto;
}

.cms-footer-nav-shell--main,
#cms-footer-zone .cms-nav-slot--footer:not(.is-empty) {
    order: 3;
}

.cms-footer-nav-shell--bottom,
#cms-footer-zone .cms-nav-slot--footer-bottom:not(.is-empty) {
    order: 4;
}

#cms-footer-zone .footer-copyright-clean {
    order: 5;
}

.cms-footer-nav-shell {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.cms-footer-nav-shell:has(> .cms-nav-slot.is-empty:only-child) {
    display: none !important;
}

#cms-footer-zone #cms-nav-footer-top,
#cms-footer-zone #cms-nav-footer-in,
#cms-footer-zone #cms-nav-footer,
#cms-footer-zone #cms-nav-footer-bottom,
#cms-footer-zone .cms-nav-slot--footer-top,
#cms-footer-zone .cms-nav-slot--footer-in,
#cms-footer-zone .cms-nav-slot--footer,
#cms-footer-zone .cms-nav-slot--footer-bottom {
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

#cms-footer-zone .footer-nav-bar,
.cms-nav-slot--footer-top .footer-nav-bar,
.cms-nav-slot--footer-in .footer-nav-bar,
.cms-nav-slot--footer .footer-nav-bar,
.cms-nav-slot--footer-bottom .footer-nav-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: min(100%, var(--layout-max, 1400px)) !important;
    margin: 0 auto !important;
    padding: 14px clamp(10px, 2vw, 20px) !important;
    box-sizing: border-box !important;
}

#cms-footer-zone .footer-nav-sep,
.cms-nav-slot--footer-top .footer-nav-sep,
.cms-nav-slot--footer-in .footer-nav-sep,
.cms-nav-slot--footer .footer-nav-sep,
.cms-nav-slot--footer-bottom .footer-nav-sep {
    display: none !important;
}

@media (max-width: 1024px) {
    .footer-frame .cms-footer-nav-shell--in {
        position: static !important;
        pointer-events: auto !important;
    }

    .footer-frame .cms-footer-nav-shell--in .cms-nav-slot--footer-in {
        position: static !important;
    }
}
