/*
 * BV Kneheim – Joomla 6
 * Cassiopeia Child Template
 * Eigene Styles ausschließlich hier bzw. in späteren Overrides.
 */

/* =========================================================
   BVK DESIGN-TOKENS
   Farben zunächst bewusst zentral definiert.
   Feinabgleich später anhand des echten Vereinslogos.
   ========================================================= */

:root {
  --bvk-blue: #2e52a0;
  --bvk-blue-dark: #0c2948;
  --bvk-blue-light: #eef4f9;

  --bvk-red: #e3022a;
  --bvk-red-dark: #9f1f1f;

  --bvk-text: #20252b;
  --bvk-muted: #66717c;
  --bvk-border: #d9e0e6;
  --bvk-background: #ffffff;
}

/* =========================================================
   GRUNDLAGE
   ========================================================= */

body {
  color: var(--bvk-text);
  background: var(--bvk-background);
}

/* Überschriften */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: var(--bvk-blue-dark);
}

/* Links */
a {
  color: var(--bvk-blue);
}

a:hover,
a:focus {
  color: var(--bvk-red-dark);
}

/* =========================================================
   HEADER
   ========================================================= */

.container-header {
  background-color: var(--bvk-blue);
  background-image: none;
}

/* =========================================================
   FOKUS / ACCESSIBILITY
   ========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--bvk-red);
  outline-offset: 3px;
}
/* =========================================================
   BVK COMPACT HEADER START
   ========================================================= */

.container-header {
    background: var(--bvk-blue);
    background-image: none;
}

.container-header .navbar-brand {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    margin: 0;
}

.container-header .brand-logo {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.container-header .brand-logo img,
.container-header .navbar-brand img {
    display: block;
    width: auto;
    height: auto;
    max-height: 92px;
}

.container-header .site-description {
    margin: 0;
    color: #fff;
    font-size: clamp(1.3rem, 1.8vw, 1.65rem);
    font-weight: 700;
    line-height: 1.15;
}

.container-header .mod-menu > li > a {
    color: #fff;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > a:focus {
    color: #fff;
    text-decoration: underline;
    text-decoration-thickness: .12em;
    text-underline-offset: .3em;
}

.container-header a:focus-visible,
.container-header button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 4px;
}

@media (min-width: 992px) {

    .container-header {
        display: grid;
        grid-template-columns: minmax(360px, 520px) minmax(0, 1fr);
        grid-template-areas: "brand nav";
        align-items: center;
        column-gap: 2rem;

        padding-left: max(1.5rem, calc((100vw - 1320px) / 2));
        padding-right: max(1.5rem, calc((100vw - 1320px) / 2));
    }

    .container-header > .grid-child {
        grid-area: brand;
        width: auto;
        max-width: none;
        margin: 0;
        padding: .7rem 0;
    }

    .container-header > .container-nav {
        grid-area: nav;
        width: auto;
        max-width: none;
        margin: 0;
        padding: .7rem 0;
        justify-content: flex-end;
    }

    .container-header .mod-menu {
        justify-content: flex-end;
        gap: .35rem 1.25rem;
    }
}

@media (max-width: 991.98px) {

    .container-header .grid-child {
        padding-top: .65rem;
        padding-bottom: .35rem;
    }

    .container-header .brand-logo img,
    .container-header .navbar-brand img {
        max-height: 70px;
    }

    .container-header .site-description {
        font-size: 1.15rem;
    }

    .container-header .container-nav {
        padding-top: .2rem;
        padding-bottom: .65rem;
    }
}

/* =========================================================
   BVK COMPACT HEADER ENDE
   ========================================================= */


/* =========================================================
   BVK DEPARTMENTS START
   Startseite – Übersicht der sechs Abteilungen
   ========================================================= */

