/* =========================================================================
 * MODUL: FOOTER (Modulares Spalten-Layout & Bottom-Bar)
 * ========================================================================= */

.rm24-site-footer {
    background-color: var(--rm24-footer-bg, #2b2e34) !important;
    color: var(--rm24-footer-text, #cbd5e1);
    box-sizing: border-box;
    width: 100%;
    margin-top: auto;
}

.rm24-footer-main {
    padding: var(--rm24-footer-padding, 20px 0 40px 0);
    background-color: inherit;
}

.rm24-footer-container {
    max-width: var(--rm24-container-width, 1280px);
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

/* Dynamisches Grid für bis zu 5 Spalten - mit display: grid erzwungen */
.rm24-footer-grid {
    display: grid !important;
    grid-template-columns: repeat(var(--footer-columns-count, 4), minmax(0, 1fr)) !important;
    gap: var(--rm24-footer-gap, 30px) !important;
    width: 100% !important;
    box-sizing: border-box;
    align-items: start;
}

.rm24-footer-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
    min-width: 0; /* Verhindert das Ausbrechen langer Inhalte */
}

/* Widgets & Block-Container im Footer */
.rm24-footer-widget {
    box-sizing: border-box;
    width: 100%;
}

.rm24-footer-widget-title,
.rm24-site-footer .widget-title {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    margin: 0 0 16px 0 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Kacheln im Footer transparent halten & Rahmen entfernen */
.rm24-site-footer .rm24-block-card,
.rm24-site-footer .wp-block-group,
.rm24-site-footer .rm24-footer-widget {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

/* Titel im Footer */
.rm24-site-footer .rm24-menu-title,
.rm24-site-footer .rm24-block-heading,
.rm24-site-footer h1,
.rm24-site-footer h2,
.rm24-site-footer h3,
.rm24-site-footer h4 {
    color: #ffffff !important;
    margin-bottom: 16px !important;
}

/* Fliess- und Infotexte */
.rm24-site-footer .rm24-block-paragraph,
.rm24-site-footer p,
.rm24-site-footer span {
    color: var(--rm24-footer-text, #cbd5e1);
    font-size: 14px;
    line-height: 1.6;
}

/* Links */
.rm24-site-footer .rm24-menu-item a,
.rm24-site-footer a {
    color: var(--rm24-footer-link-color, #94a3b8) !important;
    transition: color 0.15s ease;
}

.rm24-site-footer .rm24-menu-item a:hover,
.rm24-site-footer a:hover {
    color: var(--rm24-footer-link-hover, var(--rm24-accent-color, #0090bb)) !important;
}

/* Trennlinie */
.rm24-footer-divider {
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin: 0;
}

/* Bottom Bar */
.rm24-footer-bottom {
    background-color: var(--rm24-footer-bottom-bg, #202227) !important;
    padding: 16px 0;
    font-size: 13px;
    color: #94a3b8;
}

.rm24-footer-bottom-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.rm24-footer-legal-links {
    display: flex;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rm24-footer-legal-links a {
    color: inherit !important;
    text-decoration: none;
}

.rm24-footer-legal-links a:hover {
    color: #ffffff !important;
}

/* Responsives Verhalten */
@media (max-width: 1024px) {
    .rm24-footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    .rm24-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .rm24-footer-bottom-inner {
        flex-direction: column;
        text-align: center;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .rm24-footer-grid {
        grid-template-columns: 1fr !important;
    }
}
/* Klassische Menü-Widgets (Navigationsmenü) wie die RM24-Menükarte darstellen */
.rm24-site-footer .widget_nav_menu ul,
.rm24-site-footer .wp-block-navigation ul,
.rm24-site-footer .wp-block-page-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rm24-site-footer .widget_nav_menu ul ul {
    margin-top: 8px !important;
}

.rm24-site-footer .widget_nav_menu li {
    margin: 0;
    padding: 0;
    font-size: 14px;
    line-height: 1.5;
}

.rm24-site-footer .widget_nav_menu a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Spalte mit zentrierter Menükarte: alle Menüs der Spalte zentrieren */
.rm24-footer-column:has(.rm24-block-menu-card.align-center) .widget_nav_menu,
.rm24-footer-column:has(.rm24-block-menu-card.align-center) .rm24-footer-widget-title {
    text-align: center;
}

.rm24-footer-column:has(.rm24-block-menu-card.align-center) .widget_nav_menu ul {
    align-items: center;
}

/* Untermenü-Einzug nur bei linksbündigen Menüs */
.rm24-block-menu-list.align-center .rm24-menu-item.menu-item-depth-1,
.rm24-block-menu-list.align-center .rm24-menu-item.menu-item-depth-2,
.rm24-block-menu-list.align-right .rm24-menu-item.menu-item-depth-1,
.rm24-block-menu-list.align-right .rm24-menu-item.menu-item-depth-2 {
    margin-left: 0;
}

/* Kästen mit eigenem hellen Hintergrund (z. B. Newsletter-Formular): dunkle Schrift */
.rm24-site-footer .has-bg,
.rm24-site-footer .has-background:not(.has-text-color) {
    color: #1f2937;
}

.rm24-site-footer .has-bg :is(p, span, label, li, small, strong, h1, h2, h3, h4, h5, h6),
.rm24-site-footer .has-background:not(.has-text-color) :is(p, span, label, li, small, strong, h1, h2, h3, h4, h5, h6) {
    color: #1f2937 !important;
}

.rm24-site-footer .has-bg a:not(.button):not(.wp-element-button),
.rm24-site-footer .has-background:not(.has-text-color) a:not(.button):not(.wp-element-button) {
    color: var(--rm24-accent-color, #0090bb) !important;
}

/* Einheitliche Abstände: alle Spalten beginnen auf derselben Höhe */
.rm24-site-footer .rm24-footer-column {
    gap: 0;
}

.rm24-site-footer .rm24-footer-widget > :first-child,
.rm24-site-footer .rm24-footer-widget > :first-child > :first-child {
    margin-top: 0 !important;
}

.rm24-site-footer .rm24-footer-widget > :last-child {
    margin-bottom: 0 !important;
}

.rm24-site-footer .rm24-footer-widget + .rm24-footer-widget {
    margin-top: 12px !important;
}

/* Überschriften im Footer gleich gestaltet, egal ob Block oder Widget-Titel */
.rm24-site-footer .rm24-footer-widget-title,
.rm24-site-footer .widget-title,
.rm24-site-footer .rm24-footer-widget > h2:first-child,
.rm24-site-footer .rm24-footer-widget > h3:first-child,
.rm24-site-footer .rm24-footer-widget > h4:first-child,
.rm24-site-footer .rm24-footer-widget .wp-block-heading {
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin: 0 0 12px 0 !important;
}

/* Überschrift zwischen zwei Abschnitten derselben Spalte bekommt Luft nach oben */
.rm24-site-footer .rm24-footer-widget + .rm24-footer-widget > .wp-block-heading:first-child,
.rm24-site-footer .rm24-footer-widget + .rm24-footer-widget > .rm24-footer-widget-title {
    margin-top: 16px !important;
}

.rm24-site-footer .rm24-footer-widget p {
    margin: 0 0 12px 0;
}

/* Footer-Links ohne Unterstreichung */
.rm24-site-footer a {
    text-decoration: none !important;
}

.rm24-site-footer a:hover {
    text-decoration: underline !important;
}

.rm24-site-footer .rm24-footer-widget > .wp-block-heading:only-child,
.rm24-site-footer .rm24-footer-widget > .wp-block-group:only-child > .wp-block-heading:only-child {
    margin-bottom: 0 !important;
}
