/* =============================================================================
   BEREICHS-NAVIGATION — SG BBM Bietigheim
   Eine Marke, zwei Bereiche (Sitemap-Konzept sgbbm-sitemap-navigation.html):
     Bundesliga        -> /bundesliga/   Ton: Emotion, Inszenierung, Verkauf. Blau, viel Foto.
     Verein & Jugend   -> /  (Wurzel)    Ton: Information, Service. Heller Grund, Rot als Akzent.
   Die dunkle Bereichsleiste steht auf jeder Seite ueber der Hauptnavigation.
   Wird NACH css/trikotkante.css geladen.
   ============================================================================= */

/* --- Bereichsleiste ------------------------------------------------------- */
/* Die Menueleiste ist fixiert (trikotkante.css). Die Bereichsleiste sitzt fest darueber,
   die Menueleiste rueckt um ihre Hoehe nach unten, der Seiteninhalt ebenso. */
:root { --areabar-h: 0px; }   /* Bereichsleiste abgeschafft: Wechsel ueber .nav-switch neben HOME */
/* Blau-Polish wie Karten, Buttons und Sections (165deg, Lichtkante oben) */
.areabar { background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%); color: #fff; font-family: var(--font-display); font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 6px 18px rgba(4,8,40,.35);
  text-transform: uppercase; letter-spacing: .08em; font-size: .86rem; position: fixed; top: 0; left: 0; right: 0; z-index: 61; height: var(--areabar-h); }
body { padding-top: var(--areabar-h); }
.site-header { top: var(--areabar-h) !important; }
/* Kader-Buehne (Scroll-Deck) klebt unter Bereichs- und Menueleiste */
.ps-stage { top: calc(var(--header-h, 77px) + var(--areabar-h)) !important; height: calc(100dvh - var(--header-h, 77px) - var(--areabar-h)) !important; }
/* Handy: Buehne nicht angeheftet, aber mit fester Hoehe - Karten und Figuren sind absolut positioniert,
   bei height:auto faellt sie sonst auf ~220 px zusammen und der Spieler wird abgeschnitten */
@media (max-width: 900px) { .ps-stage { position: relative !important; top: auto !important;
  height: clamp(690px, calc(100svh - var(--header-h, 77px) + 60px), 870px) !important; } }
.areabar .inner { max-width: none; padding-inline: clamp(1.25rem, 3vw, 2.5rem); display: flex; align-items: stretch; gap: 0; height: var(--areabar-h); }
.areabar .tabs { display: flex; align-items: stretch; }
.areabar .tabs a { display: flex; align-items: center; padding: 0 1rem; color: rgba(255,255,255,.7); text-decoration: none;
  border-bottom: 4px solid transparent; transition: color .2s; }
.areabar .tabs a:hover { color: #fff; }
.areabar .tabs a[aria-current="true"] { color: #fff; border-bottom-color: #f82818; }
.areabar .util { margin-left: auto; display: flex; align-items: center; gap: 1.1rem; font-weight: 600; letter-spacing: .06em; font-size: .78rem; }
.areabar .util a { color: rgba(255,255,255,.85); text-decoration: none; }
.areabar .util a:hover { color: #fff; }
@media (max-width: 720px) {
  .areabar .tabs a { padding: 0 .75rem; font-size: .8rem; }
  .areabar .util a:not(:first-child) { display: none; }   /* mobil: nur der erste Zusatzlink */
}

/* --- Hauptnavigation: der CTA (Tickets bzw. Probetraining) im Blau-Polish der Seite --- */
.main-nav .button-primary.nav-cta { background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 14px 30px rgba(4,8,40,.38) !important; }
.main-nav .button-primary.nav-cta:hover { background: linear-gradient(165deg,#1a2fe0 0%,#0a1cd6 55%,#0616a8 100%) !important; }
.brand .brand-text small { letter-spacing: .12em; }

/* --- Gemeinsame Bausteine der Bundesliga-Seiten --------------------------- */
:root { --bl-polish: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%);
        --bl-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 34px rgba(4,8,40,.42);
        --bl-naht: repeating-linear-gradient(90deg,#0016a8 0 2px,#0818d8 2px 4px,#0016a8 4px 6px,#cc1d0a 6px 8px,#f82818 8px 10px,#cc1d0a 10px 12px); }

/* Naechstes Heimspiel: Begegnung + Termin + Ticket-Button */
.bl-next { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(1rem,3vw,2.5rem);
  padding: clamp(1.5rem,4vw,2.75rem) clamp(1.25rem,4vw,3rem); position: relative; overflow: hidden; isolation: isolate;
  background: var(--bl-polish); box-shadow: var(--bl-shadow); }
.bl-next::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; background: var(--bl-naht); z-index: 1;
  -webkit-mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); }
.bl-next .team { display: flex; align-items: center; gap: 1rem; }
.bl-next .team.away { flex-direction: row-reverse; text-align: right; }
.bl-next .team img { height: clamp(64px,8vw,110px); width: auto; filter: drop-shadow(0 6px 16px rgba(4,8,40,.6)); }
.bl-next .team .nm { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; line-height: .95; font-size: clamp(1.3rem,2.6vw,2.2rem); color: #fff; }
.bl-next .team .nm small { display: block; font-weight: 700; font-size: .72rem; letter-spacing: .2em; color: #ffb3b3; margin-top: .3rem; }
.bl-next .vs { font-family: var(--font-hero); font-size: clamp(2.2rem,5vw,4rem); color: #ff2b2b; line-height: 1; text-align: center; }
.bl-next .when { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .6rem 1.6rem;
  margin-top: .5rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.16);
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .95rem; color: #fff; }
.bl-next .when .date { color: #ffb3b3; }
.bl-next .when .venue { color: rgba(255,255,255,.72); font-size: .8rem; }
.bl-next .when .button { margin-left: auto; }
@media (max-width: 720px) {
  .bl-next { grid-template-columns: 1fr; text-align: center; }
  .bl-next .team, .bl-next .team.away { flex-direction: column; text-align: center; }
  .bl-next .when .button { margin: .5rem auto 0; }
}

/* Info-Kacheln (Tickets, Presse, Fans, Partner werden) */
.bl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(1rem,2vw,1.5rem); }
.bl-card { position: relative; overflow: hidden; isolation: isolate; padding: 1.6rem 1.5rem 1.6rem 1.9rem;
  background: var(--bl-polish); box-shadow: var(--bl-shadow); display: flex; flex-direction: column; gap: .6rem;
  transition: transform .3s ease, box-shadow .3s ease; }
.bl-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; background: var(--bl-naht);
  -webkit-mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); }
.bl-card:hover { transform: translateY(-4px); box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 24px 52px rgba(4,8,40,.5); }
.bl-card h3 { font-size: 1.25rem; margin: 0; }
.bl-card .kicker { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; color: #ffb3b3; }
.bl-card p { margin: 0; color: var(--fg-dim); font-size: .95rem; }
.bl-card .price { font-family: var(--font-display); font-weight: 900; font-size: 1.6rem; color: #fff; }
.bl-card .button, .bl-card .text-link { margin-top: auto; align-self: flex-start; }
.bl-card ul { margin: 0; padding-left: 1.1rem; color: var(--fg-dim); font-size: .95rem; }

/* Kader-Teaser auf der Bundesliga-Startseite */
.bl-kader { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
@media (max-width: 1100px) { .bl-kader { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .bl-kader { grid-template-columns: repeat(3, 1fr); gap: .6rem; } .bl-kader span { font-size: .7rem; padding: .4rem .5rem; } }
.bl-kader-item { display: flex; flex-direction: column; }
.bl-kader a { position: relative; display: block; overflow: hidden; background: var(--bl-polish); box-shadow: var(--bl-shadow); aspect-ratio: 250 / 257; text-decoration: none; }
/* Spielerpate unter jedem Spieler: weisse Plakette mit rotem Balken wie die Sponsoren-Kacheln */
.bl-kader .pate { display: flex; align-items: center; justify-content: center; height: 58px; margin-top: 6px; padding: 6px 10px; background: #fff; border-top: 4px solid #f82818; box-shadow: 0 10px 24px rgba(4,8,40,.35); }
.bl-kader .pate img { max-height: 40px; max-width: 100%; width: auto; height: auto; }
.bl-kader .pate-empty { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; color: #0616a8; }
.bl-kader img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.bl-kader a:hover img { transform: scale(1.05); }
.bl-kader a > span { position: absolute; left: 0; right: 0; bottom: 0; padding: .55rem .7rem; background: linear-gradient(to top, rgba(4,8,40,.9), transparent);
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; color: #fff; }
.bl-kader a > span b { color: #ff9a9a; margin-right: .35em; }

/* Querverweis-Teaser (Bundesliga <-> Verein), nur als Teaser, nie doppelter Inhalt */
.x-teaser { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem,4vw,3rem); align-items: center; }
.x-teaser img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; box-shadow: var(--bl-shadow); }
.x-teaser .prose p { color: var(--fg-dim); }
.x-teaser .cta-right { text-align: right; margin-top: 1.4rem; }
@media (max-width: 820px) { .x-teaser { grid-template-columns: 1fr; } }

/* News-Filter (Vorbericht / Nachbericht / Transfers / Club) */
.news-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: -.5rem 0 1.5rem; }
.news-filter button { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem;
  padding: .45rem .9rem; border: 1px solid rgba(255,255,255,.28); background: rgba(0,0,40,.25); color: #fff; cursor: pointer; transition: background .2s; }
.news-filter button:hover { background: rgba(0,0,40,.45); }
.news-filter button[aria-pressed="true"] { background: #d90000; border-color: #d90000; }
.news-grid .news-card[hidden] { display: none; }

/* Kontakt: zwei Geschaeftsstellen nebeneinander */
.office-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem,2vw,1.5rem); margin-bottom: 2rem; }
.office-grid .bl-card address { font-style: normal; line-height: 1.6; color: var(--fg-dim); }
@media (max-width: 720px) { .office-grid { grid-template-columns: 1fr; } }

/* Presse: Download-Liste */
.dl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.dl-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.dl-list small { color: var(--fg-faint); }

/* Footer: zwei Spalten nach Bereichen */
.site-footer .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
@media (max-width: 900px) { .site-footer .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer .footer-grid { grid-template-columns: 1fr; } }

/* --- Icon-Textlink als Off-White-Button (Klasse statt href-Bindung aus trikotkante.css) --- */
.dsn-card .text-link.text-link-btn{
  display:inline-flex; align-items:center; gap:.55rem; position:relative; overflow:hidden; isolation:isolate;
  padding:.75rem 1.5rem .75rem 1.9rem; color:#0616a8 !important; text-decoration:none;
  font-family:'SG Display',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  background:linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(4,8,40,.10), 0 14px 30px rgba(4,8,40,.38);
  transition:transform .2s, box-shadow .2s; }
.dsn-card .text-link.text-link-btn::after{ content:none; }
.dsn-card .text-link.text-link-btn::before{ content:""; position:absolute; z-index:-1; top:0; bottom:0; left:0; width:12px;
  background:repeating-linear-gradient(90deg,#0016a8 0 2px,#0818d8 2px 4px,#0016a8 4px 6px,#cc1d0a 6px 8px,#f82818 8px 10px,#cc1d0a 10px 12px); }
.dsn-card .text-link.text-link-btn img{ height:24px; width:auto; flex:none; }
.dsn-card .text-link.text-link-btn:hover{ color:#0616a8 !important; transform:translateY(-2px);
  background:linear-gradient(270deg,#DEE4EE 0%,#ECF0F6 30%,#F8FAFC 62%,#FFFFFF 100%);
  box-shadow:inset 0 1px 0 #fff, inset 0 -1px 0 rgba(4,8,40,.10), 0 20px 40px rgba(4,8,40,.45); }

/* --- SG-Logo auf allen Buttons: .button-blue traegt die Naht auf ::before, das Logo kommt als ::after vor den Text --- */
.button-blue { gap: .55rem; flex-direction: row-reverse; }
.button-blue::after { content: ""; flex: none; width: 22px; height: 22px; background: url('../img/SG_Logo_Splitter.svg') no-repeat center / contain; }

/* Buttons innerhalb von Fliesstext ohne Unterstreichung */
.prose .button, .x-teaser .button { text-decoration: none !important; }

/* --- Top-News auf der Bundesliga-Startseite: 3 x 3, gleich grosse Karten, alle sichtbar --- */
.news-grid.bl-home-news .news-card, .news-grid.bl-home-news .news-card:first-child, .news-grid.bl-home-news .news-card:nth-child(6) { grid-column: span 1; }
.news-grid.bl-home-news .news-card:nth-child(n+7) { display: none; }   /* Startseite: max. 6 Top-News */
.news-grid.bl-home-news { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 900px) { .news-grid.bl-home-news { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .news-grid.bl-home-news { grid-template-columns: 1fr; } }
.news-grid.bl-home-news .news-card { min-height: 300px; }
.news-grid.bl-home-news .news-card h3 { font-size: 1.15rem; }
@media (max-width: 640px) { .news-grid.bl-home-news .news-card { min-height: 240px; } }

/* --- Bundesliga-News-Liste: alle Meldungen chronologisch (neueste zuerst), 3 Spalten, keine Featured-Spans, nichts ausgeblendet --- */
#blNews { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
#blNews .news-card, #blNews .news-card:first-child, #blNews .news-card:nth-child(6) { grid-column: span 1; min-height: 300px; }
#blNews .news-card:nth-child(n+7) { display: block; }
#blNews .news-card[hidden] { display: none; }
#blNews .news-card h3 { font-size: 1.15rem; }
@media (max-width: 900px) { #blNews { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { #blNews { grid-template-columns: 1fr; } #blNews .news-card { min-height: 240px; } }

/* --- News-Artikel: Abstand zwischen Menueleiste und Ueberschrift --- */
.bl-article .container { padding-top: clamp(2.5rem, 6vw, 4.5rem); }
.bl-article .container { padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.bl-article .back-all { margin-top: 2rem; text-align: right; }

/* --- Startseite Bundesliga: Dreier-Kombi Letztes Spiel · Naechstes Spiel · Fanshop --- */
.bl-trio { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: clamp(1rem,2vw,1.5rem); align-items: stretch; }
.bl-trio > * { position: relative; overflow: hidden; isolation: isolate; background: var(--bl-polish); box-shadow: var(--bl-shadow); display: flex; flex-direction: column; text-decoration: none; color: #fff;
  transition: transform .3s ease, box-shadow .3s ease; }
.bl-trio > *::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; z-index: 2; background: var(--bl-naht);
  -webkit-mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); mask-image: linear-gradient(25deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%); }
.bl-trio > a:hover { transform: translateY(-4px); box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 24px 52px rgba(4,8,40,.5); }
.bl-trio .kicker { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; color: #ffb3b3; }
.bl-trio h3 { font-size: 1.35rem; margin: .2rem 0 0; }
.bl-trio .body { padding: 1.4rem 1.4rem 1.4rem 1.8rem; display: flex; flex-direction: column; gap: .8rem; flex: 1; }
/* Letztes Spiel */
.bl-last .score { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .8rem; margin: .4rem 0; }
.bl-last .score img { height: 56px; width: auto; justify-self: center; filter: drop-shadow(0 6px 14px rgba(4,8,40,.6)); }
.bl-last .score .res { font-family: var(--font-hero); font-size: clamp(2.4rem,4vw,3.4rem); line-height: 1; color: #fff; }
.bl-last .score .res.lose { color: #ffb3b3; } .bl-last .score .res.win { color: #7dffa0; }
.bl-last .teams { display: flex; justify-content: space-between; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; color: rgba(255,255,255,.85); }
.bl-last .stats { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .9rem; }
.bl-last .stats li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.bl-last .stats b { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: rgba(255,255,255,.72); }
.bl-last .more { margin-top: auto; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; color: #ff9a9a; }
/* Naechstes Spiel: Spieltagskarte */
.bl-nextcard img.card { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; display: block; }
.bl-nextcard .body { padding-top: 1rem; }
.bl-nextcard .when { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .85rem; }
.bl-nextcard .when small { display: block; color: rgba(255,255,255,.7); letter-spacing: .16em; font-size: .7rem; margin-top: .2rem; }
.bl-nextcard .button { margin-top: auto; align-self: flex-start; }
/* Fanshop */
.bl-shop .grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.bl-shop .prod { display: block; background: #fff; border-top: 4px solid #f82818; box-shadow: 0 10px 24px rgba(4,8,40,.35); text-decoration: none; color: #0616a8; }
.bl-shop .prod img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.bl-shop .prod span { display: flex; justify-content: space-between; gap: .4rem; padding: .45rem .6rem; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .72rem; line-height: 1.2; }
.bl-shop .prod span em { font-style: normal; color: #d90000; white-space: nowrap; }
.bl-shop .button { margin-top: auto; align-self: flex-start; }
@media (max-width: 1000px) { .bl-trio { grid-template-columns: 1fr 1fr; } .bl-shop { grid-column: 1 / -1; } .bl-shop .grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .bl-trio { grid-template-columns: 1fr; } .bl-shop .grid { grid-template-columns: 1fr 1fr; } }

/* Dreier-Kombi ohne Trikotnaht links */
.bl-trio > *::before { content: none; }
.bl-trio .body { padding-left: 1.4rem; }

/* Letztes Spiel: Spieltagskarte oben, darunter Ergebnis + klickbare Statistik */
.bl-last img.card { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; display: block; }
.bl-last .body { padding-top: 1rem; }
.bl-last .scoreline { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; }
.bl-last .scoreline .res { font-family: var(--font-hero); font-size: 2.2rem; line-height: 1; }
.bl-last .scoreline .teams { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; color: rgba(255,255,255,.85); }
.bl-last .stats-link { display: block; text-decoration: none; color: inherit; padding: .6rem .7rem; margin: 0 -.7rem; transition: background .2s; }
.bl-last .stats-link:hover { background: rgba(255,255,255,.07); }
.bl-last .stats-link .more { display: block; margin-top: .6rem; }
.bl-last .button { margin-top: auto; align-self: flex-start; }

/* --- Statistikseite --- */
.stat-details { margin-top: 1.2rem; }
.stat-details summary { cursor: pointer; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .85rem; color: #ffb3b3; padding: .5rem 0; list-style: none; display: flex; align-items: center; gap: .6rem; }
.stat-details summary::before { content: "▸"; color: #f82818; transition: transform .2s; }
.stat-details[open] summary::before { transform: rotate(90deg); }
table.schedule.stat td, table.schedule.stat th { text-align: center; white-space: nowrap; padding: .5rem .55rem; font-size: .88rem; }
table.schedule.stat td:nth-child(2), table.schedule.stat th:nth-child(2) { text-align: left; font-weight: 600; }
.stat-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .5rem 2rem; }
.stat-team li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.stat-team b { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; color: rgba(255,255,255,.75); }
.bl-cards ul { list-style: none; padding: 0; display: grid; gap: .3rem; }
.bl-cards ul b { color: #fff; }
@media (max-width: 720px) { table.schedule.stat { display: block; overflow-x: auto; } }

/* --- Staff-Sektion (aus team.html uebernommen, fuer die Startseite) --- */
/* --- Staff-Sektion: Kopf wie Startseite, Karten im Polish, alles zentriert --- */
.ps-staff, .ps-outro { padding: 0 !important; }
.ps-staff .container { padding: clamp(2.5rem,6vw,4.5rem) 1.25rem; }
.ps-staff h3 { display: flex; align-items: center; gap: .9rem; margin: clamp(1.8rem,4vw,2.6rem) 0 1.1rem;
  font-size: .85rem; letter-spacing: .28em; color: #EFEDE8; }
.ps-staff h3::after { content: ""; flex: 1 1 auto; height: 3px; background: #f82818; }
.ps-staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: clamp(1rem,2vw,1.5rem); }
.ps-staff-card { position: relative; overflow: hidden; isolation: isolate; text-align: center;
  background: var(--bl-polish); box-shadow: var(--bl-shadow); border: 0; border-radius: 0;
  display: flex; flex-direction: column; transition: transform .3s ease, box-shadow .3s ease; }
.ps-staff-card:hover { transform: translateY(-4px); box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 24px 52px rgba(4,8,40,.5); }
.ps-staff-card::before { content: none; }   /* keine Trikotnaht-Akzentlinie links an den Staff-Karten */
.ps-staff-card img.portrait { width: 100%; aspect-ratio: 250 / 257; object-fit: cover; display: block; }
.ps-staff-card .txt { padding: 1rem .9rem 1.1rem; display: flex; flex-direction: column; align-items: center; flex: 1; }
.ps-staff-card b { display: block; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; line-height: 1.05; font-size: 1.15rem; color: #fff; }
.ps-staff-card small { display: block; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
  font-size: .72rem; color: #ff9a9a; margin-top: .35rem; line-height: 1.35; }
.ps-staff-card .pate { margin-top: auto; padding-top: 1rem; width: 100%; }
.ps-staff-card .pate span { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 78px;
  background: #fff; border-top: 4px solid #f82818; border-radius: 0; padding: 12px 16px; box-shadow: 0 10px 24px rgba(4,8,40,.35); min-height: 104px; }
.ps-staff-card .pate img { max-height: 76px; max-width: 100%; width: auto; height: auto; }
@media (max-width: 560px) { .ps-staff-grid { grid-template-columns: 1fr 1fr; gap: .7rem; } .ps-staff-card b { font-size: .95rem; }
  .ps-staff-card .pate span { min-height: 76px; padding: 8px 10px; } .ps-staff-card .pate img { max-height: 54px; } }
.ps-staff .ph-head { margin-bottom: 0; }

/* --- Naechstes Spiel: kurzer Vorbericht unter den Spieldaten --- */
.bl-nextcard .preview { margin: 0; font-size: .92rem; line-height: 1.5; color: rgba(255,255,255,.88); padding-top: .7rem; border-top: 1px solid rgba(255,255,255,.14); }
.bl-nextcard .preview b { display: block; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; font-size: .68rem; color: #ffb3b3; margin-bottom: .3rem; }
.bl-nextcard .preview a { color: #fff; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .74rem; text-decoration: none; white-space: nowrap; }
.bl-nextcard .preview a:hover { color: #ff9a9a; }

/* --- Fanshop-Karte: Hero-Produkt (quadratisch wie die Spieltagskarten) + Produktleiste --- */
.bl-shop .shop-hero { position: relative; display: block; aspect-ratio: 1; overflow: hidden; text-decoration: none; color: #fff; background: #04127e; isolation: isolate; }
.bl-shop .shop-hero img { position: relative; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; transition: transform .6s ease; }
.bl-shop .shop-hero:hover img { transform: scale(1.04); }
.bl-shop .shop-hero::before { content: attr(data-ghost); position: absolute; left: -.04em; bottom: -.18em; z-index: 1; font-family: var(--font-hero); font-size: 7.2rem; line-height: 1; letter-spacing: -.02em; text-transform: uppercase; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.35); pointer-events: none; }
.bl-shop .shop-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(4,8,40,0) 45%, rgba(4,8,40,.85) 100%); }
.bl-shop .shop-hero .tag { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: #f82818; color: #fff; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .66rem; padding: .35rem .6rem; box-shadow: 0 6px 16px rgba(4,8,40,.45); }
.bl-shop .shop-hero .hero-txt { position: absolute; left: 1.2rem; right: 1.2rem; bottom: 1.1rem; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.bl-shop .shop-hero .hero-txt b { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; line-height: 1.1; text-shadow: 0 2px 10px rgba(4,8,40,.7); }
.bl-shop .shop-hero .hero-txt em { font-style: normal; font-family: var(--font-hero); font-size: 2rem; line-height: 1; color: #fff; background: rgba(255,255,255,.14); backdrop-filter: blur(4px); padding: .3rem .55rem; border-left: 4px solid #f82818; white-space: nowrap; }
.bl-shop .body { padding-top: 1rem; }
.bl-shop .grid { grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.bl-shop .prod { border-top: 3px solid #f82818; transition: transform .25s ease, box-shadow .25s ease; }
.bl-shop .prod:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(4,8,40,.5); }
.bl-shop .prod span { flex-direction: column; gap: .15rem; padding: .4rem .5rem; font-size: .64rem; color: #0616a8; }
.bl-shop .prod span em { font-size: .74rem; }
@media (max-width: 1000px) { .bl-shop .grid { grid-template-columns: repeat(3, 1fr); } .bl-shop .shop-hero { aspect-ratio: 16 / 9; } }
@media (max-width: 640px) { .bl-shop .grid { grid-template-columns: repeat(3, 1fr); } .bl-shop .shop-hero { aspect-ratio: 1; } }

/* --- Vereinslogos in den Bundesliga-Spielplaenen: freigestellt, ohne weisse Flaeche, groesser --- */
.bl-schedule .club-ic { width: 38px; height: 38px; }
.bl-schedule .club-ic .club-logo { background: none; padding: 0; filter: drop-shadow(0 2px 6px rgba(4,8,40,.45)); }
.bl-schedule .club { gap: .6em; }
.bl-shop .shop-banner { display: block; overflow: hidden; box-shadow: 0 10px 24px rgba(4,8,40,.35); border-top: 3px solid #f82818; }
.bl-shop .shop-banner img { width: 100%; height: auto; aspect-ratio: 1920 / 720; object-fit: cover; display: block; transition: transform .5s ease; }
.bl-shop .shop-banner:hover img { transform: scale(1.03); }

/* --- Spielplan: Ergebnis klickbar zur Spielstatistik --- */
.bl-schedule .res-link { display: inline-flex; flex-direction: column; align-items: center; gap: .1rem; font-family: var(--font-hero); font-size: 1.25rem; line-height: 1; color: #fff; text-decoration: none; padding: .3rem .6rem; border-left: 3px solid rgba(255,255,255,.35); transition: background .2s; }
.bl-schedule .res-link.win { border-color: #7dffa0; } .bl-schedule .res-link.lose { border-color: #ff8a8a; }
.bl-schedule a.res-link:hover { background: rgba(255,255,255,.1); }
.bl-schedule .res-link small { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .58rem; color: #ffb3b3; }

/* --- Tabelle der Opel HBL (saison.html) --- */
.bl-tabelle-wrap { margin-bottom: 1.5rem; }
.bl-tabelle td, .bl-tabelle th { text-align: center; padding: .65rem .6rem; white-space: nowrap; }
.bl-tabelle th.team, .bl-tabelle td.team { text-align: left; }
.bl-tabelle th:nth-child(2), .bl-tabelle td.team { text-align: left; min-width: 220px; }
.bl-tabelle td.pl { font-family: var(--font-hero); font-size: 1.15rem; color: #fff; }
.bl-tabelle td.pkt { font-weight: 700; color: #fff; }
.bl-tabelle td.diff { color: var(--fg-dim); }
.bl-tabelle tr.sg td { background: rgba(255,255,255,.12); color: #fff; }
.bl-tabelle tr.sg td.team .club-nm { font-weight: 700; }
.bl-tabelle tr.sg td.pl { color: #ff9a9a; }
.bl-tabelle td.form span { display: inline-flex; gap: .25rem; }
.bl-tabelle td.form i { display: grid; place-items: center; width: 20px; height: 20px; font-style: normal; font-family: var(--font-display); font-weight: 700; font-size: .62rem; color: #fff; background: rgba(255,255,255,.18); }
.bl-tabelle td.form i.f-S { background: #1fa64a; } .bl-tabelle td.form i.f-N { background: #d90000; } .bl-tabelle td.form i.f-U { background: #7a7f99; }
.bl-tabelle tbody tr:nth-child(-n+2) td.pl::after, .bl-tabelle tbody tr:nth-last-child(-n+2) td.pl::after { content: ""; display: block; width: 18px; height: 2px; margin: 2px auto 0; background: #7dffa0; }
.bl-tabelle tbody tr:nth-last-child(-n+2) td.pl::after { background: #ff8a8a; }
@media (max-width: 820px) { .bl-tabelle td.form, .bl-tabelle th:last-child, .bl-tabelle td.diff, .bl-tabelle th:nth-child(9), .bl-tabelle td:nth-child(5), .bl-tabelle td:nth-child(6), .bl-tabelle td:nth-child(7), .bl-tabelle th:nth-child(5), .bl-tabelle th:nth-child(6), .bl-tabelle th:nth-child(7) { display: none; } .bl-tabelle td.team { min-width: 0; } }

/* --- Bundesliga-Startseite: Hero 20px hoeher (3D-Schild braucht Luft) --- */
.bl-home .hero { min-height: calc(clamp(520px, 56vw, 820px) + 180px); }
@media (max-width: 640px) { .bl-home .hero { min-height: calc(clamp(440px, 88vw, 580px) + 160px); } }
/* Mannschaftsbild (2:1) unten angesetzt: Sponsorenleiste bleibt sichtbar. Ab 1680px ist der Hero
   breiter als 2:1 - dann wird das Foto in voller Hoehe gezeigt (schmale Blau-Raender links/rechts)
   statt oben und unten beschnitten. */
@media (min-width: 1680px) { .bl-home .hero-slides .slide-team { background-size: auto 100%; background-repeat: no-repeat; background-color: #04127e; } }

/* --- Newsletter-Section (Bundesliga-Startseite) --- */
.nl-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem,4vw,3.5rem); align-items: center; }
.nl-grid .nl-form { order: -1; }   /* Formular links, Text rechts */
.nl-grid .prose p { color: var(--fg-dim); font-size: 1.05rem; }
.nl-points { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; }
.nl-points li { position: relative; padding-left: 1.4rem; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .86rem; color: #fff; }
.nl-points li::before { content: ""; position: absolute; left: 0; top: .45em; width: 12px; height: 3px; background: #f82818; }
.nl-form { background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%); box-shadow: var(--bl-shadow); padding: clamp(1.2rem,2.5vw,2rem); }
.nl-form .field label { color: rgba(255,255,255,.85); }
.nl-form .field input { background: rgba(255,255,255,.96); color: #0616a8; border-color: transparent; }
.nl-form .field input:focus { outline: 2px solid #f82818; outline-offset: 1px; }
.nl-consent { display: flex; gap: .7rem; align-items: flex-start; font-size: .9rem; color: rgba(255,255,255,.85); line-height: 1.45; cursor: pointer; }
.nl-consent input { margin-top: .25rem; width: 18px; height: 18px; accent-color: #f82818; flex: none; }
.nl-consent a { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nl-consent a:hover { color: #ffb3b3; }
.nl-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.nl-actions .form-status { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; }
@media (max-width: 820px) { .nl-grid { grid-template-columns: 1fr; } }
.nl-form .field input::placeholder { color: rgba(15,22,54,.45); }

/* --- Videos (Bundesliga-Startseite): Vorschaubilder liegen lokal, Klick fuehrt zu YouTube --- */
.vid-grid { display: grid; gap: 1rem; }
.vid-hl { grid-template-columns: repeat(2, 1fr); }
.vid-shorts { grid-template-columns: repeat(5, 1fr); }
.vid-card { position: relative; display: block; overflow: hidden; background: var(--bl-polish); box-shadow: var(--bl-shadow); aspect-ratio: 16 / 9; color: #fff; text-decoration: none; }
.vid-card.is-short { aspect-ratio: 9 / 16; }
.vid-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.vid-card:hover img, .vid-card:focus-visible img { transform: scale(1.05); }
.vid-card:focus-visible { outline: 3px solid #f82818; outline-offset: 3px; }
.vid-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(4,8,40,.92) 0%, rgba(4,8,40,.35) 45%, transparent 70%); pointer-events: none; }
.vid-play { position: absolute; left: 50%; top: 50%; z-index: 1; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: #f82818;
  box-shadow: 0 8px 24px rgba(4,8,40,.45); transition: transform .25s ease; }
.vid-play::before { content: ""; position: absolute; left: 26px; top: 20px; border-style: solid; border-width: 12px 0 12px 20px; border-color: transparent transparent transparent #fff; }
.vid-card:hover .vid-play { transform: scale(1.1); }
.vid-card.is-short .vid-play { width: 48px; height: 48px; margin: -24px 0 0 -24px; }
.vid-card.is-short .vid-play::before { left: 19px; top: 15px; border-width: 9px 0 9px 15px; }
.vid-txt { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: .9rem 1rem; display: grid; gap: .3rem; }
.vid-txt time { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: #ff9a9a; }
.vid-txt b { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; line-height: 1.15; font-size: clamp(1rem, 1.6vw, 1.3rem);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vid-card.is-short .vid-txt { padding: .7rem .75rem; }
.vid-card.is-short .vid-txt b { font-size: .82rem; -webkit-line-clamp: 3; }
.vid-shorts { margin-bottom: .5rem; }
.vid-note { margin: 1.4rem 0 0; font-size: .85rem; color: var(--fg-dim); }
.vid-empty { color: var(--fg-dim); }
@media (max-width: 1000px) { .vid-shorts { grid-template-columns: repeat(3, 1fr); } .vid-shorts .vid-card:nth-child(n+4) { display: none; } }
@media (max-width: 720px) {
  .vid-hl { grid-template-columns: 1fr; }
  /* Shorts als Wischleiste */
  .vid-shorts { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: .7rem; padding-bottom: .5rem; margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px; scrollbar-width: thin; }
  .vid-shorts .vid-card { flex: 0 0 42%; scroll-snap-align: start; }
  .vid-shorts .vid-card:nth-child(n+4) { display: block; }
}
@media (prefers-reduced-motion: reduce) { .vid-card img, .vid-play { transition: none; } }
/* Abspiel-Fenster: erst Rueckfrage (Vorschaubild unscharf dahinter), dann youtube-nocookie-Player */
.vid-lb-frame { position: relative; width: min(1100px, 100%, calc((100dvh - 7rem) * 16 / 9)); aspect-ratio: 16 / 9; background: #04127e center / cover no-repeat;
  box-shadow: 0 20px 60px rgba(0,0,0,.5); overflow: hidden; }
.vid-lb-frame.is-short { width: min(420px, 100%, calc((100dvh - 7rem) * 9 / 16)); aspect-ratio: 9 / 16; }
.vid-lb-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vid-lb-consent { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: .8rem; padding: clamp(1.2rem, 4vw, 3rem);
  background: linear-gradient(165deg, rgba(10,28,214,.9) 0%, rgba(6,22,168,.92) 55%, rgba(4,18,126,.95) 100%); backdrop-filter: blur(6px); color: #fff; overflow-y: auto; }
.vid-lb-consent[hidden] { display: none; }
.vid-lb-kicker { margin: 0; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; font-size: .75rem; color: #ff9a9a; }
.vid-lb-consent h2 { margin: 0; font-size: clamp(1.2rem, 2.6vw, 2rem); line-height: 1.1; color: #fff; }
.vid-lb-consent p:not(.vid-lb-kicker) { margin: 0; max-width: 60ch; font-size: .95rem; line-height: 1.5; color: rgba(255,255,255,.85); }
.vid-lb-consent a:not(.button) { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.vid-lb-actions { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: .4rem; }
.vid-lb-play { white-space: nowrap; }
.vid-lb-ext { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.vid-lb-frame.is-short .vid-lb-consent h2 { font-size: 1.15rem; }
.vid-lightbox .lb-close { top: 1rem; right: 1rem; }

/* --- Footer-Bottom auf das 4-Spalten-Raster: "Made by DV" buendig unter "Social" --- */
.site-footer .footer-bottom { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
.site-footer .footer-bottom .legal { grid-column: 2 / 4; }
.site-footer .footer-bottom .made-by { grid-column: 4; justify-self: start; }
@media (max-width: 900px) { .site-footer .footer-bottom { grid-template-columns: 1fr 1fr; } .site-footer .footer-bottom .legal { grid-column: 1 / -1; } .site-footer .footer-bottom .made-by { grid-column: 2; } }
@media (max-width: 560px) { .site-footer .footer-bottom { grid-template-columns: 1fr; } .site-footer .footer-bottom .made-by { grid-column: 1; } }

/* --- Footer: SG-Logo groesser (Plate bleibt 112px, Logo fuellt sie) --- */
.site-footer .f-brand .logo-plate { width: auto; height: auto; }          /* Plate nicht mehr 112px fest: sonst staucht max-width:100% das Bild */
.site-footer .f-brand img { height: 96px; width: auto; max-width: none; }
@media (max-width: 760px) { .site-footer .f-brand img { height: 72px; } }

/* --- Unterkarten (.bl-card, .bl-next): Akzentleiste rechts, Folge Blau + Rot + Blau,
       danach laeuft das letzte Blau nach links weich in die Karte aus --- */
.bl-card::before, .bl-next::before {
  left: auto; right: 0; width: calc(var(--bar, 12px) * 3 + var(--fade, 22px));
  background: linear-gradient(270deg,
    #0016a8 0 calc(var(--bar, 12px) / 3), #0818d8 calc(var(--bar, 12px) / 3) calc(var(--bar, 12px) * 2 / 3), #0016a8 calc(var(--bar, 12px) * 2 / 3) var(--bar, 12px),
    #cc1d0a var(--bar, 12px) calc(var(--bar, 12px) * 4 / 3), #f82818 calc(var(--bar, 12px) * 4 / 3) calc(var(--bar, 12px) * 5 / 3), #cc1d0a calc(var(--bar, 12px) * 5 / 3) calc(var(--bar, 12px) * 2),
    #0016a8 calc(var(--bar, 12px) * 2) calc(var(--bar, 12px) * 7 / 3), #0818d8 calc(var(--bar, 12px) * 7 / 3) calc(var(--bar, 12px) * 8 / 3), #0016a8 calc(var(--bar, 12px) * 8 / 3) 100%);
  /* schraeger Fade ueber die Hoehe wie bisher (unten voll, nach oben weg; fuer rechts gespiegelt)
     + horizontaler Auslauf des letzten Blaus in die Karte; beide Masken geschnitten */
  -webkit-mask-image: linear-gradient(335deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%), linear-gradient(270deg, #000 calc(var(--bar, 12px) * 2.6), rgba(0,0,0,0) 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(335deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%), linear-gradient(270deg, #000 calc(var(--bar, 12px) * 2.6), rgba(0,0,0,0) 100%);
          mask-composite: intersect; }
/* Platz fuer die rechte Leiste: Innenluft rechts = Leiste (3 Bloecke) + Abstand; Leiste liegt hinter dem Inhalt */
.bl-card { padding-left: 1.5rem; padding-right: calc(1.5rem + var(--bar, 12px) * 3); }
.bl-card::before, .bl-next::before { z-index: 0; }
.bl-card > *, .bl-next > * { position: relative; z-index: 1; }

/* --- Footer: Social-Icons von sgbbm.de (weisse Kacheln) + Opel-HBL-Logo im Markenblock --- */
.footer-grid .f-social img { width: 20px; height: 20px; border-radius: 4px; }
.site-footer .f-league { margin-top: 1rem; }
.site-footer .f-league img { height: 56px; width: auto; display: block; opacity: .95; }
.site-footer .f-league a:hover img { opacity: 1; }

/* --- Bereichswechsel: Button links neben HOME im Stil des Nav-CTA (Blau-Polish, SG-Logo) --- */
.areabar { display: none !important; }
.main-nav .button-primary.nav-cta.nav-switch { min-width: 0; padding-inline: .9rem; margin-right: .35rem; }
.main-nav .button-primary.nav-cta.nav-switch::after { content: none !important; }
@media (max-width: 900px) { .main-nav .button-primary.nav-cta.nav-switch { order: 0; width: calc(100% - 2rem); margin: .6rem 1rem .2rem; } }
.main-nav .nav-sub-label { white-space: nowrap; }
@media (min-width: 901px) { .site-header .brand-text { white-space: nowrap; } }
/* Platz fuer Marke + Wechsel-Button: engere Nav-Abstaende bis 1500px, Marke bleibt einzeilig */
@media (min-width: 901px) and (max-width: 1500px) {
  .site-header .inner { gap: 1rem; }
  .main-nav { gap: clamp(.55rem, 1.1vw, 1rem); }
  .main-nav .button-primary.nav-cta.nav-switch { padding-inline: .7rem; margin-right: .1rem; }
  .main-nav .button-primary.nav-cta { min-width: 0; padding-inline: 1rem; }
}

/* --- Tabellen: alle Zellen vertikal mittig (zweizeilige Zellen neben einzeiligen), feste Spalten ohne Umbruch --- */
table.schedule td, table.schedule th { vertical-align: middle; }
table.schedule td[data-label="Datum"], table.schedule td[data-label="Team"], table.schedule td[data-label="Ergebnis"],
table.schedule td[data-label="Spieltag"], table.schedule td[data-label="Platz"], table.schedule td[data-label="Punkte"] { white-space: nowrap; }
table.schedule td.pairing { align-items: center; }
table.schedule td.pairing .club { align-items: center; }
table.schedule td.pairing .club-nm { line-height: 1.25; }
table.schedule td.pairing .vs { align-self: center; }
table.schedule .score { vertical-align: middle; }
@media (max-width: 900px) { table.schedule td[data-label="Datum"], table.schedule td[data-label="Team"] { white-space: normal; } }
/* Begegnung bekommt mehr Breite (lange Vereinsnamen wie "mJSG Melsungen/Körle/Guxhagen" brechen sauber um statt in den Strich zu laufen) */
table.schedule th.c-pairing { width: 42%; }
table.schedule td.pairing .club { min-width: 0; max-width: 100%; }
table.schedule td.pairing .club-nm { white-space: normal; overflow-wrap: break-word; hyphens: auto; min-width: 0; }
table.schedule td.pairing .club-ic { flex: none; }

table.schedule th.c-pairing { width: 34%; }
table.schedule td[data-label="Liga"] { min-width: 22ch; }

/* Begegnung: die Zelle bleibt echte Tabellenzelle (display:grid auf <td> versetzte die Rahmenlinie und
   zeichnete die Spalte als eigenen Block); das Dreier-Raster liegt auf dem inneren .pair */
table.schedule td.pairing { display: table-cell; }
table.schedule td.pairing .pair { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .3rem .9rem; }
@media (max-width: 720px) { table.schedule td.pairing .pair { display: inline; } }   /* nur im Karten-Layout (<=720px); dazwischen bleibt die Tabelle eine Tabelle */
@media (max-width: 720px) { table.schedule td.pairing { display: block; } }

/* --- Hero: Ghost-Wort "Handball" entfernt --- */
.hero::after { content: none !important; }

/* --- Kontakt: Gruppen im Geschaeftsstellen-Team, Portraits 3:4 --- */
.org-card .org-group { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; color: #ffb3b3; margin: 1.6rem 0 .8rem; padding-bottom: .4rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.org-card .org-group:first-of-type { margin-top: .4rem; }
.org-photo { width: 110px; height: 142px; }
.org-photo img { object-position: 50% 20%; }
.contact-layout .team-card .tc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.org-card .org-group:first-of-type { margin-top: 1.2rem; }
.org-card .org-contact a { overflow-wrap: anywhere; }
/* Beispieladressen (…@example.de) bis zur Lieferung echter Adressen nicht zeigen (08.11.2026). Echte Adressen erscheinen automatisch. */
html body .org-contact:has(a[href*="@example."]) { display: none !important; }
@media (min-width: 1100px) { .org-card .org-grid { grid-template-columns: repeat(3, 1fr); } }
/* Bundesliga-Spielplaene: wenige Spalten, Vereinsnamen bleiben einzeilig */
.bl-schedule td.pairing .club-nm { white-space: nowrap; }

/* --- Mobil (Hochformat): Karten, Hero, Seitenkopf, Partnerleiste und Footer auf volle Breite,
       kein weisser Seitenhintergrund mehr zwischen den Bloecken --- */
@media (max-width: 900px) {
  body { background: #04127e; }
  .dsn-card, .hero, .page-head, .partner-bar, .site-footer { width: 100% !important; max-width: none !important; margin-inline: 0 !important; border-radius: 0 !important; }
  .dsn-card, .page-head { margin-block: .5rem !important; }
  .hero { margin-block: 0 !important; }
  .partner-bar { margin-top: .5rem !important; margin-bottom: .5rem !important; }
  .site-footer { margin-top: .5rem !important; }
  .site-header .inner { width: calc(100vw - 1rem); }
}

/* --- Ergebnisse: Sieg der SG gruen, Niederlage rot, Unentschieden grau (Spielplan, Startseite, Team-Tab, Archiv, Bundesliga) --- */
table.schedule .score.win, .ts-item .score.win, .dsn-card .ts-item .score.win { background: #1fa64a !important; color: #fff !important; }
table.schedule .score.lose, .ts-item .score.lose, .dsn-card .ts-item .score.lose { background: #d90000 !important; color: #fff !important; }
table.schedule .score.draw, .ts-item .score.draw, .dsn-card .ts-item .score.draw { background: #7a7f99 !important; color: #fff !important; }
.bl-schedule .res-link.win { background: rgba(31,166,74,.28); border-color: #1fa64a; }
.bl-schedule .res-link.lose { background: rgba(217,0,0,.22); border-color: #ff8a8a; }
.bl-schedule .res-link.draw { background: rgba(255,255,255,.1); border-color: #7a7f99; }
.bl-last .scoreline .res.win { color: #7dffa0; } .bl-last .scoreline .res.lose { color: #ffb3b3; }

/* --- Bundesliga-Startseite: Ergebnisse + naechste Spiele, Zeilen mit Statistik klickbar --- */
.bl-sub { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .9rem; color: #fff; margin: 1.6rem 0 .7rem; display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; }
.bl-sub:first-of-type { margin-top: 0; }
.bl-sub small { font-family: var(--font-body); font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .82rem; color: rgba(255,255,255,.6); }
table.schedule tr.row-link { cursor: pointer; }
table.schedule tr.row-link:hover td { background: rgba(255,255,255,.08); }

/* --- Live-Ticker: Leiste unter der Menueleiste --- */
.live-bar { display: block; text-decoration: none; color: #fff; width: min(1640px, calc(100vw - clamp(1.5rem,5vw,5rem))); margin-inline: auto;
  background: linear-gradient(90deg,#b30000 0%,#f82818 50%,#b30000 100%); box-shadow: 0 14px 30px rgba(4,8,40,.38); }
.live-bar.is-ended, .live-bar.is-pre { background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%); }
.live-bar .lb-inner { width: 100%; display: flex; align-items: center; gap: clamp(.6rem,1.5vw,1.4rem); padding: .45rem clamp(.8rem,2vw,1.5rem); font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .9rem; }
.live-bar .lb-live { display: inline-flex; align-items: center; gap: .45rem; background: #fff; color: #c40000; padding: .2rem .55rem; font-size: .7rem; letter-spacing: .16em; }
.live-bar .lb-live i { width: 8px; height: 8px; border-radius: 50%; background: #f82818; animation: lbPulse 1.2s infinite; }
.live-bar .lb-live.ended, .live-bar .lb-live.pre { color: #04127e; }
.live-bar .lb-team { display: inline-flex; align-items: center; gap: .45rem; }
.live-bar .lb-team img { width: 30px; height: 30px; object-fit: contain; filter: drop-shadow(0 2px 6px rgba(4,8,40,.5)); }
.live-bar .lb-score { font-family: var(--font-hero); font-size: 1.6rem; line-height: 1; letter-spacing: .02em; padding: 0 .3rem; }
.live-bar .lb-score.pre { font-size: 1.15rem; }
.live-bar .lb-min { font-size: .72rem; opacity: .85; letter-spacing: .12em; }
.live-bar .lb-meta { margin-left: auto; font-size: .72rem; opacity: .8; letter-spacing: .1em; }
@keyframes lbPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
@media (max-width: 900px) { .live-bar { width: calc(100vw - 1rem); } .live-bar .lb-inner { width: 100%; flex-wrap: wrap; row-gap: .3rem; font-size: .8rem; } .live-bar .lb-meta { display: none; } .live-bar .lb-team b { display: none; } }
/* --- Live-Karte (Startseite, Karte "Naechstes Spiel") --- */
.bl-nextcard.is-live { box-shadow: 0 0 0 3px #f82818, var(--bl-shadow); }
.bl-nextcard .lc-score { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .6rem; margin: .2rem 0; }
.bl-nextcard .lc-score .lb-team { display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; font-size: .78rem; letter-spacing: .06em; }
.bl-nextcard .lc-score .lb-team img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(4,8,40,.5)); }
.bl-nextcard .lc-num { font-family: var(--font-hero); font-size: 2.8rem; line-height: 1; }
.bl-nextcard .lc-score.win .lc-num { color: #1a8a3e; } .bl-nextcard .lc-score.lose .lc-num { color: #c40000; }
.bl-nextcard .lc-hz { margin: 0; text-align: center; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; color: #0616a8; opacity: .8; }
.bl-nextcard .lc-feed { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .3rem; font-size: .84rem; }
.bl-nextcard .lc-ev { display: grid; grid-template-columns: 3.2rem 1fr auto; gap: .5rem; align-items: center; padding: .35rem .6rem; text-align: left; color: #0a1250; background: rgba(6,22,168,.06); border-left: 3px solid rgba(6,22,168,.3); }
.bl-nextcard .lc-ev.ours { border-left-color: #f82818; }
.bl-nextcard .lc-ev.goal { background: rgba(6,22,168,.1); } .bl-nextcard .lc-ev.goal.ours { background: rgba(31,166,74,.18); border-left-color: #1fa64a; }
.bl-nextcard .lc-ev.card { border-left-color: #e0a800; }
.bl-nextcard .lc-ev .m { font-family: var(--font-display); font-weight: 700; font-size: .84rem; color: #0616a8; }
.bl-nextcard .lc-ev .t { line-height: 1.2; } .bl-nextcard .lc-ev .t small { display: block; color: rgba(10,18,80,.7); font-size: .8rem; }
.bl-nextcard .lc-ev .s { font-family: var(--font-hero); font-size: 1rem; }
.bl-nextcard .lc-note { font-size: .84rem; color: rgba(255,255,255,.7); margin: 0; }
.bl-nextcard .kicker .lb-live { display: inline-flex; align-items: center; gap: .4rem; background: #f82818; color: #fff; padding: .15rem .5rem; margin-right: .3rem; }
.bl-nextcard .kicker .lb-live i { width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: lbPulse 1.2s infinite; }

/* --- Dyn-Link rechts neben Tickets, im Stil der Nav-CTAs; Play-Symbol statt SG-Logo --- */
.main-nav .button-primary.nav-cta.nav-dyn { margin-left: -.2rem; min-width: 0 !important; padding-inline: 1.1rem; }
.main-nav .button-primary.nav-cta.nav-dyn::before { content: none !important; display: none !important; }   /* kein SG-Logo: das DYN-Logo steht im Button */
.main-nav .nav-dyn .dyn-wm { height: 30px; width: auto; display: block; margin: 0 -.35rem 0 -.1rem; }   /* komplettes DYN-Logo, gleiche Hoehe wie SG-Logo im Tickets-Button */
.main-nav .button-primary.nav-cta.nav-dyn { gap: .35rem; }
@media (max-width: 900px) { .main-nav .button-primary.nav-cta.nav-dyn { margin-left: 1rem; } }

/* --- Seitensuche: Lupe + Overlay --- */
.nav-search-mob { display: none; }
@media (max-width: 900px) {
  .nav-search-mob { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-left: auto; margin-right: .3rem; color: #fff;
    background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%); }
  .nav-search-mob svg { width: 20px; height: 20px; }
}
.ss-open { overflow: hidden; }
.site-search { position: fixed; inset: 0; z-index: 200; background: rgba(4,8,40,.72); backdrop-filter: blur(4px); display: flex; justify-content: center; align-items: flex-start; padding: clamp(1rem,8vh,6rem) 1rem 1rem; }
.site-search[hidden] { display: none; }
.ss-panel { width: min(760px, 100%); max-height: calc(100vh - 2rem - clamp(1rem,8vh,6rem)); display: flex; flex-direction: column;
  background: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%); box-shadow: 0 30px 80px rgba(0,0,0,.5); color: #fff; }
.ss-bar { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.2rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.ss-bar > svg { width: 24px; height: 24px; flex: none; color: #ffb3b3; }
.ss-bar input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff; font-size: 1.2rem; font-family: var(--font-body); }
.ss-bar input::placeholder { color: rgba(255,255,255,.55); }
.ss-close { background: none; border: 0; color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; padding: 0 .2rem; }
.ss-info { margin: 0; padding: .6rem 1.2rem; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; color: rgba(255,255,255,.65); }
.ss-list { list-style: none; margin: 0; padding: 0 .6rem .8rem; overflow-y: auto; }
.ss-list a { display: block; padding: .75rem .7rem; text-decoration: none; color: #fff; border-left: 3px solid transparent; }
.ss-list a:hover, .ss-list a:focus { background: rgba(255,255,255,.08); border-left-color: #f82818; outline: 0; }
.ss-list b { display: block; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 1rem; margin: .15rem 0 .2rem; }
.ss-meta { display: flex; gap: .4rem; }
.ss-area, .ss-kind { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; padding: .12rem .45rem; background: rgba(255,255,255,.14); }
.ss-area.bl { background: #f82818; }
.ss-snip { display: block; font-size: .86rem; line-height: 1.45; color: rgba(255,255,255,.78); }
.ss-snip mark { background: rgba(255,204,51,.35); color: #fff; padding: 0 .1em; }
.ss-bar input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
/* Menueleiste mit Suche + Dyn: Marke behaelt Abstand, Abstaende bis 1500px enger */
.site-header .brand { flex-shrink: 0; margin-right: 1rem; }
/* volle Leiste gibt es erst ab 1620 px (darunter Hamburger-Menue, css/nav-kompakt.css) */
@media (min-width: 1220px) and (max-width: 1760px) {
  .main-nav { gap: clamp(.45rem, .9vw, .85rem); }
  .nav-social { gap: .3rem; margin-left: .3rem; }
  .main-nav .button-primary.nav-cta { padding-inline: .85rem; }
}
/* schmale Desktops: Social-Kacheln (stehen auch im Footer) ausblenden, die Suche bleibt */
/* (frueher 901-1360 px Social-Kacheln aus: dort zeigt jetzt das Hamburger-Menue alle Kacheln) */
@media (min-width: 1220px) and (max-width: 1100px) {   /* unwirksam: die volle Leiste beginnt erst bei 1620 px, Hamburger-Menue darunter mit SG-Logo */
  .main-nav .button-primary.nav-cta::before { display: none; }
  .main-nav .button-primary.nav-cta { padding-inline: .7rem; letter-spacing: .03em; }
  .site-header .brand { margin-right: .4rem; }
}
/* Bundesliga-Leiste hat mit Dyn einen Button mehr: Social-Kacheln dort bis 1700px ausblenden (Footer hat sie) */
@media (min-width: 901px) and (max-width: 1700px) { .main-nav:has(.nav-dyn) .nav-social a:not(.nav-search) { display: none; } }
@media (min-width: 901px) and (max-width: 1100px) { .main-nav .nav-dyn .dyn-wm { height: 22px; margin-block: -2px; } }

/* ===== Spieltagskarte als Live-HTML (iframe) in der Dreier-Kombi ===== */
.bl-last .card-frame, .bl-nextcard .card-frame { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; display: block; background: #04127e; }
.card-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }

/* ===== News: Bildergalerie unter der Meldung + Grossansicht ===== */
.nd-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin: 1.2rem 0 0; }
.nd-gallery a { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #04127e; }
.nd-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.nd-gallery a:hover img, .nd-gallery a:focus-visible img { transform: scale(1.05); }
.nd-gallery a:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.nd-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(2, 8, 60, .94); display: flex; align-items: center; justify-content: center; padding: 3.5rem 1rem; }
.nd-lightbox[hidden] { display: none; }
.nd-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.nd-lightbox button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.nd-lightbox button:hover, .nd-lightbox button:focus-visible { background: #d90000; }
.nd-lightbox .lb-close { top: 1rem; right: 1rem; }
.nd-lightbox .lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.nd-lightbox .lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.nd-lightbox .lb-count { position: absolute; bottom: 1rem; left: 0; right: 0; text-align: center; color: #fff; font-size: .85rem; letter-spacing: .1em; }
@media (prefers-reduced-motion: reduce) { .nd-gallery img { transition: none; } }

/* ===== Hero: Slides aus Mannschafts-News (Titel laenger als Slogans) ===== */
.hero .hero-texts > .inner.is-news h1 { font-size: clamp(1.9rem, 3.8vw, 3.1rem); line-height: 1.06; max-width: 22ch; text-wrap: balance; }
.hero .hero-texts > .inner.is-news .sub { max-width: 58ch; }
/* News-Slides: schmalere Ueberschrift/Text an die rechte Kante schieben, damit alles buendig rechts steht */
.hero .hero-texts > .inner { text-align: right; }
.hero .hero-texts > .inner.is-news h1, .hero .hero-texts > .inner.is-news .sub { margin-left: auto; margin-right: 0; }
.hero .hero-texts > .inner .actions { justify-content: flex-end; }
@media (max-width: 600px) { .hero .hero-texts > .inner.is-news h1 { font-size: clamp(1.6rem, 7.5vw, 2.1rem); } }
.hero .hero-texts > .inner.is-news .kicker,
.hero .hero-texts > .inner.is-news h1,
.hero .hero-texts > .inner.is-news .sub { text-shadow: 0 2px 14px rgba(2, 8, 60, .6); }

/* ===== Spielplan: Liga-Auswahl ("Laufende Runde") liegt aufgeklappt UEBER der Tabelle =====
   .ar-bar ist ein .reveal-Block (eigene Ebene durch transform) - ohne eigenen z-index malt die
   spaeter folgende Tabelle darueber und schneidet die Liste ab. */
.ar-bar { position: relative; z-index: 60; }
.ar-drop-list { z-index: 61; max-height: min(60vh, 420px); overflow-y: auto; box-shadow: 0 18px 40px rgba(2, 8, 60, .45); }

/* ===== Trainer & Team hinterm Team: Personen-Buehne (js/staff-buehne.js) ===== */
.ps-staff h3.sb-h3 { display: none; }
.ps-staff .ps-staff-grid[hidden] { display: none !important; }      /* Raster nur ohne JavaScript */
.ps-staff .sb { position: relative; z-index: 1; }                   /* ueber der Deko-Ebene (.ns-layer) des Abschnitts */
.ps-staff .sb { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(1rem, 2.4vw, 2.2rem);
                align-items: stretch; margin: clamp(1.6rem, 4vw, 2.6rem) 0 clamp(2.4rem, 5vw, 3.6rem); }
.ps-staff .sb + .sb { margin-top: 0; }
.ps-staff .sb-side { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.2rem; }
.ps-staff .sb-vtitle { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
                       letter-spacing: .04em; font-size: clamp(1.7rem, 2.8vw, 2.5rem); line-height: 1; color: #fff; margin: 0; white-space: nowrap; }
.ps-staff .sb-vtitle span { color: #FF2814; }
.ps-staff .sb-stage { position: relative; margin: 0; aspect-ratio: 250 / 300; max-height: 560px; overflow: hidden; background: #04127e;
                      box-shadow: 0 30px 70px rgba(2, 8, 60, .55); }
.ps-staff .sb-stage img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }
.ps-staff .sb-info { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
/* Partnerkarte: gross, direkt rechts neben dem Foto */
.ps-staff .sb-partner { background: linear-gradient(160deg, #FFFFFF 0%, #F6F4F0 55%, #EAE6DE 100%); color: #0616a8; padding: 1rem 1.2rem 1.1rem;
                        display: grid; gap: .55rem; justify-items: start; box-shadow: 0 18px 40px rgba(2, 8, 60, .45); max-width: 360px; }
.ps-staff .sb-partner[hidden] { display: none; }
.ps-staff .sb-partner-lbl { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: #d90000; }
.ps-staff .sb-partner-logo { display: flex; align-items: center; justify-content: center; width: 100%; height: clamp(90px, 9vw, 120px); background: #fff; padding: .6rem 1rem; }
.ps-staff .sb-partner-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.ps-staff .sb-partner-name { font-family: var(--font-display); font-weight: 700; font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; }
.ps-staff .sb-partner-name:empty { display: none; }
/* Text */
.ps-staff .sb-num { display: block; font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; color: #ff9d9d; letter-spacing: .06em; }
.ps-staff .sb-info h4.sb-name { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.8rem, 3.4vw, 2.8rem);
                                line-height: 1; letter-spacing: 0; margin: .2rem 0 .45rem; color: #fff; text-wrap: balance; }
.ps-staff .sb-role { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; color: #ff9d9d; margin: 0; }
.ps-staff .sb-desc { color: #EFEDE8; line-height: 1.65; max-width: 52ch; margin: .8rem 0 0; font-size: .98rem; }
.ps-staff .sb-desc[hidden] { display: none; }
.ps-staff .sb-anim { animation: sbIn .5s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sbIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ps-staff .sb-counter { font-family: var(--font-display); font-weight: 700; font-size: .78rem; letter-spacing: .14em; color: rgba(255,255,255,.6); margin-top: auto; }
/* Vorschaubilder */
.ps-staff .sb-thumbs { display: flex; gap: .7rem; flex-wrap: wrap; }
.ps-staff .sb-thumb { padding: 0; border: 0; background: #04127e; cursor: pointer; width: clamp(64px, 6.5vw, 92px); aspect-ratio: 250 / 300; overflow: hidden;
                      position: relative; transition: transform .25s ease, box-shadow .25s ease; flex: none; }
.ps-staff .sb-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; filter: saturate(.85); transition: filter .25s; }
.ps-staff .sb-thumb:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(2,8,60,.5); }
.ps-staff .sb-thumb:hover img { filter: none; }
.ps-staff .sb-thumb:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ps-staff .sb-tn { position: absolute; left: 0; right: 0; bottom: 0; padding: .25rem .3rem; background: linear-gradient(transparent, rgba(2,8,60,.85));
                   color: #fff; font: 700 .58rem/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .06em; text-align: left; }
.ps-staff .sb-prev { width: clamp(70px, 7.5vw, 104px); }
@media (prefers-reduced-motion: reduce) { .ps-staff .sb-anim { animation: none; } .ps-staff .sb-thumb, .ps-staff .sb-thumb img { transition: none; } }
/* Tablet: Partnerkarte und Text neben dem Foto bleiben, linke Spalte faellt weg */
@media (max-width: 1000px) {
  .ps-staff .sb { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ps-staff .sb-side { grid-column: 1 / -1; flex-direction: row; }
  .ps-staff .sb-vtitle { writing-mode: horizontal-tb; transform: none; font-size: 1.6rem; }
  .ps-staff .sb-side .sb-prev { display: none; }
}
/* Handy: untereinander, Vorschaubilder als wischbare Leiste */
@media (max-width: 760px) {
  .ps-staff .sb { grid-template-columns: 1fr; }
  .ps-staff .sb-partner { max-width: none; grid-template-columns: auto 1fr; align-items: center; }
  .ps-staff .sb-partner-lbl { grid-column: 1 / -1; }
  .ps-staff .sb-partner-logo { width: 150px; height: 80px; }
  .ps-staff .sb-thumbs { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .4rem; }
  .ps-staff .sb-thumb { width: 78px; scroll-snap-align: start; }
}

/* ===== Ticketseite (Inhalte von sgbbm.de/bl-maenner/tickets.html) ===== */
.tk-banner { margin: 0 0 clamp(1.4rem, 3vw, 2.2rem); overflow: hidden; box-shadow: 0 24px 60px rgba(2, 8, 60, .45); }
.tk-banner img { display: block; width: 100%; height: auto; aspect-ratio: 1920 / 720; object-fit: cover; }
.tk-split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.4rem); align-items: start; }
.tk-split .prose p { max-width: 62ch; }
.tk-intro h3 { margin-top: 0; }
.tk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: 1.4rem !important; }
.tk-office p b { color: #fff; font-weight: 600; }
.tk-office a, .tk-infos a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.tk-note { margin: .8rem 0 1.8rem; }
/* Preistabellen */
table.tk-prices td, table.tk-prices th { text-align: center; }
table.tk-prices tbody th { text-align: left; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #fff; white-space: nowrap; vertical-align: middle; }
table.tk-prices tbody th small { display: block; font-size: .68rem; letter-spacing: .14em; color: rgba(255,255,255,.6); }
table.tk-prices td:first-of-type { text-align: left; }
table.tk-dk td:first-of-type { text-align: center; }
table.tk-prices tr.tk-first > * { border-top: 2px solid rgba(255,255,255,.28); }
.tk-cat { display: inline-block; width: .8rem; height: .8rem; border-radius: 2px; margin-right: .5rem; vertical-align: -.05rem; box-shadow: 0 0 0 1px rgba(255,255,255,.5); }
.tk-rot { background: #e3001b; } .tk-gelb { background: #ffd200; } .tk-pink { background: #e6007e; }
/* Arena */
.tk-plan { margin: 0; background: #fff; padding: 1rem; box-shadow: 0 24px 60px rgba(2, 8, 60, .45); }
.tk-plan img { display: block; width: 100%; height: auto; max-width: 469px; margin: 0 auto; }
.tk-plan figcaption { color: #0616a8; font-size: .85rem; line-height: 1.5; margin-top: .8rem; }
.tk-arena-cards { grid-template-columns: 1fr 1fr; }
.tk-arena-cards .bl-card:first-child { grid-column: 1 / -1; }
.tk-arena-logo { height: 34px; width: auto; background: #fff; padding: .4rem .6rem; display: block; }
/* Dauerkarte */
.tk-benefits { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .7rem; }
.tk-benefits li { padding-left: 1.4rem; position: relative; color: var(--fg-dim); line-height: 1.55; }
.tk-benefits li::before { content: ""; position: absolute; left: 0; top: .5em; width: .6rem; height: .6rem; background: #FF2814; }
.tk-benefits b { display: block; font-family: var(--font-display); text-transform: uppercase; letter-spacing: .06em; color: #fff; font-size: .9rem; }
@media (max-width: 900px) {
  .tk-split { grid-template-columns: 1fr; }
  .tk-arena-cards { grid-template-columns: 1fr; }
}
/* Preistabellen bleiben auch auf dem Handy echte Tabellen (wischbar) statt Einzelkarten */
.tk-split, .tk-banner, #auswaerts .prose, .tk-infos { position: relative; z-index: 1; }
@media (max-width: 720px) {
  .table-wrap:has(> table.tk-prices) { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table.schedule.tk-prices { display: table; width: 100%; min-width: 560px; font-size: .85rem; }
  table.schedule.tk-dk { min-width: 0; }
  table.schedule.tk-prices thead { display: table-header-group; }
  table.schedule.tk-prices tbody { display: table-row-group; }
  table.schedule.tk-prices tr { display: table-row; margin: 0; padding: 0; background: none; box-shadow: none; }
  table.schedule.tk-prices td, table.schedule.tk-prices th { display: table-cell; padding: .55rem .5rem; border-bottom: 1px solid rgba(255,255,255,.12); }
  table.schedule.tk-prices td::before { content: none; }
  table.schedule.tk-prices tbody th { white-space: normal; font-size: .78rem; }
}

/* ===== Footer mobil: nur die Linkspalte des eigenen Bereichs, Listen rechtsbuendig =====
   Bundesliga-Seiten erkennt man am HBL-Logo im Footer (.f-league), Verein & Jugend hat keins. */
@media (max-width: 900px) {
  .site-footer .footer-grid:has(.f-league) > nav[aria-label="Verein und Jugend"],
  .site-footer .footer-grid:not(:has(.f-league)) > nav[aria-label="Bundesliga"] { display: none; }
  .site-footer .footer-grid > nav,
  .site-footer .footer-grid > div:has(> h4) { text-align: right; }
  .site-footer .footer-grid > nav ul,
  .site-footer .footer-grid > div:has(> h4) ul { justify-items: end; }
  .site-footer .footer-grid > nav a,
  .site-footer .footer-grid > div:has(> h4) a { justify-content: flex-end; }
}
@media (min-width: 561px) and (max-width: 900px) {
  .site-footer .footer-grid > .f-brand { grid-column: 1 / -1; }      /* Marke oben ueber die volle Breite, darunter Bereich | Social */
}

/* ===== Staff-Buehne im Look der Spielerkarten (Slider auf team.html) =====
   Freigestellte Figur mittig unten auf dem blauen Kartenverlauf mit Trikotsaum;
   Partner als weisse Plakette mit rotem Balken wie neben den Spielernamen. */
.ps-staff .sb-stage, .ps-staff .sb-thumb {           /* exakt die Deck-Karte aus dem Teamslider (team.html .ps-card) */
  background: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 34px rgba(4,8,40,.42); border-radius: 0; isolation: isolate; }
.ps-staff .sb-stage::before, .ps-staff .sb-thumb::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 74%; z-index: 0; pointer-events: none; opacity: 1;
  /* genau eine Balkenfolge (6 blau, 6 rot) pro Kachel, in Prozent -> skaliert ohne Schnittkante */
  background: linear-gradient(90deg,#0016a8 0.000% 8.333%,#0818d8 8.333% 16.667%,#0016a8 16.667% 25.000%,#0818d8 25.000% 33.333%,#0016a8 33.333% 41.667%,#0818d8 41.667% 50.000%,#cc1d0a 50.000% 58.333%,#f82818 58.333% 66.667%,#cc1d0a 66.667% 75.000%,#f82818 75.000% 83.333%,#cc1d0a 83.333% 91.667%,#f82818 91.667% 100.000%);
  -webkit-mask-image: linear-gradient(70deg,#000 0 28%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.4) 64%,rgba(0,0,0,.12) 82%,rgba(0,0,0,0) 96%);
          mask-image: linear-gradient(70deg,#000 0 28%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.4) 64%,rgba(0,0,0,.12) 82%,rgba(0,0,0,0) 96%); }
/* Balkenbreite im selben Verhaeltnis zur Kartenbreite wie im Slider (72 px Raster auf 207 px Karte,
   ::before = 74 % -> eine Balkenfolge = 47 % der Streifenflaeche), damit grosse Buehne und Vorschau gleich aussehen */
.ps-staff .sb-stage::before, .ps-staff .sb-thumb::before { background-size: 47.03% 100%; background-repeat: repeat-x; background-position: 0 0; }
.ps-staff .sb-stage img { position: relative; z-index: 1; object-fit: contain; object-position: 50% 100%;
  height: 94%; width: 100%; margin-top: 6%; filter: drop-shadow(0 18px 34px rgba(0,0,30,.6)); }
.ps-staff .sb-thumb img { position: relative; z-index: 1; object-fit: contain; object-position: 50% 100%; height: 90%; margin-top: 10%; }
.ps-staff .sb-stage { justify-self: center; width: 100%; max-width: 460px; }
/* Partner: Plakette wie bei den Spielern (weiss, roter Balken oben) */
.ps-staff .sb-partner { background: none; box-shadow: none; padding: 0; gap: .5rem; }
.ps-staff .sb-partner-lbl { color: rgba(255,255,255,.72); }
.ps-staff .sb-partner-logo { width: clamp(150px, 16vw, 210px); height: clamp(76px, 8vw, 104px); padding: 8px 14px;
  background: #fff; border-top: 4px solid #f82818; box-shadow: 0 10px 24px rgba(4,8,40,.35); }
.ps-staff .sb-partner-name { display: none; }
@media (max-width: 760px) {
  .ps-staff .sb-partner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .ps-staff .sb-partner-logo { width: clamp(130px, 44vw, 180px); height: clamp(64px, 20vw, 86px); }
  .ps-staff .sb-info { text-align: center; align-items: center; }
  .ps-staff .sb-desc { margin-inline: auto; }
  .ps-staff .sb-thumbs { justify-content: safe center; align-self: stretch; }
}

/* ===== Hero: Bilder per Klick auf die Punkte umschaltbar (js/main.js) ===== */
.hero .hero-dots { padding: .5rem .2rem; }
.hero .hero-ctrl { position: absolute; z-index: 6; left: 50%; transform: translateX(-50%); bottom: clamp(.9rem, 2vw, 1.4rem);   /* mittig unten */
  display: flex; align-items: center; gap: .6rem; }
.hero .hero-ctrl .ns-btn { width: 44px; height: 44px; font-size: 1.6rem; line-height: 1;
  background: transparent; border: 1.5px solid rgba(255,255,255,.55); color: #fff; box-shadow: none; text-shadow: 0 1px 6px rgba(2,8,60,.6); }
.hero .hero-ctrl .ns-btn:hover { background: rgba(255,255,255,.14); border-color: #fff; color: #fff; }
.hero:has(.hero-ctrl) .hero-texts { padding-bottom: clamp(4rem, 6vw, 4.6rem); }   /* Platz fuer die Steuerung unter den Knoepfen */
.hero .hero-dots { display: flex; gap: .45rem; padding: 0 .3rem; }
.hero .hero-dot { width: 12px; height: 12px; padding: 0; border: 0; border-radius: 50%; cursor: pointer; background: rgba(255,255,255,.4);
  box-shadow: 0 1px 4px rgba(2,8,60,.5); transition: background .2s, transform .2s; }
.hero .hero-dot:hover { background: rgba(255,255,255,.8); }
.hero .hero-dot[aria-current="true"] { background: #FF2814; transform: scale(1.25); }
.hero .hero-dot:focus-visible, .hero .hero-ctrl .ns-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 640px) {
  .hero .hero-ctrl { bottom: .8rem; gap: .4rem; }
  .hero:has(.hero-ctrl) .hero-texts { padding-bottom: 4.2rem; }
  .hero .hero-ctrl .ns-btn { width: 38px; height: 38px; font-size: 1.4rem; }
}
/* Verein & Jugend: Hero 100 px hoeher (Bundesliga-Hero hat eigene Hoehe ueber .bl-home) */
body:not(.bl-home) .hero { min-height: calc(clamp(520px, 56vw, 820px) + 100px); }
@media (max-width: 640px) { body:not(.bl-home) .hero { min-height: calc(clamp(440px, 88vw, 580px) + 100px); } }

/* ===== Verein & Jugend: "Naechstes Heimspiel der Profis" kompakt und mittig ===== */
body:not(.bl-home) .bl-next { max-width: 780px; margin-inline: auto; grid-template-columns: 1fr auto 1fr; gap: 1rem clamp(1rem, 2.5vw, 2rem);
  padding: clamp(1.4rem, 3vw, 2rem) clamp(1.4rem, 3vw, 2.4rem); }
body:not(.bl-home) .bl-next .team img { height: clamp(56px, 6vw, 84px); }
body:not(.bl-home) .bl-next .team .nm { font-size: clamp(1.1rem, 2vw, 1.6rem); }
body:not(.bl-home) .bl-next .vs { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
body:not(.bl-home) .bl-next .when { flex-direction: column; gap: .35rem; padding-top: 1rem; margin-top: .2rem; text-align: center; }
body:not(.bl-home) .bl-next .when .button { margin: .7rem auto 0; }

@media (max-width: 720px) { body:not(.bl-home) .bl-next { grid-template-columns: 1fr; } }

/* ===== Karten-Akzentleiste (.bl-card, .bl-next) wie der Trikotsaum im Section-Hintergrund =====
   Blau + Rot + Blau, je Block 6 Unterbalken (Blau: #0016a8/#0818d8, Rot: #cc1d0a/#f82818 im Wechsel),
   schraeg nach oben auslaufend, letztes Blau laeuft weich in die Karte aus. Ueberschreibt die 3-Streifen-Fassung oben. */
.bl-card, .bl-next { --bar: 30px; --fade: 26px; }
@media (max-width: 900px) { .bl-card, .bl-next { --bar: 22px; --fade: 20px; } }
.bl-card::before, .bl-next::before {
  left: auto; right: 0; width: calc(var(--bar) * 3 + var(--fade));
  background: linear-gradient(270deg,
    #0016a8 calc(var(--bar) * 0/6) calc(var(--bar) * 1/6),
    #0818d8 calc(var(--bar) * 1/6) calc(var(--bar) * 2/6),
    #0016a8 calc(var(--bar) * 2/6) calc(var(--bar) * 3/6),
    #0818d8 calc(var(--bar) * 3/6) calc(var(--bar) * 4/6),
    #0016a8 calc(var(--bar) * 4/6) calc(var(--bar) * 5/6),
    #0818d8 calc(var(--bar) * 5/6) calc(var(--bar) * 6/6),
    #cc1d0a calc(var(--bar) * 6/6) calc(var(--bar) * 7/6),
    #f82818 calc(var(--bar) * 7/6) calc(var(--bar) * 8/6),
    #cc1d0a calc(var(--bar) * 8/6) calc(var(--bar) * 9/6),
    #f82818 calc(var(--bar) * 9/6) calc(var(--bar) * 10/6),
    #cc1d0a calc(var(--bar) * 10/6) calc(var(--bar) * 11/6),
    #f82818 calc(var(--bar) * 11/6) calc(var(--bar) * 12/6),
    #0016a8 calc(var(--bar) * 12/6) calc(var(--bar) * 13/6),
    #0818d8 calc(var(--bar) * 13/6) calc(var(--bar) * 14/6),
    #0016a8 calc(var(--bar) * 14/6) calc(var(--bar) * 15/6),
    #0818d8 calc(var(--bar) * 15/6) calc(var(--bar) * 16/6),
    #0016a8 calc(var(--bar) * 16/6) calc(var(--bar) * 17/6),
    #0818d8 calc(var(--bar) * 17/6) 100%);
  -webkit-mask-image: linear-gradient(335deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%), linear-gradient(270deg, #000 calc(var(--bar) * 2.6), rgba(0,0,0,0) 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(335deg,#000 0 30%,rgba(0,0,0,.6) 52%,rgba(0,0,0,0) 78%), linear-gradient(270deg, #000 calc(var(--bar) * 2.6), rgba(0,0,0,0) 100%);
          mask-composite: intersect; }
.bl-card { padding-right: calc(1rem + var(--bar) * 2); }   /* innerstes Blau darf unter dem Text auslaufen */

/* "Naechstes Heimspiel der Profis": Saum auf der Seite der SG BBM (Heimteam steht immer links) -
   gespiegelt: Blau + Rot + Blau von links, schraeg nach oben rechts auslaufend */
.bl-next::before { left: 0; right: auto; transform: scaleX(-1); }
.bl-next, body:not(.bl-home) .bl-next { padding-left: calc(clamp(1rem, 2.5vw, 2rem) + var(--bar) * 2); }

/* ===== Hero mobil: ohne Buttons (nur Text + Punkte) ===== */
@media (max-width: 760px) {
  .hero .hero-texts > .inner .actions, .hero .inner .actions { display: none !important; }
  .hero:has(.hero-ctrl) .hero-texts { padding-bottom: 3rem; }
}

/* ===== Mobil: keine Menueleiste mehr - nur SG-Logo links, Suche + Hamburger rechts, frei ueber dem Inhalt ===== */
@media (max-width: 900px) {
  .site-header .inner, .site-header.is-scrolled .inner, .site-header.scrolled .inner {
    background: transparent !important; box-shadow: none !important; border: 0 !important; backdrop-filter: none !important; }
  .site-header .brand-text { display: none !important; }
  .site-header .brand img { height: 92px !important; width: auto; max-width: none !important; filter: drop-shadow(0 4px 10px rgba(2, 8, 60, .55)); }
  .site-header .inner { align-items: flex-start; }
  .site-header .brand { margin-top: .2rem; }
  .site-header .nav-toggle { width: 42px; height: 42px; padding: 0; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
    background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%); box-shadow: 0 6px 16px rgba(2, 8, 60, .45); }
  .site-header .nav-toggle span { width: 20px !important; height: 2.5px !important; margin: 0 !important; background: #fff !important; }
  .site-header .nav-search-mob { box-shadow: 0 6px 16px rgba(2, 8, 60, .45); margin-right: calc(.5rem - var(--hdr-gap, 24px)) !important; }
  .site-header .inner { --hdr-gap: 24px; }
}

/* ===== News-Karten mobil hoeher (mehr Bild ueber dem Text) ===== */
/* Zeilen duerfen mit der Kartenhoehe wachsen - feste Zeilenhoehe + min-height liess Karten ueberlappen */
.news-grid { grid-auto-rows: minmax(clamp(230px, 24vw, 340px), auto) !important; }
@media (max-width: 640px) {
  .news-grid { grid-auto-rows: minmax(300px, auto) !important; }
  .news-grid .news-card, .news-grid.bl-home-news .news-card, #blNews .news-card { min-height: 300px !important; }
  #blNews .news-card:first-child { min-height: 340px !important; }
}

/* Spielkarten mobil: alle Zeilen mittig - Bezeichnung klein ueber dem Wert */
@media (max-width: 720px) {
  table.schedule:has(td.pairing) td:not(.pairing) { display: flex !important; flex-direction: column; align-items: center; text-align: center !important;
    gap: .1rem; padding: .3rem 0 !important; }
  table.schedule:has(td.pairing) td:not(.pairing)::before { margin: 0; }
  table.schedule:has(td.pairing) td:not(.pairing) > * { text-align: center; }
  table.schedule:has(td.pairing) td[data-label="Ergebnis"] .res-link { align-self: stretch; }
}

/* ===== Paarungen mobil als Anzeigetafel: Heim | Ergebnis bzw. ":" | Gast, Logo oben, Name darunter, alles mittig ===== */
@media (max-width: 720px) {
  table.schedule td.pairing { display: block !important; margin: .4rem 0 .6rem; padding: .8rem 0 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important; border-bottom: 1px solid rgba(255,255,255,.12) !important; }
  table.schedule td.pairing::before { content: none !important; }
  table.schedule td.pairing .pair { display: grid !important; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: start; justify-items: center; column-gap: .6rem; font-size: 0; }      /* font-size 0: Trennzeichen "–" im Quelltext unsichtbar */
  table.schedule td.pairing .pair > .club:first-child { grid-column: 1; grid-row: 1; }
  table.schedule td.pairing .pair > .club:last-child { grid-column: 3; grid-row: 1; }
  table.schedule td.pairing .pair > .score, table.schedule td.pairing .pair > .vs,
  table.schedule td.pairing .pair::after { grid-column: 2; grid-row: 1; align-self: center; margin-top: -1.2rem; }
  table.schedule td.pairing .club { display: flex !important; flex-direction: column; align-items: center; gap: .4rem; text-align: center; min-width: 0; width: 100%; }
  table.schedule td.pairing .club-ic { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; margin: 0; }
  table.schedule td.pairing .club-ic img, table.schedule td.pairing .club-logo { max-width: 48px; max-height: 48px; width: auto; height: auto; }
  table.schedule td.pairing .club-nm { font-size: .82rem; font-weight: 700; line-height: 1.15; color: #fff; overflow-wrap: anywhere; }
  table.schedule td.pairing .score { font-size: 1.05rem; padding: .3rem .65rem; white-space: nowrap; }
  table.schedule td.pairing .vs { font: 800 1.5rem/1 var(--font-display); color: rgba(255,255,255,.55); }
  table.schedule td.pairing .vs::after { content: none !important; }
  table.schedule td.pairing .pair:not(:has(> .score)):not(:has(> .vs))::after { content: ":"; font: 800 1.5rem/1 var(--font-display); color: rgba(255,255,255,.55); }
}

/* ===== "Naechstes Heimspiel der Profis" mobil: Logos nebeneinander (Heim | VS | Gast), Namen darunter ===== */
@media (max-width: 720px) {
  .bl-next, body:not(.bl-home) .bl-next { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important; align-items: start; column-gap: .5rem; }
  .bl-next .team, .bl-next .team.away { flex-direction: column !important; align-items: center; text-align: center !important; gap: .45rem; min-width: 0; }
  .bl-next .team img, body:not(.bl-home) .bl-next .team img { height: 64px; }
  .bl-next .team .nm, body:not(.bl-home) .bl-next .team .nm { font-size: 1rem; overflow-wrap: anywhere; }
  .bl-next .team .nm small { font-size: .6rem; letter-spacing: .14em; }
  .bl-next .vs, body:not(.bl-home) .bl-next .vs { align-self: start; margin-top: 18px; font-size: 1.9rem; }
}

/* ===== Footer mobil aufgeraeumt: Marke mittig, Links als 2-Spalten-Raster, Social als Icon-Reihe, Fusszeile mittig ===== */
@media (max-width: 560px) {
  .site-footer .footer-grid { gap: 1.6rem !important; }
  .site-footer .f-brand { flex-direction: column; align-items: center; text-align: center; gap: .6rem; padding-bottom: 1.4rem;
    border-bottom: 1px solid rgba(255,255,255,.14); }
  .site-footer .f-brand img { height: 64px !important; }
  .site-footer .f-brand p { max-width: 34ch; margin-inline: auto; font-size: .84rem; }
  .site-footer .f-brand .f-league img { height: 40px !important; margin-inline: auto; }
  .site-footer .footer-grid > nav, .site-footer .footer-grid > div:has(> h4) { text-align: center !important; border-top: 0 !important; padding-top: 0 !important; }
  .site-footer .footer-grid h4 { text-align: center; margin-bottom: .8rem; }
  .site-footer .footer-grid > nav ul { display: grid !important; grid-template-columns: 1fr 1fr; gap: .2rem .8rem; justify-items: center !important; }
  .site-footer .footer-grid > nav ul li { margin: 0; }
  .site-footer .footer-grid > nav a { justify-content: center !important; padding: .45rem 0; font-size: .95rem; }
  /* Social: nur Icons in einer Reihe, Kontakt als eigene Zeile darunter */
  .site-footer .footer-grid > div:has(> h4) ul { display: flex !important; flex-wrap: wrap; justify-content: center; gap: .4rem; }
  .site-footer .footer-grid > div:has(> h4) ul li { margin: 0; }
  .site-footer .footer-grid a.f-social { font-size: 0; width: 40px; height: 40px; justify-content: center !important; align-items: center;
    background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); padding: 0 !important; }
  .site-footer .footer-grid a.f-social img { width: 22px; height: 22px; }
  .site-footer .footer-grid > div:has(> h4) ul li:has(> a:not(.f-social)) { flex-basis: 100%; text-align: center; margin-top: .3rem; }
  .site-footer .footer-bottom { text-align: center !important; justify-items: center; }
  .site-footer .footer-bottom .legal { justify-content: center; }
  .site-footer .footer-bottom .made-by { justify-self: center; }
}

/* Bundesliga-Seiten: kein schwebender "Werde jetzt Partner"-Knopf (Sicherung, falls er in einer Seite wieder auftaucht) */
.bl-home .partner-fab, body:has(.nav-dyn) .partner-fab { display: none !important; }

/* Navbar Bundesliga: Tickets- und Dyn-Button exakt gleich gross (gemeinsame Breite, Inhalt mittig).
   Ersetzt die fruehere Regel "Tickets-Button schmaler" und die Mindestbreite 215px aus trikotkante.css. */
.main-nav:has(.nav-dyn) .button-primary.nav-cta[href$="tickets.html"],
.main-nav .button-primary.nav-cta.nav-dyn {
  --cta-w: 9.4rem;
  width: var(--cta-w) !important; min-width: 0 !important; max-width: none !important; box-sizing: border-box;
  justify-content: center !important; padding-left: .7rem !important; padding-right: .7rem !important; gap: .45rem !important; }
@media (min-width: 901px) and (max-width: 1100px) {
  .main-nav:has(.nav-dyn) .button-primary.nav-cta[href$="tickets.html"], .main-nav .button-primary.nav-cta.nav-dyn { --cta-w: 7.9rem; } }
@media (max-width: 900px) {   /* mobiles Menue: Buttons ueber die volle Breite wie bisher */
  .main-nav:has(.nav-dyn) .button-primary.nav-cta[href$="tickets.html"], .main-nav .button-primary.nav-cta.nav-dyn { width: auto !important; } }

/* ===== Countdown bis Anwurf + Dyn-Hinweis (Karte "Naechstes Spiel", Teaser Verein, Saisonseite) ===== */
.nc-countdown { display: flex; gap: .45rem; margin: .2rem 0 .1rem; font-variant-numeric: tabular-nums; }
.nc-countdown > span { display: flex; flex-direction: column; align-items: center; min-width: 3.3rem; padding: .45rem .35rem .35rem;
  background: rgba(0,0,40,.35); border-top: 3px solid #f82818; }
.nc-countdown b { font-family: var(--font-display); font-weight: 900; font-size: 1.55rem; line-height: 1; color: #fff; }
.nc-countdown small { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .58rem; color: rgba(255,255,255,.65); margin-top: .25rem; }
.nc-countdown .cd-now { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: 1.2rem; color: #ff9d9d; }
.bl-next .when .nc-countdown { justify-content: center; margin: .5rem 0 .2rem; }
.nc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin-top: auto; }
.nc-actions .button { margin-top: 0 !important; }
.nc-dyn { white-space: nowrap; gap: .45rem !important; }
.nc-dyn::before { content: none !important; display: none !important; }       /* statt SG-Logo das Dyn-Wortzeichen */
.nc-dyn img { height: 30px; width: auto; display: block; margin-block: -6px; }
.bl-card-dyn .nc-dyn { margin-top: auto; }
.news-grid .news-card[hidden] { display: none !important; }
#newsFilterEmpty { margin: 0 0 1.5rem; }

/* Mobil: grosses SG-Logo oben links (92 px) - Seitenkoepfe und Team-Buehne beginnen darunter */
@media (max-width: 900px) {
  .page-head { padding-top: calc(var(--header-h, 77px) + 4.5rem) !important; }
  .ps-team .ps-team-txt { padding-top: 7.4rem !important; }
}
.bl-cards:has(.bl-card-dyn) { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

/* Karte "Naechstes Spiel": Kopf bis zum Vorbericht mittig */
.bl-nextcard .body > .kicker, .bl-nextcard .body > .when { text-align: center; align-self: stretch; }
.bl-nextcard .body > .nc-countdown { justify-content: center; }
.bl-nextcard .nc-actions { gap: .6rem; }
.bl-nextcard .nc-actions .button { flex: 1 1 0; justify-content: center; min-width: 0; white-space: nowrap; padding-left: .8rem !important; padding-right: .8rem !important; font-size: .82rem; }

/* ===== Einlaufkids: Intro, Pate, Terminliste, Anmeldeformular (bundesliga/fans.html) ===== */
.ek .ek-intro { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.4rem); align-items: center; margin-bottom: 2rem; }
.ek .ek-intro h3 { margin-top: 0; }
.ek .ek-claim { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1.15rem; color: #ff9d9d; }
.ek .ek-pate { display: grid; justify-items: center; gap: .5rem; text-align: center; }
.ek .ek-pate-lbl, .ek .ek-pate-txt { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: rgba(255,255,255,.75); }
.ek .ek-pate-logo { display: flex; align-items: center; justify-content: center; width: 220px; height: 100px; padding: 10px 16px;
  background: #fff; border-top: 4px solid #f82818; box-shadow: 0 10px 24px rgba(4,8,40,.35); }
.ek .ek-pate-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ek-badge { display: inline-block; padding: .2rem .6rem; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; }
.ek-badge.is-free { background: #16a34a; color: #fff; }
.ek-badge.is-taken { background: rgba(255,255,255,.14); color: rgba(255,255,255,.7); text-decoration: line-through; }
.ek-badge.is-open { background: transparent; border: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.75); }
table.ek-termine td, table.ek-termine th { text-align: left; }

/* Formular als helle Karte mit nummerierten Schritten */
.ek-form { margin-top: clamp(2rem, 5vw, 3rem); background: linear-gradient(160deg, #FFFFFF 0%, #F6F4F0 55%, #EAE6DE 100%); color: #0616a8;
  padding: clamp(1.4rem, 4vw, 2.6rem); box-shadow: 0 24px 60px rgba(2,8,60,.45); position: relative; border-top: 6px solid #f82818; }
.ek-form-head { margin-bottom: 1.4rem; }
.ek-form-head .kicker { color: #d90000; }
.ek-form-head h3 { color: #0016a8; margin: .2rem 0 .4rem; font-size: clamp(1.4rem, 3vw, 2rem); }
.ek-form-head p { margin: 0; color: #4a5070; }
.ek-step { border: 0; border-top: 1px solid rgba(15,22,54,.14); margin: 0; padding: 1.3rem 0 1.4rem; min-width: 0; }
.ek-step legend { padding: 0 .6rem 0 0; font-family: var(--font-display); font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
  font-size: 1.1rem; color: #0616a8; display: flex; align-items: baseline; gap: .6rem; }
.ek-step legend b { color: #f82818; font-size: .9rem; }
.ek-step legend small { font-size: .7rem; letter-spacing: .14em; color: #6a7090; font-weight: 700; }
.ek-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.2rem; margin-top: .6rem; }
.ek-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ek-span2 { grid-column: 1 / -1; }
.ek-form .field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.ek-form label, .ek-form .ek-label { font-weight: 600; font-size: .88rem; color: #0616a8; }
.ek-form label small { display: block; font-weight: 500; font-size: .74rem; color: #6a7090; }
.ek-form input[type=text], .ek-form input[type=email], .ek-form input[type=tel], .ek-form input[type=number], .ek-form select, .ek-form textarea {
  width: 100%; padding: .75rem .9rem; font: inherit; color: #0616a8; background: #fff; border: 1.5px solid #cfd2e0; border-radius: 0;
  transition: border-color .15s, box-shadow .15s; }
.ek-form input:focus, .ek-form select:focus, .ek-form textarea:focus { outline: 0; border-color: #0a1cd6; box-shadow: 0 0 0 3px rgba(10,28,214,.18); }
.ek-form .ek-num input { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; text-align: center; }
.ek-form .ek-num label { min-height: 2.6em; }
/* Auswahlkacheln statt kleiner Radiobuttons */
.ek-choice { display: flex; gap: .5rem; flex-wrap: wrap; }
.ek-choice label { position: relative; flex: 1 1 0; min-width: 110px; cursor: pointer; }
.ek-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ek-choice span { display: flex; align-items: center; justify-content: center; padding: .72rem .8rem; border: 1.5px solid #cfd2e0; background: #fff;
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; color: #0616a8; transition: all .15s; }
.ek-choice input:checked + span { background: #0a1cd6; border-color: #0a1cd6; color: #fff; box-shadow: inset 4px 0 0 #f82818; }
.ek-choice input:focus-visible + span { box-shadow: 0 0 0 3px rgba(10,28,214,.35); }
.ek-choice input:disabled + span { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
/* T-Shirt-Groessen als Trikot-Kacheln */
.ek-shirts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .6rem; margin-top: .6rem; }
.ek-shirts label { display: flex; flex-direction: column; border: 1.5px solid #cfd2e0; background: #fff; }
.ek-shirts span { background: #0F1636; color: #fff; text-align: center; padding: .45rem 0; font-family: var(--font-display); font-weight: 800; font-size: 1rem; letter-spacing: .04em; }
.ek-shirts input { border: 0 !important; text-align: center; font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; padding: .6rem 0 !important; }
.ek-hint { margin: .7rem 0 0; font-size: .8rem; color: #5a6085; }
.ek-hint.is-warn { color: #b45309; font-weight: 600; }
.ek-consent { display: flex !important; gap: .7rem; align-items: flex-start; font-weight: 400 !important; font-size: .85rem !important; line-height: 1.5; margin-top: .9rem; cursor: pointer; }
.ek-consent input { width: 20px; height: 20px; flex: none; margin-top: .1rem; accent-color: #0a1cd6; }
.ek-consent a { color: #0016a8; }
.ek-form .is-invalid input, .ek-form .is-invalid select, .ek-form .is-invalid .ek-choice span, .ek-form input.is-invalid { border-color: #d90000 !important; }
.ek-consent.is-invalid span { color: #b00020; }
.ek-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; padding-top: 1.4rem; border-top: 1px solid rgba(15,22,54,.14); }
.ek-submit .button { min-width: 240px; justify-content: center; }
.ek-submit .form-status { margin: 0; font-weight: 600; }
.ek-submit .form-status.is-ok { color: #15803d; } .ek-submit .form-status.is-error { color: #b00020; }
.ek-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; margin-top: 2rem; }
.ek-contact p { margin: .4rem 0 0; color: var(--fg-dim); line-height: 1.6; }
.ek-contact a { color: #fff; }
@media (max-width: 900px) {
  .ek .ek-intro { grid-template-columns: 1fr; }
  .ek-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ek-contact { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ek-grid { grid-template-columns: 1fr; }
  .ek-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ek-shirts { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; }
  .ek-shirts span { font-size: .85rem; }
  .ek-submit .button { width: 100%; min-width: 0; }
}
/* Einlaufkids-Formular: helle Karte - Farben gegen die weisse Schrift der .dsn-card absichern */
.dsn-card .ek-form, .dsn-card .ek-form p, .dsn-card .ek-form label, .dsn-card .ek-form legend, .dsn-card .ek-form span { color: #0616a8; }
.dsn-card .ek-form .ek-form-head h3 { color: #0016a8 !important; font-family: var(--font-display); font-weight: 900; text-transform: uppercase; display: block; }
.dsn-card .ek-form .ek-form-head h3::before, .dsn-card .ek-form .ek-form-head h3::after { content: none !important; }
.dsn-card .ek-form .ek-form-head .kicker { color: #d90000; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .2em; font-size: .75rem; }
.dsn-card .ek-form .ek-form-head p, .dsn-card .ek-form .ek-hint { color: #4a5070; }
.dsn-card .ek-form .ek-hint.is-warn { color: #b45309; }
.dsn-card .ek-form label small, .dsn-card .ek-form .ek-step legend small { color: #6a7090; }
.dsn-card .ek-form .ek-step legend b { color: #f82818; }
.dsn-card .ek-form .ek-consent a { color: #0016a8; text-decoration: underline; }
.dsn-card .ek-form .ek-choice input:checked + span { color: #fff; }
.dsn-card .ek-form .ek-shirts span { color: #fff; }
.dsn-card .ek-form .form-status.is-ok { color: #15803d; } .dsn-card .ek-form .form-status.is-error { color: #b00020; }
.dsn-card .ek-form input::placeholder, .dsn-card .ek-form textarea::placeholder { color: #9aa0b8; }
.dsn-card .ek-form .button { color: #0616a8; }
.dsn-card .ek-form .ek-consent a, .dsn-card .ek-form .ek-consent a:visited { color: #0016a8 !important; }
.ek-form .ek-grid-5 .ek-num { justify-content: space-between; }

/* Dreier-Kombi (Letztes Spiel · Naechstes Spiel · Fanshop): alle Buttons in der Groesse der
   beiden Buttons der mittleren Karte (je halbe Kartenbreite), rechtsbuendig am Kartenende. */
.bl-trio .body > .button, .bl-trio .nc-actions .button {
  flex: none; width: calc((100% - .6rem) / 2); min-width: 0; height: 51px; box-sizing: border-box;
  justify-content: center; white-space: nowrap; padding-left: .8rem !important; padding-right: .8rem !important; font-size: .82rem; }
.bl-trio .body > .button { margin-top: auto; align-self: flex-end; }
.bl-trio .nc-actions { flex-wrap: nowrap; justify-content: flex-end; align-self: stretch; gap: .6rem; margin-top: auto; }
.bl-trio .nc-actions .button { margin-top: 0 !important; }
/* Tablet: Fanshop-Karte geht ueber beide Spalten - Button trotzdem so breit wie in einer Spalte */
.bl-trio { container-type: inline-size; }
@media (max-width: 1000px) and (min-width: 641px) {
  .bl-shop .body > .button { width: calc(((100cqw - clamp(1rem,2vw,1.5rem)) / 2 - 2.8rem - .6rem) / 2); } }
/* Schmale Karten (3 Spalten bis 1250px, 2 Spalten bis 760px): Buttontext passt in die halbe Breite */
@media (max-width: 1250px) and (min-width: 1001px), (max-width: 760px) and (min-width: 641px), (max-width: 380px) {
  .bl-trio .body > .button, .bl-trio .nc-actions .button { font-size: .72rem; letter-spacing: .04em; padding-left: .5rem !important; padding-right: .5rem !important; gap: .4rem; }
  .bl-trio .nc-dyn img { height: 24px; } }
@media (max-width: 1100px) and (min-width: 1001px), (max-width: 690px) and (min-width: 641px), (max-width: 360px) {
  .bl-trio .body > .button::before, .bl-trio .nc-actions .button:not(.nc-dyn)::before { display: none !important; } }

/* ===== Trainer & Team hinterm Team: Flip-Karten (team.html, Daten aus Admin > Bundesliga) =====
   Vorderseite = Spielerkarte aus dem Teamslider (Polish + Trikotsaum, Trainer mit rotem Saum),
   Rueckseite = Weiss-Polish mit Funktion, Beschreibung und Partner. Dreht per Hover, Fokus oder Antippen. */
.ps-staff .fl-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.ps-staff .fl { perspective: 1400px; aspect-ratio: 4 / 6.2; cursor: pointer; outline: none; position: relative; }
.ps-staff .fl-in { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.ps-staff .fl:hover .fl-in, .ps-staff .fl:focus-visible .fl-in, .ps-staff .fl.is-flip .fl-in { transform: rotateY(180deg); }
.ps-staff .fl-f, .ps-staff .fl-b { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; }
.ps-staff .fl-f { background: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 34px rgba(4,8,40,.42); isolation: isolate; }
.ps-staff .fl-f::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 74%; z-index: 0; pointer-events: none; opacity: 1;
  /* exakt der Streifen-Splitter der Deck-Karten im Spieler-Slider (team.html .ps-card::before): 6px-Raster, 70-Grad-Auslauf */
  background: repeating-linear-gradient(90deg,
    #0016a8 0 6px,#0818d8 6px 12px,#0016a8 12px 18px,#0818d8 18px 24px,#0016a8 24px 30px,#0818d8 30px 36px,
    #cc1d0a 36px 42px,#f82818 42px 48px,#cc1d0a 48px 54px,#f82818 54px 60px,#cc1d0a 60px 66px,#f82818 66px 72px);
  -webkit-mask-image: linear-gradient(70deg,#000 0 28%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.4) 64%,rgba(0,0,0,.12) 82%,rgba(0,0,0,0) 96%);
          mask-image: linear-gradient(70deg,#000 0 28%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.4) 64%,rgba(0,0,0,.12) 82%,rgba(0,0,0,0) 96%); }
.ps-staff .fl-f img.portrait { position: relative; z-index: 1; width: 100%; height: 66%; aspect-ratio: auto; object-fit: contain; object-position: 50% 100%; margin-top: 3%; display: block; filter: drop-shadow(0 14px 26px rgba(0,0,30,.55)); }
/* Partner-Plakette direkt unter der Person (wie neben den Spielernamen im Slider): weiss, roter Balken oben */
.ps-staff .fl-f .fl-pate { position: absolute; left: 50%; bottom: .75rem; transform: translateX(-50%); z-index: 3; display: flex; align-items: center; justify-content: center;
  width: 62%; height: 46px; padding: 4px 10px; background: #fff; border-top: 4px solid #f82818; box-shadow: 0 10px 24px rgba(4,8,40,.35); }
.ps-staff .fl-f .fl-pate img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.ps-staff .fl-f .fl-nm { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 2rem .6rem calc(46px + 1.5rem); background: linear-gradient(transparent, rgba(4,18,126,.95) 35%); color: #fff; font-family: var(--font-display); text-transform: uppercase; text-align: center; }
.ps-staff .fl-f .fl-nm b { display: block; font-weight: 800; font-size: 1.05rem; line-height: 1; }
.ps-staff .fl-f .fl-nm small { display: block; margin-top: .25rem; font-weight: 700; font-size: .62rem; letter-spacing: .14em; color: #ffb3b3; }
.ps-staff .fl-b { transform: rotateY(180deg); background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%); box-shadow: 0 14px 34px rgba(4,8,40,.42); }
.ps-staff .fl-b .cv { height: 100%; padding: 1rem; border-top: 5px solid #f82818; color: #0616a8; text-align: left; overflow: auto; }
.ps-staff .fl-b .grp { display: block; font: 700 .62rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #f82818; }
.ps-staff .fl-b .grp.team { color: #0a1cd6; }
.ps-staff .fl-b h4 { margin: .35rem 0 .1rem; font: 800 1.25rem/1 var(--font-display); text-transform: uppercase; color: #0616a8; }
.ps-staff .fl-b .role { margin: 0 0 .55rem; font: 700 .7rem/1.2 var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: #0a1cd6; }
.ps-staff .fl-b .txt { margin: 0; font-size: .82rem; line-height: 1.5; color: #2a3aa6; }
.ps-staff .fl-b .pate { display: flex; align-items: center; gap: .6rem; margin-top: .7rem; padding-top: .6rem; border-top: 1px solid #e6e4df; }
.ps-staff .fl-b .pate small { font: 700 .58rem/1.2 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: #8a8fa6; }
.ps-staff .fl-b .pate img { height: 32px; width: auto; max-width: 110px; object-fit: contain; background: #fff; padding: 2px 4px; }
@media (max-width: 760px) {
  .ps-staff .fl-grid { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
  .ps-staff .fl { aspect-ratio: 4 / 7.2; }                     /* hoeher: Rueckseite braucht Platz fuer den Text */
  .ps-staff .fl-f .fl-pate { height: 40px; width: 70%; } .ps-staff .fl-f .fl-nm { padding-bottom: calc(40px + 1.3rem); }
  .ps-staff .fl-b .cv { padding: .8rem; } .ps-staff .fl-b h4 { font-size: 1.1rem; } .ps-staff .fl-b .txt { font-size: .76rem; line-height: 1.45; }
  .ps-staff .fl-f .fl-nm b { font-size: .92rem; }
}
@media (prefers-reduced-motion: reduce) { .ps-staff .fl-in { transition: none; } }

/* ===== Teamseite: Zu- & Abgaenge (zwei Karten, Zugaenge gruener Punkt, Abgaenge roter Punkt) ===== */
.tf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.tf-card h3 { display: block !important; margin: 0 0 .9rem !important; font-size: 1.3rem !important; letter-spacing: 0 !important; }
.tf-card h3::after { content: none !important; }
.tf-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.tf-list li { display: grid; grid-template-columns: 12px 1fr; gap: .2rem .8rem; align-items: baseline; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.tf-list li:last-child { border-bottom: 0; }
.tf-list li::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: #7dffa0; box-shadow: 0 0 0 3px rgba(125,255,160,.18); align-self: center; }
.tf-out .tf-list li::before { background: #ff5b6e; box-shadow: 0 0 0 3px rgba(255,91,110,.18); }
.tf-list b { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: 1.05rem; line-height: 1.05; color: #fff; }
.tf-list small { grid-column: 2; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; color: #ffb3b3; }
.tf-in .tf-list small { color: rgba(255,255,255,.72); }
@media (max-width: 720px) { .tf-grid { grid-template-columns: 1fr; } }

/* ===== Spieltagsheft "Siebenmeter" (bundesliga/spieltagsheft.html) ===== */
.sh-current { display: grid; grid-template-columns: minmax(200px, 320px) minmax(0, 1fr); gap: clamp(1.4rem, 4vw, 3rem); align-items: center; }
.sh-cover, .sh-item { display: block; text-decoration: none; }
.sh-cover img, .sh-item img { display: block; width: 100%; height: auto; aspect-ratio: 636 / 900; object-fit: cover; background: #fff;
  box-shadow: 0 24px 50px rgba(2, 8, 60, .5); transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.sh-cover:hover img, .sh-item:hover img, .sh-cover:focus-visible img, .sh-item:focus-visible img { transform: translateY(-6px) rotate(-1deg); box-shadow: 0 34px 60px rgba(2, 8, 60, .6); }
.sh-meta { display: block; font: 700 .74rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #ffb3b3; margin-bottom: .5rem; }
.sh-current h3 { margin: 0 0 1rem; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.sh-size { font: 700 .72rem/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.sh-lead { margin: 0 0 1.6rem; color: var(--fg-dim); max-width: 60ch; }
.sh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: clamp(1.2rem, 3vw, 2rem); }
.sh-txt { display: grid; gap: .25rem; padding-top: .9rem; font-family: var(--font-display); text-transform: uppercase; color: #fff; }
.sh-txt small { font-weight: 700; font-size: .66rem; letter-spacing: .16em; color: #ffb3b3; }
.sh-txt b { font-weight: 800; font-size: 1.1rem; line-height: 1.05; }
.sh-txt em { font-style: normal; font-weight: 700; font-size: .64rem; letter-spacing: .14em; color: rgba(255,255,255,.6); }
@media (max-width: 720px) {
  .sh-current { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .sh-cover { max-width: 260px; } .sh-current .tk-actions { justify-content: center; }
  .sh-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .sh-cover img, .sh-item img { transition: none; } }

/* ===== Werbebanner unter den News (Bundesliga-Startseite, wie auf sgbbm.de) ===== */
.bl-ads { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.5rem; margin-top: 2.2rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.14); position: relative; }
.bl-ads::before { content: none; display: none; position: absolute; top: .45rem; left: 50%; transform: translateX(-50%); font: 700 .58rem/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.bl-ads a { display: block; max-width: 100%; line-height: 0; box-shadow: 0 10px 24px rgba(2,8,60,.4); transition: transform .2s; }
.bl-ads a:hover { transform: translateY(-2px); }
.bl-ads img { display: block; width: 468px; max-width: 100%; height: auto; }

/* ===== Einwilligungen / Cookie-Banner (js/consent.js) ===== */
.cc-box { position: fixed; left: 50%; bottom: max(1rem, env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 3000;
  width: min(640px, calc(100vw - 2rem)); background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%); color: #0616a8;
  border-top: 5px solid #f82818; box-shadow: 0 24px 60px rgba(2, 8, 60, .45); max-height: calc(100vh - 2rem); overflow: auto; }
.cc-box[hidden] { display: none; }
.cc-in { padding: 1.2rem 1.3rem 1.3rem; }
.cc-kicker { margin: 0; font: 700 .64rem/1 var(--font-display); letter-spacing: .2em; text-transform: uppercase; color: #f82818; }
.cc-box h2 { margin: .35rem 0 .5rem; font: 800 1.5rem/1 var(--font-display); text-transform: uppercase; color: #0616a8; }
.cc-txt { margin: 0; font-size: .88rem; line-height: 1.55; color: #2a3aa6; }
.cc-txt a { color: #0a1cd6; text-decoration: underline; text-underline-offset: 2px; }
.cc-opts { display: grid; gap: .55rem; margin: 1rem 0 0; }
.cc-opts[hidden] { display: none; }
.cc-opt { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; padding: .6rem .7rem; background: #fff; border: 1px solid #e3e0d8; cursor: pointer; }
.cc-opt input { width: 18px; height: 18px; margin: .1rem 0 0; accent-color: #0a1cd6; }
.cc-opt b { display: block; font: 800 .95rem/1.1 var(--font-display); text-transform: uppercase; color: #0616a8; }
.cc-opt small { display: block; margin-top: .2rem; font-size: .8rem; line-height: 1.45; color: #5a6085; }
.cc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1.1rem; }
.cc-actions .button { flex: 1 1 10rem; justify-content: center; text-align: center; }
.cc-actions .button[hidden], .cc-more[hidden] { display: none !important; }
.cc-more { font: 700 .76rem/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: #0a1cd6; text-decoration: underline; text-underline-offset: 3px; padding: .5rem .2rem; }
.cc-box a:focus-visible, .cc-opt input:focus-visible { outline: 3px solid #0a1cd6; outline-offset: 2px; }
.site-footer .legal .cc-link { cursor: pointer; }
/* cc-box: Buttons ohne Naht (Trikotleiste links), Markierung bei Hover/Fokus im Blau-Silber-Polish */
.cc-box .cc-actions .button::after { content: none !important; display: none !important; }
.cc-box .cc-actions .button { padding-left: 1.2rem !important; padding-right: 1.2rem !important; outline: none !important; }
.cc-box .cc-actions .button:is(:hover, :focus-visible, :focus) {
  background: linear-gradient(270deg, #C3CCDF 0%, #D5DCE8 30%, #E6EBF3 62%, #F4F6FA 100%) !important; outline: none !important;   /* Hover: Blau-Silber-Polish */
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), inset 0 -1px 0 rgba(4,8,40,.14), 0 10px 22px rgba(4,8,40,.22) !important; }
.cc-box .cc-actions .button:focus-visible { box-shadow: inset 0 0 0 2px rgba(15,22,54,.35), 0 10px 22px rgba(4,8,40,.22) !important; }   /* Tastatur: dezente Innenkontur zusaetzlich */

.bl-ad-sas { width: 100%; display: flex; justify-content: center; min-height: 0; }
.bl-ad-sas[hidden] { display: none; }
@media (max-width: 560px) { .cc-actions .button { flex-basis: 100%; } .cc-box h2 { font-size: 1.25rem; } }
/* HBL-Werbeplatz (Smart AdServer) an die beiden festen Banner angleichen: mittig, gleiche Breite und Schatten,
   ohne die Leerhoehe, die das Werbeskript am Container setzt */
.bl-ad-sas { flex: 0 0 100%; justify-content: center; }
.bl-ad-sas > div, .bl-ad-sas [id^="sas_adv"] { width: 100% !important; max-width: 468px !important; height: auto !important; min-height: 0 !important; display: flex !important; justify-content: center; }
.bl-ad-sas a { display: block !important; width: 468px !important; max-width: 100% !important; line-height: 0; box-shadow: 0 10px 24px rgba(2,8,60,.4); transition: transform .2s; }
.bl-ad-sas a:hover { transform: translateY(-2px); }
.bl-ad-sas img { width: 100% !important; height: auto !important; display: block; }
.bl-ad-sas iframe { max-width: 100%; }
@media (min-width: 761px) { .bl-ads { display: grid; grid-template-columns: repeat(3, minmax(0, 468px)); justify-content: center; align-items: center; }
  .bl-ad-sas { flex: none; } .bl-ads > a, .bl-ad-sas a { width: 100% !important; } }
@media (min-width: 761px) and (max-width: 1240px) { .bl-ads { grid-template-columns: repeat(2, minmax(0, 468px)); } .bl-ad-sas { grid-column: 1 / -1; } .bl-ad-sas a { width: 468px !important; } }
/* Zwei HBL-Formate: .bl-ad-sas ist "display: contents", die beiden Plaetze reihen sich wie die festen Banner ein (2 x 2) */
.bl-ad-sas:not([hidden]) { display: contents !important; }
.bl-ad-slot { display: flex; justify-content: center; min-width: 0; }
.bl-ad-slot:empty { display: none; }
.bl-ad-slot > div, .bl-ad-slot [id^="sas_adv"] { width: 100% !important; max-width: 468px !important; height: auto !important; min-height: 0 !important; display: flex !important; justify-content: center; }
.bl-ad-slot a { display: block !important; width: 100% !important; max-width: 468px !important; line-height: 0; box-shadow: 0 10px 24px rgba(2,8,60,.4); transition: transform .2s; }
.bl-ad-slot a:hover { transform: translateY(-2px); }
.bl-ad-slot img { width: 100% !important; height: auto !important; display: block; }
@media (min-width: 761px) { .bl-ads { grid-template-columns: repeat(2, minmax(0, 468px)) !important; } }
@media (max-width: 760px) { .bl-ads { display: grid !important; grid-template-columns: 1fr; justify-items: center; } .bl-ads > a, .bl-ad-slot { width: 100%; } }

/* ===== Bundesliga-Tabellen (Spielplan, Ergebnisse, Tabelle): jede Spalte in einer Flucht =====
   Kopf und Zellen gleich ausgerichtet, Zahlen in gleicher Ziffernbreite, alles vertikal mittig. Nur Desktop/Tablet. */
@media (min-width: 721px) {
  table.bl-schedule th, table.bl-schedule td { vertical-align: middle !important; font-variant-numeric: tabular-nums; }
  /* Spielplan & Ergebnisse */
  table.bl-schedule:not(.bl-tabelle) th:nth-child(1), table.bl-schedule td[data-label="Datum"] { text-align: left !important; white-space: nowrap; }
  table.bl-schedule:not(.bl-tabelle) th:nth-child(2), table.bl-schedule td[data-label="Spieltag"] { text-align: center !important; width: 9rem; }
  table.bl-schedule:not(.bl-tabelle) th.c-pairing, table.bl-schedule td.pairing { text-align: left !important; }
  table.bl-schedule td[data-label="Ergebnis"], table.bl-schedule:not(.bl-tabelle) thead th:nth-last-child(2):not(.c-pairing) { text-align: center !important; }
  table.bl-schedule td[data-label="Ergebnis"] .res-link { margin-inline: auto; }
  table.bl-schedule:not(.bl-tabelle) th:last-child, table.bl-schedule td[data-label="Halle"] { text-align: left !important; }
  /* Tabelle: Zahlen zentriert, Team links */
  table.bl-tabelle th, table.bl-tabelle td { text-align: center !important; }
  table.bl-tabelle th:nth-child(2), table.bl-tabelle td.team { text-align: left !important; }
  table.bl-tabelle td.form > span { justify-content: center; }
}

/* ===== Saisonseite: Reiter Spielplan / Tabelle ===== */
.sz-tabs { display: inline-flex; gap: 0; margin: 0 0 1.4rem; background: rgba(4,18,126,.45); padding: 4px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); max-width: 100%; }
.sz-tabs [role="tab"] { border: 0; cursor: pointer; padding: .75rem 1.3rem; background: transparent; color: rgba(255,255,255,.75);
  font: 700 .82rem/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; transition: background .2s, color .2s; white-space: nowrap; }
.sz-tabs [role="tab"]:hover { color: #fff; }
.sz-tabs [role="tab"][aria-selected="true"] { background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%); color: #0616a8; box-shadow: inset 0 3px 0 #f82818, 0 6px 16px rgba(2,8,60,.35); }
.sz-tabs [role="tab"]:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.sz-panel[hidden] { display: none; }
@media (max-width: 560px) { .sz-tabs { display: flex; } .sz-tabs [role="tab"] { flex: 1; padding-inline: .6rem; letter-spacing: .08em; font-size: .74rem; } }

/* ===== Saisonstatistik der SG (Reiter auf saison.html) ===== */
.ss-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.ss-kpi { background: rgba(4,18,126,.45); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); padding: 1rem 1.1rem; display: grid; gap: .3rem; }
.ss-kpi .kicker { font: 700 .66rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #ffb3b3; }
.ss-kpi b { font: 800 clamp(1.6rem, 2.6vw, 2.2rem)/1 var(--font-display); color: #fff; font-variant-numeric: tabular-nums; }
.ss-kpi small { font-size: .78rem; color: rgba(255,255,255,.72); }
.ss-top { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1.8rem; }
.ss-topcard { background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%); color: #0616a8; border-top: 4px solid #f82818; padding: .9rem 1.1rem; display: grid; gap: .25rem; box-shadow: 0 10px 24px rgba(2,8,60,.35); }
.ss-topcard .kicker { font: 700 .64rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #f82818; }
.ss-topcard b { font: 800 1.2rem/1.1 var(--font-display); text-transform: uppercase; }
.ss-topcard b small { color: #0a1cd6; font-size: .8em; }
.ss-topcard em { font-style: normal; font: 700 .8rem/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: #0a1cd6; }
.ss-h { margin: 1.6rem 0 .8rem !important; }
table.ss-table th, table.ss-table td { text-align: center !important; vertical-align: middle; font-variant-numeric: tabular-nums; }
table.ss-table th:nth-child(2), table.ss-table td.ss-name { text-align: left !important; }
table.ss-table td.ss-name { font-weight: 700; color: #fff; }
table.ss-table td.ss-strong { font-weight: 800; color: #fff; }
@media (max-width: 900px) { .ss-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ss-kpis > :first-child { grid-column: 1 / -1; } .ss-top { grid-template-columns: 1fr; } }
/* Handy: Statistik bleibt echte Tabelle zum Wischen statt Einzelkarten */
@media (max-width: 720px) {
  .table-wrap.ss-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table.schedule.ss-table { display: table; width: 100%; min-width: 620px; font-size: .84rem; }
  table.schedule.ss-gk { min-width: 540px; }
  table.schedule.ss-table thead { display: table-header-group; }
  table.schedule.ss-table tbody { display: table-row-group; }
  table.schedule.ss-table tr { display: table-row; margin: 0; padding: 0; background: none; box-shadow: none; }
  table.schedule.ss-table td, table.schedule.ss-table th { display: table-cell; padding: .5rem .45rem; border-bottom: 1px solid rgba(255,255,255,.12); }
  table.schedule.ss-table td::before { content: none; }
  table.schedule.ss-table td.ss-name { position: sticky; left: 0; background: #0616a8; z-index: 1; }
}
@media (max-width: 560px) { .sz-tabs [role="tab"] { font-size: .66rem; letter-spacing: .04em; padding-inline: .4rem; } }
/* Saisonstatistik: Namensspalte links und einzeilig (schlaegt die Spieltag-Regel der Spielplantabelle) */
table.bl-schedule.ss-table:not(.bl-tabelle) th:nth-child(2), table.bl-schedule.ss-table td.ss-name { text-align: left !important; white-space: nowrap; width: auto; }
table.bl-schedule.ss-table th:first-child, table.bl-schedule.ss-table td:first-child { width: 3.5rem; }

/* ===== Startseite Bundesliga: "Letzte Ergebnisse" und "Naechste Spiele" mit identischen Spalten =====
   Feste Spaltenbreiten in beiden Tabellen -> Datum, Spieltag, Begegnung, Ergebnis/Live & Tickets und Halle fluchten untereinander. */
@media (min-width: 721px) {
  table.bl-hometable { table-layout: fixed; width: 100%; }
  table.bl-hometable th:nth-child(1), table.bl-hometable td:nth-child(1) { width: 19%; }
  table.bl-hometable th:nth-child(2), table.bl-hometable td:nth-child(2) { width: 10%; }
  table.bl-hometable th:nth-child(3), table.bl-hometable td:nth-child(3) { width: 35%; }
  table.bl-hometable th:nth-child(4), table.bl-hometable td:nth-child(4) { width: 14%; text-align: center !important; }
  table.bl-hometable th:nth-child(5), table.bl-hometable td:nth-child(5) { width: 22%; text-align: left !important; }
  table.bl-hometable td { overflow-wrap: anywhere; }
}
/* "Live & Tickets": gleicher Kasten wie das Ergebnis, im Weiss-Polish statt Sieg/Niederlage-Farbe */
table.bl-hometable .res-link.aktion { background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%) !important; color: #0616a8 !important;
  border-left-color: #f82818 !important; font-size: 1rem; }
table.bl-hometable .res-link.aktion small { color: #0a1cd6 !important; }
@media (min-width: 721px) { table.bl-hometable td[data-label="Spieltag"] { white-space: normal !important; line-height: 1.25; } }

/* Ticketseite "Heimspiele": Karte Geschaeftsstelle links, Text rechts (Handy: Text zuerst) */
.tk-split.tk-split-rev { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
.tk-split.tk-split-rev > .tk-office { order: 1; }
.tk-split.tk-split-rev > .tk-intro { order: 2; }
@media (max-width: 900px) { .tk-split.tk-split-rev { grid-template-columns: 1fr; } .tk-split.tk-split-rev > .tk-intro { order: 1; } .tk-split.tk-split-rev > .tk-office { order: 2; } }
/* Ticketseite "Dauerkarte": Preistabelle links, Vorteile-Text rechts (Handy: Text zuerst) */
.tk-split.tk-split-dk { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
.tk-split.tk-split-dk > .prose { order: 2; }
.tk-split.tk-split-dk > :not(.prose) { order: 1; }
@media (max-width: 900px) { .tk-split.tk-split-dk { grid-template-columns: 1fr; } .tk-split.tk-split-dk > .prose { order: 1; } .tk-split.tk-split-dk > :not(.prose) { order: 2; } }

/* ===== Weisse Felder im Material der weissen Buttons: Off-White-Verlauf, Lichtkante, gestaffelter Schatten
   und die 12px-Trikotnaht links (statt rotem Balken oben). Gilt fuer aktiven Reiter (Saisonseite),
   Bestwerte der Saisonstatistik und "Live & Tickets" auf der Bundesliga-Startseite. ===== */
.sz-tabs [role="tab"][aria-selected="true"],
.ss-topcard,
table.bl-hometable .res-link.aktion {
  position: relative; isolation: isolate;
  background: linear-gradient(160deg, #FCFBF9 0%, #EFEDE8 52%, #E2DED5 100%) !important;
  color: #0616a8 !important;
  border: 0 !important; border-radius: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(4,8,40,.12), 0 2px 4px rgba(4,8,40,.2), 0 10px 22px rgba(4,8,40,.26) !important;
}
.sz-tabs [role="tab"][aria-selected="true"]::after,
.ss-topcard::after,
table.bl-hometable .res-link.aktion::after {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; z-index: 1; pointer-events: none;
  background: repeating-linear-gradient(90deg,#0016a8 0 2px,#0818d8 2px 4px,#0016a8 4px 6px,#cc1d0a 6px 8px,#f82818 8px 10px,#cc1d0a 10px 12px);
}
/* Platz fuer die Naht entfaellt: Naht seit 30.10.2026 entfernt, siehe Block "Ohne Naht" am Ende */

/* ===== Exklusiv-Partner-Leiste (Verein & Jugend, ueber den News): zwei Gruppen, Ueberblendung alle 4 s ===== */
.partner-bar .pb-sets { display: grid; flex: 1 1 auto; min-width: 0; }
.partner-bar .pb-set { grid-area: 1 / 1; display: flex; align-items: center; justify-content: space-evenly; gap: clamp(.9rem, 2vw, 1.8rem);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .6s ease, transform .6s ease, visibility 0s .6s; }
.partner-bar .pb-set.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .6s ease, transform .6s ease, visibility 0s 0s; }
.partner-bar .pb-set img { filter: none; opacity: 1; }
@media (max-width: 640px) {
  .partner-bar .pb-sets { width: 100%; }
  .partner-bar .pb-set { flex-wrap: wrap; row-gap: .6rem; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .partner-bar .pb-set { transition: none; transform: none; } }
/* Premium-Partner-Leiste (Bundesliga, unter den Videos): nicht angeheftet, sonst wie die Exklusiv-Leiste */
.partner-bar.pb-static { position: relative !important; top: auto !important; }

/* Partner-Leisten (Exklusiv + Premium) groesser: mehr Hoehe, groessere Logos */
.partner-bar { padding-block: 1.4rem !important; }
.partner-bar .pb-set img { height: clamp(40px, 4.2vw, 64px) !important; }
.partner-bar .label { font-size: clamp(.74rem, 1vw, .92rem) !important; }
.partner-bar.is-stuck { padding-block: .6rem !important; }
.partner-bar.is-stuck .pb-set img { height: clamp(28px, 2.8vw, 40px) !important; }
@media (max-width: 640px) { .partner-bar { padding-block: 1.1rem !important; } .partner-bar .pb-set { flex-wrap: nowrap; gap: .5rem; justify-content: space-between; } .partner-bar .pb-set a { flex: 1 1 0; justify-content: center; } .partner-bar .pb-set img { height: auto !important; max-height: 48px; width: 100%; object-fit: contain; } }

/* ===== Mediathek (bundesliga/videos.html) ===== */
.mt-feat { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.4rem); align-items: center; margin-bottom: clamp(2rem, 4vw, 3rem); }
.mt-feat-card { aspect-ratio: 16 / 9; }
.mt-feat-card .vid-play { transform: scale(1.4); }
.mt-feat-card .vid-txt { display: none; }
.mt-feat-txt .kicker { display: block; font: 700 .72rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #ffb3b3; margin-bottom: .6rem; }
.mt-feat-txt h3 { margin: 0 0 .8rem; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.05; }
.mt-feat-txt p { color: var(--fg-dim); max-width: 46ch; }
.mt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: 1.2rem !important; }
.mt-tabs [role="tab"] small { margin-left: .35rem; font-weight: 700; opacity: .6; }
.mt-hl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mt-sh { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1000px) { .mt-feat { grid-template-columns: 1fr; } .mt-hl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mt-sh { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mt-hl { grid-template-columns: 1fr; } .mt-sh { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== Mediathek: Hauptreiter, Fotos, Spieltagskarten ===== */
.mt-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.4rem; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.mt-bar .sz-tabs { margin: 0; }
.mt-heft { display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.2rem; font: 700 .78rem/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: #fff; text-decoration: none; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); transition: background .2s, color .2s; }
.mt-heft:hover, .mt-heft:focus-visible { background: #fff; color: #0616a8; }
.mt-sub { margin-top: .4rem; }
.mt-fotos { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: .7rem; }
.mt-fotos .mt-big { grid-column: span 2; grid-row: span 2; }
.mt-karten { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.mt-karte { display: flex; flex-direction: column; color: #fff; text-decoration: none; background: rgba(4,18,126,.35); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); transition: transform .25s ease, box-shadow .25s ease; }
.mt-karte:hover, .mt-karte:focus-visible { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.4), 0 12px 28px rgba(2,8,60,.45); }
.mt-karte .card-frame { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; display: block; background: #04127e; }
.mt-karte-txt { display: flex; flex-direction: column; gap: .3rem; padding: .8rem .9rem 1rem; }
.mt-karte-txt .kicker { font: 700 .66rem/1.2 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: #ffb3b3; }
.mt-karte-txt b { font-size: .92rem; line-height: 1.25; }
.mt-karte-txt em { font: 800 1.2rem/1 var(--font-display); font-style: normal; }
@media (max-width: 1000px) { .mt-karten { grid-template-columns: repeat(3, minmax(0, 1fr)); } .mt-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .mt-karten { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mt-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mt-bar { flex-direction: column; align-items: stretch; } .mt-heft { justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .mt-karte { transition: none; } }

/* ===== Mediathek Verein & Jugend (mediathek.html): Alben aus den News + Mannschaftsfotos ===== */
.mt-album + .mt-album { margin-top: clamp(2rem, 4vw, 3rem); }
.mt-album-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .4rem 1.4rem; margin-bottom: 1rem; }
.mt-album-head .kicker { display: block; font: 700 .7rem/1.2 var(--font-display); letter-spacing: .16em; text-transform: uppercase; color: #ffb3b3; margin-bottom: .35rem; }
.mt-album-head h3 { margin: 0; font-size: clamp(1.2rem, 2.2vw, 1.6rem); line-height: 1.1; }
.mt-album-grid { margin-top: 0; }
.mt-teamfotos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.mt-teamfoto { margin: 0; background: rgba(4,18,126,.35); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.mt-teamfoto > a { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.mt-teamfoto figcaption { padding: .7rem .9rem .85rem; font: 700 .9rem/1.2 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.mt-teamfoto figcaption a { display: inline; aspect-ratio: auto; overflow: visible; background: none; color: #fff; text-decoration: none; }
.mt-teamfoto figcaption a:hover, .mt-teamfoto figcaption a:focus-visible { text-decoration: underline; }
@media (max-width: 1000px) { .mt-teamfotos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mt-teamfotos { grid-template-columns: 1fr; } }

/* ===== Spielplan (Verein & Jugend): ein Abschnitt mit vier Reitern ===== */
.sp-tabs { margin-bottom: clamp(1.4rem, 3vw, 2rem); }
.sp-panel > .ar-bar:first-child, .sp-panel > .table-wrap:first-child { margin-top: 0; }
@media (max-width: 700px) {
  .sp-tabs { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .sp-tabs [role="tab"] { font-size: .7rem; letter-spacing: .06em; padding: .8rem .5rem; }
}

/* ===== Kontaktformular: Datenschutz-Bestaetigung (Checkbox statt Vollbreite-Eingabefeld) ===== */
.field-check label { display: flex; align-items: flex-start; gap: .7rem; font-weight: 400; font-size: .9rem; line-height: 1.5; cursor: pointer; }
.field-check input[type="checkbox"] { width: 1.15rem; height: 1.15rem; flex: none; margin: .18rem 0 0; padding: 0; accent-color: #f82818; }
.field-check a { color: inherit; text-decoration: underline; }

/* ===== Spielkarten mobil kompakt (Naechste Spiele, Ergebnisse, Spielplaene) =====
   Zeile 1: Datum links | Team bzw. Spieltag rechts
   Zeile 2: Paarung (Logo + Name je Seite, kleiner)
   Zeile 3: Ergebnis, Liga, Halle, Aktionen nebeneinander, ohne Bezeichnungen */
@media (max-width: 720px) {
  table.schedule:has(td.pairing) tbody tr { display: flex !important; flex-wrap: wrap; align-items: center; column-gap: .8rem; row-gap: .15rem; padding: .7rem .9rem !important; margin-bottom: .55rem !important; }
  table.schedule:has(td.pairing) tbody tr td:not(.pairing) { display: block !important; padding: 0 !important; text-align: left !important; order: 3; flex: 0 1 auto; min-width: 0;
    font-size: .8rem; line-height: 1.3; color: rgba(255,255,255,.78); }
  table.schedule:has(td.pairing) tbody tr td:not(.pairing)::before { content: none !important; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Datum"] { order: 1; flex: 1 1 auto; font: 700 .78rem/1.2 var(--font-display) !important; letter-spacing: .06em; color: #fff; white-space: normal !important; }
  table.schedule:has(td.pairing) tbody tr td:is([data-label="Team"], [data-label="Spieltag"]) { order: 1; flex: 0 0 auto; text-align: right !important;
    font: 700 .7rem/1.2 var(--font-display) !important; letter-spacing: .12em; text-transform: uppercase; color: #ffb3b3; }
  table.schedule:has(td.pairing) tbody tr td.pairing { order: 2; flex: 0 0 100%; margin: .35rem 0 .3rem !important; padding: .45rem 0 !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club { gap: .25rem !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-ic { width: 34px !important; height: 34px !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-ic img, table.schedule:has(td.pairing) tbody tr td.pairing .club-logo { max-width: 34px !important; max-height: 34px !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-nm { font-size: .76rem !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .pair > .score, table.schedule:has(td.pairing) tbody tr td.pairing .pair > .vs,
  table.schedule:has(td.pairing) tbody tr td.pairing .pair::after { margin-top: -.9rem !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .vs, table.schedule:has(td.pairing) tbody tr td.pairing .pair::after { font-size: 1.15rem !important; }
  /* Ergebnis vorne in der unteren Zeile, Liga/Halle dahinter als Trenner-Liste */
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] { order: 3; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .score { font-size: .85rem; padding: .2rem .5rem; }
  table.schedule:has(td.pairing) tbody tr td:is([data-label="Liga"], [data-label="Halle"]) { flex: 1 1 0; min-width: 40%; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Halle"] { text-align: right !important; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .res-link, table.schedule:has(td.pairing) tbody tr td .res-link { align-self: auto; }
}
@media (max-width: 720px) {   /* reine Spieltagsnummer auf der Karte als "Spieltag 6" */
  table.schedule:has(td.pairing) tbody tr td.st-nr::before { content: "Spieltag " !important; display: inline !important; font: inherit; letter-spacing: inherit; color: inherit; }
}

/* ===== Spielplan > Tabellen & Spiele: "Spiele der SG BBM" mit Vereinslogos ===== */
table.ar-games td.ar-ha { font: 700 .72rem/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.7); white-space: nowrap; }
table.ar-games tr.ar-played td[data-label="Datum"] { color: rgba(255,255,255,.65); }
table.ar-games td.pairing .pair { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .3rem .9rem; }
table.ar-games td.pairing .pair > .club:last-child { justify-self: start; }
table.ar-games td.pairing .score, table.ar-games td.pairing .score-leer { justify-self: center; }
table.ar-games td.pairing .vs { font: 800 .85rem/1 var(--font-display) !important; color: rgba(255,255,255,.5); justify-self: center; }
table.ar-games td.pairing .vs::after { content: none !important; }
table.ar-games .ar-bericht { display: block; margin-top: .25rem; font: 700 .68rem/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: #ffb3b3; }
table.ar-games td[data-label="Halle"] { font-size: .85rem; }
.tt-table .c-tm .club-ic { width: 26px; height: 26px; }
@media (max-width: 720px) {
  table.schedule.ar-games:has(td.pairing) tbody tr td.ar-ha { order: 1 !important; flex: 0 0 auto; text-align: right !important; color: #ffb3b3; font-size: .68rem !important; }
  table.ar-games .ar-bericht { display: inline; margin: 0 0 0 .6rem; }
  table.schedule.ar-games:has(td.pairing) tbody tr td[data-label="Halle"] { flex: 1 1 100% !important; text-align: left !important; }
}

/* ===== Bundesliga-Startseite: Social-Karten 2026/27 (Endstand, Match Day, Spielplan) + Fanshop-Banner ===== */
.bl-trio .card-frame.sc-card { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; display: block; background: #efeee9; }
.bl-trio .card-frame.sc-card iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
.bl-plan .body { display: flex; flex-direction: column; gap: .9rem; padding: 1.2rem 1.4rem 1.4rem; flex: 1; }
.bl-plan .kicker { font: 700 .72rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #ffb3b3; }
.sc-plan { list-style: none; margin: 0; padding: 0; }
.sc-plan li { display: grid; grid-template-columns: 5.2rem 1fr auto; gap: .6rem; align-items: baseline; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: .9rem; }
.sc-plan b { font-family: var(--font-display); letter-spacing: .04em; }
.sc-plan .is-home b { color: #ff8a80; } .sc-plan .is-away b { color: #9fb4ff; }
.sc-plan em { font-style: normal; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; opacity: .75; white-space: nowrap; }
.bl-plan .nc-actions { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.bl-plan .nc-actions .button { width: 100%; justify-content: center; }

.fv-b { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); align-items: center; margin-top: clamp(2rem, 4vw, 3rem);
        background: var(--bl-polish); box-shadow: var(--bl-shadow); color: #fff; overflow: hidden; position: relative; isolation: isolate; }
.fv-b-img { display: block; cursor: pointer; }
.fv-b-img img { width: 100%; height: auto; aspect-ratio: 1920 / 720; object-fit: cover; display: block; transition: transform .6s ease; }
.fv-b-img:hover img { transform: scale(1.02); }
.fv-b-txt { display: flex; flex-direction: column; gap: .75rem; padding: 1.4rem 1.8rem 1.4rem .6rem; }
.fv-b .kicker { font: 700 .72rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #ffb3b3; }
.fv-b h3 { margin: 0; font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.05; color: #fff; }
.fv-b p { margin: 0; color: rgba(255,255,255,.8); font-size: .9rem; }
.fv-chips { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.fv-chips a { display: flex; align-items: center; gap: .6rem; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); padding: .5rem .9rem .5rem .5rem; color: #fff; text-decoration: none; transition: background .2s; }
.fv-chips a:hover { background: rgba(255,255,255,.18); }
.fv-chips img { width: 96px; height: 96px; object-fit: cover; flex: none; }
.fv-chips span { display: flex; flex-direction: column; font: 700 .95rem/1.2 var(--font-display); text-transform: uppercase; letter-spacing: .04em; color: #fff; }
.fv-chips em { font-style: normal; color: #ffb3b3; margin-top: .35rem; font-size: 1.15rem; }
@media (max-width: 1000px) { .bl-trio .bl-plan { grid-column: 1 / -1; } }
@media (max-width: 900px) { .fv-b { grid-template-columns: 1fr; } .fv-b-txt { padding: .2rem 1.2rem 1.4rem; } }
@media (min-width: 561px) and (max-width: 900px) { .fv-chips { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .fv-chips img { width: 80px; height: 80px; } }
@media (prefers-reduced-motion: reduce) { .fv-b-img img { transition: none; } }

/* ===== Jobs & Ehrenamt (jobs-ehrenamt.html, Admin > Verein-Texte > Jobs & Ehrenamt) ===== */
  .jb-lead { max-width: 64ch; color: var(--fg-dim); margin: 0 0 1.6rem; }
  .jb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.9rem, 2vw, 1.4rem); }
  .jb-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .jb-card { display: flex; flex-direction: column; gap: .6rem; padding: 1.3rem 1.3rem 1.4rem; }
  .jb-card h3 { margin: 0; font-size: 1.2rem; line-height: 1.15; }
  .jb-card p { margin: 0; color: var(--fg-dim); font-size: .92rem; }
  .jb-kick { font: 700 .7rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: var(--accent, #f82818); }
  .jb-facts { list-style: none; margin: .2rem 0 .4rem; padding: 0; display: grid; gap: .3rem; font-size: .85rem; }
  .jb-facts li { padding-left: 1.2rem; position: relative; }
  .jb-facts li::before { content: ""; position: absolute; left: 0; top: .5em; width: .55rem; height: .55rem; background: #f82818; transform: skewX(-18deg); }
  .jb-card .button { margin-top: auto; align-self: flex-start; }
  .jb-hl { box-shadow: inset 0 4px 0 #f82818, var(--shadow, 0 14px 34px rgba(4,8,40,.35)); }
  .jb-why { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
  .jb-why li { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
  .jb-why b { font: 700 1.05rem/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
  .jb-why span { color: var(--fg-dim); font-size: .9rem; }
  .jb-contact { margin-top: 1.6rem; color: var(--fg-dim); }
  @media (max-width: 1100px) { .jb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .jb-why { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 760px) { .jb-grid-3 { grid-template-columns: 1fr; } }
  @media (max-width: 560px) { .jb-grid, .jb-why { grid-template-columns: 1fr; } }

/* ===== Mobil: Spielkarten und Tabellen im HBL-Aufbau, SG-Design =====
   Karte: Datum mittig oben, Paarung mit Ergebnis in der Mitte, Spieltag/Team · Liga · Halle mittig darunter.
   Tabelle: echte kompakte Tabelle (Platz, Logo, Zahlen) statt Einzelkarten, wischbar, Zonenlinien. */
@media (max-width: 720px) {
  table.schedule:has(td.pairing) tbody tr { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: baseline; position: relative; text-align: center; padding: 1rem .9rem .95rem !important; margin-bottom: .7rem !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.14), inset 3px 0 0 #f82818, 0 10px 24px rgba(4,8,40,.34); }
  table.schedule:has(td.pairing) tbody tr td:not(.pairing) { display: block !important; order: 3; flex: 0 1 auto; min-width: 0; padding: 0 !important; text-align: center !important;
    font-size: .76rem !important; line-height: 1.5 !important; font-weight: 400; letter-spacing: .01em !important; text-transform: none !important; color: rgba(255,255,255,.72) !important; }
  /* Datum als Kopfzeile */
  table.schedule:has(td.pairing) tbody tr td[data-label="Datum"] { order: 1; flex: 0 0 100%; margin-bottom: .55rem;
    font: 700 .8rem/1.2 var(--font-display) !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: #fff !important; }
  /* Paarung: Logos nebeneinander, Mitte fuer Ergebnis bzw. Doppelpunkt */
  table.schedule:has(td.pairing) tbody tr td.pairing { display: block !important; order: 2; flex: 0 0 100%; margin: 0 0 .55rem !important; padding: 0 !important; background: none !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing::before { content: none !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .pair { display: grid !important; grid-template-columns: minmax(0,1fr) 5.6rem minmax(0,1fr) !important; align-items: start !important; gap: 0 .3rem !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club { gap: .4rem !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-ic { width: 44px !important; height: 44px !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-ic img, table.schedule:has(td.pairing) tbody tr td.pairing .club-logo { max-width: 44px !important; max-height: 44px !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .club-nm { font-size: .78rem !important; font-weight: 700 !important; line-height: 1.2 !important; color: #fff !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .pair > .score, table.schedule:has(td.pairing) tbody tr td.pairing .pair > .score-leer,
  table.schedule:has(td.pairing) tbody tr td.pairing .pair > .vs, table.schedule:has(td.pairing) tbody tr td.pairing .pair::after {
    grid-column: 2; grid-row: 1; align-self: start !important; justify-self: center; margin: 0 !important; min-height: 44px; display: flex; align-items: center; }
  table.schedule:has(td.pairing) tbody tr td.pairing .vs, table.schedule:has(td.pairing) tbody tr td.pairing .pair::after { font: 800 1.2rem/1 var(--font-display) !important; color: rgba(255,255,255,.45) !important; }
  table.schedule:has(td.pairing) tbody tr td.pairing .pair > .score { font: 400 1.4rem/1 var(--font-hero) !important; padding: .3rem .5rem !important; min-height: 0; margin-top: .45rem !important; white-space: nowrap; }
  /* Bundesliga: Ergebnis-Zelle liegt ueber der Mitte der Paarung (Polster 1rem + Datumzeile + Abstand + halbe Logohoehe) */
  table.schedule:has(td.pairing) tbody tr:has(td[data-label="Ergebnis"]) td.pairing .vs { visibility: hidden; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] { position: absolute; left: 50%; top: calc(1rem + .96rem + .55rem + 22px); transform: translate(-50%, -50%);
    font: 400 1.3rem/1 var(--font-hero) !important; color: rgba(255,255,255,.5) !important; white-space: nowrap; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .res-link { display: inline-flex !important; flex-direction: column; align-items: center; gap: .15rem; padding: .3rem .55rem .25rem; margin: 0;
    font: 400 1.4rem/1 var(--font-hero) !important; color: #fff; border-left: 0; border-bottom: 3px solid rgba(255,255,255,.35); }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .res-link small { font-size: .5rem; letter-spacing: .1em; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .res-link.win { border-color: #1fa64a; }
  table.schedule:has(td.pairing) tbody tr td[data-label="Ergebnis"] .res-link.lose { border-color: #ff5a4a; background: rgba(248,40,24,.22); }
  /* Fusszeile: Spieltag / Team · Liga · Halle, durch Punkte getrennt */
  table.schedule:has(td.pairing) tbody tr td:is([data-label="Team"], [data-label="Spieltag"], .ar-ha) { color: #ffb3b3 !important; font-weight: 700 !important; }
  table.schedule:has(td.pairing) tbody tr td.st-nr::before { content: "Spieltag " !important; display: inline !important; margin: 0 !important; color: inherit !important; }
  table.schedule:has(td.pairing) tbody tr td:not(.pairing):not([data-label="Datum"]):not([data-label="Ergebnis"]):not(.c-aktion):not(:empty) ~ td:not(.pairing):not([data-label="Ergebnis"]):not(.c-aktion):not(:empty)::before {
    content: "·" !important; display: inline !important; margin: 0 .45rem; color: rgba(255,255,255,.4) !important; letter-spacing: 0; }
  table.schedule:has(td.pairing) tbody tr { column-gap: 0 !important; row-gap: 0 !important; }
  table.schedule:has(td.pairing) tbody tr td { border: 0 !important; }
  /* Live/Tickets-Knopf als eigene Zeile unter der Karte */
  table.schedule:has(td.pairing) tbody tr td.c-aktion { order: 5; flex: 0 0 100%; margin-top: .65rem; }
  table.schedule:has(td.pairing) tbody tr td.c-aktion .res-link { display: inline-flex !important; flex-direction: row; gap: .4rem; align-items: baseline; font-size: 1rem !important; padding: .45rem .9rem; }
  table.ar-games .ar-bericht { display: inline !important; margin: 0 0 0 .5rem !important; }

  /* --- Tabellen (Bundesliga + Vereinsligen) --- */
  .table-wrap.bl-tabelle-wrap, .tt-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  table.schedule.bl-tabelle { display: table !important; width: 100%; border-collapse: collapse; font-size: .8rem; font-variant-numeric: tabular-nums; }
  table.schedule.bl-tabelle thead { display: table-header-group !important; }
  table.schedule.bl-tabelle tbody { display: table-row-group !important; }
  table.schedule.bl-tabelle tr { display: table-row !important; margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; }
  table.schedule.bl-tabelle th, table.schedule.bl-tabelle td { display: table-cell !important; padding: .55rem .3rem !important; border-bottom: 1px solid rgba(255,255,255,.1); text-align: center !important; white-space: nowrap; }
  table.schedule.bl-tabelle td::before { content: none !important; }
  table.schedule.bl-tabelle thead th { font: 700 .62rem/1 var(--font-display) !important; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6);
    padding-top: .8rem !important; padding-bottom: .7rem !important; border-bottom: 2px solid #f82818; }
  table.schedule.bl-tabelle td.pl { font: 400 1rem/1 var(--font-hero) !important; width: 2rem; color: #fff; }
  table.schedule.bl-tabelle td.pl::after { content: none !important; }
  table.schedule.bl-tabelle th:nth-child(2) { text-align: left !important; min-width: 0 !important; width: 1%; }
  table.schedule.bl-tabelle td.team { width: 1%; padding-right: .5rem !important; }
  table.schedule.bl-tabelle td.team { min-width: 0 !important; text-align: left !important; }
  table.schedule.bl-tabelle td.team .club { display: flex; align-items: center; gap: .5rem; }
  table.schedule.bl-tabelle td.team .club-ic { width: 28px; height: 28px; flex: none; display: flex; align-items: center; justify-content: center; }
  table.schedule.bl-tabelle td.team .club-logo { max-width: 28px; max-height: 28px; width: auto; height: auto; }
  table.schedule.bl-tabelle td.team .club-nm { display: none !important; }
  table.schedule.bl-tabelle td.pkt { font-weight: 800; color: #fff; }
  /* sichtbar: Pl. | Logo | Sp | Pkt | S | U | N | Tore | +/-   (Form-Spalte ausgeblendet) */
  table.schedule.bl-tabelle td:nth-child(n+5):nth-child(-n+9), table.schedule.bl-tabelle th:nth-child(n+5):nth-child(-n+9) { display: table-cell !important; }
  table.schedule.bl-tabelle td.form, table.schedule.bl-tabelle th:last-child { display: none !important; }
  table.schedule.bl-tabelle tr.sg td { background: rgba(255,255,255,.16) !important; color: #fff; font-weight: 700; }
  table.schedule.bl-tabelle tr.sg td.pl { box-shadow: inset 3px 0 0 #f82818; }
  /* Zonen: nach Platz 2 und 4 (Europa), vor 17/18 (Abstieg) */
  table.schedule.bl-tabelle tbody tr:nth-child(2) td, table.schedule.bl-tabelle tbody tr:nth-child(4) td { border-bottom: 1px solid rgba(255,255,255,.6); }
  table.schedule.bl-tabelle tbody tr:nth-last-child(3) td { border-bottom: 1px solid #ff5a4a; }

  :is(.dsn-card, body) .tt-table { font-size: .8rem; font-variant-numeric: tabular-nums; }
  :is(.dsn-card, body) .tt-table th, :is(.dsn-card, body) .tt-table td { padding: .55rem .3rem; border-bottom-color: rgba(255,255,255,.1); }
  :is(.dsn-card, body) .tt-table thead th { font: 700 .62rem/1 var(--font-display); letter-spacing: .12em; color: rgba(255,255,255,.6); border-bottom: 2px solid #f82818; }
  :is(.dsn-card, body) .tt-table .c-rk { font: 400 1rem/1 var(--font-hero); color: rgba(255,255,255,.85); width: 2rem; }
  :is(.dsn-card, body) .tt-table .c-tm { white-space: normal; }
  :is(.dsn-card, body) .tt-table .c-tm .club-nm { font-size: .78rem; line-height: 1.2; }
  :is(.dsn-card, body) .tt-table tbody tr.is-ours { background: none; }
  :is(.dsn-card, body) .tt-table tbody tr.is-ours td { background: rgba(255,255,255,.16); }
  :is(.dsn-card, body) .tt-table tbody tr.is-ours .c-rk { box-shadow: inset 3px 0 0 #f82818; color: #fff; }
}

/* ===== Handy-Menue (alle Formate, iPhone SE bis Pro Max + Querformat) =====
   Panel rechts ueber die volle Hoehe (100dvh), eigener Scroll, Notch/Home-Indikator (safe-area),
   abgedunkelte Seite dahinter, feste Schriftgroessen statt vw. Schliesst ueber X, Link oder Tipp daneben. */
@media (max-width: 900px) {
  body.nav-open { overflow: hidden; }
  body.nav-open .site-header, body.nav-open .site-header .inner { transform: none !important; filter: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  body.nav-open .site-header::after { content: "" !important; display: block !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    width: auto !important; height: auto !important; max-width: none !important; max-height: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
    transform: none !important; opacity: 1 !important; clip-path: none !important; -webkit-mask: none !important; mask: none !important; background-image: none !important; z-index: 0;
    background: rgba(4,8,40,.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
  body.nav-open .site-header .inner { background: none !important; box-shadow: none !important; }
  body.nav-open .site-header .inner > .nav-toggle, body.nav-open .site-header .inner > .nav-search-mob { visibility: hidden !important; }

  .site-header .inner > .main-nav.open {
    position: fixed !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: auto !important;
    width: min(86vw, 380px) !important; height: 100vh !important; height: 100dvh !important; max-height: none !important;
    margin: 0 !important; padding: 0 0 calc(1.2rem + env(safe-area-inset-bottom)) !important; z-index: 5 !important;
    display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 0 !important;
    overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    border: 0 !important; box-shadow: -18px 0 40px rgba(4,8,40,.35) !important; animation: navIn .28s ease both; }
  @keyframes navIn { from { transform: translateX(100%); } to { transform: none; } }
  .site-header .inner > .main-nav.open::after { content: none !important; }
  /* Kopf: Wappen + Name, bleibt beim Scrollen stehen */
  .site-header .inner > .main-nav.open::before { position: sticky !important; top: 0; z-index: 3; flex: none; order: 0;
    min-height: 0 !important; height: auto !important; box-sizing: border-box;
    padding: calc(env(safe-area-inset-top) + 1rem) 3.6rem 1rem calc(1.25rem + 40px + .75rem) !important;
    background-position: 1.25rem calc(env(safe-area-inset-top) + .75rem) !important; background-size: 40px 40px !important;
    font-size: 1rem !important; line-height: 1.4 !important; letter-spacing: .04em; white-space: nowrap;
    background-color: #FCFBF9 !important; box-shadow: 0 1px 0 rgba(15,22,54,.1); }
  .site-header .inner > .main-nav.open > .nav-close { position: absolute !important; top: calc(env(safe-area-inset-top) + .65rem) !important; right: .7rem !important;
    transform: none !important; width: 44px !important; height: 44px !important; z-index: 4 !important; margin: 0 !important; }
  /* Eintraege */
  .site-header .inner > .main-nav.open > a:not(.nav-cta), .site-header .inner > .main-nav.open .nav-sub-label {
    display: flex !important; align-items: center; min-height: 50px; box-sizing: border-box; width: 100% !important; margin: 0 !important;
    padding: .75rem 1.25rem !important; font-size: 1rem !important; line-height: 1.2 !important; letter-spacing: .05em; }
  .site-header .inner > .main-nav.open .has-sub { width: 100%; margin: 0 !important; padding: 0 !important; }
  .site-header .inner > .main-nav.open .nav-sub { margin: 0 0 .4rem !important; padding: 0 !important; width: auto !important; }
  .site-header .inner > .main-nav.open .nav-sub a { display: flex !important; align-items: center; min-height: 42px; box-sizing: border-box;
    padding: .55rem 1.25rem .55rem 2rem !important; font-size: .86rem !important; line-height: 1.2 !important; }
  /* Bereichswechsel + Aktionsknopf: volle Breite mit gleichem Rand */
  .site-header .inner > .main-nav.open .button-primary.nav-cta { order: 0; flex: none; display: flex !important; align-items: center; justify-content: center;
    width: auto !important; min-width: 0 !important; min-height: 46px; box-sizing: border-box; margin: .9rem 1.25rem 0 !important;
    padding: .7rem 1rem !important; font-size: .86rem !important; line-height: 1.1 !important; }
  .site-header .inner > .main-nav.open .button-primary.nav-cta.nav-switch { margin: .9rem 1.25rem .5rem !important; }
  .site-header .inner > .main-nav.open .nav-social { display: flex !important; justify-content: center; flex-wrap: wrap; gap: .5rem !important;
    margin: 1.2rem 1.25rem 0 !important; padding: 0 !important; }
  .site-header .inner > .main-nav.open .nav-social .nav-search { display: none !important; }   /* Suche sitzt schon in der Leiste */
  .site-header .inner > .main-nav.open .nav-social a { width: 44px; height: 44px; display: grid !important; place-items: center; }
}
@media (max-width: 900px) {   /* Reihenfolge: Kopf, Bereichswechsel, Links, Probetraining/Tickets, Social */
  .site-header .inner > .main-nav.open > * { order: 1 !important; }
  .site-header .inner > .main-nav.open > .nav-switch { order: 0 !important; }
  .site-header .inner > .main-nav.open > .nav-cta:not(.nav-switch) { order: 2 !important; margin-top: 1.1rem !important; }
  .site-header .inner > .main-nav.open > .nav-social { order: 3 !important; }
}
/* Querformat: niedrige Hoehe -> breiteres Panel, kompaktere Zeilen */
@media (max-width: 950px) and (max-height: 500px) and (orientation: landscape) {
  .site-header .inner > .main-nav.open { width: min(62vw, 440px) !important; padding-right: env(safe-area-inset-right) !important; }
  .site-header .inner > .main-nav.open::before { padding-top: .7rem !important; padding-bottom: .7rem !important; background-position: 1.25rem .45rem !important; }
  .site-header .inner > .main-nav.open > .nav-close { top: .35rem !important; }
  .site-header .inner > .main-nav.open > a:not(.nav-cta), .site-header .inner > .main-nav.open .nav-sub-label { min-height: 42px; padding-block: .5rem !important; }
  .site-header .inner > .main-nav.open .nav-sub a { min-height: 36px; }
}
@media (max-width: 900px) and (prefers-reduced-motion: reduce) { .site-header .inner > .main-nav.open { animation: none; } }

/* ===== Live-Leiste mobil: kompakte Karte rechts neben dem Logo =====
   Hochformat: unter Suche/Menue (zwischen Logo und rechtem Rand). Ab 600px / Querformat: in der Zeile der Buttons.
   Inhalt einzeilig: Status | Logo  Stand bzw. Countdown  Logo | Minute bzw. Anwurfzeit. */
@media (max-width: 900px) {
  .site-header > .live-bar { position: absolute; top: 58px; left: 115px; right: 10px; width: auto !important; margin: 0 !important;
    min-height: 0; box-shadow: 0 8px 20px rgba(4,8,40,.35); }
  .site-header > .live-bar .lb-inner { flex-wrap: nowrap !important; justify-content: center; gap: .4rem !important; padding: .3rem .5rem !important; height: 44px; box-sizing: border-box; }
  .site-header > .live-bar .lb-live { padding: .18rem .4rem; font-size: .58rem !important; letter-spacing: .12em; flex: none; }
  .site-header > .live-bar .lb-live i { width: 6px; height: 6px; }
  .site-header > .live-bar .lb-team { flex: none; }
  .site-header > .live-bar .lb-team img { width: 24px; height: 24px; }
  .site-header > .live-bar .lb-score { font-size: 1.35rem !important; padding: 0 .15rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .site-header > .live-bar .lb-score.pre { font-size: 1.15rem !important; min-width: 4.2ch; text-align: center; }
  .site-header > .live-bar .lb-min { order: 9; flex: none; font-size: .58rem; letter-spacing: .08em; line-height: 1.1; white-space: nowrap; }
  .site-header > .live-bar .lb-meta { display: none !important; }
  body.nav-open .site-header > .live-bar { visibility: hidden; }
}
@media (max-width: 360px) {   /* iPhone SE 1: Zusatztext weg, damit Logos + Stand sicher passen */
  .site-header > .live-bar .lb-min { display: none; }
  .site-header > .live-bar .lb-inner { gap: .3rem !important; padding-inline: .35rem !important; }
}
@media (min-width: 600px) and (max-width: 900px) {
  .site-header > .live-bar { top: 10px; left: 125px; right: 120px; }
  .site-header > .live-bar .lb-inner { height: 42px; }
  .site-header > .live-bar .lb-meta { display: inline !important; order: 10; margin-left: .3rem; font-size: .58rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
}
/* Live-Leiste mobil: in die Zeile der Buttons, vom Logo bis links neben die Suche */
@media (max-width: 900px) {
  .site-header > .live-bar { top: 10px !important; left: 113px !important; right: 119px !important; }
  .site-header > .live-bar .lb-inner { height: 42px !important; padding: .25rem .45rem !important; }
}
@media (max-width: 440px) {
  .site-header > .live-bar .lb-min { display: none; }
  .site-header > .live-bar .lb-live { padding: .15rem .3rem; font-size: .52rem !important; letter-spacing: .08em; }
}
@media (max-width: 400px) {   /* schmal: Status nur als Punkt (live) bzw. weg (vorher) */
  .site-header > .live-bar .lb-live { font-size: 0 !important; padding: 0; background: none; }
  .site-header > .live-bar .lb-live:not(.pre):not(.ended) i { width: 8px; height: 8px; background: #fff; }
  .site-header > .live-bar .lb-live.pre, .site-header > .live-bar .lb-live.ended { display: none; }
  .site-header > .live-bar .lb-inner { gap: .3rem !important; padding-inline: .3rem !important; }
  .site-header > .live-bar .lb-team img { width: 22px; height: 22px; }
  .site-header > .live-bar .lb-score { font-size: 1.2rem !important; }
  .site-header > .live-bar .lb-score.pre { font-size: 1.05rem !important; min-width: 0; }
}
@media (max-width: 340px) {   /* iPhone SE 1 */
  .site-header > .live-bar .lb-team img { width: 18px; height: 18px; }
  .site-header > .live-bar .lb-score { font-size: 1.05rem !important; padding: 0; }
  .site-header > .live-bar .lb-score.pre { font-size: .95rem !important; }
  .site-header > .live-bar .lb-inner { gap: .2rem !important; padding-inline: .2rem !important; }
}

/* Bundesliga-Startseite, Videos: "Mediathek" und "Zum YouTube-Kanal" gleich gross nebeneinander */
.vid-actions { display: grid !important; grid-template-columns: repeat(2, minmax(0, 15rem)); justify-content: end; gap: .7rem !important; }
.vid-actions > a { display: flex !important; align-items: center; justify-content: center; gap: .5rem; width: 100%; min-width: 0 !important; min-height: 3.2rem;
  margin: 0 !important; padding: .65rem .8rem !important; box-sizing: border-box; text-align: center; white-space: nowrap; }
.vid-actions > a img { height: 20px; width: auto; flex: none; }
@media (max-width: 720px) {
  .vid-actions { grid-template-columns: 1fr 1fr; gap: .6rem !important; }
  .vid-actions > a { padding: .65rem .5rem !important; font-size: .76rem !important; letter-spacing: .04em; gap: .45rem; }
  .vid-actions > a img { height: 18px; }
}

/* ===== Karten-Akzentleiste: Blau | Rot | Blau | Rot | Blau (je 6 Unterbalken), steile Schraege oben,
   innen harte Kante (kein seitlicher Auslauf in die Karte) ===== */
.bl-card, .bl-next { --bar: 26px; }
@media (max-width: 900px) { .bl-card, .bl-next { --bar: 20px; } }
.bl-card::before, .bl-next::before {
  width: calc(var(--bar) * 5);
  background: linear-gradient(270deg,
    #0016a8 calc(var(--bar) * 0/6) calc(var(--bar) * 1/6),
    #0818d8 calc(var(--bar) * 1/6) calc(var(--bar) * 2/6),
    #0016a8 calc(var(--bar) * 2/6) calc(var(--bar) * 3/6),
    #0818d8 calc(var(--bar) * 3/6) calc(var(--bar) * 4/6),
    #0016a8 calc(var(--bar) * 4/6) calc(var(--bar) * 5/6),
    #0818d8 calc(var(--bar) * 5/6) calc(var(--bar) * 6/6),
    #cc1d0a calc(var(--bar) * 6/6) calc(var(--bar) * 7/6),
    #f82818 calc(var(--bar) * 7/6) calc(var(--bar) * 8/6),
    #cc1d0a calc(var(--bar) * 8/6) calc(var(--bar) * 9/6),
    #f82818 calc(var(--bar) * 9/6) calc(var(--bar) * 10/6),
    #cc1d0a calc(var(--bar) * 10/6) calc(var(--bar) * 11/6),
    #f82818 calc(var(--bar) * 11/6) calc(var(--bar) * 12/6),
    #0016a8 calc(var(--bar) * 12/6) calc(var(--bar) * 13/6),
    #0818d8 calc(var(--bar) * 13/6) calc(var(--bar) * 14/6),
    #0016a8 calc(var(--bar) * 14/6) calc(var(--bar) * 15/6),
    #0818d8 calc(var(--bar) * 15/6) calc(var(--bar) * 16/6),
    #0016a8 calc(var(--bar) * 16/6) calc(var(--bar) * 17/6),
    #0818d8 calc(var(--bar) * 17/6) calc(var(--bar) * 18/6),
    #cc1d0a calc(var(--bar) * 18/6) calc(var(--bar) * 19/6),
    #f82818 calc(var(--bar) * 19/6) calc(var(--bar) * 20/6),
    #cc1d0a calc(var(--bar) * 20/6) calc(var(--bar) * 21/6),
    #f82818 calc(var(--bar) * 21/6) calc(var(--bar) * 22/6),
    #cc1d0a calc(var(--bar) * 22/6) calc(var(--bar) * 23/6),
    #f82818 calc(var(--bar) * 23/6) calc(var(--bar) * 24/6),
    #0016a8 calc(var(--bar) * 24/6) calc(var(--bar) * 25/6),
    #0818d8 calc(var(--bar) * 25/6) calc(var(--bar) * 26/6),
    #0016a8 calc(var(--bar) * 26/6) calc(var(--bar) * 27/6),
    #0818d8 calc(var(--bar) * 27/6) calc(var(--bar) * 28/6),
    #0016a8 calc(var(--bar) * 28/6) calc(var(--bar) * 29/6),
    #0818d8 calc(var(--bar) * 29/6) 100%);   /* explizit statt repeating: keine rote Restlinie am Rand */
  -webkit-mask-image: linear-gradient(298deg,#000 0 38%,rgba(0,0,0,.5) 55%,rgba(0,0,0,0) 72%);
          mask-image: linear-gradient(298deg,#000 0 38%,rgba(0,0,0,.5) 55%,rgba(0,0,0,0) 72%);
  -webkit-mask-composite: source-over; mask-composite: add; }
.bl-card { padding-right: calc(1rem + var(--bar) * 3); }
.bl-next, body:not(.bl-home) .bl-next { padding-left: calc(clamp(1rem, 2.5vw, 2rem) + var(--bar) * 3); }

/* ===== Karten-Saum skaliert mit der Kartenbreite (Container-Einheiten) =====
   Ein Balkenblock = 5 % der Kartenbreite (min 12 px, max 26 px) -> 5 Bloecke = ca. 25 %; Text bekommt den Rest. */
.bl-card { container-type: inline-size; }
.bl-card::before { --bar: clamp(12px, 5cqw, 26px); }          /* cqw = Breite der Karte (Container) */
@supports not (width: 1cqw) { .bl-card::before { --bar: 16px; } }
.bl-card { padding-right: calc(1.1rem + clamp(36px, 15%, 78px)) !important; }   /* 15 % = 3 Bloecke; % bezieht sich auf die Kartenbreite */

/* "Mehr zur Saison": alle Aktionen als gleicher Knopf, unten buendig in der Textspalte */
.bl-cards-saison { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; align-items: stretch; }
.bl-cards-saison .bl-card { display: flex; flex-direction: column; padding-left: 1.4rem; }
.bl-cards-saison .bl-card > .button { margin-top: auto !important; align-self: stretch !important; width: 100%; min-width: 0 !important; box-sizing: border-box;
  display: flex !important; align-items: center; justify-content: center; gap: .45rem; min-height: 3rem; padding: .7rem .7rem !important;
  font-size: .78rem !important; letter-spacing: .05em; white-space: nowrap; position: relative; z-index: 1; }
.bl-cards-saison .bl-card > .button.nc-dyn img { height: 20px; width: auto; }
.bl-cards-saison .bl-card > p { margin-bottom: 1.2rem; }
@media (max-width: 720px) {
  .bl-cards-saison { grid-template-columns: 1fr !important; }
  .bl-cards-saison .bl-card > .button { align-self: flex-start !important; width: auto; min-width: 13rem !important; }
}

/* ===== Staff-Flipkarten: auf Touch-Geraeten nur per Antippen drehen =====
   :hover bleibt auf iOS/Android nach dem Tippen "kleben" -> Karte drehte beim ersten Tippen doppelt (Hover + Klick)
   und liess sich nicht zurueckdrehen. Ohne echte Maus zaehlt nur .is-flip; Tastatur dreht per Enter/Leertaste. */
@media (hover: none), (pointer: coarse) {
  .ps-staff .fl:hover .fl-in { transform: none; }
  .ps-staff .fl.is-flip .fl-in { transform: rotateY(180deg); }
  .ps-staff .fl { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
}
.ps-staff .fl:focus-visible:not(.is-flip):not(:hover) .fl-in { transform: none; }
.ps-staff .fl:focus-visible { outline: 3px solid #f82818; outline-offset: 4px; }
/* Safari/iOS: backface-visibility greift nur, wenn beide Seiten eine eigene 3D-Ebene haben
   (sonst sieht man die Rueckseite gespiegelt durch die Vorderseite). */
.ps-staff .fl-in { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; }
.ps-staff .fl-f { -webkit-transform: rotateY(0deg) translateZ(1px); transform: rotateY(0deg) translateZ(1px); }
.ps-staff .fl-b { -webkit-transform: rotateY(180deg) translateZ(1px); transform: rotateY(180deg) translateZ(1px); }
.ps-staff .fl-f, .ps-staff .fl-b { -webkit-backface-visibility: hidden; backface-visibility: hidden; }
/* Seitenwechsel unabhaengig von backface-visibility: zur Haelfte der Drehung (.35 s von .7 s) wird
   die jeweils hintere Seite ausgeblendet -> funktioniert auch in Browsern ohne saubere 3D-Rueckseiten. */
.ps-staff .fl-f, .ps-staff .fl-b { transition: visibility 0s linear .35s; }
.ps-staff .fl-b { visibility: hidden; }
.ps-staff .fl.is-flip .fl-b { visibility: visible; }
.ps-staff .fl.is-flip .fl-f { visibility: hidden; }
@media (hover: hover) and (pointer: fine) {
  .ps-staff .fl:hover .fl-b { visibility: visible; }
  .ps-staff .fl:hover .fl-f { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) { .ps-staff .fl-f, .ps-staff .fl-b { transition: none; } }
/* Weiche Drehung: symmetrische Kurve -> Karte steht genau nach der halben Zeit hochkant (90 Grad),
   exakt dann wechselt die sichtbare Seite. Leichtes Anheben in der Mitte fuer mehr Tiefe. */
.ps-staff .fl-in { transition: transform .8s cubic-bezier(.45,.05,.55,.95) !important; }
.ps-staff .fl-f, .ps-staff .fl-b { transition: visibility 0s linear .4s !important; }
.ps-staff .fl { perspective: 1200px; }
@media (prefers-reduced-motion: reduce) { .ps-staff .fl-in, .ps-staff .fl-f, .ps-staff .fl-b { transition: none !important; } }

/* ===== Handy-Menue: Untermenues nur nach Antippen des Menuepunkts (Klasse .is-open per JS) ===== */
@media (max-width: 900px) {
  .site-header .inner > .main-nav .has-sub .nav-sub { display: none !important; }
  .site-header .inner > .main-nav .has-sub.is-open .nav-sub { display: block !important; position: static !important; transform: none !important;
    opacity: 1 !important; visibility: visible !important; animation: subAuf .22s ease both; }
  @keyframes subAuf { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
  .site-header .inner > .main-nav .nav-sub-label { cursor: pointer; justify-content: space-between; -webkit-tap-highlight-color: transparent; }
  .site-header .inner > .main-nav .nav-sub-label::after { transition: transform .2s ease; transform: none !important; }
  .site-header .inner > .main-nav .has-sub.is-open .nav-sub-label::after { transform: rotate(180deg) !important; }
}

/* ===== Spielerkarten: Ebenen-Parallaxe (Werte --px/--py aus js/main.js) =====
   Hintergrund weit hinten (bewegt sich gegenlaeufig am staerksten), Balken mittig, Figur vorn (bewegt sich mit),
   Name/Nummer ganz vorn. Keine Drehung, keine Groessenaenderung der Person; Schatten wandert zur Gegenseite. */
.pcard { --px: 0; --py: 0; --pa: 1; }
@media (max-width: 820px) { .pcard { --pa: .55; } }
.pcard .pc-photo { translate: calc(var(--px) * var(--pa) * -26px) calc(var(--py) * var(--pa) * -16px); scale: 1.08; }
.pcard .pc-tint { translate: calc(var(--px) * var(--pa) * -26px) calc(var(--py) * var(--pa) * -16px); scale: 1.08; }
.pcard .pc-split { translate: calc(var(--px) * var(--pa) * -14px) 0; }
.pcard .pc-marks { translate: calc(var(--px) * var(--pa) * -6px) calc(var(--py) * var(--pa) * -4px); }
.pcard .pc-figure { translate: calc(var(--px) * var(--pa) * 22px) calc(var(--py) * var(--pa) * 10px);
  filter: drop-shadow(calc(var(--px) * var(--pa) * -34px) 26px 30px rgba(0,0,30,.62)) !important; }
.pcard .pc-name, .pcard .pc-num { translate: calc(var(--px) * var(--pa) * 12px) calc(var(--py) * var(--pa) * 6px); }
.pcard .pc-photo, .pcard .pc-tint, .pcard .pc-split, .pcard .pc-figure { will-change: translate; }

/* Team-Slider: mittlere Karte im Deck - Trikotsaum hinten, Figur vorn */
.ps-deck { --px: 0; --py: 0; }
.ps-card.is-active::before { translate: calc(var(--px) * -12px) calc(var(--py) * -6px); }
.ps-fig.is-active img { translate: calc(var(--px) * 18px) calc(var(--py) * 8px);
  filter: drop-shadow(calc(var(--px) * -26px) 18px 30px rgba(0,0,30,.62)); }
@media (prefers-reduced-motion: reduce) {
  .pcard .pc-photo, .pcard .pc-tint, .pcard .pc-split, .pcard .pc-marks, .pcard .pc-figure, .pcard .pc-name, .pcard .pc-num,
  .ps-card.is-active::before, .ps-fig.is-active img { translate: none !important; }
}

/* ===== Datenrechte: Verweis auf die offizielle Quelle bzw. offizielles handball.net-Widget =====
   (Tabelle/Statistik Opel HBL, Spielbetrieb Verein & Jugend; js/main.js + api/lib-bl.php bl_verweis_html) */
.dq-verweis { position: relative; display: flex; flex-direction: column; gap: .55rem; padding: 1.4rem 1.5rem 1.5rem; margin: 0 0 1.5rem;
  background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%); color: #0616a8; border-top: 4px solid #f82818;
  box-shadow: 0 14px 34px rgba(4,8,40,.32); max-width: 760px; }
.dq-verweis .kicker { font: 700 .66rem/1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; color: #f82818; }
.dq-verweis h3 { margin: 0; font: 800 1.35rem/1.1 var(--font-display); text-transform: uppercase; color: #0616a8 !important; }
.dq-verweis h3::before, .dq-verweis h3::after { content: none !important; }
.dq-verweis p { margin: 0; color: #2a3aa6 !important; font-size: .95rem; line-height: 1.55; }
.dq-verweis .dq-klein { font-size: .8rem; color: #5a607e !important; }
.dq-verweis .dq-aktionen { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .4rem; }
.dq-verweis .button { align-self: flex-start; margin-top: .3rem; text-decoration: none !important; }
.dq-verweis .dq-aktionen .button { margin-top: 0; }
.dq-verweis.is-widget { max-width: none; padding: .8rem; }
.dq-verweis .dq-widget { width: 100%; min-height: 560px; border: 0; background: #fff; display: block; }
.dq-verweis .dq-quelle { font-size: .75rem; color: #5a607e !important; }
.dq-verweis .dq-cc { background: none; border: 0; padding: 0; color: #0a1cd6; text-decoration: underline; cursor: pointer; font: inherit; }
.dq-verweis .dq-aktionen .dq-cc.button { color: #fff; text-decoration: none; }
.nd-box .dq-verweis { margin: 0; box-shadow: none; padding: 1rem; }
.nd-box .dq-verweis h3 { font-size: 1.05rem; }
.bl-tabelle-wrap:has(> .dq-verweis), .table-wrap:has(> .dq-verweis) { background: none !important; filter: none !important; padding-top: 0 !important; overflow: visible !important; }
.bl-tabelle-wrap:has(> .dq-verweis)::before, .table-wrap:has(> .dq-verweis)::before { content: none !important; }

/* Menueleiste buendig am oberen Rand und ueber die volle Breite (statt schwebend mit Abstand) – ab Tablet,
   das Handy-Layout hat seinen eigenen Kopf */
@media (min-width: 768px) {
  html body .site-header { padding: 0 !important; }
  html body .site-header .inner { margin: 0 !important; width: 100% !important; max-width: none !important; border-radius: 0 !important; }
}

/* Kompakter Kopf (unter 1400 px): Suche und Hamburger ohne blauen Kasten, als weisse Symbole direkt auf dem Bild.
   Ein weicher Schatten haelt sie auf hellen Bildstellen lesbar. Die Klickflaeche bleibt 42 x 42 px. */
@media (min-width: 768px) and (max-width: 1219px) {
  html body .site-header :is(.nav-toggle, .nav-search-mob),
  html body .site-header :is(.nav-toggle, .nav-search-mob):is(:hover, :focus-visible, :active) {
    background: transparent !important; background-image: none !important; box-shadow: none !important; border: 0 !important; color: #fff !important; }
  html body .site-header .nav-toggle span { background: #fff !important; box-shadow: 0 1px 3px rgba(2,8,40,.55) !important; }
  html body .site-header .nav-search-mob svg { color: #fff !important; filter: drop-shadow(0 1px 3px rgba(2,8,40,.6)); }
  html body .site-header :is(.nav-toggle, .nav-search-mob):hover { opacity: .8; }
  html body .site-header :is(.nav-toggle, .nav-search-mob):focus-visible { outline: 2px solid #fff !important; outline-offset: 2px; }
}

/* Abschnitts-Ueberschriften im schweren Schnitt (Vorlage "FRANZ JAGT"): SG Display Black, eng gesetzt */
#main section h2, #main .ph-txt h2, #main .section-head h2, #main .sbanner-title h2 {
  font-family: var(--font-display-black) !important; font-weight: 900 !important; letter-spacing: -.01em !important;
  -webkit-text-stroke: 0; text-transform: uppercase; }
/* Bundesliga: dort steht der sichtbare Abschnittstitel als Wort neben dem Wappen (ph-txt::before) */
#main .ph-txt[data-ghost]::before { font-family: var(--font-display-black) !important; font-weight: 900 !important; letter-spacing: -.01em !important; }

/* Alle Labels in Grossbuchstaben in der Display-Schrift (Railroad-Gothic-Black-Stil), nicht in Saira.
   Gefunden per Volltext-Pruefung aller Seiten am 30.10.2026. Fliesstext bleibt Saira. */
html body:not(#x-spez) :is(.brand-text small, .kicker, .league, .org-role, .pf-txt small, .count small, .team-breadcrumb,
.team-breadcrumb a, .fs-opt-label, .pm-sizes-label) {   /* :not(#x-spez) hebt die Spezifitaet ueber die Handy-Regeln (mobil-verein.css) */
  font-family: var(--font-display) !important; font-weight: 400 !important; }

/* Alle Buttons und Bedienelemente mit Text in fetter Schrift (Saira 800), vier ID-Stufen: schlaegt auch css/lesbarkeit.css. Schwerer als 800 wird Saira
   bei Groessen um 12-16 px zu eng. Grosse Display-Buttons (SG Display) bleiben, wie sie sind. */
html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) :is(.button, button, [role="button"], .text-link-btn, .nav-cta, .cc-more,
  .partner-fab, .cart-fab, .mv-nav__item, .sg-nav__item, .sg-chip, .sz-tabs [role="tab"], .news-filter button, .open-product) {
  font-weight: 800 !important; }
html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) :is(.button, button, [role="button"], .text-link-btn, .nav-cta, .cc-more,
  .partner-fab, .cart-fab, .mv-nav__item, .sg-nav__item, .sg-chip, .sz-tabs [role="tab"], .news-filter button, .open-product) :is(span, small, b, strong):not(.cc, .count, .lb-score) {
  font-weight: 800 !important; }
/* Buttonschrift etwas groesser (05.11.2026, mit der Umstellung auf Barlow Semi Condensed): Versalhoehe 78 % statt
   70 % der Schriftgroesse, also gut 11 % groessere Buchstaben. font-size-adjust laesst alle font-size-Abstufungen
   der einzelnen Buttons stehen und skaliert nur die Schrift darin. Wert hier aendern, um alle Buttons anzupassen. */
html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) :is(.button, button, [role="button"], .text-link-btn, .nav-cta, .cc-more,
  .partner-fab, .cart-fab, .sg-chip, .sz-tabs [role="tab"], .news-filter button, .open-product) {
  font-size-adjust: cap-height .78; }

/* Text auf hellen Buttons (Polish-Weiss) in Polish-Blau statt Schwarz. .btn-hell/.btn-txt setzt js/main.js. */
html body .btn-hell { color: #0616a8 !important; }
/* Auch bei Hover/Fokus Polish-Blau: ".partner-fab:hover" (trikotkante.css, 0,2,0) setzt sonst Navy #0F1636 */
html body .btn-hell:is(:hover, :focus-visible) { color: #0616a8 !important; }
@supports (-webkit-background-clip: text) or (background-clip: text) {
  html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) .btn-hell .btn-txt {
    background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    color: transparent !important; -webkit-text-fill-color: transparent !important; }
}
/* Der eingefuegte Text-Span uebernimmt sonst Farbregeln der Umgebung (z. B. ".card span"): auf blauen Buttons erbt er die Buttonfarbe */
html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) :not(.btn-hell) > .btn-txt { color: inherit !important; -webkit-text-fill-color: currentColor; background: none; }

/* Partnerleisten-Label ("Talentschmiede-Partner", "Exklusiv-Partner") in Polish-Blau */
@supports (-webkit-background-clip: text) or (background-clip: text) {
  html body:not(#w-pb):not(#x-pb):not(#y-pb):not(#z-pb) .partner-bar .label {
    background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    color: transparent !important; -webkit-text-fill-color: transparent !important; }
}

/* News-Karten in der Schrift der Mediathek-Alben (mediathek.html, .mt-album-head):
   Kicker Saira 700 klein in Rosa, Titel SG Display, Link wie "Zur Meldung" */
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta,
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta :is(time, .ressort) {
  font-family: var(--font-body) !important; font-weight: 700 !important; font-size: 11.2px !important;
  letter-spacing: .05em !important; line-height: 1.2 !important; text-transform: uppercase; color: #ffb3b3 !important; }
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card h3 {
  font-family: var(--font-display) !important; font-size: 25.6px !important; line-height: 1.1 !important; letter-spacing: .01em !important;
  hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }   /* lange Woerter wie STANDORTBESTIMMUNG trennen */
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-grid .news-card .nc-content::after {
  font-family: var(--font-body) !important; font-weight: 700 !important; font-size: 15.2px !important;
  letter-spacing: .05em !important; color: #ff9a9a !important; }
@media (max-width: 767.98px) {
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta,
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta :is(time, .ressort) { font-size: 11px !important; color: #FFB3A8 !important; }
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card h3 { font-size: 20px !important; }
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-grid .news-card .nc-content::after { font-size: 12px !important; color: #FFB3A8 !important; }
}

/* Text auf blauen Buttons in Polish-Weiss (Verlauf wie die hellen Flaechen). .btn-blau setzt js/main.js. */
@supports (-webkit-background-clip: text) or (background-clip: text) {
  html body:not(#w-btn):not(#x-btn):not(#y-btn):not(#z-btn) .btn-blau > .btn-txt {
    background: linear-gradient(160deg, #FFFFFF 0%, #EFEDE8 52%, #D6D0C4 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    color: transparent !important; -webkit-text-fill-color: transparent !important; }
}

/* Menueleiste: Icons auf den blauen Buttons (Suche, Facebook, Instagram, TikTok, YouTube) in Polish-Weiss – nur volle Leiste */
@media (min-width: 1220px) {
  html body .site-header :is(.nav-social a, .nav-search:not(.nav-search-mob)) svg :is(path, circle, rect)[fill="currentColor"],
  html body .site-header :is(.nav-social a, .nav-search:not(.nav-search-mob)) svg[fill="currentColor"] :is(path, circle, rect):not([fill]) { fill: url(#sgPolishWeiss) !important; }
  html body .site-header :is(.nav-social a, .nav-search:not(.nav-search-mob)) svg :is(path, circle, rect)[stroke="currentColor"],
  html body .site-header :is(.nav-social a, .nav-search:not(.nav-search-mob)) svg[stroke="currentColor"] :is(path, circle, rect) { stroke: url(#sgPolishWeiss) !important; }
}
/* Hamburger-Menue: weisse Social-Kacheln mit Symbolen in Polish-Blau */
@media (max-width: 1219px) {
  html body .site-header .main-nav .nav-social a svg :is(path, circle, rect)[fill="currentColor"],
  html body .site-header .main-nav .nav-social a svg[fill="currentColor"] :is(path, circle, rect):not([fill]) { fill: url(#sgPolishBlau) !important; }
  html body .site-header .main-nav .nav-social a svg :is(path, circle, rect)[stroke="currentColor"],
  html body .site-header .main-nav .nav-social a svg[stroke="currentColor"] :is(path, circle, rect) { stroke: url(#sgPolishBlau) !important; }
}

/* News-Karten-Schrift wie die Video-Karten (.vid-card .vid-txt): Titel Saira 700 weiss in Versalien,
   Datum/Mannschaft Saira 700 klein in Rosa. Ersetzt die Titelgroesse des Mediathek-Blocks oben. */
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card h3 {
  font-family: var(--font-body) !important; font-weight: 700 !important; font-size: 20.8px !important;
  line-height: 1.15 !important; letter-spacing: .05em !important; text-transform: uppercase; color: #fff !important; }
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta,
html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta :is(time, .ressort) {
  font-size: 11.52px !important; letter-spacing: .05em !important; color: #ff9a9a !important; }
@media (max-width: 767.98px) {
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card h3 { font-size: 16px !important; }
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta,
  html body:not(#w-nc):not(#x-nc):not(#y-nc):not(#z-nc) .news-card .meta :is(time, .ressort) { font-size: 11.52px !important; color: #ff9a9a !important; }
}

/* ===== Ohne Naht (30.10.2026) =====
   Die blau-rote 12px-Trikotnaht links an Buttons, Reitern, Aktionen, Untermenue und Bestwert-Karten ist entfernt.
   Polish (Verlauf, Schatten, Hover) bleibt wie gehabt. Den linken Innenabstand gleicht js/main.js an den
   rechten an (die alten Regeln liessen Platz fuer die Naht).
   Grosse Streifen-Flaechen (Hero, Spielerkarten, Kopfleisten) sind Gestaltung und bleiben. */
html body:not(#w-akz):not(#x-akz):not(#y-akz) :is(.button-primary:not(.cc-box .button), .main-nav .button-primary.nav-cta, table.bl-hometable .res-link.aktion, .sz-tabs [role="tab"], .ss-topcard, .vid-lb-play, .nc-dyn)::after,
html body:not(.mv-page):not(#w-akz):not(#x-akz):not(#y-akz) :is(.button-blue, .partner-fab, .text-link-btn, .text-link, .ps-skip, .main-nav .nav-sub, .ss-topcard, .vid-lb-play)::before {
  content: none !important; display: none !important; }
/* Handy-Layout (body.mv-page unter 768 px) nutzt ::before fuer das SG-Zeichen, dort nicht ausblenden */
@media (min-width: 768px) {
  html body.mv-page:not(#w-akz):not(#x-akz):not(#y-akz) :is(.button-blue, .partner-fab, .text-link-btn, .text-link, .ps-skip, .main-nav .nav-sub, .ss-topcard, .vid-lb-play)::before { content: none !important; display: none !important; }
}
html body:not(#w-akz):not(#x-akz):not(#y-akz) .ss-topcard { padding-left: 1.1rem; }

/* Talentschmiede-Partner-Band in der Sponsoren-Section: so breit wie der Inhalt der Section (.dsn-card .container),
   nicht mehr randlos ueber die ganze Section */
html body:not(#w-pbi):not(#x-pbi):not(#y-pbi) .dsn-card > .partner-bar.pb-inline {
  width: min(1440px, calc(100% - clamp(1.5rem,4vw,3.5rem))) !important; max-width: none !important; margin-inline: auto !important; }
@media (max-width: 767.98px) {
  html body:not(#w-pbi):not(#x-pbi):not(#y-pbi) .dsn-card > .partner-bar.pb-inline { width: calc(100% - 32px) !important; }
}

/* "Partner werden" (Sponsoren-Section): SG-Logo vor dem Text wie bei den anderen Buttons */
@media (min-width: 768px) {
html body:not(#v-pw):not(#w-pw):not(#x-pw):not(#y-pw) .text-link[href="sponsoren.html"] { display: inline-flex; align-items: center; gap: .55rem; }
html body:not(#v-pw):not(#w-pw):not(#x-pw):not(#y-pw) .text-link[href="sponsoren.html"]::before {
  content: "" !important; display: block !important; position: static !important; flex: none; width: 22px !important; height: 22px !important;
  background: url('../img/SG_Logo_Splitter.svg') no-repeat center / contain !important; }
}
/* Datenschutz-Fenster: Titel "Deine Auswahl" im Blau-Polish (Verlaufsschrift), Fallback einfarbig */
.cc-box h2#ccTitle { color: #0616a8; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .cc-box h2#ccTitle { background: linear-gradient(165deg, #2029DC 0%, #0a1cd6 35%, #0616a8 65%, #04127e 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
}

/* ===========================================================================
   Newsletter (Startseiten Verein und Bundesliga): Aufhaenger mit rotem Akzent,
   drei Nutzen-Kacheln mit Icons, Formular als Polish-White-Karte mit Titel,
   Kostenlos-Marke und Vertrauenszeile. Hohe Spezifitaet gegen lesbarkeit.css und mobil-verein.css.
   =========================================================================== */
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(1.5rem,4vw,3.5rem); align-items:center; margin-top:clamp(1rem,2vw,1.75rem); }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form{ order:-1; position:relative; color:#0e1240; background:linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%) !important; border:0 !important;
  box-shadow:0 20px 44px rgba(2,6,50,.45) !important; padding:clamp(1.4rem,2.6vw,2.2rem) !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head{ margin:0 0 1.1rem; text-align:left; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head .nl-badge{ display:inline-block; padding:.34rem .65rem; background:#f82818 !important; color:#fff !important; font:800 .72rem/1 var(--font-body) !important; letter-spacing:.16em !important; text-transform:uppercase; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head h3{ margin:.6rem 0 .25rem !important; font-family:var(--font-display) !important; font-weight:900 !important; font-size:clamp(1.7rem,2.6vw,2.2rem) !important; line-height:1 !important; letter-spacing:.01em !important; text-transform:uppercase; color:#0616a8 !important; text-align:left !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head p{ margin:0 !important; font:500 .95rem/1.4 var(--font-body) !important; color:#4a55a0 !important; text-align:left !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form .field label{ color:#0e1240 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form .field input{ background:#fff !important; color:#0e1240 !important; border:1px solid #cdd2e6 !important; box-shadow:inset 0 1px 2px rgba(14,18,64,.06); }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form .field input:focus{ border-color:#0616a8 !important; outline:2px solid #f82818; outline-offset:1px; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-consent, html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-consent span{ color:#2a3aa6 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-consent a{ color:#0616a8 !important; font-weight:700; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-actions{ display:grid !important; gap:.6rem; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-actions .button{ width:100%; justify-content:center; min-height:3.2rem; background:linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color:#fff !important; border:0 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 10px 22px rgba(4,8,60,.35) !important; transition:transform .2s ease, box-shadow .2s ease, filter .2s ease; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-actions .button:hover{ transform:translateY(-2px); filter:brightness(1.12); }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-actions .form-status{ color:#0616a8 !important; }
/* Rueckmeldung Newsletter (08.11.2026): Erfolg gruen, Fehler rot, auch gegen die Handy-Regeln (mobil-verein.css) */
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) .nl-form .form-status.is-ok{ color:#15803d !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) .nl-form .form-status.is-error{ color:#b00020 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-trust{ display:flex; align-items:center; justify-content:center; gap:.45rem; margin:.15rem 0 0 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-trust svg{ width:18px; height:18px; flex:none; fill:none; stroke:#0616a8; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-trust span{ font:600 .85rem/1.3 var(--font-body) !important; color:#4a55a0 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-intro{ text-align:right; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-hook{ margin:0 0 1rem !important; font-family:var(--font-display) !important; font-weight:900 !important; font-size:clamp(2rem,3.6vw,3.2rem) !important; line-height:.98 !important; letter-spacing:.01em !important; text-transform:uppercase; color:#fff !important; text-align:right !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-hook em{ display:block; font-style:normal; color:#ff4a38 !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-lead{ max-width:34em; margin:0 0 0 auto !important; font:500 1.05rem/1.55 var(--font-body) !important; color:rgba(255,255,255,.84) !important; text-align:right !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits{ list-style:none; margin:1.6rem 0 0 !important; padding:0 !important; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; text-align:left; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li{ display:grid; align-content:start; gap:.4rem; margin:0 !important; padding:1rem .95rem 1.05rem !important; text-align:left !important;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-top:3px solid #f82818; transition:transform .25s ease, background-color .25s ease, border-color .25s ease; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li::before{ display:none !important; content:none !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li:hover{ transform:translateY(-3px); background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.26); border-top-color:#f82818; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-ic{ display:grid !important; place-items:center; width:42px; height:42px; margin-bottom:.2rem; border-radius:50% !important; background:linear-gradient(160deg,#FFFFFF 0%,#E6EBF3 100%); box-shadow:0 6px 14px rgba(2,6,50,.35); }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-ic svg{ width:22px; height:22px; fill:none; stroke:#0616a8; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits strong{ font:800 .92rem/1.2 var(--font-body) !important; letter-spacing:.06em !important; text-transform:uppercase; color:#fff !important; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li > span:not(.nl-ic){ font:500 .88rem/1.4 var(--font-body) !important; color:rgba(255,255,255,.76) !important; }
@media (max-width:1100px){
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits{ grid-template-columns:1fr; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li{ grid-template-columns:42px 1fr; column-gap:.85rem; row-gap:.1rem; align-items:center; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits .nl-ic{ grid-row:1 / 3; margin:0; }
}
@media (max-width:820px){
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-grid{ grid-template-columns:1fr; gap:1.25rem; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-intro{ order:-2; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-hook{ font-size:clamp(1.7rem,8vw,2.3rem) !important; margin-bottom:.7rem !important; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-lead{ font-size:.95rem !important; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits{ margin-top:1.1rem !important; gap:.55rem; }
  html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li{ padding:.75rem .85rem !important; }
}
@media (max-width:820px){ html body.mv-page:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head, html body.mv-page:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-form-head :is(h3,p){ text-align:right !important; } }

/* SVG-Partnerlogos (z. B. DV Design) haben anders als die JPG-Logos keinen eigenen weissen Rand:
   weisser Grund und Innenabstand, damit sie in Kachel und Leiste genauso wirken wie die anderen Logos */
.sp-tile img[src$=".svg"] { background: #fff; padding: 12% 10%; box-sizing: border-box; }
.partner-bar .pb-set img[src$=".svg"] { background: #fff; aspect-ratio: 197 / 127; width: auto; padding: 9px 8px; box-sizing: border-box; object-fit: contain; }

/* Newsletter-Kacheln: Icons aus img/Icons (Vereins-Iconset, Rot-Blau-Verlauf) im Polish-White-Kreis */
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-ic{ width:54px; height:54px; }
html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-ic img{ display:block; width:28px; height:28px; object-fit:contain; }
@media (max-width:1100px){ html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li{ grid-template-columns:54px 1fr; } }

/* Newsletter Desktop: Formularkarte und Nutzen-Kacheln unten buendig (gleiche Zeilenhoehe, Kacheln unten an der Spalte) */
@media (min-width:821px){ html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-grid{ align-items:stretch !important; } html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-intro{ display:flex; flex-direction:column; justify-content:flex-end; } html body:not(#nl1):not(#nl2):not(#nl3):not(#nl4) section.bl-newsletter .nl-benefits li{ align-content:start; } }

/* ===========================================================================
   Klick- und Fokus-Markierung NIE in Rot (Nutzerwunsch 02.11.2026):
   Silber-Blau-Weiss-Polish wie die hellen Buttons (#FFFFFF > #F4F6FA > #E6EBF3 > #D5DCE8 > #C3CCDF).
   Gilt fuer alle Felder, Auswahllisten, Links, Buttons und Karten auf allen Seiten.
   =========================================================================== */
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) :is(input, select, textarea):focus,
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) :is(input, select, textarea):focus-visible {
  outline: 2px solid #F4F6FA !important; outline-offset: 1px !important;
  border-color: #C3CCDF !important;
  box-shadow: 0 0 0 4px rgba(195,204,223,.85), 0 0 16px rgba(213,220,232,.7) !important; }
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) :is(a, button, summary, [tabindex], .nav-sub-label, .news-card, .vid-card, .kl-card, .fl):focus-visible,
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) .news-grid .news-card:focus-within {
  outline: 2px solid #F4F6FA !important; outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(195,204,223,.85), 0 0 18px rgba(213,220,232,.7) !important; }
/* Faelle, die beim Fokus bisher Rot als Flaeche oder Randlinie zeigten */
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) .ss-list a:focus { border-left-color: #C3CCDF !important; }
html body:not(#fk1):not(#fk2):not(#fk3):not(#fk4) .nd-lightbox button:focus-visible { background: linear-gradient(270deg,#C3CCDF 0%,#D5DCE8 30%,#E6EBF3 62%,#F4F6FA 100%) !important; color: #0616a8 !important; }
/* Angehakte Kaestchen (Datenschutz, Newsletter) in Polish-Blau statt Rot */
html body :is(.nl-consent, .field-check) input[type="checkbox"] { accent-color: #0616a8 !important; }
/* Auswahllisten: die aufgeklappte Liste zeigt das System meist weiss - Eintraege deshalb immer dunkel auf hell */
html body select option, html body select optgroup { color: #0e1240 !important; background-color: #ffffff !important; }
html body select option:checked { color: #0616a8 !important; background-color: #E6EBF3 !important; }

/* ===========================================================================
   Streifen nie hinter halbtransparenten Boxen (Nutzerwunsch 02.11.2026):
   Die Boxen behalten ihren hellen bzw. dunklen Schleier (--tint), liegen aber auf einem deckenden
   Polish-Blau-Grund. So schimmern die rot-blauen Seitenstreifen nicht mehr durch und der Text bleibt lesbar.
   Aktive Zustaende mit eigener Farbe (z. B. roter News-Filter) bleiben unberuehrt.
   =========================================================================== */
:root { --deck-blau: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%); }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) :is(
  .mm-tile, .mm-benefits li, .mm-stat, .bl-newsletter .nl-benefits li, .jb-why li, .fv-chips a, .ek-badge.is-taken
) { --tint: rgba(255,255,255,.07); background: linear-gradient(var(--tint), var(--tint)), var(--deck-blau) !important; }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) :is(.mm-tile, .mm-benefits li, .mm-stat, .bl-newsletter .nl-benefits li, .jb-why li):hover,
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .mm-tile-hl { --tint: rgba(255,255,255,.12); }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .fv-chips a { --tint: rgba(255,255,255,.1); }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .fv-chips a:hover { --tint: rgba(255,255,255,.18); }
/* Statistik-Karten Saison (Saisonverlauf, Bilanz, Wurfarten ...): dunkler Schleier wie bisher, Grund deckend */
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .srs-card { --tint: rgba(4,18,126,.42); background: linear-gradient(var(--tint), var(--tint)), var(--deck-blau) !important; }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .ek-badge.is-taken { --tint: rgba(255,255,255,.14); }
/* dunkle Schleier: News-Filter (nur nicht aktive Knoepfe) und Tab-Leisten am Desktop */
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .news-filter button:not([aria-pressed="true"]) { --tint: rgba(0,0,40,.25); background: linear-gradient(var(--tint), var(--tint)), var(--deck-blau) !important; }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .news-filter button:not([aria-pressed="true"]):hover { --tint: rgba(0,0,40,.45); }
@media (min-width: 768px) {
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .sz-tabs { background: linear-gradient(rgba(4,18,126,.45), rgba(4,18,126,.45)), var(--deck-blau) !important; }
  /* Hinweisboxen und Formularfelder auf blauen Flaechen (Handy-Layout von Verein & Jugend hat dort eigene, deckende Farben) */
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) :is(.todo-note, .shop-note) { background: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.1)), var(--deck-blau) !important; }
html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) :is(.dsn-card, .ek-form, main) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]), textarea, select):not(.mm-form *):not(.nl-form *):not(.ss-bar *) {
  background: linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)), var(--deck-blau) !important; }
}
@media (max-width: 767.98px) {
html body:not(.mv-page):not(#d1):not(#d2):not(#d3):not(#d4) .sz-tabs { background: linear-gradient(rgba(4,18,126,.45), rgba(4,18,126,.45)), var(--deck-blau) !important; }
/* Hinweisboxen und Formularfelder auf blauen Flaechen (Handy-Layout von Verein & Jugend hat dort eigene, deckende Farben) */
html body:not(.mv-page):not(#d1):not(#d2):not(#d3):not(#d4) :is(.todo-note, .shop-note) { background: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.1)), var(--deck-blau) !important; }
html body:not(.mv-page):not(#d1):not(#d2):not(#d3):not(#d4) :is(.dsn-card, .ek-form, main) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]), textarea, select):not(.mm-form *):not(.nl-form *):not(.ss-bar *) {
  background: linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)), var(--deck-blau) !important; }
}

/* Volle Menueleiste Verein & Jugend (ab 1620 px) mit dem zusaetzlichen Punkt "Schiedsrichter" (02.11.2026):
   Social-Icons in der Leiste ausblenden (stehen im Footer, die Suche bleibt), Abstaende und Sperrung etwas enger.
   So passt die Leiste ab 1620 px in eine Zeile, die Grenze zum Hamburger-Menue bleibt unveraendert. */
@media (min-width: 1220px) {
  html body:not(#vn1):not(#vn2):not(#vn3):not(#vn4):has(#mainNav a.nav-switch[href*="bundesliga"]) .site-header .nav-social a:not(.nav-search) { display: none !important; }
  html body:not(#vn1):not(#vn2):not(#vn3):not(#vn4):has(#mainNav a.nav-switch[href*="bundesliga"]) .site-header .main-nav { gap: .35rem !important; }
  html body:not(#vn1):not(#vn2):not(#vn3):not(#vn4):has(#mainNav a.nav-switch[href*="bundesliga"]) .site-header .main-nav :is(> a, .nav-sub-label) { letter-spacing: .015em !important; }
  html body:not(#vn1):not(#vn2):not(#vn3):not(#vn4):has(#mainNav a.nav-switch[href*="bundesliga"]) .site-header .main-nav > a.button-primary.nav-cta { padding-inline: .8rem !important; }
}
/* Bundesliga: ab 1761 px werden die Abstaende wieder breit, mit dem Punkt "Kontakt" reicht der Platz bis etwa 1800 px nicht ganz */
@media (min-width: 1761px) and (max-width: 1900px) {
  html body:not(#vn1):not(#vn2):not(#vn3):not(#vn4):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .main-nav { gap: .55rem !important; }
}

/* Seitenkopf der Unterseiten (.page-head) rechtsbuendig, passend zu den Abschnittsueberschriften (Nutzerwunsch 02.11.2026).
   Gilt fuer Verein & Jugend und Bundesliga, Desktop und Handy (das Handy-Layout von Verein & Jugend hat einen eigenen,
   bereits rechtsbuendigen Kopf). */
html body:not(#ph1):not(#ph2):not(#ph3):not(#ph4) .page-head :is(.inner, .container) { text-align: right !important; }
html body:not(#ph1):not(#ph2):not(#ph3):not(#ph4) .page-head :is(h1, p, .team-breadcrumb, .nd-date) { text-align: right !important; margin-left: auto !important; }
html body:not(#ph1):not(#ph2):not(#ph3):not(#ph4) .page-head p:not(.team-breadcrumb):not(.nd-date):not(.mm-hero-cta) { max-width: 60ch; }
html body:not(#ph1):not(#ph2):not(#ph3):not(#ph4) .page-head .mm-hero-cta { justify-content: flex-end; }
/* Footer-Social-Kacheln haben nur im Handy-Layout einen Schleier: dort deckend unterlegen */
@media (max-width: 767.98px) {
  html body:not(#d1):not(#d2):not(#d3):not(#d4):not(#d5) .site-footer .footer-grid a.f-social { --tint: rgba(255,255,255,.08); background: linear-gradient(var(--tint), var(--tint)), var(--deck-blau) !important; }
}

/* (Verdichtung 1620-1720 px vom 02.11. entfernt: ersetzt durch die festen Abstaende der Menueleiste unten) */

/* ===== Menueleiste (volle Leiste ab 1620 px), Nutzerwunsch 02.11.2026 =====
   1) Klicks: Buttons in der Leiste heben sich beim Hover nicht mehr an. Vorher rutschten sie 3 px nach oben,
      der Mauszeiger am unteren Rand lag dann ausserhalb und der erste Klick ging ins Leere.
   2) Mindestabstand 16 px zwischen allen Menuepunkten.
   3) Die Leiste nutzt die ganze freie Breite: Punkte verteilen sich gleichmaessig bis zum rechten Rand.
      Reicht der Platz nicht, entfaellt zuerst der Schriftzug neben dem Logo (Logo bleibt). */
@media (min-width: 1220px) {
  html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav {
    flex: 1 1 auto !important; justify-content: center !important; gap: 16px !important; margin-left: 2rem !important;   /* kompakt (02.11.): feste Abstaende, Leiste mittig im freien Raum */ }
  html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav .nav-social { gap: 8px !important; margin-left: 0 !important; }
  html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav :is(a, .nav-sub-label, button):is(:hover, :focus-visible, :active) { transform: none !important; }
}
/* zu schmal fuer Logo + Schriftzug + alle Punkte mit 16 px Abstand: Schriftzug ausblenden */
@media (min-width: 1220px) and (max-width: 1799px) {
  html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .brand .brand-text { display: none !important; }
  html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav { margin-left: 1.25rem !important; }
}

/* ===== Dreier-Kombi Bundesliga-Start (Letztes Spiel · Naechstes Spiel · Spielplan), aufgeraeumt 02.11.2026 =====
   Alle Buttons gleich hoch (48 px) und gleich gesetzt, Aktionen stehen in jeder Karte unten auf derselben Linie.
   Zwei Buttons nebeneinander teilen sich die Breite, "Live bei Dyn" und "Zum Spielbericht" gehen ueber die volle Breite.
   Nur CSS: die Karten baut api/lib-bl.php auf dem Server neu. */
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .body { display: flex !important; flex-direction: column !important; }
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .nc-actions {
  display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px !important; width: 100%; margin-top: auto !important; align-self: stretch !important; }
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .nc-actions .nc-dyn { grid-column: 1 / -1; }
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio :is(.body > .button, .nc-actions .button) {
  height: 48px !important; width: auto !important; min-width: 0 !important; margin: 0 !important; box-sizing: border-box;
  display: inline-flex !important; align-items: center; justify-content: center !important; gap: .5rem !important;
  padding-left: .6rem !important; padding-right: .6rem !important; white-space: nowrap; overflow: hidden;
  font-size: .8rem !important; letter-spacing: .04em !important; }
/* Letztes Spiel: Statistik-Link nach unten, Spielbericht-Button volle Breite darunter */
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .bl-last .stats-link { margin-top: auto !important; }
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .body > .button { width: 100% !important; align-self: stretch !important; margin-top: 0 !important; }
/* schmale Karten: SG-Zeichen in den halben Buttons weglassen, Schrift etwas kleiner */
@media (max-width: 1499px) and (min-width: 1001px), (max-width: 800px) and (min-width: 641px), (max-width: 400px) {
  html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .nc-actions .button:not(.nc-dyn)::before { display: none !important; }
  html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .74rem !important; letter-spacing: .03em !important; }
}
@media (max-width: 1200px) and (min-width: 1001px), (max-width: 700px) and (min-width: 641px), (max-width: 350px) {
  html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .68rem !important; letter-spacing: .02em !important; padding-left: .4rem !important; padding-right: .4rem !important; }
}
@media (max-width: 1100px) and (min-width: 1001px) {
  html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .64rem !important; letter-spacing: 0 !important; padding-left: .3rem !important; padding-right: .3rem !important; }
}
/* gleicher Abstand der Aktionen zum Kartenende in allen drei Karten */
html body:not(#t1):not(#t2):not(#t3):not(#t4):not(#t5) .bl-trio .body { padding-bottom: 1.1rem !important; }
/* Menueleiste kompakt: Abstaende 16 px, ab 1920 px 20 px, ab 2200 px 24 px (Nutzerwunsch 02.11.2026) */
@media (min-width: 1920px) { html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav { gap: 20px !important; } }
@media (min-width: 2200px) { html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav { gap: 24px !important; } }
/* Dyn-Button hatte -3 px Aussenabstand: in der vollen Leiste gilt auch dort der Mindestabstand */
@media (min-width: 1220px) { html body:not(#mb1):not(#mb2):not(#mb3):not(#mb4):not(#mb5):not(#mb6) .site-header .main-nav > a { margin-left: 0 !important; } }

/* Untermenue-Punkte der Leiste ("Sponsoren", "Shops", "Fans") tragen per JS role="button" und fielen dadurch unter die
   Button-Regel (Saira 800). Sie sind Menuepunkte: gleiche Schrift wie die Links daneben (02.11.2026). */
html body:not(#sl1):not(#sl2):not(#sl3):not(#sl4):not(#sl5):not(#sl6) .site-header .main-nav .nav-sub-label { font-weight: 700 !important; }

/* ===== Saison aus DataCore (Sportradar), 03.11.2026: Saisonstatistik und Tabellen-Zusatz (api/lib-sr-seiten.php) ===== */
.srs-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .8rem; margin: 0 0 1.4rem; }
.srs-kpi { position: relative; display: grid; align-content: start; gap: .35rem; padding: 1rem 1rem 1.05rem;
  background: linear-gradient(160deg,#FFFFFF 0%,#F4F2EE 52%,#E6E2DA 100%); color: #0616a8;
  box-shadow: inset 0 1px 0 #fff, 0 12px 26px rgba(2,8,60,.32); border-top: 4px solid #f82818; }
.srs-kpi .kicker { font: 700 .66rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: #d0150b; }
.srs-kpi b { font: 400 clamp(1.7rem, 2.4vw, 2.3rem)/1 var(--font-display); color: #0616a8; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.srs-kpi small { font: 600 .78rem/1.3 var(--font-body); color: #2a3aa6; }
.srs-kpi em { justify-self: start; margin-top: .15rem; padding: .22rem .5rem; font: 700 .68rem/1 var(--font-body); font-style: normal; letter-spacing: .06em; text-transform: uppercase;
  color: #fff; background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%); }
.srs-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0 0 1.4rem; }
.srs-card { padding: 1.2rem 1.3rem 1.3rem; background: rgba(4,18,126,.42); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14), 0 14px 30px rgba(2,8,60,.28); color: #fff; }
.srs-card .kicker { display: block; font: 700 .66rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: #ff9a9a; margin-bottom: .45rem; }
.srs-card h3 { margin: 0 0 1rem; font: 400 clamp(1.25rem, 1.8vw, 1.6rem)/1.05 var(--font-display); text-transform: uppercase; color: #fff; }
.srs-bars, .srs-vs { list-style: none; margin: 0; padding: 0; display: grid; gap: .62rem; }
.srs-bars li, .srs-vs li { display: grid; grid-template-columns: 8.5rem 1fr 2.6rem 6.2rem; align-items: center; gap: .7rem; }
.srs-bl { font: 700 .8rem/1.1 var(--font-body); letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.92); }
.srs-bt, .srs-vsbar { position: relative; height: 12px; background: rgba(255,255,255,.12); overflow: hidden; }
.srs-bt i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg,#FFFFFF 0%,#EFEDE8 60%,#D6D0C4 100%); }
.srs-vsbar { height: 16px; display: grid; align-content: center; gap: 2px; background: none; }
.srs-vsbar i { display: block; height: 7px; }
.srs-vsbar i.sg { background: linear-gradient(90deg,#cc1d0a,#f82818 60%,#ff5a3c); }
.srs-vsbar i.sg.gut { background: linear-gradient(90deg,#FFFFFF,#EFEDE8 60%,#D6D0C4); }
.srs-vsbar i.liga { background: rgba(255,255,255,.32); }
.srs-bars b, .srs-vs b { font: 400 1.25rem/1 var(--font-display); color: #fff; text-align: right; font-variant-numeric: tabular-nums; }
.srs-bars small, .srs-vs small { font: 600 .74rem/1.2 var(--font-body); color: rgba(255,255,255,.7); }
.srs-leg { display: flex; align-items: center; gap: .45rem; margin-top: .9rem; font: 600 .74rem/1 var(--font-body); color: rgba(255,255,255,.75); }
.srs-leg i { width: 18px; height: 7px; display: inline-block; } .srs-leg i.sg { background: #f82818; } .srs-leg i.liga { background: rgba(255,255,255,.32); margin-left: .8rem; }
.srs-tops { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 0 0 1.6rem; }
.srs-top { display: grid; gap: .35rem; padding: .95rem 1.05rem; background: linear-gradient(160deg,#FFFFFF 0%,#F4F2EE 52%,#E6E2DA 100%); color: #0616a8;
  border-left: 5px solid #f82818; box-shadow: inset 0 1px 0 #fff, 0 12px 26px rgba(2,8,60,.32); }
.srs-top .kicker { font: 700 .64rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: #d0150b; }
.srs-top b { font: 400 1.25rem/1.05 var(--font-display); text-transform: uppercase; color: #0616a8; }
.srs-top b small { font-size: .8em; color: #f82818; }
.srs-top em { font: 700 .8rem/1.2 var(--font-body); font-style: normal; color: #2a3aa6; }
.srs-h { margin: 1.6rem 0 .7rem; font: 400 clamp(1.2rem, 1.7vw, 1.5rem)/1 var(--font-display); text-transform: uppercase; color: #fff; }
.srs-table th, .srs-table td { text-align: center; white-space: nowrap; }
.srs-table th.l, .srs-table td.l { text-align: left; }
.srs-table td.nr { font: 400 1rem/1 var(--font-display); color: #ff9a9a; }
.srs-table td.nm { font-weight: 700; color: #fff; }
.srs-table td.st { font-weight: 800; color: #fff; }
.srs-quelle { margin-top: 1rem; }
.srs-tab { margin-top: 1.2rem; }
.srs-verlauf svg { display: block; width: 100%; height: auto; }
.srs-verlauf .g line { stroke: rgba(255,255,255,.14); stroke-width: 1; }
.srs-verlauf .g text { fill: rgba(255,255,255,.6); font: 700 11px var(--font-body); text-anchor: end; }
.srs-verlauf polyline { fill: none; stroke: #fff; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.srs-verlauf path.fl { fill: rgba(255,255,255,.07); }
.srs-verlauf .pt circle { fill: #f82818; stroke: #fff; stroke-width: 2; }
.srs-bil { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.srs-bil > div { display: grid; gap: .3rem; padding: .9rem; background: linear-gradient(160deg,#FFFFFF 0%,#F4F2EE 52%,#E6E2DA 100%); color: #0616a8; text-align: center; }
.srs-bil span { font: 700 .66rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: #d0150b; }
.srs-bil b { font: 400 clamp(1.4rem, 2vw, 1.9rem)/1 var(--font-display); font-variant-numeric: tabular-nums; }
.srs-bil small { font: 600 .72rem/1 var(--font-body); color: #2a3aa6; }
@media (max-width: 1180px) { .srs-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } .srs-tops { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .srs-split { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .srs-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; } .srs-kpi { padding: .8rem; }
  .srs-tops { grid-template-columns: 1fr; }
  .srs-bars li, .srs-vs li { grid-template-columns: 6.4rem 1fr 2.2rem; } .srs-bars small, .srs-vs small { grid-column: 2 / -1; margin-top: -.35rem; }
  .srs-bil { grid-template-columns: 1fr 1fr 1fr; gap: .4rem; } .srs-bil > div { padding: .65rem .4rem; }
}
/* kleine Ueberschriften der DataCore-Bausteine in Saira (die globale Kicker-Regel setzt sonst die Display-Schrift) */
html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) :is(.srs-kpi, .srs-card, .srs-top, .srs-bil) :is(.kicker, span:first-child) { font-family: var(--font-body) !important; font-weight: 700 !important; letter-spacing: .14em !important; }

/* Spielerstatistik am Handy (DataCore): Tabelle bleibt Tabelle und wird seitlich gewischt.
   Nummer und Name stehen fest links, die Werte laufen darunter durch. Ersetzt fuer diese Tabelle die
   allgemeine Handy-Regel, die Spieltabellen in Karten aufloest. Hinweis "wischen" nur am Handy. */
.srs-wisch { display: none; }
@media (max-width: 720px) {
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) .srs-wrap { position: relative; overflow-x: auto !important; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
    scroll-snap-type: x proximity; margin: 0 -4px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); background: rgba(4,18,126,.35); }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table { display: table !important; width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table thead { display: table-header-group !important; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table tbody { display: table-row-group !important; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table tr { display: table-row !important; margin: 0; padding: 0; background: none !important; box-shadow: none !important; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table th, html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td { display: table-cell !important; padding: .7rem .75rem !important; white-space: nowrap;
    text-align: center !important; border-bottom: 1px solid rgba(255,255,255,.1); scroll-snap-align: start; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td::before { content: none !important; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table th { font: 700 .66rem/1 var(--font-body) !important; letter-spacing: .1em !important; text-transform: uppercase; color: rgba(255,255,255,.72);
    background: #04127e; position: sticky; top: 0; z-index: 2; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td { font: 600 .95rem/1 var(--font-body); color: rgba(255,255,255,.92); }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td.st { font-weight: 800; color: #fff; background: rgba(255,255,255,.07); }
  /* feste Spalten links: Nummer + Name */
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table :is(th, td):nth-child(1) { position: sticky; left: 0; z-index: 3; width: 2.4rem; min-width: 2.4rem; padding-left: .6rem !important; padding-right: .3rem !important;
    background: #0616a8; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table :is(th, td):nth-child(2) { position: sticky; left: 2.4rem; z-index: 3; text-align: left !important; max-width: 10.8rem; overflow: hidden; text-overflow: ellipsis;
    background: #0616a8; box-shadow: 6px 0 10px -4px rgba(2,8,60,.55); }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table th:nth-child(-n+2) { background: #04127e; z-index: 4; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table tbody tr:nth-child(even) td:nth-child(-n+2) { background: #0718b4; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table tbody tr:nth-child(even) td { background-color: rgba(255,255,255,.035); }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td.nr { font: 400 1.05rem/1 var(--font-display); color: #ff9a9a; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) table.srs-table td.nm { font: 700 .9rem/1.15 var(--font-body); color: #fff; }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) .srs-wisch { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; margin: -.3rem 0 .45rem;
    font: 700 .68rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
  html body:not(#sw1):not(#sw2):not(#sw3):not(#sw4):not(#sw5) .srs-wisch::after { content: ""; width: 26px; height: 10px; background: linear-gradient(90deg, transparent, #ff9a9a);
    clip-path: polygon(0 40%, 70% 40%, 70% 0, 100% 50%, 70% 100%, 70% 60%, 0 60%); }
}
/* Namen in der Spielerstatistik: Desktop lang, Handy "M. Nachname" (passt in die feste Namensspalte) */
.srs-table td.nm .kurz { display: none; }
@media (max-width: 720px) { .srs-table td.nm .lang { display: none; } .srs-table td.nm .kurz { display: inline; } }
/* ===========================================================================
   Handy (bis 767 px): Logo, Suche und Hamburger der Bundesliga an exakt denselben Stellen
   und im selben Stil wie bei Verein & Jugend (css/mobil-verein.css, .mv-herobar / .mv-head), Wunsch 03.11.2026.
   Startseite: Logo 88 px hoch, 16 px vom linken und 14 px vom oberen Rand. Unterseiten: Logo 54 px, 16 px / 12 px.
   Symbole: 44-px-Tastflaeche, 28 px (Startseite) bzw. 26 px (Unterseiten) grosse Strichsymbole,
   weiss ohne Flaeche mit dunklem Schattensaum, Oberkante buendig mit der Logo-Oberkante.
   Der Kopf bleibt bei der Bundesliga fest stehen (es gibt dort keine untere Navigationsleiste).
   =========================================================================== */
@media (max-width: 767.98px) {
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header {
    --lg-top: 12px; --lg-h: 54px; --ic: 26px; --ic-gap: 4px; --ic-top: 3px; --ic-right: 6px; --ic-stroke: 2.2; padding: 0 !important; }
  html body.bl-home:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header {
    --lg-top: 14px; --lg-h: 88px; --ic: 28px; --ic-gap: 8px; --ic-top: 6px; --ic-right: 8px; --ic-stroke: 2.4; padding: 0 !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .inner {
    position: relative !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; height: 0 !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .brand {
    position: absolute !important; left: 16px !important; top: calc(var(--lg-top) + env(safe-area-inset-top)) !important; margin: 0 !important; padding: 0 !important; transform: none !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .brand img {
    display: block !important; height: var(--lg-h) !important; width: auto !important; max-height: none !important; margin: 0 !important;
    filter: drop-shadow(0 6px 14px rgba(4,8,40,.5)) !important; transform: none !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .brand-text { display: none !important; }
  /* Suche und Hamburger: gleiche Tastflaechen und Abstaende */
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header :is(.nav-search-mob, .nav-toggle) {
    position: absolute !important; top: calc(var(--ic-top) + env(safe-area-inset-top)) !important; width: 44px !important; height: 44px !important; margin: 0 !important; padding: 0 !important;
    display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 0 !important;
    background: transparent !important; border: 0 !important; border-radius: 4px !important; box-shadow: none !important; color: #fff !important;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.9)) drop-shadow(0 3px 8px rgba(0,0,0,.55)) !important; transform: none; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-toggle { right: var(--ic-right) !important; left: auto !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-search-mob { right: calc(var(--ic-right) + 44px + var(--ic-gap)) !important; left: auto !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-search-mob svg {
    width: var(--ic) !important; height: var(--ic) !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-search-mob svg :is(circle, path) {
    stroke: currentColor !important; stroke-width: var(--ic-stroke) !important; stroke-linecap: round !important; fill: none !important; }
  /* Hamburger: drei Striche wie das Verein-Symbol (Pfad M4 7h16 M4 12h16 M4 17h16 im 24er-Raster, runde Enden) */
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-toggle span {
    display: block !important; width: calc(var(--ic) * 16 / 24) !important; height: calc(var(--ic) * var(--ic-stroke) / 24) !important;
    margin: 0 !important; border-radius: 99px !important; background: #fff !important; box-shadow: none !important; opacity: 1 !important; transform: none !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header .nav-toggle span + span {
    margin-top: calc(var(--ic) * (5 - var(--ic-stroke)) / 24) !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header :is(.nav-search-mob, .nav-toggle):focus-visible { outline: 2px solid #fff !important; outline-offset: 2px !important; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .site-header :is(.nav-search-mob, .nav-toggle):active { transform: scale(.88); }
}

/* ===========================================================================
   Partner-Leisten der Bundesliga (Exklusiv, Premium, Business), Wunsch 03.11.2026:
   Hintergrund im Weiss-Silber-Blau-Polish der hellen Buttons, kein Rand und kein Schattensaum.
   Die Logos kommen freigestellt aus img/sponsoren/frei/ (build_partner_logos_frei.py), so entstehen keine weissen Kaestchen.
   =========================================================================== */
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar {
  background: linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%) !important;
  border: 0 !important; outline: 0 !important; box-shadow: none !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar :is(.inner, .pb-sets, .pb-set, a) {
  border: 0 !important; box-shadow: none !important; background: transparent !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar .pb-set img {
  border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar .label { border-right-color: rgba(6,22,168,.25) !important; }
/* Freigestellte Logos haben keinen eingebauten Weissrand mehr: einheitliches Feld, damit breite Wortmarken (z. B. OLYMP) nicht dominieren */
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar .pb-set img {
  width: 132px !important; height: 44px !important; max-width: 132px !important; max-height: 44px !important; object-fit: contain !important; aspect-ratio: auto !important; }
@media (max-width: 767.98px) {
  html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) section.partner-bar .pb-set img { width: 60px !important; max-width: 60px !important; height: 30px !important; max-height: 30px !important; }
}

/* ===========================================================================
   Bundesliga-Startseite, Dreier-Kombi (Letztes Spiel, Naechstes Spiel, die naechsten Spiele), 03.11.2026:
   ohne Social-Media-Grafiken, jede Karte im Stil von "Naechstes Heimspiel der Profis" (Verein & Jugend, .bl-next):
   Polish-Blau, Streifenkante links, Wappen mit Namen, rote Mitte (VS bzw. Ergebnis), Infos zentriert darunter.
   =========================================================================== */
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 1.2rem !important; align-items: stretch !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card {
  display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 1rem !important; margin: 0 !important;
  padding: 1.4rem 1.3rem 1.4rem calc(1.3rem + var(--bar, 30px) * 1.2) !important; text-align: center !important; min-width: 0; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card > .kicker {
  display: block; margin: 0 !important; font: 700 .74rem/1.2 var(--font-body) !important; letter-spacing: .16em !important; text-transform: uppercase; color: #FFB3A8 !important; text-align: center !important; }
/* Paarung: Wappen oben, Name darunter, Mitte rot */
.tr-match { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: start; gap: .6rem; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .team { display: flex !important; flex-direction: column !important; align-items: center !important; gap: .55rem !important; text-align: center !important; min-width: 0; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .team img { height: 76px !important; width: auto !important; max-width: 100%; object-fit: contain; filter: drop-shadow(0 6px 16px rgba(4,8,40,.6)); }
.tr-match .tr-mark { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font: 900 1.4rem/1 var(--font-display); }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .team .nm { font-family: var(--font-display) !important; font-weight: 900 !important; text-transform: uppercase; line-height: 1 !important; font-size: 1.15rem !important; color: #fff !important; overflow-wrap: anywhere; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .team .nm small { display: block; margin-top: .3rem; font: 700 .62rem/1.25 var(--font-body) !important; letter-spacing: .12em !important; color: #ffb3b3 !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .vs { align-self: center; margin-top: -1.6rem; font-family: var(--font-hero) !important; font-size: 2.6rem !important; line-height: 1 !important; color: #ff2b2b !important; white-space: nowrap; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .vs.tr-score { font-size: 2.2rem !important; padding: .3rem .55rem; background: rgba(0,0,40,.28); }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .vs.tr-score.win { color: #6EE7A0 !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .vs.tr-score.lose { color: #ff6b5e !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .vs.tr-score.draw { color: #fff !important; }
/* Infos */
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .when {
  display: flex !important; flex-direction: column !important; align-items: center !important; gap: .35rem !important; margin-top: auto !important; padding-top: 1rem !important;
  border-top: 1px solid rgba(255,255,255,.14) !important; text-align: center !important; grid-column: auto !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .when > span { font: 700 .82rem/1.3 var(--font-body) !important; letter-spacing: .06em !important; text-transform: uppercase; color: #fff !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .when > .date { color: #ffb3b3 !important; font-size: .9rem !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .when > .venue { color: rgba(255,255,255,.72) !important; font-size: .74rem !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .tr-stats { font: 700 .74rem/1.3 var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .nc-countdown { position: static !important; inset: auto !important; transform: none !important; margin: .4rem 0 0 !important; justify-content: center !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card .nc-actions { width: 100%; margin-top: .6rem !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .bl-last .nc-actions { grid-template-columns: 1fr !important; }
/* Die naechsten Spiele */
.tr-plan { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; text-align: left; }
.tr-plan li { display: grid; grid-template-columns: 3.1rem 38px 1fr; align-items: center; gap: .7rem; padding: .5rem .7rem; background: rgba(0,0,40,.22); border-left: 3px solid #f82818; }
.tr-plan li.is-away { border-left-color: rgba(255,255,255,.45); }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-plan .tr-d { font: 700 .66rem/1.1 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; color: #ffb3b3 !important; text-align: center; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-plan .tr-d b { display: block; font-family: var(--font-display) !important; font-weight: 900; font-size: 1.05rem !important; letter-spacing: 0; color: #fff !important; }
.tr-plan .tr-w img { display: block; width: 38px; height: 38px; object-fit: contain; filter: drop-shadow(0 3px 8px rgba(4,8,40,.5)); }
.tr-plan .tr-w .tr-mark { width: 38px; height: 38px; font-size: .8rem; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-plan .tr-o { font: 800 .86rem/1.15 var(--font-body) !important; text-transform: uppercase; letter-spacing: .03em; color: #fff !important; min-width: 0; overflow-wrap: anywhere; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-plan .tr-o small { display: block; margin-top: .15rem; font: 600 .7rem/1.2 var(--font-body) !important; letter-spacing: .04em; text-transform: none; color: rgba(255,255,255,.72) !important; }
@media (max-width: 1100px) { html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio { grid-template-columns: 1fr 1fr !important; } html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .bl-plan { grid-column: 1 / -1; } }
@media (max-width: 720px) {
  html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio { grid-template-columns: 1fr !important; }
  html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .bl-trio .tr-card { padding: 1.2rem 1rem 1.2rem calc(1rem + var(--bar, 22px) * 1.2) !important; }
  html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4) .tr-match .team img { height: 64px !important; }
}
/* Buttons der Dreier-Kombi passen immer in die Karte */
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .bl-trio .tr-card .nc-actions { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: .5rem !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .bl-trio .tr-card .nc-actions .button {
  min-width: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box; padding-inline: .5rem !important; justify-content: center !important; font-size: .78rem !important; letter-spacing: .04em !important; white-space: nowrap; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .bl-trio .tr-card .nc-actions .nc-dyn { grid-column: 1 / -1 !important; }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .bl-trio .bl-last .nc-actions { grid-template-columns: 1fr !important; }
/* Vereinsnamen nur zwischen Woertern umbrechen, lange Namen auf dem Handy etwas kleiner */
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .tr-match .team .nm { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; }
@media (max-width: 720px) { html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .tr-match .team .nm { font-size: 1rem !important; } }
html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5) .bl-trio .bl-plan .nc-actions .button { font-size: .72rem !important; letter-spacing: .02em !important; }
@media (max-width: 720px), (min-width: 1101px) and (max-width: 1320px) {
  html body:not(#tr1):not(#tr2):not(#tr3):not(#tr4):not(#tr5):not(#tr6) .bl-trio .bl-plan .nc-actions { grid-template-columns: 1fr !important; }
}

/* ===========================================================================
   "Naechstes Spiel" der Bundesliga (alle Breiten) im Design der Verein-Handykarte "Naechstes Heimspiel der Profis"
   (css/mobil-verein.css, .bl-next auf body.mv-page), Wunsch 03.11.2026: Polish-White, keine Streifenkante,
   Wappen 84 px, Vereinsnamen Saira 700 in Polish-Blau, VS rot, Datum dunkelrot, Halle gedaempft,
   Buttons in Polish-Blau mit weissem SG-Zeichen. Der Countdown bleibt (Bundesliga), in hellen Kacheln.
   =========================================================================== */
/* gilt seit 03.11.2026 in jeder Breite (Desktop und Handy) */
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .bl-trio #liveCard {
    background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%) !important; color: #0616a8 !important; border: 0 !important;
    box-shadow: 0 8px 18px rgba(4,8,60,.3) !important; padding: 18px 16px 16px !important; gap: 10px !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) .bl-trio #liveCard::before { display: none !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard > .kicker { color: #c8321d !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .tr-match .team img { height: 84px !important; filter: drop-shadow(0 6px 14px rgba(4,8,40,.25)) !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .tr-match .team .nm {
    font: 700 1.1rem/.95 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #0616a8 !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .tr-match .team .nm small { font: 700 .6rem/.95 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #4a4f75 !important; margin-top: .35rem; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .tr-match .vs { font-size: 2rem !important; color: #e2412b !important; margin-top: -1.4rem; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .when { border-top-color: rgba(14,18,64,.12) !important; gap: 6px !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .when > span { font: 700 .95rem/1.7 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #0616a8 !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .when > .date { color: #c8321d !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .when > .venue { font-size: .8rem !important; color: #4a4f75 !important; }
  /* Countdown in hellen Kacheln */
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-countdown > span { background: #E6EBF3 !important; box-shadow: none !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-countdown b { color: #0616a8 !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-countdown small { color: #4a4f75 !important; }
  /* Buttons wie der Verein-Button: Polish-Blau, weisse Schrift, weisses SG-Zeichen */
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-actions .button {
    background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 18px rgba(4,8,40,.35) !important; border: 0 !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-actions .button :is(span, .btn-txt) { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-actions .button:not(.nc-dyn)::before {
    content: "" !important; display: inline-block !important; width: 20px !important; height: 21px !important; flex: none;
    background: url("../img/wasserzeichen/sg-buchstaben-polish-silberblau.svg") center / contain no-repeat !important; }
  html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):has(#mainNav a.nav-switch:not([href*="bundesliga"])) #liveCard .nc-actions .nc-dyn img { content: url("../img/social/dyn-logo-polishweiss.svg"); }

/* Verein-Handy, Karte "Naechstes Heimspiel der Profis": Button-Text steht wieder im HTML ("Tickets").
   Der alte Trick (Text auf 0 px, Wort ueber ::after) wurde von einer spaeteren Regel verdeckt, der Button war leer. */
@media (max-width: 767.98px) {
  html body.mv-page:not(#vb1):not(#vb2):not(#vb3):not(#vb4):not(#vb5) #main .bl-next .when .button {
    font: 800 .95rem/1 'SG Text', sans-serif !important; letter-spacing: .06em !important; text-transform: uppercase; color: #fff !important; -webkit-text-fill-color: #fff !important;
    display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 9px !important; }
  html body.mv-page:not(#vb1):not(#vb2):not(#vb3):not(#vb4):not(#vb5) #main .bl-next .when .button :is(span, .btn-txt) { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; font: inherit !important; }
  html body.mv-page:not(#vb1):not(#vb2):not(#vb3):not(#vb4):not(#vb5) #main .bl-next .when .button::after { content: none !important; display: none !important; }
}

/* ===========================================================================
   Verein & Jugend, Karte "Naechstes Heimspiel der Profis": auch am Desktop das Handy-Design (Wunsch 03.11.2026):
   Polish-White, keine Streifenkante, Wappen ueber den Namen, Namen Saira 700 Polish-Blau, VS rot,
   Datum dunkelrot, Halle gedaempft, Countdown in hellen Kacheln, Button "Tickets" in Polish-Blau.
   =========================================================================== */
@media (min-width: 768px) {
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next {
    max-width: 620px !important; margin-inline: auto !important; grid-template-columns: 1fr auto 1fr !important; justify-items: center; gap: 14px 18px !important;
    padding: 26px 28px 24px !important; text-align: center;
    background: linear-gradient(160deg,#FFFFFF 0%,#F6F4F0 52%,#E8E4DC 100%) !important; border: 0 !important; box-shadow: 0 10px 24px rgba(4,8,60,.32) !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next::before,
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next::after { display: none !important; content: none !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .team,
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .team.away {
    flex-direction: column !important; align-items: center !important; justify-content: center; text-align: center !important; gap: 10px !important; width: 100%; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .team img { height: 104px !important; filter: drop-shadow(0 6px 14px rgba(4,8,40,.25)) !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .team .nm { font: 700 1.3rem/.95 'SG Text', sans-serif !important; letter-spacing: .05em !important; text-transform: uppercase; color: #0616a8 !important; text-align: center; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .team .nm small { font: 700 .66rem/1 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #4a4f75 !important; margin-top: .4rem; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .vs { align-self: center; font-size: 2.4rem !important; color: #e2412b !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when {
    grid-column: 1 / -1; width: 100%; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
    padding-top: 16px !important; margin-top: 4px !important; border-top: 1px solid rgba(14,18,64,.12) !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when > span { font: 700 1rem/1.6 'SG Text', sans-serif !important; letter-spacing: .05em !important; text-transform: uppercase; color: #0616a8 !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when > .date { color: #c8321d !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when > .venue { font-size: .84rem !important; color: #4a4f75 !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .nc-countdown > span { background: #E6EBF3 !important; box-shadow: none !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .nc-countdown b { color: #0616a8 !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .nc-countdown small { color: #4a4f75 !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when .button {
    width: 100%; margin: 8px 0 0 !important; justify-content: center !important; gap: 9px !important;
    background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 0 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 18px rgba(4,8,40,.35) !important; font: 800 .95rem/1 'SG Text', sans-serif !important; letter-spacing: .06em !important; text-transform: uppercase; padding: .95rem 1rem !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when .button :is(span, .btn-txt) { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when .button::after { content: none !important; display: none !important; }
  html body:not(#vd1):not(#vd2):not(#vd3):not(#vd4):not(#vd5) section[aria-labelledby="profis-title"] .bl-next .when .button::before {
    content: "" !important; display: inline-block !important; width: 22px !important; height: 22px !important; flex: none; background: url("../img/wasserzeichen/sg-buchstaben-polish-silberblau.svg") center / contain no-repeat !important; }
}
/* Bundesliga am Desktop: Tickets ueber die volle Breite, Vorbericht und DYN darunter nebeneinander */
html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):not(#ns6) .bl-trio #liveCard .nc-actions .nc-ticket { grid-column: 1 / -1 !important; }
html body:not(#ns1):not(#ns2):not(#ns3):not(#ns4):not(#ns5):not(#ns6) .bl-trio #liveCard .nc-actions .nc-dyn { grid-column: auto !important; }
/* Naechste Partie (Bundesliga und Verein & Jugend, alle Breiten): Weiss-Silber-Blau-Polish statt Creme (Wunsch 04.11.2026) */
html body:not(#sp1):not(#sp2):not(#sp3):not(#sp4):not(#sp5):not(#sp6):not(#sp7):not(#sp8):not(#sp9) :is(.bl-trio #liveCard, section[aria-labelledby="profis-title"] .bl-next) {
  background: linear-gradient(160deg,#FFFFFF 0%,#F4F6FA 34%,#E6EBF3 68%,#D5DCE8 100%) !important; }

/* ===========================================================================
   Bundesliga-Startseite, Spielplan auf dem Handy (bis 720 px): jede Partie als uebersichtliche Karte
   im Weiss-Silber-Blau-Polish wie die Karte "Naechstes Spiel" (Wunsch 04.11.2026).
   Kopf: Datum links, kleines HBL-Logo + Spieltag rechts. Mitte: beide Vereine untereinander, rechts Ergebnis bzw. Button.
   Fuss: Halle. Ergebnis als Chip: gruen = Sieg, rot = Niederlage (aus Sicht der SG).
   =========================================================================== */
@media (max-width: 720px) {
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan), html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) tbody { display: block !important; width: 100% !important; background: none !important; box-shadow: none !important; border: 0 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) .table-wrap:has(> :is(table:is(.bl-hometable, .bl-saisonplan), table.bl-saisonplan)) { background: none !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; overflow: visible !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) thead { display: none !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) tr {
    display: grid !important; grid-template-columns: minmax(0,1fr) auto !important; grid-template-areas: "d s" "p r" "h h" !important;
    gap: 10px 12px !important; align-items: center !important; margin: 0 0 12px !important; padding: 14px 14px 12px !important;
    background: linear-gradient(160deg,#FFFFFF 0%,#F4F6FA 34%,#E6EBF3 68%,#D5DCE8 100%) !important; border: 0 !important; border-left: 4px solid #f82818 !important;
    box-shadow: 0 8px 18px rgba(4,8,60,.3) !important; color: #0616a8 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) tr::before, html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) tr::after { display: none !important; content: none !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td { display: block !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; text-align: left !important; width: auto !important; min-width: 0 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td::before { display: none !important; content: none !important; }
  /* Kopfzeile */
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Datum"] { grid-area: d; font: 700 .86rem/1.2 'SG Text', sans-serif !important; letter-spacing: .04em !important; text-transform: uppercase; color: #c8321d !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Spieltag"] { grid-area: s; display: inline-flex !important; align-items: center !important; justify-content: flex-end !important; gap: 6px !important;
    font: 700 .72rem/1 'SG Text', sans-serif !important; letter-spacing: .04em !important; color: #4a4f75 !important; white-space: nowrap; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Spieltag"] :is(.st-liga, .st-pokal) { height: 22px !important; width: auto !important; margin: 0 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Spieltag"] span { display: inline !important; font: inherit !important; color: inherit !important; }
  /* Paarung: Vereine untereinander */
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing { grid-area: p; padding-top: 10px !important; border-top: 1px solid rgba(14,18,64,.1) !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing .pair { display: grid !important; gap: 8px !important; grid-template-columns: 1fr !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing .vs { display: none !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing .club { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 10px !important; text-align: left !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing :is(.club-ic img, .club-logo) { width: 30px !important; height: 30px !important; max-width: 30px !important; max-height: 30px !important; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(4,8,40,.2)); }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td.pairing .club-nm { font: 700 .98rem/1.15 'SG Text', sans-serif !important; letter-spacing: .02em !important; color: #0616a8 !important; text-align: left !important; }
  /* Ergebnis bzw. Button rechts */
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td:is([data-label="Ergebnis"], [data-label="Live"], [data-label="Tickets"], .c-aktion) { grid-area: r; align-self: end !important; padding-top: 10px !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Ergebnis"] .res-link {
    display: grid !important; place-items: center; width: auto !important; min-width: 4.6rem !important; height: auto !important; padding: .5rem .7rem !important;
    background: #E6EBF3 !important; border: 0 !important; box-shadow: none !important; color: #0616a8 !important; -webkit-text-fill-color: currentColor !important;
    font-family: var(--font-display) !important; font-size: 1.45rem !important; line-height: 1 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Ergebnis"] .res-link.win { background: #DDF5E6 !important; color: #0a7a3c !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Ergebnis"] .res-link.lose { background: #FBE3E0 !important; color: #b3261e !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Ergebnis"] .res-link small { display: block !important; margin-top: .25rem !important; font: 700 .58rem/1 'SG Text', sans-serif !important; letter-spacing: .08em; text-transform: uppercase; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) .res-link.aktion { width: 6.4rem !important; min-width: 6.4rem !important; height: 3rem !important; padding: .3rem .4rem !important;
    background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 0 !important;
    box-shadow: 0 6px 14px rgba(4,8,40,.3) !important; font: 800 .82rem/1.1 'SG Text', sans-serif !important; letter-spacing: .04em; text-transform: uppercase; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) .res-link.aktion :is(small, span) { color: #fff !important; -webkit-text-fill-color: #fff !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) .res-link.aktion small { font-size: .58rem !important; opacity: .85; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) .res-link.res-dyn .dyn-blau { content: url("../img/social/dyn-logo-polishweiss.svg"); height: 16px !important; }
  /* Halle mit kleiner Ortsmarke */
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Halle"] { grid-area: h; display: flex !important; align-items: center; gap: 6px; padding-top: 8px !important; border-top: 1px solid rgba(14,18,64,.1) !important;
    font: 700 .74rem/1.2 'SG Text', sans-serif !important; letter-spacing: .05em !important; text-transform: uppercase; color: #4a4f75 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Halle"]::after { display: none !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Halle"]::before { content: "" !important; display: inline-block !important; position: static !important; width: 12px; height: 14px; flex: none;
    background: url("../img/Icons/pin-rot.svg") center / contain no-repeat !important; }
}

@media (max-width: 720px) {
  /* aeltere Spalten-Zuweisungen der Tabellen-Paarung aufheben: Vereine untereinander, Name nimmt die freie Breite */
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7) table:is(.bl-hometable, .bl-saisonplan) td.pairing .pair > * { grid-column: 1 / -1 !important; grid-row: auto !important; order: 0 !important; justify-self: stretch !important; width: auto !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7) table:is(.bl-hometable, .bl-saisonplan) td.pairing .club > * { grid-column: auto !important; grid-row: auto !important; order: 0 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7) table:is(.bl-hometable, .bl-saisonplan) td.pairing .club-ic { flex: none !important; width: 30px !important; height: 30px !important; display: grid !important; place-items: center; margin: 0 !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7) table:is(.bl-hometable, .bl-saisonplan) td.pairing .club-nm { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; max-width: none !important; white-space: normal !important;
    overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; writing-mode: horizontal-tb !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Halle"] { justify-content: flex-start !important; text-align: left !important; }
}
@media (max-width: 720px) {
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7):not(#sk8) table:is(.bl-hometable, .bl-saisonplan) td:is([data-label="Spieltag"], [data-label="Halle"]) { flex-direction: row !important; flex-wrap: nowrap !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7):not(#sk8) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Halle"] { justify-content: flex-start !important; text-align: left !important; }
  html body:not(#sk1):not(#sk2):not(#sk3):not(#sk4):not(#sk5):not(#sk6):not(#sk7):not(#sk8) table:is(.bl-hometable, .bl-saisonplan) td[data-label="Spieltag"] { justify-content: flex-end !important; }
}

/* ===========================================================================
   Alle Tab-Leisten der Website (Verein & Jugend und Bundesliga, alle Breiten) im Look der
   Handy-Tabs "Frauen / Maenner / Jugend" (Wunsch 04.11.2026): gleich breite, eckige Schaltflaechen mit 8 px Abstand,
   Saira 800, aktiv Polish-Blau mit weisser Schrift, inaktiv Weiss-Silber-Blau-Polish mit blauer Schrift und feinem Rand.
   Gilt fuer .sz-tabs (Mediathek, Spielplan, Saison, Videos, Teams), .news-filter, .bl-sp-tabs und .sb-tabs.
   =========================================================================== */
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs, .news-filter, .bl-sp-tabs, .sb-tabs) { flex-wrap: wrap !important; gap: 8px !important; padding: 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; overflow: visible !important; }
@media (min-width: 768px) { html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs, .news-filter, .bl-sp-tabs, .sb-tabs) { max-width: 760px; } }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab) {
  flex: 1 1 0 !important; min-width: max-content !important; height: 40px !important; min-height: 40px !important; margin: 0 !important; padding: 0 14px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box;
  font: 800 14px/1 'SG Text', "Helvetica Neue", Arial, sans-serif !important; letter-spacing: .05em !important; text-transform: none !important; white-space: nowrap;
  background: linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%) !important; color: #0616a8 !important; -webkit-text-fill-color: #0616a8 !important;
  border: 1px solid #C9CCE3 !important; border-radius: 0 !important; box-shadow: none !important; opacity: 1 !important; transform: none; cursor: pointer;
  transition: filter .2s ease, transform .15s ease; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab)::before, html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab)::after { display: none !important; content: none !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab) :is(span, small, b, .btn-txt) { color: inherit !important; -webkit-text-fill-color: currentColor !important; background: none !important; font: inherit !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab):hover { filter: brightness(.97); }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab):active { transform: scale(.97); }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab):is([aria-selected="true"], [aria-pressed="true"], .is-active, .is-on, .active) {
  background: #1119B5 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border-color: #1119B5 !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab):is([aria-selected="true"], [aria-pressed="true"], .is-active, .is-on, .active):hover { filter: brightness(1.1); }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) :is(.sz-tabs:not(.mv-tabs), .news-filter, .sb-tabs) { display: flex !important; }
@media (min-width: 768px) { html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7) .mv-tabs { display: none !important; } }

/* ===========================================================================
   SG-Zeichen auf allen Buttons (Wunsch 04.11.2026): helle Buttons (Weiss-Polish, js/main.js setzt .btn-hell)
   tragen das SG in Polish-Blau, blaue Buttons (.btn-blau) das SG in Weiss-Silber-Polish.
   Gilt fuer das Zeichen als ::before und fuer eingebettete SG-Bilder (z. B. .text-link-btn). Zeichen, die ein Button
   bewusst nicht hat (DYN, Pfeile), bleiben weg, hier wird nur das Bild getauscht.
   =========================================================================== */
html body:not(#sg1):not(#sg2):not(#sg3):not(#sg4):not(#sg5):not(#sg6):not(#sg7):not(#sg8) .btn-hell::before { background-image: url("../img/wasserzeichen/sg-buchstaben-polish-blau.svg") !important; }
html body:not(#sg1):not(#sg2):not(#sg3):not(#sg4):not(#sg5):not(#sg6):not(#sg7):not(#sg8) .btn-blau::before { background-image: url("../img/wasserzeichen/sg-buchstaben-polish-silberblau.svg") !important; }
html body:not(#sg1):not(#sg2):not(#sg3):not(#sg4):not(#sg5):not(#sg6):not(#sg7):not(#sg8) .btn-hell img[src*="SG_Logo"] { content: url("../img/wasserzeichen/sg-buchstaben-polish-blau.svg"); }
html body:not(#sg1):not(#sg2):not(#sg3):not(#sg4):not(#sg5):not(#sg6):not(#sg7):not(#sg8) .btn-blau img[src*="SG_Logo"] { content: url("../img/wasserzeichen/sg-buchstaben-polish-silberblau.svg"); }
/* Buttons ohne SG-Zeichen bekommen es ebenfalls (Wunsch 04.11.2026: SG auf allen Buttons) */
html body:not(#sh1):not(#sh2):not(#sh3):not(#sh4):not(#sh5):not(#sh6):not(#sh7):not(#sh8):not(#sh9) :is(.btn-hell, .btn-blau):not(.nc-dyn):not(.res-dyn):not(.nav-dyn):not(:has(> img)):not(.partner-fab):not(.cart-fab) { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: .55rem !important; }
html body:not(#sh1):not(#sh2):not(#sh3):not(#sh4):not(#sh5):not(#sh6):not(#sh7):not(#sh8):not(#sh9) :is(.btn-hell, .btn-blau):not(.nc-dyn):not(.res-dyn):not(.nav-dyn):not(:has(> img)):not(.partner-fab):not(.cart-fab)::before { content: "" !important; display: inline-block !important; position: static !important; flex: none !important;
  width: 20px !important; height: 21px !important; margin: 0 !important; padding: 0 !important; inset: auto !important; transform: none !important; opacity: 1 !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background-color: transparent !important;
  background-position: center !important; background-size: contain !important; background-repeat: no-repeat !important; }
html body:not(#sh1):not(#sh2):not(#sh3):not(#sh4):not(#sh5):not(#sh6):not(#sh7):not(#sh8):not(#sh9) .btn-hell:not(.nc-dyn):not(.res-dyn):not(.nav-dyn):not(:has(> img)):not(.partner-fab):not(.cart-fab)::before { background-image: url("../img/wasserzeichen/sg-buchstaben-polish-blau.svg") !important; }
html body:not(#sh1):not(#sh2):not(#sh3):not(#sh4):not(#sh5):not(#sh6):not(#sh7):not(#sh8):not(#sh9) .btn-blau:not(.nc-dyn):not(.res-dyn):not(.nav-dyn):not(:has(> img)):not(.partner-fab):not(.cart-fab)::before { background-image: url("../img/wasserzeichen/sg-buchstaben-polish-silberblau.svg") !important; }
/* ausgetauschte SG-Bilder in Buttons behalten die Groesse des Original-Logos */
html body:not(#sg1):not(#sg2):not(#sg3):not(#sg4):not(#sg5):not(#sg6):not(#sg7):not(#sg8):not(#sg9) :is(.btn-hell, .btn-blau) img[src*="SG_Logo"] { width: auto !important; height: 22px !important; max-width: 24px !important; flex: none !important; object-fit: contain; }

/* Alle Tab-Leisten (seit 04.11.2026, zuerst nur Spielplan): Farben getauscht,
   damit der aktive Tab sich vom blauen Abschnitt abhebt: aktiv Weiss-Silber-Blau-Polish, inaktiv Polish-Blau */
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab) { background: linear-gradient(165deg,#0a1cd6 0%,#0616a8 55%,#04127e 100%) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border-color: rgba(255,255,255,.28) !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8) :is(.sz-tabs [role="tab"], .sz-tabs > button, .news-filter button, .bl-sp-tabs [role="tab"], .bl-sp-tabs > button, .sb-tabs .sb-tab):is([aria-selected="true"], [aria-pressed="true"], .is-active, .is-on, .active) { background: linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%) !important; color: #0616a8 !important; -webkit-text-fill-color: #0616a8 !important; border-color: #C9CCE3 !important; }

/* Spielplan Bundesliga-Startseite am Desktop (ab 721 px), Wunsch 04.11.2026: Ergebnis und Buttons gut lesbar.
   Gleiche Feldgroesse (115 x 54 px), Schrift fuellt das Feld: Ergebnis 30 px auf hellem Polish, gruen bei Sieg,
   rot bei Niederlage. Buttons: Hauptwort 18 px, Unterzeile 12 px, DYN-Logo 24 px hoch. */
@media (min-width: 721px) {
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable td[data-label="Ergebnis"] .res-link {
    background: linear-gradient(160deg,#FFFFFF 0%,#F4F6FA 34%,#E6EBF3 68%,#D5DCE8 100%) !important; border: 0 !important; border-left: 4px solid #0616a8 !important;
    box-shadow: 0 6px 14px rgba(4,8,40,.3) !important; color: #0616a8 !important; -webkit-text-fill-color: currentColor !important; -webkit-text-stroke: 0 !important;
    font-family: var(--font-display) !important; font-size: 30px !important; line-height: 1 !important; letter-spacing: .01em !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable td[data-label="Ergebnis"] .res-link.win { color: #0a7a3c !important; border-left-color: #0a7a3c !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable td[data-label="Ergebnis"] .res-link.lose { color: #b3261e !important; border-left-color: #f82818 !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable td[data-label="Ergebnis"] .res-link small { font: 700 11px/1 'SG Text', sans-serif !important; letter-spacing: .06em; margin-top: 3px !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable .res-link.aktion { font: 800 18px/1 'SG Text', sans-serif !important; letter-spacing: .03em !important; gap: 4px !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable .res-link.aktion small { font: 700 12px/1 'SG Text', sans-serif !important; letter-spacing: .08em !important; }
  html body:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6):not(#rs7) table.bl-hometable .res-link.res-dyn .dyn-blau { height: 24px !important; width: auto !important; }
}

/* ===========================================================================
   Bundesliga "Letztes Spiel" (alle Breiten) im Aufbau der Karte "Naechstes Spiel", aber blau (Wunsch 04.11.2026):
   gleiche Schrift (Saira 700), Wappen 84 px, Ergebnis gross in der Mitte, Infos direkt darunter (keine Luecke),
   Button unten auf gleicher Linie wie die Nachbarkarten.
   =========================================================================== */
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last { gap: 10px !important; padding: 18px 16px 16px calc(16px + var(--bar, 30px) * 1.2) !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last > .kicker { color: #FFB3A8 !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .tr-match .team img { height: 84px !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .tr-match .team .nm { font: 700 1.1rem/.95 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #fff !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .tr-match .team .nm small { font: 700 .6rem/.95 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #ffb3b3 !important; margin-top: .35rem; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .tr-match .vs.tr-score { margin-top: -1.4rem; font-size: 2.3rem !important; padding: .35rem .6rem !important; background: rgba(255,255,255,.1) !important; border-bottom: 3px solid currentColor; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when { margin-top: 0 !important; gap: 6px !important; flex: 1 1 auto !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when > span { font: 700 .95rem/1.7 'SG Text', sans-serif !important; letter-spacing: .05em !important; color: #fff !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when > .date { color: #ffb3b3 !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when > .venue { font-size: .8rem !important; color: rgba(255,255,255,.72) !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when .tr-stats { font: 700 .8rem/1.4 'SG Text', sans-serif !important; letter-spacing: .05em; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9) .bl-trio .bl-last .when .nc-actions { margin-top: auto !important; padding-top: 10px; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10) .bl-trio .bl-last .nc-actions { grid-template-columns: 1fr 1fr !important; }
html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10) .bl-trio .bl-last .nc-actions .nc-bericht { grid-column: 1 / -1 !important; }
@media (min-width: 721px) {
  html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10):not(#lb11) .bl-trio .bl-last .when { justify-content: space-between !important; }
  html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10):not(#lb11) .bl-trio .bl-last .when > .date { margin-top: auto !important; }
  html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10):not(#lb11) .bl-trio .bl-last .tr-match .team img { height: 96px !important; }
  html body:not(#lb1):not(#lb2):not(#lb3):not(#lb4):not(#lb5):not(#lb6):not(#lb7):not(#lb8):not(#lb9):not(#lb10):not(#lb11) .bl-trio .bl-last .tr-match .vs.tr-score { font-size: 2.6rem !important; }
}
/* Bundesliga-Teamseite: Ueberschriften von Staff, Zu-/Abgaengen und Abschluss so nah an der Abschnittskante wie
   in allen anderen Sections. Der alte Innenabstand oben der .container kam zum Abschnittsabstand noch dazu (04.11.2026). */
html body:not(#pt1):not(#pt2):not(#pt3):not(#pt4) :is(.ps-staff, .ps-outro) > .container { padding-top: 0 !important; }

/* Volle Menueleiste (ab 1620 px), Wunsch 04.11.2026: alle Buttons gleich hoch (46 px, auch "Live bei DYN"),
   Suche und Social-Icons ohne Kaestchen direkt auf dem Hintergrund in Polish-Blau. */
@media (min-width: 1220px) {
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header #mainNav > a.button {
    height: 46px !important; min-height: 46px !important; max-height: 46px !important; padding-top: 0 !important; padding-bottom: 0 !important; box-sizing: border-box !important;
    display: inline-flex !important; align-items: center !important; align-self: center !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header #mainNav > a.button.nav-dyn img { max-height: 24px !important; height: 24px !important; width: auto !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social { gap: 4px !important; align-items: center !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a {
    width: 34px !important; height: 34px !important; background: none !important; background-image: none !important; box-shadow: none !important; border: 0 !important;
    color: #0616a8 !important; place-items: center !important; transition: color .2s ease, transform .2s ease; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a::before,
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a::after { display: none !important; content: none !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a svg { width: 22px !important; height: 22px !important; background: none !important; color: inherit !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a:hover { color: #0a1cd6 !important; transform: translateY(-2px); }
}
@media (min-width: 1220px) {
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a:not([style*="display: none"]) { display: inline-grid; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6):has(#mainNav a.nav-switch[href*="bundesliga"]) .site-header .nav-social a:not(.nav-search) { display: none !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a svg[fill="currentColor"] :is(path, circle, rect):not([fill]) { fill: url(#sgPolishBlau) !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a svg :is(path, circle, rect)[fill="currentColor"] { fill: url(#sgPolishBlau) !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a svg[stroke="currentColor"] :is(path, circle, rect) { stroke: url(#sgPolishBlau) !important; }
  html body:not(#ml1):not(#ml2):not(#ml3):not(#ml4):not(#ml5):not(#ml6) .site-header .nav-social a svg :is(path, circle, rect)[stroke="currentColor"] { stroke: url(#sgPolishBlau) !important; }
}

/* ===========================================================================
   Partner-Leisten auch bei Verein & Jugend (Talentschmiede), Wunsch 04.11.2026, gleiche Regeln wie Bundesliga:
   Hintergrund im Weiss-Silber-Blau-Polish der hellen Buttons, kein Rand und kein Schattensaum.
   Die Logos kommen freigestellt aus img/sponsoren/frei/ (build_partner_logos_frei.py), so entstehen keine weissen Kaestchen.
   =========================================================================== */
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar {
  background: linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%) !important;
  border: 0 !important; outline: 0 !important; box-shadow: none !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar :is(.inner, .pb-sets, .pb-set, a) {
  border: 0 !important; box-shadow: none !important; background: transparent !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar .pb-set img {
  border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; }
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar .label { border-right-color: rgba(6,22,168,.25) !important; }
/* Freigestellte Logos haben keinen eingebauten Weissrand mehr: einheitliches Feld, damit breite Wortmarken (z. B. OLYMP) nicht dominieren */
html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar .pb-set img {
  width: 132px !important; height: 44px !important; max-width: 132px !important; max-height: 44px !important; object-fit: contain !important; aspect-ratio: auto !important; }
@media (max-width: 767.98px) {
  html body:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):has(#mainNav a.nav-switch) section.partner-bar .pb-set img { width: 60px !important; max-width: 60px !important; height: 30px !important; max-height: 30px !important; }
}

@media (max-width: 767.98px) {
  html body.mv-page:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):not(#pb7) #main section.partner-bar,
  html body.mv-page:not(#pb1):not(#pb2):not(#pb3):not(#pb4):not(#pb5):not(#pb6):not(#pb7) section.partner-bar {
    background: linear-gradient(270deg,#D5DCE8 0%,#E6EBF3 30%,#F4F6FA 62%,#FFFFFF 100%) !important; border: 0 !important; box-shadow: none !important; }
}
/* Buttons mit SG-Zeichen (btn-hell / btn-blau): nur EIN SG vor dem Text. Das alte zweite Logo von .button-blue (::after) entfaellt (04.11.2026). */
html body:not(#sd1):not(#sd2):not(#sd3):not(#sd4):not(#sd5):not(#sd6):not(#sd7):not(#sd8):not(#sd9) .button-blue:is(.btn-hell, .btn-blau)::after { display: none !important; content: none !important; }
html body:not(#sd1):not(#sd2):not(#sd3):not(#sd4):not(#sd5):not(#sd6):not(#sd7):not(#sd8):not(#sd9) :is(.btn-hell, .btn-blau)::before { order: -1 !important; }
html body:not(#sd1):not(#sd2):not(#sd3):not(#sd4):not(#sd5):not(#sd6):not(#sd7):not(#sd8):not(#sd9):not(#sd10) .button-blue:is(.btn-hell, .btn-blau) { flex-direction: row !important; }

/* ===========================================================================
   Dyn Touchpoint 1 (SEO-Guide 2026/27): offizielle Button-Grafik im Header,
   in jeder Breite sichtbar. Volle Menueleiste ab 1220px: .nav-dyn im Menue.
   Darunter (Kompaktkopf und Handy): .dyn-head links neben Suche und Menue.
   =========================================================================== */
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik {
  display: inline-flex !important; align-items: center; height: 46px !important; width: auto !important; min-width: 0 !important;
  padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: 0 6px 16px rgba(2, 8, 60, .28) !important; overflow: hidden; flex: 0 0 auto; transition: transform .15s, box-shadow .15s; }
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik::before,
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik::after { content: none !important; display: none !important; }
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik img {
  display: block !important; height: 46px !important; max-height: none !important; width: auto !important; margin: 0 !important; filter: none !important; content: normal !important; }
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(2, 8, 60, .36) !important; }
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.nav-dyn.dyn-grafik:focus-visible,
html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header a.dyn-head:focus-visible { outline: 2px solid #fff !important; outline-offset: 2px !important; }

.site-header a.dyn-head { display: none; }
@media (max-width: 1219.98px) {
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head {
    display: block !important; position: absolute !important; z-index: 5; top: 1px; transform: none;
    right: 116px; left: auto !important; margin: 0 !important; padding: 0 !important; line-height: 0;
    box-shadow: 0 6px 16px rgba(2, 8, 60, .45); }
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head img { display: block; height: 40px !important; width: auto !important; }
  /* Im geoeffneten Menue steht der Button schon im Menue */
  html body.nav-open:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head { visibility: hidden !important; }
}
@media (max-width: 767.98px) {
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head {
    top: calc(var(--ic-top, 3px) + env(safe-area-inset-top) + 5px); transform: none; right: calc(var(--ic-right, 6px) + 88px + 2 * var(--ic-gap, 4px) + 6px); }
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head img { height: 34px !important; }
}
@media (max-width: 359.98px) {
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head { top: calc(var(--ic-top, 3px) + env(safe-area-inset-top) + 8px); }
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6) .site-header .inner > a.dyn-head img { height: 28px !important; }
}

/* Dyn Touchpoint 2: Dyn Auswaertsticket gleichrangig neben dem Ticketshop (gleiche Hoehe und Breite) */
.tk-wege { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.4vw, 1.8rem); margin: 0 0 clamp(1.6rem, 3.4vw, 2.6rem); align-items: stretch; }
.tk-weg { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; padding: clamp(1.2rem, 2.6vw, 2rem);
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%); color: #0b1440; box-shadow: 0 18px 44px rgba(2, 8, 60, .35); }
.tk-weg-kopf { height: 64px; display: flex; align-items: center; margin-bottom: .3rem; }
.tk-weg-kopf img { display: block; height: 100%; width: auto; }
.tk-weg-dyn .tk-weg-kopf img { height: 46px; }
html body .tk-weg .kicker { color: #0616a8 !important; }
html body .tk-weg h3 { color: #04127e !important; margin: 0; font-family: var(--font-display); font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.05; text-transform: uppercase; }
html body .tk-weg p { color: #1c2550 !important; margin: 0 0 .4rem; max-width: 46ch; }
.tk-weg .button { margin-top: auto; }
@media (max-width: 700px) { .tk-wege { grid-template-columns: 1fr; } }

/* Dyn Touchpoint 3: Banner im Dyn-Look an Spielplan und Tabelle */
.dyn-banner { position: relative; z-index: 1; margin: clamp(1.2rem, 2.6vw, 2rem) 0 0; }
.dyn-banner a { display: flex; align-items: center; gap: clamp(.9rem, 2.4vw, 2rem); padding: clamp(.9rem, 2vw, 1.3rem) clamp(1rem, 2.6vw, 2rem);
  background: #012f60; color: #fff; text-decoration: none; box-shadow: 0 18px 44px rgba(2, 8, 40, .4); transition: transform .15s, box-shadow .15s; }
.dyn-banner a:hover { transform: translateY(-2px); box-shadow: 0 22px 52px rgba(2, 8, 40, .5); }
.dyn-banner a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.dyn-banner-logo { display: block; height: clamp(36px, 4vw, 52px); width: auto; flex: 0 0 auto; }
.dyn-banner-txt { display: flex; flex-direction: column; gap: .15rem; min-width: 0; flex: 1 1 auto; }
html body .dyn-banner-txt b { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1; text-transform: uppercase; color: #fff; letter-spacing: .01em; }
html body .dyn-banner-txt span { font-family: var(--font-body); font-size: clamp(.92rem, 1.2vw, 1.05rem); color: rgba(255, 255, 255, .86); }
html body .dyn-banner-cta { flex: 0 0 auto; padding: .7rem 1.3rem; background: #fff; color: #012f60; font-family: var(--font-body); font-weight: 800; font-size: .95rem; text-transform: uppercase; letter-spacing: .04em; }
@media (max-width: 560px) {
  .dyn-banner a { flex-wrap: wrap; }
  .dyn-banner-txt { flex-basis: calc(100% - 110px); }
  html body .dyn-banner-cta { flex-basis: 100%; text-align: center; }
}

/* Dyn Touchpoint 5: Artikelseite bundesliga/dyn.html und Footer-Link */
.dyn-artikel-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.6rem); align-items: center; margin-bottom: clamp(1.6rem, 3.4vw, 2.6rem); }
.dyn-artikel-grid .prose p { max-width: 62ch; }
.dyn-artikel-bild { display: block; line-height: 0; box-shadow: 0 18px 44px rgba(2, 8, 40, .45); transition: transform .15s; }
.dyn-artikel-bild:hover { transform: translateY(-2px); }
.dyn-artikel-bild img { display: block; width: 100%; height: auto; }
.dyn-wege { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.6rem); align-items: stretch; }
.dyn-weg { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; padding: clamp(1.2rem, 2.4vw, 1.8rem);
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%); color: #0b1440; box-shadow: 0 18px 44px rgba(2, 8, 60, .35); }
html body .dyn-weg .kicker { color: #0616a8 !important; }
html body .dyn-weg h3 { color: #04127e !important; margin: 0; font-family: var(--font-display); font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.05; text-transform: uppercase; }
html body .dyn-weg p { color: #1c2550 !important; margin: 0 0 .4rem; }
.dyn-weg .button { margin-top: auto; }
.dyn-artikel .back-all { position: relative; z-index: 1; margin-top: 2rem; }
@media (max-width: 900px) { .dyn-artikel-grid, .dyn-wege { grid-template-columns: 1fr; } .dyn-artikel-bild { max-width: 420px; } }
.site-footer a.f-dyn { white-space: normal; }

/* Bundesliga-Startseite, Spielplan: Reiter Spielplan/Tabelle links, Link zur Saisonseite rechts auf gleicher Hoehe */
html body:not(#hs1):not(#hs2):not(#hs3):not(#hs4):not(#hs5):not(#hs6):not(#hs7):not(#hs8) .hs-kopf {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0 0 clamp(1.2rem, 2.4vw, 1.8rem); }
html body:not(#hs1):not(#hs2):not(#hs3):not(#hs4):not(#hs5):not(#hs6):not(#hs7):not(#hs8) .hs-kopf .hs-tabs { display: flex !important; margin: 0 !important; flex: 0 1 auto; width: auto !important; }
html body:not(#hs1):not(#hs2):not(#hs3):not(#hs4):not(#hs5):not(#hs6):not(#hs7):not(#hs8) .hs-kopf .hs-alles { margin: 0 0 0 auto !important; flex: 0 0 auto; }
.hs-panel { position: relative; z-index: 1; }
.hs-panel[hidden] { display: none !important; }
@media (max-width: 767.98px) {
  html body:not(#hs1):not(#hs2):not(#hs3):not(#hs4):not(#hs5):not(#hs6):not(#hs7):not(#hs8) .hs-kopf .hs-alles { margin: 0 !important; width: 100%; justify-content: center; order: 3; }
}
/* Mini-Tabelle: Zeile der SG hervorheben, auf dem Handy nur die wichtigsten Spalten */
.bl-minitabelle tr.sg td { font-weight: 800; }
@media (max-width: 720px) {
  .bl-minitabelle :is(th, td):nth-child(n+5):nth-child(-n+7) { display: none; }
}

/* ===========================================================================
   Dyn im roten Style (Entscheidung 04.11.2026): Header-Grafik rot, Dyn-Buttons und Banner in Dyn-Rot
   =========================================================================== */
:root { --dyn-rot: #fe6263; }
html body .site-header a.nav-dyn.dyn-grafik, html body .site-header .inner > a.dyn-head { box-shadow: 0 6px 16px rgba(120, 20, 30, .35) !important; }
.dyn-banner a { background: var(--dyn-rot); box-shadow: 0 18px 44px rgba(120, 20, 30, .35); }
html body .dyn-banner-txt span { color: rgba(255, 255, 255, .95); }
html body .dyn-banner-cta { color: var(--dyn-rot); }
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn),
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn):is(:hover, :focus-visible) {
  background: var(--dyn-rot) !important; background-image: none !important; border-color: var(--dyn-rot) !important; color: #fff !important; box-shadow: 0 10px 24px rgba(120, 20, 30, .35) !important; }
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn)::before,
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn)::after { display: none !important; }
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn) img { content: url("../img/social/dyn-logo-weiss.svg") !important; filter: brightness(0) invert(1) !important; opacity: 1 !important; }
html body:not(#r1):not(#r2):not(#r3):not(#r4):not(#r5):not(#r6):not(#r7):not(#r8):not(#r9):not(#r10) :is(a.nc-dyn, a.res-dyn) :is(span, small) { color: #fff !important; background: none !important; -webkit-text-fill-color: #fff !important; }

/* Dyn-Werbebanner unter dem Exklusiv-Partner-Band der Bundesliga-Startseite  */
.dyn-werbung { position: relative; z-index: 1; padding: 0 0 clamp(1rem, 2.4vw, 1.8rem); margin-top: calc(-1 * clamp(.5rem, 2vw, 1.6rem)); }
.dyn-werbung .container { display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.dyn-werbung .container > * { width: 100%; max-width: 1200px; }
.dyn-werbung a { display: block; width: 100%; max-width: 1200px; line-height: 0; box-shadow: 0 18px 44px rgba(2, 8, 40, .4); transition: transform .15s; }
.dyn-werbung a:hover { transform: translateY(-2px); }
.dyn-werbung a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.dyn-werbung img { display: block; width: 100%; height: auto; }
@media (max-width: 599.98px) { .dyn-werbung .container > * { max-width: 300px; } }

/* Werbebloecke der Bundesliga-Startseite (Spieltagskarten und News): je ein HBL-Platz und ein Autobanner.
   Desktop nebeneinander, Handy untereinander mit Abstand. Ohne Einwilligung steht nur der Autobanner, mittig. */
html body:not(#ad1):not(#ad2):not(#ad3):not(#ad4):not(#ad5) .bl-ads.bl-ads-paar {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(0, 468px)) !important; justify-content: center; align-items: center; gap: 1rem 1.5rem !important; }
html body:not(#ad1):not(#ad2):not(#ad3):not(#ad4):not(#ad5) .bl-ads.bl-ads-paar > a { width: 100% !important; }
@media (max-width: 760px) {
  html body:not(#ad1):not(#ad2):not(#ad3):not(#ad4):not(#ad5) .bl-ads.bl-ads-paar { grid-template-columns: minmax(0, 468px) !important; gap: 1rem !important; }
}

/* Saison-Spielplan auf dem Handy: gleiche Karten wie die Startseite (Klasse bl-saisonplan, Regeln oben).
   Aeltere Regel setzte das Ergebnis absolut, hier zurueck ins Raster. Offene Spiele ohne Ergebnis: kein "–:–". */
@media (max-width: 720px) {
  html body:not(#sq1):not(#sq2):not(#sq3):not(#sq4):not(#sq5):not(#sq6):not(#sq7) table.bl-saisonplan td[data-label="Ergebnis"] {
    position: static !important; top: auto !important; left: auto !important; right: auto !important; transform: none !important;
    align-self: center !important; justify-self: end !important; margin: 0 !important; }
  html body:not(#sq1):not(#sq2):not(#sq3):not(#sq4):not(#sq5):not(#sq6):not(#sq7) table.bl-saisonplan td[data-label="Ergebnis"]:not(:has(.res-link)) { display: none !important; }
  html body:not(#sq1):not(#sq2):not(#sq3):not(#sq4):not(#sq5):not(#sq6):not(#sq7) table.bl-saisonplan tr:not(:has(td[data-label="Ergebnis"] .res-link)) { grid-template-areas: "d s" "p p" "h h" !important; }
}

/* ===========================================================================
   Vereinswappen auf blauem Grund (Wunsch 04.11.2026): viele Gegnerwappen sind dunkel (Gummersbach, Kiel,
   Balingen, Berlin, Wetzlar) und verschwinden auf Polish-Blau. Darum stehen alle Wappen in Tabellen und
   blauen Karten auf einer runden Weiss-Silber-Plakette. Gilt fuer SG und Gegner gleich.
   =========================================================================== */
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8) :is(table.schedule .club-ic, .tr-plan .tr-w) {
  display: inline-grid !important; place-items: center !important; flex: none !important; border-radius: 50% !important; overflow: hidden;
  background: radial-gradient(circle at 35% 30%, #FFFFFF 0%, #F4F6FA 55%, #DCE3EE 100%) !important;
  box-shadow: 0 3px 10px rgba(2, 8, 50, .35), inset 0 0 0 1px rgba(255, 255, 255, .7) !important; }
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8) :is(table.schedule .club-ic, .tr-plan .tr-w) :is(img, .club-logo) {
  width: 66% !important; height: 66% !important; max-width: 66% !important; max-height: 66% !important; object-fit: contain !important;
  position: static !important; inset: auto !important; transform: none !important;
  background: none !important; padding: 0 !important; margin: 0 !important; filter: none !important; }
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8) .tr-plan .tr-w { width: 42px !important; height: 42px !important; }
/* Blaue Karte "Letztes Spiel": grosse Wappen ebenfalls auf Plakette */
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8) .tr-card:not(#liveCard) .tr-match .team > img {
  box-sizing: border-box !important; border-radius: 0 !important; padding: 15% !important; object-fit: contain !important; box-shadow: none !important;
  background: radial-gradient(circle closest-side at 50% 50%, #FFFFFF 0%, #F4F6FA 60%, #DCE3EE 96%, rgba(220, 227, 238, 0) 100%) !important;
  aspect-ratio: 1 / 1 !important; filter: drop-shadow(0 6px 12px rgba(2, 8, 50, .4)) !important; }

/* Spielplan (alle Spielplan-Tabellen, nicht die Tabelle): Wappen-Plaketten doppelt so gross (Wunsch 04.11.2026) */
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-ic {
  width: 72px !important; height: 72px !important; min-width: 72px !important; padding: 0 !important; box-sizing: border-box !important; grid-template-columns: 100% !important; grid-template-rows: 100% !important; }
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club { gap: 14px !important; }
@media (max-width: 720px) {
  html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-ic {
    width: 60px !important; height: 60px !important; min-width: 60px !important; }
}
/* Wappen fuellt die Plakette in jeder Breite (aeltere Handy-Regeln begrenzten das Bild auf 30 px), Vereinsnamen ohne Silbentrennung */
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-ic :is(img, .club-logo) {
  width: 66% !important; height: 66% !important; max-width: 66% !important; max-height: 66% !important; }
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-nm { hyphens: manual !important; -webkit-hyphens: manual !important; overflow-wrap: normal !important; word-break: normal !important; }

/* Spielplan (alle Spielplan-Tabellen, nicht die Tabelle): Wappen-Plaketten doppelt so gross (Wunsch 04.11.2026) */
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-ic {
  width: 72px !important; height: 72px !important; min-width: 72px !important; padding: 0 !important; box-sizing: border-box !important; grid-template-columns: 100% !important; grid-template-rows: 100% !important; }
html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club { gap: 14px !important; }
@media (max-width: 720px) {
  html body:not(#wg1):not(#wg2):not(#wg3):not(#wg4):not(#wg5):not(#wg6):not(#wg7):not(#wg8):not(#wg9):not(#wg10) table.schedule:not(.bl-tabelle) td.pairing .club-ic {
    width: 60px !important; height: 60px !important; min-width: 60px !important; }
}

/* ===========================================================================
   Ergebnisse ueberall im Design des Saison-Spielplans (Wunsch 04.11.2026):
   dunkelblaues Feld mit Farbton, 3-px-Kante links (gruen Sieg, rot Niederlage, hell Remis), weisse Zahlen,
   darunter klein "Bericht >". Eigener dunkler Grund, damit es auch auf hellen Karten (Handy) lesbar bleibt.
   Schriftgroesse an das Feld angepasst: Zahlen gross genug, damit die Display-Schrift nicht zuläuft.
   =========================================================================== */
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) :is(table.schedule td .res-link:not(.aktion), table.schedule td[data-label="Ergebnis"] > .score, .tr-score) {
  display: inline-flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 3px !important;
  min-width: 5.6rem !important; width: auto !important; height: auto !important; min-height: 0 !important; padding: .45rem .8rem .4rem !important; margin: 0 !important;
  background: linear-gradient(rgba(255, 255, 255, .06), rgba(255, 255, 255, .06)), linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important;
  border: 0 !important; border-left: 3px solid #9fb2ff !important; border-radius: 0 !important; box-shadow: 0 6px 14px rgba(2, 8, 40, .3) !important;
  color: #fff !important; -webkit-text-fill-color: #fff !important; -webkit-text-stroke: 0 !important; text-shadow: none !important;
  font-family: var(--font-display) !important; font-weight: 400 !important; font-size: 26px !important; line-height: 1 !important; letter-spacing: .05em !important;
  font-variant-numeric: tabular-nums; white-space: nowrap !important; text-decoration: none !important; }
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) :is(table.schedule td .res-link.win, table.schedule td[data-label="Ergebnis"] > .score.win, .tr-score.win) {
  background: linear-gradient(rgba(31, 166, 74, .28), rgba(31, 166, 74, .28)), linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important; border-left-color: #1fa64a !important; }
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) :is(table.schedule td .res-link.lose, table.schedule td[data-label="Ergebnis"] > .score.lose, .tr-score.lose) {
  background: linear-gradient(rgba(217, 0, 0, .22), rgba(217, 0, 0, .22)), linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important; border-left-color: #ff8a8a !important; }
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) table.schedule td .res-link:not(.aktion) small {
  display: block !important; margin: 0 !important; font: 700 11px/1 'SG Text', sans-serif !important; letter-spacing: .08em !important; text-transform: uppercase !important;
  color: #ffc2c2 !important; -webkit-text-fill-color: #ffc2c2 !important; }
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) table.schedule td .res-link.win small { color: #b9f3c9 !important; -webkit-text-fill-color: #b9f3c9 !important; }
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) a.res-link:not(.aktion):hover { filter: brightness(1.12); }
/* Grosses Ergebnis in der Karte "Letztes Spiel" */
html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) .tr-score { font-size: clamp(34px, 3.4vw, 46px) !important; min-width: 7.5rem !important; padding: .55rem 1rem !important; }
@media (max-width: 720px) {
  html body:not(#er1):not(#er2):not(#er3):not(#er4):not(#er5):not(#er6):not(#er7):not(#er8):not(#er9):not(#er10):not(#er11) table.schedule td :is(.res-link:not(.aktion), [data-label="Ergebnis"] > .score) { font-size: 24px !important; min-width: 5.2rem !important; }
}
/* Helle Wappen (js/main.js erkennt sie): Plakette in Polish-Blau statt Weiss */
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8):not(#wp9) :is(table.schedule .club-ic, .tr-plan .tr-w).ic-hell {
  background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important; box-shadow: 0 3px 10px rgba(2, 8, 50, .35), inset 0 0 0 1px rgba(255, 255, 255, .35) !important; }
/* Vereine ohne Wappen: Kuerzel auf der hellen Plakette in Blau statt Weiss */
html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8):not(#wp9) :is(table.schedule .club-ic, .tr-plan .tr-w) .club-badge {
  background: none !important; border: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important;
  color: #0616a8 !important; -webkit-text-fill-color: #0616a8 !important; font-family: var(--font-display) !important; font-size: 22px !important; line-height: 1 !important; letter-spacing: .04em !important; }
@media (max-width: 720px) { html body:not(#wp1):not(#wp2):not(#wp3):not(#wp4):not(#wp5):not(#wp6):not(#wp7):not(#wp8):not(#wp9) table.schedule .club-ic .club-badge { font-size: 19px !important; } }

/* Ergebnisse in der Schrift der News-Ueberschriften (Wunsch 04.11.2026): Saira 700 mit leichter Sperrung statt der schweren Display-Schrift,
   gilt fuer Spielplaene, Karte "Letztes Spiel", Verein-Ergebnisse und Spielkarten mit Ergebnis */
html body:not(#ef1):not(#ef2):not(#ef3):not(#ef4):not(#ef5):not(#ef6):not(#ef7):not(#ef8):not(#ef9):not(#ef10):not(#ef11):not(#ef12)
  :is(table.schedule td .res-link:not(.aktion), table.schedule td[data-label="Ergebnis"] > .score, .tr-score, .bl-last .scoreline .res, .ar-result .res) {
  font-family: var(--font-body) !important; font-weight: 700 !important; font-synthesis: none !important; letter-spacing: .05em !important; }

/* ===========================================================================
   Weisse Karten und Flaechen ueberall im Weiss-Silber-Blau-Polish (Wunsch 04.11.2026, Handy und Desktop).
   Gefunden per Durchlauf aller Seiten: Flaechen mit reinem Weiss als Grund. Logos auf diesen Flaechen
   (JPG mit weissem Rand) werden per mix-blend-mode: multiply eingeblendet, damit kein weisses Kaestchen bleibt.
   =========================================================================== */
html body:not(#pw1):not(#pw2):not(#pw3):not(#pw4):not(#pw5):not(#pw6):not(#pw7):not(#pw8):not(#pw9):not(#pw10) :is(
  .mv-nav, .todo-note, .mm-mandat, .pm-media, .ek-pate-logo, .kl-pate, figure.tk-plan, .partner-bar.pb-inline, .sg-chips, .sg-nav,
  a.sp-tile, .ps-partner > span, .ek-shirts > label, .mm-choice input:not(:checked) + span) {
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%) !important; }
html body:not(#pw1):not(#pw2):not(#pw3):not(#pw4):not(#pw5):not(#pw6):not(#pw7):not(#pw8):not(#pw9):not(#pw10) :is(
  a.sp-tile, .ek-pate-logo, .kl-pate, .ps-partner > span, .partner-bar.pb-inline, .pm-media, figure.tk-plan) img { mix-blend-mode: multiply; }

/* Schiedsrichter-Seite, Abschnitt "Warum jeder Schiri zaehlt": Text als Karte im Weiss-Silber-Blau-Polish */
html body:not(#tc1):not(#tc2):not(#tc3):not(#tc4):not(#tc5):not(#tc6) .mm-split { align-items: stretch !important; }
html body:not(#tc1):not(#tc2):not(#tc3):not(#tc4):not(#tc5):not(#tc6) .mm-textcard {
  position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; gap: .6rem;
  padding: clamp(1.3rem, 2.8vw, 2.2rem) !important; border-top: 4px solid #f82818;
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%) !important; box-shadow: 0 18px 44px rgba(2, 8, 60, .35); }
html body:not(#tc1):not(#tc2):not(#tc3):not(#tc4):not(#tc5):not(#tc6) .mm-textcard .kicker { color: #d81e10 !important; margin: 0; font: 700 .8rem/1.2 'SG Text', sans-serif !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
html body:not(#tc1):not(#tc2):not(#tc3):not(#tc4):not(#tc5):not(#tc6) .mm-textcard h3 { margin: 0 0 .3rem; color: #04127e !important; font-family: var(--font-display); font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.05; text-transform: uppercase; }
html body:not(#tc1):not(#tc2):not(#tc3):not(#tc4):not(#tc5):not(#tc6) .mm-textcard p { margin: 0; color: #1c2550 !important; max-width: 62ch; }

/* Verein & Jugend, Handy: Punkte zum Durchschalten der Hero-Slides rund statt eckig (Wunsch 04.11.2026) */
@media (max-width: 767.98px) {
  html body:not(#hd1):not(#hd2):not(#hd3):not(#hd4):not(#hd5):not(#hd6):not(#hd7):has(#mainNav a.nav-switch[href*="bundesliga"]) .hero-dots .hero-dot,
  html body:not(#hd1):not(#hd2):not(#hd3):not(#hd4):not(#hd5):not(#hd6):not(#hd7):has(#mainNav a.nav-switch[href*="bundesliga"]) .hero-dots .hero-dot::before,
  html body:not(#hd1):not(#hd2):not(#hd3):not(#hd4):not(#hd5):not(#hd6):not(#hd7):has(#mainNav a.nav-switch[href*="bundesliga"]) .hero-dots .hero-dot::after { border-radius: 50% !important; }
}

/* Spielplan Verein & Jugend, Handy: Desktop-Kopf und -Reiter unten ausblenden (die globale Reiter-Regel hatte sie
   wieder eingeblendet), Reiter stattdessen oben unter dem Kopf, passend zum hellen Grund */
@media (max-width: 767.98px) {
  html body.spm-page:not(#sx1):not(#sx2):not(#sx3):not(#sx4):not(#sx5):not(#sx6):not(#sx7):not(#sx8):not(#sx9) section[aria-labelledby="sp-title"] :is(.ph-head, .sp-tabs, .sp-panel) { display: none !important; }
  html body.spm-page:not(#sx1):not(#sx2):not(#sx3):not(#sx4):not(#sx5):not(#sx6):not(#sx7):not(#sx8):not(#sx9) #spm .spm-tabs {
    display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; max-width: none !important; margin: 0 !important; padding: 12px 16px 4px !important; }
  html body.spm-page:not(#sx1):not(#sx2):not(#sx3):not(#sx4):not(#sx5):not(#sx6):not(#sx7):not(#sx8):not(#sx9) #spm .spm-tabs [role="tab"] { width: 100% !important; min-height: 44px !important; font-size: .86rem !important; }
  /* aktiver Reiter auf hellem Grund mit Rand, damit er sich abhebt */
  html body.spm-page:not(#sx1):not(#sx2):not(#sx3):not(#sx4):not(#sx5):not(#sx6):not(#sx7):not(#sx8):not(#sx9) #spm .spm-tabs [role="tab"][aria-selected="true"] { box-shadow: inset 0 0 0 2px #0616a8, 0 4px 12px rgba(4, 8, 60, .18) !important; }
}

/* handball4all live (Freigabe 04.11.2026): Pflicht-Quellenangabe und Teamwahl im Spielplan (Desktop) */
.h4a-quelle { position: relative; z-index: 1; margin: .8rem 0 0; font-size: .82rem; opacity: .85; }
.h4a-quelle a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
#spm .h4a-quelle { color: #4A4F75; padding: 0 16px; }
.sp-teamwahl { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin: 1rem 0 1.4rem; }
html body:not(#tw1):not(#tw2):not(#tw3):not(#tw4):not(#tw5):not(#tw6) .sp-teamwahl a { -webkit-text-fill-color: currentColor !important; padding: .45rem .85rem; font: 700 .86rem/1.1 'SG Text', sans-serif; text-decoration: none; color: #0616a8 !important;
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%) !important; box-shadow: 0 4px 10px rgba(2, 8, 60, .25); }
html body:not(#tw1):not(#tw2):not(#tw3):not(#tw4):not(#tw5):not(#tw6) .sp-teamwahl a[aria-current] { color: #fff !important; background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%); box-shadow: inset 0 0 0 2px #fff, 0 4px 10px rgba(2, 8, 60, .3); }
html body:not(#tw1):not(#tw2):not(#tw3):not(#tw4):not(#tw5):not(#tw6):not(#tw7) .sp-teamwahl a[aria-current] { background: linear-gradient(165deg, #0a1cd6 0%, #0616a8 55%, #04127e 100%) !important; color: #fff !important; }
@media (max-width: 767.98px) { .sp-teamwahl { display: none; } }

/* Footer Social-Links: kein Schleier und kein Rahmen hinter den Icons, in allen Breiten (Wunsch 04.11.2026) */
html body:not(#fs1):not(#fs2):not(#fs3):not(#fs4):not(#fs5):not(#fs6):not(#fs7) .site-footer a.f-social,
html body:not(#fs1):not(#fs2):not(#fs3):not(#fs4):not(#fs5):not(#fs6):not(#fs7) .site-footer a.f-social:is(:hover, :focus-visible) {
  background: none !important; background-image: none !important; border: 0 !important; box-shadow: none !important; }

/* Spieltag-Karten "Letztes Spiel" und "Die naechsten Spiele": Inhalt mittig, links und rechts gleicher Innenabstand
   (links war noch Platz fuer die alte Naht reserviert, Wunsch 04.11.2026) */
html body:not(#tm1):not(#tm2):not(#tm3):not(#tm4):not(#tm5):not(#tm6):not(#tm7):not(#tm8):not(#tm9) .bl-trio > .tr-card:not(#liveCard) {
  padding-left: clamp(16px, 2vw, 28px) !important; padding-right: clamp(16px, 2vw, 28px) !important; }
html body:not(#tm1):not(#tm2):not(#tm3):not(#tm4):not(#tm5):not(#tm6):not(#tm7):not(#tm8):not(#tm9) .bl-trio > .tr-card:not(#liveCard)::before { display: none !important; }
html body:not(#tm1):not(#tm2):not(#tm3):not(#tm4):not(#tm5):not(#tm6):not(#tm7):not(#tm8):not(#tm9) .bl-trio > .tr-card:not(#liveCard) .tr-match { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important; justify-items: center; margin-inline: auto !important; width: 100%; }

/* Dyn-Footer-Link (Touchpoint 5) muss auf jeder Unterseite sichtbar sein: auf dem Handy blendet Verein & Jugend die
   Bundesliga-Spalte aus, dort bleibt nur dieser eine Link stehen (ohne Ueberschrift und ohne die anderen Punkte) */
@media (max-width: 900px) {
  html body:not(#fd1):not(#fd2):not(#fd3):not(#fd4):not(#fd5):not(#fd6) .site-footer .footer-grid:not(:has(.f-league)) > nav[aria-label="Bundesliga"]:has(.f-dyn) { display: block !important; order: 5; }
  html body:not(#fd1):not(#fd2):not(#fd3):not(#fd4):not(#fd5):not(#fd6) .site-footer .footer-grid:not(:has(.f-league)) > nav[aria-label="Bundesliga"] :is(h4, li:not(:has(.f-dyn))) { display: none !important; }
  html body:not(#fd1):not(#fd2):not(#fd3):not(#fd4):not(#fd5):not(#fd6) .site-footer .footer-grid:not(:has(.f-league)) > nav[aria-label="Bundesliga"] ul { display: block !important; text-align: center; }
}

/* "Made by DV Design": falls eine Seite noch die alte Bilddatei traegt, dieselbe Fassung wie im Bundesliga-Bereich zeigen */
.made-by img[src*="Made_by_DV_Design_small_overlay"] { content: url("../img/Made_by_DV_Design_sgbbm.png"); }

/* Dyn-Werbebanner (WM 2027) als breiter Streifen in voller Breite des Exklusiv-Partner-Bands,
   darueber und darunter nur ein schmaler weisser Abstand (Wunsch 04.11.2026) */
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung { padding: 6px 0 0 !important; margin: 0 !important; }
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung-in { display: block; }
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung a { max-width: none !important; width: 100% !important; box-shadow: none !important; transform: none !important; }
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung img { width: 100% !important; height: auto !important; aspect-ratio: 1769 / 219; object-fit: cover; }
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung + * { margin-top: 6px !important; }
@media (max-width: 599.98px) {
  html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung img { aspect-ratio: 300 / 250; }
  html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung-in { max-width: 300px; margin: 0 auto; }
}
html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) section.partner-bar:has(+ .dyn-werbung) { margin-bottom: 0 !important; }
@media (min-width: 768px) {
  html body:not(#dw1):not(#dw2):not(#dw3):not(#dw4):not(#dw5):not(#dw6) .dyn-werbung { margin-inline: 2.5vw !important; }
}

/* Bundesliga-Startseite Handy: Reiter Spielplan/Tabelle oben entfallen, "Tabelle" steht als dritter Reiter
   neben "Letzte Ergebnisse" und "Naechste Spiele"; darueber der Button "Kompletter Spielplan & Tabelle" */
@media (max-width: 767.98px) {
  html body:not(#hm1):not(#hm2):not(#hm3):not(#hm4):not(#hm5):not(#hm6):not(#hm7):not(#hm8) .hs-kopf .hs-tabs { display: none !important; }
  html body:not(#hm1):not(#hm2):not(#hm3):not(#hm4):not(#hm5):not(#hm6):not(#hm7):not(#hm8) .bl-sp-tabs { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  html body:not(#hm1):not(#hm2):not(#hm3):not(#hm4):not(#hm5):not(#hm6):not(#hm7):not(#hm8) .bl-sp-tabs [role="tab"] { width: 100% !important; min-width: 0 !important; padding-inline: 4px !important; font-size: .82rem !important; white-space: normal !important; line-height: 1.15 !important; }
}

/* Hamburger-Menue (bis 1619 px): Dyn-Button mittig unter dem Tickets-Button, mit Abstand */
@media (max-width: 1219.98px) {
  html body:not(#hd1):not(#hd2):not(#hd3):not(#hd4):not(#hd5):not(#hd6):not(#hd7):not(#hd8):not(#hd9) #mainNav a.nav-dyn.dyn-grafik {
    display: flex !important; width: max-content !important; max-width: calc(100% - 24px) !important; margin: 10px auto 0 !important; align-self: center !important; justify-self: center !important; }
}

/* Teamauswahl statt gespeicherter Gesamtliste (Freigabe handball4all) */
.sp-teamhinweis .sp-teamwahl-box { margin: .9rem 0 0; }
/* Dyn-WM-Banner genau so breit wie die Sections (max. 1640 px, gleicher Seitenrand) */
html body:not(#dx1):not(#dx2):not(#dx3):not(#dx4):not(#dx5):not(#dx6):not(#dx7) .dyn-werbung { margin-inline: 0 !important; padding-inline: 0 !important; }
html body:not(#dx1):not(#dx2):not(#dx3):not(#dx4):not(#dx5):not(#dx6):not(#dx7) .dyn-werbung-in { max-width: none; }
@media (min-width: 901px) {
  html body:not(#dx1):not(#dx2):not(#dx3):not(#dx4):not(#dx5):not(#dx6):not(#dx7) .dyn-werbung { margin-inline: max(min(2.5vw, 40px), calc((100% - 1640px) / 2)) !important; }
}
@media (max-width: 599.98px) {
  html body:not(#dx1):not(#dx2):not(#dx3):not(#dx4):not(#dx5):not(#dx6):not(#dx7) .dyn-werbung-in { max-width: 300px; margin: 0 auto; }
}
/* Handy: WM-Banner im 16:9-Format (500 x 281) in voller Breite wie die Sections */
@media (max-width: 599.98px) {
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6):not(#dy7):not(#dy8):not(#dy9) .dyn-werbung-in { max-width: none !important; margin: 0 !important; }
  html body:not(#dy1):not(#dy2):not(#dy3):not(#dy4):not(#dy5):not(#dy6):not(#dy7):not(#dy8):not(#dy9) .dyn-werbung img { aspect-ratio: 500 / 281 !important; }
}
/* Ergebnis ohne Bericht (Wunsch 05.11.2026): statt "Bericht >" ein Zierbalken genau so breit wie dieser Text,
   damit alle Ergebnisfelder gleich hoch sind. Text bleibt unsichtbar und gibt nur die Breite vor. */
html body:not(#rz1):not(#rz2):not(#rz3):not(#rz4):not(#rz5):not(#rz6):not(#rz7):not(#rz8):not(#rz9):not(#rz10):not(#rz11):not(#rz12) table.schedule td span.res-link small.res-zier {
  color: transparent !important; -webkit-text-fill-color: transparent !important; user-select: none;
  background: linear-gradient(currentColor, currentColor) no-repeat center / 100% 2px !important; background-image: linear-gradient(rgba(255, 194, 194, .85), rgba(255, 194, 194, .85)) !important; }
html body:not(#rz1):not(#rz2):not(#rz3):not(#rz4):not(#rz5):not(#rz6):not(#rz7):not(#rz8):not(#rz9):not(#rz10):not(#rz11):not(#rz12) table.schedule td span.res-link.win small.res-zier {
  background-image: linear-gradient(rgba(185, 243, 201, .85), rgba(185, 243, 201, .85)) !important; }
/* Ergebnisfeld nachjustiert (Wunsch 05.11.2026, nach Umstellung auf Railroad Gothic):
   Zahl und Zeile darunter mittig im Feld (Railroad hat unter den Ziffern viel Leerraum, daher Zeile naeher ran),
   Hintergrund halbtransparent mit kraeftigerem Rotstich bei Niederlage. */
html body:not(#rj1):not(#rj2):not(#rj3):not(#rj4):not(#rj5):not(#rj6):not(#rj7):not(#rj8):not(#rj9):not(#rj10):not(#rj11):not(#rj12):not(#rj13) table.schedule td .res-link:not(.aktion) {
  padding: .55rem .8rem .3rem !important;
  background: linear-gradient(rgba(255, 255, 255, .05), rgba(255, 255, 255, .05)), linear-gradient(165deg, rgba(10, 28, 214, .42) 0%, rgba(6, 22, 168, .42) 55%, rgba(4, 18, 126, .48) 100%) !important;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
html body:not(#rj1):not(#rj2):not(#rj3):not(#rj4):not(#rj5):not(#rj6):not(#rj7):not(#rj8):not(#rj9):not(#rj10):not(#rj11):not(#rj12):not(#rj13) table.schedule td .res-link:not(.aktion) small {
  margin-top: -3px !important; }   /* etwas Luft zwischen Ergebnis und "Bericht >" (05.11.2026) */
html body:not(#rj1):not(#rj2):not(#rj3):not(#rj4):not(#rj5):not(#rj6):not(#rj7):not(#rj8):not(#rj9):not(#rj10):not(#rj11):not(#rj12):not(#rj13) table.schedule td .res-link.lose {
  background: linear-gradient(rgba(226, 40, 40, .36), rgba(226, 40, 40, .36)), linear-gradient(165deg, rgba(10, 28, 214, .38) 0%, rgba(6, 22, 168, .38) 55%, rgba(4, 18, 126, .44) 100%) !important; }
html body:not(#rj1):not(#rj2):not(#rj3):not(#rj4):not(#rj5):not(#rj6):not(#rj7):not(#rj8):not(#rj9):not(#rj10):not(#rj11):not(#rj12):not(#rj13) table.schedule td .res-link.win {
  background: linear-gradient(rgba(31, 166, 74, .3), rgba(31, 166, 74, .3)), linear-gradient(165deg, rgba(10, 28, 214, .38) 0%, rgba(6, 22, 168, .38) 55%, rgba(4, 18, 126, .44) 100%) !important; }
/* Karte "Letztes Spiel" (Wunsch 05.11.2026): kein Button "Zum Spielbericht" mehr, stattdessen "Bericht >" unter dem Ergebnis
   (ganzes Feld klickbar). Ohne Bericht der Zierbalken in Textbreite wie im Spielplan. */
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score { position: relative !important; gap: 0 !important; padding: .7rem 1rem .45rem !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score :is(.tr-bericht, .res-zier) {
  display: block !important; margin: -2px 0 0 !important; font: 700 12px/1 var(--font-body) !important; letter-spacing: .08em !important; text-transform: uppercase !important;
  color: #ffc2c2 !important; -webkit-text-fill-color: #ffc2c2 !important; text-decoration: none !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score.win :is(.tr-bericht, .res-zier) { color: #b9f3c9 !important; -webkit-text-fill-color: #b9f3c9 !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score .tr-bericht::after { content: ""; position: absolute; inset: 0; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score:has(.tr-bericht):hover { filter: brightness(1.12); }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score .res-zier {
  color: transparent !important; -webkit-text-fill-color: transparent !important; user-select: none;
  background: linear-gradient(rgba(255, 194, 194, .85), rgba(255, 194, 194, .85)) no-repeat center / 100% 2px !important; }
html body:not(#tb1):not(#tb2):not(#tb3):not(#tb4):not(#tb5):not(#tb6):not(#tb7):not(#tb8):not(#tb9):not(#tb10):not(#tb11):not(#tb12):not(#tb13) .tr-score.win .res-zier { background-image: linear-gradient(rgba(185, 243, 201, .85), rgba(185, 243, 201, .85)) !important; }
/* Karte "Letztes Spiel": Trennlinie ueber den Buttons, gleiche Linie wie ueber dem Datum (.when) */
html body:not(#tl1):not(#tl2):not(#tl3):not(#tl4):not(#tl5):not(#tl6):not(#tl7):not(#tl8):not(#tl9):not(#tl10):not(#tl11) .bl-trio .bl-last .nc-actions {
  border-top: 1px solid rgba(255, 255, 255, .14) !important; padding-top: 1.1rem !important; margin-top: 1.1rem !important; }
/* Karten "Letztes Spiel" und "Naechstes Spiel" nebeneinander (Wunsch 05.11.2026): Ergebnisfeld etwas kleiner,
   Trennlinie ueber dem Datum und Oberkante der Datumszeile in beiden Karten auf gleicher Hoehe. */
html body:not(#ta1):not(#ta2):not(#ta3):not(#ta4):not(#ta5):not(#ta6):not(#ta7):not(#ta8):not(#ta9):not(#ta10):not(#ta11):not(#ta12):not(#ta13):not(#ta14) .bl-trio .bl-last .tr-match .vs.tr-score {
  font-size: 1.95rem !important; min-width: 6.4rem !important; padding: .5rem .8rem .35rem !important; }
@media (min-width: 721px) {
  html body:not(#ta1):not(#ta2):not(#ta3):not(#ta4):not(#ta5):not(#ta6):not(#ta7):not(#ta8):not(#ta9):not(#ta10):not(#ta11):not(#ta12):not(#ta13):not(#ta14) .bl-trio :is(.bl-last, .bl-nextcard) .tr-match {
    height: 150px !important; align-items: start !important; }   /* 150 statt 132 (08.11.2026): Platz fuer zweizeilige Teamnamen, Zierlinie beruehrt den Text nicht */
  html body:not(#ta1):not(#ta2):not(#ta3):not(#ta4):not(#ta5):not(#ta6):not(#ta7):not(#ta8):not(#ta9):not(#ta10):not(#ta11):not(#ta12):not(#ta13):not(#ta14) .bl-trio :is(.bl-last, .bl-nextcard) .when {
    justify-content: flex-start !important; }
  html body:not(#ta1):not(#ta2):not(#ta3):not(#ta4):not(#ta5):not(#ta6):not(#ta7):not(#ta8):not(#ta9):not(#ta10):not(#ta11):not(#ta12):not(#ta13):not(#ta14) .bl-trio .bl-last .when > .date { margin-top: 0 !important; }
  /* Buttons bleiben unten buendig mit den Nachbarkarten, die Trennlinie wandert mit */
  html body:not(#ta1):not(#ta2):not(#ta3):not(#ta4):not(#ta5):not(#ta6):not(#ta7):not(#ta8):not(#ta9):not(#ta10):not(#ta11):not(#ta12):not(#ta13):not(#ta14) .bl-trio .bl-last .when .nc-actions { margin-top: auto !important; }
}
/* Gruss an die Fans in der Karte "Letztes Spiel" (05.11.2026): Heim- oder Auswaertsspiel, im freien Bereich ueber den Buttons */
html body:not(#tg1):not(#tg2):not(#tg3):not(#tg4):not(#tg5):not(#tg6):not(#tg7):not(#tg8):not(#tg9):not(#tg10):not(#tg11):not(#tg12) .bl-trio .bl-last .when > .tr-gruss {
  margin: auto 0 0 !important; padding: 1rem 0 0 !important; text-align: center !important;
  font: 400 1.15rem/1.4 var(--font-akzent) !important;   /* Racing Sans One, Wunsch 08.11.2026 */ letter-spacing: .03em !important; text-transform: uppercase !important; color: rgba(255, 255, 255, .88) !important; }
html body:not(#tg1):not(#tg2):not(#tg3):not(#tg4):not(#tg5):not(#tg6):not(#tg7):not(#tg8):not(#tg9):not(#tg10):not(#tg11):not(#tg12) .bl-trio .bl-last .when > .tr-gruss + .nc-actions { margin-top: 1rem !important; }
/* Karte "Die naechsten Spiele": gleicher Innenabstand unten wie die Nachbarkarten, damit die Buttons auf einer Hoehe stehen */
@media (min-width: 721px) {
  html body:not(#tp1):not(#tp2):not(#tp3):not(#tp4):not(#tp5):not(#tp6):not(#tp7):not(#tp8):not(#tp9):not(#tp10):not(#tp11):not(#tp12) .bl-trio .bl-plan { padding-bottom: 16px !important; }
  html body:not(#tp1):not(#tp2):not(#tp3):not(#tp4):not(#tp5):not(#tp6):not(#tp7):not(#tp8):not(#tp9):not(#tp10):not(#tp11):not(#tp12) .bl-trio .bl-plan .nc-actions .button { min-height: 49px !important; }
}
/* Newsletter-Karte im Weiss-Silberblau-Polish (Wunsch 05.11.2026): Verlauf wie das SG-Zeichen
   sg-buchstaben-polish-silberblau.svg (oben links Weiss, unten rechts Silberblau), dazu ein schraeger
   Glanzstreifen und eine helle Oberkante wie poliertes Metall. Gilt fuer beide Startseiten, PC und Handy. */
html body:not(#np1):not(#np2):not(#np3):not(#np4):not(#np5):not(#np6) .nl-form,
html body.mv-page:not(#np1):not(#np2):not(#np3):not(#np4):not(#np5):not(#np6) #main .container .nl-form {
  background:
    linear-gradient(112deg, rgba(255,255,255,0) 28%, rgba(255,255,255,.7) 41%, rgba(255,255,255,0) 54%),
    linear-gradient(155deg, #FFFFFF 0%, #F4F6FA 34%, #E6EBF3 68%, #D5DCE8 100%) !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  box-shadow: 0 20px 44px rgba(2,6,50,.45), inset 0 1px 0 #fff, inset 0 -1px 0 rgba(120,135,170,.35) !important; }
html body:not(#np1):not(#np2):not(#np3):not(#np4):not(#np5):not(#np6) .nl-form .field input {
  background: #fff !important; border-color: #c4cce0 !important; }
/* Dyn-Link im Fuss am Handy (05.11.2026): ueber die volle Breite der zweispaltigen Linkliste, mittig unter der Ueberschrift "Bundesliga" */
@media (max-width: 560px) {
  html body:not(#fd1):not(#fd2):not(#fd3):not(#fd4):not(#fd5):not(#fd6) .site-footer .footer-grid > nav ul li:has(> .f-dyn) { grid-column: 1 / -1; justify-self: center; width: 100%; text-align: center; }
  html body:not(#fd1):not(#fd2):not(#fd3):not(#fd4):not(#fd5):not(#fd6) .site-footer .footer-grid > nav ul li > a.f-dyn { display: inline-flex; justify-content: center; text-align: center; margin-inline: auto; }
}

/* Pause-Knoepfe fuer automatisch wechselnde Inhalte (05.11.2026, WCAG 2.2.2): js/main.js setzt sie in Werbebanden und Hero */
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) :is(.sw-pause, .hero-pause) { all: unset; box-sizing: border-box; display: inline-grid; place-items: center; width: 24px; height: 24px; cursor: pointer; background: rgba(4,18,126,.82); color: #fff; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) :is(.sw-pause, .hero-pause)::before { content: ""; display: block; width: 8px; height: 10px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; background: none; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) :is(.sw-pause, .hero-pause)[aria-pressed="true"]::before { width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 9px; border-color: transparent transparent transparent currentColor; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) :is(.sw-pause, .hero-pause):focus-visible { outline: 2px solid #f82818; outline-offset: 1px; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .sw-pause { position: absolute; right: 0; bottom: 0; z-index: 2; width: 20px; height: 20px; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero-pause { margin-left: .6rem; vertical-align: middle; }
/* Pause im Hero rund wie die Punkte daneben: gleiche Flaeche und Hover, angehalten rot wie der aktive Punkt.
   Sichtbar 18 px, Klickflaeche per ::after auf 34 px erweitert. */
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause { position: relative; width: 18px; height: 18px; margin-left: .2rem; border-radius: 50%; background: rgba(255,255,255,.4); color: #fff; transition: background .2s; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause:hover { background: rgba(255,255,255,.8); color: #04127e; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause::before { width: 6px; height: 8px; border-left-width: 2px; border-right-width: 2px; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause[aria-pressed="true"] { background: #FF2814; color: #fff; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause[aria-pressed="true"]::before { width: 0; height: 0; margin-left: 2px; border-width: 4px 0 4px 7px; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause::after { content: ""; position: absolute; inset: -8px; }
html body:not(#pk1):not(#pk2):not(#pk3):not(#pk4):not(#pk5):not(#pk6) .hero .hero-pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Volle Menueleiste so lange wie moeglich (08.11.2026): ab 1220 px statt ab 1620 px, darunter erst das Hamburger-Menue.
   Zwischen 1220 und 1619 px verdichtet: engere Abstaende, schmalere Buttons, Social-Icons nur im Footer (die Suche bleibt).
   Grenze an drei Stellen gleich halten: hier (alle @media 1220/1219), js/main.js (matchMedia) und build_nav_kompakt.py. */
@media (min-width: 1220px) and (max-width: 1619.98px) {
  html body:not(#k1):not(#k2):not(#k3):not(#k4):not(#k5):not(#k6):not(#k7):not(#k8):not(#k9) .site-header .main-nav { gap: 8px !important; margin-left: .75rem !important; }
  html body:not(#k1):not(#k2):not(#k3):not(#k4):not(#k5):not(#k6):not(#k7):not(#k8):not(#k9) .site-header .nav-social a:not(.nav-search) { display: none !important; }
  html body:not(#k1):not(#k2):not(#k3):not(#k4):not(#k5):not(#k6):not(#k7):not(#k8):not(#k9) .site-header #mainNav > a.button { padding-left: .75rem !important; padding-right: .75rem !important; min-width: 0 !important; letter-spacing: .02em !important; }
  html body:not(#k1):not(#k2):not(#k3):not(#k4):not(#k5):not(#k6):not(#k7):not(#k8):not(#k9) .site-header .main-nav :is(> a:not(.button), .nav-sub-label) { letter-spacing: 0 !important; }
}
/* Hamburger-Kopf 768-1219 px wie am Handy (08.11.2026): Wappen, Dyn-Button, Suche und Menueknopf haben denselben
   Abstand zur Oberkante wie im Handyformat (Wappen 14 px, Dyn 11 px, Suche/Menue 6 px). Vorher klebten sie oben am Rand.
   "translate" verschiebt nur die Anzeige und laesst vorhandene transform-Animationen unberuehrt. */
@media (min-width: 768px) and (max-width: 1219.98px) {
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):not(#hk6) .site-header .brand { translate: 0 11px; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):not(#hk6) .dyn-head { translate: 0 10px; }
  html body:not(#hk1):not(#hk2):not(#hk3):not(#hk4):not(#hk5):not(#hk6) .site-header :is(.nav-toggle, .nav-search) { translate: 0 6px; }
}
/* Akzentschrift Racing Sans One in Grossbuchstaben (Wunsch 08.11.2026) fuer: Fan-Gruss (.tr-gruss, Regel oben),
   die Kicker der Section-Koepfe ("Spieltag", "Aktuelles" ...) auf allen Seiten und die Umschalt-Tabs
   ("Spielplan / Tabelle" auf der Startseite und der Saison-Seite). Schrift nur ueber var(--font-akzent). */
html body:not(#ra1):not(#ra2):not(#ra3):not(#ra4):not(#ra5):not(#ra6):not(#ra7):not(#ra8):not(#ra9):not(#ra10):not(#ra11):not(#ra12):not(#ra13):not(#ra14) :is(.ph-head .kicker, .sz-tabs [role="tab"], .sz-tabs > button, .news-filter button) {   /* .news-filter: Kategorie-Tabs der News-Seiten (08.11.2026) */
  font-family: var(--font-akzent) !important; font-weight: 400 !important; font-style: normal !important;
  text-transform: uppercase !important; letter-spacing: .05em !important; font-size-adjust: none !important; }
/* Spieltags-Cards (.bl-trio), Variante C aus vorschau/spieltagscards (Wunsch 08.11.2026, danach alle Texte gut 10 % groesser):
   Teamnamen 20 px fett, Datum/Spieltag/Halle 16 px normal (= gerade), Liste "Die naechsten Spiele" 15 px normal,
   Button-Texte groesser, Countdown-Zahlen fett (Textschrift 800 statt Changa, gleich breite Ziffern). */
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .tr-match .team .nm { font-size: 22px !important; font-weight: 700 !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .tr-match .team .nm small { font-size: 11.5px !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .when .date,
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .when > span:not(.venue) { font-size: 17.5px !important; font-weight: 500 !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .when .venue { font-size: 15px !important; font-weight: 500 !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .tr-o { font-size: 16.5px !important; font-weight: 500 !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .tr-d { font-size: 12.5px !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .tr-d b { letter-spacing: 0 !important; }
/* Button-Texte in den Cards groesser (vorher .8 rem, schmale Breiten .74/.68/.64 rem) */
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .95rem !important; }
@media (max-width: 1499px) and (min-width: 1001px), (max-width: 800px) and (min-width: 641px), (max-width: 400px) {
  html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .88rem !important; }
}
@media (max-width: 1200px) and (min-width: 1001px), (max-width: 700px) and (min-width: 641px), (max-width: 350px) {
  html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio :is(.body > .button, .nc-actions .button) { font-size: .8rem !important; }
}
/* Countdown fett */
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .nc-countdown b { font-family: var(--font-body) !important; font-weight: 800 !important; font-size: 29px !important; font-variant-numeric: tabular-nums; letter-spacing: 0 !important; }
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .nc-countdown small { font-weight: 800 !important; }

/* Tabs im Spielplan in Grossbuchstaben (08.11.2026): Mannschaftsauswahl (Verein Spielplan, PC und Handy) und die
   Handy-Reiter "Letzte Ergebnisse / Naechste Spiele / Tabelle" der Bundesliga-Startseite (wie die uebrigen Umschalt-Tabs in Racing Sans One). */
html body:not(#tu1):not(#tu2):not(#tu3):not(#tu4):not(#tu5):not(#tu6):not(#tu7):not(#tu8):not(#tu9):not(#tu10):not(#tu11):not(#tu12):not(#tu13):not(#tu14):not(#tu15) :is(.sp-teamwahl a, .sg-chips .sg-chip) {
  text-transform: uppercase !important; letter-spacing: .04em !important; }
html body:not(#tu1):not(#tu2):not(#tu3):not(#tu4):not(#tu5):not(#tu6):not(#tu7):not(#tu8):not(#tu9):not(#tu10):not(#tu11):not(#tu12):not(#tu13):not(#tu14):not(#tu15) .bl-sp-tabs :is([role="tab"], > button) {
  font-family: var(--font-akzent) !important; font-weight: 400 !important; font-style: normal !important;
  text-transform: uppercase !important; letter-spacing: .05em !important; font-size-adjust: none !important; }
/* Hamburger-Menue (08.11.2026): Hintergrund im Verlauf der Sections (tief unten rechts, hell in der Mitte, tief oben links),
   Kopfzeile "SG BBM Bietigheim" groesser. Gilt fuer alle Breiten mit Hamburger (bis 1219 px), beide Bereiche. */
@media (max-width: 1219.98px) {
  html body:not(#hm1):not(#hm2):not(#hm3):not(#hm4):not(#hm5):not(#hm6):not(#hm7):not(#hm8):not(#hm9):not(#hm10) .site-header .main-nav {
    background: linear-gradient(345deg,#020a52 0%,#0616a8 38%,#0a1cd6 60%,#04127e 100%) !important; }
  html body:not(#hm1):not(#hm2):not(#hm3):not(#hm4):not(#hm5):not(#hm6):not(#hm7):not(#hm8):not(#hm9):not(#hm10) .site-header .main-nav::before {
    font-size: 1.35rem !important; letter-spacing: .03em !important; }
}
/* Letztes und Naechstes Spiel gleich gesetzt (08.11.2026): das "VS" in der Mitte wie das Ergebnis "34:35"
   (Textschrift fett 700, gleiche Groesse und Sperrung). Alle uebrigen Texte der beiden Karten sind bereits identisch. */
html body:not(#v1):not(#v2):not(#v3):not(#v4):not(#v5):not(#v6):not(#v7):not(#v8):not(#v9):not(#v10):not(#v11):not(#v12):not(#v13):not(#v14):not(#v15):not(#v16) .bl-trio .bl-nextcard .tr-match .vs {
  font-family: var(--font-body) !important; font-weight: 700 !important; font-size: 31.2px !important; letter-spacing: .05em !important; }
/* Liveticker (Sportradar, 08.11.2026): Quellenangabe unter den Ereignissen */
.bl-nextcard .lc-quelle { margin: .6rem 0 0; font-size: .78rem; letter-spacing: .04em; color: rgba(10,18,80,.7); text-align: right; }

/* Rechtsseiten (Impressum, Datenschutz, Barrierefreiheit, Shop-Bedingungen, Widerruf): alle Texte weiss, auch auf dem Handy
   (dort setzte mobil-verein.css Polish-Blau auf blauen Grund). Buttons und Formularfelder behalten ihre Farben. 08.11.2026 */
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main :is(h1, h2, h3, h4, h5, p, li, dt, dd, td, th, address, strong, b, em, small, span, a, label, figcaption, blockquote, .kicker):not(.ns-layer *):not(.button):not(.button *):not(button):not(button *):not(input):not(select):not(textarea):not(.sw-meldung *):not(.ns-layer *) {   /* .sw-meldung: weisse Bestaetigungsbox des Widerrufs */
  color: #fff !important; -webkit-text-fill-color: #fff !important; }
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main a:not(.button) { text-decoration-color: rgba(255,255,255,.6) !important; }
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .sw-meldung :is(strong, b, a, span) { color: #0e1240 !important; -webkit-text-fill-color: #0e1240 !important; }

/* Rechtsseiten ohne Wasserschrift (08.11.2026): kein Ghost-Wort im Seitenkopf und in der Section */
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .nb-fx .fx2,
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .page-head :is([data-ghost], [data-ghost] *)::before,
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .page-head :is([data-ghost], [data-ghost] *)::after,
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .page-head[data-ghost]::before,
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .page-head[data-ghost]::after { display: none !important; content: none !important; }
/* Rechtsseiten: Text auf einem Blatt wie die geoeffneten News (Flaeche, rote Oberkante, Schatten, Streifen verdeckt) */
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .dsn-card > .container.prose {
  --blatt-x: clamp(14px, 2.4vw, 34px); --blatt-y: clamp(16px, 2.4vw, 32px);
  position: relative; z-index: 1; isolation: isolate; }
html body.rechtsseite:not(#rs1):not(#rs2):not(#rs3):not(#rs4):not(#rs5):not(#rs6) #main .dsn-card > .container.prose::before {
  content: ""; display: block; position: absolute; z-index: -1; pointer-events: none;
  left: calc(-1 * var(--blatt-x)); right: calc(-1 * var(--blatt-x)); top: calc(-1 * var(--blatt-y)); bottom: calc(-1 * var(--blatt-y));
  background:
    linear-gradient(90deg, #f82818 0%, #f82818 38%, rgba(248,40,24,0) 100%) top left / 100% 3px no-repeat,
    linear-gradient(115deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,0) 38%),
    linear-gradient(rgba(3,9,80,.32), rgba(3,9,80,.32)),
    var(--deck-blau);
  box-shadow: 0 26px 54px rgba(2,6,50,.42), inset 0 1px 0 rgba(255,255,255,.08); }

/* Geoeffnete Bundesliga-News mit Hamburger-Kopf (bis 1219 px): Datumzeile und Titel starten unter dem Wappen,
   nicht dahinter. Wappen endet bei 66 px (Handy) bzw. 106 px (ab 768 px). 08.11.2026 */
@media (max-width: 1219px) {
  html body:not(#na1):not(#na2):not(#na3):not(#na4):not(#na5):not(#na6) #main > article.bl-article:first-child { margin-top: 8px !important; padding-top: 38px !important; }
}
@media (min-width: 768px) and (max-width: 1219px) {
  html body:not(#na1):not(#na2):not(#na3):not(#na4):not(#na5):not(#na6) #main > article.bl-article:first-child { padding-top: 78px !important; }
}

/* Vereins-News wie die Bundesliga-News (08.11.2026): Datum, Ueberschrift, Bild und Text gemeinsam in der Box.
   Kein eigener Seitenkopf mehr (admin/lib/template-news.html). */
html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) .nd-article .nd-kicker {
  display: block; font-family: var(--font-display) !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .2em !important;
  font-size: .78rem !important; color: #ff9a9a !important; -webkit-text-fill-color: #ff9a9a !important; margin: 0 0 .6rem !important; text-align: left; }
html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) .nd-article .nd-kicker :is(a, time) {
  color: inherit !important; -webkit-text-fill-color: inherit !important; text-decoration: none;
  font: inherit !important; letter-spacing: inherit !important; text-transform: inherit !important; }
html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) .nd-article .nd-kicker a:hover { text-decoration: underline; }
html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) .nd-article h1.nd-titel {
  font-family: var(--font-display-black) !important; font-weight: 900 !important; text-transform: uppercase; letter-spacing: -.01em;
  font-size: clamp(1.8rem, 4vw, 3rem) !important; line-height: 1.02 !important; margin: 0 0 1.5rem !important; color: #fff !important;
  -webkit-text-fill-color: #fff !important; text-align: left !important; text-wrap: balance; }
/* Einleitung wie bei der Bundesliga: fett, ohne roten Strich */
html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) .nd-article .nd-lead {
  border-left: 0 !important; padding-left: 0 !important; font-family: var(--font-text) !important; font-weight: 700 !important; font-style: normal !important;
  font-size: 1.05rem !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
/* Hamburger-Kopf (bis 1219 px): Box startet unter dem Wappen, wie bei den Bundesliga-News */
@media (max-width: 1219px) {
  html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) #main > section.nd-section { margin-top: 8px !important; padding-top: 24px !important; }   /* Handy: Kopfleiste steht im Fluss */
}
@media (min-width: 768px) and (max-width: 1219px) {
  html body:not(#nv1):not(#nv2):not(#nv3):not(#nv4):not(#nv5):not(#nv6) #main > section.nd-section { padding-top: 120px !important; }   /* Wappen endet bei 106 px */
}

/* Hero mobil (08.11.2026): bei News-Slides statt Button ein schlichter Textlink "Zur News ›" in Hero-Schrift,
   rechtsbuendig unter dem Anrisstext. Andere Slides bleiben ohne Buttons. */
@media (max-width: 760px) {
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7) .hero .hero-texts > .inner.is-news .actions {
    display: flex !important; justify-content: flex-end; margin: .55rem 0 0 !important; padding: 0 !important; gap: 0; }
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7) .hero .hero-texts > .inner.is-news .actions .button:not(:first-child) { display: none !important; }
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7) .hero .hero-texts > .inner.is-news .actions .button {
    all: unset; display: inline-flex !important; align-items: center; gap: .35rem; cursor: pointer;
    font-family: var(--font-display) !important; font-weight: 700 !important; font-style: normal; text-transform: uppercase;
    letter-spacing: .12em !important; font-size: .82rem !important; line-height: 1.2 !important;
    color: #fff !important; -webkit-text-fill-color: #fff !important; text-shadow: 0 2px 10px rgba(2, 8, 60, .7);
    padding: .35rem 0 .3rem !important; border-bottom: 2px solid #f82818 !important; background: none !important; box-shadow: none !important;
    min-height: 0 !important; width: auto !important; }
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7):not(#hz8):not(#hz9):not(#hz10):not(#hz11):not(#hz12) .hero .hero-texts > .inner.is-news .actions .button::before { content: none !important; display: none !important; background: none !important; }
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7) .hero .hero-texts > .inner.is-news .actions .button :is(img, svg) { display: none !important; }
  html body:not(#hz1):not(#hz2):not(#hz3):not(#hz4):not(#hz5):not(#hz6):not(#hz7) .hero .hero-texts > .inner.is-news .actions .button::after {
    content: "›" !important; display: inline !important; position: static !important; width: auto !important; height: auto !important; background: none !important;
    font-size: 1.15em; line-height: 1; transform: translateY(-.04em); color: #f82818 !important; -webkit-text-fill-color: #f82818 !important; }
}

/* Vereins-News am Handy (08.11.2026): alles mit gleichem Innenabstand in der Box, nichts klebt am Rand.
   Oben bleibt die rote Kante (3 px, Hintergrund von .nd-article in mobil-verein.css), darunter Abstand. */
@media (max-width: 767.98px) {
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-article {
    padding: calc(3px + 1.1rem) 1.15rem 1.2rem !important; }
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-article .nd-img { margin: 0 0 1.1rem !important; }
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-article .nd-textcard { margin-top: 0 !important; padding: 0 !important; }
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-article h1.nd-titel { margin-bottom: 1.1rem !important; }
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-article .nd-back { margin: 1rem 0 0 !important; }
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-side .nd-box { padding-left: 1.15rem !important; padding-right: 1.15rem !important; }
}
/* Quellenangabe handball4all unter der Begleitspalte am Handy lesbar (Pflicht laut Freigabe) */
@media (max-width: 767.98px) {
  html body.mv-page:not(#nm1):not(#nm2):not(#nm3):not(#nm4):not(#nm5):not(#nm6):not(#nm7) #main .nd-section :is(.h4a-quelle, .h4a-quelle *) {
    color: rgba(255,255,255,.75) !important; -webkit-text-fill-color: rgba(255,255,255,.75) !important; }
}

/* Handy (08.11.2026): keine weissen Zwischenraeume vor und nach den Werbebannern (Partnerleiste, Dyn-Banner).
   Die Banner schliessen direkt an die Abschnitte davor und danach an. */
@media (max-width: 767.98px) {
  html body:not(#wb1):not(#wb2):not(#wb3):not(#wb4):not(#wb5):not(#wb6):not(#wb7):not(#wb8) #main > :is(.partner-bar, .dyn-werbung) { margin-top: 0 !important; margin-bottom: 0 !important; }
  html body:not(#wb1):not(#wb2):not(#wb3):not(#wb4):not(#wb5):not(#wb6):not(#wb7):not(#wb8) #main > .dyn-werbung { padding-top: 0 !important; padding-bottom: 0 !important; }
  html body:not(#wb1):not(#wb2):not(#wb3):not(#wb4):not(#wb5):not(#wb6):not(#wb7):not(#wb8) #main > :has(+ :is(.partner-bar, .dyn-werbung)) { margin-bottom: 0 !important; }
  html body:not(#wb1):not(#wb2):not(#wb3):not(#wb4):not(#wb5):not(#wb6):not(#wb7):not(#wb8) #main > :is(.partner-bar, .dyn-werbung) + * { margin-top: 0 !important; }
}

/* Handy (08.11.2026): Kategorie-Tabs der News (Alle, Frauen, Maenner, Jugend) buendig mit den Karten, nicht am Bildschirmrand */
@media (max-width: 767.98px) {
  html body.mv-page:not(#tf1):not(#tf2):not(#tf3):not(#tf4):not(#tf5):not(#tf6):not(#tf7):not(#tf8) #main .news-filter {
    margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important;
    width: auto !important; max-width: 100% !important; gap: 6px !important; }
  html body.mv-page:not(#tf1):not(#tf2):not(#tf3):not(#tf4):not(#tf5):not(#tf6):not(#tf7):not(#tf8) #main .news-filter button {
    min-width: 0 !important; padding: 0 6px !important; }
}