.bvk-departments {
    margin-top: 2.5rem;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.bvk-departments.card {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.bvk-departments .card-header {
    padding: 0 0 1rem;
    border: 0;
    background: transparent;
}

.bvk-departments .card-body {
    padding: 0;
}

.bvk-departments h2 {
    margin-bottom: 1rem;
    font-size: clamp(1.7rem, 2.5vw, 2.1rem);
}

.bvk-departments .mod-menu {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;

    margin: 0;
    padding: 0;
    list-style: none;
}

.bvk-departments .mod-menu > li {
    margin: 0;
    padding: 0;
}

.bvk-departments .mod-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;

    min-height: 76px;
    padding: 1rem 1.2rem;

    color: var(--bvk-blue-dark);
    background: #fff;

    border: 1px solid var(--bvk-border);
    border-left: 5px solid var(--bvk-blue);
    border-radius: .5rem;

    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

.bvk-departments .mod-menu > li > a::after {
    content: "›";
    flex: 0 0 auto;

    color: var(--bvk-red);
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1;
}

.bvk-departments .mod-menu > li > a:hover {
    border-left-color: var(--bvk-red);
    background: var(--bvk-blue-light);
    text-decoration: underline;
    text-underline-offset: .2em;
}

.bvk-departments .mod-menu > li > a:focus-visible {
    outline: 3px solid var(--bvk-red);
    outline-offset: 3px;
}

@media (max-width: 900px) {
    .bvk-departments .mod-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .bvk-departments .mod-menu {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   BVK DEPARTMENTS ENDE
   ========================================================= */


/* =========================================================
   BVK HOME INTRO START
   Startseite – Willkommensbereich
   ========================================================= */

.bvk-home-intro {
    max-width: 920px;
    margin-top: .75rem;
    padding: 1.4rem 1.6rem;

    background: var(--bvk-blue-light);
    border-left: 5px solid var(--bvk-red);
    border-radius: .45rem;
}

.bvk-home-intro p {
    max-width: 76ch;
    margin-top: 0;
    margin-bottom: .65rem;
}

.bvk-home-intro p:last-child {
    margin-bottom: 0;
}

.bvk-home-kicker {
    color: var(--bvk-blue);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .015em;
}

.bvk-home-lead {
    color: var(--bvk-blue-dark);
    font-size: clamp(1.15rem, 1.8vw, 1.35rem);
    font-weight: 600;
    line-height: 1.4;
}

@media (max-width: 560px) {
    .bvk-home-intro {
        padding: 1.15rem 1.2rem;
    }
}

/* =========================================================
   BVK HOME INTRO ENDE
   ========================================================= */

/* =========================================================
   BVK JEVENTS TERMINLISTE v1
   Nur für Menüseite mit Seitenklasse: bvk-events-list
   ========================================================= */

.bvk-events-list table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.7rem;
    margin-top: 0.25rem;
}

.bvk-events-list thead th {
    border: 0;
    padding: 0 0.9rem 0.35rem;
    background: transparent;
    color: #5f6670;
    font-size: 0.8rem;
    font-weight: 600;
}

.bvk-events-list tbody td {
    padding: 1rem 0.9rem;
    border-top: 1px solid #dfe4ec;
    border-bottom: 1px solid #dfe4ec;
    border-left: 0;
    border-right: 0;
    background: #fff;
    vertical-align: middle;
}

.bvk-events-list tbody td:first-child {
    border-left: 4px solid #e3022a;
    border-radius: 0.35rem 0 0 0.35rem;
    color: #2e52a0;
    font-weight: 700;
}

.bvk-events-list tbody td:last-child {
    border-right: 1px solid #dfe4ec;
    border-radius: 0 0.35rem 0.35rem 0;
}

.bvk-events-list tbody td:nth-child(2):not(:empty)::before {
    content: "bis ";
    color: #6c757d;
    font-weight: 400;
}

.bvk-events-list tbody td:nth-child(3) {
    white-space: nowrap;
}

.bvk-events-list tbody td:nth-child(4) a {
    color: #2e52a0;
    font-size: 1.04rem;
    font-weight: 700;
    text-decoration: none;
}

.bvk-events-list tbody td:nth-child(4) a:hover,
.bvk-events-list tbody td:nth-child(4) a:focus {
    text-decoration: underline;
}

@media (max-width: 760px) {
    .bvk-events-list table,
    .bvk-events-list tbody,
    .bvk-events-list tr,
    .bvk-events-list td {
        display: block;
        width: 100%;
    }

    .bvk-events-list thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .bvk-events-list tbody tr {
        margin-bottom: 1rem;
        padding: 0.9rem 1rem;
        border: 1px solid #dfe4ec;
        border-left: 4px solid #e3022a;
        border-radius: 0.4rem;
        background: #fff;
    }

    .bvk-events-list tbody td {
        padding: 0.15rem 0;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .bvk-events-list tbody td:first-child {
        border: 0;
        border-radius: 0;
    }

    .bvk-events-list tbody td:nth-child(2):not(:empty)::before {
        content: "bis ";
    }

    .bvk-events-list tbody td:nth-child(3):not(:empty)::before {
        content: "Uhrzeit: ";
        color: #6c757d;
        font-weight: 400;
    }

    .bvk-events-list tbody td:nth-child(4) {
        margin-top: 0.45rem;
    }

    .bvk-events-list tbody td:nth-child(4) a {
        font-size: 1.08rem;
    }
}


/* =========================================================
   BVK JEVENTS TERMINLISTE v2
   Feinjustierung
   ========================================================= */

/* Kein künstliches "bis" in der Enddatumsspalte */
.bvk-events-list tbody td:nth-child(2)::before {
    content: none !important;
}

@media (min-width: 761px) {
    .bvk-events-list table {
        table-layout: fixed;
    }

    .bvk-events-list th:nth-child(1),
    .bvk-events-list td:nth-child(1) {
        width: 24%;
    }

    .bvk-events-list th:nth-child(2),
    .bvk-events-list td:nth-child(2) {
        width: 19%;
    }

    .bvk-events-list th:nth-child(3),
    .bvk-events-list td:nth-child(3) {
        width: 10%;
    }

    .bvk-events-list th:nth-child(4),
    .bvk-events-list td:nth-child(4) {
        width: 47%;
    }

    .bvk-events-list tbody td:nth-child(2),
    .bvk-events-list tbody td:nth-child(3) {
        color: #4f5965;
    }
}


/* =========================================================
   BVK JEVENTS TERMINLISTE v3
   Leere Uhrzeit + Bis-Datum semantisch sauber behandeln
   ========================================================= */

/* Bis-Datum auf Desktop gehört optisch zum Startdatum */
@media (min-width: 761px) {
    .bvk-events-list tbody td[data-label="Bis"] {
        color: #2e52a0;
        font-weight: 600;
    }
}

/* Mobile Darstellung */
@media (max-width: 760px) {

    /* JEvents liefert bei leerer Zeit ein leeres <span></span>.
       Die ganze leere Zeile soll dann verschwinden. */
    .bvk-events-list tbody td[data-label="Uhrzeit"]:has(> span:empty) {
        display: none;
    }

    /* Nur bei tatsächlich vorhandener Uhrzeit Beschriftung anzeigen */
    .bvk-events-list tbody td[data-label="Uhrzeit"]:has(> span:not(:empty))::before {
        content: "Uhrzeit: " !important;
        color: #6c757d;
        font-weight: 400;
    }

    /* Mehrtägiges Event: Enddatum klar kennzeichnen */
    .bvk-events-list tbody td[data-label="Bis"]:has(> span:not(:empty))::before {
        content: "Bis: " !important;
        color: #6c757d;
        font-weight: 400;
    }

    .bvk-events-list tbody td[data-label="Bis"] {
        color: #2e52a0;
        font-weight: 600;
    }
}


/* =========================================================
   BVK HEADER BREAKPOINT v4
   Zwischen 992 und 1279px weiterhin kompakter Mobil-Header
   ========================================================= */

@media (min-width: 992px) and (max-width: 1279.98px) {

    .container-header {
        display: block;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .container-header > .grid-child {
        width: 100%;
        max-width: none;
        margin: 0;
        padding-top: .65rem;
        padding-bottom: .35rem;
    }

    .container-header .brand-logo img,
    .container-header .navbar-brand img {
        max-height: 70px;
    }

    .container-header .site-description {
        font-size: 1.15rem;
    }

    .container-header > .container-nav {
        width: 100%;
        max-width: none;
        margin: 0;
        padding-top: .2rem;
        padding-bottom: .65rem;
        justify-content: flex-start;
    }

    /*
     * Bootstrap/Cassiopeia schaltet normalerweise schon ab 992px
     * auf Desktopnavigation. Für BVK halten wir bis 1279px
     * bewusst die Hamburger-Navigation.
     */
    .container-header .navbar-toggler {
        display: block !important;
    }

    .container-header .navbar-collapse {
        display: none !important;
        width: 100%;
    }

    .container-header .navbar-collapse.show {
        display: block !important;
    }

    /* BVK-HEADER-126E: Bootstrap-Collapse-Animation sichtbar halten. */
    .container-header .navbar-collapse.collapsing {
        display: block !important;
    }

    /* BVK-HEADER-126F: Vertikale Liste auch waehrend Collapse. */
    .container-header .navbar-collapse.show .mod-menu,
    .container-header .navbar-collapse.collapsing .mod-menu {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        width: 100%;
        gap: .2rem;
    }

    /* BVK-HEADER-126C: Burger/Suche oben, Menue darunter. */
    .container-header .container-nav .navbar {
        display: flex;
        flex-wrap: wrap !important;
        align-items: center;
        width: 100%;
    }
    .container-header .container-nav .navbar-toggler {
        order: 1;
        flex: 0 0 auto;
        margin-inline-start: 0 !important;
    }
    .container-header .container-nav .bvk-mobile-search-trigger {
        order: 2;
        flex: 0 0 auto;
        margin-inline-start: auto !important;
    }
    .container-header .container-nav .navbar-collapse {
        order: 3;
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 0;
        margin-top: .35rem;
    }

}


/* =========================================================
   BVK JEVENTS TERMINLISTE v4
   Mobile Beschriftung des optionalen Enddatums
   ========================================================= */

@media (max-width: 760px) {

    /*
     * Beschriftung direkt am von JEvents gelieferten Span.
     * Bei leerem Span erscheint dadurch automatisch nichts.
     */
    .bvk-events-list tbody td[data-label="Bis"] > span:not(:empty)::before {
        content: "Bis: ";
        color: #6c757d;
        font-weight: 400;
    }

    .bvk-events-list tbody td[data-label="Uhrzeit"] > span:not(:empty)::before {
        content: "Uhrzeit: ";
        color: #6c757d;
        font-weight: 400;
    }
}


/* =========================================================
   BVK JEVENTS EVENTDETAIL v1
   ========================================================= */

.bvk-event-detail {
    margin-top: .25rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid #dfe4ec;
    border-left: 4px solid #e3022a;
    border-radius: .45rem;
    background: #fff;
}

.bvk-event-detail__header {
    margin-bottom: 1.2rem;
}

.bvk-event-detail__title {
    margin: 0;
    color: #09294b;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    line-height: 1.25;
}

.bvk-event-detail__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem 1.5rem;
    margin-bottom: 1.3rem;
}

.bvk-event-detail__fact {
    display: grid;
    grid-template-columns: minmax(5.5rem, auto) 1fr;
    gap: .6rem;
    align-items: baseline;
}

/* optionale leere Felder nicht anzeigen */
.bvk-event-detail__fact:has(> .bvk-event-detail__value:empty) {
    display: none;
}

.bvk-event-detail__label {
    color: #66717d;
    font-size: .9rem;
    font-weight: 600;
}

.bvk-event-detail__value {
    color: #1f2933;
    font-weight: 600;
}

.bvk-event-detail__category {
    color: #2e52a0;
}

.bvk-event-detail__section {
    margin-top: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid #e3e7ed;
}

.bvk-event-detail__section:has(> .bvk-event-detail__section-value:empty) {
    display: none;
}

.bvk-event-detail__section h3 {
    margin: 0 0 .55rem;
    color: #09294b;
    font-size: 1.1rem;
}

.bvk-event-detail__section-value {
    line-height: 1.65;
}

.bvk-event-detail__url {
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .bvk-event-detail {
        padding: 1rem;
    }

    .bvk-event-detail__facts {
        grid-template-columns: 1fr;
        gap: .55rem;
    }

    .bvk-event-detail__fact {
        grid-template-columns: 5rem 1fr;
    }
}


/* =========================================================
   BVK JEVENTS HOMEPAGE LATEST v1
   Startseitenmodul "Nächste Termine"
   ========================================================= */

.bvk-next-events .bvk-next-events__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 1rem;
}

.bvk-next-events .bvk-next-events__item {
  display: grid;
  grid-template-columns: minmax(10.5rem, auto) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid #d7dce4;
  border-left: 4px solid #2e52a0;
  border-radius: 0.4rem;
  background: #fff;
}

.bvk-next-events .bvk-next-event__date {
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
}

.bvk-next-events .bvk-next-event__title {
  min-width: 0;
  line-height: 1.35;
}

.bvk-next-events .bvk-next-event__title a {
  font-weight: 700;
  text-decoration: none;
}

.bvk-next-events .bvk-next-event__title a:hover,
.bvk-next-events .bvk-next-event__title a:focus {
  text-decoration: underline;
}

.bvk-next-events .mod_events_latest_callink {
  margin: 0 1rem 1rem;
  padding-top: 0.15rem;
  text-align: right;
}

.bvk-next-events .mod_events_latest_callink a {
  font-weight: 700;
  text-decoration: none;
}

.bvk-next-events .mod_events_latest_callink a::after {
  content: " ›";
  color: #e3022a;
  font-weight: 700;
}

.bvk-next-events .mod_events_latest_callink a:hover,
.bvk-next-events .mod_events_latest_callink a:focus {
  text-decoration: underline;
}

@media (max-width: 767.98px) {
  .bvk-next-events .bvk-next-events__list {
    grid-template-columns: 1fr;
    padding: 0.75rem;
  }

  .bvk-next-events .bvk-next-events__item {
    grid-template-columns: 1fr;
    gap: 0.2rem;
    padding: 0.8rem 0.9rem;
  }

  .bvk-next-events .mod_events_latest_callink {
    margin: 0 0.75rem 0.75rem;
    text-align: left;
  }
}


/* =========================================================
   BVK JEVENTS HOMEPAGE LATEST v2
   Tablet: Terminliste bis 991px einspaltig
   ========================================================= */

@media (min-width: 768px) and (max-width: 991.98px) {
  .bvk-next-events .bvk-next-events__list {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   BVK JEVENTS HOMEPAGE LATEST v3
   Tablet: einheitliche Datumsspalte
   ========================================================= */

@media (min-width: 768px) and (max-width: 991.98px) {
  .bvk-next-events .bvk-next-events__item {
    grid-template-columns: 11.5rem minmax(0, 1fr);
  }
}
/* =========================================================
   BVK FRONTEND ENHANCEMENTS v1
   - responsive Legacy-Bilder
   - strukturierte Bildabstände
   - Justify nur visuell neutralisieren
   - eigene Lightbox
   - Kategorie-Teaser
   ========================================================= */

/* Bilder dürfen niemals den Inhaltsbereich sprengen. */
.com-content-article img,
.com-content-category-blog img {
    max-width: 100%;
    height: auto;
}

/*
 * Joomla-Bilder aus "Bilder und Links":
 * etwas Abstand zum folgenden/umfließenden Text.
 */
.com-content-article .item-image {
    margin: 0 1rem 1rem 0;
}

.com-content-article .item-image.float-end {
    margin: 0 0 1rem 1rem;
}

.com-content-article .item-image.float-none {
    margin: 0 0 1rem;
}

/*
 * Historischen Blocksatz im Pilotbestand optisch deaktivieren.
 * In der späteren Massenmigration wird das Inline-Attribut
 * zusätzlich aus dem HTML entfernt.
 */
.com-content-article p[style*="text-align: justify"],
.com-content-article p[style*="text-align:justify"] {
    text-align: left !important;
}

/* Kurzer Textanriss in Berichte / Spielberichte / Presse. */
.bvk-category-teaser {
    margin: .55rem 0 1.1rem;
    line-height: 1.55;
}

/* ---------------- BVK Lightbox ---------------- */

.bvk-lightbox-dialog {
    width: auto;
    max-width: min(94vw, 1400px);
    max-height: 94vh;
    margin: auto;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
}

.bvk-lightbox-dialog::backdrop {
    background: rgba(0, 0, 0, .82);
}

.bvk-lightbox-frame {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 94vw;
    max-height: 94vh;
    padding: .75rem;
    border-radius: .35rem;
    background: #111;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .45);
}

.bvk-lightbox-image {
    display: block;
    width: auto;
    height: auto;
    max-width: calc(94vw - 1.5rem);
    max-height: calc(94vh - 5rem);
    object-fit: contain;
}

.bvk-lightbox-caption {
    max-width: 70rem;
    margin: .65rem .4rem .1rem;
    color: #fff;
    font-size: .95rem;
    line-height: 1.4;
    text-align: center;
}

.bvk-lightbox-caption[hidden] {
    display: none;
}

.bvk-lightbox-close {
    position: absolute;
    z-index: 2;
    top: .2rem;
    right: .3rem;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .72);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}

.bvk-lightbox-close:hover,
.bvk-lightbox-close:focus-visible {
    background: #000;
    outline: 2px solid #fff;
    outline-offset: 2px;
}

body.bvk-lightbox-open {
    overflow: hidden;
}


/*
 * Auf schmalen Bildschirmen historische Inline-Floats
 * auflösen. Desktop-Positionen bleiben unangetastet.
 */
@media (max-width: 767.98px) {
    .com-content-article img[style*="float: left"],
    .com-content-article img[style*="float:left"],
    .com-content-article img[style*="float: right"],
    .com-content-article img[style*="float:right"] {
        float: none !important;
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 1rem auto !important;
    }

    .com-content-article .item-image,
    .com-content-article .item-image.float-start,
    .com-content-article .item-image.float-end,
    .com-content-article .item-image.float-none {
        float: none !important;
        margin: 0 0 1rem !important;
    }

    .bvk-lightbox-frame {
        padding: .4rem;
    }

    .bvk-lightbox-image {
        max-width: calc(96vw - .8rem);
        max-height: calc(92vh - 4rem);
    }
}

/* === ENDE BVK FRONTEND ENHANCEMENTS v1 === */

/* =========================================================
   BVK GERMAN HYPHENATION v1
   - automatische sprachabhängige Silbentrennung
   - alter Blocksatz auch in Beiträge-Modulen neutralisieren
   ========================================================= */

/*
 * Die eigentliche Sprache kommt vom HTML-lang-Attribut
 * der Joomla-Seite. Keine manuellen Soft-Hyphens nötig.
 */
.com-content-article p,
.com-content-category-blog .bvk-category-teaser,
.mod-articles p {
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
}

/*
 * Alte Inline-Blocksatzangaben sollen auch dann nicht
 * durchschlagen, wenn introtext im Beiträge-Modul als
 * Kurz-Teaser ausgegeben wird.
 */
.mod-articles p[style*="text-align: justify"],
.mod-articles p[style*="text-align:justify"] {
    text-align: left !important;
}

/* === ENDE BVK GERMAN HYPHENATION v1 === */

/* =========================================================
   BVK TEXT ALIGNMENT NORMALIZATION v1

   Ziel:
   - normaler Fließtext linksbündig
   - automatische deutsche Silbentrennung
   - keine historischen Blocksatz-Wortabstände in Teasern
   ========================================================= */

/*
 * Normale Artikelfließtexte.
 * Captions/Lightbox bleiben davon unberührt.
 */
.com-content-article p:not(.bvk-lightbox-caption) {
    text-align: left !important;
    word-spacing: normal !important;
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
}

/* Kategoriearchive Berichte / Spielberichte / Presse. */
.com-content-category-blog .bvk-category-teaser {
    text-align: left !important;
    word-spacing: normal !important;
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
}

/*
 * Joomla-Artikelmodule:
 * "Aktuelles" und "Neueste Beiträge".
 *
 * Mehrere Selektoren absichtlich kombiniert, damit sowohl
 * direkte Introtexte als auch darin enthaltene Legacy-<p>
 * zuverlässig normalisiert werden.
 */
.mod-articles-item,
.mod-articles-item p,
.mod-articles-item .mod-articles-introtext,
.mod-articles-item .mod-articles-introtext p,
.mod-articles p,
.mod-articles .mod-articles-introtext,
.mod-articles .mod-articles-introtext p {
    text-align: left !important;
    word-spacing: normal !important;
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
}

/*
 * Falls alter Inhalt weiterhin explizites
 * text-align:justify mitbringt, hat die neue Darstellung
 * Vorrang. Im späteren Massenimport wird dieses Inline-
 * Attribut zusätzlich aus dem HTML entfernt.
 */
main [style*="text-align: justify"],
main [style*="text-align:justify"] {
    text-align: left !important;
    word-spacing: normal !important;
}

/* === ENDE BVK TEXT ALIGNMENT NORMALIZATION v1 === */


/* =========================================================
   BVK VORSTAND ANSPRECHPARTNER v2 START
   ========================================================= */

.bvk-contact-intro {
    max-width: 52rem;
    margin-bottom: 1.25rem;
}

.bvk-section-nav {
    position: sticky;
    top: 4rem;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;

    margin: 0 0 2.5rem;
    padding: 0.65rem 0;

    background: var(--body-bg, #fff);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.bvk-section-nav a {
    display: inline-block;
    flex: 0 0 auto;

    padding: 0.45rem 0.75rem;

    border: 1px solid currentColor;
    border-radius: 999px;

    text-decoration: none;
    white-space: nowrap;
}

.bvk-section-nav a:hover,
.bvk-section-nav a:focus-visible {
    text-decoration: none;
}

.bvk-contact-section {
    scroll-margin-top: 11rem;
    margin-block: 2.75rem;
}

/* BVK-VORSTAND-127C: Sprungmarken an der sichtbaren Ueberschrift ausrichten.
   Weitere Abschnitte haben 2rem Padding oberhalb der Ueberschrift. */
@media (min-width: 1280px) {
  .container-component .bvk-contact-section + .bvk-contact-section {
    scroll-margin-top: 7.75rem;
  }

  /* Erster Sprung, solange der grosse Header noch sichtbar ist. */
  body:not(:has(.container-header.bvk-header-compact))
  .container-component .bvk-contact-section {
    scroll-margin-top: 13.6875rem;
  }

  body:not(:has(.container-header.bvk-header-compact))
  .container-component .bvk-contact-section + .bvk-contact-section {
    scroll-margin-top: 11.4375rem;
  }
}

.bvk-contact-section + .bvk-contact-section {
    padding-top: 2rem;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.bvk-contact-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 1rem;
}

.bvk-person-card {
    min-width: 0;

    padding: 1.15rem;

    background: var(--body-bg, #fff);
    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 0.55rem;

    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.04);
}

.bvk-person-name {
    margin: 0 0 0.35rem;
    font-size: 1.1rem;
}

.bvk-person-role {
    margin: 0;
}

.bvk-person-contact {
    margin: 0.75rem 0 0;
    overflow-wrap: anywhere;
}

.bvk-contact-section-compact {
    max-width: 52rem;
}

.bvk-compact-list {
    margin: 0;
}

.bvk-compact-list > div {
    display: grid;

    grid-template-columns:
        minmax(12rem, 21rem)
        minmax(12rem, 1fr);

    gap: 1rem;

    padding-block: 0.75rem;

    border-bottom:
        1px solid rgba(0, 0, 0, 0.1);
}

.bvk-compact-list dt {
    font-weight: 600;
}

.bvk-compact-list dd {
    margin: 0;
}

.bvk-name-list {
    margin-bottom: 0;
}

@media (max-width: 75rem) {
    .bvk-contact-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 56rem) {
    .bvk-contact-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 36rem) {
    .bvk-section-nav {
        flex-wrap: nowrap;

        overflow-x: auto;
        overscroll-behavior-inline: contain;

        scrollbar-width: thin;
    }

    .bvk-contact-grid {
        grid-template-columns: 1fr;
    }

    .bvk-compact-list > div {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }
}

/* =========================================================
   BVK VORSTAND ANSPRECHPARTNER v2 END
   ========================================================= */

/* =========================================================
   BVK VORSTAND STICKY FIX v1 START

   Cassiopeia setzt:
   .container-component nav { position: relative; }

   Der spezifischere Selektor stellt für die
   Vorstands-Bereichsnavigation position: sticky wieder her.
   ========================================================= */

.container-component nav.bvk-section-nav {
    position: sticky;
    top: 4rem;
    z-index: 30;

    width: 100%;
    align-self: flex-start;
}

/* =========================================================
   BVK VORSTAND STICKY FIX v1 END
   ========================================================= */


/* BVK_IMAGE_ONLY_CATEGORY_INTRO_V1 */
.com-content-category-blog .bvk-category-image-only {
    margin: .65rem 0 1.3rem;
}

.com-content-category-blog .bvk-category-image-only .item-image {
    float: none !important;
    width: fit-content;
    max-width: 100%;
    margin: 0;
}

.com-content-category-blog .bvk-category-image-only .item-image a {
    display: inline-block;
    max-width: 100%;
}

.com-content-category-blog .bvk-category-image-only .item-image img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 16rem;
    object-fit: contain;
}

.com-content-category-blog .bvk-category-image-only figcaption {
    max-width: 20rem;
    margin-top: .35rem;
}

/* BVK_CATEGORY_EVENTGALLERY_THUMBS_V1 */
.com-content-category-blog .bvk-category-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    max-width: 490px;
    margin: .7rem 0 1.2rem;
}

.com-content-category-blog .bvk-category-gallery-thumbs a {
    display: block;
    min-width: 0;
    overflow: hidden;
    border-radius: .3rem;
}

.com-content-category-blog .bvk-category-gallery-thumbs img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.com-content-category-blog .bvk-category-gallery-thumbs a:focus-visible {
    outline: 3px solid #2e52a0;
    outline-offset: 2px;
}

/* BVK_TEXT_IMAGE_TEASER_V1 */

/* Kategorie: kompaktes Bild und Text, ohne Beschnitt. */
.com-content-category-blog
.bvk-category-image-with-text .item-image img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(100%, 220px);
    max-height: 160px;
    object-fit: contain;
}

/* Startseite / Aktuell: Beitragsmodul-Bilder klein halten. */
.mod-articles-items .mod-articles-item .item-image {
    float: none !important;
    max-width: 100%;
    margin: .5rem 0 .65rem;
}

.mod-articles-items .mod-articles-item .item-image img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(100%, 180px);
    max-height: 144px;
    object-fit: contain;
}

/* BVK_MOD_ARTICLES_SAFE_IMAGE_GALLERY_V2 */
.mod-articles-items .bvk-module-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    max-width: 480px;
    margin: .55rem 0 .75rem;
}

