/*
=========================================================
   BKV – Einheitliche moderne Typografie
=========================================================
*/

/*
 * Inter wird verwendet, wenn die Schrift über Helix / lokal geladen ist.
 * Falls nicht, greift automatisch die moderne Systemschrift.
 */
:root {
    --bkv-font: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

    --bkv-blue: #007dc3;
    --bkv-blue-dark: #0063c6;
    --bkv-page-bg: #f5f7fa;
    --bkv-surface: #ffffff;
    --bkv-border: #e4e9ef;
    --bkv-text-soft: #667085;
}

body {
    font-family: var(--bkv-font);
    font-size: 14px;
    line-height: 1.56;
    text-decoration: none;

    /* Modernes Hybrid-Layout: keine äußere Website-Box mehr */
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;

    /*
     * Wichtig: Der äußere Seitenhintergrund ist jetzt ebenfalls
     * die dezente Content-Farbe. So kann rund um das Themenbild
     * kein weißer Helix-Hintergrund mehr durchscheinen.
     */
    background: var(--bkv-page-bg);
}

input,
button,
textarea,
select {
    font-family: var(--bkv-font);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--bkv-font);
    font-weight: 600;
}

h2 {
    font-size: 24px;
}

/* Navigation explizit vereinheitlichen, da Helix eigene Fonts setzen kann */

/* =========================================================
   SEITENÜBERSCHRIFTEN
   ========================================================= */

/* Joomla Seitentitel / Beitragsüberschrift */
#sp-main-body h1,
#sp-main-body .page-header h1,
#sp-main-body .article-header h1 {
    font-size: 30px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
    margin-bottom: 18px !important;
}

/* =========================================================
   HYBRID LAYOUT – Full Width Shell + begrenzter Inhalt
   ========================================================= */

.body-wrapper,
.body-innerwrapper {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;

    /* Kein weißer Außen-Wrapper mehr */
    background: var(--bkv-page-bg) !important;
}


/* =========================================================
   SEITEN-SHELL
   ========================================================= */

html,
body,
.body-wrapper,
.body-innerwrapper,
#sp-main,
#sp-section-1,
#sp-main-body {
    background-color: var(--bkv-page-bg);
}

/*** Header Area ***/
/* Header Menu */
#sp-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;

    height: 80px;
    width: 100%;
    max-width: none;

    background: linear-gradient(
        rgb(0, 129, 198),
        rgb(0, 99, 198)
    );

    font-size: 12px;
    z-index: 9999;

    /* Dezente Trennung, ohne sichtbare Lücke zum Themenbild */
    box-shadow: none !important;
animation: none !important;
    transition: none !important;
}

/*
 * Der Header ist dauerhaft fixed und wird bereits über den oberen Abstand
 * von #sp-main ausgeglichen. Helix darf beim Scrollen keinen zweiten
 * Platzhalter in Dokumenthöhe einfügen, da die Ansicht sonst um genau eine
 * Headerhöhe springt.
 */
.body-innerwrapper > .sticky-header-placeholder {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
}

/*
 * Der blaue Header läuft über die gesamte Browserbreite.
 * Logo und Navigation bleiben in einer ruhigen Inhaltsbreite.
 */
#sp-header > .container,
#sp-header .container {
    width: 100% !important;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
#sp-header .logo img,
.logo-image,
.logo-image-phone {
    height: 62px;
    width: auto;
    max-height: 62px;
    object-fit: contain;
	margin-left: 30px;
}

#sp-page-title {
    margin-top: 80px;
}

.sp-megamenu-parent > li > a,
.sp-megamenu-parent > li > span {        
    color: #fff;
}
.sp-megamenu-parent > li > a:hover,
.sp-megamenu-parent > li > span:hover {
    color: #fff;
}

#sp-menu .menu-fussball > .sp-dropdown {
    left:-250px !important;
}

#sp-menu .menu-tt > .sp-dropdown {
    left:-462px !important;
    width: 800px !important;
}

#sp-menu .menu-admin > .sp-dropdown {
    left:-380px !important;
    width: 450px !important;
}

#sp-menu {
	margin-right: 30px;
	color: #fff;
}


/* =========================================================
   THEMENBILD / HERO
   Direkt am Header, mit weichen Übergängen
   ========================================================= */

#sp-section-1,
#sp-section-1 > .row,
#sp-title,
#sp-title > .sp-column,
#sp-title .sp-module,
#sp-title .sp-module-content,
#sp-title .mod-custom {
    position: relative;
    background: var(--bkv-page-bg) !important;
}

/* Themenbild Desktop */
@media (min-width: 768px) {
    #sp-title .mod-custom img {
        width: 100%;
        height: 300px !important;
        object-fit: cover;
        object-position: center bottom;
    }
}

/* ========================================================================
   FUSSBALL-ÜBERSICHT – Anordnung analog zur Tischtennis-Übersicht
   ======================================================================== */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) {
    grid-column: 1 / span 8;
    grid-row: 1;
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) {
    grid-column: 9 / span 4;
    grid-row: 1;
}

body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) {
    grid-column: 9 / span 4;
    grid-row: 2;
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) {
    grid-column: 1 / span 7;
    grid-row: 3;
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    grid-column: 8 / span 5;
    grid-row: 3;
}

body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) > .sp-module-title {
    display: none;
}

.bkv-fb-overview-info {
    height: 100%;
    padding: 17px 19px 18px;
    border: 1px solid #d8e3ee;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 7px 16px rgba(16, 61, 101, .06);
}

.bkv-fb-overview-info h2 {
    margin: 0 0 11px;
    color: #075ca8;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.bkv-fb-overview-info__list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bkv-fb-overview-info__item {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    gap: 9px;
    align-items: center;
    min-height: 50px;
    padding: 7px 9px;
    border: 1px solid #dce7f0;
    border-radius: 5px;
    background: #f8fbfd;
    color: #12385b;
    text-decoration: none;
    transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.bkv-fb-overview-info__item:hover,
.bkv-fb-overview-info__item:focus-visible {
    border-color: #9fc8e5;
    background: #eef8fe;
    color: #075ca8;
    text-decoration: none;
    transform: translateX(2px);
}

.bkv-fb-overview-info__icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e6f4fd;
    color: #0878c1;
    font-size: 12px;
}

.bkv-fb-overview-info__item strong,
.bkv-fb-overview-info__item small {
    display: block;
}

.bkv-fb-overview-info__item strong {
    color: #12385b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.18;
}

.bkv-fb-overview-info__item small {
    margin-top: 2px;
    color: #55708c;
    font-size: 11px;
    line-height: 1.22;
}

.bkv-fb-overview-info__arrow {
    color: #0878c1;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-align: right;
}

@media (max-width: 767px) {
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .bkv-fb-overview-info {
        padding: 15px;
    }
}

/* Fußball-Übersicht: sichtbare Platzhalter bis die Modul-Inhalte folgen. */
body.itemid-222 #sp-component .article-header,
body.itemid-222 #sp-component .article-details .article-header {
    display: none !important;
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    min-height: 170px;
    padding: 18px;
    border: 1px solid #d8e3ee;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 7px 16px rgba(16, 61, 101, .06);
}

/* FINAL: Startseiten-News im kompakten Zwischenlayout.
   Diese Regeln stehen absichtlich am Ende, damit ältere Tablet-Regeln
   mit zwei bzw. vier Spalten nicht erneut gewinnen. */
@media (min-width: 640px) and (max-width: 991.98px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item {
        height: 265px !important;
        max-height: 265px !important;
        min-height: 0 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 70px !important;
        height: 70px !important;
        margin: -9px -9px 8px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -9px -9px 8px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 70px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
        gap: 4px 7px !important;
        margin-bottom: 6px !important;
        font-size: 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-category,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) .mod-articles-category::after {
        font-size: 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        margin-bottom: 5px !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        display: -webkit-box !important;
        overflow: hidden !important;
        margin-bottom: 0 !important;
        font-size: 10px !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
        padding-top: 8px !important;
        font-size: 10px !important;
    }
}

/* =========================================================
   TT-/FB-Administration: Joomla-Standardaktion ausblenden
   Diese Regeln stehen bewusst am Dateiende. Weiter oben wird
   der Bearbeiten-Button für gewöhnliche Beiträge global als
   Flex-Element gestaltet; ohne diese Reihenfolge würde diese
   globale Vorgabe die Ausblendung wieder aufheben.
   ========================================================= */
body.bkv-admin-area.com-content.view-article .article-can-edit,
body.com-content.view-article:has(.bkv-league-filters) .article-can-edit,
body.com-content.view-article:has(.bkv-league-filters) .article-can-edit > a,
body.com-content.view-article:has(.bkv-league-filters) a[href*="task=article.edit"] {
    display: none !important;
}

/* Formularseite: Die Aktualisierungsangabe gehört nicht zur Downloadliste.
   Sie wird ausschließlich dort ausgeblendet; andere Beiträge behalten ihre
   Metadaten unverändert. */
body.bkv-formulare-page #sp-main-body .article-info,
body.bkv-formulare-page #sp-main-body .article-details > .article-info,
body.bkv-formulare-page #sp-main-body .article-details .article-info,
body.bkv-formulare-page #sp-main-body .article-details time {
    display: none !important;
}

/* Fußball-Übersicht: dezenter Hinweis für noch leere Fachmodule. */
body.itemid-222 #sp-position1 .sp-module:has(.bkv-coming-soon) .sp-module-content,
body.itemid-222 #sp-position1 .sp-module:has(.bkv-coming-soon) .sp-module-body,
body.itemid-222 #sp-position1 .sp-module:has(.bkv-coming-soon) .custom {
    display: grid !important;
    min-height: 146px !important;
    place-items: center !important;
}
body.itemid-222 #sp-main-body .sp-module:has(.bkv-coming-soon) .sp-module-content,
body.itemid-222 #sp-main-body .sp-module:has(.bkv-coming-soon) .sp-module-body,
body.itemid-222 #sp-main-body .sp-module:has(.bkv-coming-soon) .custom {
    display: grid !important;
    min-height: 146px !important;
    place-items: center !important;
}
/* Die drei leeren Fußball-Fachmodule besitzen eigene Custom-IDs. */
#mod-custom139:has(.bkv-coming-soon),
#mod-custom141:has(.bkv-coming-soon),
#mod-custom142:has(.bkv-coming-soon) {
    display: grid !important;
    min-height: 146px !important;
    place-items: center !important;
}
#mod-custom139 .bkv-coming-soon,
#mod-custom141 .bkv-coming-soon,
#mod-custom142 .bkv-coming-soon {
    display: grid !important;
    justify-items: center !important;
    gap: 4px !important;
    padding: 18px 20px !important;
    color: #66798a !important;
    text-align: center !important;
}
#mod-custom139 .bkv-coming-soon__icon,
#mod-custom141 .bkv-coming-soon__icon,
#mod-custom142 .bkv-coming-soon__icon {
    display: grid !important;
    width: 27px !important;
    height: 27px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e9f4fb !important;
    border: 1px solid #cfe4f2 !important;
    border-radius: 50% !important;
    font-size: 20px !important;
    line-height: 1 !important;
}
#mod-custom139 .bkv-coming-soon strong,
#mod-custom141 .bkv-coming-soon strong,
#mod-custom142 .bkv-coming-soon strong {
    color: #24506f !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
#mod-custom139 .bkv-coming-soon small,
#mod-custom141 .bkv-coming-soon small,
#mod-custom142 .bkv-coming-soon small {
    color: #728394 !important;
    font-size: 12px !important;
}
body.itemid-222 .bkv-coming-soon {
    display: grid !important;
    justify-items: center !important;
    gap: 4px !important;
    padding: 18px 20px !important;
    color: #66798a !important;
    text-align: center !important;
}
body.itemid-222 .bkv-coming-soon__icon {
    display: grid !important;
    width: 27px !important;
    height: 27px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e9f4fb !important;
    border: 1px solid #cfe4f2 !important;
    border-radius: 50% !important;
    font-size: 20px !important;
    line-height: 1 !important;
}
body.itemid-222 .bkv-coming-soon strong {
    color: #24506f !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
body.itemid-222 .bkv-coming-soon small {
    color: #728394 !important;
    font-size: 12px !important;
}

/* Dieselbe Darstellung in den leeren Fußball-Karten der Startseite. */
body.itemid-116 .bkv-dashboard-section .bkv-sport-football > .sp-module:has(.bkv-coming-soon) .sp-module-content,
body.itemid-116 .bkv-dashboard-section .bkv-sport-football > .sp-module:has(.bkv-coming-soon) .sp-module-body,
body.itemid-116 .bkv-dashboard-section .bkv-sport-football > .sp-module:has(.bkv-coming-soon) .custom {
    display: grid !important;
    min-height: 94px !important;
    place-items: center !important;
}
body.itemid-116 .bkv-dashboard-section .bkv-sport-football .bkv-coming-soon {
    display: grid !important;
    justify-items: center !important;
    gap: 4px !important;
    padding: 12px 16px !important;
    color: #66798a !important;
    text-align: center !important;
}
body.itemid-116 .bkv-dashboard-section .bkv-sport-football .bkv-coming-soon__icon {
    display: grid !important;
    width: 27px !important;
    height: 27px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e9f4fb !important;
    border: 1px solid #cfe4f2 !important;
    border-radius: 50% !important;
    font-size: 20px !important;
    line-height: 1 !important;
}
body.itemid-116 .bkv-dashboard-section .bkv-sport-football .bkv-coming-soon strong {
    color: #24506f !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
body.itemid-116 .bkv-dashboard-section .bkv-sport-football .bkv-coming-soon small {
    color: #728394 !important;
    font-size: 12px !important;
}

/* Startseiten-News: Zwischen Tablet und Smartphone drei kompakte Karten.
   Erst im eigentlichen Smartphone-Layout (bis 639px) werden zwei Karten
   nebeneinander gezeigt. */
@media (min-width: 640px) and (max-width: 767.98px) {
    body.itemid-116 #sp-homepage-news > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 11px 11px 13px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 102px !important;
        height: 102px !important;
        margin: -11px -11px 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -11px -11px 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 102px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        font-size: 15px !important;
        line-height: 1.25 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }
}

/* Kompaktes Zwischenlayout: drei Karten von 640px bis Tablet-Breite.
   Dadurch wechselt das Raster nicht zu früh auf zwei übergroße Karten. */
@media (min-width: 640px) and (max-width: 991.98px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item {
        height: 265px !important;
        max-height: 265px !important;
        min-height: 0 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 9px 9px 11px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 70px !important;
        height: 70px !important;
        margin: -9px -9px 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -9px -9px 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 70px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
        gap: 6px 10px !important;
        margin-bottom: 7px !important;
        font-size: 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-category,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) .mod-articles-category::after {
        font-size: 9px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        margin-bottom: 5px !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        display: -webkit-box !important;
        overflow: hidden !important;
        margin-bottom: 0 !important;
        font-size: 10px !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
        padding-top: 9px !important;
        font-size: 10px !important;
    }
}

/* Fußball-Übersicht: Die Seite besteht ausschließlich aus den Modulen. */
body.itemid-222 #sp-component .article-can-edit,
body.itemid-222 #sp-component a[href*="task=article.edit"] {
    display: none !important;
}

/* TT-/FB-Admin: Die Bearbeitung erfolgt über die Fachoberflächen, nicht über
   den Joomla-Standardbutton im Beitrag. */
body.bkv-admin-area .article-can-edit,
body.bkv-admin-area a[href*="task=article.edit"] {
    display: none !important;
}

/* Direkte Absicherung für die TT-Liga-Verwaltung: Diese Fachansicht trägt
   ihren eigenen Filtercontainer und darf keinen Joomla-Beitragsbutton zeigen. */
body:has(.bkv-league-filters) .article-can-edit,
body:has(.bkv-league-filters) a[href*="task=article.edit"] {
    display: none !important;
}

/* Die Grundregel für das Fußball-Menü enthält zusätzlich die Klasse
   .mod-menu und war dadurch spezifischer als die bisherige Mobilregel.
   Das Menü dockt nun bündig unter dem kompakten Mobil-Header an. */
@media (max-width: 767.98px) {
    body.itemid-222 #sp-position1 ul.mod-menu.menubkv-fb-area-menu.is-docked,
    body.itemid-222 #sp-position1 ul.menu.menubkv-fb-area-menu.is-docked {
        top: 46px !important;
    }
}

/* Finaler Mobil-Override: Die alten Desktop-Selektoren besitzen eine höhere
   Spezifität als die früheren Medienregeln. So docken beide Bereichsmenüs
   wirklich ohne weißen Zwischenraum direkt unter dem 46px-Header an. */
@media (max-width: 767.98px) {
    html body.itemid-222 #sp-position1 ul.mod-menu.menubkv-fb-area-menu.is-docked,
    html body.itemid-222 #sp-position1 ul.menu.menubkv-fb-area-menu.is-docked {
        top: 46px !important;
        left: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        transform: none !important;
    }

    html body #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    html body #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked {
        top: 46px !important;
        left: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        transform: none !important;
    }
}

/* Alle Meldungen: Kategorie-Alias ist „aktuelles-fussball“, nicht „fussball“.
   Damit greift das globale Fußball-Fallback auch in der Beitragsübersicht. */
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fussball/"])::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fußball/"])::before {
    background-image: url("/images/bkv-kategorien/fb.png") !important;
    background-position: left center !important;
}
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fussball/"]) .article-header::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fußball/"]) .article-header::before {
    content: "Fußball" !important;
    visibility: visible !important;
}

/* Globale News-Kacheln: Kategorienamen vereinheitlichen und fehlende Bilder ersetzen. */
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fussball/"]) .mod-articles-category,
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fußball/"]) .mod-articles-category {
    font-size: 0 !important;
}
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fussball/"]) .mod-articles-category .icon-folder-open,
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fußball/"]) .mod-articles-category .icon-folder-open {
    display: none !important;
}
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fussball/"]) .mod-articles-category::after,
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fußball/"]) .mod-articles-category::after {
    content: "Fußball";
    display: block;
    font-size: 11px;
    line-height: 14.85px;
}
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fussball/"]):not(:has(.mod-articles-image)) .mod-articles-item-content::before,
.bkv-news-grid .mod-articles-item:has(> .mod-articles-item-content > .mod-articles-title > .mod-articles-link[href*="/aktuelles-fußball/"]):not(:has(.mod-articles-image)) .mod-articles-item-content::before {
    content: "";
    display: block;
    order: 1;
    width: calc(100% + 26px);
    height: 100px;
    margin: -11px -13px 0;
    background: url("/images/bkv-kategorien/fb.png") left center / cover no-repeat;
    flex: 0 0 100px;
}

@media (max-width: 767.98px) {
    body.itemid-222 #sp-position1 > .bkv-sport-card {
        width: calc(100% - 24px) !important;
    }
}

#sp-section-1 {
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: hidden;
}

#sp-section-1 > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

#sp-title {
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;

    /* Bewusst kein Abstand zwischen Hauptheader und Themenbild */
    padding: 0 !important;
}

#sp-title .mod-custom,
#sp-title .mod-custom p,
#sp-title .mod-custom figure {
    margin: 0 !important;
    padding: 0 !important;
    background: var(--bkv-page-bg) !important;
}

#sp-title .mod-custom img {
    display: block;
    width: 100%;
    height: auto;
    background: transparent !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

/* Header -> Themenbild: kurzer, bläulicher Overlay statt Abstand */
#sp-section-1::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    height: 34px;

    /*
     * Header -> Themenbild:
     * Kein sichtbarer Abstand und keine harte Schattenkante.
     * Stattdessen läuft das Header-Blau kurz ins Bild aus.
     */
    background: linear-gradient(
        to bottom,
        rgba(0, 99, 198, 0.55) 0%,
        rgba(0, 112, 198, 0.28) 35%,
        rgba(0, 112, 198, 0.10) 65%,
        rgba(0, 112, 198, 0) 100%
    );

    z-index: 2;
    pointer-events: none;
}

/* Themenbild -> Content */
#sp-section-1::after {
    content: none !important;
    display: none !important;
}


#sp-main {
    width: 100%;
    max-width: none;
    margin-top: 80px;

    /*
     * Header ist fixed und 80px hoch.
     * #sp-main enthält Hero, Content UND Footer.
     * Deshalb muss genau dieser Container die restliche
     * Viewport-Höhe ausfüllen.
     */
    min-height: calc(100vh - 80px);
    display: flex;
    flex-direction: column;
}


#sp-main-body {
    flex: 1 0 auto;
    width: 100%;
    max-width: none;

    padding: 20px 0 48px;
    background: var(--bkv-page-bg);
}

/* Inhalt weiterhin gut lesbar und nicht beliebig breit */
#sp-main-body > .container,
#sp-main-body .container {
    width: 100%;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 28px;
    padding-right: 28px;
}


.article-list .article {
	background-color: #dee7f2;
	border-style: inset;
}

#main div.attachmentsList table tbody tr.even td, div.attachmentsList table tbody tr.even td {
    background-color: #E5F2F9;
}

#main div.attachmentsList caption, div.attachmentsList caption {  
    display: none;
}

#main div.attachmentsList table thead th, div.attachmentsList table thead th {
    border: none;
}

/* ==========================================================================
   ARTIKELDETAILS – DOKUMENT-ANHÄNGE
   ========================================================================== */

body.com-content.view-article ul.fields-container:has(.bkv-document-attachment) {
    margin: 12px 0 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) > .field-label {
    display: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) > .field-value {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li::marker {
    content: "" !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li > .field-entry:first-of-type {
    display: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li > .field-entry:last-of-type {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li > .field-entry:last-of-type > .field-label {
    display: none !important;
}

body.com-content.view-article li.field-entry.anhaenge:has(.bkv-document-attachment) ul.fields-container > li > .field-entry:last-of-type > .field-value {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.bkv-document-attachment {
    display: block !important;
    width: min(390px, 100%);
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.bkv-document-attachment__link {
    display: flex !important;
    align-items: center;
    gap: 11px;
    min-height: 54px;
    padding: 8px 11px;
    color: #063d78 !important;
    background: #f9fbfd;
    border: 1px solid #d6e3ef;
    border-radius: 6px;
    box-shadow: 0 2px 7px rgba(5, 57, 113, 0.07);
    text-decoration: none !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.bkv-document-attachment__link:hover,
.bkv-document-attachment__link:focus-visible {
    color: #063d78 !important;
    background: #fff;
    border-color: #78b4e8;
    box-shadow: 0 4px 12px rgba(5, 57, 113, 0.12);
    text-decoration: none !important;
    transform: translateY(-1px);
}

.bkv-document-attachment__type {
    display: grid !important;
    flex: 0 0 auto;
    place-items: center;
    width: 30px;
    height: 36px;
    padding: 2px;
    color: #dc3d35 !important;
    border: 2px solid currentColor;
    border-radius: 3px;
    font-size: 9px !important;
    font-weight: 800;
    line-height: 1 !important;
    letter-spacing: .03em;
}

.bkv-document-attachment__content {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.bkv-document-attachment__name {
    overflow: hidden;
    color: #0b5594 !important;
    font-size: 14px !important;
    font-weight: 700;
    line-height: 1.25 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bkv-document-attachment__meta {
    color: #7c8b99 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.bkv-document-attachment__download {
    display: grid !important;
    flex: 0 0 auto;
    place-items: center;
    width: 28px;
    height: 28px;
    color: #0675c9 !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

.bkv-document-attachment__download svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 575.98px) {
    .bkv-document-attachment { width: 100%; }
    .bkv-document-attachment__link {
        min-height: 52px;
        gap: 9px;
        padding: 7px 9px;
    }
    .bkv-document-attachment__name { font-size: 13px !important; }
}

/* Button */

/*
 * Die folgenden Regeln stammen aus den alten Sportseiten.  Sie dürfen nicht
 * in die Joomla-Frontend-Bearbeitung hineinwirken: Dort verwendet Joomla
 * dieselben Bootstrap-Klassen fuer TinyMCE und die Aktionsleiste.
 */
body.com-content.view-article #sp-main-body .btn.dropdown-toggle {    
    display: none;
}

body.com-content.view-article #sp-main-body .btn-group.pull-right {    
    width: 90px;    
    padding-bottom: 10px;
}
body.com-content.view-article #sp-main-body .btn-group.pull-right >ul{  
    width: 90px;
}
body.com-content.view-article #sp-main-body .btn-group.pull-right >.dropdown-menu {
    position: relative;  
    font-size: inherit;
    display: inherit;
    min-width: 0;
    height: 30px;
    padding: 4px;
    background-color: #006FC6;
    border: 1px solid transparent;
    box-shadow: 1px 1px #006FC6;
    background-clip: padding-box;
    border-radius: 0.25rem;
}
body.com-content.view-article #sp-main-body .btn-group.pull-right >.dropdown-menu>li {
    position: relative;  
    font-size: inherit;
    text-align: center;
    vertical-align: center;
    width: 90px;
}
body.com-content.view-article #sp-main-body .btn-group.pull-right >.dropdown-menu>li>a {
    color: #fff;
}

body.com-content.view-article #sp-main-body .sppb-btn-primary {
	height: 31px !important;
}

body.com-content.view-article #sp-main-body .btn-primary,
body.com-content.view-article #sp-main-body .sppb-btn-primary {
	max-width: 20%;
	max-height: 10%;
}

body.com-content.view-article #sp-main-body .btn-lg {
	max-width: 100% !important;
	width: 100% !important;
}

body.com-content.view-article #sp-main-body .btn-secondary {
	max-width: 20%;
	height: 10% !important;
	max-height: 10% !important;
}

.navspieltagback {
	margin-top: 10px !important;
	float: left;
	height: 30px; 
	width: 100px !important;
}

.navspieltagnext {
	margin-top: 10px !important;
	float: right;
	height: 30px; 
	width: 100px !important;
}

/* Select */

body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    display: inline-block;

    height: 32px;
    min-height: 32px;

    margin: 0 0 10px 3px;
    padding: 1px 22px 2px 8px;

    font-family: var(--bkv-font);
    font-size: 11.5px !important;
    font-weight: 500;
    line-height: 1.2 !important;
    box-sizing: border-box;

    text-align: center;
    text-align-last: center;

    color: #fff !important;

    /*
     * Gleiche Farbwirkung wie der Header.
     * Zusätzlich ein kleines CSS-Dreieck als Dropdown-Pfeil.
     */
    background:
        linear-gradient(45deg, transparent 50%, #fff 50%) calc(100% - 11px) 13px / 5px 5px no-repeat,
        linear-gradient(135deg, #fff 50%, transparent 50%) calc(100% - 7px) 13px / 5px 5px no-repeat,
        linear-gradient(
            to bottom,
            rgb(0, 129, 198),
            rgb(0, 99, 198)
        ) !important;

    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    border-radius: 7px !important;

    box-shadow: 0 2px 7px rgba(0, 99, 198, 0.16);

    outline: none;

    vertical-align: middle;

    transition:
        filter 0.18s ease,
        box-shadow 0.18s ease;
}

body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control):hover,
body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control):focus {
    color: #fff !important;

    filter: brightness(1.04);

    box-shadow: 0 4px 10px rgba(0, 99, 198, 0.20);

    outline: none;
}

/*
 * Geöffnete Einträge:
 * Browserabhängig, wird von modernen Desktop-Browsern übernommen.
 */
body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control) option {
    color: #fff !important;
    background: rgb(0, 112, 198) !important;

    font-family: var(--bkv-font);
    font-size: 12px !important;
    font-weight: 400;
}

body.com-content.view-article #sp-main-body select.select-season {
    width: 64px !important;
}

body.com-content.view-article #sp-main-body select.select-round {
    width: 118px !important;
}

body.com-content.view-article #sp-main-body select.select-team { 
	width: 150px !important;
}


/* Buttons */

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;

  /* Position the tooltip */
  position: absolute;
  z-index: 1;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}

body.com-content.view-article #sp-main-body input[type=text],
body.com-content.view-article #sp-main-body input[type=number] {
	font-size: 12px !important;
}


body.com-content.view-article #sp-main-body button,
body.com-content.view-article #sp-main-body input[type=submit],
body.com-content.view-article #sp-main-body input[type=button],
body.com-content.view-article #sp-main-body optgroup {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline;
    padding: 0;
    margin: 0px 3px 10px 0px;
    text-align: center;
	text-align: -webkit-center;
    text-align-last: center;
    font-size: inherit;
    /*height: 30px;*/
    width: 150%;
    color:#fff;
    background-color: #006FC6;
    border: 1px solid transparent;
    /*box-shadow: 1px 1px #006FC6;*/
    background-clip: padding-box;
    border-radius: 0.25rem;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;      
}

.input-group-text {
	max-height: 38px;
}

body.com-content.view-article #sp-main-body input[type=password] {
  max-height: 38px;
}

.hidden {
    display: none;
}

/* Title */
.title h6 {
    color: #000000;
    font-size: 12px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.title h2 {
    font-size: 20px !important;
    font-weight: 600;
    /*line-height: 1.2em;*/
    color: #000;
    /*margin: 30px 0 35px;*/
}
.title.white h2 {
    color: #fff;
}

/* About */
.about-img img {
    -webkit-transition: .2s ease-in-out;
    -o-transition: .2s ease-in-out;
    transition: .2s ease-in-out;
}
.about-img img:hover {
    transform: scale(1.05);
} 

/* Counter */
.counter .count, .counter #shiva {
    line-height: 100px;
    font-weight: 600;
    font-size: 85px;
}
.counter h4 {
    color: #fff;
    font-size: 18px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 4.5px;
}

/* Services */
.services-item {
    position: relative;
    overflow: hidden;
}
.services-item:before {
    background: rgba(241, 241, 241, 0.2);;
    position: absolute;
    content: "";
    -webkit-transform: skew(-45deg) translateX(150%);
    transform: skew(-45deg) translateX(150%);
    width: 200%;
    height: 200%;
    -webkit-transition: all .6s ease;
    transition: all .6s ease;
    opacity: 0;
    right: 0;
    bottom: 0;
    display: block;
}
.services-item:after {
    background: rgba(241, 241, 241, 0.2);;
    position: absolute;
    content: "";
    -webkit-transform: skew(-45deg) translateX(-150%);
    transform: skew(-45deg) translateX(-150%);
    width: 200%;
    height: 200%;
    -webkit-transition: all .6s ease;
    transition: all .6s ease;
    opacity: 0;
    top: 0;
    left: 0;
    display: block;
}
.services-item:hover:before {
    -webkit-transform: skew(-45deg) translateX(50%);
    transform: skew(-45deg) translateX(50%);
    opacity: .75;
}
.services-item:hover:after {
    -webkit-transform: skew(-45deg) translateX(-50%);
    transform: skew(-45deg) translateX(-50%);
    opacity: .75;
}
.services-item:hover {
    cursor: pointer;
}
.services-item img {
    width: 100%;
}

/* My Services */
@-webkit-keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

@keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}
.my-item:hover h3 {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipInX;
    animation-name: flipInX;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    color: #000 !important;
}
.my-item:hover {
    cursor: pointer
}

/* Skill */
.skill {
    position: relative;
}
.skill:before {
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    content: "";
    position: absolute;
    background: linear-gradient(135deg, rgba(0,0,0,0.33) 0%, rgba(246,131,56,0.67) 100%);
    z-index: -1;
    opacity: 1;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}
.bar-skill .sppb-row-container {
    margin-top: -250px;
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.18);
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 90px 50px 20px;
}
.skill-left #skill li p {
    color: #000 !important;
}
.bar-skill #skill {
    list-style: none;
    position: relative;
    padding: 0 !important;
    background-image: none !important;
}
#skill li { 
    margin-bottom: 100px; 
    background: #000000;
    height: 10px; 
    border-radius: 0px;    
}
#skill li h3, #skill li p { 
    position: relative;
    top: -28px;
    color: #999999;
    font-size: 19px;
    font-weight: 500;
    float: left;
    width: 50%;
}
#skill li p { 
    text-align: right;
    font-size: 16px;
}
.bar { 
    height: 10px;  
    position:absolute;
    border-radius: 0px;   
}
.graphic-design {
    width: 90%; 
    -moz-animation:graphic-design 2s ease-out;
    -webkit-animation:graphic-design 2s ease-out;
}
.html-css {
    width: 80%;
    -moz-animation:html-css 2s ease-out;
    -webkit-animation:html-css 2s ease-out;
}
.jquery {
    width: 86%;
    -moz-animation:jquery 2s ease-out;
    -webkit-animation:jquery 2s ease-out;
}

@-moz-keyframes graphic-design {0%  { width:0px;} 100%{ width:100%;}  }
@-moz-keyframes html-css        { 0%  { width:0px;} 100%{ width:90%;}  }
@-moz-keyframes jquery      { 0%  { width:0px;} 100%{ width:65%;}  }
@-moz-keyframes wordpress   { 0%  { width:0px;} 100%{ width:80%;}  }

@-webkit-keyframes graphic-design       { 0%  { width:0px;} 100%{ width:100%;}  }
@-webkit-keyframes html-css        { 0%  { width:0px;} 100%{ width:90%;}  }
@-webkit-keyframes jquery      { 0%  { width:0px;} 100%{ width:65%;}  }
@-webkit-keyframes wordpress   { 0%  { width:0px;} 100%{ width:80%;}  }

/* Client */
.client-item h3 {
    position: relative;
    z-index: 1;
}

/* Portfolio */
.sp-simpleportfolio .sp-simpleportfolio-filter>ul>li>a {
    font-size: 18px;
    padding: 5px 20px;
}

/* Blog */
.jmm-item .jmm-image.mod-article-image {
  	overflow: hidden;
}
.jmm-image.mod-article-image img {
  	transform: scale(1);
  	-webkit-transition: .5s ease-in-out;
    -o-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
}
.jmm-item:hover .jmm-image.mod-article-image img {
  	transform: scale(1.12);
  	filter: grayscale(100%);
}

/* Contact Info */
.contact-info h2, .contact-info h3 {
    font-size: 25px;
}
body.com-content.view-article #sp-main-body button.btn.btn-primary.validate {
    color: #fff !important;
    padding: 13px 20px;
}

/* =========================================================
   FOOTER
   Zwei feste Hälften: Footer1 links / Footer2 rechts
   ========================================================= */



















/* Footer1 – Links */












/* Footer2 – Social Icons + Copyright */















body:not(.view-form) #sp-main-body table
{
	width: 100%;
}
body:not(.view-form) #sp-main-body table td {
  padding: .625em;
  text-align: center;
  font-size: .85em;
  color: #46484d;   
}
body:not(.view-form) #sp-main-body table td a
{
	display: block; 
	text-decoration: none;
	color: #46484d;
}
body:not(.view-form) #sp-main-body table td a:hover,
body:not(.view-form) #sp-main-body table td a:focus
{
	text-decoration: none;
	color: inherit;
}
.Winner{
	font-weight: bold;
}
body:not(.view-form) #sp-main-body table caption 
{
  font-size: 1.5em;
  margin: .5em 0 .75em;
}
body:not(.view-form) #sp-main-body table tr 
{ 
  border: 1px solid #ddd;
  padding: .35em;
}
body:not(.view-form) #sp-main-body table tr:hover
{
	background: rgb(86, 120, 161, 0.4);
}
body:not(.view-form) #sp-main-body table tr:nth-child(odd) { 
  background: rgb(229, 242, 249); 
}
body:not(.view-form) #sp-main-body table tr:nth-child(odd):hover
{
	background: rgb(86, 120, 161, 0.4);
}
body:not(.view-form) #sp-main-body table th {
  background: rgba(0, 0, 0, 0) linear-gradient(rgb(0, 129, 198), rgb(0, 99, 198)) repeat scroll 0 0;
  border: 0px; 
  color: #fff;
  padding: .625em;
  text-align: center;
  font-size: 0.85em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body:not(.view-form) #sp-main-body table thead {
	border: 0px; 
}

[data-href] 
{ 
	cursor: pointer; 
}

/* Tooltip */

.gameinfo {
	cursor: pointer; 
}

.spielinfo {
	padding-top: 10px;
	padding-bottom: 10px;
}

div.tooltip1 span {
  display: none !important;  
  background: #333 !important;
  color: #fff !important;
  top: -5px;
  left: 105%;
  float: right;
}

div.tooltip1:hover span {
  display: inline-block !important;
  width: 120px !important;
  background-color: black !important;
  color: #fff !important;
  text-align: center !important;
  padding: 5px 0 !important;
  border-radius: 6px !important;
 
  /* Position the tooltip text - see examples below! */  
  
  z-index: 1 !important;
}


body.com-content.view-article #sp-main-body input[type=number]::-webkit-outer-spin-button,
body.com-content.view-article #sp-main-body input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

body.com-content.view-article #sp-main-body input[type=number] {
    -moz-appearance:textfield;
}

.error {
	text-align:left;
	font-size:0.8em;
	border: 1px solid #333;
	background: #343835;
	color: #ffffff;
	box-shadow: 5px 5px 2px #444;
	width:80%;
	height:100%;
	padding:1.0em;
	margin:0.2em;
	margin:0 auto;
	margin-bottom: 10px;
	display: none;
}

/* =========================================================
   DESKTOP NAVIGATION & MEGAMENU
   Icon-only im Header, normale Texte im MegaMenu
   ========================================================= */


/* =========================================================
   OFFCANVAS MENU
   Nur Darstellung – Helix-Menüfunktion bleibt unverändert
   ========================================================= */

/* Dezenter BKV-Farbverlauf */
.offcanvas-menu {
    background: linear-gradient(
        180deg,
        rgb(0, 129, 198) 0%,
        rgb(0, 123, 198) 45%,
        rgb(0, 112, 198) 100%
    ) !important;
    color: #fff !important;
}

/* Einheitliche Typografie */
.offcanvas-menu,
.offcanvas-menu .offcanvas-inner,
.offcanvas-menu .offcanvas-inner ul.menu,
.offcanvas-menu .offcanvas-inner ul.menu li,
.offcanvas-menu .offcanvas-inner ul.menu li > a,
.offcanvas-menu .offcanvas-inner ul.menu li > span,
.offcanvas-menu .offcanvas-inner ul.menu li > .menu-separator,
.offcanvas-menu .offcanvas-inner ul.menu li > .nav-header {
    font-family: var(--bkv-font) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #fff !important;
    opacity: 1 !important;
    text-decoration: none !important;
}


/* OffCanvas: Icons weiß, Text bleibt sichtbar */
.offcanvas-menu .offcanvas-inner ul.menu li > a > i,
.offcanvas-menu .offcanvas-inner ul.menu li > span > i,
.offcanvas-menu .offcanvas-inner ul.menu li > a .fa,
.offcanvas-menu .offcanvas-inner ul.menu li > a .fas,
.offcanvas-menu .offcanvas-inner ul.menu li > a .far,
.offcanvas-menu .offcanvas-inner ul.menu li > a .fab,
.offcanvas-menu .offcanvas-inner ul.menu li > span .fa,
.offcanvas-menu .offcanvas-inner ul.menu li > span .fas,
.offcanvas-menu .offcanvas-inner ul.menu li > span .far,
.offcanvas-menu .offcanvas-inner ul.menu li > span .fab {
    color: #fff !important;
}

.offcanvas-menu .offcanvas-inner ul.menu li > a > i,
.offcanvas-menu .offcanvas-inner ul.menu li > span > i {
    font-size: 14px !important;
    width: 20px !important;
    margin-right: 7px !important;
    text-align: center !important;
}

/* -------------------------
   Ebene 1
   BKV / Fußball / Tischtennis ...
   ------------------------- */

.offcanvas-menu .offcanvas-inner ul.menu > li {
    margin: 0 !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > a,
.offcanvas-menu .offcanvas-inner ul.menu > li > span,
.offcanvas-menu .offcanvas-inner ul.menu > li > .menu-separator,
.offcanvas-menu .offcanvas-inner ul.menu > li > .nav-header {
    min-height: 48px !important;
    padding: 12px 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    line-height: 24px !important;
    color: #fff !important;
    background: transparent !important;
}

/* -------------------------
   Ebene 2
   Allgemein / Stadtliga / A-Klasse ...
   ------------------------- */

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child {
    margin: 0 !important;
    padding-left: 18px !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li {
    margin: 0 !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > a,
.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > span,
.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > .menu-separator,
.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > .nav-header {
    min-height: 40px !important;
    padding: 9px 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    line-height: 22px !important;
    color: #fff !important;
    background: transparent !important;
}

/* -------------------------
   Ebene 3
   Aktuelles / Tabelle / Spielplan ...
   ------------------------- */

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > ul.menu-child {
    margin: 0 !important;
    padding-left: 18px !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > ul.menu-child > li {
    margin: 0 !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > ul.menu-child > li > a,
.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > ul.menu-child > li > span {
    min-height: 36px !important;
    padding: 7px 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    line-height: 22px !important;
    color: #fff !important;
    background: transparent !important;
}

/* Hover / aktiv / Fokus */
.offcanvas-menu .offcanvas-inner ul.menu li.active > a,
.offcanvas-menu .offcanvas-inner ul.menu li.active > span,
.offcanvas-menu .offcanvas-inner ul.menu li.current > a,
.offcanvas-menu .offcanvas-inner ul.menu li.current > span,
.offcanvas-menu .offcanvas-inner ul.menu li > a:hover,
.offcanvas-menu .offcanvas-inner ul.menu li > span:hover,
.offcanvas-menu a:focus,
.offcanvas-menu span:focus {
    color: #fff !important;
    opacity: 1 !important;
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Pfeile / Toggler */
.offcanvas-menu .menu-toggler,
.offcanvas-menu .menu-toggler::before,
.offcanvas-menu .menu-toggler::after {
    color: #fff !important;
    opacity: 1 !important;
}

.offcanvas-menu .menu-toggler {
    min-width: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > .menu-toggler,
.offcanvas-menu .offcanvas-inner ul.menu > li > a .menu-toggler,
.offcanvas-menu .offcanvas-inner ul.menu > li > span .menu-toggler {
    min-height: 48px !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li .menu-toggler {
    min-height: 40px !important;
}

.offcanvas-menu .offcanvas-inner ul.menu > li > ul.menu-child > li > ul.menu-child > li .menu-toggler {
    min-height: 36px !important;
}

/* Schließen-X */
.offcanvas-menu .close-offcanvas,
.offcanvas-menu .close-offcanvas:hover,
.offcanvas-menu .close-offcanvas:focus {
    color: #fff !important;
    border-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}


/* =========================================================
   MOBILE HEADER / HAMBURGER
   Hintergrund vollständig transparent
   ========================================================= */
/* Hamburger-Striche:
   bewusst außerhalb der Media Query – exakt wie in der
   funktionierenden Version vor der CSS-Bereinigung. */
.burger-icon > span,
#offcanvas-toggler .burger-icon > span,
#offcanvas-toggler:hover .burger-icon > span,
#offcanvas-toggler:focus .burger-icon > span,
#offcanvas-toggler.active .burger-icon > span,
.offcanvas-active .burger-icon > span {
    background-color: #fff !important;
}

/* =========================================================
   MOBILE LAYOUT
   Smartphones bis 767px
   ========================================================= */


/* =========================================================

/* =========================================================
   FRONTEND-BEARBEITUNG – Edit-Icons ausblenden
   Nur Darstellung; Bearbeitungsrechte bleiben erhalten
   ========================================================= */

/* Joomla Modul-Bearbeiten-Button */
a.jmodedit,
.jmodedit,
.jmodedit-tooltip {
    display: none !important;
}

/* Joomla Beitrags-Bearbeiten-Button */
.article-details .icons,
.article-details ul.actions,
.article-details .article-info + .icons,
.article-details a[href*="task=article.edit"],
.article-details a[href*="task=category.edit"],
a[title*="Bearbeiten"],
a[aria-label*="Bearbeiten"],
a[title*="Edit"],
a[aria-label*="Edit"] {
    display: none !important;
}

/* =========================================================
   MODERNER CONTENT-BEREICH
   Offen statt Boxed – klare Breite, subtile Flächen
   ========================================================= */

/*
 * Kein "Kasten in der Seite":
 * Hintergrund leicht getönt, Inhalt offen und breit.
 */
#sp-main,
#sp-main-body {
    background: var(--bkv-page-bg);
}

#sp-main-body > .container > .container-inner {
    background: transparent;

    border: 0;
    border-radius: 0;
    box-shadow: none;

    padding: 26px 0 34px;

    margin-top: 0;
    margin-bottom: 0;
}

/*
 * Der eigentliche Content nutzt die vorhandenen 1240px deutlich besser.
 * Kein zusätzlicher Innenkasten.
 */
#sp-main-body #sp-component,
#sp-main-body .article-details {
    width: 100%;
    max-width: none;
}

/*
 * Einzelne Datenelemente bekommen Tiefe – nicht der komplette Inhalt.
 * Dadurch wirkt die Seite moderner, ohne wieder boxed auszusehen.
 */
#sp-main-body table,
#sp-main-body .table-responsive {
    background: var(--bkv-surface);
}

/* =========================================================
   ÜBERSCHRIFTEN – klarere visuelle Hierarchie
   ========================================================= */

#sp-main-body h1,
#sp-main-body .page-header h1,
#sp-main-body .article-header h1 {
    position: relative;

    padding-bottom: 13px !important;
    margin-bottom: 22px !important;

    color: #1f2937;
}

/* Kurzer BKV-Akzent unter der Hauptüberschrift */
#sp-main-body h1::after,
#sp-main-body .page-header h1::after,
#sp-main-body .article-header h1::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: 46px;
    height: 3px;

    border-radius: 999px;

    background: linear-gradient(
        90deg,
        var(--bkv-blue),
        var(--bkv-blue-dark)
    );
}

/* Unterüberschriften etwas ruhiger als die H1 */
#sp-main-body h2,
#sp-main-body h3 {
    color: #273444;
}

/* =========================================================
   TABELLEN – leichter, moderner, weniger "Verwaltung"
   ========================================================= */

#sp-main-body table {
    border-collapse: separate !important;
    border-spacing: 0 !important;

    width: 100%;

    background: #fff;

    border: 1px solid var(--bkv-border);
    border-radius: 9px;

    overflow: hidden;

    box-shadow: 0 3px 12px rgba(18, 38, 63, 0.035);
}

/* Alte äußere Zeilenrahmen entfernen */
#sp-main-body table tr {
    border: 0 !important;
}

/* Tabellenkopf weiterhin klar in BKV-Blau */
#sp-main-body table th {
    background: linear-gradient(
        180deg,
        rgb(0, 129, 198),
        rgb(0, 105, 198)
    ) !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(0, 82, 157, 0.25) !important;

    color: #fff;

    font-weight: 600;
}

/* Dezente Trennung statt kräftiger Rahmen */
#sp-main-body table td {
    border: 0 !important;
    border-bottom: 1px solid #edf1f5 !important;
}

/* Letzte Tabellenzeile ohne untere Linie */
#sp-main-body table tbody tr:last-child td {
    border-bottom: 0 !important;
}

/* Zebra-Streifen deutlich subtiler */
#sp-main-body table tr:nth-child(odd) {
    background: #f8fbfd !important;
}

#sp-main-body table tr:nth-child(even) {
    background: #ffffff !important;
}

/* Ruhiger Hover-Effekt */
#sp-main-body table tbody tr:hover,
#sp-main-body table tbody tr:nth-child(odd):hover,
#sp-main-body table tbody tr:nth-child(even):hover {
    background: #eef6fb !important;
}

/* Etwas mehr Luft zwischen mehreren Tabellen */
#sp-main-body table + table,
#sp-main-body table + .table-responsive,
#sp-main-body .table-responsive + table,
#sp-main-body .table-responsive + .table-responsive {
    margin-top: 26px;
}

/* Mannschaftsansicht: Abstand vor Aufstellung/Aushilfen.
   #spielinfo wird von einem <script> gefolgt; danach kommt
   direkt die erste 50%-Tabelle "Aufstellung". */
#sp-main-body #spielinfo + script + table[style*="width: 50%"][style*="float: left"] {
    clear: both;
    margin-top: 26px;
}


/* =========================================================
   BUTTONS / SELECTS – einheitlicher und moderner
   ========================================================= */

body.com-content.view-article #sp-main-body .btn-primary,
body.com-content.view-article #sp-main-body .sppb-btn-primary,
body.com-content.view-article #sp-main-body .navspieltagback,
body.com-content.view-article #sp-main-body .navspieltagnext,
body.com-content.view-article #sp-main-body .btn-group.pull-right > .dropdown-menu,
body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control) {
    border-radius: 7px !important;

    border: 0 !important;

    background: linear-gradient(
        180deg,
        rgb(0, 129, 198),
        rgb(0, 105, 198)
    ) !important;

    box-shadow: 0 2px 7px rgba(0, 99, 198, 0.16);

    color: #fff !important;

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease;
}

body.com-content.view-article #sp-main-body .btn-primary:hover,
body.com-content.view-article #sp-main-body .sppb-btn-primary:hover,
body.com-content.view-article #sp-main-body .navspieltagback:hover,
body.com-content.view-article #sp-main-body .navspieltagnext:hover,
body.com-content.view-article #sp-main-body .btn-group.pull-right > .dropdown-menu:hover {
    filter: brightness(1.04);
    transform: translateY(-1px);

    box-shadow: 0 5px 12px rgba(0, 99, 198, 0.20);
}

/* =========================================================
   LINKS IM CONTENT
   ========================================================= */

#sp-main-body a:not(.btn):not(.sppb-btn) {
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}




/* =========================================================
   HAMBURGER – immer weiß
   ========================================================= */

/*
 * Helix setzt die Burger-Linien je nach Breakpoint / Toggler-Variante
 * teilweise über unterschiedliche Selektoren. Deshalb werden hier alle
 * relevanten Varianten gemeinsam fest auf Weiß gesetzt.
 */
.burger-icon > span,
#offcanvas-toggler .burger-icon > span,
#offcanvas-toggler:hover .burger-icon > span,
#offcanvas-toggler:focus .burger-icon > span,
#offcanvas-toggler:active .burger-icon > span,
#offcanvas-toggler.active .burger-icon > span,
.offcanvas-toggler-right .burger-icon > span,
.offcanvas-toggler-left .burger-icon > span,
.offcanvas-toggler-secondary .burger-icon > span,
.offcanvas-toggler-secondary:hover .burger-icon > span,
.offcanvas-toggler-secondary:focus .burger-icon > span,
.offcanvas-active .burger-icon > span,
.close-offcanvas .burger-icon > span {
    background-color: #fff !important;
    border-color: #fff !important;
    opacity: 1 !important;
}

/* =========================================================
   2. DESKTOP – ab 992px
   ========================================================= */

@media (min-width: 992px) {

    /* Hauptmenüpunkte */
    .sp-megamenu-parent > li {
        margin: 0 !important;
    }

    .sp-megamenu-parent > li > a,
    .sp-megamenu-parent > li > span {
        width: 72px !important;
        min-width: 72px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        font-size: 0 !important;
        font-weight: 400 !important;
        letter-spacing: 0 !important;

        color: #fff !important;
        background: transparent !important;
    }

    /*
     * Helix kapselt Icon + Text teilweise zusätzlich in einem Span.
     * Deshalb den Text dort ebenfalls auf Größe 0 setzen.
     */
    .sp-megamenu-parent > li > a > span,
    .sp-megamenu-parent > li > span > span {
        font-size: 0 !important;
    }

    /* Font-Awesome-Icons exakt in der Klickfläche zentrieren */
    .sp-megamenu-parent > li > a i,
    .sp-megamenu-parent > li > span i,
    .sp-megamenu-parent > li > a .fa,
    .sp-megamenu-parent > li > a .fas,
    .sp-megamenu-parent > li > a .far,
    .sp-megamenu-parent > li > a .fab,
    .sp-megamenu-parent > li > span .fa,
    .sp-megamenu-parent > li > span .fas,
    .sp-megamenu-parent > li > span .far,
    .sp-megamenu-parent > li > span .fab {
        display: block !important;

        font-size: 21px !important;
        line-height: 21px !important;

        width: 21px !important;
        height: 21px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        text-align: center !important;

        color: #fff !important;
        opacity: 0.95 !important;
    }

    /* Pfeile/Toggler im Desktop-Header ausblenden */
    .sp-megamenu-parent > li.sp-has-child > a::after,
    .sp-megamenu-parent > li.sp-has-child > span::after,
    .sp-megamenu-parent > li .menu-toggler {
        display: none !important;
        content: none !important;
    }

    /* Dezenter Hover */
    .sp-megamenu-parent > li:hover > a,
    .sp-megamenu-parent > li:hover > span {
        background: rgba(255, 255, 255, 0.10) !important;
        color: #fff !important;
    }

    .sp-megamenu-parent > li:hover > a i,
    .sp-megamenu-parent > li:hover > span i {
        opacity: 1 !important;
        transform: scale(1.08);
    }

    /* Aktiver Menüpunkt */
    .sp-megamenu-parent > li.active > a,
    .sp-megamenu-parent > li.active > span {
        background: rgba(255, 255, 255, 0.07) !important;
        color: #fff !important;
    }

    /* MegaMenu: oben dunkel -> unten hell */
    .sp-megamenu-parent .sp-dropdown .sp-dropdown-inner {
        background: linear-gradient(
            rgb(0, 99, 198),
            rgb(0, 129, 198)
        ) !important;
        color: #fff;
    }

    /* MegaMenu Links */
    .sp-megamenu-parent .sp-dropdown li.sp-menu-item > a,
    .sp-megamenu-parent .sp-dropdown li.sp-menu-item > span {
        color: #fff !important;
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        font-weight: 400 !important;
        background: transparent !important;
    }

    .sp-megamenu-parent .sp-dropdown li.sp-menu-item > a:hover {
        color: #478acc !important;
        background: transparent !important;
    }

    /* MegaMenu Gruppenüberschriften */
    .sp-megamenu-parent .sp-dropdown .sp-group-title,
    .sp-megamenu-parent .sp-dropdown .sp-menu-heading,
    .sp-megamenu-parent .sp-dropdown .sp-menu-separator,
    .sp-megamenu-parent .sp-dropdown .sp-group-title > a,
    .sp-megamenu-parent .sp-dropdown .sp-group-title > span {
        color: #fff !important;
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        font-weight: 600 !important;
    }

    /* Falls Icons auch innerhalb des MegaMenu vorkommen */
    .sp-megamenu-parent .sp-dropdown i {
        font-size: inherit !important;
    }
}


/* =========================================================
   3. MOBIL / TABLET – bis 991px
   ========================================================= */

@media (max-width: 991px) {

    /* #sp-menu soll den Header-Hintergrund durchscheinen lassen */
    #sp-header #sp-menu,
    #sp-header .menu-with-offcanvas,
    #sp-header .sp-megamenu-wrapper,
    #sp-header .sp-column,
    #sp-header .sp-module,
    #sp-header .offcanvas-toggler-custom,
    #sp-header #offcanvas-toggler,
    #sp-menu .offcanvas-toggler-right,
    #sp-menu .offcanvas-toggler-left,
    #offcanvas-toggler,
    #offcanvas-toggler:hover,
    #offcanvas-toggler:focus,
    #offcanvas-toggler:active,
    #offcanvas-toggler .burger-icon {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        border: 0 !important;
        box-shadow: none !important;
        outline: none !important;
    }
}

/* =========================================================
   TABLET – Hybrid-Layout
   ========================================================= */

@media (min-width: 768px) and (max-width: 991px) {

    

    #sp-section-1,
    #sp-title {
        width: 100%;
        max-width: none;
    }
}

/* Tablet: Themenbild vollständig zeigen, proportional verkleinern.
   Die natürliche Maximalbreite verhindert eine Hochskalierung. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    #sp-title .mod-custom,
    #sp-title .mod-custom p,
    #sp-title .mod-custom figure {
        display: flex;
        justify-content: center;
    }

    #sp-title .mod-custom img {
        width: min(100%, 1440px) !important;
        max-width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
        object-position: center center !important;
    }
}


/* =========================================================
   4. SMARTPHONE – bis 767px
   ========================================================= */

@media (max-width: 767px) {

    /* Saison / Spieltag mobil kompakt, aber ohne abgeschnittene Unterlängen */
    body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control) {
        font-size: 11px !important;
        height: 31px;
        min-height: 31px;
        padding: 1px 20px 2px 7px;
        line-height: 1.2 !important;
    }

    body.com-content.view-article #sp-main-body select:not(.form-select):not(.form-control) option {
        font-size: 11px !important;
    }


    /* Grundtypografie mobil */
    body {
        font-size: 13px;
    }


    /* =====================================================
       1. GRUNDLAYOUT
       Boxed Layout mobil vollständig aufheben
       ===================================================== */

    html,
    body {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        overflow-x: hidden;
    }


    /* =====================================================
       2. MOBILE HEADER
       ===================================================== */

    #sp-header {
        left: 0 !important;
        right: 0 !important;

        width: 100% !important;
        max-width: none !important;

        height: 74px !important;

        margin: 0 !important;
    }


    /* Header-Container über komplette Breite */
    #sp-header .container,
    #sp-header .container-fluid,
    #sp-header .container-inner {
        width: 100% !important;
        max-width: none !important;

        height: 100% !important;

        margin: 0 !important;

        padding-left: 8px !important;
        padding-right: 8px !important;
    }


    /* Header-Inhalte vertikal zentrieren */
    #sp-header .row,
    #sp-header .sp-row {
        height: 100% !important;
        align-items: center !important;
    }


    #sp-header .sp-column {
        height: 100% !important;

        display: flex !important;
        align-items: center !important;
    }


    /* =====================================================
       3. MOBILES LOGO
       BKV-mobile.png über Helix Mobile Logo
       ===================================================== */

    #sp-header .logo {
        height: 100% !important;

        display: flex !important;
        align-items: center !important;

        position: static !important;
        top: auto !important;

        margin: 0 !important;
    }


    #sp-header .logo-image-phone {
        display: block !important;

        height: 56px !important;
        width: auto !important;
        max-height: 56px !important;

        margin: 0 !important;
    }


    /* Fallback, falls Helix .logo-image verwendet */
    #sp-header .logo-image,
    #sp-header .logo img {
        max-height: 56px !important;
        width: auto !important;

        margin-left: 0 !important;
    }


    /* =====================================================
       4. HAMBURGER IM HEADER
       ===================================================== */

    #sp-menu {
        height: 100% !important;

        margin-right: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
    }


    #offcanvas-toggler {
        position: static !important;
        top: auto !important;

        margin: 0 !important;

        padding-left: 8px !important;
        padding-right: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;

        border: 0 !important;
        box-shadow: none !important;
        outline: none !important;
    }


    /* =====================================================
       5. OFFCANVAS – GRÖSSE
       ===================================================== */

    .offcanvas-menu {
        width: 58vw !important;
        max-width: 58vw !important;
        min-width: 0 !important;
    }


    body.ltr.offcanvas-active .offcanvas-menu {
        right: 0 !important;
        left: auto !important;
    }


    /* Innenbereich kompakter */
    .offcanvas-menu .offcanvas-inner {
        padding-top: 18px !important;
        padding-right: 12px !important;
        padding-left: 16px !important;
    }


    /* =====================================================
       6. OFFCANVAS – TYPOGRAFIE
       ===================================================== */

    .offcanvas-menu,
    .offcanvas-menu .offcanvas-inner,
    .offcanvas-menu .offcanvas-inner ul.menu,
    .offcanvas-menu .offcanvas-inner ul.menu li,
    .offcanvas-menu .offcanvas-inner ul.menu li > a,
    .offcanvas-menu .offcanvas-inner ul.menu li > span,
    .offcanvas-menu .offcanvas-inner ul.menu li > .menu-separator,
    .offcanvas-menu .offcanvas-inner ul.menu li > .nav-header {
        font-size: 14px !important;
    }


    /* =====================================================
       7. OFFCANVAS – EBENE 1
       BKV / Fußball / Tischtennis / Badminton ...
       ===================================================== */

    .offcanvas-menu .offcanvas-inner ul.menu > li {
        margin: 0 !important;
    }


    .offcanvas-menu .offcanvas-inner ul.menu > li > a,
    .offcanvas-menu .offcanvas-inner ul.menu > li > span,
    .offcanvas-menu .offcanvas-inner ul.menu > li > .menu-separator,
    .offcanvas-menu .offcanvas-inner ul.menu > li > .nav-header {
        min-height: 42px !important;

        padding-top: 9px !important;
        padding-bottom: 9px !important;

        margin: 0 !important;

        line-height: 22px !important;

        display: flex !important;
        align-items: center !important;
    }


    /* =====================================================
       8. OFFCANVAS – EBENE 2
       Allgemein / Stadtliga / A-Klasse / Pokal ...
       ===================================================== */

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child {
        margin: 0 !important;
        padding-left: 14px !important;
    }


    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li {
        margin: 0 !important;
    }


    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > a,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > span,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > .menu-separator,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > .nav-header {
        min-height: 36px !important;

        padding-top: 7px !important;
        padding-bottom: 7px !important;

        margin: 0 !important;

        line-height: 20px !important;

        display: flex !important;
        align-items: center !important;
    }


    /* =====================================================
       9. OFFCANVAS – EBENE 3
       Aktuelles / Tabelle / Spielplan / Sperren ...
       ===================================================== */

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > ul.menu-child {
        margin: 0 !important;
        padding-left: 14px !important;
    }


    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > ul.menu-child > li {
        margin: 0 !important;
    }


    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > ul.menu-child > li > a,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > ul.menu-child > li > span {
        min-height: 32px !important;

        padding-top: 5px !important;
        padding-bottom: 5px !important;

        margin: 0 !important;

        line-height: 20px !important;

        display: flex !important;
        align-items: center !important;
    }


    /* =====================================================
       10. OFFCANVAS – PFEILE / TOGGLER
       ===================================================== */

    .offcanvas-menu .menu-toggler {
        min-width: 34px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
    }


    /* Ebene 1 */
    .offcanvas-menu .offcanvas-inner
    ul.menu > li > .menu-toggler,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > a .menu-toggler,

    .offcanvas-menu .offcanvas-inner
    ul.menu > li > span .menu-toggler {
        min-height: 42px !important;
    }


    /* Ebene 2 */
    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li .menu-toggler {
        min-height: 36px !important;
    }


    /* Ebene 3 */
    .offcanvas-menu .offcanvas-inner
    ul.menu > li > ul.menu-child > li > ul.menu-child > li .menu-toggler {
        min-height: 32px !important;
    }


    /* =====================================================
       11. OFFCANVAS – SCHLIESSEN
       ===================================================== */

    .offcanvas-menu .close-offcanvas {
        font-size: 22px !important;

        top: 14px !important;
        right: 12px !important;
    }


    /* =====================================================
       12. MOBILE CONTENT
       Boxed Layout deaktivieren
       ===================================================== */

    #sp-main,
    #sp-main-body,
    .body-innerwrapper,
    .body-wrapper {
        width: 100% !important;
        max-width: none !important;

        margin-left: 0 !important;
        margin-right: 0 !important;
    }


    #sp-main-body {
        padding-top: 5px !important;
        padding-right: 10px !important;
        padding-bottom: 20px !important;
        padding-left: 10px !important;
    }


    #sp-main .container,
    #sp-main-body .container,
    #sp-main .container-fluid,
    #sp-main-body .container-fluid {
        width: 100% !important;
        max-width: none !important;

        margin-left: 0 !important;
        margin-right: 0 !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
	
	#sp-main {
        margin-top: 74px !important;
        min-height: calc(100vh - 74px) !important;
    }


    /* =====================================================
       13. MOBILE TABELLEN
       ===================================================== */

    #sp-main-body table {
        width: 100% !important;
        max-width: 100% !important;
    }
	
	/* =====================================================
	   MOBILE ÜBERSCHRIFTEN
	   Kompakter als Desktop
	===================================================== */

	#sp-main-body h1 {
		font-size: 21px !important;
		line-height: 1.25 !important;
		font-weight: 600 !important;
		margin-top: 0 !important;
		margin-bottom: 10px !important;
	}

	#sp-main-body h2 {
		font-size: 19px !important;
		line-height: 1.3 !important;
		font-weight: 600 !important;
		margin-top: 12px !important;
		margin-bottom: 8px !important;
	}

	#sp-main-body h3 {
		font-size: 17px !important;
		line-height: 1.3 !important;
		font-weight: 600 !important;
		margin-top: 10px !important;
		margin-bottom: 7px !important;
	}

	#sp-main-body h4,
	#sp-main-body h5,
	#sp-main-body h6 {
		font-size: 15px !important;
		line-height: 1.35 !important;
		font-weight: 600 !important;
		margin-top: 8px !important;
		margin-bottom: 6px !important;
	}
	
	 #sp-main-body h1,
    #sp-main-body .page-header h1,
    #sp-main-body .article-header h1 {
        font-size: 26px !important;
        line-height: 1.2 !important;
        margin-bottom: 14px !important;
    }


    /* =====================================================
       MOBILE FOOTER
       Echte 50/50-Grenze mit getrenntem Umbruch
       ===================================================== */

    

    

    

    

    

    

    

    

    /* Links */
    

    

    

    

    

    /* Rechts: Social Icons oben, Copyright darunter */
    

    

    

    

    /* Moderner Content – mobile Feinabstimmung */
#sp-main-body {
        background: var(--bkv-page-bg);
    }

    #sp-main-body > .container > .container-inner {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;

        padding: 14px 0 20px;

        margin-top: 0;
        margin-bottom: 0;
    }

    #sp-main-body h1,
    #sp-main-body .page-header h1,
    #sp-main-body .article-header h1 {
        padding-bottom: 10px !important;
        margin-bottom: 16px !important;
    }

    #sp-main-body h1::after,
    #sp-main-body .page-header h1::after,
    #sp-main-body .article-header h1::after {
        width: 38px;
        height: 3px;
    }

    #sp-main-body table {
        border-radius: 7px;
        box-shadow: none;
    }
}






/* =========================================================
   OFFCANVAS – GEOMETRIE / SCHLIESSEN
   Helix steuert Öffnen/Schließen; CSS korrigiert nur Position
   und verhindert sichtbare Reste im geschlossenen Zustand.
   ========================================================= */

/*
 * Tablet + Mobile:
 * Offcanvas sitzt rechts und ist im geschlossenen Zustand
 * vollständig außerhalb des Viewports.
 *
 * transform statt negativer right-Werte:
 * Damit bleibt die Lösung unabhängig von der tatsächlichen
 * Offcanvas-Breite und es kann kein blauer Rest sichtbar bleiben.
 */
@media (max-width: 991px) {

    .offcanvas-menu {
        right: 0 !important;
        left: auto !important;

        transform: translateX(100%) !important;
        transition: transform 0.30s ease !important;

        visibility: hidden;
    }

    body.offcanvas-active .offcanvas-menu,
    body.ltr.offcanvas-active .offcanvas-menu {
        right: 0 !important;
        left: auto !important;

        transform: translateX(0) !important;
        visibility: visible;
    }
}

/* Gewünschte schmalere Offcanvas-Breite auf Smartphones */
@media (max-width: 767px) {
    .offcanvas-menu {
        width: 45vw !important;
        max-width: 45vw !important;
        min-width: 0 !important;
    }
}

/*
 * Im HTML gibt es genau EINEN Schließen-Link:
 * <a class="close-offcanvas"><div class="burger-icon">...</div></a>
 *
 * Eventuelle zusätzliche Template-Pseudoelemente werden unterdrückt,
 * damit nur das Helix-X aus dem burger-icon sichtbar bleibt.
 */
.offcanvas-menu .close-offcanvas::before,
.offcanvas-menu .close-offcanvas::after {
    content: none !important;
    display: none !important;
}

/* Smartphone: dauerhaft kompakter Header und kleineres Logo. */
@media (max-width: 767.98px) {
    #sp-header,
    #sp-header .logo-image-phone,
    #sp-header .logo-image,
    #sp-header .logo img,
    body.itemid-116 #sp-content-menu.is-docked {
        transition: height .2s ease, max-height .2s ease, top .2s ease !important;
    }

    #sp-header {
        height: 58px !important;
    }

    #sp-header .logo-image-phone,
    #sp-header .logo-image,
    #sp-header .logo img {
        height: 43px !important;
        max-height: 43px !important;
        width: auto !important;
    }

    #sp-main {
        margin-top: 58px !important;
        min-height: calc(100vh - 58px) !important;
    }

    body.itemid-116 #sp-content-menu.is-docked {
        top: 58px !important;
    }
}

/* Fußball: dieselbe Bereichsmenü-Größe auch auf Tabelle und Spielplan.
   Das Raster oberhalb bleibt dabei ausschließlich der Übersicht vorbehalten. */
body:is(.itemid-223, .itemid-224) #sp-position1 > .bkv-sport-card {
    position: relative;
    padding-top: 46px;
}

body:is(.itemid-223, .itemid-224) #sp-position1 .sp-module:has(.menubkv-fb-area-menu) {
    position: absolute;
    z-index: 30;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu {
    position: relative;
    z-index: 30;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(calc(100% - 32px), 1184px);
    max-width: 1184px;
    margin: -16px auto 0 !important;
    padding: 0 !important;
    overflow: hidden;
    list-style: none;
    background: #fff;
    border: 1px solid #dce4ed;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .14);
}

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu.is-docked {
    position: fixed !important;
    top: 80px !important;
    left: 50%;
    margin: 0 !important;
    transform: translateX(-50%);
    z-index: 9998;
}

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li {
    display: flex;
    min-width: 0;
    margin: 0 !important;
    border-right: 1px solid #e2e8f0;
}
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li:last-child { border-right: 0; }

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 56px;
    height: 56px;
    padding: 9px 14px 7px;
    color: #26364b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a::before {
    display: inline-block;
    width: 19px;
    flex: 0 0 19px;
    color: #0b2f5f;
    font-family: "Font Awesome 6 Free";
    font-size: 19px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}
body:is(.itemid-223, .itemid-224) #sp-position1 .menubkv-fb-area-menu a[href*="uebersicht"]::before,
body:is(.itemid-223, .itemid-224) #sp-position1 .menubkv-fb-area-menu a[href*="übersicht"]::before { content: "\f00a"; }
body:is(.itemid-223, .itemid-224) #sp-position1 .menubkv-fb-area-menu a[href*="tabelle"]::before { content: "\f080"; }
body:is(.itemid-223, .itemid-224) #sp-position1 .menubkv-fb-area-menu a[href*="spielplan"]::before { content: "\f133"; }

body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: transparent;
}
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li.active > a,
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a:hover,
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a:focus-visible { color: #075ca8; background: #f4f9fd; }
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li.active > a::before { color: #075ca8; }
body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li.active > a::after { background: #075ca8; }

@media (min-width: 992px) {
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu.is-docked > li > a {
        min-height: 44px;
        height: 44px;
        gap: 7px;
        padding: 0 12px;
        font-size: 12px;
        line-height: 1;
    }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu.is-docked > li > a::before {
        width: 17px;
        flex-basis: 17px;
        font-size: 17px;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body:is(.itemid-223, .itemid-224) #sp-position1 > .bkv-sport-card { padding-top: 38px; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu { width: calc(100% - 32px) !important; max-width: none !important; margin: -14px 16px 0 !important; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu.is-docked { top: 74px !important; left: 16px; width: calc(100% - 32px) !important; margin: 0 !important; transform: none; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a { min-height: 44px !important; height: 44px !important; gap: 7px !important; padding: 0 10px !important; font-size: 12px !important; white-space: nowrap !important; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a::before { width: 17px; flex-basis: 17px; font-size: 17px !important; }
}

@media (max-width: 767.98px) {
    body:is(.itemid-223, .itemid-224) #sp-position1 > .bkv-sport-card { padding-top: 30px; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu { width: 100% !important; max-width: none !important; margin: -8px 0 0 !important; border-right: 0 !important; border-left: 0 !important; border-radius: 0 !important; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu.is-docked { top: 58px !important; left: 0; width: 100% !important; margin: 0 !important; transform: none; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a { min-height: 34px !important; height: 34px !important; gap: 4px !important; padding: 3px 5px !important; font-size: 9.5px !important; white-space: nowrap !important; }
    body:is(.itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a::before { width: 12px; flex-basis: 12px; font-size: 11px !important; }
}

/* =========================================================
   FUSSBALL-ÜBERSICHT – MODULRASTER
   Grundlage analog zur Tischtennis-Übersicht. Die Regeln sind
   ausschließlich auf den neuen Menüpunkt „Fußball / Übersicht"
   (Itemid 222) begrenzt und berühren keine bestehenden Bereiche.
   ========================================================= */
body.itemid-222 #sp-position1 > .bkv-sport-card {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 14px;
}

body.itemid-222 #sp-position1 > .bkv-sport-card > .sp-module {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Reihenfolge: nächste Spiele | Aktuelles, darunter Tabelle | Ergebnisse. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { grid-column: 1; grid-row: 1; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { grid-column: 2; grid-row: 1; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { grid-column: 1; grid-row: 2; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { grid-column: 2; grid-row: 2; }

/* Bereits vorbereitete Klassen für die späteren Modul-Inhalte. */
body.itemid-222 .bkv-fb-overview-upcoming,
body.itemid-222 .bkv-fb-overview-news,
body.itemid-222 .bkv-fb-overview-table,
body.itemid-222 .bkv-fb-overview-matches {
    height: 100%;
    box-sizing: border-box;
}

body.itemid-222 .bkv-fb-overview-upcoming,
body.itemid-222 .bkv-fb-overview-news,
body.itemid-222 .bkv-fb-overview-table,
body.itemid-222 .bkv-fb-overview-matches {
    padding: 18px 19px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

@media (max-width: 991.98px) {
    body.itemid-222 #sp-position1 > .bkv-sport-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { order: 1; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { order: 2; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { order: 3; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { order: 4; }
}

/* Einzelansicht der Meldungen: ruhige, gut lesbare weiße Beitragskarte. */
body.itemid-161.com-content.view-article #sp-main-body .article-details {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 34px 34px;
    background: #fff;
    border: 1px solid #dbe6ef;
    border-radius: 10px;
    box-shadow: 0 8px 22px rgba(16, 53, 89, .08);
}

body.itemid-161.com-content.view-article #sp-main-body .article-details .article-full-image,
body.itemid-161.com-content.view-article #sp-main-body .article-details .article-intro-image,
body.itemid-161.com-content.view-article #sp-main-body .article-details .item-image {
    display: block;
    float: none;
    width: min(100%, 900px);
    margin: 0 auto 26px;
    overflow: hidden;
    border-radius: 7px;
    background: #f4f7fa;
}

body.itemid-161.com-content.view-article #sp-main-body .article-details .article-full-image img,
body.itemid-161.com-content.view-article #sp-main-body .article-details .article-intro-image img,
body.itemid-161.com-content.view-article #sp-main-body .article-details .item-image img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

body.itemid-161.com-content.view-article #sp-main-body .article-details .article-header {
    margin-bottom: 18px;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    margin: 0 0 16px;
    padding: 8px 12px;
    color: #0067b9;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    background: #edf7fd;
    border: 1px solid #b9d8ed;
    border-radius: 5px;
}

/* Detailansicht: Navigation oberhalb des Bildes, Datum direkt am Titel. */
body.itemid-161.com-content.view-article #sp-main-body .article-details > .bkv-news-detail-back,
body.itemid-161.com-content.view-article #sp-main-body .article-details > div > .bkv-news-detail-back {
    margin: 0 0 16px;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
    color: #607990;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-badge {
    display: flex;
    width: fit-content;
    align-items: center;
    margin: 0 0 8px;
    padding: 4px 8px;
    border-radius: 4px;
    color: #fff;
    background: #0878bd;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

body.itemid-161.com-content.view-article #sp-main-body .article-header .bkv-news-detail-badge + .bkv-news-detail-date {
    clear: both;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-original-meta {
    display: none !important;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-date .fa {
    color: #0878bd;
    font-size: 13px;
}

body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-back:hover,
body.itemid-161.com-content.view-article #sp-main-body .bkv-news-detail-back:focus-visible {
    color: #fff;
    background: #006fbd;
    border-color: #006fbd;
}

body.itemid-161.com-content.view-article #sp-main-body .article-details [itemprop="articleBody"] {
    max-width: 960px;
}

@media (max-width: 767.98px) {
    body.itemid-161.com-content.view-article #sp-main-body .article-details {
        margin: 0 10px;
        padding: 20px 18px 24px;
        border-radius: 8px;
    }

    body.itemid-161.com-content.view-article #sp-main-body .article-details .article-full-image,
    body.itemid-161.com-content.view-article #sp-main-body .article-details .article-intro-image,
    body.itemid-161.com-content.view-article #sp-main-body .article-details .item-image {
        width: 100%;
        margin-bottom: 18px;
        border-radius: 5px;
    }
}

/* Gesamtansicht „Alle Meldungen“: vier kompakte Karten auf großen Bildschirmen.
   Das Kategorienbild bleibt ausschließlich der Bild-Fallback. */
@media (min-width: 992px) {
    body.itemid-161 .article-list.bkv-news-card > .row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
    }

    body.itemid-161 .article-list.bkv-news-card .article {
        min-height: 350px;
    }

    body.itemid-161 .article-list.bkv-news-card .article::before {
        flex-basis: 118px;
        height: 118px;
        background-position: left center;
    }

    body.itemid-161 .article-list.bkv-news-card .article-body {
        padding: 13px 14px 46px;
    }

    body.itemid-161 .article-list.bkv-news-card .article-header::before {
        margin-bottom: 7px;
        padding: 3px 7px;
        font-size: 11px;
    }

    body.itemid-161 .article-list.bkv-news-card .article-header h2 {
        margin-bottom: 7px;
        font-size: 16px;
        line-height: 1.25;
    }

    body.itemid-161 .article-list.bkv-news-card .article-introtext {
        max-height: 70px;
        font-size: 12px;
        line-height: 1.42;
    }

    body.itemid-161 .article-list.bkv-news-card .article-info {
        right: 14px;
        bottom: 34px;
        left: 14px;
        font-size: 11px;
    }

    body.itemid-161 .article-list.bkv-news-card .article::after {
        bottom: 13px;
        left: 14px;
        font-size: 12px;
    }
}

/* Beitrags-/Introbild hat Vorrang vor dem Kategorien-Fallback. */
body.itemid-161 .article-list.bkv-news-card .article:has(.article-image img, .item-image img, .article-intro-image img, figure img)::before {
    display: none;
}

body.itemid-161 .article-list.bkv-news-card .article .article-image,
body.itemid-161 .article-list.bkv-news-card .article .item-image,
body.itemid-161 .article-list.bkv-news-card .article .article-intro-image,
body.itemid-161 .article-list.bkv-news-card .article > figure {
    display: block;
    flex: 0 0 118px;
    order: -1;
    width: 100%;
    height: 118px;
    margin: 0;
    overflow: hidden;
}

body.itemid-161 .article-list.bkv-news-card .article .article-image img,
body.itemid-161 .article-list.bkv-news-card .article .item-image img,
body.itemid-161 .article-list.bkv-news-card .article .article-intro-image img,
body.itemid-161 .article-list.bkv-news-card .article > figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
}

@media (max-width: 991.98px) {
    body.itemid-161 .article-list.bkv-news-card .article::before {
        background-position: left center;
    }
}

/* =========================================================
   TISCHTENNIS – BEREICHSMENÜ
   Konsolidiert für 4 Menüpunkte:
   Übersicht / Tabelle / Spielplan / Bilanzen
   ========================================================= */

/* Der Übersichtsbeitrag ist nur der technische Container der Module. */
body.itemid-117 #sp-main-body .page-header,
body.itemid-117 #sp-main-body .article-header {
    display: none;
}

body.itemid-117 #sp-main-body {
    padding-top: 20px;
}

/* ---------------------------------------------------------
   Grundlayout
   Desktopbreite entspricht der inneren Contentbreite:
   1240px Containerbreite minus 2 x 28px Content-Padding = 1184px.
   --------------------------------------------------------- */

#sp-user1 ul.mod-menu.menubkv-tt-area-menu,
#sp-user1 ul.menu.menubkv-tt-area-menu {
    position: relative;
    z-index: 30;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    width: min(calc(100% - 56px), 1184px);
    max-width: 1184px;
    min-height: 0;

    margin: -16px auto 0 !important;
    padding: 0 !important;

    overflow: hidden;

    background: #fff;
    border: 1px solid #dce4ed;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .14);

    list-style: none;
}

/* ---------------------------------------------------------
   Andocken unter dem festen Header
   --------------------------------------------------------- */

#sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
#sp-user1 ul.menu.menubkv-tt-area-menu.is-docked {
    position: fixed !important;
    top: 80px !important;
    left: 50%;

    margin: 0 !important;

    transform: translateX(-50%);
    z-index: 9998;
}

.bkv-tt-area-menu-spacer {
    display: block;
    width: 100%;
    height: 0;
    overflow-anchor: none;
}

/* ---------------------------------------------------------
   Kacheln
   --------------------------------------------------------- */

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li,
#sp-user1 ul.menu.menubkv-tt-area-menu > li {
    display: flex;
    min-width: 0;
    margin: 0 !important;

    border-right: 1px solid #e2e8f0;
}

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li:last-child,
#sp-user1 ul.menu.menubkv-tt-area-menu > li:last-child {
    border-right: 0;
}

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a,
#sp-user1 ul.menu.menubkv-tt-area-menu > li > a {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    width: 100%;
    min-height: 56px;
    height: 56px;

    padding: 9px 14px 7px;

    color: #26364b;

    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;

    text-align: center;
    text-decoration: none;

    transition: color .18s ease, background-color .18s ease;
}

/* -------------------------------------------------H--------
   Icons
   --------------------------------------------------------- */

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a::before,
#sp-user1 ul.menu.menubkv-tt-area-menu > li > a::before {
    display: inline-block;

    width: 19px;
    flex: 0 0 19px;

    margin: 0;

    color: #0b2f5f;

    font-family: "Font Awesome 6 Free";
    font-size: 19px;
    font-weight: 900;
    line-height: 1;

    text-align: center;
}

/* Icon-Zuordnung nach Link – unabhängig von der Reihenfolge */
#sp-user1 .menubkv-tt-area-menu a.tt-icon-overview::before,
#sp-user1 .menubkv-tt-area-menu a[href*="uebersicht"]::before,
#sp-user1 .menubkv-tt-area-menu a[href*="übersicht"]::before,
#sp-user1 .menubkv-tt-area-menu a[href$="/tischtennis"]::before,
#sp-user1 .menubkv-tt-area-menu a[href$="/tischtennis/"]::before {
    content: "\f00a";
}

#sp-user1 .menubkv-tt-area-menu a.tt-icon-table::before,
#sp-user1 .menubkv-tt-area-menu a[href*="tabelle"]::before {
    content: "\f080";
}

#sp-user1 .menubkv-tt-area-menu a.tt-icon-schedule::before,
#sp-user1 .menubkv-tt-area-menu a[href*="spielplan"]::before {
    content: "\f133";
}

#sp-user1 .menubkv-tt-area-menu a.tt-icon-records::before,
#sp-user1 .menubkv-tt-area-menu a[href*="bilanz"]::before {
    content: "\f200";
}

/* Aktiver Balken */
#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a::after,
#sp-user1 ul.menu.menubkv-tt-area-menu > li > a::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    height: 3px;

    background: transparent;
    border-radius: 3px 3px 0 0;
}

/* Hover / Fokus / aktiv */
#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li.active > a,
#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a:hover,
#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a:focus-visible,
#sp-user1 ul.menu.menubkv-tt-area-menu > li.active > a,
#sp-user1 ul.menu.menubkv-tt-area-menu > li > a:hover,
#sp-user1 ul.menu.menubkv-tt-area-menu > li > a:focus-visible {
    color: #075ca8;
    background: #f4f9fd;
    outline: none;
}

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li.active > a::before,
#sp-user1 ul.menu.menubkv-tt-area-menu > li.active > a::before {
    color: #075ca8;
}

#sp-user1 ul.mod-menu.menubkv-tt-area-menu > li.active > a::after,
#sp-user1 ul.menu.menubkv-tt-area-menu > li.active > a::after {
    background: #075ca8;
}

/* Desktop: angedockt genauso kompakt wie das Sprungpunkt-Menü der Startseite. */
@media (min-width: 992px) {
    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked > li > a {
        min-height: 44px;
        height: 44px;
        gap: 7px;
        padding: 0 12px;
        font-size: 12px;
        line-height: 1;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked > li > a::before,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked > li > a::before {
        width: 17px;
        flex-basis: 17px;
        font-size: 17px;
    }
}

/* ---------------------------------------------------------
   Tablet – 768px bis 991px
   Vier Menüpunkte passen in eine Zeile.
   --------------------------------------------------------- */

@media (min-width: 768px) and (max-width: 991.98px) {

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu,
    #sp-user1 ul.menu.menubkv-tt-area-menu {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

        width: calc(100% - 32px) !important;
        max-width: none !important;

        margin: -14px 16px 0 !important;

        border-radius: 8px !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked {
        top: 74px !important;
        left: 16px;

        width: calc(100% - 32px) !important;
        margin: 0 !important;

        transform: none;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a {
        min-height: 44px !important;
        height: 44px !important;

        padding: 0 10px !important;
        gap: 7px !important;

        font-size: 12px !important;
        line-height: 1.1 !important;

        white-space: nowrap !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a::before,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a::before {
        width: 17px;
        flex-basis: 17px;
        font-size: 17px !important;
    }
}

/* ---------------------------------------------------------
   Smartphone – bis 767px
   Vier Menüpunkte = sauberes 2x2-Raster.
   Keine Sonderregel mehr für das letzte Element.
   --------------------------------------------------------- */

@media (max-width: 767.98px) {

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu,
    #sp-user1 ul.menu.menubkv-tt-area-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        width: 100% !important;
        max-width: none !important;

        margin: -8px 0 0 !important;

        overflow: hidden;
        white-space: normal;

        border-right: 0 !important;
        border-left: 0 !important;
        border-radius: 0 !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked {
        top: 58px !important;
        left: 0;

        width: 100% !important;
        margin: 0 !important;

        transform: none;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li {
        border-right: 1px solid #e2e8f0;
        border-bottom: 1px solid #e2e8f0;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li:nth-child(even),
    #sp-user1 ul.menu.menubkv-tt-area-menu > li:nth-child(even) {
        border-right: 0;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li:nth-last-child(-n + 2),
    #sp-user1 ul.menu.menubkv-tt-area-menu > li:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a {
        gap: 4px !important;

        min-height: 34px !important;
        height: 34px !important;

        padding: 3px 5px !important;

        font-size: 9.5px !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a::before,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a::before {
        width: 12px;
        flex-basis: 12px;

        font-size: 11px !important;
        line-height: 1;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked > li > a {
        gap: 2px !important;
        padding: 0 2px !important;
        font-size: 8.5px !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked > li > a::before,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked > li > a::before {
        width: 11px;
        flex-basis: 11px;
        font-size: 10px !important;
    }
}

/* =========================================================
   BKV-DATENTABELLEN – Palette der TT-Ergebnis-Kacheln
   =========================================================
   Einheitliche, zurückhaltende Blau-Grau-Wirkung für Tabellen in den
   Tischtennis- und übrigen Inhaltsseiten. */
body:not(.view-form) #sp-main-body table {
    background: #f7f8fa !important;
    border: 1px solid #d4dce4 !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(11, 47, 95, 0.05) !important;
    overflow: hidden;
}

body:not(.view-form) #sp-main-body table thead th {
    background: #e4f0f8 !important;
    color: #0b2f5f !important;
    border: 0 !important;
    border-bottom: 1px solid #c8d8e5 !important;
    font-weight: 700 !important;
    letter-spacing: 0.035em;
}

body:not(.view-form) #sp-main-body table tbody td {
    color: #26394c !important;
    border: 0 !important;
    border-bottom: 1px solid #dfe7ee !important;
}

body:not(.view-form) #sp-main-body table tbody tr:nth-child(odd) {
    background: #f7f8fa !important;
}

body:not(.view-form) #sp-main-body table tbody tr:nth-child(even) {
    background: #f3f6f9 !important;
}

body:not(.view-form) #sp-main-body table tbody tr:hover,
body:not(.view-form) #sp-main-body table tbody tr:nth-child(odd):hover,
body:not(.view-form) #sp-main-body table tbody tr:nth-child(even):hover {
    background: #edf3f7 !important;
}

body:not(.view-form) #sp-main-body table tbody tr:last-child td {
    border-bottom: 0 !important;
}

body:not(.view-form) #sp-main-body table td a {
    color: #26394c !important;
}

body:not(.view-form) #sp-main-body table td a:hover,
body:not(.view-form) #sp-main-body table td a:focus-visible {
    color: #0b2f5f !important;
    text-decoration-color: #155789;
}

/* =========================================================
   STARTSEITE: ANDOCKENDES CONTENT-MENUE AUF ALLEN GERAETEN
   ========================================================= */

body.itemid-116 #sp-content-menu.is-docked {
    position: fixed !important;
    top: 80px !important;
    right: 0;
    left: 0;
    width: 100%;
    z-index: 9998;
}

body.itemid-116 .bkv-content-menu-spacer {
    display: block;
    width: 100%;
    height: 0;
}

body.itemid-116 #sp-content-menu.is-docked > .container {
    margin: 0 auto !important;
}

/* Sichtbare Tiefenwirkung an der Kante zum blauen Header. */
body.itemid-116 #sp-content-menu.is-docked .container-inner {
    box-shadow:
        inset 0 10px 14px -12px rgba(2, 32, 68, .95),
        0 6px 16px rgba(10, 43, 82, .24) !important;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-116 #sp-content-menu.is-docked {
        top: 74px !important;
    }

    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item {
        min-height: 44px;
        height: 44px;
        gap: 7px;
        padding: 0 10px;
        font-size: 12px;
        line-height: 1;
        align-items: center;
    }

    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item::before {
        font-size: 17px;
        line-height: 1;
    }
}

@media (max-width: 767.98px) {
    body.itemid-116 #sp-content-menu.is-docked {
        top: 58px !important;
    }

    /* Auch an der Ausgangsposition etwas ruhiger und kompakter. */
    body.itemid-116 .bkv-content-menu__item {
        min-height: 32px !important;
        height: 32px !important;
        gap: 3px !important;
        padding: 2px 3px !important;
        font-size: 9px !important;
        line-height: 1 !important;
    }

    body.itemid-116 .bkv-content-menu__item::before {
        font-size: 11px !important;
    }

    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item {
        min-height: 32px !important;
        height: 32px !important;
        gap: 2px !important;
        padding: 0 2px !important;
        font-size: 8.5px !important;
        line-height: 1 !important;
        align-items: center;
    }

    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item::before {
        font-size: 10px !important;
        line-height: 1;
    }
}


/* Startseite Desktop: Themenbild scrollt weg, Bereichsmenue dockt am Header an. */
@media (min-width: 992px) {
    body.itemid-116 #sp-section-1 {
        margin-bottom: -16px;
    }

    body.itemid-116 #sp-content-menu {
        position: relative;
        top: auto;
        z-index: 9998;
    }

    body.itemid-116 #sp-content-menu.is-docked {
        position: fixed !important;
        top: 80px !important;
        right: 0;
        left: 0;
        width: 100%;
    }

    body.itemid-116 .bkv-content-menu-spacer {
        display: block;
        width: 100%;
        height: 0;
    }

    body.itemid-116 #sp-content-menu > .container {
        margin-top: 0 !important;
    }

    /* Angedockt bewusst flacher als direkt unter dem Themenbild. */
    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item {
        min-height: 44px;
        height: 44px;
        gap: 7px;
        padding: 0 12px;
        font-size: 12px;
        line-height: 1;
        align-items: center;
    }

    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu__item::before {
        font-size: 17px;
        line-height: 1;
    }
}


/* =========================================================
   STARTSEITE: NAECHSTE SPIELE + LETZTE ERGEBNISSE
   ========================================================= */

/* Fußball-Daten werden auf der Startseite nicht automatisiert abgefragt.
   Die Fußball-Kachel bleibt jedoch bewusst als leerer Bereich sichtbar. */

body.itemid-116 #sp-naechste-spiele,
body.itemid-116 #sp-ergebnisse {
    background: #f7f9fc;
    scroll-margin-top: 92px;
}

body.itemid-116 #sp-naechste-spiele > .container,
body.itemid-116 #sp-ergebnisse > .container {
    max-width: 1240px;
    padding-right: 28px;
    padding-left: 28px;
}

body.itemid-116 #sp-naechste-spiele .container-inner,
body.itemid-116 #sp-ergebnisse .container-inner {
    position: relative;
    padding: 72px 0 18px;
}

body.itemid-116 #sp-naechste-spiele .container-inner::before,
body.itemid-116 #sp-ergebnisse .container-inner::before {
    position: absolute;
    top: 26px;
    left: 0;
    color: #0b2f5f;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .01em;
}

body.itemid-116 #sp-naechste-spiele .container-inner::before {
    content: "NÄCHSTE SPIELE";
}

body.itemid-116 #sp-ergebnisse .container-inner::before {
    content: "LETZTE ERGEBNISSE";
}

body.itemid-116 #sp-naechste-spiele .container-inner::after,
body.itemid-116 #sp-ergebnisse .container-inner::after {
    content: "";
    position: absolute;
    top: 58px;
    left: 0;
    width: 34px;
    height: 3px;
    border-radius: 3px;
    background: #075ca8;
}

body.itemid-116 .bkv-dashboard-section .row {
    margin-right: -10px;
    margin-left: -10px;
}

body.itemid-116 .bkv-dashboard-section [id^="sp-user"],
body.itemid-116 .bkv-dashboard-section #sp-position1 {
    padding-right: 10px;
    padding-left: 10px;
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-card,
body.itemid-116 .bkv-dashboard-section .bkv-sport-card > .sp-module {
    height: 100%;
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-card > .sp-module {
    min-height: 158px;
    margin: 0;
    padding: 17px 20px 18px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #d7e1eb;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(11, 47, 95, .06);
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-football > .sp-module {
    background: #f2f7fc;
    border-color: #cbdceb;
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-tabletennis > .sp-module {
    background: #f3f6f9;
    border-color: #c8d8e5;
}

body.itemid-116 .bkv-dashboard-section .sp-module-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 13px;
    color: #0b2f5f;
    font-size: 0;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
}

body.itemid-116 .bkv-dashboard-section .sp-module-title::before {
    color: #0b2f5f;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-size: 19px;
    font-weight: 900;
}

body.itemid-116 .bkv-dashboard-section .sp-module-title::after {
    font-size: 15px;
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-football .sp-module-title::before {
    content: "\f1e3";
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-football .sp-module-title::after {
    content: "FUSSBALL";
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-tabletennis .sp-module-title::before {
    content: "\f45d";
}

body.itemid-116 .bkv-dashboard-section .bkv-sport-tabletennis .sp-module-title::after {
    content: "TISCHTENNIS";
}

body.itemid-116 .bkv-dashboard-section .bkv-dashboard-placeholder {
    color: #546476;
    font-size: 13px;
    line-height: 1.5;
}

body.itemid-116 #sp-ergebnisse .container-inner {
    padding-top: 68px;
    padding-bottom: 42px;
}

body.itemid-116 #sp-ergebnisse .container-inner::before {
    top: 22px;
}

body.itemid-116 #sp-ergebnisse .container-inner::after {
    top: 54px;
}

@media (max-width: 767px) {
    body.itemid-116 #sp-naechste-spiele > .container,
    body.itemid-116 #sp-ergebnisse > .container {
        padding-right: 20px;
        padding-left: 20px;
    }

    body.itemid-116 #sp-naechste-spiele .container-inner,
    body.itemid-116 #sp-ergebnisse .container-inner {
        padding-top: 64px;
        padding-bottom: 16px;
    }

    body.itemid-116 #sp-naechste-spiele .container-inner::before,
    body.itemid-116 #sp-ergebnisse .container-inner::before {
        top: 24px;
        font-size: 19px;
    }

    body.itemid-116 #sp-naechste-spiele .container-inner::after,
    body.itemid-116 #sp-ergebnisse .container-inner::after {
        top: 50px;
        width: 30px;
    }

    body.itemid-116 .bkv-dashboard-section [id^="sp-user"],
    body.itemid-116 .bkv-dashboard-section #sp-position1 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin-bottom: 14px;
    }

    body.itemid-116 .bkv-dashboard-section .bkv-sport-card > .sp-module {
        min-height: 132px;
        padding: 15px 16px;
    }

    body.itemid-116 .bkv-dashboard-section .sp-module-title::after {
        font-size: 14px;
    }

    body.itemid-116 #sp-ergebnisse .container-inner {
        padding-bottom: 28px;
    }
}


@media (max-width: 639.98px) {
    /* Exakt dieselbe seitliche Flucht wie das mobile Aktuelles-Raster. */
    body.itemid-116 #sp-naechste-spiele > .container,
    body.itemid-116 #sp-ergebnisse > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }
}

/* Datumszeile der Newsblogs wie im Startseitenmodul. */
body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-info {
    display: flex;
    align-items: center;
    gap: 5px;
}

body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-info::before {
    content: "\f073";
    flex: 0 0 auto;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-weight: 900;
}

/* Datum fest direkt unter dem Kategorie-Badge platzieren. */
body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-body {
    position: relative;
}

body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-header::before {
    margin-bottom: 34px;
}

body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-info {
    position: absolute !important;
    top: 47px;
    right: 19px !important;
    bottom: auto !important;
    left: 19px !important;
    margin: 0 !important;
}

body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-header h2 {
    padding-top: 22px;
}

@media (max-width: 639.98px) {
    body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-header::before {
        margin-bottom: 27px;
    }

    body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-info {
        top: 34px;
        right: 9px !important;
        left: 9px !important;
    }

    body:is(.itemid-161, .itemid-167, .itemid-168) .article-list .article-header h2 {
        padding-top: 18px;
    }
}

/* Auch auf der Startseite: Kategorie, darunter Datum, danach Titel. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 5px !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-category,
body.itemid-116 #sp-homepage-news .mod-articles-date {
    align-self: flex-start !important;
    width: auto !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Das vorhandene Helix-X sauber darstellen */
.offcanvas-menu .close-offcanvas {
    width: 34px !important;
    height: 34px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;
    margin: 0 !important;

    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Kein zweites Symbol durch geerbte Inhalte */
.offcanvas-menu .close-offcanvas > .burger-icon {
    margin: 0 !important;
}

/* =========================================================
   5. PRINT
   ========================================================= */

/* =========================================================
   PRINT
   ========================================================= */




/* =========================================================
   FOOTER – DREI BEREICHE
   Desktop: 40 % / 25 % / 35 %
   Klassen aus dem Helix Layout Builder:
   .bkv-footer-main, .bkv-footer-about,
   .bkv-footer-links, .bkv-footer-contact
   ========================================================= */

#sp-footer {
    width: 100%;
    margin-top: auto;
    padding: 0 !important;
    color: #fff;
    font-family: var(--bkv-font) !important;
    font-size: 15px;
    line-height: 1.6;
    background: linear-gradient(180deg, rgb(0, 129, 198), rgb(0, 89, 166));
}


/* =========================================================
   STARTSEITE: CONTENT-MENUE UNTER DEM THEMENBILD
   ========================================================= */

body.itemid-116 #sp-content-menu {
    position: relative;
    z-index: 20;
    width: 100%;
    background: #f7f9fc !important;
}

body.itemid-116 #sp-content-menu > .container {
    width: 100%;
    max-width: 1184px !important;
    margin: -16px auto 0 !important;
}

body.itemid-116 #sp-content-menu .container-inner {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dce4ed;
    border-radius: 7px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .14);
}

body.itemid-116 #sp-content-menu .row {
    margin: 0 !important;
}

body.itemid-116 #sp-content-menu > .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.itemid-116 #sp-user1,
body.itemid-116 #sp-content-menu .sp-column,
body.itemid-116 #sp-content-menu .sp-module,
body.itemid-116 #sp-content-menu .sp-module-content {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

body.itemid-116 .bkv-content-menu {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
}

body.itemid-116 .bkv-content-menu__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 0;
    min-height: 56px;
    height: 56px;
    padding: 9px 14px 7px;
    color: #111827 !important;
    border-right: 1px solid #edf1f5;
    border-bottom: 3px solid transparent;
    font-family: var(--bkv-font) !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none !important;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease,
                height .18s ease, min-height .18s ease, padding .18s ease,
                gap .18s ease, font-size .18s ease;
}

body.itemid-116 .bkv-content-menu__item:last-child {
    border-right: 0;
}

body.itemid-116 .bkv-content-menu__item::before {
    flex: 0 0 auto;
    color: #0b2f5f;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-size: 19px;
    font-weight: 900;
    line-height: 1;
    transition: color .2s ease, font-size .18s ease;
}

body.itemid-116 .bkv-content-menu__item:nth-child(1)::before {
    content: "\f03a";
}

body.itemid-116 .bkv-content-menu__item:nth-child(2)::before {
    content: "\f073";
}

body.itemid-116 .bkv-content-menu__item:nth-child(3)::before {
    content: "\f091";
}

body.itemid-116 .bkv-content-menu__item:nth-child(4)::before {
    content: "\f1ad";
}

body.itemid-116 .bkv-content-menu__item:hover,
body.itemid-116 .bkv-content-menu__item:focus-visible {
    color: #075ca8 !important;
    background: #f4f9fd;
    border-bottom-color: #8bbfe3;
    outline: none;
}

body.itemid-116 .bkv-content-menu__item.is-active {
    color: #075ca8 !important;
    background: #f8fbfe;
    border-bottom-color: #075ca8;
}

body.itemid-116 .bkv-content-menu__item.is-active::before {
    color: #075ca8;
}

@media (min-width: 992px) {
    body.itemid-116 #sp-content-menu.is-docked > .container {
        margin: 0 auto !important;
    }

    body.itemid-116 #sp-content-menu.is-docked .container-inner,
    body.itemid-116 #sp-content-menu.is-docked .row,
    body.itemid-116 #sp-content-menu.is-docked .bkv-content-menu {
        min-height: 44px;
    }
}

@media (max-width: 767.98px) {
    body.itemid-116 #sp-content-menu > .container {
        margin-top: -8px !important;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding: 0 !important;
    }

    body.itemid-116 #sp-content-menu .container-inner {
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    body.itemid-116 .bkv-content-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.itemid-116 .bkv-content-menu__item {
        gap: 8px;
        min-height: 52px;
        padding: 9px 8px 7px;
        border-bottom: 1px solid #edf1f5;
        font-size: 12px;
    }

    body.itemid-116 .bkv-content-menu__item:nth-child(2) {
        border-right: 0;
    }

    body.itemid-116 .bkv-content-menu__item:nth-child(3),
    body.itemid-116 .bkv-content-menu__item:nth-child(4) {
        border-bottom: 3px solid transparent;
    }

    body.itemid-116 .bkv-content-menu__item::before {
        font-size: 17px;
    }

    body.itemid-116 .bkv-content-menu__item.is-active {
        border-bottom: 3px solid #075ca8;
    }
}

/* =========================================================
   STARTSEITE: AKTUELLES ALS KACHELRASTER
   ========================================================= */

/* Der bisherige Hauptbeiträge-Blog wird nur auf der Startseite ersetzt.
   Wichtig: Itemid 116 wird auch nach der Anmeldung für die Joomla-MFA-
   Verifizierung verwendet. Daher nur die Content-Ansicht ausblenden,
   niemals die com_users-Captive-Ansicht. */
body.itemid-116.com-content #sp-main-body {
    display: none !important;
}

body.itemid-116 #sp-homepage-news {
    padding: 42px 0 56px;
    background: #f7f9fc;
}

body.itemid-116 #sp-homepage-news > .container {
    width: 100%;
    max-width: 1240px !important;
    margin: 0 auto;
    padding-right: 28px;
    padding-left: 28px;
}

body.itemid-116 #sp-homepage-news .sp-module.bkv-news-grid {
    margin: 0;
}

/* Die Modulreihenfolge bleibt unabhaengig von der Joomla-Sortierung stabil. */
body.itemid-116 #sp-homepage-news .sp-column.bkv-news-grid {
    display: flex;
    flex-direction: column;
}

body.itemid-116 #sp-homepage-news .sp-column.bkv-news-grid > .sp-module.bkv-news-grid {
    order: 1;
}

body.itemid-116 #sp-homepage-news .sp-column.bkv-news-grid > .sp-module.bkv-news-all {
    order: 2;
}

body.itemid-116 #sp-homepage-news .sp-module-title {
    position: relative;
    margin: 0 0 28px;
    padding: 0 0 12px;
    color: #062b5c;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .01em;
    text-transform: uppercase;
}

body.itemid-116 #sp-homepage-news .sp-module-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 38px;
    height: 3px;
    border-radius: 999px;
    background: #087ac1;
}

body.itemid-116 #sp-homepage-news .mod-articles-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-grid > li {
    display: flex;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-item {
    position: relative;
    display: flex;
    width: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-top: 4px solid #087ac1;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .07);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    cursor: pointer;
}

body.itemid-116 #sp-homepage-news .mod-articles-item:hover {
    transform: translateY(-3px);
    border-color: #cbd9e7;
    box-shadow: 0 10px 24px rgba(10, 43, 82, .12);
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 18px 19px 19px;
}

/*
 * Automatische Standardbilder fuer die Startseiten-Kacheln.
 * Die Zuordnung folgt dem Kategoriepfad im Beitragslink; dadurch muessen
 * neue Beitraege aus Aktuelles-Fussball und Aktuelles-Tischtennis nicht
 * einzeln mit einem Einleitungsbild versehen werden.
 */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) {
    --bkv-category-image: url("/images/bkv-kategorien/fb.png");
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]),
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) {
    --bkv-category-image: url("/images/bkv-kategorien/tt.png");
}

/* Bereits vorbereitet fuer spaetere Termin- oder Kalenderkacheln. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/termine/"]),
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/kalender/"]) {
    --bkv-category-image: url("/images/bkv-kategorien/calendar.png");
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"])::before,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"])::before,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"])::before,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/termine/"])::before,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/kalender/"])::before {
    content: "";
    order: 1;
    display: block;
    flex: 0 0 160px;
    height: 160px;
    margin: -18px -19px 14px;
    background-color: #dce9f4;
    background-image: var(--bkv-category-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Ein spaeter gepflegtes Einleitungsbild wird automatisch zum Kartenbild. */
body.itemid-116 #sp-homepage-news .mod-articles-image,
body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
    order: 1;
    margin: -18px -19px 14px;
}

body.itemid-116 #sp-homepage-news .mod-articles-image img,
body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
    display: block;
    width: 100%;
    height: 160px;
    object-fit: cover;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
    order: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin: 0 0 13px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl dt {
    display: none;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl dd {
    margin: 0;
}

body.itemid-116 #sp-homepage-news .mod-articles-category {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    color: #fff;
    background: #075ca8;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}

body.itemid-116 #sp-homepage-news .mod-articles-category .icon-folder-open {
    display: none;
}

/* Kurze Rubriknamen wie im Entwurf, ebenfalls automatisch aus dem Pfad. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) .mod-articles-category,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) .mod-articles-category,
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) .mod-articles-category {
    font-size: 0;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) .mod-articles-category::after {
    content: "Fußball";
    font-size: 12px;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) .mod-articles-category::after {
    content: "Tischtennis";
    font-size: 12px;
}

body.itemid-116 #sp-homepage-news .mod-articles-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

body.itemid-116 #sp-homepage-news .mod-articles-title {
    order: 3;
    margin: 0 0 12px !important;
    color: #111827;
    font-size: 19px !important;
    font-weight: 700;
    line-height: 1.28;
}

body.itemid-116 #sp-homepage-news .mod-articles-title a {
    color: inherit !important;
    text-decoration: none !important;
}

/* Der Titellink spannt sich unsichtbar ueber die gesamte Kachel. */
body.itemid-116 #sp-homepage-news .mod-articles-title a::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
}

body.itemid-116 #sp-homepage-news .mod-articles-title a:focus-visible::after {
    outline: 3px solid #087ac1;
    outline-offset: -3px;
    border-radius: 7px;
}

body.itemid-116 #sp-homepage-news .mod-articles-title a:hover,
body.itemid-116 #sp-homepage-news .mod-articles-title a:focus {
    color: #075ca8 !important;
}

/* Ueberschriften und Datumszeilen aus alten Einleitungstexten nicht doppeln. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content > h2,
body.itemid-116 #sp-homepage-news .mod-articles-item-content > p:has(> b:only-child),
body.itemid-116 #sp-homepage-news .mod-articles-item-content > p:has(> strong:only-child) {
    display: none;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
    order: 4;
    margin: 0 0 10px;
    color: #475569;
    font-size: 14px;
    line-height: 1.5;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content > p:last-child {
    margin-bottom: 0;
}

/* Sichtbarer Abschlusslink; er gehoert zum vollflaechigen Titellink. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
    content: "Weiterlesen \2192";
    order: 5;
    margin-top: auto;
    padding-top: 12px;
    color: #075ca8;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    pointer-events: none;
}

body.itemid-116 #sp-homepage-news .mod-articles-readmore,
body.itemid-116 #sp-homepage-news .readmore {
    order: 5;
    margin-top: auto;
    padding-top: 10px;
}

body.itemid-116 #sp-homepage-news .mod-articles-readmore a,
body.itemid-116 #sp-homepage-news .readmore a {
    color: #075ca8 !important;
    font-weight: 700;
    text-decoration: none !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-readmore a::after,
body.itemid-116 #sp-homepage-news .readmore a::after {
    content: "  \2192";
}

/* Zentraler Link zur vollständigen Meldungsübersicht. */
body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
    margin: 30px 0 0;
    text-align: center;
}

body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all p {
    margin: 0;
}

body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 24px;
    color: #fff !important;
    background: #075ca8;
    border: 1px solid #075ca8;
    border-radius: 5px;
    box-shadow: 0 3px 8px rgba(7, 92, 168, .18);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease,
                box-shadow .2s ease, transform .2s ease;
}

body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a:hover,
body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a:focus-visible {
    color: #fff !important;
    background: #064d8c;
    border-color: #064d8c;
    box-shadow: 0 6px 14px rgba(7, 77, 140, .24);
    transform: translateY(-1px);
}

@media (max-width: 991.98px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Der gemeinsame Spielplan benötigt seine vollständige Filterleiste. */
.tt-page-toolbar.tt-page-toolbar--spielplan {
    align-items: end !important;
    justify-content: space-between !important;
}

.tt-page-toolbar.tt-page-toolbar--spielplan > .tt-spielplan-filter {
    display: flex !important;
}

@media (max-width: 767px) {
    .tt-page-toolbar.tt-page-toolbar--spielplan {
        align-items: stretch !important;
    }
}

/* Spielhinweise: Hover/Fokus am Desktop, Antippen auf Touch-Geräten. */
#sp-main-body .bkv-gamehint {
    position: relative;
    top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0 2px;
    padding: 0;
    vertical-align: middle;
    background: transparent !important;
    border: 0 !important;
    border-radius: 4px;
    box-shadow: none !important;
    cursor: pointer;
    flex: 0 0 22px;
}

#sp-main-body .bkv-gamehint:hover,
#sp-main-body .bkv-gamehint:focus-visible,
#sp-main-body .bkv-gamehint.is-open {
    background: transparent !important;
    outline: none;
}

#sp-main-body .bkv-gamehint img {
    display: block;
    width: 18px;
    height: 18px;
}

#sp-main-body .bkv-gamehint__tooltip {
    position: absolute;
    z-index: 30;
    bottom: calc(100% + 7px);
    left: 50%;
    display: none;
    width: max-content;
    max-width: min(260px, 70vw);
    padding: 7px 9px;
    color: #fff;
    background: #172b44;
    border: 0;
    border-radius: 5px;
    box-shadow: 0 4px 12px rgba(11, 47, 95, .25);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    text-align: left;
    white-space: normal;
    transform: translateX(-50%);
}

#sp-main-body .bkv-gamehint:hover .bkv-gamehint__tooltip,
#sp-main-body .bkv-gamehint:focus-visible .bkv-gamehint__tooltip,
#sp-main-body .bkv-gamehint.is-open .bkv-gamehint__tooltip {
    display: block;
}

#sp-main-body .tt-pokalspiele td[data-label="Hinweis"] {
    text-align: center !important;
}

/* Meisterschaft und Pokal: schmale, optisch headerlose Hinweis-Spalte. */
#sp-main-body .tt-meisterschaft-spiele,
#sp-main-body .tt-pokalspiele {
    position: relative;
    z-index: 2;
    overflow: visible !important;
}

/* Hinweis klappt im Ergebnisfeld in die Tabelle hinein statt über den Rand. */
#sp-main-body .tt-meisterschaft-spiele td:last-child .bkv-gamehint__tooltip,
#sp-main-body .tt-pokalspiele td:last-child .bkv-gamehint__tooltip {
    right: 0;
    left: auto;
    transform: none;
}

#sp-main-body .bkv-gamehint-inline {
    display: inline-flex;
    align-items: center;
    height: 22px;
    gap: 2px;
    min-width: 30px;
    margin-left: 12px;
    vertical-align: middle;
    line-height: 1;
}

#sp-main-body .bkv-game-row { cursor: pointer; }

/* Ergebnis und Hinweis-Icons bilden eine gemeinsame, mittig ausgerichtete Zeile. */
#sp-main-body .tt-meisterschaft-spiele td[data-label="Ergebnis"],
#sp-main-body .tt-pokalspiele td[data-label="Ergebnis"] {
    vertical-align: middle !important;
    white-space: nowrap;
}

/* Virtuelle, feste Ergebnis- und Icon-Spalten im selben Tabellenfeld. */
#sp-main-body .bkv-result-layout {
    display: inline-flex;
    align-items: center;
    height: 22px;
    vertical-align: middle;
}

#sp-main-body .bkv-score {
    display: inline-flex;
    flex: 0 0 48px;
    align-items: center;
    height: 22px;
    text-align: left;
}

/* Tischtennis-Administration: einheitliche Aktionsleiste für den Spielplan. */
#sp-main-body .bkv-admin-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 18px 0 30px;
}

#sp-main-body .bkv-admin-actions form {
    display: inline-flex !important;
    margin: 0 !important;
}

#sp-main-body .bkv-admin-actions button,
#sp-main-body .bkv-admin-actions .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin: 0 !important;
    padding: 8px 15px !important;
    color: #fff !important;
    background: #0879c9 !important;
    border: 1px solid #0879c9 !important;
    border-radius: 5px !important;
    box-shadow: 0 2px 5px rgba(0, 67, 134, .18);
    font: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

#sp-main-body .bkv-admin-actions button:hover,
#sp-main-body .bkv-admin-actions .btn:hover,
#sp-main-body .bkv-admin-actions button:focus-visible,
#sp-main-body .bkv-admin-actions .btn:focus-visible {
    color: #fff !important;
    background: #005da9 !important;
    border-color: #005da9 !important;
    box-shadow: 0 4px 10px rgba(0, 67, 134, .24);
    outline: none;
    transform: translateY(-1px);
}

#sp-main-body .bkv-admin-actions form:last-child button {
    background: #075ca8 !important;
    border-color: #075ca8 !important;
}

@media (max-width: 639.98px) {
    #sp-main-body .bkv-admin-actions {
        gap: 8px;
        margin-bottom: 24px;
    }

    #sp-main-body .bkv-admin-actions button,
    #sp-main-body .bkv-admin-actions .btn {
        min-height: 34px;
        padding: 7px 11px !important;
        font-size: 13px !important;
    }
}

/* Gleiche Zeilenhöhe – unabhängig davon, ob ein Spielhinweis vorhanden ist. */
#sp-main-body .tt-meisterschaft-spiele tbody tr,
#sp-main-body .tt-pokalspiele tbody tr:not(.tt-pokalspiele__round) {
    height: 44px;
}

#sp-main-body .tt-meisterschaft-spiele tbody td,
#sp-main-body .tt-pokalspiele tbody td {
    vertical-align: middle !important;
}

@media (max-width: 639.98px) {
    body.itemid-116 #sp-homepage-news {
        padding: 30px 0 38px;
    }

    body.itemid-116 #sp-homepage-news > .container {
        box-sizing: border-box;
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.itemid-116 #sp-homepage-news .sp-module-title {
        width: 100%;
        max-width: none;
        margin: 0 0 16px;
        padding-bottom: 8px;
        font-size: 20px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-grid > li {
        width: 100%;
        max-width: none;
    }

    /* Mobil nur die zwei neuesten Meldungen zeigen. */
    body.itemid-116 #sp-homepage-news .mod-articles-grid > li:nth-child(n + 3) {
        display: none;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 9px 9px 11px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 78px !important;
        height: 78px !important;
        margin: -9px -9px 9px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -9px -9px 9px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 78px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
        gap: 6px 10px;
        margin-bottom: 7px;
        font-size: 10px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-category {
        padding: 3px 6px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        margin-bottom: 5px !important;
        font-size: 14px !important;
        line-height: 1.25;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        display: block;
        margin-bottom: 0;
        overflow: visible;
        font-size: 12px;
        line-height: 1.4;
        -webkit-line-clamp: unset;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
        padding-top: 9px;
        font-size: 12px;
    }

    body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
        margin-top: 18px;
    }

    body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a:not(.jmodedit) {
        min-height: 36px;
        padding: 7px 14px;
        font-size: 12px;
    }
}


/* =========================================================
   MELDUNGSUEBERSICHT: KATEGORIEBLOG ALS KACHELRASTER
   Menüeintrag 161 / Alias home/aktuelles
   ========================================================= */

body.itemid-161 #sp-main-body {
    padding: 42px 0 56px;
    background: #f7f9fc;
}

body.itemid-161 #sp-main-body > .container {
    width: 100%;
    max-width: 1240px !important;
    padding-right: 28px;
    padding-left: 28px;
}

body.itemid-161 .com-content-category-blog__children {
    display: none;
}

body.itemid-161 #sp-main-body .com-content-category-blog > h1 {
    position: relative;
    margin: 0 0 28px;
    padding: 0 0 12px;
    color: #062b5c;
    font-size: 25px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .01em;
    text-transform: uppercase;
}

body.itemid-161 .com-content-category-blog > h1::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 38px;
    height: 3px;
    border-radius: 999px;
    background: #087ac1;
}

body.itemid-161 .article-list.bkv-news-card {
    margin: 0;
}

body.itemid-161 .article-list.bkv-news-card > .row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 24px;
}

body.itemid-161 .article-list.bkv-news-card > .row > [class*="col-"] {
    display: flex;
    width: auto;
    min-width: 0;
    padding: 0;
}

body.itemid-161 .article-list.bkv-news-card .article {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 430px;
    padding: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-top: 4px solid #087ac1;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .07);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body.itemid-161 .article-list.bkv-news-card .article:hover {
    transform: translateY(-3px);
    border-color: #cbd9e7;
    box-shadow: 0 10px 24px rgba(10, 43, 82, .12);
}

body.itemid-161 .article-list.bkv-news-card .article::before {
    content: "";
    display: block;
    flex: 0 0 180px;
    width: 100%;
    height: 180px;
    background-color: #dce9f4;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/fussball/"])::before {
    background-image: url("/images/bkv-kategorien/fb.png");
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/tischtennis/"])::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-tischtennis/"])::before {
    background-image: url("/images/bkv-kategorien/tt.png");
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/termine/"])::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/kalender/"])::before {
    background-image: url("/images/bkv-kategorien/calendar.png");
}

body.itemid-161 .article-list.bkv-news-card .featured-article-badge,
body.itemid-161 .article-list.bkv-news-card .system-unpublished > .badge {
    display: none;
}

body.itemid-161 .article-list.bkv-news-card .article-body,
body.itemid-161 .article-list.bkv-news-card .system-unpublished {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

body.itemid-161 .article-list.bkv-news-card .article-body {
    padding: 17px 19px 54px;
}

body.itemid-161 .article-list.bkv-news-card .article-header {
    margin: 0;
}

body.itemid-161 .article-list.bkv-news-card .article-header::before {
    display: inline-flex;
    align-items: center;
    margin: 0 0 10px;
    padding: 4px 8px;
    color: #fff;
    background: #075ca8;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/fussball/"]) .article-header::before {
    content: "Fußball";
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/tischtennis/"]) .article-header::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-tischtennis/"]) .article-header::before {
    content: "Tischtennis";
}

body.itemid-161 .article-list.bkv-news-card .article-header h2 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.28;
}

body.itemid-161 .article-list.bkv-news-card .article-header h2 a {
    color: #111827 !important;
    text-decoration: none !important;
}

/* Auch in der Meldungsuebersicht verlinkt die gesamte Kachel. */
body.itemid-161 .article-list.bkv-news-card .article-header h2 a::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
}

body.itemid-161 .article-list.bkv-news-card .article-header h2 a:focus-visible::after {
    outline: 3px solid #087ac1;
    outline-offset: -3px;
    border-radius: 7px;
}

body.itemid-161 .article-list.bkv-news-card .article-header h2 a:hover,
body.itemid-161 .article-list.bkv-news-card .article-header h2 a:focus {
    color: #075ca8 !important;
}

body.itemid-161 .article-list.bkv-news-card .article-introtext {
    display: block;
    max-height: 105px;
    overflow: hidden;
    color: #475569;
    font-size: 14px;
    line-height: 1.5;
}

body.itemid-161 .article-list.bkv-news-card .article-introtext > h2:first-child,
body.itemid-161 .article-list.bkv-news-card .article-introtext img,
body.itemid-161 .article-list.bkv-news-card .article-introtext p:empty {
    display: none;
}

body.itemid-161 .article-list.bkv-news-card .article-introtext p {
    margin: 0 0 7px;
}

body.itemid-161 .article-list.bkv-news-card .article-info {
    position: absolute;
    right: 19px;
    bottom: 43px;
    left: 19px;
    margin: 0;
    color: #64748b;
    font-size: 12px;
}

body.itemid-161 .article-list.bkv-news-card .article::after {
    content: "Weiterlesen \2192";
    position: absolute;
    bottom: 17px;
    left: 19px;
    color: #075ca8;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    pointer-events: none;
}

body.itemid-161 .com-content-category-blog__navigation {
    margin-top: 10px;
}

body.itemid-161 .com-content-category-blog__counter {
    color: #64748b;
    font-size: 13px;
}

body.itemid-161 .pagination {
    justify-content: center;
    gap: 5px;
}

body.itemid-161 .pagination .page-link {
    min-width: 38px;
    color: #075ca8;
    border-color: #d5e0eb;
    border-radius: 4px;
    text-align: center;
}

body.itemid-161 .pagination .active .page-link,
body.itemid-161 .pagination .page-link:hover {
    color: #fff;
    background: #075ca8;
    border-color: #075ca8;
}

@media (max-width: 991.98px) {
    body.itemid-161 .article-list.bkv-news-card > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-161 #sp-main-body .com-content-category-blog > h1 {
        font-family: var(--bkv-font) !important;
        font-size: 25px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
    }

    body.itemid-161 .article-list.bkv-news-card .article-introtext,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > :not(.article-info),
    body.itemid-161 .article-list.bkv-news-card .article-introtext > :not(.article-info) * {
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    body.itemid-161 .article-list.bkv-news-card .article-introtext > h1,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h2,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h3,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h4,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h5,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h6 {
        display: none !important;
    }
}

@media (max-width: 639.98px) {
    body.itemid-161 #sp-main-body {
        padding: 30px 18px 38px !important;
    }

    body.itemid-161 #sp-main-body > .container {
        width: 100%;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.itemid-161 .article-list.bkv-news-card {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body.itemid-161 .article-list.bkv-news-card > .row {
        display: contents;
    }

    body.itemid-161 #sp-main-body .com-content-category-blog > h1 {
        width: 100%;
        max-width: none;
        margin: 0 0 16px;
        padding-bottom: 8px;
        font-family: var(--bkv-font) !important;
        font-size: 20px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
    }

    body.itemid-161 .article-list.bkv-news-card > .row > [class*="col-"] {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    body.itemid-161 .article-list.bkv-news-card .article {
        min-height: 0;
    }

    body.itemid-161 .article-list.bkv-news-card .article::before {
        flex-basis: 78px;
        height: 78px;
    }

    body.itemid-161 .article-list.bkv-news-card .article-body {
        padding: 9px 9px 57px;
    }

    body.itemid-161 .article-list.bkv-news-card .article-header::before {
        margin-bottom: 7px;
        padding: 3px 6px;
        font-size: 10px;
    }

    body.itemid-161 .article-list.bkv-news-card .article-header h2 {
        margin-bottom: 5px;
        font-size: 14px;
        line-height: 1.25;
    }

    body.itemid-161 .article-list.bkv-news-card .article-introtext {
        display: -webkit-box;
        max-height: 84px;
        overflow: hidden;
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 5;
    }

    /* Alte Inline-Schriften in Einleitungstexten vereinheitlichen. */
    body.itemid-161 .article-list.bkv-news-card .article-introtext > :not(.article-info),
    body.itemid-161 .article-list.bkv-news-card .article-introtext > :not(.article-info) * {
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    /* Doppelte Alt-Ueberschriften aus dem gespeicherten Intro entfernen. */
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h1,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h2,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h3,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h4,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h5,
    body.itemid-161 .article-list.bkv-news-card .article-introtext > h6 {
        display: none !important;
    }

    body.itemid-161 .article-list.bkv-news-card .article-info {
        right: 9px;
        bottom: 34px;
        left: 9px;
        font-size: 10px;
    }

    body.itemid-161 .article-list.bkv-news-card .article::after {
        bottom: 10px;
        left: 9px;
        font-size: 12px;
    }
}

/* =========================================================
   BEREICHSNEWS: FUSSBALL (167) UND TISCHTENNIS (168)
   Gleicher Kartenaufbau wie die Gesamtseite Aktuelles.
   ========================================================= */

body:is(.itemid-167, .itemid-168) #sp-main-body {
    padding: 42px 0 56px;
    background: #f7f9fc;
}

body:is(.itemid-167, .itemid-168) #sp-main-body > .container {
    width: 100%;
    max-width: 1240px !important;
    padding-right: 28px;
    padding-left: 28px;
}

body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > h1,
body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > .page-header h1 {
    position: relative;
    margin: 0 0 28px !important;
    padding: 0 0 12px;
    color: #062b5c;
    font-family: var(--bkv-font) !important;
    font-size: 25px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .01em;
    text-transform: uppercase;
}

body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > h1::after,
body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > .page-header h1::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 38px;
    height: 3px;
    border-radius: 999px;
    background: #087ac1;
}

body:is(.itemid-167, .itemid-168) .article-list {
    margin: 0;
}

body:is(.itemid-167, .itemid-168) .article-list > .row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 24px;
}

body:is(.itemid-167, .itemid-168) .article-list > .row > [class*="col-"] {
    display: flex;
    width: auto;
    min-width: 0;
    padding: 0;
}

body:is(.itemid-167, .itemid-168) .article-list .article {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 430px;
    padding: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-top: 4px solid #087ac1;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .07);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    cursor: pointer;
}

body:is(.itemid-167, .itemid-168) .article-list .article:hover {
    transform: translateY(-3px);
    border-color: #cbd9e7;
    box-shadow: 0 10px 24px rgba(10, 43, 82, .12);
}

body:is(.itemid-167, .itemid-168) .article-list .article::before {
    content: "";
    display: block;
    flex: 0 0 180px;
    width: 100%;
    height: 180px;
    background-color: #dce9f4;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

body.itemid-167 .article-list .article::before {
    background-image: url("/images/bkv-kategorien/fb.png");
}

body.itemid-168 .article-list .article::before {
    background-image: url("/images/bkv-kategorien/tt.png");
}

body:is(.itemid-167, .itemid-168) .article-list .article-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 17px 19px 78px;
}

body:is(.itemid-167, .itemid-168) .article-list .article-header::before {
    display: inline-flex;
    align-items: center;
    margin: 0 0 10px;
    padding: 4px 8px;
    color: #fff;
    background: #075ca8;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
}

body.itemid-167 .article-list .article-header::before {
    content: "Fu\00df ball";
}

body.itemid-168 .article-list .article-header::before {
    content: "Tischtennis";
}

body:is(.itemid-167, .itemid-168) .article-list .article-header h2 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.28;
}

body:is(.itemid-167, .itemid-168) .article-list .article-header h2 a {
    color: #111827 !important;
    text-decoration: none !important;
}

body:is(.itemid-167, .itemid-168) .article-list .article-header h2 a::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
}

body:is(.itemid-167, .itemid-168) .article-list .article-header h2 a:focus-visible::after {
    outline: 3px solid #087ac1;
    outline-offset: -3px;
    border-radius: 7px;
}

body:is(.itemid-167, .itemid-168) .article-list .article-introtext {
    display: block;
    max-height: 105px;
    overflow: hidden;
    color: #475569 !important;
    font-family: var(--bkv-font) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* Alte Inline-Formatierungen in den Bereichsnews sicher ueberschreiben. */
body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info),
body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info) * {
    color: #475569 !important;
    font-family: var(--bkv-font) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

body:is(.itemid-167, .itemid-168) .article-list .article-introtext > h1,
body:is(.itemid-167, .itemid-168) .article-list .article-introtext > h2,
body:is(.itemid-167, .itemid-168) .article-list .article-introtext > h3,
body:is(.itemid-167, .itemid-168) .article-list .article-introtext img,
body:is(.itemid-167, .itemid-168) .article-list .article-introtext p:empty {
    display: none !important;
}

body:is(.itemid-167, .itemid-168) .article-list .article-introtext p {
    margin: 0 0 7px;
}

body:is(.itemid-167, .itemid-168) .article-list .article-info {
    position: absolute;
    right: 19px;
    bottom: 43px;
    left: 19px;
    margin: 0;
    color: #64748b;
    font-size: 12px;
}

body:is(.itemid-167, .itemid-168) .article-list .article::after {
    content: "Weiterlesen \2192";
    position: absolute;
    bottom: 17px;
    left: 19px;
    color: #075ca8;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    pointer-events: none;
}

body:is(.itemid-167, .itemid-168) .com-content-category-blog__navigation {
    margin-top: 10px;
}

body:is(.itemid-167, .itemid-168) .pagination {
    justify-content: center;
    gap: 5px;
}

body:is(.itemid-167, .itemid-168) .pagination .page-link {
    min-width: 38px;
    color: #075ca8;
    border-color: #d5e0eb;
    border-radius: 4px;
    text-align: center;
}

body:is(.itemid-167, .itemid-168) .pagination .active .page-link,
body:is(.itemid-167, .itemid-168) .pagination .page-link:hover {
    color: #fff;
    background: #075ca8;
    border-color: #075ca8;
}

@media (max-width: 991.98px) {
    body:is(.itemid-167, .itemid-168) .article-list > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext,
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info),
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info) * {
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
    }
}

@media (max-width: 639.98px) {
    body:is(.itemid-167, .itemid-168) #sp-main-body {
        padding: 30px 18px 38px !important;
    }

    body:is(.itemid-167, .itemid-168) #sp-main-body > .container {
        width: 100%;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body:is(.itemid-167, .itemid-168) .article-list > .row {
        display: contents;
    }

    body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > h1,
    body:is(.itemid-167, .itemid-168) #sp-main-body .com-content-category-blog > .page-header h1 {
        margin: 0 0 16px !important;
        padding-bottom: 8px;
        font-size: 20px !important;
        line-height: 1.2 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list > .row > [class*="col-"] {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article {
        min-height: 0;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article::before {
        flex-basis: 78px;
        height: 78px;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-body {
        padding: 9px 9px 57px;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header::before {
        margin-bottom: 7px;
        padding: 3px 6px;
        font-size: 10px;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header h2 {
        margin-bottom: 5px;
        font-size: 14px;
        line-height: 1.25;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext {
        display: -webkit-box;
        max-height: 84px;
        overflow: hidden;
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 5;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info),
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info) * {
        font-family: var(--bkv-font) !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-info {
        right: 9px;
        bottom: 34px;
        left: 9px;
        font-size: 10px;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article::after {
        bottom: 10px;
        left: 9px;
        font-size: 12px;
    }
}

#sp-footer > .container,
#sp-footer .container {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 28px !important;
}

#sp-footer .container-inner {
    padding: 46px 0 24px !important;
    border: 0 !important;
}

#sp-footer .row,
#sp-footer .bkv-footer-main .row,
#sp-footer .row.bkv-footer-main {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
}

/* Exakte Desktop-Aufteilung statt der angenäherten Helix-Spalten 5/3/4. */
#sp-footer1 {
    flex: 0 0 40% !important;
    width: 40% !important;
    max-width: 40% !important;
}

#sp-footer2 {
    flex: 0 0 25% !important;
    width: 25% !important;
    max-width: 25% !important;
}

#sp-footer3 {
    flex: 0 0 35% !important;
    width: 35% !important;
    max-width: 35% !important;
}

#sp-footer1,
#sp-footer2,
#sp-footer3 {
    min-width: 0 !important;
    padding: 0 36px 20px 0 !important;
}

#sp-footer3 {
    padding-right: 0 !important;
}

/* Helix setzt die Custom Classes auf das innere .sp-column-Element.
   Dort darf die äußere Prozentbreite nicht ein zweites Mal greifen. */
#sp-footer .bkv-footer-about,
#sp-footer .bkv-footer-links,
#sp-footer .bkv-footer-contact {
    width: 100% !important;
    max-width: none !important;
    flex-basis: auto !important;
}

#sp-footer .sp-column,
#sp-footer .sp-module,
#sp-footer .sp-module-content {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

#sp-footer .sp-module-title,
#sp-footer h2,
#sp-footer h3,
#sp-footer h4 {
    margin: 0 0 16px !important;
    color: #fff !important;
    font-family: var(--bkv-font) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

#sp-footer p {
    margin: 0 0 12px;
    font-size: 12px !important;
    line-height: 1.6 !important;
}

#sp-footer a {
    color: #fff !important;
    text-decoration: none;
    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

#sp-footer a:hover,
#sp-footer a:focus-visible {
    color: #d9f1ff !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Footer 2: Quicklinks als ruhige vertikale Liste. */
#sp-footer .bkv-footer-links,
#sp-footer2 {
    font-family: var(--bkv-font) !important;
    text-align: left !important;
}

/* Den Linkblock innerhalb der mittleren 25-%-Spalte optisch zentrieren. */
#sp-footer .bkv-footer-links .sp-module,
#sp-footer2 .sp-module {
    width: 100% !important;
    max-width: 190px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

#sp-footer .bkv-footer-links ul.mod-menu,
#sp-footer2 ul.mod-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    text-align: left !important;
}

#sp-footer .bkv-footer-links ul.mod-menu > li,
#sp-footer2 ul.mod-menu > li {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

#sp-footer .bkv-footer-links ul.mod-menu > li > a,
#sp-footer2 ul.mod-menu > li > a {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    padding: 2px 0 2px 15px !important;
    font-family: var(--bkv-font) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: left !important;
    transition: color 0.2s ease, transform 0.2s ease;
}

#sp-footer .bkv-footer-links ul.mod-menu > li > a::before,
#sp-footer2 ul.mod-menu > li > a::before {
    content: "›";
    position: absolute;
    left: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 17px;
    line-height: 1;
}

#sp-footer .bkv-footer-links ul.mod-menu > li > a:hover,
#sp-footer .bkv-footer-links ul.mod-menu > li > a:focus-visible,
#sp-footer2 ul.mod-menu > li > a:hover,
#sp-footer2 ul.mod-menu > li > a:focus-visible {
    color: #d9f1ff !important;
    text-decoration: none !important;
    transform: translateX(3px);
}

/* Footer 1: Social Icons unter dem Beschreibungstext. */
#sp-footer .bkv-footer-about ul.social-icons,
#sp-footer1 ul.social-icons {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 20px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#sp-footer .bkv-footer-about ul.social-icons a,
#sp-footer1 ul.social-icons a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    font-size: 16px !important;
}

#sp-footer .bkv-footer-about ul.social-icons a:hover,
#sp-footer1 ul.social-icons a:hover {
    background: rgba(255, 255, 255, 0.22);
    text-decoration: none;
    transform: translateY(-1px);
}

/* Footer 3: Kontaktangaben kompakt und gut umbrechbar. */
#sp-footer .bkv-footer-contact p,
#sp-footer3 p {
    overflow-wrap: anywhere;
}

#sp-footer .bkv-contact-layout,
#sp-footer3 .bkv-contact-layout {
    display: grid;
    grid-template-columns: minmax(145px, 0.9fr) minmax(190px, 1.1fr);
    gap: 18px;
    align-items: start;
}

#sp-footer .bkv-contact-address,
#sp-footer3 .bkv-contact-address {
    margin: 0;
    color: #fff;
    font-size: 12px !important;
    font-style: normal;
    line-height: 1.65;
}

#sp-footer .bkv-contact-links,
#sp-footer3 .bkv-contact-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#sp-footer .bkv-contact-links li,
#sp-footer3 .bkv-contact-links li {
    margin: 0;
    padding: 0;
}

#sp-footer .bkv-contact-links a,
#sp-footer3 .bkv-contact-links a {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    font-family: var(--bkv-font) !important;
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
}

#sp-footer .bkv-contact-links a > [class*="fa-"],
#sp-footer3 .bkv-contact-links a > [class*="fa-"] {
    display: none;
}

/* Robuste Kontakt-Icons ohne Abhängigkeit vom Editor/Font-Awesome-Markup. */
#sp-footer .bkv-contact-links a::before,
#sp-footer3 .bkv-contact-links a::before {
    display: block;
    width: 20px;
    color: rgba(255, 255, 255, 0.92);
    font-family: Arial, sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
}

#sp-footer .bkv-contact-links li:first-child a::before,
#sp-footer3 .bkv-contact-links li:first-child a::before {
    content: "\2709";
}

#sp-footer .bkv-contact-links li:nth-child(2) a::before,
#sp-footer3 .bkv-contact-links li:nth-child(2) a::before {
    content: "\260E";
}

/* Separater Copyright-Bereich, sobald er als eigene Zeile ausgegeben wird. */
#sp-footer .sp-copyright {
    width: 100% !important;
    margin-top: 22px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

/* Eigene, vollbreite Copyright-Section unter footer1–footer3. */
#sp-footer-copyright,
.bkv-footer-copyright {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    background: rgb(0, 89, 166) !important;
    font-family: var(--bkv-font) !important;
}

#sp-footer-copyright > .container,
#sp-footer-copyright .container,
.bkv-footer-copyright > .container,
.bkv-footer-copyright .container {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 28px !important;
}

#sp-footer-copyright .container-inner,
.bkv-footer-copyright .container-inner {
    padding: 17px 0 19px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.28) !important;
}

#sp-footer-copyright .row,
.bkv-footer-copyright .row {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
}

#sp-footer-copyright .sp-column,
#sp-footer-copyright .sp-copyright,
.bkv-footer-copyright .sp-column,
.bkv-footer-copyright .sp-copyright {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

/* Tablet: zwei Spalten oben, Kontakt darunter. */
@media (min-width: 768px) and (max-width: 991px) {
    #sp-footer .sp-module-title,
    #sp-footer h2,
    #sp-footer h3,
    #sp-footer h4 {
        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    #sp-footer p,
    #sp-footer .bkv-footer-links ul.mod-menu > li > a,
    #sp-footer2 ul.mod-menu > li > a,
    #sp-footer .bkv-contact-links a,
    #sp-footer3 .bkv-contact-links a {
        font-size: 12px !important;
    }

    #sp-footer1 {
        flex-basis: 58% !important;
        width: 58% !important;
        max-width: 58% !important;
    }

    #sp-footer2 {
        flex-basis: 42% !important;
        width: 42% !important;
        max-width: 42% !important;
        padding-right: 0 !important;
    }

    #sp-footer3 {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 8px !important;
        padding-top: 24px !important;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
    }
}

/* Smartphone: alle drei Footer-Bereiche untereinander. */
@media (max-width: 767px) {
    #sp-footer {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    #sp-footer > .container,
    #sp-footer .container {
        padding: 0 20px !important;
    }

    #sp-footer .container-inner {
        padding: 34px 0 18px !important;
    }

    #sp-footer1,
    #sp-footer2,
    #sp-footer3 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 0 26px !important;
    }

    #sp-footer2,
    #sp-footer3 {
        padding-top: 26px !important;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
    }

    #sp-footer .sp-module-title,
    #sp-footer h2,
    #sp-footer h3,
    #sp-footer h4 {
        margin-bottom: 11px !important;
        font-size: 14px !important;
        line-height: 1.3 !important;
    }

    #sp-footer p,
    #sp-footer .bkv-footer-links ul.mod-menu > li > a,
    #sp-footer2 ul.mod-menu > li > a,
    #sp-footer .bkv-contact-links a,
    #sp-footer3 .bkv-contact-links a {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    #sp-footer .bkv-contact-layout,
    #sp-footer3 .bkv-contact-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    #sp-footer .bkv-footer-links .sp-module,
    #sp-footer2 .sp-module {
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    #sp-footer .bkv-contact-links a,
    #sp-footer3 .bkv-contact-links a {
        white-space: normal;
    }

    #sp-footer .bkv-footer-about ul.social-icons a,
    #sp-footer1 ul.social-icons a {
        width: 34px !important;
        height: 34px !important;
        font-size: 14px !important;
    }

    #sp-footer .sp-copyright {
        margin-top: 0 !important;
        padding-top: 16px !important;
        font-size: 10px !important;
        text-align: left !important;
    }

    #sp-footer-copyright > .container,
    #sp-footer-copyright .container,
    .bkv-footer-copyright > .container,
    .bkv-footer-copyright .container {
        padding: 0 20px !important;
    }

    #sp-footer-copyright .container-inner,
    .bkv-footer-copyright .container-inner {
        padding: 15px 0 17px !important;
    }

    #sp-footer-copyright .sp-copyright,
    .bkv-footer-copyright .sp-copyright {
        font-size: 10px !important;
        text-align: center !important;
    }
}

/* =========================================================
   TABLET HEADER + OFFCANVAS CLOSE – FINAL OVERRIDE
   ========================================================= */

/*
 * TABLET 768–991px
 * Helix' Smartphone-Zentrierung griff bisher erst bis 767px.
 * Deshalb Logo und Burger auf Tablets explizit vertikal zentrieren.
 */
@media (min-width: 768px) and (max-width: 991px) {

    #sp-header {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    #sp-header > .container,
    #sp-header .container,
    #sp-header .container-inner,
    #sp-header .row,
    #sp-logo,
    #sp-menu,
    #sp-logo > .sp-column,
    #sp-menu > .sp-column {
        height: 100% !important;
        min-height: 100% !important;
    }

    #sp-header .row,
    #sp-logo,
    #sp-menu,
    #sp-logo > .sp-column,
    #sp-menu > .sp-column,
    #sp-header .logo,
    #sp-header .logo > a {
        display: flex !important;
        align-items: center !important;
    }

    #sp-logo,
    #sp-logo > .sp-column,
    #sp-header .logo,
    #sp-header .logo > a {
        justify-content: flex-start !important;
    }

    #sp-menu,
    #sp-menu > .sp-column {
        justify-content: flex-end !important;
    }

    #sp-header .logo,
    #sp-header .logo > a,
    #sp-header .logo img,
    #sp-header .logo-image,
    #sp-header .logo-image-phone {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        vertical-align: middle !important;
    }

    #offcanvas-toggler,
    #sp-menu .offcanvas-toggler-right,
    #sp-menu .offcanvas-toggler-left,
    #sp-menu .offcanvas-toggler-secondary {
        height: 100% !important;
        min-height: 100% !important;

        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    #offcanvas-toggler .burger-icon,
    #sp-menu [class*="offcanvas-toggler"] .burger-icon {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        position: static !important;
        top: auto !important;
        transform: none !important;
    }
}


/*
 * OFFCANVAS SCHLIESSEN
 *
 * Das HTML enthält genau einen .close-offcanvas-Link mit einem
 * burger-icon darin. Um jede doppelte Darstellung aus Template-/CSS-
 * Regeln auszuschließen, werden sämtliche Kind-Elemente ausgeblendet
 * und genau EIN eigenes × über ::before gezeichnet.
 */
.offcanvas-menu .close-offcanvas {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;

    width: 36px !important;
    height: 36px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

/* Alle vom Template gelieferten Close-Grafiken sicher entfernen */
.offcanvas-menu .close-offcanvas > * {
    display: none !important;
}

.offcanvas-menu .close-offcanvas::before {
    content: "×" !important;
    display: block !important;

    color: #fff !important;
    font-family: Arial, sans-serif !important;
    font-size: 32px !important;
    font-weight: 300 !important;
    line-height: 1 !important;

    transform: none !important;
}

.offcanvas-menu .close-offcanvas::after {
    content: none !important;
    display: none !important;
}

/* =========================================================
   FRONTEND: BEITRAG BEARBEITEN
   Joomla erzeugt den Link nur für Benutzer mit Bearbeitungsrecht.
   Gilt für normale Beiträge und Beiträge mit PHP-Ausgabe.
   ========================================================= */
body.com-content.view-article .article-can-edit {
    display: flex !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    margin: 0 0 14px !important;
}

body.com-content.view-article .article-can-edit > a[href*="task=article.edit"] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: auto !important;
    padding: 7px 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 4px !important;
    background: #0868b5 !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(0, 53, 102, 0.15) !important;
}

body.com-content.view-article .article-can-edit > a[href*="task=article.edit"]:hover,
body.com-content.view-article .article-can-edit > a[href*="task=article.edit"]:focus-visible {
    background: #064f8a !important;
    color: #fff !important;
    text-decoration: none !important;
}

body.com-content.view-article .article-can-edit > a[href*="task=article.edit"] .icon-edit {
    color: inherit !important;
}

/* =========================================================
   JOOMLA-FRONTEND-EDITOR – Schutz vor alten Legacy-Regeln
   =========================================================
   Alte Browser-Caches können die ehemaligen globalen Regeln noch liefern.
   Diese bewusst eng gefasste Schicht stellt daher die Standardmaße der
   Joomla-Aktionsleiste und ihrer Formularfelder wieder her. */
body.com-content.view-form #sp-main-body button.btn,
body.com-content.view-form #sp-main-body input.btn,
body.com-content.view-form #sp-main-body .btn-primary,
body.com-content.view-form #sp-main-body .btn-secondary,
body.com-content.view-form #sp-main-body .btn-danger,
body.com-content.view-form #sp-main-body .btn-lg {
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 0.25rem 0.625rem 0 !important;
    padding: 0.375rem 0.75rem !important;
    text-align: center !important;
}

body.com-content.view-form #sp-main-body select:not(.form-select):not(.form-control) {
    appearance: auto !important;
    display: inline-block !important;
    width: auto !important;
    min-height: 0 !important;
    height: calc(1.5em + 0.75rem + 2px) !important;
    margin: 0 !important;
    padding: 0.375rem 2rem 0.375rem 0.75rem !important;
    color: #212529 !important;
    background: #fff !important;
    border: 1px solid #ced4da !important;
    border-radius: 0.25rem !important;
    box-shadow: none !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    text-align: left !important;
    text-align-last: auto !important;
}

body.com-content.view-form #sp-main-body input[type="text"],
body.com-content.view-form #sp-main-body input[type="number"],
body.com-content.view-form #sp-main-body input[type="password"],
body.com-content.view-form #sp-main-body textarea {
    font-size: 1rem !important;
}

@media (max-width: 767.98px) {
    body.com-content.view-article .article-can-edit {
        margin-bottom: 10px !important;
    }

    body.com-content.view-article .article-can-edit > a[href*="task=article.edit"] {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
}

/* =========================================================
   CONTENT-NAVIGATION – NEUTRALE STEUERUNG FINAL
   ========================================================= */

:root {
    --bkv-control-bg: #ffffff;
    --bkv-control-bg-hover: #f7f9fb;
    --bkv-control-bg-active: #eef6fb;
    --bkv-control-border: #cbd7e4;
    --bkv-control-border-hover: #9eb7cb;
    --bkv-control-text: #25364a;
    --bkv-control-accent: #075ca8;
    --bkv-control-shadow: 0 1px 3px rgba(11, 47, 95, 0.06);
}

/* 1) Klasse / Saison / Spieltag – neutrale Selects */
body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control) {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;

    color: var(--bkv-control-text) !important;

    background:
        linear-gradient(45deg, transparent 50%, #526174 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #526174 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        var(--bkv-control-bg) !important;

    border: 1px solid var(--bkv-control-border) !important;
    border-radius: 5px !important;
    box-shadow: var(--bkv-control-shadow) !important;

    font-weight: 500 !important;

    filter: none !important;
    transform: none !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease,
        color .16s ease !important;
}

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control):hover {
    color: var(--bkv-control-text) !important;

    background:
        linear-gradient(45deg, transparent 50%, #34445a 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #34445a 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        var(--bkv-control-bg-hover) !important;

    border-color: var(--bkv-control-border-hover) !important;
    box-shadow: 0 2px 5px rgba(11, 47, 95, .08) !important;

    filter: none !important;
    transform: none !important;
}

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control):focus {
    color: var(--bkv-control-text) !important;

    background:
        linear-gradient(45deg, transparent 50%, var(--bkv-control-accent) 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, var(--bkv-control-accent) 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #fff !important;

    border-color: #79a9cc !important;
    box-shadow: 0 0 0 2px rgba(7, 92, 168, .10) !important;

    outline: none !important;
    filter: none !important;
    transform: none !important;
}

/* Geöffnete native Dropdown-Einträge – soweit der Browser Styling zulässt */
body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control) option,
body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control) optgroup {
    color: var(--bkv-control-text) !important;
    background: #fff !important;
    font-family: var(--bkv-font) !important;
    font-weight: 400 !important;
}

/* 3) Spieltag vor/zurück + eigene Content-Buttons */
body.com-content.view-article #sp-main-body .navspieltagback,
body.com-content.view-article #sp-main-body .navspieltagnext,
body.com-content.view-article #sp-main-body
.btn-primary:not([href*="task=article.edit"]):not(.validate),
body.com-content.view-article #sp-main-body
.sppb-btn-primary {
    color: var(--bkv-control-text) !important;
    background: var(--bkv-control-bg) !important;

    border: 1px solid var(--bkv-control-border) !important;
    border-radius: 5px !important;

    box-shadow: var(--bkv-control-shadow) !important;

    filter: none !important;
    transform: none !important;
}

body.com-content.view-article #sp-main-body .navspieltagback:hover,
body.com-content.view-article #sp-main-body .navspieltagnext:hover,
body.com-content.view-article #sp-main-body
.btn-primary:not([href*="task=article.edit"]):not(.validate):hover,
body.com-content.view-article #sp-main-body
.sppb-btn-primary:hover {
    color: var(--bkv-control-accent) !important;
    background: var(--bkv-control-bg-hover) !important;

    border-color: var(--bkv-control-border-hover) !important;
    box-shadow: 0 2px 5px rgba(11, 47, 95, .08) !important;

    filter: none !important;
    transform: none !important;
}

/* 4) Legacy-Spieltag-Dropdown */
body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu {
    color: var(--bkv-control-text) !important;
    background: #fff !important;

    border: 1px solid var(--bkv-control-border) !important;
    border-radius: 5px !important;
    box-shadow: var(--bkv-control-shadow) !important;

    filter: none !important;
    transform: none !important;
}

body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu:hover {
    background: var(--bkv-control-bg-hover) !important;
    border-color: var(--bkv-control-border-hover) !important;
    box-shadow: 0 2px 5px rgba(11, 47, 95, .08) !important;

    filter: none !important;
    transform: none !important;
}

body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu > li,
body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu > li > a {
    background: transparent !important;
    color: var(--bkv-control-text) !important;
}

body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu > li > a:hover,
body.com-content.view-article #sp-main-body
.btn-group.pull-right > .dropdown-menu > li > a:focus {
    color: var(--bkv-control-accent) !important;
    background: var(--bkv-control-bg-active) !important;
}

/* 5) Joomla-Systembutton "Bearbeiten" explizit schützen */
body.com-content.view-article .article-can-edit > a[href*="task=article.edit"] {
    background: #0868b5 !important;
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    box-shadow: 0 2px 6px rgba(0, 53, 102, 0.15) !important;
}

body.com-content.view-article .article-can-edit > a[href*="task=article.edit"]:hover,
body.com-content.view-article .article-can-edit > a[href*="task=article.edit"]:focus-visible {
    background: #064f8a !important;
    color: #fff !important;
}

/* 6) Mobil / Tablet: gleiche neutrale Optik, nur ohne Schatten */
@media (max-width: 991.98px) {
    body.com-content.view-article #sp-main-body
    select:not(.form-select):not(.form-control) {
        box-shadow: none !important;
    }
}

/* =========================================================
   CONTENT-STEUERUNG – FINAL
   Dropdowns + Spieltag-Navigation
   ========================================================= */

/* ---------------------------------------------------------
   1. KLASSE / SAISON / SPIELTAG
   --------------------------------------------------------- */

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control) {

    height: 34px !important;
    min-height: 34px !important;

    color: #25364a !important;
    font-family: var(--bkv-font) !important;
    font-weight: 500 !important;

    text-align: left !important;
    text-align-last: left !important;

    /* Native Selects nicht mit fixer line-height zwingen */
    line-height: normal !important;

    padding: 0 32px 0 12px !important;

    border: 1px solid #cbd7e4 !important;
    border-radius: 5px !important;

    box-shadow: 0 1px 3px rgba(11, 47, 95, 0.06) !important;

    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;

    background:
        linear-gradient(45deg, transparent 50%, #526174 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #526174 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #ffffff !important;

    vertical-align: middle !important;

    filter: none !important;
    transform: none !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease !important;
}

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control):hover {

    border-color: #9eb7cb !important;

    background:
        linear-gradient(45deg, transparent 50%, #34445a 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #34445a 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #f7f9fb !important;

    box-shadow: 0 2px 5px rgba(11, 47, 95, 0.08) !important;
}

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control):focus {

    border-color: #79a9cc !important;

    background:
        linear-gradient(45deg, transparent 50%, #075ca8 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #075ca8 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #ffffff !important;

    box-shadow: 0 0 0 2px rgba(7, 92, 168, 0.10) !important;

    outline: none !important;
}

body.com-content.view-article #sp-main-body
select:not(.form-select):not(.form-control) option {

    color: #25364a !important;
    background: #ffffff !important;

    font-family: var(--bkv-font) !important;
    font-weight: 400 !important;
}

/* ---------------------------------------------------------
   2. SPIELTAG VOR / ZURÜCK
   Optik passend zum Tabellenheader
   --------------------------------------------------------- */

body.com-content.view-article #sp-main-body input[type="button"],
body.com-content.view-article #sp-main-body input[type="submit"],
body.com-content.view-article #sp-main-body .navspieltagback,
body.com-content.view-article #sp-main-body .navspieltagnext {

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 105px !important;

    height: 34px !important;
    min-height: 34px !important;

    padding: 0 13px !important;

    color: #0b2f5f !important;
    background: #e4f0f8 !important;

    border: 1px solid #c8d8e5 !important;
    border-radius: 5px !important;

    box-shadow: 0 1px 3px rgba(11, 47, 95, 0.08) !important;

    font-family: var(--bkv-font) !important;
    font-size: 0.82em !important;
    font-weight: 700 !important;
    letter-spacing: 0.035em !important;
    line-height: 1 !important;

    text-transform: uppercase !important;
    text-decoration: none !important;

    white-space: nowrap !important;

    cursor: pointer !important;

    filter: none !important;
    transform: none !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        color .16s ease,
        box-shadow .16s ease !important;
}

body.com-content.view-article #sp-main-body input[type="button"]:hover,
body.com-content.view-article #sp-main-body input[type="submit"]:hover,
body.com-content.view-article #sp-main-body .navspieltagback:hover,
body.com-content.view-article #sp-main-body .navspieltagnext:hover {

    color: #075ca8 !important;
    background: #d8eaf5 !important;

    border-color: #aebfcd !important;

    box-shadow: 0 2px 5px rgba(11, 47, 95, 0.10) !important;

    filter: none !important;
    transform: none !important;
}

body.com-content.view-article #sp-main-body input[type="button"]:focus-visible,
body.com-content.view-article #sp-main-body input[type="submit"]:focus-visible,
body.com-content.view-article #sp-main-body .navspieltagback:focus-visible,
body.com-content.view-article #sp-main-body .navspieltagnext:focus-visible {

    color: #075ca8 !important;
    background: #e4f0f8 !important;

    border-color: #79a9cc !important;

    box-shadow: 0 0 0 2px rgba(7, 92, 168, 0.10) !important;

    outline: none !important;
}


/* ---------------------------------------------------------
   3. TABLET / MOBILE
   Controls nicht unnötig vergrößern
   --------------------------------------------------------- */

@media (max-width: 991.98px) {

    body.com-content.view-article #sp-main-body
    select:not(.form-select):not(.form-control) {

        height: 34px !important;
        min-height: 34px !important;

        padding-left: 10px !important;
        padding-right: 30px !important;

        line-height: normal !important;
    }

    body.com-content.view-article #sp-main-body input[type="button"],
    body.com-content.view-article #sp-main-body input[type="submit"],
    body.com-content.view-article #sp-main-body .navspieltagback,
    body.com-content.view-article #sp-main-body .navspieltagnext {

        width: auto !important;
        min-width: 100px !important;

        height: 34px !important;
        min-height: 34px !important;

        padding: 0 11px !important;
    }
}

/* =========================================================
   TISCHTENNIS – COMPETITION NAVIGATION
   FINAL KONSOLIDIERT
   Klasse / Saison / Spieltag
   ========================================================= */

.tt-competition-navigation {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;

    margin: 0 0 24px;
    padding: 0 0 12px;

    border-bottom: 1px solid #dbe4ee;
}

.tt-competition-navigation__tabs {
    display: flex;
    align-self: stretch;
    align-items: end;
}

.tt-competition-navigation__tab {
    display: inline-flex;
    align-items: center;

    min-height: 38px;
    padding: 0 18px 9px;

    color: #2d4058;

    font-size: 14px;
    font-weight: 800;
    line-height: 1;

    text-transform: uppercase;

    text-decoration: none !important;

    border-bottom: 3px solid transparent;
}

.tt-competition-navigation__tab:not(.is-active):hover,
.tt-competition-navigation__tab:not(.is-active):focus-visible {
    color: #075ca8;
}

.tt-pokalspiele__score {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    padding: 4px 7px;
    color: #ffffff;
    background: #075ca8;
    border-radius: 4px;
    font-weight: 800;
    line-height: 1;
}

/* Freilose werden wie in der kompakten Übersichts-Tabelle dargestellt,
   ohne die Höhe einer normalen Tabellenzeile zu verändern. */
#sp-main-body .tt-pokalspiele__bye {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 5px;
    background: #eef0f4;
    color: #374151;
    font-size: inherit;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.15;
    text-transform: uppercase;
    vertical-align: baseline;
    white-space: nowrap;
}

#sp-main-body .tt-pokalspiele .tt-pokalspiele__round th {
    padding: .625em !important;
    color: #0b2f5f !important;
    background: #e4f0f8 !important;
    border: 0 !important;
    border-bottom: 1px solid #c8d8e5 !important;
    box-shadow: none;
    font-size: .85em !important;
    font-weight: 700 !important;
    letter-spacing: .035em;
    text-align: center !important;
    text-transform: none;
}

/* Pokalergebnisse: mehr Raum für Mannschaftsnamen, kompakte Hinweis-Icons. */
#sp-main-body .tt-pokalspiele th:nth-child(1),
#sp-main-body .tt-pokalspiele td:nth-child(1) { width: 12%; white-space: nowrap; }

#sp-main-body .tt-pokalspiele th:nth-child(2),
#sp-main-body .tt-pokalspiele td:nth-child(2),
#sp-main-body .tt-pokalspiele th:nth-child(3),
#sp-main-body .tt-pokalspiele td:nth-child(3) { width: 33%; }

#sp-main-body .tt-pokalspiele th:nth-child(4),
#sp-main-body .tt-pokalspiele td:nth-child(4) { width: 12%; text-align: center; white-space: nowrap; }

#sp-main-body .tt-pokalspiele th:nth-child(5),
#sp-main-body .tt-pokalspiele td:nth-child(5) { width: 10%; text-align: center; white-space: nowrap; }

#sp-main-body .tt-pokalspiele td[data-label="Hinweis"] .gameinfo {
    display: inline-block;
    float: none !important;
    margin: 0 2px !important;
    vertical-align: middle;
}

/* Gemeinsamer Spielplan: Meisterschaft und Pokal in einer Chronologie. */
.tt-page-toolbar--spielplan {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}

/* Der Abo-Link ist die linke Aktion; alle Filter bilden die rechte Gruppe. */
.tt-page-toolbar--spielplan > .tt-spielplan-subscribe {
    order: 1;
}

.tt-page-toolbar--spielplan > .tt-spielplan-filter {
    order: 2;
    margin-left: auto;
}

.tt-spielplan-filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px;
}

.tt-spielplan-filter label {
    display: grid;
    gap: 5px;
    color: #2d4058;
    font-size: 12px;
    font-weight: 700;
}

.tt-spielplan-filter select {
    min-height: 36px;
    padding: 6px 30px 6px 10px;
    color: #26394c;
    background: #fff;
    border: 1px solid #c8d8e5;
    border-radius: 5px;
}

/* Der iCalendar-Feed gehört zur aktuell gewählten Mannschaft. */
#sp-main-body .tt-spielplan-subscribe {
    display: inline-flex !important;
    align-items: center;
    align-self: end;
    gap: 6px;
    min-height: 36px;
    margin: 0;
    padding: 7px 12px;
    color: #fff !important;
    background: #0879c9;
    border: 1px solid #0879c9;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(4, 69, 125, .18);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
}

#sp-main-body .tt-spielplan-subscribe:hover,
#sp-main-body .tt-spielplan-subscribe:focus-visible {
    color: #fff !important;
    background: #0668ae;
    border-color: #0668ae;
    text-decoration: none !important;
}

#sp-main-body .tt-spielplan-subscribe i {
    font-size: 14px;
}

.tt-spielplan-gesamt__competition {
    display: inline-flex;
    padding: 3px 7px;
    border-radius: 4px;
    color: #0b2f5f;
    background: #e4f0f8;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.15;
}

.tt-spielplan-gesamt__competition--pokal {
    color: #5b3a00;
    background: #fff1cf;
}

.tt-spielplan-gesamt__competition-short { display: none; }
.tt-spielplan-gesamt__competition-heading-short { display: none; }
.tt-spielplan-gesamt__team-short { display: none; }
.tt-spielplan-gesamt__mobile-termin { display: none; }
.tt-spielplan-gesamt__kw { width: 54px; text-align: center; white-space: nowrap; }

.tt-spielplan-gesamt__planned-heading td {
    padding: 9px 12px;
    color: #075ca8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .03em;
    text-align: left;
    text-transform: uppercase;
    background: #edf7fd;
    border-top: 2px solid #b9d8ed;
}

.tt-spielplan-gesamt__planned-pokal td {
    padding-top: 7px;
    padding-bottom: 7px;
    background: #fbfdff;
}

.tt-spielplan-gesamt__planned-note {
    color: #667b91;
    font-style: italic;
    text-align: center;
}

.tt-spielplan-gesamt__planned-range {
    color: #405b73;
    font-weight: 600;
    white-space: nowrap;
}

@media (max-width: 767px) {
    .tt-page-toolbar--spielplan {
        align-items: stretch;
        flex-direction: column;
        gap: 6px;
    }

    .tt-spielplan-filter {
        justify-content: stretch;
    }

    .tt-spielplan-filter label {
        flex: 1 1 140px;
    }

    #sp-main-body .tt-spielplan-subscribe {
        align-self: flex-start;
        justify-content: flex-start;
        flex: 0 0 auto;
        min-height: 29px;
        padding: 5px 8px;
        border-radius: 4px;
        box-shadow: 0 1px 3px rgba(4, 69, 125, .16);
        font-size: 11px;
    }

    #sp-main-body .tt-spielplan-subscribe i { font-size: 12px; }

    /* Ein gemeinsamer, dreizeiliger Termin spart horizontalen Raum. */
    .tt-spielplan-gesamt__mobile-termin { display: table-cell; width: 54px; min-width: 54px; padding: 6px 4px !important; line-height: 1.15; text-align: center; white-space: nowrap; }
    .tt-spielplan-gesamt__mobile-termin span { display: block; }
    .tt-spielplan-gesamt__kw,
    .tt-spielplan-gesamt__desktop-datum,
    .tt-spielplan-gesamt__desktop-uhrzeit,
    .tt-spielplan-gesamt__klasse { display: none !important; }
    .tt-spielplan-gesamt__competition-full { display: none; }
    .tt-spielplan-gesamt__competition-short { display: inline; }
    .tt-spielplan-gesamt__competition { min-width: 27px; justify-content: center; padding: 3px 5px; }
    .tt-spielplan-gesamt__competition-heading-full,
    .tt-spielplan-gesamt__team-full { display: none; }
    .tt-spielplan-gesamt__competition-heading-short,
    .tt-spielplan-gesamt__team-short { display: inline; }

    .tt-spielplan-gesamt {
        width: 100%;
        table-layout: fixed;
        font-size: 10px;
    }

    .tt-spielplan-gesamt th,
    .tt-spielplan-gesamt td { padding: 6px 3px; }

    .tt-spielplan-gesamt th:nth-child(2),
    .tt-spielplan-gesamt td:nth-child(2) { width: 54px; }
    .tt-spielplan-gesamt th:nth-child(5),
    .tt-spielplan-gesamt td:nth-child(5) { width: 36px; text-align: center; }
    .tt-spielplan-gesamt th:nth-child(7),
    .tt-spielplan-gesamt td:nth-child(7),
    .tt-spielplan-gesamt th:nth-child(8),
    .tt-spielplan-gesamt td:nth-child(8) { width: 22%; white-space: nowrap; }
    .tt-spielplan-gesamt th:nth-child(9),
    .tt-spielplan-gesamt td:nth-child(9) { width: auto; }

    .tt-spielplan-gesamt th.tt-spielplan-gesamt__mobile-termin {
        display: table-cell;
        width: 54px;
        min-width: 54px;
        padding: 7px 4px !important;
        text-align: center;
    }
}

.tt-competition-navigation__tab.is-active {
    color: #075ca8;
    border-bottom-color: #087ed1;
}

/* Bilanzart: Einzel/Doppel als zusammengehörige Segment-Navigation. */
.tt-balance-type-navigation {
    display: inline-flex;
    justify-self: end;
    overflow: hidden;

    border: 1px solid #087ed1;
    border-radius: 5px;
}

.tt-balance-type-navigation__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 36px;
    padding: 0 20px;

    color: #0764b3 !important;
    background: #ffffff;

    font-family: var(--bkv-font);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none !important;
    text-transform: uppercase;

    transition: background-color .16s ease, color .16s ease;
}

.tt-balance-type-navigation__link + .tt-balance-type-navigation__link {
    border-left: 1px solid #087ed1;
}

.tt-balance-type-navigation__link:hover,
.tt-balance-type-navigation__link:focus-visible {
    color: #ffffff !important;
    background: #087ed1;
}

.tt-balance-type-navigation__link.is-active {
    color: #ffffff !important;
    background: #0764b3;
}

@media (min-width: 768px) {
    .tt-competition-navigation--bilanzen {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "tabs balance"
            "tabs filters";
        align-items: end;
        column-gap: 20px;
        row-gap: 12px;
    }

    .tt-competition-navigation--bilanzen .tt-competition-navigation__tabs {
        grid-area: tabs;
    }

    .tt-competition-navigation--bilanzen .tt-balance-type-navigation {
        grid-area: balance;
    }

    .tt-competition-navigation--bilanzen .tt-competition-navigation__filters {
        grid-area: filters;
    }
}

@media (max-width: 767.98px) {
    .tt-balance-type-navigation {
        align-self: stretch;
        width: 100%;
    }

    .tt-balance-type-navigation__link {
        flex: 1 1 50%;
        min-height: 34px;
        padding: 0 8px;
        font-size: 11px;
    }
}


/* ---------------------------------------------------------
   Filterzeile
   --------------------------------------------------------- */

.tt-competition-navigation__filters {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;

    gap: 14px !important;

    margin: 0 !important;
}


/* ---------------------------------------------------------
   Labels
   --------------------------------------------------------- */

.tt-competition-navigation__filters .tt-filter-klasse,
.tt-competition-navigation__filters .tt-filter-saison,
.tt-competition-navigation__filters .tt-filter-spieltag {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: auto !important;
    height: 34px !important;
    min-height: 34px !important;

    margin: 0 !important;
    padding: 0 !important;

    gap: 8px !important;

    color: #34445a !important;

    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.tt-competition-navigation__filters .tt-filter-klasse > span,
.tt-competition-navigation__filters .tt-filter-saison > span,
.tt-competition-navigation__filters .tt-filter-spieltag > span {
    display: inline-flex !important;
    align-items: center !important;

    height: 34px !important;
    min-height: 34px !important;

    margin: 0 !important;
    padding: 0 !important;

    line-height: 1 !important;
}


/* ---------------------------------------------------------
   Selects – Desktop / Tablet
   Explizite px-Werte statt em, damit die Darstellung nicht
   von geerbten Label-/Body-Schriftgrößen abhängt.
   --------------------------------------------------------- */

.tt-competition-navigation__filters select.select-klasse,
.tt-competition-navigation__filters select.select-saison,
.tt-competition-navigation__filters select.select-spieltag {
    height: 34px !important;
    min-height: 34px !important;

    margin: 0 !important;
    padding: 0 30px 0 10px !important;

    color: #25364a !important;

    font-family: var(--bkv-font) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: normal !important;

    text-align: left !important;
    text-align-last: left !important;

    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;

    background:
        linear-gradient(45deg, transparent 50%, #526174 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #526174 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #ffffff !important;

    border: 1px solid #cbd7e4 !important;
    border-radius: 5px !important;

    box-shadow: 0 1px 3px rgba(11, 47, 95, 0.06) !important;

    vertical-align: middle !important;

    filter: none !important;
    transform: none !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease !important;
}

.tt-competition-navigation__filters select.select-klasse:hover,
.tt-competition-navigation__filters select.select-saison:hover,
.tt-competition-navigation__filters select.select-spieltag:hover {
    border-color: #9eb7cb !important;

    background:
        linear-gradient(45deg, transparent 50%, #34445a 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #34445a 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #f7f9fb !important;

    box-shadow: 0 2px 5px rgba(11, 47, 95, 0.08) !important;
}

.tt-competition-navigation__filters select.select-klasse:focus,
.tt-competition-navigation__filters select.select-saison:focus,
.tt-competition-navigation__filters select.select-spieltag:focus {
    border-color: #79a9cc !important;

    background:
        linear-gradient(45deg, transparent 50%, #075ca8 50%)
            calc(100% - 12px) 50% / 5px 5px no-repeat,
        linear-gradient(135deg, #075ca8 50%, transparent 50%)
            calc(100% - 8px) 50% / 5px 5px no-repeat,
        #ffffff !important;

    box-shadow: 0 0 0 2px rgba(7, 92, 168, 0.10) !important;

    outline: none !important;
}

.tt-competition-navigation__filters select.select-klasse option,
.tt-competition-navigation__filters select.select-saison option,
.tt-competition-navigation__filters select.select-spieltag option {
    color: #25364a !important;
    background: #ffffff !important;

    font-family: var(--bkv-font) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
}


/* Desktop-/Tablet-Breiten */
.tt-competition-navigation__filters select.select-klasse {
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
}

.tt-competition-navigation__filters select.select-saison {
    width: 85px !important;
    min-width: 85px !important;
    max-width: 85px !important;
}

.tt-competition-navigation__filters select.select-spieltag {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
}


/* ---------------------------------------------------------
   Zugehörige Toolbar
   --------------------------------------------------------- */

.tt-page-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    margin: 0 0 14px;
}

.tt-page-toolbar > form {
    display: none !important;
}

.tt-page-toolbar .tt-klassen-title,
#sp-main-body .tt-klassen-title {
    margin: 0;

    color: #0b3970;

    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}


/* ---------------------------------------------------------
   Smartphone
   --------------------------------------------------------- */

@media (max-width: 767.98px) {

    .tt-competition-navigation {
        align-items: stretch;
        flex-direction: column;

        gap: 10px;
        margin-bottom: 18px;
    }

    .tt-competition-navigation__tab {
        min-height: 34px;

        padding: 0 10px 7px;

        font-size: 12px;
    }

    .tt-competition-navigation__filters {
        justify-content: flex-start !important;

        gap: 8px !important;

        width: 100% !important;

        overflow: visible !important;
    }

    .tt-competition-navigation__filters .tt-filter-klasse,
    .tt-competition-navigation__filters .tt-filter-saison,
    .tt-competition-navigation__filters .tt-filter-spieltag {
        gap: 5px !important;

        font-size: 11.5px !important;
    }

    /*
     * Bewusst fester px-Wert:
     * 11px ist mobil sichtbar kleiner als Desktop (13px)
     * und wird nicht mehr durch geerbte em-Werte verändert.
     */
    .tt-competition-navigation__filters select.select-klasse,
    .tt-competition-navigation__filters select.select-saison,
    .tt-competition-navigation__filters select.select-spieltag {
        height: 34px !important;
        min-height: 34px !important;

        padding-left: 8px !important;
        padding-right: 26px !important;
		
		font-size: 8px !important;

    }
	
	@media (max-width: 767.98px) {
    .tt-competition-navigation select {
        border: 3px solid red !important;
        font-size: 8px !important;
    }
}

    .tt-competition-navigation__filters select.select-klasse option,
    .tt-competition-navigation__filters select.select-saison option,
    .tt-competition-navigation__filters select.select-spieltag option {
        font-size: 11px !important;
    }

    .tt-competition-navigation__filters select.select-klasse {
        width: 85px !important;
        min-width: 85px !important;
        max-width: 85px !important;
    }

    .tt-competition-navigation__filters select.select-saison {
        width: 70px !important;
        min-width: 70px !important;
        max-width: 70px !important;
    }

    .tt-competition-navigation__filters select.select-spieltag {
        width: 55px !important;
        min-width: 55px !important;
        max-width: 55px !important;
    }

    .tt-page-toolbar .tt-klassen-title {
        width: 100%;
    }
}


/* =========================================================
   TT – RUNDENAUSWAHL
   Gleiche Darstellung wie Competition-Navigation,
   rechtsbündig oberhalb der Tabelle
   ========================================================= */

.tt-runde-filter {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;

    float: right !important;
	width: auto !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

.tt-runde-filter form {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;

    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.tt-runde-filter label {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;

    align-items: center !important;
    justify-content: flex-start !important;

    width: auto !important;
    height: 34px !important;
    min-height: 34px !important;

    margin: 0 !important;
    padding: 0 !important;

    gap: 8px !important;

    color: #34445a !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.tt-runde-filter select.select-runde {
    width: 120px !important;
    min-width: 120px !important;
    max-width: 120px !important;

    height: 34px !important;
    min-height: 34px !important;

    margin: 0 !important;

    padding-top: 0 !important;
    padding-bottom: 0 !important;

    line-height: normal !important;
    vertical-align: middle !important;
}

@media (max-width: 767.98px) {
    .tt-runde-filter {
        justify-content: flex-end !important;
    }

    .tt-runde-filter label {
        gap: 5px !important;
        font-size: 11.5px !important;
    }
}


/* =========================================================
   TISCHTENNIS – BILANZEN / RUNDEN-NAVIGATION
   ========================================================= */

.tt-bilanz-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    width: 100%;

    margin: 0 0 10px;
    padding: 0;
}

/* Ohne alte NEP-Auswahl sitzt die Runden-Navigation rechts */
.tt-round-navigation {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;

    margin-left: auto;
}

/* Einzelner Button */
.tt-round-navigation__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
	
	gap: 7px;

    min-height: 34px;

    margin: 0 !important;
    padding: 0 14px !important;

    color: #25364a !important;
    background: #ffffff !important;

    border: 1px solid #cbd7e4 !important;
    border-radius: 5px !important;

    box-shadow: 0 1px 3px rgba(11, 47, 95, 0.06) !important;

    font-family: var(--bkv-font) !important;
    font-size: 0.95em !important;
    font-weight: 600 !important;
    line-height: 1 !important;

    white-space: nowrap;

    cursor: pointer;

    transition:
        color .16s ease,
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}

.tt-round-navigation__button > i {
    flex: 0 0 auto;
    font-size: 14px;
    line-height: 1;
}

.tt-round-navigation__button > span {
    line-height: 1;
}

/* Hover */
.tt-round-navigation__button:hover {
    color: #075ca8 !important;
    background: #f7f9fb !important;
    border-color: #9eb7cb !important;

    box-shadow: 0 2px 5px rgba(11, 47, 95, 0.08) !important;
}

/* Aktive Runde */
.tt-round-navigation__button.is-active {
    color: #ffffff !important;
    background: #075ca8 !important;
    border-color: #075ca8 !important;

    box-shadow: 0 2px 6px rgba(7, 92, 168, 0.18) !important;
}

/* Tastaturfokus */
.tt-round-navigation__button:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(7, 92, 168, 0.14) !important;
}

@media (max-width: 767.98px) {

    .tt-bilanz-toolbar {
        gap: 6px;
        margin-bottom: 8px;
    }

    .tt-round-navigation {
        display: flex;
        gap: 4px;
        width: 100%;
    }

    .tt-round-navigation__button {
        flex: 1 1 0;
        min-width: 0;
        min-height: 30px;

        padding: 0 5px !important;

        gap: 4px;

        font-size: 9.5px !important;
    }

    .tt-round-navigation__button > i {
        font-size: 11px;
    }
}

/* =========================================================
   TISCHTENNIS – SPIELPLAN
   ========================================================= */


/* ---------------------------------------------------------
   Überschrift + Zusatzaktionen
   --------------------------------------------------------- */

.tt-spielplan-heading {
    margin: 0 0 14px;
}

.tt-spielplan-heading .tt-klassen-title {
    margin: 0 0 5px;
}

.tt-spielplan-actions {
    display: inline-flex;
    align-items: center;
    overflow: hidden;

    border: 1px solid #ccd9e6;
    border-radius: 6px;

    background: #fff;
}

.tt-spielplan-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    min-height: 34px;
    padding: 0 12px;

    color: #075ca8 !important;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;
}

.tt-spielplan-action + .tt-spielplan-action {
    border-left: 1px solid #dbe4ee;
}

.tt-spielplan-action:hover {
    background: #f2f7fb;
    color: #087ed1 !important;
}

.tt-spielplan-action i {
    font-size: 15px;
}


/* ---------------------------------------------------------
   Mannschaft + Rundennavigation
   --------------------------------------------------------- */

.tt-spielplan-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;

    margin: 0 0 10px;
}


/* Mannschaft */

.tt-spielplan-team {
    flex: 0 0 auto;
    width: 280px;
    max-width: 100%;
}

.tt-spielplan-team form {
    margin: 0;
}

.tt-spielplan-team label {
    display: flex;
    flex-direction: column;
    gap: 5px;

    margin: 0 !important;

    color: #34445a;
    font-size: 13px;
    font-weight: 700;
}

.tt-spielplan-team select {
    width: 100% !important;
    height: 34px;
    margin: 0 !important;

    font-size: 0.95em;
}


/* ---------------------------------------------------------
   Rundennavigation
   --------------------------------------------------------- */

.tt-round-navigation {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;

    margin-left: auto;
}

.tt-round-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    min-height: 34px;
    padding: 0 14px;

    border: 1px solid #c7d6e5;
    border-radius: 5px;

    background: #fff;

    color: #0b3970 !important;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;

    text-decoration: none !important;

    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}

.tt-round-button:hover {
    border-color: #087ed1;
    background: #f1f7fc;

    color: #075ca8 !important;
}

.tt-round-button.is-active {
    border-color: #087ed1;
    background: #087ed1;

    color: #fff !important;
}

.tt-round-button i {
    font-size: 14px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767.98px) {

    .tt-spielplan-heading {
        margin-bottom: 12px;
    }

    .tt-spielplan-actions {
        max-width: 100%;
    }

    .tt-spielplan-action {
        min-height: 32px;
        padding: 0 9px;

        font-size: 11.5px;
    }

    .tt-spielplan-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;

        margin-bottom: 8px;
    }

    .tt-spielplan-team {
        width: 210px;
        max-width: 100%;
    }

    .tt-spielplan-team label {
        gap: 4px;
        font-size: 11.5px;
    }

    .tt-round-navigation {
        order: -1;

        width: 100%;
        margin-left: 0;

        justify-content: flex-start;
        gap: 5px;
    }

    .tt-round-button {
        flex: 0 1 auto;

        min-height: 31px;
        padding: 0 8px;

        gap: 4px;

        font-size: 10.5px;
        white-space: nowrap;
    }

    .tt-round-button i {
        font-size: 12px;
    }
}
/* =========================================================
   FEINTUNING 20.08.2026
   Menues auch ungedockt kompakter + Themenbanner ca. 10% flacher
   Smartphone bleibt unveraendert.
   ========================================================= */

/* Desktop + Tablet: Startseiten-Sprungmenue und TT-Bereichsmenue
   auch in der normalen Position so kompakt wie im gedockten Zustand. */
@media (min-width: 768px) {
    body.itemid-116 .bkv-content-menu__item,
    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a {
        min-height: 44px !important;
        height: 44px !important;
        gap: 7px !important;
        padding: 0 12px !important;
        font-size: 12px !important;
        line-height: 1 !important;
        align-items: center;
    }

    body.itemid-116 .bkv-content-menu__item::before,
    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a::before,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a::before {
        font-size: 17px !important;
        line-height: 1 !important;
    }
}

/* Tablet: wegen der etwas schmaleren Flaeche minimal weniger Innenabstand. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-116 .bkv-content-menu__item,
    #sp-user1 ul.mod-menu.menubkv-tt-area-menu > li > a,
    #sp-user1 ul.menu.menubkv-tt-area-menu > li > a {
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    /* Tablet: gesamtes Themenbild proportional, ohne seitlichen Beschnitt. */
    #sp-title .mod-custom img {
        height: auto !important;
        object-fit: contain !important;
        object-position: center center !important;
    }
}

/* Desktop: bisher 300px -> 270px (= 10% weniger). */
@media (min-width: 992px) {
    #sp-title .mod-custom img {
        height: 270px !important;
    }
}

/* Auch große Tablets dürfen das Bild nicht wie Desktop-Hero zuschneiden. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    #sp-title .mod-custom img {
        height: auto !important;
        object-fit: contain !important;
        object-position: center center !important;
    }
}

/* Tablet: dieselbe maximale Hero-Höhe wie am Desktop (270px), jedoch ohne
   Beschnitt. Ist das Bild proportional bereits niedriger, bleibt es unvergrößert. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    #sp-title .mod-custom img {
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 270px !important;
        object-fit: contain !important;
        object-position: center center !important;
    }
}

/* =========================================================
   FOOTER – REACT-EU LOGO: AUSRICHTUNG + ABSTÄNDE
   ========================================================= */

/* Logo bündig mit der linken Kante der Kontaktangaben.
   Nach oben etwas mehr Luft zum Kontaktblock. */
#sp-footer3 #mod-custom120,
#sp-footer3 #mod-custom120 p {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

#sp-footer3 #mod-custom120 p {
    margin-top: 18px !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
}

#sp-footer3 #mod-custom120 img {
    display: block;
    margin: 0 !important;
}

/* Mobil: weniger Leerraum unter dem Förderlogo zum Copyright-Bereich. */
@media (max-width: 767px) {
    #sp-footer3 {
        padding-bottom: 8px !important;
    }

    #sp-footer3 #mod-custom120 p {
        margin-top: 20px !important;
        margin-bottom: 0 !important;
    }
}

/* =========================================================
   STARTSEITE: NEWS-KACHELN KOMPAKTER + 4 SPALTEN
   Desktop / Tablet, Smartphone bleibt unverändert
   ========================================================= */

/* Tischtennis-Kategorie auch bei den kurzen /tt-... Beitragspfaden erkennen. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) .mod-articles-category {
    font-size: 0;
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) .mod-articles-category::after {
    content: "Tischtennis";
    font-size: 11px;
}

/* Falls ein Tischtennis-Beitrag kein eigenes Einleitungsbild besitzt. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) {
    --bkv-category-image: url("/images/bkv-kategorien/tt.png");
}

body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"])::before {
    content: "";
    order: 1;
    display: block;
    background-color: #dce9f4;
    background-image: var(--bkv-category-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Desktop und Tablet: vier kompakte News-Kacheln nebeneinander. */
@media (min-width: 768px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 16px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 13px 14px 14px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 118px;
        height: 118px;
        margin: -13px -14px 10px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -13px -14px 10px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 118px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
        gap: 6px 10px;
        margin-bottom: 9px;
        font-size: 11px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-category {
        padding: 3px 7px;
        font-size: 11px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/fussball/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) .mod-articles-category::after,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) .mod-articles-category::after {
        font-size: 11px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        margin-bottom: 8px !important;
        font-size: 16px !important;
        line-height: 1.24;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        display: -webkit-box;
        overflow: hidden;
        margin-bottom: 6px;
        font-size: 12.5px;
        line-height: 1.4;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
        padding-top: 8px;
        font-size: 12px;
    }
}

/* Tablet noch etwas enger, damit vier Kacheln sauber in eine Reihe passen. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-116 #sp-homepage-news > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        gap: 10px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 10px 10px 12px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 94px;
        height: 94px;
        margin: -10px -10px 8px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -10px -10px 8px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 94px;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        font-size: 14px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        font-size: 11px;
        -webkit-line-clamp: 3;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl,
    body.itemid-116 #sp-homepage-news .mod-articles-category,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) .mod-articles-category::after {
        font-size: 10px;
    }
}

/* =========================================================
   FUSSBALL AKTUELLES – kompakte News-Kacheln Desktop/Tablet
   Gleiche Darstellung wie die kompakte Startseiten-Newsansicht.
   Smartphone bleibt unverändert.
   ========================================================= */

@media (min-width: 768px) {
    body.itemid-167 .article-list.bkv-news-card > .row {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 16px !important;
        margin: 0 0 20px !important;
    }

    body.itemid-167 .article-list.bkv-news-card > .row > [class*="col-"] {
        display: flex;
        width: auto !important;
        max-width: none !important;
        min-width: 0;
        padding: 0 !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article {
        min-height: 350px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article::before {
        flex: 0 0 132px !important;
        height: 132px !important;
        background-image: url("/images/bkv-kategorien/fb.png");
    }

    body.itemid-167 .article-list.bkv-news-card .article-body {
        padding: 12px 14px 48px !important;
    }

    /* Auf der Fußball-Newsseite ist die Kategorie eindeutig. */
    body.itemid-167 .article-list.bkv-news-card .article-header::before {
        content: "Fußball" !important;
        margin: 0 0 30px !important;
        padding: 3px 7px !important;
        font-size: 11px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-info {
        top: 39px !important;
        right: 14px !important;
        left: 14px !important;
        font-size: 11px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-header h2 {
        margin-bottom: 7px !important;
        padding-top: 18px !important;
        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-introtext {
        display: -webkit-box !important;
        max-height: none !important;
        overflow: hidden;
        font-size: 12.5px !important;
        line-height: 1.4 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    body.itemid-167 .article-list.bkv-news-card .article-introtext p {
        margin-bottom: 5px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article::after {
        bottom: 14px !important;
        left: 14px !important;
        font-size: 12px !important;
    }
}

/* Tablet: vier Kacheln bleiben in einer Reihe, nochmals etwas kompakter. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-167 #sp-main-body > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.itemid-167 .article-list.bkv-news-card > .row {
        gap: 10px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article {
        min-height: 315px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article::before {
        flex-basis: 94px !important;
        height: 94px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-body {
        padding: 10px 10px 44px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-header::before {
        margin-bottom: 27px !important;
        padding: 3px 6px !important;
        font-size: 10px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-info {
        top: 34px !important;
        right: 10px !important;
        left: 10px !important;
        font-size: 10px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-header h2 {
        padding-top: 16px !important;
        font-size: 14px !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article-introtext,
    body.itemid-167 .article-list.bkv-news-card .article-introtext > :not(.article-info),
    body.itemid-167 .article-list.bkv-news-card .article-introtext > :not(.article-info) * {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    body.itemid-167 .article-list.bkv-news-card .article::after {
        bottom: 12px !important;
        left: 10px !important;
        font-size: 11px !important;
    }
}

/* =========================================================
   BKV HEADER – ca. 20 % kompakter
   Desktop: 80 -> 64 px | Tablet: 74 -> 59 px | Mobil: 58 -> 46 px
   ========================================================= */

/* Desktop */
@media (min-width: 992px) {
    #sp-header {
        height: 64px !important;
    }

    #sp-header .logo img,
    #sp-header .logo-image,
    #sp-header .logo-image-phone {
        height: 50px !important;
        max-height: 50px !important;
    }

    #sp-main {
        margin-top: 64px !important;
        min-height: calc(100vh - 64px) !important;
    }

    #sp-page-title {
        margin-top: 64px !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked,
    body.itemid-116 #sp-content-menu.is-docked {
        top: 64px !important;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    #sp-header {
        height: 59px !important;
    }

    #sp-header .logo img,
    #sp-header .logo-image,
    #sp-header .logo-image-phone {
        height: 45px !important;
        max-height: 45px !important;
    }

    #sp-main {
        margin-top: 59px !important;
        min-height: calc(100vh - 59px) !important;
    }

    #sp-page-title {
        margin-top: 59px !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked,
    body.itemid-116 #sp-content-menu.is-docked {
        top: 59px !important;
    }
}

/* Smartphone */
@media (max-width: 767.98px) {
    #sp-header {
        height: 46px !important;
    }

    #sp-header .logo-image-phone,
    #sp-header .logo-image,
    #sp-header .logo img {
        height: 34px !important;
        max-height: 34px !important;
    }

    #sp-main {
        margin-top: 46px !important;
        min-height: calc(100vh - 46px) !important;
    }

    #sp-page-title {
        margin-top: 46px !important;
    }

    #sp-user1 ul.mod-menu.menubkv-tt-area-menu.is-docked,
    #sp-user1 ul.menu.menubkv-tt-area-menu.is-docked,
    body.itemid-116 #sp-content-menu.is-docked {
        top: 46px !important;
    }
}

/* =========================================================
   HEADER – Inhalte vertikal in der reduzierten Höhe zentrieren
   ========================================================= */

#sp-header > .container,
#sp-header > .container > .container-inner,
#sp-header .row,
#sp-header #sp-logo,
#sp-header #sp-menu,
#sp-header #sp-logo > .sp-column,
#sp-header #sp-menu > .sp-column {
    height: 100% !important;
    min-height: 0 !important;
}

#sp-header .row {
    align-items: center !important;
}

#sp-header #sp-logo,
#sp-header #sp-menu,
#sp-header #sp-logo > .sp-column,
#sp-header #sp-menu > .sp-column {
    display: flex !important;
    align-items: center !important;
}

#sp-header #sp-logo > .sp-column {
    justify-content: flex-start !important;
}

#sp-header #sp-menu > .sp-column {
    justify-content: flex-end !important;
}

#sp-header .logo,
#sp-header .logo a {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    line-height: 1 !important;
}

/* Desktop-Navigation an die neue Headerhöhe koppeln. */
@media (min-width: 992px) {
    #sp-header .sp-megamenu-wrapper,
    #sp-header .sp-megamenu-parent,
    #sp-header .sp-megamenu-parent > li,
    #sp-header .sp-megamenu-parent > li > a,
    #sp-header .sp-megamenu-parent > li > span {
        height: 64px !important;
        min-height: 64px !important;
        line-height: 1 !important;
    }

    #sp-header .sp-megamenu-parent {
        display: flex !important;
        align-items: center !important;
    }
}

/* Tablet/Burger ebenfalls exakt mittig. */
@media (min-width: 768px) and (max-width: 991.98px) {
    #sp-header #offcanvas-toggler {
        height: 59px !important;
        display: flex !important;
        align-items: center !important;
    }
}

@media (max-width: 767.98px) {
    #sp-header #offcanvas-toggler {
        height: 46px !important;
        display: flex !important;
        align-items: center !important;
    }
}

/* =========================================================
   HEADER – horizontale Originalausrichtung beibehalten
   Nur vertikale Zentrierung erzwingen.
   ========================================================= */

/* Die vorherige zusätzliche Flex-Ausrichtung der Spalten zurücknehmen. */
#sp-header #sp-logo,
#sp-header #sp-menu {
    display: block !important;
}

#sp-header #sp-logo > .sp-column,
#sp-header #sp-menu > .sp-column {
    display: flex !important;
    align-items: center !important;
}

/* Logo bleibt links, Navigation wie ursprünglich rechts. */
#sp-header #sp-logo > .sp-column {
    justify-content: flex-start !important;
}

#sp-header #sp-menu > .sp-column {
    justify-content: flex-end !important;
}

@media (min-width: 992px) {
    #sp-header .sp-megamenu-wrapper {
        margin-left: auto !important;
    }

    #sp-header .sp-megamenu-parent {
        justify-content: flex-end !important;
        margin-left: auto !important;
    }
}

/* =========================================================
   FIX: TISCHTENNIS-BADGE AUF DER STARTSEITE
   ---------------------------------------------------------
   Der bisherige Badge wurde direkt über .mod-articles-category::after
   erzeugt. Bei den kurzen /tt-... Beitragspfaden blieb dadurch teilweise
   nur die blaue Badge-Fläche ohne Text sichtbar.

   Lösung:
   - originales Kategorieelement bei TT-Kacheln ausblenden
   - Badge stabil als eigenes Flex-Element über die Metadatenzeile erzeugen
   ========================================================= */

body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/tt-"])
.mod-articles-category {
    display: none !important;
}

/* Auch weitere übliche Tischtennis-Pfade abfangen */
body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"])
.mod-articles-category,
body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"])
.mod-articles-category {
    display: none !important;
}

body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) > dl::before,
body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) > dl::before,
body.itemid-116 #sp-homepage-news
.mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) > dl::before {
    content: "Tischtennis";
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    padding: 4px 8px;
    color: #fff;
    background: #075ca8;
    border-radius: 4px;
    font-family: var(--bkv-font);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

/* Kompakte Desktop-/Tablet-Variante passend zu den übrigen Badges */
@media (min-width: 768px) {
    body.itemid-116 #sp-homepage-news
    .mod-articles-item-content:has(.mod-articles-link[href*="/tt-"]) > dl::before,
    body.itemid-116 #sp-homepage-news
    .mod-articles-item-content:has(.mod-articles-link[href*="/tischtennis/"]) > dl::before,
    body.itemid-116 #sp-homepage-news
    .mod-articles-item-content:has(.mod-articles-link[href*="/aktuelles-tischtennis/"]) > dl::before {
        padding: 3px 7px;
        font-size: 11px;
    }
}

/* =========================================================
   NEWS-KACHELN: HÖHE GENERELL REDUZIERT
   Startseite (116), Fußball (167), Tischtennis (168)
   Desktop / Tablet – Smartphone bleibt unverändert.
   ========================================================= */

@media (min-width: 768px) {

    /* ---------- Startseite ---------- */

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 11px 13px 12px !important;
    }

    /* Standard-/Fallbackbild */
    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 100px !important;
        height: 100px !important;
        margin: -11px -13px 8px !important;
    }

    /* Echtes Einleitungsbild */
    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -11px -13px 8px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 100px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content > dl {
        margin-bottom: 7px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title {
        margin-bottom: 6px !important;
    }

    /* Textbereich bewusst auf zwei Zeilen begrenzen. */
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > p {
        display: -webkit-box !important;
        overflow: hidden !important;
        margin-bottom: 4px !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::after {
        padding-top: 5px !important;
    }


    /* ---------- Fußball + Tischtennis ---------- */

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article {
        min-height: 320px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::before {
        flex: 0 0 110px !important;
        height: 110px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-body {
        padding: 11px 13px 44px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-header::before {
        margin-bottom: 27px !important;
        padding: 3px 7px !important;
        font-size: 11px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-info {
        top: 36px !important;
        right: 13px !important;
        left: 13px !important;
        font-size: 11px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-header h2 {
        margin-bottom: 6px !important;
        padding-top: 14px !important;
        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    /* Auch hier nur noch zwei Textzeilen. */
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext {
        display: -webkit-box !important;
        max-height: none !important;
        overflow: hidden !important;
        font-size: 12.5px !important;
        line-height: 1.4 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext p {
        margin-bottom: 4px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::after {
        bottom: 12px !important;
        left: 13px !important;
        font-size: 12px !important;
    }
}


/* Tablet nochmals etwas flacher. */
@media (min-width: 768px) and (max-width: 991.98px) {

    body.itemid-116 #sp-homepage-news .mod-articles-item-content {
        padding: 9px 10px 10px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        flex-basis: 82px !important;
        height: 82px !important;
        margin: -9px -10px 7px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure {
        margin: -9px -10px 7px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content > figure img {
        height: 82px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article {
        min-height: 285px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::before {
        flex: 0 0 82px !important;
        height: 82px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-body {
        padding: 9px 10px 40px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-header::before {
        margin-bottom: 24px !important;
        font-size: 10px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-info {
        top: 31px !important;
        right: 10px !important;
        left: 10px !important;
        font-size: 10px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-header h2 {
        padding-top: 12px !important;
        font-size: 14px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext,
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext > :not(.article-info),
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext > :not(.article-info) * {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }
}

/* =========================================================
   STARTSEITE: BUTTON "ALLE MELDUNGEN" KOMPAKTER
   ========================================================= */
body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
    margin-top: 22px !important;
}

body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a {
    min-height: 36px !important;
    padding: 7px 18px !important;
    border-radius: 4px;
    font-size: 13px !important;
    line-height: 1.2;
}

@media (max-width: 639.98px) {
    body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
        margin-top: 18px !important;
    }

    body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all a {
        min-height: 34px !important;
        padding: 6px 15px !important;
        font-size: 12px !important;
    }
}

/* =========================================================
   DESKTOP MEGAMENU – KORREKTUR NACH HEADER-REDUZIERUNG
   Headerhöhe: 64px
   ========================================================= */

@media (min-width: 992px) {

    /*
     * Dropdowns immer direkt unter dem 64px-Header öffnen.
     * Damit bleiben keine alten 80px-Abstände aus Helix aktiv.
     */
    #sp-header .sp-megamenu-parent > li > .sp-dropdown {
        top: 64px !important;
        margin-top: 0 !important;
    }

    /*
     * Inhalte eines MegaMenus immer oben ausrichten.
     * Verhindert versetzte Gruppen/Spalten wie z.B.
     * "Stadtmeisterschaft" gegenüber "Allgemein".
     */
    #sp-header .sp-dropdown .sp-dropdown-inner > .row {
        display: flex !important;
        align-items: flex-start !important;
    }

    #sp-header .sp-dropdown .sp-dropdown-inner > .row > [class*="col-"],
    #sp-header .sp-dropdown .sp-mega-group,
    #sp-header .sp-dropdown .sp-mega-group > li,
    #sp-header .sp-dropdown .item-header {
        top: auto !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
        transform: none !important;
        align-self: flex-start !important;
    }

    /*
     * Gruppenüberschriften bekommen eine identische Ausgangshöhe.
     */
    #sp-header .sp-dropdown .sp-group-title {
        margin-top: 0 !important;
        padding-top: 0 !important;
        line-height: 1.35 !important;
    }

    /*
     * Helix-Animation darf nur das komplette Dropdown bewegen,
     * nicht einzelne MegaMenu-Spalten.
     */
    #sp-header .sp-dropdown .sp-dropdown-inner,
    #sp-header .sp-dropdown .sp-dropdown-inner > .row,
    #sp-header .sp-dropdown .sp-dropdown-inner > .row > [class*="col-"] {
        translate: none !important;
    }
}

/* =========================================================
   STARTSEITE: ABSTAND NACH "ALLE MELDUNGEN" REDUZIEREN
   ========================================================= */

/* News-Bereich nach unten kompakter abschließen */
body.itemid-116 #sp-homepage-news {
    padding-bottom: 42px !important;
}

/* Falls der Abstand über das Modul selbst erzeugt wird */
body.itemid-116 #sp-homepage-news .sp-module:last-child,
body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
    margin-bottom: 0 !important;
}

/* Abstand vor dem direkt folgenden Bereich "Nächste Spiele" */
body.itemid-116 #sp-homepage-news + section,
body.itemid-116 #sp-homepage-news + .sp-section,
body.itemid-116 #sp-homepage-news ~ #sp-next-games {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

@media (max-width: 991.98px) {
    body.itemid-116 #sp-homepage-news {
        padding-bottom: 32px !important;
    }
}

/* =========================================================
   STARTSEITE: NEWS -> NÄCHSTE SPIELE NOCH KOMPAKTER
   ========================================================= */
@media (min-width: 768px) {
    body.itemid-116 #sp-homepage-news {
        padding-bottom: 24px !important;
        margin-bottom: 0 !important;
    }

    body.itemid-116 #sp-homepage-news .sp-module:last-child,
    body.itemid-116 #sp-homepage-news .sp-module.bkv-news-all {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* =========================================================
   FUSSBALL + TISCHTENNIS NEWS:
   GLEICHE KACHELGRÖSSE WIE AUF DER STARTSEITE
   Desktop / Tablet
   ========================================================= */

@media (min-width: 768px) {

    /* Gleiche Kartenhöhe wie die Startseiten-News */
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article {
        min-height: 0 !important;
        height: 318px !important;
    }

    /* Gleiche Bildhöhe wie auf der Startseite */
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::before {
        flex: 0 0 100px !important;
        height: 100px !important;
    }

    /* Gleicher kompakter Inhaltsbereich */
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-body {
        padding: 11px 13px 40px !important;
    }

    /* Vorschautext auf dieselbe kompakte Höhe begrenzen */
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article-introtext {
        display: -webkit-box !important;
        overflow: hidden !important;
        max-height: none !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::after {
        bottom: 12px !important;
        left: 13px !important;
    }
}

/* Tablet: ebenfalls identische kompakte Höhe */
@media (min-width: 768px) and (max-width: 991.98px) {
    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article {
        height: 285px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list.bkv-news-card .article::before {
        flex-basis: 82px !important;
        height: 82px !important;
    }
}

/* =========================================================
   FIX: FUSSBALL + TISCHTENNIS NEWS = STARTSEITEN-KACHELGRÖSSE
   Ursache: Die Bereichsseiten besitzen KEINE Klasse .bkv-news-card.
   Deshalb greifen die bisherigen spaeteren Overrides nicht.
   ========================================================= */

@media (min-width: 768px) {

    /* Vier Kacheln wie auf der Startseite */
    body:is(.itemid-167, .itemid-168) .article-list > .row {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 16px !important;
        margin: 0 0 20px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list > .row > [class*="col-"] {
        display: flex !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 !important;
    }

    /* Gleiche kompakte Kartenhoehe */
    body:is(.itemid-167, .itemid-168) .article-list .article {
        min-height: 0 !important;
        height: 318px !important;
    }

    /* Gleiche Bildhoehe wie Startseite */
    body:is(.itemid-167, .itemid-168) .article-list .article::before {
        flex: 0 0 100px !important;
        height: 100px !important;
    }

    /* Bereichsspezifische Bilder beibehalten */
    body.itemid-167 .article-list .article::before {
        background-image: url("/images/bkv-kategorien/fb.png") !important;
    }

    body.itemid-168 .article-list .article::before {
        background-image: url("/images/bkv-kategorien/tt.png") !important;
    }

    /* Inhaltsbereich identisch kompakt */
    body:is(.itemid-167, .itemid-168) .article-list .article-body {
        padding: 11px 13px 40px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header::before {
        margin: 0 0 27px !important;
        padding: 3px 7px !important;
        font-size: 11px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-info {
        top: 35px !important;
        right: 13px !important;
        bottom: auto !important;
        left: 13px !important;
        font-size: 11px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header h2 {
        margin-bottom: 6px !important;
        padding-top: 14px !important;
        font-size: 16px !important;
        line-height: 1.25 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext,
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info),
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info) * {
        font-size: 12.5px !important;
        line-height: 1.4 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext {
        display: -webkit-box !important;
        max-height: none !important;
        overflow: hidden !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext p {
        margin-bottom: 4px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article::after {
        bottom: 12px !important;
        left: 13px !important;
        font-size: 12px !important;
    }
}

/* Tablet ebenfalls vier gleich grosse kompakte Karten */
@media (min-width: 768px) and (max-width: 991.98px) {

    body:is(.itemid-167, .itemid-168) #sp-main-body > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list > .row {
        gap: 10px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article {
        height: 285px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article::before {
        flex-basis: 82px !important;
        height: 82px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-body {
        padding: 9px 10px 38px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header::before {
        margin-bottom: 24px !important;
        padding: 3px 6px !important;
        font-size: 10px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-info {
        top: 31px !important;
        right: 10px !important;
        left: 10px !important;
        font-size: 10px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-header h2 {
        padding-top: 12px !important;
        font-size: 14px !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article-introtext,
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info),
    body:is(.itemid-167, .itemid-168) .article-list .article-introtext > :not(.article-info) * {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    body:is(.itemid-167, .itemid-168) .article-list .article::after {
        bottom: 11px !important;
        left: 10px !important;
        font-size: 11px !important;
    }
}

/* =========================================================
   TISCHTENNIS-STARTSEITE – NÄCHSTE SPIELE
   Eigenständige Modulklasse; keine Auswirkung auf Menüs oder
   andere Tabellen.
   ========================================================= */
.bkv-tt-overview-upcoming {
    padding: 18px 20px 16px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

.bkv-tt-overview-upcoming__title {
    margin: 0 0 14px;
    color: #075ca8;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.bkv-tt-overview-upcoming__table-wrap {
    width: 100%;
    overflow-x: auto;
}

.bkv-tt-overview-upcoming__table {
    width: 100%;
    min-width: 710px;
    margin: 0;
    border-collapse: collapse;
    color: #1f2e40;
    font-size: 13px;
}

.bkv-tt-overview-upcoming__table th {
    padding: 9px 10px;
    color: #3b485a;
    background: #f3f5f8;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1.15;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.bkv-tt-overview-upcoming__table td {
    padding: 9px 10px;
    border-bottom: 1px solid #e4eaf0;
    line-height: 1.25;
    vertical-align: middle;
}

.bkv-tt-overview-upcoming__table tbody tr:last-child td { border-bottom: 0; }
.bkv-tt-overview-upcoming__row-link { cursor: pointer; }
.bkv-tt-overview-upcoming__row-link:hover td { background: #f6faff; }
.bkv-tt-overview-upcoming__row-link:focus-visible { outline: 2px solid #0879c9; outline-offset: -2px; }
.bkv-tt-overview-upcoming__table th:nth-child(1),
.bkv-tt-overview-upcoming__table td:nth-child(1) { width: 13%; white-space: nowrap; }
.bkv-tt-overview-upcoming__table th:nth-child(2),
.bkv-tt-overview-upcoming__table td:nth-child(2) { width: 8%; white-space: nowrap; }
.bkv-tt-overview-upcoming__table th:nth-child(3),
.bkv-tt-overview-upcoming__table td:nth-child(3),
.bkv-tt-overview-upcoming__table th:nth-child(4),
.bkv-tt-overview-upcoming__table td:nth-child(4) { width: 20%; white-space: nowrap; }
.bkv-tt-overview-upcoming__table th:nth-child(5),
.bkv-tt-overview-upcoming__table td:nth-child(5) { width: 11%; white-space: nowrap; }
.bkv-tt-overview-upcoming__table th:nth-child(6),
.bkv-tt-overview-upcoming__table td:nth-child(6) { width: 14%; white-space: nowrap; }
.bkv-tt-overview-upcoming__table th:nth-child(7),
.bkv-tt-overview-upcoming__table td:nth-child(7) { width: 8%; text-align: center; white-space: nowrap; }

.bkv-tt-overview-upcoming__mobile { display: none; }

.bkv-tt-overview-upcoming__score { color: #172b44; font-weight: 800; }

.bkv-tt-overview-upcoming__calendar a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #405163;
    text-decoration: none;
}

.bkv-tt-overview-upcoming__calendar a:hover,
.bkv-tt-overview-upcoming__calendar a:focus-visible { color: #075ca8; }

.bkv-tt-overview-upcoming__empty {
    padding: 20px !important;
    color: #657386;
    text-align: center;
}

.bkv-tt-overview-upcoming__all {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 12px auto 0;
    color: #075ca8;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.bkv-tt-overview-upcoming__all:hover,
.bkv-tt-overview-upcoming__all:focus-visible { color: #043f78; text-decoration: none; }

@media (max-width: 991.98px) {
    .bkv-tt-overview-upcoming { padding: 15px 14px 14px; }
    .bkv-tt-overview-upcoming__title { font-size: 15px; }
    .bkv-tt-overview-upcoming__table { min-width: 0; font-size: 11px; table-layout: fixed; }
    .bkv-tt-overview-upcoming__table th,
    .bkv-tt-overview-upcoming__table td { padding: 7px 4px; }
    .bkv-tt-overview-upcoming__table th { padding: 7px 4px; font-size: 9px; }
    .bkv-tt-overview-upcoming__table th:nth-child(2),
    .bkv-tt-overview-upcoming__table td:nth-child(2) { display: none; }
    .bkv-tt-overview-upcoming__table th:nth-child(1),
    .bkv-tt-overview-upcoming__table td:nth-child(1) { width: 21%; }
    .bkv-tt-overview-upcoming__table th:nth-child(3),
    .bkv-tt-overview-upcoming__table td:nth-child(3),
    .bkv-tt-overview-upcoming__table th:nth-child(4),
    .bkv-tt-overview-upcoming__table td:nth-child(4) { width: 22%; overflow: hidden; text-overflow: ellipsis; }
    .bkv-tt-overview-upcoming__table th:nth-child(5),
    .bkv-tt-overview-upcoming__table td:nth-child(5) { width: 10%; text-align: center; }
    .bkv-tt-overview-upcoming__table th:nth-child(6),
    .bkv-tt-overview-upcoming__table td:nth-child(6) { width: 13%; text-align: center; }
    .bkv-tt-overview-upcoming__table th:nth-child(7),
    .bkv-tt-overview-upcoming__table td:nth-child(7) { width: 12%; }
    .bkv-tt-overview-upcoming__desktop { display: none; }
    .bkv-tt-overview-upcoming__mobile { display: inline; }
    .bkv-tt-overview-upcoming__table td:first-child .bkv-tt-overview-upcoming__mobile {
        display: block;
        font-size: 11px;
        line-height: 1.15;
    }
    .bkv-tt-overview-upcoming__table td:first-child small {
        display: block;
        margin-top: 1px;
        color: #526b84;
        font-size: 11px;
        font-weight: 400;
        line-height: 1.15;
    }
}

/* =========================================================
   TISCHTENNIS-ÜBERSICHT – MODULRASTER UND AKTUELLES
   Nur Seite „tt-uebersicht“ / Modulposition Position 1.
   ========================================================= */
body.itemid-215 #sp-position1 > .bkv-sport-card {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 14px;
}

body.itemid-215 #sp-position1 > .bkv-sport-card > .sp-module {
    min-width: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136) { grid-column: 1; }
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135) { grid-column: 2; }
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134) { grid-column: 1; }
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133) { grid-column: 2; }

body.itemid-215 .bkv-tt-overview-upcoming {
    height: 100%;
    box-sizing: border-box;
}

.bkv-tt-overview-news {
    height: 100%;
    padding: 18px 19px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

.bkv-tt-overview-news__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 11px;
}

.bkv-tt-overview-news__head h2 {
    margin: 0;
    color: #075ca8;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.bkv-tt-overview-news__head > a {
    flex: 0 0 auto;
    color: #075ca8;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.bkv-tt-overview-news__list { display: grid; gap: 11px; }

.bkv-tt-overview-news__item {
    margin: 0;
}

.bkv-tt-overview-news__item-link {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 76px;
    padding: 6px;
    color: inherit;
    text-decoration: none;
    background: #f8fbfd;
    border: 1px solid #dce8f1;
    border-radius: 6px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.bkv-tt-overview-news__item-link:hover,
.bkv-tt-overview-news__item-link:focus-visible {
    border-color: #a9cfe8;
    box-shadow: 0 4px 10px rgba(13, 53, 91, .09);
    transform: translateY(-1px);
}

.bkv-tt-overview-news__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 2.6 / 1;
    border-radius: 4px;
}

.bkv-tt-overview-news__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
}

.bkv-tt-overview-news__meta {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 4px;
    color: #657386;
    font-size: 10px;
    line-height: 1.2;
}

.bkv-tt-overview-news__meta span {
    padding: 3px 6px;
    color: #fff;
    background: #075ca8;
    border-radius: 3px;
    font-weight: 800;
}

.bkv-tt-overview-news__meta time::before {
    margin-right: 4px;
    content: "\f073";
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-weight: 900;
}

.bkv-tt-overview-news h3 {
    margin: 0;
    color: #25374e;
    display: -webkit-box;
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 800;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bkv-tt-overview-news h3 a { color: inherit; text-decoration: none; }

.bkv-tt-overview-news__date {
    display: block;
    margin: 0 0 3px;
    color: #667b91;
    font-size: 10.5px;
    line-height: 1.15;
}

.bkv-tt-overview-news__date::before {
    margin-right: 4px;
    content: "\f073";
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-weight: 900;
}

.bkv-tt-overview-news p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: #4e5e70;
    font-size: 11px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bkv-tt-overview-news__empty { margin: 0; color: #657386; font-size: 13px; }

/* Kontakt vor Förderlogo ausgeben; das Logo bleibt darunter ausgerichtet. */
#sp-footer3 .bkv-footer-contact {
    display: flex;
    flex-direction: column;
}

#sp-footer3 .bkv-footer-contact > .sp-module:has(#mod-custom123) { order: 1; }
#sp-footer3 .bkv-footer-contact > .sp-module:has(#mod-custom120) { order: 2; }

#sp-footer3 #mod-custom120 p { margin-top: 14px !important; }
#sp-footer3 #mod-custom120 img { max-width: 220px; height: auto; }

@media (max-width: 991.98px) {
    body.itemid-215 #sp-position1 > .bkv-sport-card { grid-template-columns: 1fr; }
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133) { grid-column: 1; }
}

@media (max-width: 575.98px) {
    .bkv-tt-overview-news { padding: 15px 14px; }
    .bkv-tt-overview-news__item-link { grid-template-columns: 125px minmax(0, 1fr); gap: 8px; min-height: 68px; padding: 5px; }
    .bkv-tt-overview-news__head h2 { font-size: 15px; }
    .bkv-tt-overview-news p { font-size: 10.5px; }
}

/* Der Joomla-Beitrag dient auf der TT-Übersicht nur als technischer
   Container. Sichtbar bleiben ausschließlich die darüber platzierten Module. */
body.itemid-215 #sp-main-body { display: none !important; }

/* Luft zwischen Bereichsmenü und dem ersten Modulblock wie im Zielbild. */
body.itemid-215 #sp-ergebnisse > .container > .container-inner {
    padding-top: 16px !important;
    padding-bottom: 22px !important;
}

/* TT- und Fußball-Übersicht: Derselbe äußere Rahmen wie das Contentmenü.
   Die Karten nutzen darin die gesamte verfügbare Breite; die 28px sind nur
   der gemeinsame Mindestseitenabstand. */
@media (min-width: 768px) {
    body:is(.itemid-215, .itemid-222) #sp-ergebnisse > .container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 1240px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 28px !important;
        padding-left: 28px !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-ergebnisse > .container > .container-inner {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-position1 > .bkv-sport-card {
        width: 100% !important;
        max-width: none !important;
    }
}

@media (max-width: 575.98px) {
    body.itemid-215 #sp-ergebnisse > .container > .container-inner {
        /* Gleiche seitliche Flucht wie die regulären TT-Bereichsseiten. */
        width: calc(100% - 36px);
        padding-top: 12px !important;
        padding-bottom: 18px !important;
    }
}

/* Tischtennis-Übersicht – kompakte Stadtliga-Tabelle. */
.bkv-tt-overview-table {
    height: 100%;
    padding: 18px 19px 16px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

.bkv-tt-overview-table h2 {
    margin: 0 0 12px;
    color: #075ca8;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.bkv-tt-overview-table__wrap { overflow-x: auto; }
.bkv-tt-overview-table__mobile { display: none; }

.bkv-tt-overview-table table {
    width: 100%;
    min-width: 620px;
    margin: 0;
    border-collapse: collapse;
    color: #263548;
    font-size: 12px;
}

.bkv-tt-overview-table th {
    padding: 8px 9px;
    color: #3b485a;
    background: #f3f5f8;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.bkv-tt-overview-table td {
    padding: 7px 9px;
    border-bottom: 1px solid #e5ebf1;
    line-height: 1.2;
    vertical-align: middle;
    white-space: nowrap;
}

.bkv-tt-overview-table td:first-child { width: 48px; text-align: center; }
.bkv-tt-overview-table td:nth-child(2) { width: 34%; font-weight: 600; }
.bkv-tt-overview-table td:last-child { text-align: center; }
.bkv-tt-overview-table tr.is-leading td:first-child { background: #dff2e5; font-weight: 800; }
.bkv-tt-overview-table tbody tr:last-child td { border-bottom: 0; }

.bkv-tt-overview-table__empty { padding: 20px !important; color: #657386; text-align: center; }

.bkv-tt-overview-table__all {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 13px auto 0;
    color: #075ca8;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.bkv-tt-overview-table__all:hover,
.bkv-tt-overview-table__all:focus-visible { color: #043f78; text-decoration: none; }

@media (max-width: 767.98px) {
    .bkv-tt-overview-table { padding: 15px 14px 14px; }
    .bkv-tt-overview-table h2 { font-size: 15px; }
    .bkv-tt-overview-table__wrap {
        overflow-x: scroll;
        padding-bottom: 6px;
        scrollbar-width: thin;
        scrollbar-color: #0879c9 #e1eaf2;
    }
    .bkv-tt-overview-table__wrap::-webkit-scrollbar { height: 8px; }
    .bkv-tt-overview-table__wrap::-webkit-scrollbar-track { background: #e1eaf2; border-radius: 8px; }
    .bkv-tt-overview-table__wrap::-webkit-scrollbar-thumb { background: #0879c9; border-radius: 8px; }
    /* Die Tabelle füllt auf kleinen Bildschirmen immer die Breite ihres
       Moduls. Prozentwerte statt fixer Pixelbreiten verhindern ungenutzten
       Raum bei unterschiedlichen Gerätebreiten. */
    .bkv-tt-overview-table table { width: 100%; min-width: 0; table-layout: fixed; font-size: 11px; }
    .bkv-tt-overview-table th,
    .bkv-tt-overview-table td { padding: 7px 4px; }
    .bkv-tt-overview-table th:nth-child(3),
    .bkv-tt-overview-table td:nth-child(3),
    .bkv-tt-overview-table th:nth-child(8),
    .bkv-tt-overview-table td:nth-child(8) { display: none; }
    .bkv-tt-overview-table th:nth-child(1),
    .bkv-tt-overview-table td:nth-child(1) { width: 7%; }
    .bkv-tt-overview-table th:nth-child(1) { text-align: center; }
    .bkv-tt-overview-table th:nth-child(2),
    .bkv-tt-overview-table td:nth-child(2) { width: 43%; max-width: none; }
    .bkv-tt-overview-table th:nth-child(4),
    .bkv-tt-overview-table td:nth-child(4),
    .bkv-tt-overview-table th:nth-child(5),
    .bkv-tt-overview-table td:nth-child(5),
    .bkv-tt-overview-table th:nth-child(6),
    .bkv-tt-overview-table td:nth-child(6) { width: 8%; text-align: center; }
    .bkv-tt-overview-table th:nth-child(7),
    .bkv-tt-overview-table td:nth-child(7) { width: 14%; text-align: center; }
    .bkv-tt-overview-table th:nth-child(9),
    .bkv-tt-overview-table td:nth-child(9) { width: 12%; text-align: center; }
    .bkv-tt-overview-table__desktop { display: none; }
    .bkv-tt-overview-table__mobile { display: inline; }

    /* Pokalübersicht: fünf abweichende Spalten, daher keine Spalte ausblenden. */
    .bkv-tt-overview-table--pokal table { width: 100%; min-width: 0; table-layout: fixed; }
    .bkv-tt-overview-table--pokal th:nth-child(3),
    .bkv-tt-overview-table--pokal td:nth-child(3) { display: table-cell; width: auto; max-width: none; }
    .bkv-tt-overview-table--pokal th:nth-child(4),
    .bkv-tt-overview-table--pokal td:nth-child(4) { display: table-cell; width: 42px; }
    .bkv-tt-overview-table--pokal th:nth-child(5),
    .bkv-tt-overview-table--pokal td:nth-child(5) { width: auto; }
}

/* Tischtennis-Übersicht – Spiele & Ergebnisse. */
.bkv-tt-overview-matches {
    height: 100%;
    padding: 18px 19px 16px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

.bkv-tt-overview-matches h2 {
    margin: 0 0 10px;
    padding-bottom: 10px;
    color: #075ca8;
    border-bottom: 1px solid #e2e8ef;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.bkv-tt-overview-matches__item {
    display: grid;
    grid-template-columns: 86px minmax(78px, 1fr) 43px minmax(78px, 1fr);
    gap: 8px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #e7edf2;
    color: #263548;
    font-size: 11px;
    line-height: 1.25;
}

.bkv-tt-overview-matches__item--link { cursor: pointer; }
.bkv-tt-overview-matches__item--link:hover { background: #f6faff; }
.bkv-tt-overview-matches__item--link:focus-visible { outline: 2px solid #0879c9; outline-offset: -2px; }

.bkv-tt-overview-matches__date { color: #4e5e70; }
.bkv-tt-overview-matches__date time,
.bkv-tt-overview-matches__date span { display: block; line-height: 1.15; }
.bkv-tt-overview-matches__date span { margin-top: 1px; }
.bkv-tt-overview-matches__team { min-width: 0; font-weight: 400; }
.bkv-tt-overview-matches__team--winner { font-weight: 700; }
.bkv-tt-overview-matches__team--home { text-align: right; }
.bkv-tt-overview-matches__score { text-align: center; white-space: nowrap; }
.bkv-tt-overview-matches__details { color: #4e5e70; }

/* Begegnung, Ergebnis und Hinweise bleiben in jeder Zeile eindeutig ausgerichtet. */
body.itemid-215 .bkv-tt-overview-matches__item {
    grid-template-columns: 86px minmax(0, 1fr) minmax(0, 1fr) 43px minmax(24px, max-content);
    column-gap: 9px;
}

body.itemid-215 .bkv-tt-overview-matches__team {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.itemid-215 .bkv-tt-overview-matches__team--home { text-align: left; }
body.itemid-215 .bkv-tt-overview-matches__team--away { text-align: left; }
body.itemid-215 .bkv-tt-overview-matches__hints {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 22px;
    gap: 1px;
}

body.itemid-215 .bkv-tt-overview-matches__hints .bkv-gamehint {
    top: 0;
    margin: 0;
}

.bkv-tt-overview-matches__empty { margin: 15px 0; color: #657386; font-size: 12px; text-align: center; }

.bkv-tt-overview-matches__all {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 13px auto 0;
    color: #075ca8;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.bkv-tt-overview-matches__all:hover,
.bkv-tt-overview-matches__all:focus-visible { color: #043f78; text-decoration: none; }

@media (max-width: 575.98px) {
    .bkv-tt-overview-matches { padding: 15px 14px 14px; }
    .bkv-tt-overview-matches h2 { font-size: 15px; }
    .bkv-tt-overview-matches__item {
        grid-template-columns: 70px minmax(0, 1fr) 38px minmax(0, 1fr) 22px;
        gap: 5px;
        font-size: 11px;
    }
    .bkv-tt-overview-matches__details { display: none; }
}

/* Übersichtsraster: oben 2:1 für Spiele/News, unten ausgewogen 7:5. */
body.itemid-215 #sp-position1 > .bkv-sport-card {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136) { grid-column: 1 / span 8; }
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135) { grid-column: 9 / span 4; grid-row: 1; }
/* Tabelle und Ergebnisse bilden weiterhin eine gemeinsame Zeile. */
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134) { grid-column: 1 / span 7; grid-row: 3; }
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133) { grid-column: 8 / span 5; grid-row: 3; }
/* Das Informationsmodul beginnt direkt unter Aktuelles, bleibt aber neben
   der längeren Liste „Nächste Spiele“. */
body.itemid-215 #sp-position1 .sp-module:has(.bkv-tt-overview-info) {
    grid-column: 9 / span 4;
    grid-row: 1;
    align-self: start;
    /* Dezente Trennung zum Aktuelles-Modul oberhalb. */
    transform: translateY(250px);
}

/* Das Tabellenmodul wird selbst als Rasterelement ausgegeben. */
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134),
body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134) .sp-module-content,
body.itemid-215 #sp-position1 #mod-custom134 {
    display: contents !important;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    margin: 0;
    padding: 0;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter label {
    display: block;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition {
    display: inline-flex;
    align-self: stretch;
    overflow: hidden;
    border: 1px solid #0879c9;
    border-radius: 5px;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 5px 10px;
    color: #075ca8;
    background: #fff;
    border-right: 1px solid #0879c9;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a:last-child { border-right: 0; }
body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a:hover,
body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a:focus-visible { color: #075ca8; background: #eaf5fb; text-decoration: none; }
body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a.is-active { color: #fff; background: #0879c9; }

body.itemid-215 #sp-position1 .bkv-tt-overview-filter select {
    min-width: 118px;
    height: 34px;
    padding: 5px 28px 5px 9px;
    color: #173a5d;
    background-color: #fff;
    border: 1px solid #c8d9e7;
    border-radius: 5px;
    box-shadow: 0 1px 2px rgba(13, 53, 91, .04);
    font: inherit;
    font-size: 12px;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-filter select:focus {
    border-color: #0879c9;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(8, 121, 201, .12);
}

body.itemid-215 #sp-position1 .bkv-tt-overview-table { grid-column: 1 / span 7; grid-row: 3; }

body.itemid-215 #sp-position1 .bkv-tt-overview-table__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-table__header h2 { margin: 0; }

/* Einheitliche Typografie der drei Sportmodule. */
body.itemid-215 .bkv-tt-overview-upcoming,
body.itemid-215 .bkv-tt-overview-table,
body.itemid-215 .bkv-tt-overview-matches {
    color: #1f2e40;
    font-family: inherit;
}

body.itemid-215 .bkv-tt-overview-upcoming__title,
body.itemid-215 .bkv-tt-overview-table h2,
body.itemid-215 .bkv-tt-overview-matches h2 {
    color: #075ca8;
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

body.itemid-215 .bkv-tt-overview-upcoming__table,
body.itemid-215 .bkv-tt-overview-table table,
body.itemid-215 .bkv-tt-overview-matches__item { font-family: inherit; font-size: 12px; }

body.itemid-215 .bkv-tt-overview-upcoming__table th,
body.itemid-215 .bkv-tt-overview-table th { font-family: inherit; font-size: 10px; }

body.itemid-215 .bkv-tt-overview-upcoming__table td,
body.itemid-215 .bkv-tt-overview-table td { padding-top: 8px; padding-bottom: 8px; }

/* Downloads & Informationen auf der Tischtennis-Übersicht. */
.bkv-tt-overview-info {
    padding: 18px 20px;
    color: #1f2e40;
    background: #fff;
    border: 1px solid #d8e3ed;
    border-radius: 7px;
    box-shadow: 0 5px 14px rgba(22, 53, 82, .05);
    font-family: inherit;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info h2 {
    margin: 0 0 11px;
    color: #075ca8;
    font-family: inherit;
    font-size: 16px !important;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.bkv-tt-overview-info__list {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bkv-tt-overview-info__item {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 8px 9px;
    color: #1f2e40;
    background: #f7fafc;
    border: 1px solid #e1eaf1;
    border-radius: 5px;
    font-size: 12px;
    line-height: 1.25;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.bkv-tt-overview-info__item:hover,
.bkv-tt-overview-info__item:focus-visible {
    color: #075ca8;
    background: #edf7fc;
    border-color: #9bc9e8;
    text-decoration: none;
}

.bkv-tt-overview-info__icon {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    color: #0879c9;
    background: #e5f2fa;
    border-radius: 50%;
    font-size: 12px;
}

.bkv-tt-overview-info__label { min-width: 0; }
.bkv-tt-overview-info__label strong { display: block; font-size: 12px; font-weight: 800; }
.bkv-tt-overview-info__label small { display: block; margin-top: 2px; color: #617184; font-size: 11px; }
.bkv-tt-overview-info__arrow { color: #0879c9; font-size: 13px; text-align: right; }

/* Formularseite: klare Download-Bereiche statt einer unstrukturierten Linkliste. */
.bkv-downloads { max-width: 1184px; }
.bkv-downloads--statutes { max-width: 560px; }
.bkv-downloads--statutes .bkv-downloads__grid { grid-template-columns: minmax(0, 1fr); }
.bkv-downloads__back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 20px;
    padding: 8px 13px;
    border: 1px solid #b9d7ec;
    border-radius: 5px;
    color: #075ca8;
    background: #eef7fc;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}
.bkv-downloads__back:hover,
.bkv-downloads__back:focus-visible { color: #fff; background: #0879c9; text-decoration: none; }

/* Normale Einzelbeiträge (z. B. Über uns, Impressum und Datenschutz):
 * ruhige, weiße Inhaltskarte – getrennt von News- und Sportseiten. */
body.com-content.view-article #sp-main-body .article-details.bkv-standard-article {
    box-sizing: border-box;
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 34px 36px;
    background: #fff;
    border: 1px solid #d8e4ef;
    border-radius: 10px;
    box-shadow: 0 10px 26px rgba(9, 45, 83, 0.08);
}

body.com-content.view-article #sp-main-body .article-details.bkv-standard-article > .bkv-downloads__back,
body.com-content.view-article #sp-main-body .article-details.bkv-standard-article > .bkv-standard-article-back {
    margin: 0 0 20px;
}

body.com-content.view-article #sp-main-body .article-details.bkv-standard-article .article-header {
    margin-bottom: 22px;
}

@media (max-width: 767.98px) {
    body.com-content.view-article #sp-main-body .article-details.bkv-standard-article {
        margin: 0 10px;
        padding: 20px 18px 24px;
        border-radius: 8px;
    }
}
.bkv-downloads__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}
.bkv-downloads__section {
    margin: 0;
    overflow: hidden;
    border: 1px solid #d7e2ec;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}
.bkv-downloads__section h2 {
    margin: 0;
    padding: 12px 16px;
    color: #075ca8;
    border-bottom: 1px solid #c8dce9;
    background: #e6f2f9;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}
.bkv-downloads__section h2 i { margin-right: 8px; }
.bkv-downloads__list { margin: 0; padding: 0; list-style: none; }
.bkv-downloads__list li + li { border-top: 1px solid #e3eaf0; }
.bkv-downloads__list a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    color: #22344a;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.bkv-downloads__list a i { flex: 0 0 16px; color: #0879c9; font-size: 16px; text-align: center; }
.bkv-downloads__list a:hover,
.bkv-downloads__list a:focus-visible { color: #075ca8; background: #f2f8fc; text-decoration: none; }
@media (max-width: 991.98px) {
    .bkv-downloads__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .bkv-downloads__back { margin-bottom: 16px; padding: 7px 11px; font-size: 12px; }
    .bkv-downloads__grid { grid-template-columns: 1fr; gap: 14px; }
    .bkv-downloads__section h2 { padding: 11px 13px; font-size: 15px; }
    .bkv-downloads__list a { padding: 10px 13px; font-size: 13px; }
}

.bkv-tt-overview-table--pokal .bkv-tt-overview-pokal th:nth-child(4),
.bkv-tt-overview-table--pokal .bkv-tt-overview-pokal td:nth-child(4) {
    text-align: center;
    font-weight: 700;
}

.bkv-tt-overview-table--pokal .bkv-tt-overview-pokal__bye {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 5px;
    background: #eef0f4;
    color: #374151;
    font-size: inherit;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.15;
    text-transform: uppercase;
    vertical-align: baseline;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    /* Tablet kompakt halten; Desktop zeigt alle zwölf Begegnungen. */
    body.itemid-215 .bkv-tt-overview-upcoming__table tbody tr:nth-child(n + 11) {
        display: none;
    }

    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134),
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133),
    body.itemid-215 #sp-position1 .sp-module:has(.bkv-tt-overview-info) { grid-column: 1 / -1; }

    /* Einspaltig dieselbe Leserichtung wie mobil: Aktuelles, Nächste
       Spiele, Tabelle, Ergebnisse, Downloads & Infos. */
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135) { order: 1; }
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136) { order: 2; }
    body.itemid-215 #sp-position1 .sp-module:has(.bkv-tt-overview-info) { grid-row: auto; order: 5; transform: none; }
    body.itemid-215 #sp-position1 #mod-custom134 { order: 3; }
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133) { grid-row: auto; order: 4; }

    /* Das Tabellenmodul wird ohne eigenen Joomla-Wrapper gerendert: daher
       Reihenfolge und Rasterzeile direkt am sichtbaren Container setzen. */
    body.itemid-215 #sp-position1 .bkv-tt-overview-table {
        grid-column: 1 / -1;
        grid-row: auto;
        order: 3;
    }
}

@media (max-width: 575.98px) {
    /* Mobil bewusst kompakt: nur die sechs nächsten Begegnungen zeigen. */
    body.itemid-215 .bkv-tt-overview-upcoming__table tbody tr:nth-child(n + 7) {
        display: none;
    }

    body.itemid-215 #sp-position1 .bkv-tt-overview-filter {
        align-items: flex-end;
        gap: 8px;
    }

    /* Vier feste, überlappungsfreie Mobilspalten: Datum, Heim, Ergebnis, Gast. */
    body.itemid-215 .bkv-tt-overview-matches__item {
        grid-template-columns: 54px minmax(0, 1fr) minmax(0, 1fr) 30px minmax(22px, max-content);
        column-gap: 5px;
        row-gap: 6px;
        align-items: center;
        font-size: 12px !important;
    }

    body.itemid-215 .bkv-tt-overview-matches__team {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.itemid-215 .bkv-tt-overview-matches__score {
        font-size: 12px !important;
        text-align: center;
    }

    body.itemid-215 .bkv-tt-overview-matches__date {
        font-size: 12px !important;
        white-space: nowrap;
    }

    body.itemid-215 #sp-position1 .bkv-tt-overview-filter__competition a { min-height: 32px; padding: 5px 9px; font-size: 11px; }
    body.itemid-215 #sp-position1 .bkv-tt-overview-filter select { min-width: 100px; }
    body.itemid-215 #sp-position1 .bkv-tt-overview-table__header { align-items: flex-start; flex-direction: column; }
    .bkv-tt-overview-info { padding: 15px 14px; }
    .bkv-tt-overview-info h2 { font-size: 15px; }
}

/* TT-Übersicht: Auf Smartphones folgen die Karten der inhaltlichen
   Leserichtung. Das Desktop- und Tablet-Raster bleibt davon unberührt. */
@media (max-width: 767.98px) {
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom135) { grid-row: auto !important; order: 1 !important; }
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom136) { grid-row: auto !important; order: 2 !important; }

    /* Das Tabellenmodul wird als „display: contents“ ausgegeben, daher
       sowohl den Joomla-Wrapper als auch den sichtbaren Container setzen. */
    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom134),
    body.itemid-215 #sp-position1 #mod-custom134,
    body.itemid-215 #sp-position1 .bkv-tt-overview-table { grid-row: auto !important; order: 3 !important; }

    body.itemid-215 #sp-position1 .sp-module:has(#mod-custom133) { grid-row: auto !important; order: 4 !important; }
    body.itemid-215 #sp-position1 .sp-module:has(.bkv-tt-overview-info) {
        grid-row: auto !important;
        order: 5 !important;
        transform: none !important;
    }
}

/* Tischtennis-Administration: Saisonwahl und Vorschau-/Prüftabellen. */
#sp-main-body .bkv-admin-season-filter {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: -14px 0 22px;
    padding: 9px 11px;
    background: #fff;
    border: 1px solid #d7e2ec;
    border-radius: 6px;
    box-shadow: 0 1px 4px rgba(13, 53, 91, .06);
}

#sp-main-body .bkv-admin-season-filter label {
    margin: 0;
    color: #183e68;
    font-size: 13px;
    font-weight: 800;
}

#sp-main-body .bkv-admin-season-filter select {
    min-height: 34px;
    padding: 5px 30px 5px 10px;
    color: #203247;
    background: #fff;
    border: 1px solid #bfd0df;
    border-radius: 5px;
    font: inherit;
    font-size: 13px;
}

#sp-main-body .bkv-round-setup {
    max-width: 680px;
    margin: -8px 0 24px;
    padding: 18px;
    background: #fff;
    border: 1px solid #d4e0ea;
    border-radius: 7px;
    box-shadow: 0 2px 8px rgba(13, 53, 91, .05);
}

#sp-main-body .bkv-round-setup strong {
    display: block;
    color: #003c78;
    font-size: 15px;
}

#sp-main-body .bkv-round-setup p {
    margin: 7px 0 13px;
    color: #526477;
    font-size: 13px;
}

#sp-main-body .bkv-round-setup__choices {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 15px;
}

#sp-main-body .bkv-round-setup__choices label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 10px;
    color: #203b59;
    background: #f5f9fc;
    border: 1px solid #cdddeb;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 700;
}

#sp-main-body .bkv-round-setup button {
    display: inline-flex !important;
    width: auto !important;
    min-height: 38px;
    padding: 8px 15px;
    color: #fff;
    background: #0879c9;
    border: 1px solid #0879c9;
    border-radius: 5px;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
}

#sp-main-body .bkv-round-setup button:hover { background: #005da9; border-color: #005da9; }

#sp-main-body .bkv-admin-stats-grid,
#sp-main-body .bkv-admin-schedule-grid {
    display: grid;
    gap: 18px;
    align-items: start;
    margin: 0 0 26px;
    clear: both;
}

#sp-main-body .bkv-admin-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#sp-main-body .bkv-admin-schedule-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

#sp-main-body .bkv-admin-date-result {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 18px;
    align-items: start;
    margin: 0 0 24px;
}

#sp-main-body .bkv-admin-date-result > p {
    grid-column: 1 / -1;
    margin: 0;
    color: #29435d;
    font-size: 13px;
}

#sp-main-body .bkv-admin-schedule-table {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid #cbdce9;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 7px;
    box-shadow: 0 2px 8px rgba(13, 53, 91, .04);
    color: #26394c;
    font-size: 12px;
}

#sp-main-body .bkv-admin-schedule-table th {
    padding: 9px 10px;
    color: #003c78 !important;
    background: #e4f1f9 !important;
    border-bottom: 1px solid #c4d8e7;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

#sp-main-body .bkv-admin-schedule-table tr:first-child th {
    color: #003c78 !important;
    background: #e4f1f9 !important;
    font-size: 12px;
}

/* Spieltage bleiben klar getrennt, ohne die alten künstlichen Leerzeilen. */
.bkv-admin-schedule-table tr.bkv-admin-matchday th,
#sp-main-body .bkv-admin-schedule-table tr.bkv-admin-matchday th {
    padding-top: 8px !important;
    color: #003c78 !important;
    background: #e4f1f9 !important;
    border-top: 8px solid #f4f7fa !important;
    border-bottom: 1px solid #c4d8e7 !important;
    font-size: 11px !important;
    letter-spacing: .02em;
}

/* Auch außerhalb des regulären Komponenten-Containers dieselbe Tabellenoptik. */
.bkv-admin-schedule-table th {
    color: #003c78 !important;
    background: #e4f1f9 !important;
}

#sp-main-body .bkv-admin-schedule-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #e1eaf1;
    line-height: 1.3;
    text-align: center;
    vertical-align: middle;
}

#sp-main-body .bkv-admin-schedule-table tbody tr:nth-child(even) td {
    background: #f8fbfd;
}

#sp-main-body .bkv-admin-schedule-table tr:last-child td { border-bottom: 0; }

/* Heimrecht: Einzelspiel oder die komplette Hin-/Rückspiel-Paarung tauschen. */
#sp-main-body .bkv-home-switch-actions {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: stretch;
}

#sp-main-body .bkv-home-switch-actions form { margin: 0 !important; }

#sp-main-body .bkv-home-switch-actions button {
    width: 100% !important;
    min-height: 25px;
    padding: 3px 5px !important;
    color: #075ca8 !important;
    background: #fff !important;
    border: 1px solid #bfd6e8 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    font-size: 10px !important;
    font-weight: 700;
    line-height: 1.15;
    white-space: normal;
}

#sp-main-body .bkv-home-switch-actions button:hover,
#sp-main-body .bkv-home-switch-actions button:focus {
    color: #fff !important;
    background: #0879c9 !important;
    border-color: #0879c9 !important;
}

#sp-main-body .bkv-home-switch-list {
    margin: 8px 0 0 18px;
    padding: 0;
}

#sp-main-body .bkv-home-switch-list li { margin: 2px 0; }

#sp-main-body .bkv-admin-weekday {
    display: block;
    margin-bottom: 2px;
    color: #003c78;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

#sp-main-body #bilanzen .bkv-empty-stats-row td {
    padding: 22px 12px !important;
    color: #667b8e !important;
    background: #f8fbfd !important;
    font-style: italic;
    text-align: center !important;
}

#bilanzen .bkv-empty-stats-row td {
    padding: 22px 12px;
    color: #667b8e;
    background: #f8fbfd;
    font-style: italic;
    text-align: center;
}

/* Die längste Rundenbezeichnung darf im Bilanzfilter nicht abgeschnitten werden. */
#sp-main-body .select-round,
.select-round {
    min-width: 142px !important;
    width: auto !important;
}

/* Einheitliche positive Rückmeldungen im Spielplan-Admin. */
#sp-main-body .bkv-admin-feedback {
    margin: 16px 0 !important;
    padding: 16px !important;
    border-radius: 6px !important;
}

#sp-main-body .bkv-admin-date-result .bkv-admin-feedback { margin-top: 0 !important; }

/* Spielplan-Überblick in der Administratoransicht. */
#sp-main-body .bkv-admin-overview-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0 12px;
}

#sp-main-body .bkv-admin-overview-card {
    display: flex;
    min-height: 82px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #cbdce9;
    border-radius: 7px;
    box-shadow: 0 2px 8px rgba(13, 53, 91, .04);
    color: #36516a;
    flex-direction: column;
    justify-content: space-between;
}

#sp-main-body .bkv-admin-overview-card span {
    color: #003c78;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

#sp-main-body .bkv-admin-overview-card strong {
    color: #075ca8;
    font-size: 27px;
    line-height: 1;
}

#sp-main-body .bkv-admin-overview-card.is-warning { border-color: #e5cf91; }
#sp-main-body .bkv-admin-overview-card.is-warning strong { color: #ad6d00; }

#sp-main-body .bkv-admin-parallel-games {
    margin: 0 0 20px;
    padding: 13px 16px;
    color: #36516a;
    background: #fff;
    border: 1px solid #cbdce9;
    border-radius: 7px;
    font-size: 12px;
}

#sp-main-body .bkv-admin-parallel-games > strong {
    display: block;
    margin-bottom: 8px;
    color: #003c78;
}

#sp-main-body .bkv-admin-parallel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 9px;
}

#sp-main-body .bkv-admin-parallel-header strong { color: #003c78; }

#sp-main-body .bkv-admin-parallel-header form {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    white-space: nowrap;
}

#sp-main-body .bkv-admin-parallel-header label {
    margin: 0;
    color: #003c78;
    font-size: 11px;
    font-weight: 700;
}

#sp-main-body .bkv-admin-parallel-header select {
    min-width: 180px;
    padding: 5px 27px 5px 8px;
    color: #26394c;
    background: #fff;
    border: 1px solid #bfd6e8;
    border-radius: 4px;
    font-size: 12px;
}

#sp-main-body .bkv-admin-parallel-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 10px;
}

#sp-main-body .bkv-admin-parallel-list span {
    padding: 4px 7px;
    background: #f4f8fb;
    border: 1px solid #dbe7ef;
    border-radius: 4px;
}

#sp-main-body .bkv-admin-parallel-empty { color: #667b8e; }

/* Rückmeldungen beim Speichern von TT-Ergebnissen. */
#sp-main-body .bkv-result-feedback {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 14px 0 18px;
    padding: 14px 16px;
    border: 1px solid transparent;
    border-radius: 7px;
    box-shadow: 0 2px 7px rgba(13, 53, 91, .06);
}

#sp-main-body .bkv-result-feedback strong { font-weight: 800; }
#sp-main-body .bkv-result-feedback span { color: inherit; }
#sp-main-body .bkv-result-feedback.alert-success { color: #165d38; background: #dff1e7; border-color: #b8dfc8; }
#sp-main-body .bkv-result-feedback.alert-warning { color: #795600; background: #fff3cd; border-color: #f0d98c; }
#sp-main-body .bkv-result-feedback.alert-danger { color: #8e2430; background: #f9dce0; border-color: #edb5bd; }

/* TT-Administration: destruktive Aktion oberhalb der Spieldetails. */
#sp-main-body .bkv-detail-delete-form {
    margin: 0 0 14px;
}

#sp-main-body .bkv-detail-delete-form .btn-danger {
    display: inline-flex !important;
    width: auto !important;
    min-height: 36px;
    padding: 8px 14px;
    border-color: #b6444d;
    background: #c64b55;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

/* Die Detailansicht wird teilweise außerhalb von #sp-main-body gerendert. */
form.bkv-detail-delete-form {
    display: block !important;
    width: auto !important;
    margin: 0 0 14px !important;
}

form.bkv-detail-delete-form button.btn-danger {
    display: inline-flex !important;
    width: auto !important;
    min-width: 210px !important;
    align-items: center;
    justify-content: center;
}

#sp-main-body .bkv-detail-delete-form .btn-danger:hover,
#sp-main-body .bkv-detail-delete-form .btn-danger:focus {
    border-color: #963640;
    background: #a93d47;
    color: #fff;
}

/* TT-Administration: Liga verwalten */
#sp-main-body .bkv-league-filters {
    display: flex;
    float: right;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 0 10px;
}

#sp-main-body .bkv-league-filters .bkv-league-select {
    width: auto !important;
    min-width: max-content;
    height: 34px !important;
    margin: 0 !important;
    padding: 6px 30px 6px 10px !important;
    color: #183650 !important;
    background: #fff !important;
    border: 1px solid #c9d9e7 !important;
    border-radius: 5px !important;
    font-size: 13px !important;
}

#sp-main-body .bkv-league-table {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid #cbdce9;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(13, 53, 91, .04);
    color: #26394c;
    font-size: 12px;
}

#sp-main-body .bkv-league-table th {
    padding: 9px 10px;
    color: #003c78 !important;
    background: #e4f1f9 !important;
    border-bottom: 1px solid #c4d8e7;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

#sp-main-body .bkv-league-title-table {
    margin-bottom: 0 !important;
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
    box-shadow: none;
}

#sp-main-body .bkv-league-title-table th {
    padding: 10px;
    font-size: 12px;
}

#sp-main-body .bkv-league-title-table + .bkv-league-table--compact {
    margin-top: 0 !important;
    border-top: 0;
    border-radius: 0 0 7px 7px;
}

#sp-main-body .bkv-league-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #e1eaf1;
    background: #fff;
    line-height: 1.35;
    text-align: center;
}

#sp-main-body .bkv-league-table tbody tr:nth-child(even) td { background: #f8fbfd; }
#sp-main-body .bkv-league-table tbody tr:last-child td { border-bottom: 0; }

/* Liga verwalten: Alle Ergebnis- und Auswertungstabellen verwenden die
   Schriftgröße der oberen Spieltags-Tabelle. */
#sp-main-body .bkv-league-table,
#sp-main-body .bkv-league-table td {
    font-size: 13px !important;
}

#sp-main-body .bkv-league-table th,
#sp-main-body .bkv-league-title-table th {
    font-size: 12px !important;
}

#sp-main-body .bkv-league-secondary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
    clear: both;
    margin: 10px 0 24px;
}

#sp-main-body .bkv-league-half { min-width: 0; }

/* Suchbare Aufstellungs-Auswahl in TT > Liga verwalten. */
#sp-main-body .bkv-player-picker {
    display: inline-block;
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 2px 0;
}

#sp-main-body .bkv-player-picker__input {
    width: 100% !important;
    min-width: 0;
    height: 34px;
    padding: 6px 10px;
    color: #1b344d;
    background: #fff;
    border: 1px solid #c8d9e7;
    border-radius: 5px;
    font-size: 13px;
    line-height: 1.2;
}

#sp-main-body .bkv-player-picker__input:focus {
    outline: 0;
    border-color: #0879c9;
    box-shadow: 0 0 0 3px rgba(8, 121, 201, .12);
}

#sp-main-body .bkv-player-picker__results {
    position: absolute;
    z-index: 1000;
    top: calc(100% + 2px);
    right: 0;
    left: 0;
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid #9fc2da;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(13, 53, 91, .18);
}

#sp-main-body .bkv-player-picker__option {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 7px 10px !important;
    color: #1b344d !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid #edf2f6 !important;
    box-shadow: none !important;
    font: inherit !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

#sp-main-body .bkv-player-picker__option:hover,
#sp-main-body .bkv-player-picker__option:focus {
    color: #003c78 !important;
    background: #eaf5fb !important;
}

#sp-main-body .bkv-player-picker select.SpielerSelect { display: none !important; }

/* Die Administration wird teilweise außerhalb von #sp-main-body gerendert. */
.bkv-player-picker {
    position: relative !important;
    display: inline-block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 3px 0 !important;
    vertical-align: top;
}

.bkv-player-picker__input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 7px 11px !important;
    color: #173a5d !important;
    background: #fff !important;
    border: 1px solid #9fc2da !important;
    border-radius: 5px !important;
    box-shadow: inset 0 1px 1px rgba(13, 53, 91, .03) !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    text-align: left !important;
}

.bkv-player-picker__input:focus {
    border-color: #0879c9 !important;
    box-shadow: 0 0 0 3px rgba(8, 121, 201, .16) !important;
}

.bkv-player-picker__results {
    position: absolute !important;
    z-index: 2000 !important;
    top: calc(100% + 4px) !important;
    right: 0 !important;
    left: 0 !important;
    max-height: 252px !important;
    overflow-y: auto !important;
    padding: 4px !important;
    border: 1px solid #77a9ce !important;
    border-radius: 6px !important;
    background: #fff !important;
    box-shadow: 0 10px 22px rgba(11, 48, 83, .24) !important;
}

.bkv-player-picker__results[hidden] { display: none !important; }

.bkv-player-picker__option {
    display: block !important;
    width: 100% !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    overflow: hidden !important;
    color: #173a5d !important;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 1px solid #e2edf4 !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    text-align: left !important;
    text-transform: none !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.bkv-player-picker__option:nth-child(even) { background: #f7fbfe !important; }
.bkv-player-picker__option:last-child { border-bottom: 0 !important; }

.bkv-player-picker__option:hover,
.bkv-player-picker__option:focus {
    color: #003c78 !important;
    background: #dfeff9 !important;
    outline: 0 !important;
}

.bkv-player-picker select.SpielerSelect { display: none !important; }

/* Die Trefferliste darf weder von der Tabelle noch von nachfolgenden Bereichen
   abgeschnitten oder überlagert werden. */
table:has(.bkv-player-picker) {
    position: relative !important;
    z-index: 20 !important;
    overflow: visible !important;
}

table:has(.bkv-player-picker) td,
table:has(.bkv-player-picker) tr,
table:has(.bkv-player-picker) tbody {
    overflow: visible !important;
}

.bkv-player-picker:focus-within { z-index: 2100 !important; }

@media (max-width: 639.98px) {
    #sp-main-body .bkv-league-filters {
        float: none;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    #sp-main-body .bkv-league-secondary-grid { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 639.98px) {
    #sp-main-body .bkv-admin-season-filter {
        width: 100%;
        justify-content: space-between;
        margin-top: -8px;
    }

    #sp-main-body .bkv-admin-schedule-grid,
    #sp-main-body .bkv-admin-stats-grid { grid-template-columns: 1fr; gap: 14px; }

    #sp-main-body .bkv-admin-schedule-table { font-size: 11px; }
    #sp-main-body .bkv-admin-schedule-table th,
    #sp-main-body .bkv-admin-schedule-table td { padding: 7px 6px; }

    #sp-main-body .bkv-home-switch-actions { gap: 3px; }
    #sp-main-body .bkv-home-switch-actions button { font-size: 9px !important; }

    #sp-main-body .bkv-admin-overview-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    #sp-main-body .bkv-admin-overview-card { min-height: 72px; padding: 12px; }
    #sp-main-body .bkv-admin-overview-card strong { font-size: 23px; }

    #sp-main-body .bkv-admin-parallel-header { align-items: flex-start; flex-direction: column; gap: 8px; }
    #sp-main-body .bkv-admin-parallel-header form { width: 100%; }
    #sp-main-body .bkv-admin-parallel-header select { flex: 1; min-width: 0; }
}

/* Alle Meldungen: kompakte Viereransicht und echtes Beitragsbild vor Fallback. */
@media (min-width: 992px) {
    body.itemid-161 .article-list.bkv-news-card > .row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
    body.itemid-161 .article-list.bkv-news-card .article { min-height: 350px; }
    body.itemid-161 .article-list.bkv-news-card .article::before { flex-basis: 118px; height: 118px; background-position: left center; }
    body.itemid-161 .article-list.bkv-news-card .article-body { padding: 13px 14px 46px; }
    body.itemid-161 .article-list.bkv-news-card .article-header::before { margin-bottom: 7px; padding: 3px 7px; font-size: 11px; }
    body.itemid-161 .article-list.bkv-news-card .article-header h2 { margin-bottom: 7px; font-size: 16px; line-height: 1.25; }
    body.itemid-161 .article-list.bkv-news-card .article-introtext { max-height: 70px; font-size: 12px; line-height: 1.42; }
    body.itemid-161 .article-list.bkv-news-card .article-info { right: 14px; bottom: 34px; left: 14px; font-size: 11px; }
    body.itemid-161 .article-list.bkv-news-card .article::after { bottom: 13px; left: 14px; font-size: 12px; }
}

body.itemid-161 .article-list.bkv-news-card .article::before { background-position: left center; }
/* „Alle Meldungen“: Fußballartikel liegen in der Kategorie-Alias-Route
   /aktuelles-fussball/ und benötigen deshalb eigene Fallback-Regeln. */
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fussball/"])::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fußball/"])::before {
    background-image: url("/images/bkv-kategorien/fb.png") !important;
    background-position: left center !important;
}
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fussball/"]) .article-header::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-fußball/"]) .article-header::before {
    content: "Fußball" !important;
    visibility: visible !important;
}
body.itemid-161 .article-list.bkv-news-card .article:has(.article-image img, .item-image img, .article-intro-image img, figure img)::before { display: none; }
body.itemid-161 .article-list.bkv-news-card .article .article-image,
body.itemid-161 .article-list.bkv-news-card .article .item-image,
body.itemid-161 .article-list.bkv-news-card .article .article-intro-image,
body.itemid-161 .article-list.bkv-news-card .article > figure { display:block !important; flex:0 0 118px; order:-1; width:100%; height:118px; margin:0; overflow:hidden; }
body.itemid-161 .article-list.bkv-news-card .article .article-image img,
body.itemid-161 .article-list.bkv-news-card .article .item-image img,
body.itemid-161 .article-list.bkv-news-card .article .article-intro-image img,
body.itemid-161 .article-list.bkv-news-card .article > figure img { display:block !important; width:100%; height:100%; object-fit:cover; object-position:left center; }

/* Karten ohne spezielle Unterkategorie zeigen "Aktuelles". */
body.itemid-161 .article-list.bkv-news-card .article-header::before {
    content: "Aktuelles";
    min-height: 22px;
    visibility: visible;
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/fussball/"]) .article-header::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/tischtennis/"]) .article-header::before,
body.itemid-161 .article-list.bkv-news-card .article:has(.article-header a[href*="/aktuelles-tischtennis/"]) .article-header::before {
    visibility: visible;
}

/* Startseite: vier gleich breite Sprungpunkte. Der vierte Punkt führt zum
   Modul "BKV kompakt" unterhalb der Ergebnisbereiche. */
body.itemid-116 .bkv-content-menu {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Formularseite: eindeutige Bereichs- und Dateityp-Icons. */
.bkv-downloads__section h2::before,
.bkv-downloads__list a::before {
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    color: #0879c9;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    text-align: center;
}

.bkv-downloads__section h2::before { margin-right: 9px; }
.bkv-downloads__section h2#downloads-fussball::before { content: "\f1e3"; }
.bkv-downloads__section h2#downloads-tischtennis::before { content: "\f45d"; }
.bkv-downloads__section h2#downloads-bkv::before { content: "\f0c0"; }

.bkv-downloads__list a[href$=".pdf"]::before { content: "\f1c1"; }
.bkv-downloads__list a[href$=".doc" i]::before,
.bkv-downloads__list a[href$=".docx" i]::before { content: "\f1c2"; }
.bkv-downloads__list a[href$=".xls" i]::before,
.bkv-downloads__list a[href$=".xlsx" i]::before { content: "\f1c3"; }
.bkv-downloads__list a:not([href$=".pdf"]):not([href$=".doc" i]):not([href$=".docx" i]):not([href$=".xls" i]):not([href$=".xlsx" i])::before { content: "\f15c"; }

/* News: Sobald ein Joomla-Einleitungsbild vorhanden ist, ersetzt es das
   Kategorien-Fallback vollständig – beide Bilder werden nie parallel gezeigt. */
body.itemid-116 #sp-homepage-news .mod-articles-item-content:has(.mod-articles-image img)::before {
    display: none !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-image img {
    object-position: left center;
}

body.itemid-161 .article-list.bkv-news-card .article:has(.article-intro-image img)::before {
    display: none !important;
}

body.itemid-161 .article-list.bkv-news-card .article .article-image,
body.itemid-161 .article-list.bkv-news-card .article .item-image,
body.itemid-161 .article-list.bkv-news-card .article > figure {
    display: none !important;
}

/* TT-Übersicht: Informationsmodul gegen globale Editor-/Linkregeln absichern. */
body.itemid-215 #sp-position1 .bkv-tt-overview-info {
    padding: 18px 20px !important;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__item {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 14px !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 50px;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon,
body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon i,
body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon i::before {
    display: grid !important;
    width: 24px;
    height: 24px;
    place-items: center;
    line-height: 1 !important;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__label {
    min-width: 0 !important;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__label strong {
    white-space: nowrap;
}

/* Downloads & Infos: Font Awesome 6 benötigt für die Solid-Symbole das
   Gewicht 900. Zudem bleibt die erklärende Zeile bewusst kompakt. */
body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon {
    display: grid !important;
    flex: 0 0 24px;
    color: #0879c9 !important;
    background: #e5f2fa !important;
    border-radius: 50%;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon i,
body.itemid-215 #sp-position1 .bkv-tt-overview-info__icon i::before {
    display: block !important;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif !important;
    font-weight: 900 !important;
    font-style: normal !important;
    line-height: 1 !important;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__label small {
    overflow: hidden;
    color: #617184 !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Falls das Modul im Editor ohne die Icon-Spans gespeichert wurde, werden
   passende Symbole als rein visuelle Ergänzung wieder ausgegeben. */
body.itemid-215 #sp-position1 .bkv-tt-overview-info__item:not(:has(.bkv-tt-overview-info__icon))::before {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    color: #0879c9;
    background: #e5f2fa;
    border-radius: 50%;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

body.itemid-215 #sp-position1 .bkv-tt-overview-info__list > li:nth-child(1) .bkv-tt-overview-info__item:not(:has(.bkv-tt-overview-info__icon))::before { content: "\f0c0"; }
body.itemid-215 #sp-position1 .bkv-tt-overview-info__list > li:nth-child(2) .bkv-tt-overview-info__item:not(:has(.bkv-tt-overview-info__icon))::before { content: "\f02d"; }
body.itemid-215 #sp-position1 .bkv-tt-overview-info__list > li:nth-child(3) .bkv-tt-overview-info__item:not(:has(.bkv-tt-overview-info__icon))::before { content: "\f019"; }
body.itemid-215 #sp-position1 .bkv-tt-overview-info__list > li.bkv-tt-overview-info__item:nth-child(2):not(:has(.bkv-tt-overview-info__icon))::before { content: "\f02d"; }

/* Frontend-Beitragsbearbeitung: Joomla Choices-Dropdowns lesbar und über
   nachfolgenden Formularfeldern darstellen. */
body.com-content.view-form #sp-main-body .choices {
    position: relative;
    z-index: 20;
    color: #25364a;
    font-family: inherit;
}

body.com-content.view-form #sp-main-body .choices.is-open { z-index: 1060; }

body.com-content.view-form #sp-main-body .choices__inner {
    min-height: 42px;
    padding: 5px 38px 5px 12px;
    color: #25364a;
    background: #fff;
    border: 1px solid #aac3d8;
    border-radius: 5px;
    font: inherit;
}

body.com-content.view-form #sp-main-body .choices__list--single { padding: 4px 0; }
body.com-content.view-form #sp-main-body .choices__item--selectable { color: #25364a; }

body.com-content.view-form #sp-main-body .choices__list--dropdown,
body.com-content.view-form #sp-main-body .choices__list[aria-expanded] {
    z-index: 1061 !important;
    overflow-y: auto;
    max-height: 280px;
    color: #25364a !important;
    background: #fff !important;
    border: 1px solid #87aecb;
    border-radius: 0 0 5px 5px;
    box-shadow: 0 8px 18px rgba(15, 47, 78, .18);
}

body.com-content.view-form #sp-main-body .choices__input--cloned {
    width: 100% !important;
    margin: 0;
    padding: 9px 11px;
    color: #25364a !important;
    background: #fff !important;
    border: 0;
    border-bottom: 1px solid #d7e3ed;
    font: inherit;
}

body.com-content.view-form #sp-main-body .choices__list--dropdown .choices__item--choice {
    display: block;
    padding: 9px 11px;
    color: #25364a !important;
    background: #fff !important;
    font: inherit;
    line-height: 1.35;
}

body.com-content.view-form #sp-main-body .choices__list--dropdown .choices__item--choice.is-highlighted,
body.com-content.view-form #sp-main-body .choices__list--dropdown .choices__item--choice:hover {
    color: #063d70 !important;
    background: #eaf4fb !important;
}

@media (max-width: 767.98px) {
    body.itemid-116 .bkv-content-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.itemid-116 .bkv-content-menu__item:nth-child(2) {
        border-right: 0;
    }

    body.itemid-116 .bkv-content-menu__item:nth-child(3),
    body.itemid-116 .bkv-content-menu__item:nth-child(4) {
        border-bottom: 3px solid transparent;
    }
}

/* =========================================================
   FUSSBALL-BEREICH – NAVIGATION UND ÜBERSICHTSRASTER
   Ausschließlich für die neue Fußball-Übersicht (Itemid 222).
   Die Navigation liegt technisch in Position 1 und wird deshalb
   aus dem Modulraster herausgelöst; optisch und beim Andocken
   entspricht sie dem Tischtennis-Bereichsmenü.
   ========================================================= */
body.itemid-222 #sp-position1 > .bkv-sport-card {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
    padding-top: 46px;
}

/* Das Bereichsmenü darf keine Rasterzelle belegen. */
body.itemid-222 #sp-position1 .sp-module:has(.menubkv-fb-area-menu) {
    position: absolute;
    z-index: 30;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
}

body.itemid-222 #sp-position1 .sp-module:has(.menubkv-fb-area-menu) .sp-module-content {
    width: 100%;
}

body.itemid-222 #sp-position1 ul.mod-menu.menubkv-fb-area-menu,
body.itemid-222 #sp-position1 ul.menu.menubkv-fb-area-menu {
    position: relative;
    z-index: 30;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(100%, 1184px);
    max-width: 1184px;
    min-height: 0;
    margin: -16px auto 0 !important;
    padding: 0 !important;
    overflow: hidden;
    list-style: none;
    background: #fff;
    border: 1px solid #dce4ed;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(10, 43, 82, .14);
}

body.itemid-222 #sp-position1 ul.mod-menu.menubkv-fb-area-menu.is-docked,
body.itemid-222 #sp-position1 ul.menu.menubkv-fb-area-menu.is-docked {
    position: fixed !important;
    top: 64px !important;
    left: 50%;
    margin: 0 !important;
    transform: translateX(-50%);
    z-index: 9998;
}

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li {
    display: flex;
    min-width: 0;
    margin: 0 !important;
    border-right: 1px solid #e2e8f0;
}

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li:last-child { border-right: 0; }

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 56px;
    height: 56px;
    padding: 9px 14px 7px;
    color: #26364b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: color .18s ease, background-color .18s ease;
}

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a::before {
    display: inline-block;
    width: 19px;
    flex: 0 0 19px;
    margin: 0;
    color: #0b2f5f;
    font-family: "Font Awesome 6 Free";
    font-size: 19px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

body.itemid-222 #sp-position1 .menubkv-fb-area-menu a[href*="uebersicht"]::before,
body.itemid-222 #sp-position1 .menubkv-fb-area-menu a[href*="übersicht"]::before { content: "\f00a"; }
body.itemid-222 #sp-position1 .menubkv-fb-area-menu a[href*="tabelle"]::before { content: "\f080"; }
body.itemid-222 #sp-position1 .menubkv-fb-area-menu a[href*="spielplan"]::before { content: "\f133"; }

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: transparent;
    border-radius: 3px 3px 0 0;
}

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li.active > a,
body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a:hover,
body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a:focus-visible {
    color: #075ca8;
    background: #f4f9fd;
    outline: none;
}

body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li.active > a::before { color: #075ca8; }
body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li.active > a::after { background: #075ca8; }

/* Gleiches 8/4- und 7/5-Raster wie auf der TT-Übersicht. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { grid-column: 1 / span 8; grid-row: 1; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { grid-column: 9 / span 4; grid-row: 1; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { grid-column: 1 / span 7; grid-row: 2; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { grid-column: 8 / span 5; grid-row: 2; }

/* Die leeren Platzhalter sollen nicht als technische Modultitel erscheinen. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title {
    display: none;
}

body.itemid-222 .bkv-fb-overview-upcoming,
body.itemid-222 .bkv-fb-overview-news,
body.itemid-222 .bkv-fb-overview-table,
body.itemid-222 .bkv-fb-overview-matches {
    height: 100%;
    box-sizing: border-box;
    padding: 18px 19px;
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    box-shadow: 0 2px 10px rgba(13, 53, 91, .04);
}

@media (min-width: 992px) {
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu.is-docked > li > a {
        min-height: 44px;
        height: 44px;
        gap: 7px;
        padding: 0 12px;
        font-size: 12px;
        line-height: 1;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu.is-docked > li > a::before {
        width: 17px;
        flex-basis: 17px;
        font-size: 17px;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-222 #sp-position1 > .bkv-sport-card { padding-top: 38px; }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu {
        width: calc(100% - 32px) !important;
        max-width: none !important;
        margin: -14px 16px 0 !important;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu.is-docked {
        top: 59px !important;
        left: 16px;
        width: calc(100% - 32px) !important;
        margin: 0 !important;
        transform: none;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a {
        min-height: 44px !important;
        height: 44px !important;
        padding: 0 10px !important;
        gap: 7px !important;
        font-size: 12px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a::before {
        width: 17px;
        flex-basis: 17px;
        font-size: 17px !important;
    }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
        grid-column: 1 / -1;
        grid-row: auto;
    }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { order: 1; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { order: 2; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { order: 3; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { order: 4; }
}

@media (max-width: 767.98px) {
    body.itemid-222 #sp-position1 > .bkv-sport-card { padding-top: 30px; gap: 12px; }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu {
        width: 100% !important;
        max-width: none !important;
        margin: -8px 0 0 !important;
        border-right: 0 !important;
        border-left: 0 !important;
        border-radius: 0 !important;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu.is-docked {
        top: 46px !important;
        left: 0;
        width: 100% !important;
        margin: 0 !important;
        transform: none;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a {
        min-height: 34px !important;
        height: 34px !important;
        gap: 4px !important;
        padding: 3px 5px !important;
        font-size: 9.5px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }
    body.itemid-222 #sp-position1 ul.menubkv-fb-area-menu > li > a::before {
        width: 12px;
        flex-basis: 12px;
        font-size: 11px !important;
    }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
        grid-column: 1 / -1;
        grid-row: auto;
    }
}

/* Die TT-Navigation wird auf Desktop und Tablet durch spätere Regeln mit
   44px dargestellt. Fußball erhält denselben finalen Wert bewusst am Ende
   der Datei, damit keine allgemeine Helix-Regel ihn wieder vergrößert. */
@media (min-width: 768px) {
    body:is(.itemid-222, .itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a {
        min-height: 44px !important;
        height: 44px !important;
        gap: 7px !important;
        padding: 0 12px !important;
        font-size: 12px !important;
        line-height: 1 !important;
    }

    body:is(.itemid-222, .itemid-223, .itemid-224) #sp-position1 ul.menubkv-fb-area-menu > li > a::before {
        width: 17px !important;
        flex-basis: 17px !important;
        font-size: 17px !important;
    }
}

/* Fußball-Übersicht: finale Modulreihenfolge (analog Tischtennis). */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) {
    grid-column: 1 / span 8 !important;
    grid-row: 1 !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) {
    grid-column: 9 / span 4 !important;
    grid-row: 1 !important;
}
body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) {
    grid-column: 9 / span 4 !important;
    grid-row: 2 !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) {
    grid-column: 1 / span 7 !important;
    grid-row: 3 !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    grid-column: 8 / span 5 !important;
    grid-row: 3 !important;
}
body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) > .sp-module-title {
    display: none !important;
}

/* Fußball: gleicher dezenter Kartenrahmen wie auf der TT-Übersicht. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    border-color: #d8e3ed !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: 0 5px 14px rgba(22, 53, 82, .05) !important;
}

/* Fußball: Downloads & Infos exakt im Stil des Tischtennis-Moduls. */
body.itemid-222 #sp-position1 .bkv-fb-overview-info {
    padding: 18px 20px !important;
    color: #1f2e40 !important;
    background: #fff !important;
    border: 1px solid #d8e3ed !important;
    border-radius: 7px !important;
    box-shadow: 0 5px 14px rgba(22, 53, 82, .05) !important;
    font-family: inherit !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info h2 {
    margin: 0 0 11px !important;
    color: #075ca8 !important;
    font: inherit !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__list {
    display: grid !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 14px !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 44px !important;
    padding: 8px 9px !important;
    color: #1f2e40 !important;
    background: #f7fafc !important;
    border: 1px solid #e1eaf1 !important;
    border-radius: 5px !important;
    font: inherit !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    transform: none !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item:hover,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item:focus-visible {
    color: #075ca8 !important;
    background: #edf7fc !important;
    border-color: #9bc9e8 !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon {
    display: grid !important;
    width: 24px !important;
    height: 24px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e5f2fa !important;
    border-radius: 50% !important;
    font-size: 12px !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon i,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon i::before {
    display: block !important;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif !important;
    font-weight: 900 !important;
    font-style: normal !important;
    line-height: 1 !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label { min-width: 0 !important; }
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label strong {
    display: block !important;
    color: #1f2e40 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label small {
    display: block !important;
    margin-top: 2px !important;
    color: #617184 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__arrow {
    color: #0879c9 !important;
    font-size: 13px !important;
    text-align: end !important;
}

@media (max-width: 767px) {
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }

    /* Mobile Reihenfolge: Aktuelles, Nächste Spiele, Tabelle, Ergebnisse, Infos.
       Keine festen Grid-Zeilen: sie würden die Desktop-Zeilen als Leerraum
       zwischen den Karten stehen lassen. */
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { grid-row: auto !important; order: 1 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { grid-row: auto !important; order: 2 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { grid-row: auto !important; order: 3 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { grid-row: auto !important; order: 4 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) { grid-row: auto !important; order: 5 !important; }
}

/* Fußball-Übersicht: sichtbare Platzhalter bis die Modul-Inhalte folgen. */
body.itemid-222 #sp-component .article-header,
body.itemid-222 #sp-component .article-details .article-header { display: none !important; }

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    min-height: 170px;
    padding: 18px;
    border: 1px solid #d8e3ee;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 7px 16px rgba(16, 61, 101, .06);
}

@media (max-width: 767px) {
    /* Leere, noch nicht befüllte Fußball-Module erzeugen mobil keinen
       künstlichen hohen Zwischenraum. Befüllte Karten wachsen automatisch. */
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { min-height: 0 !important; }
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title {
    display: block !important;
    margin: 0 !important;
    color: #075ca8 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    text-transform: uppercase;
}

body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title::after {
    display: block;
    width: 34px;
    height: 2px;
    margin-top: 8px;
    background: #0878c1;
    content: "";
}

.bkv-fb-overview-info__item > span:nth-child(2) { min-width: 0; }
.bkv-fb-overview-info__item > span:nth-child(2) > strong,
.bkv-fb-overview-info__item > span:nth-child(2) > small {
    position: static !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
}
.bkv-fb-overview-info__item > span:nth-child(2) > small { margin-top: 2px !important; }
.bkv-fb-overview-info__icon,
.bkv-fb-overview-info__icon .fa {
    position: static !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    color: inherit !important;
}

/* Finale Überschreibung: Diese Regeln stehen bewusst nach den
   Platzhalter-Stilen und behalten den TT-Look zuverlässig bei. */
/* Fußball-Übersicht: Die leeren Platzhaltermodule verwenden dieselben
   Innenabstände und Überschriften wie die TT-Übersicht. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    box-sizing: border-box !important;
    padding: 18px 20px !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title {
    position: static !important;
    display: block !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    transform: none !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title::before,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title::before,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title::before,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title::before {
    display: block;
    color: #075ca8;
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title::before { content: "Nächste Spiele"; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title::before { content: "Aktuelles"; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title::before { content: "Tabelle"; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title::before { content: "Spiele & Ergebnisse"; }
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) > .sp-module-title::after,
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) > .sp-module-title::after {
    margin-top: 8px !important;
}
/* Das Fußball-Modul enthält im Gegensatz zum TT-Modul keine Icon-Tags.
   Die Symbole werden deshalb stabil über Pseudoelemente ergänzt. */
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item {
    position: relative !important;
    padding-left: 42px !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item::before {
    position: absolute !important;
    top: 50% !important;
    left: 9px !important;
    display: grid !important;
    width: 24px !important;
    height: 24px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e5f2fa !important;
    border-radius: 50% !important;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    transform: translateY(-50%) !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__list > li:nth-child(1) .bkv-fb-overview-info__item::before { content: "\f0c0"; }
body.itemid-222 #sp-position1 .bkv-fb-overview-info__list > li:nth-child(2) .bkv-fb-overview-info__item::before { content: "\f0f3"; }
/* Identisch zur TT-Kachel: Download-Pfeil im Kreis für „Formulare & Downloads“. */
body.itemid-222 #sp-position1 .bkv-fb-overview-info__list > li:nth-child(3) .bkv-fb-overview-info__item::before { content: "\f019"; }
/* Das Fußball-Modul wurde im Editor ohne den TT-Textcontainer angelegt:
   Icon, Überschrift und Beschreibung sind direkte Kindelemente des Links.
   Diese feste Rasterzuordnung verhindert das Überlagern der Texte. */
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > i,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > .fa,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > .fas {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: grid !important;
    width: 24px !important;
    height: 24px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e5f2fa !important;
    border-radius: 50% !important;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > strong {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: end !important;
    display: block !important;
    margin: 0 !important;
    color: #1f2e40 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > small {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: start !important;
    display: block !important;
    margin: 2px 0 0 !important;
    color: #617184 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > .bkv-fb-overview-info__arrow,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item > .arrow {
    grid-column: 3 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) {
    border: 1px solid #d8e3ed !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: 0 5px 14px rgba(22, 53, 82, .05) !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info {
    padding: 18px 20px !important;
    color: #1f2e40 !important;
    background: #fff !important;
    border: 1px solid #d8e3ed !important;
    border-radius: 7px !important;
    box-shadow: 0 5px 14px rgba(22, 53, 82, .05) !important;
    font-family: inherit !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info h2 {
    margin: 0 0 11px !important;
    color: #075ca8 !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__list {
    display: grid !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 14px !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 44px !important;
    padding: 8px 9px !important;
    color: #1f2e40 !important;
    background: #f7fafc !important;
    border: 1px solid #e1eaf1 !important;
    border-radius: 5px !important;
    font-family: inherit !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    transform: none !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item:hover,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__item:focus-visible {
    color: #075ca8 !important;
    background: #edf7fc !important;
    border-color: #9bc9e8 !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon {
    display: grid !important;
    width: 24px !important;
    height: 24px !important;
    place-items: center !important;
    color: #0879c9 !important;
    background: #e5f2fa !important;
    border-radius: 50% !important;
    font-size: 12px !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon i,
body.itemid-222 #sp-position1 .bkv-fb-overview-info__icon i::before {
    display: block !important;
    font-family: "Font Awesome 6 Free", FontAwesome, sans-serif !important;
    font-weight: 900 !important;
    font-style: normal !important;
    line-height: 1 !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label { min-width: 0 !important; }
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label strong {
    display: block !important;
    color: #1f2e40 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__label small {
    display: block !important;
    margin-top: 2px !important;
    color: #617184 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.itemid-222 #sp-position1 .bkv-fb-overview-info__arrow {
    color: #0879c9 !important;
    font-size: 13px !important;
    text-align: right !important;
}

/* Das Aktuelles-PHP-Modul enthält bereits eine vollständige Kachel. */
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) {
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) > .sp-module-title {
    display: none !important;
}

/* FINAL: verbindliche Zwischenansicht der Startseiten-News. */
@media (min-width: 640px) and (max-width: 1199.98px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item {
        min-height: 0 !important;
        height: 265px !important;
        max-height: 265px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item-content { padding: 9px !important; }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        height: 70px !important;
        min-height: 70px !important;
        margin: -9px -9px 7px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img {
        height: 70px !important;
        object-position: left center !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item dl,
    body.itemid-116 #sp-homepage-news .mod-articles-category,
    body.itemid-116 #sp-homepage-news .mod-articles-date {
        font-size: 9px !important;
        line-height: 1.2 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-title,
    body.itemid-116 #sp-homepage-news .mod-articles-title a {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item p {
        font-size: 10px !important;
        line-height: 1.28 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-readmore { font-size: 10px !important; }
}

/* Unterhalb der großen Desktop-Ansicht werden drei Meldungen gezeigt.
   Die vierte Karte darf nicht in eine zweite Zeile umbrechen. */
@media (min-width: 640px) and (max-width: 1200px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid > li:nth-child(n + 4),
    body.itemid-116 #sp-homepage-news .mod-articles-grid > .mod-articles-item:nth-child(n + 4),
    body.itemid-116 #sp-homepage-news .mod-articles-grid .mod-articles-item:nth-child(n + 4) {
        display: none !important;
    }
}

/* Breites Tablet / kleines Desktop: ruhigere Dreierreihe und Bildverhältnis 2,6:1. */
@media (min-width: 992px) and (max-width: 1200px) {
    body.itemid-116 #sp-homepage-news .mod-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-item {
        height: 265px !important;
        max-height: 265px !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image,
    body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 2.6 / 1 !important;
    }

    body.itemid-116 #sp-homepage-news .mod-articles-image img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: left center !important;
    }
}

/* Startseiten-News: einheitliches Bildformat in jeder Ansicht. */
body.itemid-116 #sp-homepage-news .mod-articles-image,
body.itemid-116 #sp-homepage-news .mod-articles-item-content::before {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2.6 / 1 !important;
    overflow: hidden !important;
}

body.itemid-116 #sp-homepage-news .mod-articles-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: left center !important;
}
/* ========================================================================
   TT – Pokalverwaltung
   ======================================================================== */
.bkv-cup-admin{
    max-width:1200px;
    margin:0 auto 2.5rem;
    color:#062b57;
    font-size:14px
}

.bkv-cup-admin__nav{
    display:flex;
    gap:0;
    margin:0 0 1.5rem;
    border:1px solid #cbddea;
    border-radius:8px;
    overflow:hidden;
    background:#fff
}

.bkv-cup-admin__nav a{
    flex:1;display:flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    padding:.85rem 1rem;
    color:#063d75;
    font-weight:700;
    text-decoration:none;
    border-right:1px solid #d9e5ef
}

.bkv-cup-admin__nav a:last-child{
    border-right:0
}

.bkv-cup-admin__nav a:hover,.bkv-cup-admin__nav a.is-active{
    color:#fff;
    background:#0879c9
}

.bkv-cup-admin__feedback
{
    margin:0 0 1rem
}

.bkv-cup-admin__panel{
    background:#fff;
    border:1px solid #cbddea;
    border-radius:8px;
    padding:1.5rem;
    box-shadow:0 6px 18px rgba(20,62,98,.06)
}

.bkv-cup-admin h2{margin:0;color:#0064b9;font-size:1.25rem;font-weight:800;text-transform:uppercase}.bkv-cup-admin h3{margin:0;color:#063d75;font-size:1rem}.bkv-cup-admin p{margin:.4rem 0 0;color:#4a6281}.bkv-cup-admin__heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.bkv-cup-admin__filter{display:flex;gap:.75rem;align-items:end;flex:none}.bkv-cup-admin label{display:flex;flex-direction:column;gap:.3rem;color:#063d75;font-weight:700;font-size:.78rem}.bkv-cup-admin select,.bkv-cup-admin input{min-height:38px;border:1px solid #bfd4e6;border-radius:5px;background:#fff;color:#062b57;padding:.45rem .6rem;font:inherit}.bkv-cup-draw-group{margin:1.25rem 0;border:1px solid #c9dfef;border-radius:7px;overflow:hidden}.bkv-cup-draw-group>header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:#e0f0fa;border-bottom:1px solid #c9dfef}.bkv-cup-draw-group>header span{color:#37658d;font-size:.85rem;font-weight:700}.bkv-cup-draw-group__body{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,2fr);gap:1rem;padding:1rem}.bkv-cup-team-pool{display:flex;align-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:.5rem;padding:.75rem;border-radius:6px;background:#f5f9fc}.bkv-cup-team{border:1px solid #bdd9ee;border-radius:4px;background:#fff;color:#063d75;font:inherit;font-size:.82rem;font-weight:700;padding:.45rem .55rem;cursor:grab}.bkv-cup-team:hover{border-color:#0879c9;background:#eaf6ff}.bkv-cup-team.is-assigned{opacity:.35}.bkv-cup-pair-list{display:grid;gap:.75rem}.bkv-cup-pair{padding:.75rem;border:1px solid #d6e4ef;border-radius:6px;background:#fbfdff}.bkv-cup-pair__teams{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:.5rem;align-items:center}.bkv-cup-pair__teams>b{text-align:center;color:#0879c9}.bkv-cup-dropzone{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:42px;padding:.5rem;border:1px dashed #91b9d6;border-radius:5px;background:#f7fbfe;color:#6a8096;font-size:.84rem;text-align:center}.bkv-cup-dropzone.is-over{border-color:#0879c9;background:#e5f3fc}.bkv-cup-dropzone.is-filled{border-style:solid;border-color:#62a9d8;background:#eaf6ff;color:#063d75;font-weight:700}.bkv-cup-dropzone.is-bye{background:#fff9e8;border-color:#e2b34e;color:#795b11}.bkv-cup-bye{padding:.2rem .45rem;border:1px solid #d9ac4b;border-radius:4px;background:#fff7da;color:#76550a;font-size:.74rem;font-weight:700;line-height:1.25;cursor:pointer}.bkv-cup-bye:hover{background:#ffedb0}.bkv-cup-pair__details{display:grid;grid-template-columns:1fr .75fr 1.5fr;gap:.55rem;margin-top:.65rem}.bkv-cup-admin__actions{display:flex;justify-content:flex-end;margin-top:1.25rem}.bkv-cup-admin__matches{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #c7ddea;border-radius:7px;overflow:hidden}.bkv-cup-admin__matches th{padding:.65rem;background:#e0f0fa;color:#063d75;text-align:left;text-transform:uppercase;font-size:.76rem}.bkv-cup-admin__matches td{padding:.65rem;border-top:1px solid #d9e6ef}.bkv-cup-admin__matches tr:nth-child(even) td{background:#f7fbfd}
@media(max-width:767px){.bkv-cup-admin__nav a{font-size:.82rem;padding:.7rem .35rem}.bkv-cup-admin__panel{padding:1rem}.bkv-cup-admin__heading{display:block}.bkv-cup-admin__filter{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr}.bkv-cup-draw-group__body{grid-template-columns:1fr}.bkv-cup-pair__details{grid-template-columns:1fr 1fr}.bkv-cup-pair__details label:last-child{grid-column:1/-1}.bkv-cup-admin__matches{font-size:.82rem}.bkv-cup-admin__matches th:nth-child(2),.bkv-cup-admin__matches td:nth-child(2){display:none}}

/* ========================================================================
   FUSSBALL-ÜBERSICHT – TABLET
   Ab dem gleichen Umschaltpunkt wie die TT-Übersicht werden die Karten
   einspaltig ausgegeben. Die späten Desktop-Positionsregeln arbeiten mit
   !important und werden deshalb hier gezielt übersteuert.
   ======================================================================== */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-222 #sp-position1 > .bkv-sport-card {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141),
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142),
    body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }

    /* Im einspaltigen Tablet-Raster dieselbe Reihenfolge wie mobil. */
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom140) { order: 1 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom139) { order: 2 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom141) { order: 3 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(#mod-custom142) { order: 4 !important; }
    body.itemid-222 #sp-position1 .sp-module:has(.bkv-fb-overview-info) { order: 5 !important; }
}

/* ========================================================================
   TABLET – GEMEINSAMER SEITENABSTAND FÜR MENÜ UND INHALT
   In diesem Bereich sollen Bereichsmenü und Kacheln exakt dieselbe
   Seitenflucht haben. 10px lassen ausreichend Luft zum Rand, ohne die
   knappe Tabletbreite unnötig zu verschenken.
   ======================================================================== */
@media (min-width: 768px) and (max-width: 991.98px) {
    body:is(.itemid-116, .itemid-215, .itemid-222) #sp-ergebnisse > .container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        /* Der Listen-Wrapper unten setzt den einzigen äußeren Abstand.
           Dadurch entstehen nicht versehentlich 20px (Container + Menü). */
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.itemid-116 #sp-content-menu > .container,
    #sp-content-menu > .container:has(.menubkv-tt-area-menu),
    #sp-content-menu > .container:has(.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    body.itemid-116 #sp-content-menu .bkv-content-menu,
    #sp-content-menu :is(ul.mod-menu.menubkv-tt-area-menu,
                          ul.menu.menubkv-tt-area-menu,
                          ul.mod-menu.menubkv-fb-area-menu,
                          ul.menu.menubkv-fb-area-menu) {
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}

/* ========================================================================
   BEREICHSMENÜS – GEMEINSAMER KOMPAKT-BREAKPOINT
   Startseite, Tischtennis und Fußball nutzen unterhalb der Desktopbreite
   die gesamte verfügbare Breite. Die 28px Innenabstand entsprechen dabei
   exakt dem seitlichen Abstand der Inhaltskacheln.
   ======================================================================== */
@media (min-width: 992px) and (max-width: 1253.98px) {
    body.itemid-116 #sp-content-menu > .container,
    #sp-content-menu > .container:has(.menubkv-tt-area-menu),
    #sp-content-menu > .container:has(.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding-right: 28px !important;
        padding-left: 28px !important;
    }

    body.itemid-116 #sp-content-menu .bkv-content-menu,
    #sp-content-menu :is(ul.mod-menu.menubkv-tt-area-menu,
                          ul.menu.menubkv-tt-area-menu,
                          ul.mod-menu.menubkv-fb-area-menu,
                          ul.menu.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}

/* ========================================================================
   THEMENBILD + BEREICHSMENÜS – GEMEINSAME BREITEN
   Zwischen Tablet und großem Desktop soll das Themenbild die vollständige
   verfügbare Breite nutzen. Die Bildhöhe bleibt dabei proportional, damit
   kein seitlicher Beschnitt entsteht.
   ======================================================================== */
@media (min-width: 1070px) and (max-width: 1399.98px) {
    #sp-title,
    #sp-title > .sp-column,
    #sp-title .sp-module,
    #sp-title .sp-module-content,
    #sp-title .mod-custom,
    #sp-title .mod-custom p,
    #sp-title .mod-custom figure {
        width: 100% !important;
        max-width: none !important;
    }

    #sp-title .mod-custom img {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
    }
}

/* Alle Bereichsmenüs verwenden seit der Umstellung dieselbe Modulposition.
   Die Breite wird deshalb nicht mehr über die ehemalige Position user1,
   sondern über die jeweilige Menüklasse gesteuert. So erhalten Tischtennis
   und Fußball bei identischen Viewports exakt dieselbe verfügbare Breite. */
@media (min-width: 1254px) {
    #sp-content-menu > .container:has(.menubkv-tt-area-menu),
    #sp-content-menu > .container:has(.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 1184px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #sp-content-menu .sp-module:has(.menubkv-tt-area-menu),
    #sp-content-menu .sp-module:has(.menubkv-fb-area-menu),
    #sp-content-menu .sp-module-content:has(.menubkv-tt-area-menu),
    #sp-content-menu .sp-module-content:has(.menubkv-fb-area-menu) {
        width: 100% !important;
        max-width: none !important;
    }

    #sp-content-menu :is(ul.mod-menu.menubkv-tt-area-menu,
                          ul.menu.menubkv-tt-area-menu,
                          ul.mod-menu.menubkv-fb-area-menu,
                          ul.menu.menubkv-fb-area-menu) {
        width: 100% !important;
        max-width: 1184px !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }
}

/* ========================================================================
   BEREICHSMENÜS + ÜBERSICHTSKACHELN – KLEINE UND MITTLERE LAYOUTS
   Bis einschließlich 969px gilt für Startseite, Tischtennis und Fußball
   dieselbe Seitenflucht: 10px Abstand zum Viewportrand. Damit bleiben
   Bereichsmenü und darunterliegende Kacheln auch im Tabletbereich bündig.
   ======================================================================== */
@media (max-width: 969.98px) {
    body:is(.itemid-116, .itemid-215, .itemid-222) #sp-ergebnisse > .container,
    body.itemid-116 #sp-content-menu > .container,
    #sp-content-menu > .container:has(.menubkv-tt-area-menu),
    #sp-content-menu > .container:has(.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    body.itemid-116 #sp-content-menu .bkv-content-menu,
    #sp-content-menu :is(ul.mod-menu.menubkv-tt-area-menu,
                          ul.menu.menubkv-tt-area-menu,
                          ul.mod-menu.menubkv-fb-area-menu,
                          ul.menu.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 991.98px) {
    /* 10px Seitenabstand: Tischtennis, unabhängig von der Modulposition. */
    #sp-user1 :is(ul.mod-menu.menubkv-tt-area-menu,
                  ul.menu.menubkv-tt-area-menu),
    #sp-content-menu :is(ul.mod-menu.menubkv-tt-area-menu,
                          ul.menu.menubkv-tt-area-menu) {
        box-sizing: border-box;
        width: calc(100% - 20px) !important;
        max-width: 1240px !important;
        margin-right: 10px !important;
        margin-left: 10px !important;
    }


    /* Die ältere Fußballregel setzte im Tabletbereich noch 16px. */
    body:is(.itemid-222, .itemid-223, .itemid-224) #sp-position1 :is(ul.mod-menu.menubkv-fb-area-menu,
                                                                      ul.menu.menubkv-fb-area-menu),
    #sp-content-menu :is(ul.mod-menu.menubkv-fb-area-menu,
                          ul.menu.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        margin-right: 10px !important;
        margin-left: 10px !important;
    }
}

/* Letzte, positionsunabhängige Korrektur: Die historischen Regeln für
   user1/position1 verwendeten eigene 16px-Ränder. Unter 992px haben die
   Tischtennis- und Fußballmenüs nun immer exakt 10px Abstand zum Viewport. */
@media (max-width: 991.98px) {
    #sp-user1 > .container:has(.menubkv-tt-area-menu),
    #sp-position1 > .container:has(.menubkv-fb-area-menu),
    #sp-content-menu > .container:has(.menubkv-tt-area-menu),
    #sp-content-menu > .container:has(.menubkv-fb-area-menu) {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    #sp-user1 ul.menubkv-tt-area-menu,
    #sp-position1 ul.menubkv-fb-area-menu,
    #sp-content-menu ul.menubkv-tt-area-menu,
    #sp-content-menu ul.menubkv-fb-area-menu {
        box-sizing: border-box;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        margin-right: 10px !important;
        margin-left: 10px !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.itemid-116 #sp-naechste-spiele > .container,
    body.itemid-116 #sp-ergebnisse > .container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }
}

/* Pokalverwaltung: Freilos im Pool und belegte Positionen zurücksetzen */
.bkv-cup-dropzone{position:relative;padding-right:2rem}.bkv-cup-dropzone.is-bye{font-size:.74rem}.bkv-cup-pair__details label:first-child{font-size:.72rem}.bkv-cup-pair__details label:first-child input{min-height:34px;padding:.35rem .5rem;font-size:.82rem}



/* Pokalverwaltung: lokale Mini-Buttons gegen globale Joomla-Button-Regeln */
#sp-main-body .bkv-cup-team.bkv-cup-team--bye{order:-1;width:auto!important;min-width:0!important;max-width:none!important;min-height:0!important;margin:0!important;padding:.32rem .55rem!important;border:1px solid #d9ac4b!important;border-radius:4px!important;background:#fff7da!important;color:#76550a!important;font-size:.74rem!important;font-weight:700!important;line-height:1.2!important;box-shadow:none!important}
#sp-main-body .bkv-cup-team.bkv-cup-team--bye:hover{border-color:#c99424!important;background:#ffedb0!important;color:#6a4b00!important}
#sp-main-body .bkv-cup-dropzone__clear{position:absolute!important;top:.2rem!important;right:.25rem!important;z-index:2!important;display:none!important;width:1rem!important;min-width:1rem!important;max-width:1rem!important;height:1rem!important;min-height:1rem!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;color:#55718d!important;font-size:.9rem!important;font-weight:700!important;line-height:1rem!important;text-align:center!important;box-shadow:none!important}
#sp-main-body .bkv-cup-dropzone.is-filled .bkv-cup-dropzone__clear{display:flex!important;align-items:center!important;justify-content:center!important}
#sp-main-body .bkv-cup-dropzone__clear:hover{background:#fbe5e7!important;color:#b42330!important}


/* =========================================================
   STARTSEITE – BKV KOMPAKT
   Eigenständige Inhaltskachel unterhalb der Ergebnisbereiche.
   Das Modul benötigt nur das Markup .bkv-kompakt und funktioniert
   unabhängig von der verwendeten Modulposition.
   ========================================================= */
body.itemid-116 .bkv-kompakt {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(300px, .92fr) minmax(0, 1.35fr);
    gap: 34px;
    width: 100%;
    max-width: 1184px;
    margin: 22px auto 32px;
    padding: 30px 34px;
    color: #17395f;
    background: #fff;
    border: 1px solid #d8e5f1;
    border-radius: 9px;
    box-shadow: 0 8px 22px rgba(22, 56, 93, .07);
    font-family: var(--bkv-font) !important;
    scroll-margin-top: 86px;
}

body.itemid-116 .bkv-kompakt__intro {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    align-items: center;
    gap: 22px;
    min-width: 0;
    padding-right: 32px;
    border-right: 1px solid #d8e5f1;
}

body.itemid-116 .bkv-kompakt__logo {
    display: block;
    width: 100px;
    min-width: 100px;
    height: 100px;
    max-width: none;
    margin: 0;
    object-fit: contain;
}

/* Das feste Logo der BKV-Kompakt-Kachel – unabhängig vom im Modul gespeicherten Bildpfad. */
body.itemid-116 img.bkv-kompakt__logo,
body.itemid-116 .bkv-kompakt__logo > img {
    width: 100px;
    height: 100px;
    object-fit: contain;
    content: url("/images/logo/BKV-Logo-100x100.png");
}

body.itemid-116 .bkv-kompakt__logo:not(img) {
    background: url("/images/logo/BKV-Logo-100x100.png") center / contain no-repeat;
}

body.itemid-116 .bkv-kompakt h2 {
    margin: 0 0 14px;
    color: #063e78;
    font-family: var(--bkv-font) !important;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
}

body.itemid-116 .bkv-kompakt h2::after {
    display: block;
    width: 39px;
    height: 3px;
    margin-top: 10px;
    content: "";
    background: #0879c9;
}

body.itemid-116 .bkv-kompakt__intro p {
    margin: 0 0 8px;
    color: #36506d;
    font-size: 13px;
    line-height: 1.55;
}

body.itemid-116 .bkv-kompakt__intro p:last-child {
    margin-bottom: 0;
}

body.itemid-116 .bkv-kompakt__intro strong {
    color: #0b4f94;
    font-weight: 800;
}

body.itemid-116 .bkv-kompakt__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: center;
    gap: 10px 12px;
    min-width: 0;
}

body.itemid-116 .bkv-kompakt__link {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 9px;
    min-width: 0;
    min-height: 58px;
    padding: 9px;
    color: #1f2e40 !important;
    background: #f7fafc;
    border: 1px solid #e1eaf1;
    border-radius: 5px;
    font-size: 12px;
    line-height: 1.25;
    text-decoration: none !important;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

/*
   Linkinhalt immer zweizeilig halten. Die Modultexte bestehen aus
   <strong> und <small> als direkten Kindelementen; ohne feste
   Grid-Positionen würden beide Elemente als eigene Spalten behandelt.
*/
body.itemid-116 .bkv-kompakt__link > strong {
    grid-column: 2;
    grid-row: 1;
}

body.itemid-116 .bkv-kompakt__link > small {
    grid-column: 2;
    grid-row: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

body.itemid-116 .bkv-kompakt__link > .bkv-kompakt__arrow {
    grid-column: 3;
    grid-row: 1 / span 2;
    justify-self: end;
}

/*
   Fallback-Symbole: Sie funktionieren auch mit dem schlanken
   Modul-Markup ohne ein separates .bkv-kompakt__icon-Element.
*/
body.itemid-116 .bkv-kompakt__link::before {
    display: inline-flex;
    grid-column: 1;
    grid-row: 1 / span 2;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #0879c9;
    background: #edf5fc;
    border: 1px solid #d9e8f5;
    border-radius: 50%;
    font-family: "Font Awesome 6 Free";
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

body.itemid-116 .bkv-kompakt__link::before { content: "\f0c0"; }
body.itemid-116 .bkv-kompakt__link:nth-child(2)::before,
body.itemid-116 .bkv-kompakt__link[href*="satzung"]::before { content: "\f02d"; }
body.itemid-116 .bkv-kompakt__link:nth-child(3)::before,
body.itemid-116 .bkv-kompakt__link[href*="formulare"]::before { content: "\f15c"; }

body.itemid-116 .bkv-kompakt__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #0879c9;
    background: #edf5fc;
    border: 1px solid #d9e8f5;
    border-radius: 50%;
    font-size: 12px;
    line-height: 1;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

body.itemid-116 .bkv-kompakt__link strong,
body.itemid-116 .bkv-kompakt__link small {
    display: block;
    min-width: 0;
}

body.itemid-116 .bkv-kompakt__link strong {
    margin-bottom: 2px;
    color: #1f2e40;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.22;
}

body.itemid-116 .bkv-kompakt__link small {
    color: #617184;
    font-size: 11px;
    line-height: 1.25;
}

body.itemid-116 .bkv-kompakt__arrow {
    color: #0879c9;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    transition: transform .18s ease;
}

body.itemid-116 .bkv-kompakt__link:hover .bkv-kompakt__icon,
body.itemid-116 .bkv-kompakt__link:focus-visible .bkv-kompakt__icon {
    color: #0879c9;
    background: #e5f2fa;
    transform: none;
}

body.itemid-116 .bkv-kompakt__link:hover,
body.itemid-116 .bkv-kompakt__link:focus-visible {
    color: #075ca8 !important;
    background: #edf7fc;
    border-color: #9bc9e8;
}

body.itemid-116 .bkv-kompakt__link:hover .bkv-kompakt__arrow,
body.itemid-116 .bkv-kompakt__link:focus-visible .bkv-kompakt__arrow {
    transform: translateX(3px);
}

body.itemid-116 .bkv-kompakt__link:focus-visible {
    outline: 2px solid #0879c9;
    outline-offset: 4px;
}

@media (max-width: 991.98px) {
    body.itemid-116 .bkv-kompakt {
        grid-template-columns: 1fr;
        width: calc(100% - 20px);
        max-width: none;
        margin: 22px 10px 32px;
        gap: 22px;
        padding: 26px 28px;
    }

    body.itemid-116 .bkv-kompakt__intro {
        padding: 0 0 22px;
        border-right: 0;
        border-bottom: 1px solid #d8e5f1;
    }
}

@media (max-width: 767.98px) {
    body.itemid-116 .bkv-kompakt {
        margin: 16px 10px 24px;
        padding: 22px 18px;
    }

    body.itemid-116 .bkv-kompakt__intro {
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 16px;
        padding-bottom: 18px;
    }

    body.itemid-116 .bkv-kompakt__logo {
        width: 100px;
        min-width: 100px;
        height: 100px;
    }

    body.itemid-116 .bkv-kompakt h2 {
        margin-bottom: 10px;
        font-size: 19px;
    }

    body.itemid-116 .bkv-kompakt h2::after {
        width: 32px;
        margin-top: 8px;
    }

    body.itemid-116 .bkv-kompakt__intro p {
        font-size: 13px;
        line-height: 1.45;
    }

    body.itemid-116 .bkv-kompakt__links {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    body.itemid-116 .bkv-kompakt__link {
        grid-template-columns: 24px minmax(0, 1fr) 14px;
        gap: 9px;
        min-height: 58px;
        padding: 9px;
    }

    body.itemid-116 .bkv-kompakt__icon {
        width: 24px;
        height: 24px;
        font-size: 12px;
    }

    body.itemid-116 .bkv-kompakt__link strong {
        font-size: 12px;
    }

    body.itemid-116 .bkv-kompakt__link small {
        font-size: 11px;
    }

    body.itemid-116 .bkv-kompakt__arrow {
        font-size: 13px;
    }
}

/* ============================================================
   BKV – Beitragsanhänge
   ============================================================ */

#subfieldList_jform_com_fields_anhaenge {
    width: 100%;
    margin: 0;
    table-layout: fixed;

    border: 1px solid #d8e3ee;
    border-radius: 8px;
    border-collapse: separate;
    border-spacing: 0;

    background: #fff;
    overflow: hidden;
}


/* ------------------------------------------------------------
   Spaltenbreiten
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge > thead > tr > th:nth-child(1),
#subfieldList_jform_com_fields_anhaenge > tbody > tr > td:nth-child(1) {
    width: 34% !important;
}

#subfieldList_jform_com_fields_anhaenge > thead > tr > th:nth-child(2),
#subfieldList_jform_com_fields_anhaenge > tbody > tr > td:nth-child(2) {
    width: 48% !important;
}

#subfieldList_jform_com_fields_anhaenge > thead > tr > td:last-child,
#subfieldList_jform_com_fields_anhaenge > tbody > tr > td:last-child {
    width: 18% !important;
    min-width: 150px !important;
}


/* ------------------------------------------------------------
   Tabellenkopf
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge > thead > tr > th,
#subfieldList_jform_com_fields_anhaenge > thead > tr > td {
    padding: 10px 12px !important;

    background: #f4f8fb !important;

    border: 0 !important;
    border-bottom: 1px solid #d8e3ee !important;

    color: #174d72 !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;

    vertical-align: middle !important;
}


/* ------------------------------------------------------------
   Datenzeilen
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > tbody
    > tr.subform-repeatable-group
    > td {

    padding: 10px 12px !important;
    vertical-align: middle !important;

    border: 0 !important;
    border-bottom: 1px solid #e5ebf1 !important;
}

#subfieldList_jform_com_fields_anhaenge
    > tbody
    > tr.subform-repeatable-group:last-child
    > td {

    border-bottom: 0 !important;
}


/* ------------------------------------------------------------
   Joomla Wrapper neutralisieren
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge .control-group,
#subfieldList_jform_com_fields_anhaenge .controls {
    margin: 0 !important;
}


/* ------------------------------------------------------------
   Name
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    input.form-control:not(.field-media-input) {

    display: block;

    width: 76% !important;
    max-width: 320px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 6px 9px !important;

    border: 1px solid #cbd7e2;
    border-radius: 5px !important;

    box-sizing: border-box;
}


/* ------------------------------------------------------------
   Dokumentfeld
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    joomla-field-media.field-media-wrapper {

    display: block !important;

    width: 86% !important;
    max-width: 540px !important;

    margin: 0 !important;
}


/* Wichtig:
   Die komplette Gruppe NICHT verschieben.
   Sonst wandert auch das Dateitextfeld nach unten.
*/

#subfieldList_jform_com_fields_anhaenge
    joomla-field-media
    .input-group {

    display: grid !important;

    grid-template-columns: minmax(0, 1fr) 90px 40px;

    width: 100% !important;
    height: 40px !important;

    margin: 0 !important;

    gap: 4px !important;

    align-items: center !important;

    position: static !important;
    top: auto !important;
    transform: none !important;
}


/* ------------------------------------------------------------
   Dateipfad
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    .field-media-input {

    width: 100% !important;
    min-width: 0 !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 6px 9px !important;

    border: 1px solid #cbd7e2 !important;
    border-radius: 5px !important;

    box-sizing: border-box;

    position: static !important;
    top: auto !important;
    transform: none !important;
}


/* ------------------------------------------------------------
   Auswählen
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    .button-select {

    display: inline-flex !important;

    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 10px !important;

    align-items: center !important;
    justify-content: center !important;

    white-space: nowrap;

    border-radius: 5px !important;

    font-size: 12px !important;
    line-height: 1 !important;

    box-sizing: border-box !important;

    /* Nur den Button nach unten verschieben */
    position: relative !important;
    top: 3px !important;
}


/* ------------------------------------------------------------
   X neben Auswählen
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    .button-clear {

    display: inline-flex !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    border-radius: 5px !important;

    font-size: 12px !important;
    line-height: 1 !important;

    box-sizing: border-box !important;

    /* Nur den Button nach unten verschieben */
    position: relative !important;
    top: 3px !important;
}


/* ------------------------------------------------------------
   Rechte Aktionsspalte
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > tbody
    > tr.subform-repeatable-group
    > td:last-child {

    padding: 10px 6px !important;

    vertical-align: middle !important;

    text-align: center !important;
    white-space: nowrap;
}


/* ------------------------------------------------------------
   Button-Gruppe rechts
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > tbody
    > tr.subform-repeatable-group
    > td:last-child
    .btn-group {

    display: inline-flex !important;

    width: auto !important;
    height: 40px !important;

    margin: 0 auto !important;
    padding: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    gap: 6px !important;

    /* Komplette Aktionsgruppe nach unten */
    position: relative !important;
    top: 3px !important;
}


/* ------------------------------------------------------------
   Rechte Buttons
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > tbody
    .group-add,

#subfieldList_jform_com_fields_anhaenge
    > tbody
    .group-remove,

#subfieldList_jform_com_fields_anhaenge
    > tbody
    .group-move {

    display: inline-flex !important;

    flex: 0 0 40px !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    border-radius: 5px !important;

    font-size: 12px !important;
    line-height: 1 !important;

    box-sizing: border-box !important;

    /* Nicht zusätzlich verschieben */
    position: static !important;
    top: auto !important;
    transform: none !important;
}


/* ------------------------------------------------------------
   Bootstrap Reset
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > tbody
    .btn-group > .btn {

    flex: 0 0 40px !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 5px !important;

    box-sizing: border-box !important;
}


/* ------------------------------------------------------------
   Oberes Plus
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    > thead
    > tr
    > td:last-child {

    padding-right: 6px !important;
    padding-left: 6px !important;

    text-align: center !important;
    vertical-align: middle !important;
}

#subfieldList_jform_com_fields_anhaenge
    > thead
    .btn-group {

    display: inline-flex !important;

    width: 40px !important;
    height: 40px !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

#subfieldList_jform_com_fields_anhaenge
    > thead
    .group-add {

    display: inline-flex !important;

    flex: 0 0 40px !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    border-radius: 5px !important;

    font-size: 12px !important;
    line-height: 1 !important;

    box-sizing: border-box !important;
}


/* ------------------------------------------------------------
   Joomla / Bootstrap Rundungen
   ------------------------------------------------------------ */

#subfieldList_jform_com_fields_anhaenge
    .btn-group > .btn,

#subfieldList_jform_com_fields_anhaenge
    .btn-group > .btn:first-child,

#subfieldList_jform_com_fields_anhaenge
    .btn-group > .btn:last-child {

    border-radius: 5px !important;
}


/* ------------------------------------------------------------
   Mobile
   ------------------------------------------------------------ */

@media (max-width: 767.98px) {

    #subfieldList_jform_com_fields_anhaenge {
        table-layout: auto;
    }

    #subfieldList_jform_com_fields_anhaenge,
    #subfieldList_jform_com_fields_anhaenge tbody,
    #subfieldList_jform_com_fields_anhaenge tr,
    #subfieldList_jform_com_fields_anhaenge td {
        display: block;
        width: 100% !important;
    }

    #subfieldList_jform_com_fields_anhaenge thead {
        display: none;
    }

    #subfieldList_jform_com_fields_anhaenge
        > tbody
        > tr.subform-repeatable-group {

        margin-bottom: 12px;
        padding: 12px;

        border: 1px solid #d8e3ee;
        border-radius: 7px;

        background: #f8fbfd;
    }

    #subfieldList_jform_com_fields_anhaenge
        > tbody
        > tr.subform-repeatable-group
        > td {

        padding: 6px 0 !important;
        border: 0 !important;
    }

    #subfieldList_jform_com_fields_anhaenge
        input.form-control:not(.field-media-input),

    #subfieldList_jform_com_fields_anhaenge
        joomla-field-media.field-media-wrapper {

        width: 100% !important;
        max-width: none !important;
    }

    #subfieldList_jform_com_fields_anhaenge
        .button-select,

    #subfieldList_jform_com_fields_anhaenge
        .button-clear {

        top: 0 !important;
    }

    #subfieldList_jform_com_fields_anhaenge
        > tbody
        > tr
        > td:last-child {

        width: 100% !important;
        max-width: none !important;

        padding-top: 10px !important;

        text-align: right !important;
    }

    #subfieldList_jform_com_fields_anhaenge
        > tbody
        > tr
        > td:last-child
        .btn-group {

        margin-right: 0 !important;
        margin-left: auto !important;

        top: 0 !important;
    }
}

/* ========================================================================
   TT + FUSSBALL – MOBILER SEITENABSTAND
   Die bisherigen Regeln kombinierten Container-Padding und Menü-Margins.
   Dadurch wurde der gewünschte 10px-Rand auf kleinen Bildschirmen doppelt
   gerechnet. Menü und Übersichts-Kachelraster erhalten deshalb hier genau
   einen gemeinsamen äußeren Abstand von 10px je Seite.
   ======================================================================== */
@media (max-width: 767.98px) {
    /* Die Übersichts-Karten werden von Helix innerhalb von #sp-ergebnisse
       gerendert. Dieser Container darf keinen zusätzlichen Innenabstand
       neben dem gemeinsamen 10px-Seitenrand erzeugen. */
    body.itemid-215 #sp-ergebnisse > .container,
    body.itemid-215 #sp-ergebnisse > .container > .container-inner {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.itemid-215 #sp-ergebnisse {
        box-sizing: border-box !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-content-menu > .container {
        box-sizing: border-box !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-content-menu :is(
        ul.mod-menu.menubkv-tt-area-menu,
        ul.menu.menubkv-tt-area-menu,
        ul.mod-menu.menubkv-fb-area-menu,
        ul.menu.menubkv-fb-area-menu
    ) {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-position1 {
        box-sizing: border-box !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body:is(.itemid-215, .itemid-222) #sp-position1 > .bkv-sport-card {
        width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}


/* =========================================================
   NEWSBEITRAG – ANHANG NACH DEM BEITRAGSTEXT
   ========================================================= */

/* Artikelinhalt als Flex-Container */
body.com-content.view-article
.com-content-article {
    display: flex;
    flex-direction: column;
}

/* Eigentlicher Beitragstext */
body.com-content.view-article
.com-content-article > .com-content-article__body {
    order: 10;
}

/* Dokumentfelder hinter den Beitragstext verschieben */
body.com-content.view-article
.com-content-article > .fields-container:has(.bkv-document-attachment) {
    order: 20;
}


/* =========================================================
   NEWSBEITRAG – ANHANG UNTER DEN BEITRAGSTEXT
   ========================================================= */

/* Artikelcontainer nur dann als Flexbox behandeln,
   wenn ein Dokument-Anhang vorhanden ist */
body.com-content.view-article
.article-details:has(.bkv-document-attachment) {
    display: flex;
    flex-direction: column;
}

/* Beitragstext */
body.com-content.view-article
.article-details:has(.bkv-document-attachment)
> [itemprop="articleBody"] {
    order: 20;
}

/* Anhang hinter den kompletten Beitragstext */
body.com-content.view-article
.article-details:has(.bkv-document-attachment)
> .fields-container:has(.bkv-document-attachment) {
    order: 30;
}

body.com-content.view-article
.fields-container:has(.bkv-document-attachment) {
    margin: 20px 0 0 !important;
}


/* =========================================================
   DOKUMENT-ANHÄNGE – IN PREVIEWS NICHT ANZEIGEN
   ========================================================= */

/* News-Module / Startseite / sonstige Modulkacheln */
.mod-articles-item .fields-container:has(.bkv-document-attachment),
.mod-articles-item .field-entry:has(.bkv-document-attachment),

/* Joomla Blog- und Kategorieübersichten */
.article-list .article .fields-container:has(.bkv-document-attachment),
.article-list .article .field-entry:has(.bkv-document-attachment),

.blog-items .blog-item .fields-container:has(.bkv-document-attachment),
.blog-items .blog-item .field-entry:has(.bkv-document-attachment),

/* zusätzliche Absicherung für News-Karten */
.bkv-news-grid .fields-container:has(.bkv-document-attachment),
.bkv-news-grid .field-entry:has(.bkv-document-attachment),
.bkv-news-card .fields-container:has(.bkv-document-attachment),
.bkv-news-card .field-entry:has(.bkv-document-attachment) {
    display: none !important;
}

/* Außerhalb der echten Beitragsdetailseite keine Anhänge darstellen */
body:not(.view-article)
.fields-container:has(.bkv-document-attachment),
body:not(.view-article)
.field-entry:has(.bkv-document-attachment) {
    display: none !important;
}

/* =========================================================
   NEWS-KACHELN – EINHEITLICHE TYPOGRAFIE
   ========================================================= */

/*
 * Startseite:
 * Schriftart und Schriftgrößen vereinheitlichen,
 * vorhandene Farben aber NICHT verändern.
 *
 * Alle-Meldungen-Seite:
 * Zusätzlich alte Inline-Formatierungen neutralisieren.
 *
 * Icon-Fonts werden nicht pauschal überschrieben.
 */


/* =========================================================
   STARTSEITE – GRUNDSCHRIFT
   Farben bewusst NICHT verändern
   ========================================================= */

.bkv-news-grid .mod-articles-item-content,
.mod-articles-grid .mod-articles-item-content {
    font-family: var(--bkv-font) !important;
}


/* Startseite – Titel */
.bkv-news-grid .mod-articles-title,
.bkv-news-grid .mod-articles-title a,
.mod-articles-grid .mod-articles-title,
.mod-articles-grid .mod-articles-title a {
    font-family: var(--bkv-font) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
}


/* Startseite – Introtext */
.bkv-news-grid .mod-articles-item-content > p,
.mod-articles-grid .mod-articles-item-content > p {
    font-family: var(--bkv-font) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.45 !important;
    text-decoration: none !important;
}


/* Alte Inline-Formatierungen im Startseiten-Intro neutralisieren */
.bkv-news-grid .mod-articles-item-content > p :is(
    strong,
    b,
    em,
    i,
    u,
    font
),
.mod-articles-grid .mod-articles-item-content > p :is(
    strong,
    b,
    em,
    i,
    u,
    font
) {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-style: normal !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}


/* Startseite – Datum / Meta */
.bkv-news-grid .mod-articles-item-content dl,
.bkv-news-grid .mod-articles-item-content dt,
.bkv-news-grid .mod-articles-item-content dd:not(.mod-articles-category),
.mod-articles-grid .mod-articles-item-content dl,
.mod-articles-grid .mod-articles-item-content dt,
.mod-articles-grid .mod-articles-item-content dd:not(.mod-articles-category) {
    font-family: var(--bkv-font) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
}


/* Startseite – Kategorie-Badge
   Farbe ausdrücklich weiß lassen */
.bkv-news-grid .mod-articles-category,
.bkv-news-grid .mod-articles-category::after,
.mod-articles-grid .mod-articles-category,
.mod-articles-grid .mod-articles-category::after {
    color: #fff !important;
    font-family: var(--bkv-font) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
}


/* =========================================================
   ALLE MELDUNGEN – TYPOGRAFIE
   ========================================================= */

.article-list.bkv-news-card .article-body,
.article-list.bkv-news-card .article-introtext {
    font-family: var(--bkv-font) !important;
}


/* Titel */
.article-list.bkv-news-card .article-header h2,
.article-list.bkv-news-card .article-header h2 a {
    font-family: var(--bkv-font) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
}


/* Introtext komplett vereinheitlichen */
.article-list.bkv-news-card .article-introtext,
.article-list.bkv-news-card .article-introtext p,
.article-list.bkv-news-card .article-introtext div,
.article-list.bkv-news-card .article-introtext span,
.article-list.bkv-news-card .article-introtext strong,
.article-list.bkv-news-card .article-introtext b,
.article-list.bkv-news-card .article-introtext em,
.article-list.bkv-news-card .article-introtext i,
.article-list.bkv-news-card .article-introtext u,
.article-list.bkv-news-card .article-introtext font {
    color: #344054 !important;
    font-family: var(--bkv-font) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.45 !important;
    text-decoration: none !important;
}


/* Meta / Datum */
.article-list.bkv-news-card .article-info,
.article-list.bkv-news-card .article-info .published,
.article-list.bkv-news-card .article-info time {
    color: #667085 !important;
    font-family: var(--bkv-font) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
}


/* =========================================================
   ALLE MELDUNGEN – KATEGORIE-BADGES
   ========================================================= */

/*
 * Jede Kachel erhält zunächst den Standard "Aktuelles".
 * !important ist hier bewusst gesetzt, damit ältere
 * content-Regeln den Text nicht wieder entfernen können.
 */

body.itemid-161
.article-list.bkv-news-card
.article
.article-header::before {
    content: "Aktuelles" !important;
    display: inline-flex !important;
    align-items: center;
    width: fit-content;
    margin: 0 0 10px;
    padding: 4px 8px;
    color: #fff !important;
    background: #075ca8;
    border-radius: 4px;
    font-family: var(--bkv-font) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.2;
}


/* Fußball */
body.itemid-161
.article-list.bkv-news-card
.article:has(.article-header a[href*="/aktuelles-fussball/"])
.article-header::before,

body.itemid-161
.article-list.bkv-news-card
.article:has(.article-header a[href*="/fussball/"])
.article-header::before {
    content: "Fußball" !important;
}


/* Tischtennis */
body.itemid-161
.article-list.bkv-news-card
.article:has(.article-header a[href*="/aktuelles-tischtennis/"])
.article-header::before,

body.itemid-161
.article-list.bkv-news-card
.article:has(.article-header a[href*="/tischtennis/"])
.article-header::before,

body.itemid-161
.article-list.bkv-news-card
.article:has(.article-header a[href*="/tt-"])
.article-header::before {
    content: "Tischtennis" !important;
}

/* =========================================================
   STARTSEITE – BKV KOMPAKT
   Seitenflucht an übrige Startseitenbereiche angleichen
   ========================================================= */

body.itemid-116 #sp-bkv-kompakt > .container {
    box-sizing: border-box;
    width: 100%;
    max-width: 1240px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 28px !important;
    padding-left: 28px !important;
}

/*
 * Die Kachel nutzt jetzt exakt die verfügbare Breite
 * des gemeinsamen Startseiten-Containers.
 */
body.itemid-116 #sp-bkv-kompakt .bkv-kompakt {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Tablet */
@media (min-width: 640px) and (max-width: 991.98px) {
    body.itemid-116 #sp-bkv-kompakt > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }
}

/* Smartphone */
@media (max-width: 639.98px) {
    body.itemid-116 #sp-bkv-kompakt > .container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }
}

/* =========================================================
   NEWS-DETAIL – SEITENABSTAND TABLET / MOBIL KORRIGIEREN
   ========================================================= */

/*
 * Zwischen Smartphone und Tablet:
 * äußerer Joomla-Container übernimmt die Seitenflucht.
 */
@media (max-width: 767.98px) {

    body.itemid-161.com-content.view-article
    #sp-main-body > .container {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: none !important;

        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.itemid-161.com-content.view-article
    #sp-main-body .article-details {
        box-sizing: border-box !important;

        width: 100% !important;
        max-width: none !important;

        margin-right: 0 !important;
        margin-left: 0 !important;

        padding: 20px 18px 24px !important;
    }
}

/* Platzhalter-Kachel für noch nicht fertige Bereiche */
.bkv-placeholder-card {
    background: #fff;
    border: 1px solid #d6e2ee;
    border-radius: 7px;
    min-height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(20, 50, 80, 0.03);
}

/* Inhalt mittig */
.bkv-placeholder-card .bkv-coming-soon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Rundes Icon */
.bkv-placeholder-card .bkv-coming-soon__icon {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 7px;

    border: 1px solid #b9dcf5;
    border-radius: 50%;

    background: #f1f9ff;
    color: #1682c4;

    font-size: 18px;
    line-height: 1;
}

/* Überschrift */
.bkv-placeholder-card .bkv-coming-soon strong {
    display: block;
    color: #17324d;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

/* Untertext */
.bkv-placeholder-card .bkv-coming-soon small {
    display: block;
    margin-top: 4px;
    color: #748399;
    font-size: 13px;
}