.mod-articles-items .bvk-module-gallery-thumbs a {
    display: block;
    border-radius: .3rem;
    overflow: hidden;
}

.mod-articles-items .bvk-module-gallery-thumbs img {
    display: block;
    width: 105px;
    height: 105px;
    max-width: 100%;
    object-fit: cover;
}

.mod-articles-items .bvk-module-inline-thumb {
    float: none !important;
    width: fit-content;
    max-width: 100%;
    margin: .5rem 0 .65rem;
}

.mod-articles-items .bvk-module-inline-thumb img {
    display: block;
    width: auto;
    height: auto;
    max-width: 180px;
    max-height: 144px;
    object-fit: contain;
}

.mod-articles-items .bvk-module-gallery-thumbs a:focus-visible,
.mod-articles-items .bvk-module-inline-thumb a:focus-visible {
    outline: 3px solid #2e52a0;
    outline-offset: 2px;
}

/* BVK_SIDE_BY_SIDE_TEASER_V1 */

/* Jede Modul-Vorschau schliesst ihre eigenen Bild-Floats ein. */
.mod-articles-items .mod-articles-item-content {
    display: flow-root;
}

/* Einzelbilder links, Text rechts, Beschriftung unter dem Bild. */
.mod-articles-items .mod-articles-item-content > .item-image,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
    float: left !important;
    clear: none !important;
    width: min(180px, 40%);
    max-width: 180px;
    margin: .4rem 1.1rem .75rem 0;
}

.mod-articles-items .mod-articles-item-content > .item-image img,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.mod-articles-items .mod-articles-item-content > .item-image figcaption {
    max-width: 100%;
    font-size: .8rem;
    line-height: 1.35;
}

/* Auch im Kategoriearchiv Bild und Text nebeneinander. */
.com-content-category-blog .item-content {
    display: flow-root;
}

.com-content-category-blog .bvk-category-image-with-text {
    float: left;
    width: fit-content;
    max-width: min(220px, 42%);
    margin: .55rem 1.2rem .75rem 0;
}

/* Auf schmalen Displays bleibt der Text gut lesbar. */
@media (max-width: 640px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb,
    .com-content-category-blog .bvk-category-image-with-text {
        float: none !important;
        width: fit-content;
        max-width: 100%;
        margin: .5rem 0 .8rem;
    }
}

/* BVK_RESPONSIVE_LONG_TEASER_V1 */

/* Lesbare Zeilenlaengen neben kleinen Bildern. */
.mod-articles-items .mod-articles-item-content > p,
.com-content-category-blog .bvk-category-teaser {
    max-width: 76ch;
    line-height: 1.5;
}

/* Kompaktere Abstaende rund um die Bild-Text-Vorschau. */
.mod-articles-items .mod-articles-item-content > .item-image,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
    margin: .35rem 1rem .5rem 0;
}

.com-content-category-blog .bvk-category-image-with-text {
    margin: .35rem 1rem .5rem 0;
}

/* Vollstaendige, etwas kompaktere Bildunterschriften. */
.mod-articles-items .mod-articles-item-content > .item-image figcaption,
.com-content-category-blog .bvk-category-image-with-text figcaption {
    margin-top: .25rem;
    line-height: 1.3;
    overflow-wrap: break-word;
}

/* Auf Smartphones Bild und Text untereinander halten. */
@media (max-width: 640px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb,
    .com-content-category-blog .bvk-category-image-with-text {
        margin: .45rem 0 .7rem;
    }

    .mod-articles-items .mod-articles-item-content > p,
    .com-content-category-blog .bvk-category-teaser {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        overflow: hidden;
    }
}

/* BVK_LARGER_CLICKABLE_TEASERS_V1 */

/*
 * Groessere Vorschauen auf Desktop und Tablet.
 * Originalseitenverhaeltnis bleibt erhalten.
 * EventGallery-Viererreihen bleiben unberuehrt.
 */
@media (min-width: 641px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
        width: min(260px, 42%);
        max-width: 260px;
    }

    .mod-articles-items .mod-articles-item-content > .item-image img {
        max-width: 100%;
        max-height: 240px;
        height: auto;
        object-fit: contain;
    }

    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img {
        max-width: 100%;
        max-height: 240px;
        width: auto;
        height: auto;
        object-fit: contain;
    }

    .com-content-category-blog .bvk-category-image-with-text {
        width: min(300px, 44%);
        max-width: 300px;
    }

    .com-content-category-blog .bvk-category-image-with-text img {
        max-width: 100%;
        max-height: 270px;
        width: auto;
        height: auto;
        object-fit: contain;
    }
}

/* Tablet: ausreichend Platz fuer den nebenstehenden Text. */
@media (min-width: 641px) and (max-width: 899px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
        width: min(220px, 40%);
        max-width: 220px;
    }

    .com-content-category-blog .bvk-category-image-with-text {
        width: min(240px, 42%);
        max-width: 240px;
    }
}

/* Erkennbare Tastaturbedienung verlinkter Einleitungsbilder. */
.mod-articles-items .mod-articles-item-content > .item-image a:focus-visible {
    outline: 3px solid #2e52a0;
    outline-offset: 3px;
}

/* BVK_LARGE_ALL_DEVICES_PRESSE_STACK_V1 */

/* Large images and flowing text for regular article teasers */
.mod-articles-items .mod-articles-item-content > .item-image,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
    float: left !important;
    width: min(460px, 50%);
    max-width: 460px;
    margin: .55rem 1.25rem .8rem 0;
}
.mod-articles-items .mod-articles-item-content > .item-image img,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}
.mod-articles-items .mod-articles-item-content > .item-image figcaption {
    max-width: 100%;
    line-height: 1.4;
}

/* Regular category articles */
.com-content-category-blog .bvk-category-image-with-text {
    float: left;
    width: min(520px, 52%);
    max-width: 520px;
    margin: .55rem 1.3rem .8rem 0;
}
.com-content-category-blog .bvk-category-image-with-text .item-image {
    float: none !important;
    width: 100%;
    max-width: 100%;
    margin: 0;
}
.com-content-category-blog .bvk-category-image-with-text .item-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

/* Image-only articles */
.com-content-category-blog
.bvk-category-image-only:not(.bvk-category-image-with-text) .item-image {
    width: min(100%, 620px);
    max-width: 100%;
}
.com-content-category-blog
.bvk-category-image-only:not(.bvk-category-image-with-text) .item-image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

/* Press category 11: image above source text */
.com-content-category-blog .bvk-presse-archive-item .bvk-category-image-only {
    float: none !important;
    clear: both;
    display: block;
    width: min(100%, 620px) !important;
    max-width: 620px !important;
    margin: .65rem 0 .35rem !important;
}
.com-content-category-blog
.bvk-presse-archive-item .bvk-category-image-only .item-image {
    float: none !important;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
}
.com-content-category-blog
.bvk-presse-archive-item .bvk-category-image-only .item-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}
.com-content-category-blog .bvk-presse-archive-item .bvk-category-teaser {
    clear: both;
    max-width: 76ch;
    margin: .5rem 0 1.15rem;
}

/* EventGallery: keep existing article links */
.com-content-category-blog .bvk-category-gallery-thumbs {
    max-width: 800px;
}
.mod-articles-items .bvk-module-gallery-thumbs {
    max-width: 800px;
}
.mod-articles-items .bvk-module-gallery-thumbs a {
    width: calc((100% - 1.5rem) / 4);
    box-sizing: border-box;
}
.mod-articles-items .bvk-module-gallery-thumbs img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* Tablet: image above text when columns become narrow */
@media (min-width: 641px) and (max-width: 1099px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
        float: none !important;
        width: min(100%, 540px);
        max-width: 100%;
        margin: .55rem 0 .8rem;
    }
    .com-content-category-blog .bvk-category-image-with-text {
        float: none !important;
        width: min(100%, 600px);
        max-width: 100%;
        margin: .55rem 0 .8rem;
    }
}

/* EventGallery: two columns on narrower screens */
@media (max-width: 899px) {
    .com-content-category-blog .bvk-category-gallery-thumbs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 100%;
    }
    .mod-articles-items .bvk-module-gallery-thumbs {
        max-width: 100%;
    }
    .mod-articles-items .bvk-module-gallery-thumbs a {
        width: calc((100% - .5rem) / 2);
    }
}

/* Smartphone: full-width images */
@media (max-width: 640px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb,
    .com-content-category-blog .bvk-category-image-only,
    .com-content-category-blog .bvk-category-image-with-text {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: .5rem 0 .8rem !important;
    }
    .com-content-category-blog .bvk-category-image-only .item-image {
        float: none !important;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    .mod-articles-items .mod-articles-item-content > .item-image img,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img,
    .com-content-category-blog .bvk-category-image-only .item-image img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
        object-fit: contain;
    }
    .com-content-category-blog
    .bvk-presse-archive-item .bvk-category-image-only {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* BVK_TEASER_TEXT_FLOW_PORTRAIT_V1 */

/* BVK_BALANCED_TEASER_LINES_V1: responsive card width. */
.mod-articles-items .mod-articles-item-content,
.com-content-category-blog .item-content:not(.bvk-presse-archive-item) {
    container: bvk-teaser-card / inline-size;
    max-width: 1080px;
}

/* Readable line lengths without squeezing text beside images. */
.mod-articles-items .mod-articles-item-content > p,
.com-content-category-blog .item-content:not(.bvk-presse-archive-item) > .bvk-category-teaser {
    max-width: 68ch;
    overflow-wrap: break-word;
}

/* On larger screens text gets its own area beside the float. */
@media (min-width: 641px) {
    .mod-articles-items .mod-articles-item-content > p,
    .com-content-category-blog .item-content:not(.bvk-presse-archive-item) > .bvk-category-teaser {
        display: flow-root;
    }
}

/* Image containers should follow actual image dimensions. */
.mod-articles-items .mod-articles-item-content > .item-image,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb {
    float: left !important;
    width: fit-content;
    max-width: min(460px, 44%);
    margin: .55rem 1.25rem .8rem 0;
}

.mod-articles-items .mod-articles-item-content > .item-image img,
.mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

/* Category archive: no wide empty float beside portraits. */
.com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text {
    float: left !important;
    width: fit-content !important;
    max-width: min(520px, 44%) !important;
    margin: .55rem 1.25rem .8rem 0;
}

.com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text .item-image {
    float: none !important;
    width: fit-content;
    max-width: 100%;
    margin: 0;
}

.com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text .item-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

/* Narrow content areas: picture above full-width text. */
@container bvk-teaser-card (max-width: 760px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb,
    .com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text {
        float: none !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin: .55rem 0 .8rem !important;
    }
}

/* Phones: full available width, preserved aspect ratio. */
@media (max-width: 640px) {
    .mod-articles-items .mod-articles-item-content > .item-image,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb,
    .com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: .5rem 0 .8rem !important;
    }

    .mod-articles-items .mod-articles-item-content > .item-image img,
    .mod-articles-items .mod-articles-item-content > .bvk-module-inline-thumb img,
    .com-content-category-blog .item-content:not(.bvk-presse-archive-item) .bvk-category-image-with-text .item-image img {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
        object-fit: contain;
    }
}

/* BVK_RESPONSIVE_IMAGE_WIDTH_PILOT_61_V1
 * Natural-size image layout; restricted to the audited pilot in PHP.
 */
.com-content-article figure.item-image.bvk-natural-small,
.com-content-article figure.item-image.bvk-natural-medium,
.com-content-article figure.item-image.bvk-natural-large {
    display: block;
    box-sizing: border-box;
    min-width: 0;
}

.com-content-article figure.item-image.bvk-natural-small img,
.com-content-article figure.item-image.bvk-natural-medium img,
.com-content-article figure.item-image.bvk-natural-large img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
}

.com-content-article figure.item-image.bvk-natural-small figcaption,
.com-content-article figure.item-image.bvk-natural-medium figcaption,
.com-content-article figure.item-image.bvk-natural-large figcaption {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
    line-height: 1.35;
}

/* Medium and large images above the full-width article text. */
.com-content-article figure.item-image.bvk-natural-medium,
.com-content-article figure.item-image.bvk-natural-large {
    float: none !important;
    clear: both !important;
    width: min(100%, var(--bvk-natural-image-width), 780px) !important;
    max-width: 100% !important;
    margin: .3rem 0 1rem !important;
}

/* Desktop: small image left, text beside it. */
@media (min-width: 960px) {
    .com-content-article figure.item-image.bvk-natural-small {
        float: left !important;
        clear: none !important;
        width: min(var(--bvk-natural-image-width), 40%) !important;
        max-width: 100% !important;
        margin: .25rem 1.15rem .8rem 0 !important;
    }
}

/* Narrow screens: image above text. */
@media (max-width: 959px) {
    .com-content-article figure.item-image.bvk-natural-small {
        float: none !important;
        clear: both !important;
        width: min(100%, var(--bvk-natural-image-width)) !important;
        max-width: 100% !important;
        margin: .25rem 0 .85rem !important;
    }
}

/* BVK_SMALL_MATCH_TABLET_65_V1
 * Tablet layout for small match-report images only.
 */
@media (min-width: 720px) and (max-width: 959px) {
  .com-content-article figure.item-image.bvk-natural-small.bvk-small-match-tablet {
    float: left !important;
    clear: none !important;
    width: min(35%, var(--bvk-natural-image-width)) !important;
    max-width: 100% !important;
    margin: .25rem 1rem .8rem 0 !important;
  }
}

/* BVK_CATEGORY_TEASER_WIDTH_67_V1
 * Compact article previews, not full article images or press archive.
 * Use a bounded width; never min-content.
 */
@media (min-width: 641px) {
    .com-content-category-blog
    .item-content:not(.bvk-presse-archive-item)
    .bvk-category-image-with-text {
        float: left !important;
        width: min(180px, 38%) !important;
        max-width: 100% !important;
        margin: .35rem 1rem .5rem 0 !important;
    }

    .com-content-category-blog
    .item-content:not(.bvk-presse-archive-item)
    .bvk-category-image-with-text figure.item-image {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .com-content-category-blog
    .item-content:not(.bvk-presse-archive-item)
    .bvk-category-image-with-text figure.item-image figcaption {
        box-sizing: border-box;
        width: 100%;
        max-width: 100% !important;
        white-space: normal;
        overflow-wrap: break-word;
        line-height: 1.35;
    }
}

/* BVK_CATEGORY_WIDE_BANNER_OPTIN_74_V1
 * Opt-in through Joomla introduction-image CSS class bvk-teaser-banner.
 * Does not change full-article images or press articles.
 */
.com-content-category-blog .item-content:not(.bvk-presse-archive-item)
.bvk-category-image-with-text:has(img.bvk-teaser-banner) {
    display: block !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box;
    width: min(100%, 600px) !important;
    max-width: 100% !important;
    margin: .35rem 0 .75rem !important;
}
.com-content-category-blog .item-content:not(.bvk-presse-archive-item)
.bvk-category-image-with-text:has(img.bvk-teaser-banner) figure.item-image {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
.com-content-category-blog .item-content:not(.bvk-presse-archive-item)
.bvk-category-image-with-text img.bvk-teaser-banner {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}
.com-content-category-blog .item-content:not(.bvk-presse-archive-item):has(img.bvk-teaser-banner)
.bvk-category-teaser {
    clear: both !important;
    max-width: 100% !important;
}

/* BVK_MOBILE_EMBLEM_OPTIN_82_V1
 * Only images explicitly marked bvk-teaser-emblem.
 */
@media (max-width: 640px) {
    .com-content-category-blog .item-content:not(.bvk-presse-archive-item)
    .bvk-category-image-only .item-image img.bvk-teaser-emblem {
        width: auto !important;
        max-width: min(140px, 48vw) !important;
        height: auto !important;
        max-height: 175px !important;
        object-fit: contain;
    }
}

/* BVK_SEARCH_RESPONSIVE_86_V1 */
.container-header .bvk-mobile-search-trigger {
  display: none;
}

@media (min-width: 1280px) {
  .container-header .mod-menu_dropdown-metismenu > li.level-1 {
    white-space: nowrap;
  }
  .container-header .mod-menu_dropdown-metismenu > li.level-1 > ul {
    white-space: normal;
  }
}

@media (max-width: 1279.98px) {
  .container-header .container-nav .navbar {
    width: 100%;
  }

  .container-header .container-nav .bvk-mobile-search-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin-inline-start: auto;
    padding: .5rem;
    color: #fff;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: .25rem;
    text-decoration: none;
  }

  .container-header .bvk-mobile-search-trigger:hover,
  .container-header .bvk-mobile-search-trigger:focus-visible {
    color: #fff;
    background: rgba(255,255,255,.15);
    outline-offset: 2px;
  }
}

@media (max-width: 640px) {
  .com-finder__search .input-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem;
    width: 100%;
  }

  .com-finder__search .input-group > input.js-finder-search-query {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    border-radius: .375rem;
  }

  .com-finder__search .input-group > button.btn-primary {
    grid-column: 1;
    border-radius: .375rem;
  }

  .com-finder__search .input-group > button.btn-secondary {
    grid-column: 2;
    border-radius: .375rem;
  }

  .com-finder__results a {
    overflow-wrap: anywhere;
  }
}

/* BVK_DESKTOP_MENU_ARROWS_87_V1 */
@media (min-width: 1280px) {
  .container-header .metismenu.mod-menu .metismenu-item.level-1 {
    flex-wrap: nowrap;
  }
}

/* BVK_DESKTOP_DROPDOWN_HOVER_88_V1 */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
  .container-header .container-nav
  ul.mod-menu_dropdown-metismenu
  > li.metismenu-item.level-1.deeper.parent:hover
  > ul.mm-collapse {
    display: block !important;
  }
}

/* =====================================================
   BVK FOOTER NAVIGATION 102C
   ===================================================== */

.container-footer .mod-menu.bvk-footer-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 1.4rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.container-footer .mod-menu.bvk-footer-nav > li {
    margin: 0;
    padding: 0;
}

.container-footer .mod-menu.bvk-footer-nav > li > a {
    display: inline-block;
    padding: 0.45rem 0.1rem;
    color: #ffffff;
    text-decoration: none;
    text-underline-offset: 0.2em;
}

.container-footer .mod-menu.bvk-footer-nav > li > a:hover,
.container-footer .mod-menu.bvk-footer-nav > li > a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

.container-footer .mod-menu.bvk-footer-nav > li > a:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
    border-radius: 2px;
}

@media (max-width: 480px) {
    .container-footer .mod-menu.bvk-footer-nav {
        column-gap: 1rem;
        row-gap: 0.15rem;
    }
}

/* =====================================================
   BVK FOOTER REFINEMENT 102D
   Dezente Trenner und ausgewogene Typografie
   ===================================================== */

.container-footer .mod-menu.bvk-footer-nav {
    column-gap: 0.85rem;
    row-gap: 0.25rem;
}

.container-footer .mod-menu.bvk-footer-nav > li {
    display: inline-flex;
    align-items: center;
}

.container-footer .mod-menu.bvk-footer-nav > li > a {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    padding: 0.55rem 0.05rem;
}

.container-footer .mod-menu.bvk-footer-nav > li + li::before {
    content: "·";
    display: inline-block;
    color: rgba(255, 255, 255, 0.65);
    margin-inline-end: 0.85rem;
    font-size: 1rem;
}

@media (max-width: 680px) {
    .container-footer .mod-menu.bvk-footer-nav {
        column-gap: 1rem;
        row-gap: 0.1rem;
    }

    .container-footer .mod-menu.bvk-footer-nav > li + li::before {
        content: none;
    }

    .container-footer .mod-menu.bvk-footer-nav > li > a {
        font-size: 0.95rem;
    }
}

/* BVK UI 106D: kompakter Header und kontrastreiche Jahreskacheln */
@media (min-width: 1200px) {
  .container-header.bvk-header-compact > .grid-child,
  .container-header.bvk-header-compact > .container-nav {
    padding-top: .2rem !important;
    padding-bottom: .2rem !important;
  }
  .container-header .navbar-brand img,
  .container-header .site-description {
    transition: max-height .18s ease, font-size .18s ease;
  }
  .container-header.bvk-header-compact .navbar-brand img {
    max-height: 44px !important;
    width: auto;
  }
  .container-header.bvk-header-compact .site-description {
    font-size: 1rem !important;
    line-height: 1.15;
  }
}
.eventgallery-events-gridlist.bvk-gallery-years .item-container .data .title,
.eventgallery-events-gridlist.bvk-gallery-years .item-container .data .title h2,
.eventgallery-events-gridlist.bvk-gallery-years .item-container .data .title h2 a {
  color: #fff !important;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .85);
}
@media (prefers-reduced-motion: reduce) {
  .container-header .navbar-brand img,
  .container-header .site-description {
    transition: none !important;
  }
}

/* BVK FOOTER TABLET 108C: tablet horizontal, mobile without separators */
@media (min-width: 720px) and (max-width: 1199.98px) {
  .container-footer .mod-menu.bvk-footer-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100%;
  }

  .container-footer .mod-menu.bvk-footer-nav > li {
    display: inline-flex !important;
    width: auto !important;
    flex: 0 0 auto !important;
  }
}

@media (max-width: 719.98px) {
  .container-footer .mod-menu.bvk-footer-nav {
    flex-direction: column !important;
    align-items: center !important;
  }

  .container-footer .mod-menu.bvk-footer-nav > li + li::before {
    content: none !important;
    display: none !important;
  }
}

/* BVK-HISTORIE-113 BEGIN */
/* BVK-Historie 112I – Vorschlag, NICHT automatisch in user.css übernehmen */
.bvk-historie__jahr{border-bottom:1px solid #d6ddea;padding:1rem 0 1.1rem}
.bvk-historie__jahr h3{display:flex;gap:1rem;align-items:baseline;margin:0 0 .3rem;font-size:1.18rem;line-height:1.45;color:#1d3667}
.bvk-historie__jahrzahl{flex:0 0 4rem;font-size:1.15rem;font-weight:750;color:#2e52a0}
.bvk-historie__gewinner{font-weight:680}
.bvk-historie__ehrungen-titel{font-size:.94rem;color:#4b5974;font-weight:650;margin:.45rem 0 .2rem 5rem}
.bvk-historie__ehrungen{margin:0 0 .2rem 5rem;padding-left:1.25rem}
.bvk-historie__ehrungen li{margin:.28rem 0}
.bvk-historie__mitglieder{font-size:.91rem;line-height:1.5;margin:.28rem 0 .45rem 0;color:#445570}
.bvk-historie__jahr> .bvk-historie__mitglieder{margin-left:5rem}
.bvk-historie__mitglieder-label{font-weight:650}
.bvk-historie__tabellenrahmen{overflow-x:auto;margin:1rem 0 2rem}
.bvk-historie__tabelle,.bvk-tennis-historie__tabelle{border-collapse:collapse;width:100%;font-size:.96rem;text-align:left}
.bvk-historie__tabelle th,.bvk-historie__tabelle td,.bvk-tennis-historie__tabelle th,.bvk-tennis-historie__tabelle td{padding:.65rem .8rem;border-bottom:1px solid #dce2eb;text-align:left !important;vertical-align:top}
.bvk-historie__tabelle thead th,.bvk-tennis-historie__tabelle thead th{background:#e9eff8;color:#243e72;font-weight:720}
.bvk-historie__tabelle tbody th,.bvk-tennis-historie__tabelle tbody th{white-space:nowrap;font-weight:650}
.bvk-tennis-historie__aktionen{display:flex;justify-content:flex-start;align-items:center;margin:1rem 0 1.4rem}
.bvk-tennis-historie__toggle-all{appearance:none;cursor:pointer;background:#e9eff8;color:#234884;border:1px solid #9cb3dc;border-radius:6px;padding:.62rem .9rem;font:inherit;font-weight:650;line-height:1.3}
.bvk-tennis-historie__toggle-all:hover{background:#dce8fa}
.bvk-tennis-historie__toggle-all:focus-visible{outline:3px solid #234884;outline-offset:3px}
.bvk-tennis-historie__wettbewerb{border-bottom:1px solid #d6ddea;padding:.75rem 0}
.bvk-tennis-historie__wettbewerb summary{cursor:pointer;font-size:1.12rem;font-weight:680;color:#234884}
.bvk-tennis-historie__anzahl{font-size:.85rem;color:#66758d;font-weight:400}
.bvk-tennis-historie__quelle-hinweis{font-size:.9rem;color:#475569}
@media(max-width:599px){.bvk-historie__jahr h3{gap:.65rem;align-items:flex-start}.bvk-historie__jahrzahl{flex-basis:3rem}.bvk-historie__ehrungen-titel,.bvk-historie__ehrungen,.bvk-historie__jahr>.bvk-historie__mitglieder{margin-left:0}.bvk-historie__tabellenrahmen{margin-bottom:1.25rem}}
/* BVK-HISTORIE-113 END */

/* BVK-HISTORIE-114C BEGIN */

/* Abstand vor Dorfpokal, ohne Jahresabstaende zu veraendern. */
.bvk-historie-sportler + .bvk-historie-dorfpokal {
  margin-top: 2.6rem;
}

/* Ankerposition unter der verkleinerten Sticky-Navigation. */
#bvk-historie-sportler-titel,
#bvk-dorfpokal-heading,
#bvk-thekenteam-heading {
  scroll-margin-top: 4rem;
}

/* Tennis: Erfolge der Damenmannschaften unterordnen. */
.bvk-tennis-chronik > h3 {
  margin: 1.5rem 0 .5rem;
  font-size: 1.2rem;
  font-weight: 650;
  line-height: 1.35;
}

@media (max-width: 991px) {
  #bvk-historie-sportler-titel,
  #bvk-dorfpokal-heading,
  #bvk-thekenteam-heading {
    scroll-margin-top: 4.75rem;
  }
}

/* BVK-HISTORIE-114C END */

/* BVK-NAV-117B BEGIN */

/* Historie: Desktop-Navigation unter kompaktem Header. */
@media (min-width: 1280px) {
  .container-component nav.bvk-historie__inhaltsverzeichnis {
    position: sticky !important;
    top: 4.25rem;
    z-index: 30;
    background: #fff;
    padding: .5rem .75rem;
    border-bottom: 1px solid #d6ddea;
    box-shadow: 0 3px 8px rgb(0 0 0 / 6%);
  }

  #bvk-historie-sportler-titel,
  #bvk-dorfpokal-heading,
  #bvk-thekenteam-heading {
    scroll-margin-top: 8rem;
  }

  /* BVK-HISTORIE-132B: Erster Sprung bei grossem Header. */
  body:not(:has(.container-header.bvk-header-compact))
  .container-component :is(
    #bvk-historie-sportler-titel,
    #bvk-dorfpokal-heading,
    #bvk-thekenteam-heading
  ) {
    scroll-margin-top: 11.5rem;
  }
}

/* Vorstand: Abstand fuer mobilen bzw. Tablet-Header. */
@media (max-width: 1279.98px) {
  .container-component nav.bvk-section-nav {
    top: 4.75rem;
  }

  .bvk-contact-section {
    scroll-margin-top: 11rem;
  }
}

/* Tennis: seitliches Untermenue ohne Verschiebung. */
@media (min-width: 1280px)
       and (hover: hover)
       and (pointer: fine) {

  .container-header .metismenu.mod-menu
  li.item-102 > ul.mm-collapse {
    overflow: visible !important;
  }

  .container-header .metismenu.mod-menu
  li.metismenu-item.level-2.deeper.parent {
    position: relative;
  }

  .container-header .metismenu.mod-menu
  li.metismenu-item.level-2.deeper.parent > ul.mm-collapse {
    position: absolute !important;
    top: 0 !important;
    left: calc(100% - 2px) !important;
    width: max-content;
    min-width: 13.5rem;
    max-width: 19rem;
    margin: 0;
    z-index: 1000;
    background: #fff;
    box-shadow: 0 4px 14px rgb(0 0 0 / 12%);
  }

  .container-header .metismenu.mod-menu
  li.metismenu-item.level-2.deeper.parent:hover > ul.mm-collapse,
  .container-header .metismenu.mod-menu
  li.metismenu-item.level-2.deeper.parent:focus-within > ul.mm-collapse {
    display: block !important;
    height: auto !important;
  }
}

/* Handy: mehrspaltige Turniertabellen seitlich scrollbar. */
@media (max-width: 599px) {
  #tennis-historie-652 .bvk-historie__tabellenrahmen,
  #tennis-historie-653 .bvk-historie__tabellenrahmen,
  #tennis-historie-654 .bvk-historie__tabellenrahmen,
  #tennis-historie-655 .bvk-historie__tabellenrahmen {
    overflow-x: auto;
    max-width: 100%;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  #tennis-historie-652 table,
  #tennis-historie-653 table {
    min-width: 800px;
  }

  #tennis-historie-654 table,
  #tennis-historie-655 table {
    min-width: 640px;
  }
}

/* BVK-NAV-117B END */

/* BVK-MOBILE-NAV-118D BEGIN */
/* Smartphone: Bereichsnavigation auf Vorstandsseite scrollt normal mit. */
@media (max-width: 767.98px) {
  .container-component nav.bvk-section-nav {
    position: static !important;
    top: auto !important;
  }
  .container-component .bvk-contact-section {
    scroll-margin-top: 1.5rem !important;
  }
}
/* BVK-MOBILE-NAV-118D END */

/* BVK-MOBILE-FLOAT-119B BEGIN */
@media (max-width: 767.98px) {
  body.bvk-119-floating .container-header .container-nav .navbar-toggler,
  body.bvk-119-floating .container-header .bvk-mobile-search-trigger {
    position: fixed !important;
    top: max(8px, env(safe-area-inset-top)) !important;
    left: auto !important;
    width: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    background: #2e52a0 !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    border-radius: 8px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,.2) !important;
    z-index: 10000 !important;
  }

  body.bvk-119-floating .container-header .container-nav .navbar-toggler {
    right: max(8px, env(safe-area-inset-right)) !important;
  }

  body.bvk-119-floating .container-header .bvk-mobile-search-trigger {
    right: calc(62px + env(safe-area-inset-right)) !important;
  }

  body.bvk-119-floating .container-header .navbar-collapse {
    position: fixed !important;
    top: calc(60px + env(safe-area-inset-top)) !important;
    right: max(8px, env(safe-area-inset-right)) !important;
    left: auto !important;
    width: min(350px, calc(100vw - 16px)) !important;
    max-height: calc(100dvh - 70px - env(safe-area-inset-top)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    box-sizing: border-box !important;
    padding: 12px !important;
    background: #2e52a0 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.25) !important;
    z-index: 9999 !important;
  }
}
/* BVK-MOBILE-FLOAT-119B END */

/* BVK-PAGINATION-120B BEGIN */
/* Kleine Bildschirme: Seitenzahlen umbrechen, keine horizontale Gesamtseitenbreite. */
@media (max-width: 599px) {
  .container-component .pagination {
    flex-wrap: wrap !important;
    justify-content: center !important;
    max-width: 100% !important;
  }
  .container-component ul.pagination > li {
    flex: 0 0 auto;
  }
}
/* BVK-PAGINATION-120B END */

/* BVK-HISTORIE-MENUE-121B BEGIN */
@media (min-width: 1280px) {
  body:has(.container-component nav.bvk-historie__inhaltsverzeichnis)
  .container-header {
    z-index: 100 !important;
  }

  .container-component nav.bvk-historie__inhaltsverzeichnis {
    z-index: 10 !important;
  }
}
/* BVK-HISTORIE-MENUE-121B END */

/* BVK-RESPONSIVE-125 BEGIN */

/* Hauptmenue ueber den Sticky-Kontaktchips auf Desktop. */
@media (min-width: 1280px) {
  body:has(.container-component nav.bvk-section-nav)
  .container-header {
    z-index: 100 !important;
  }

  .container-component nav.bvk-section-nav {
    z-index: 10 !important;
  }
}

/* Nur identifizierte Wappen und Pressevorschaubilder
   innerhalb von Joomla-Beitragsmodulen. */
@media (max-width: 599px) {
  .container-component .mod-articles-item img:is(
    [src*="bvk_logo_2021_klein.jpg"],
    [src*="bvk-logo-2021-klein.jpg"],
    [src*="Wappen-Tennis-klein.jpg"]
  ) {
    width: auto !important;
    max-width: min(100%, 140px) !important;
    height: auto !important;
    object-fit: contain !important;
  }

  .container-component .mod-articles-item img:is(
    [src*="_mt_vorschau"],
    [src*="_mt.jpg"],
    [src*="-mt-vorschau"]
  ) {
    width: auto !important;
    max-width: min(100%, 220px) !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

/* BVK-RESPONSIVE-125 END */


/* BVK_CARD_COLORS_172A_BEGIN */
/* Vereinsfarben dezent: nur die Landingpages Tennis und Tanzen. */
.bvk-tennis-landing .card,
.bvk-tanzen .card {
  background-color: #ffffff;
  border: 1px solid #cdd7eb !important;
  border-radius: .9rem !important;
  box-shadow: 0 3px 12px rgba(46, 82, 160, .08) !important;
  overflow: hidden;
}

/* Blauer Tennis-Akzent bleibt erhalten. */
.bvk-tennis-landing .card.border-top {
  border-top: 3px solid #2e52a0 !important;
}

.bvk-tennis-landing .card .card-body {
  background-color: #f3f6fc;
}

.bvk-tanzen .card .ratio {
  background-color: #eef3fc !important;
}

.bvk-tanzen .card .card-body {
  background-color: #f8faff;
}

.bvk-tennis-landing .card .card-title,
.bvk-tanzen .card .card-title {
  color: #244782;
}

.bvk-tennis-landing > .bg-light,
.bvk-tanzen > section.bg-light {
  background-color: #f0f4fc !important;
  border: 1px solid #d5e0f1;
}
/* BVK_CARD_COLORS_172A_END */

/* BVK_DESIGN_174A_BEGIN */
/* Tennis: Kontaktfeld bewusst vom Kartenhintergrund absetzen. */
.bvk-tennis-landing #bvk-tennis-training ~ .bg-light {
  background-color: #eaf1fb !important;
  border-left: 3px solid #2e52a0;
  border-radius: .6rem !important;
}
.bvk-tennis-landing #bvk-tennis-training ~ .bg-light .text-body-secondary {
  color: #405574 !important;
}
.bvk-tennis-landing #bvk-tennis-training ~ .bg-light .fw-bold {
  color: #244782;
}

/* Tennis: Sponsorenlink und Saisonquiz bleiben ruhigere Zusatzbereiche. */
.bvk-tennis-landing > section:has(> #bvk-tennis-sponsoren-link),
.bvk-tennis-landing > section:has(> #bvk-tennis-saisonquiz) {
  background: #f8faff;
  border: 1px solid #cdd7eb !important;
  border-radius: .9rem !important;
  box-shadow: 0 2px 8px rgba(46, 82, 160, .05);
}
.bvk-tennis-landing #bvk-tennis-sponsoren-link,
.bvk-tennis-landing #bvk-tennis-saisonquiz {
  color: #244782;
}

/* Tanzen: unter jedem Foto ein ruhiger Vereinsblau-Akzent. */
.bvk-tanzen .card > .card-body {
  border-top: 2px solid #8ca9d9;
}
.bvk-tanzen > section.bvk-tanzen-info {
  background: #f8faff;
  border-color: #cdd7eb !important;
  border-radius: .9rem !important;
}
.bvk-tanzen > section.bvk-tanzen-info > h2 {
  color: #244782;
}

/* Sponsoren: Bildmotive nicht überformen, nur Ecken behutsam abrunden. */
.bvk-tennis-sponsoren img {
  border-radius: .45rem;
}

/* Tennisgeschichte: sanfter Farbeinstieg, Chronik und Tabellen bleiben ruhig. */
.bvk-tennis-chronik {
  background: linear-gradient(180deg, #f0f4fc 0, #f8faff 8rem, rgba(255,255,255,0) 20rem);
  border-top: 3px solid #2e52a0;
  border-radius: .85rem .85rem 0 0;
  padding: 1.15rem 1.1rem 0;
}
.bvk-tennis-chronik #bvk-tennis-chronik-titel,
.bvk-tennis-historie #bvk-tennis-erfolge-titel {
  color: #244782;
}
.bvk-tennis-historie #bvk-tennis-erfolge-titel {
  border-bottom: 1px solid #cdd7eb;
  padding-bottom: .65rem;
}
/* BVK_DESIGN_174A_END */


/* BVK_VEREIN_DESIGN_184B_BEGIN */
/* Vorstand: vorhandene Kontaktstruktur nur farblich aufwerten. */
.bvk-contact-intro {
  background: #f0f4fc;
  border: 1px solid #d5e0f1;
  border-radius: .85rem;
  padding: 1.1rem 1.25rem;
}
.bvk-contact-section > h2 {
  color: #244782;
  border-bottom: 2px solid #d5e0f1;
  padding-bottom: .55rem;
}
.bvk-contact-section .bvk-person-card {
  background: #f8faff;
  border: 1px solid #cdd7eb;
  border-top: 2px solid #8ca9d9;
  border-radius: .8rem;
  box-shadow: 0 2px 9px rgba(46, 82, 160, .06);
}
.bvk-contact-section .bvk-person-name { color: #244782; }
.bvk-contact-section .bvk-person-role { color: #405574; }
.bvk-contact-section-compact .bvk-compact-list > div {
  background: #f8faff;
  border: 1px solid #d5e0f1;
  border-radius: .65rem;
  padding: .65rem .9rem;
}
/* Sportstätten: drei gleichwertige Standorte mit ruhigen BVK-Karten. */
.bvk-verein-staetten__intro {
  background: #f0f4fc;
  border: 1px solid #d5e0f1;
  border-radius: .85rem;
  padding: 1.1rem 1.25rem;
}
.bvk-verein-staetten .bvk-verein-staetten__card {
  background: #f8faff;
  border: 1px solid #cdd7eb;
  border-top: 3px solid #2e52a0;
  border-radius: .9rem;
  box-shadow: 0 3px 12px rgba(46, 82, 160, .07);
}
.bvk-verein-staetten .bvk-verein-staetten__card .card-title {
  color: #244782;
}
.bvk-verein-staetten .bvk-verein-staetten__card address {
  color: #34445e;
  font-style: normal;
}
/* Historie: Kapitelakzente; Chronik, Tabellen und Sprungziele bleiben intakt. */
.bvk-historie__inhaltsverzeichnis {
  background-color: #f8faff;
  border: 1px solid #d5e0f1;
  border-radius: .75rem;
}
.bvk-historie-sportler > h2,
.bvk-historie-dorfpokal > h2,
.bvk-historie-thekenteam > h2,
.bvk-historie-thekenteam + section > h2 {
  background: #f0f4fc;
  border-left: 4px solid #2e52a0;
  border-radius: .5rem;
  color: #244782;
  padding: .75rem 1rem;
}
/* BVK_VEREIN_DESIGN_184B_END */
