/*
Theme Name: SGJ Poolbillard
Theme URI: https://www.billard-fulda.de
Author: SG Johannesberg 1926 e.V. – Abt. Poolbillard
Description: Full-Site-Editing-Theme im SGJ-Design: Schwarz/Anthrazit mit Vereinsrot #e30613, Bebas Neue + Montserrat.
Version: 1.27.4
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: sgj
*/

/* ============ BASIS ============ */
html { background: #0a0a0b; scroll-behavior: smooth; }
main.wp-block-group { margin-top: 0 !important; }
.sgj-bl-hero .wp-block-columns { margin-top: 0 !important; }
body {
  background: #0a0a0b;
  color: #f5f4f2;
  font-family: 'Montserrat', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}
h1, h2, h3, h4, .sgj-brand__name, .sgj-stat__value, .sgj-ghost, .sgj-lead { max-width: 600px; }
.sgj-hero__title {
  font-family: 'Bebas Neue', Impact, sans-serif;
}
::selection { background: #e30613; color: #fff; }

.sgj-page {
  background: linear-gradient(180deg,#0a0a0b 0%,#0d0d10 34%,#17171c 68%,#1e1e24 100%);
}

/* ============ HEADER ============ */
.sgj-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(10,10,11,0.86);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sgj-header::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  backdrop-filter: blur(10px);
}
.sgj-header__inner { max-width: 1320px; margin: 0 auto; padding: 16px 32px; }
@media (min-width: 601px) {
  .sgj-header__inner { flex-wrap: nowrap !important; }
  .sgj-header .wp-block-navigation__container { flex-wrap: nowrap !important; }
  .sgj-header .sgj-btn-primary a { white-space: nowrap; }
}
.sgj-header .wp-block-site-logo img { filter: drop-shadow(0 0 10px rgba(227,6,19,0.35)); }
.sgj-brand__name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(12px,1vw,16px); letter-spacing: .03em; line-height: 1.15; margin: 0;
}
.sgj-brand__sub {
  font-size: clamp(8px,.59vw,9.5px); letter-spacing: .22em; text-transform: uppercase;
  color: rgba(245,244,242,.5); margin: 0;
}
.sgj-header .wp-block-navigation { font-size: clamp(14px,.95vw,15px); font-weight: 700; }
.sgj-header .wp-block-navigation__container { gap: 2px !important; }
.sgj-header .wp-block-navigation-item.has-child > .wp-block-navigation-item__content { padding-right: 0; }
.sgj-header .wp-block-navigation-submenu__toggle { padding-right: 0 !important; }
.sgj-header .wp-block-navigation-item a {
  padding: 10px 16px; color: rgba(245,244,242,.75);
  transition: color .22s ease, box-shadow .22s ease;
}
.sgj-header .wp-block-navigation-item a:hover {
  color: #f5f4f2; box-shadow: inset 0 -2px 0 #e30613;
}
.sgj-header .wp-block-navigation-item.current-menu-item a {
  color: #e30613; box-shadow: inset 0 -2px 0 #e30613;
}
.sgj-header .wp-block-navigation__responsive-container :where(.wp-block-navigation-item a) {
  color: rgba(245,244,242,.75) !important;
}
.sgj-header .wp-block-navigation__submenu-container {
  background: #17171c !important; border: 1px solid rgba(255,255,255,.1) !important;
}
.sgj-header .wp-block-navigation__submenu-container .wp-block-navigation-item a {
  color: rgba(245,244,242,.75) !important;
}
.sgj-header .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
  color: #f5f4f2 !important;
}

/* Mobiles Vollbild-Overlay-Menü */
.sgj-header .wp-block-navigation__responsive-container.is-menu-open {
  background: linear-gradient(160deg,#0a0a0b,#17171c) !important;
}
.sgj-header .wp-block-navigation__responsive-container-content {
  padding: 22px 24px !important;
}
.sgj-header .wp-block-navigation__responsive-container-close,
.sgj-header .wp-block-navigation__responsive-container-open {
  color: #f5f4f2;
}
.sgj-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
  font-family: 'Bebas Neue', sans-serif; font-size: 19px; font-weight: 700;
  padding: 9px 4px !important; display: block; line-height: 1.2;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sgj-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100%;
}
.sgj-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  background: transparent !important; border: none !important; padding-left: 16px;
}
.sgj-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a {
  font-family: inherit; font-size: 15px; font-weight: 400; color: rgba(245,244,242,.65) !important;
  border-bottom: none; padding: 8px 4px !important;
}
.sgj-header .wp-block-navigation__submenu-icon svg { fill: #f5f4f2; }
.sgj-header .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
  color: #f5f4f2 !important;
}

/* Energie-Balken unter der Navigation */
.sgj-energy-bar {
  position: relative; height: 4px; overflow: hidden; background: rgba(227,6,19,.18);
}
.sgj-energy-bar::after {
  content: ''; position: absolute; inset: 0; width: 40%;
  background: linear-gradient(90deg,transparent,#ff2d3f,transparent);
  animation: sgjEnergySweep 3.2s ease-in-out infinite;
}
@keyframes sgjEnergySweep { 0%{transform:translateX(-100%)} 100%{transform:translateX(250%)} }

/* ============ BAUSTEINE ============ */
.sgj-eyebrow {
  font-size: clamp(10px,.75vw,12px); letter-spacing: .18em; text-transform: uppercase;
  color: #e30613; font-weight: 700; margin: 0 0 16px;
}
.sgj-badge {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(227,6,19,.12); border: 1px solid rgba(227,6,19,.45);
  color: #ff8890; padding: 8px 16px; font-size: 13px; font-weight: 700;
  clip-path: polygon(8px 0,100% 0,100% 100%,0 100%); margin: 0;
}
.sgj-badge--upper { font-size: clamp(10px,.69vw,11px); letter-spacing: .16em; text-transform: uppercase; }
.sgj-badge--live::before {
  content: ''; width: 7px; height: 7px; border-radius: 50%; background: #e30613; flex: none;
  animation: sgjLivePulse 1.8s infinite;
}
@keyframes sgjLivePulse {
  0%   { box-shadow: 0 0 0 0 rgba(227,6,19,.55); }
  70%  { box-shadow: 0 0 0 8px rgba(227,6,19,0); }
  100% { box-shadow: 0 0 0 0 rgba(227,6,19,0); }
}

/* Buttons */
.wp-block-button.sgj-btn-primary .wp-block-button__link,
.wp-block-button.sgj-btn-ghost .wp-block-button__link {
  border-radius: 0; padding: 16px 32px;
  font-size: clamp(14px,.95vw,16px); font-weight: 700; letter-spacing: .02em;
}
.wp-block-button.sgj-btn-primary .wp-block-button__link {
  background: #e30613; color: #fff;
  clip-path: polygon(10px 0,100% 0,100% 100%,0 100%);
  transition: background .2s, transform .2s;
}
.wp-block-button.sgj-btn-primary .wp-block-button__link:hover {
  background: #ff2d3f; transform: translateX(4px);
}
.wp-block-button.sgj-btn-ghost .wp-block-button__link {
  background: transparent; color: #f5f4f2;
  border: 1px solid rgba(255,255,255,.25); transition: all .2s;
}
.wp-block-button.sgj-btn-ghost .wp-block-button__link:hover {
  border-color: #e30613; color: #e30613;
}

/* Karten */
.sgj-card {
  background: linear-gradient(155deg,#33333a,#232329);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 16px 40px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
  transition: border-color .2s, transform .2s;
  position: relative;
}
.sgj-card:hover { border-color: #e30613; transform: translateY(-4px); }
.sgj-card .wp-block-post-title a { color: #f5f4f2; }
.sgj-card .wp-block-post-title a:hover { color: #f5f4f2; }
.sgj-card .wp-block-post-title a::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
}
.sgj-card > .wp-block-group { padding-top: 0 !important; }
.sgj-card--event { border-left: 2px solid #e30613; padding: 22px 22px 24px; display: block; }

/* easyVerein-Kalenderkarten: Struktur des Plugins in unserem Look */
.easyVerein_calendar { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.easyVerein_calendar_event {
  color: #f5f4f2 !important;
  border: 1px solid rgba(255,255,255,.26) !important;
  border-left: 2px solid #e30613 !important;
  padding: 22px 22px 24px !important;
  box-sizing: border-box;
}
.easyVerein_calendar_event_title {
  font-size: 14.5px !important; font-weight: 700 !important; margin: 0 0 10px !important;
  line-height: 1.4;
}
.easyVerein_calendar_event_title b { font-weight: 700; }
.easyVerein_calendar_event_title img.emoji { display: none; }
.easyVerein_calendar_event p {
  margin: 0 0 8px !important; font-size: 13px !important; font-weight: 400 !important;
  color: rgba(245,244,242,.55) !important;
}
.easyVerein_calendar_event p b { color: rgba(245,244,242,.9) !important; font-weight: 700 !important; }
.easyVerein_calendar_event a {
  font-size: 11.5px !important; color: #ff8890 !important; letter-spacing: .04em;
  text-decoration: none !important; font-weight: 400 !important;
}
.easyVerein_calendar_event a:hover { color: #ff2d3f !important; }
.easyVerein_calendar_event br { display: none; }

@media (max-width: 900px) {
  .easyVerein_calendar { grid-template-columns: 1fr; }
}
.sgj-card--top { border-top: 2px solid #e30613; padding: 28px 24px; }

/* Kantige Bildmasken */
.sgj-clip-br img, .sgj-clip-br { clip-path: polygon(0 0,100% 0,100% 92%,92% 100%,0 100%); }
.sgj-clip-tl img, .sgj-clip-tl { clip-path: polygon(8% 0,100% 0,100% 100%,0 100%,0 8%); }
.sgj-clip-bl img, .sgj-clip-bl { clip-path: polygon(0 0,100% 0,100% 100%,8% 100%,0 92%); }

/* Dekorative Abschnittsnummer 01 / 02 / 03 */
.sgj-secnum { position: relative; }
.sgj-secnum::before {
  position: absolute; top: -54px; left: -6px;
  font-family: 'Bebas Neue', sans-serif; font-size: clamp(55px,6.88vw,110px);
  color: rgba(227,6,19,.08); font-weight: 800; line-height: 1; pointer-events: none;
}
.sgj-secnum--01::before { content: '01'; }
.sgj-secnum--02::before { content: '02'; }
.sgj-secnum--03::before { content: '03'; }

/* ============ HERO ============ */
.sgj-hero { position: relative; overflow: hidden; background: #0a0a0b; }
.sgj-hero__content { position: relative; z-index: 1; }

/* Ausrichtung der Bühne
   ---------------------
   Das Block-Layout zentriert jedes Kind einer constrained-Gruppe:
   .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull))
   { max-width: <contentSize>; margin-inline: auto; }

   Elemente, die schmaler sind als die Inhaltsspalte, werden dadurch
   mittig gesetzt und beginnen weiter rechts als der übrige Text.
   Deshalb behalten Headline und Fließtext hier die volle Spaltenbreite –
   die Zeilenlänge wird über einen Innenabstand rechts begrenzt. */
.sgj-hero .sgj-hero__title {
  max-width: none;
  padding-right: max(0px, calc(100% - 900px));
}
.sgj-hero .sgj-lead {
  max-width: none;
  padding-right: max(0px, calc(100% - 600px));
}

/* Das Badge ist inline-flex und damit schmaler als die Spalte.
   In einer eigenen Zeile ausgeben, damit es links andockt. */
.sgj-hero .sgj-badge {
  display: flex;
  width: fit-content;
  margin-left: 0;
  margin-right: auto;
}
.sgj-hero > .wp-block-group__inner-container,
.sgj-hero > * { position: relative; z-index: 1; }
.sgj-hero::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 700px 500px at 85% 20%, rgba(227,6,19,.16), transparent 60%),
    radial-gradient(circle at 4% 96%, rgba(227,6,19,.18), transparent 42%);
}
.sgj-hero::after {
  content: ''; position: absolute; top: 0; left: 0; width: 340px; height: 420px; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='104' viewBox='0 0 60 104'%3E%3Cpath d='M30 0L60 17.3V52L30 69.3L0 52V17.3Z' fill='none' stroke='white' stroke-opacity='0.045' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 60px 104px;
  -webkit-mask-image: linear-gradient(135deg,#000 30%,transparent 75%);
  mask-image: linear-gradient(135deg,#000 30%,transparent 75%);
  pointer-events: none;
}
.sgj-hero__line {
  position: absolute; top: -10%; left: 62%; width: 3px; height: 130%; z-index: 0;
  background: linear-gradient(180deg,transparent,#ff2d3f 30%,#e30613 60%,transparent);
  box-shadow: 0 0 40px 6px rgba(227,6,19,.55);
  transform: rotate(18deg); animation: sgjLineGlow 4s ease-in-out infinite; pointer-events: none;
}
.sgj-hero__line::before, .sgj-hero__line::after {
  content: ''; position: absolute; top: 0; width: 1px; height: 100%;
}
.sgj-hero__line::before { left: -60px; background: linear-gradient(180deg,transparent,rgba(227,6,19,.35) 40%,transparent 70%); }
.sgj-hero__line::after  { left: 60px;  background: linear-gradient(180deg,transparent,rgba(227,6,19,.6) 35%,transparent 65%); }
@keyframes sgjLineGlow { 0%,100%{opacity:.55} 50%{opacity:1} }

.sgj-ghost {
  position: absolute; top: 38%; left: 2%; z-index: 0; margin: 0;
  font-family: 'Bebas Neue', sans-serif; font-size: clamp(99px,16.25vw,260px); font-weight: 800;
  color: rgba(227,6,19,.07); letter-spacing: -.02em; line-height: 1;
  white-space: nowrap; pointer-events: none; user-select: none;
}
.sgj-lead { max-width: 600px; }
.sgj-hero__title {
  font-family: 'Bebas Neue', sans-serif; font-size: clamp(56px,5.5vw,88px);
  line-height: 1.05; letter-spacing: -.01em; font-weight: 700;
  max-width: 900px;
}

/* ============ STAT-LEISTE ============ */
.sgj-stats {
  background: #111113; border-bottom: 1px solid rgba(255,255,255,.08); position: relative;
}
.sgj-stats::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(#e30613,transparent);
}
.sgj-stats__grid {
  max-width: 1320px; margin: 0 auto; padding: 40px 32px;
  display: grid; grid-template-columns: repeat(4,1fr);
}
.sgj-stat { padding: 0 28px; border-left: 1px solid rgba(255,255,255,.08); }
.sgj-stat:first-child { padding-left: 0; border-left: 0; }

/* Kein Abstand oben: weder am Modul selbst noch an seinen Kindelementen.
   Überschreibt die Standardregel des Block-Layouts
   :root :where(.is-layout-flow) > * { margin-block-start: … }        */
.sgj-page .sgj-stats,
.sgj-stats > .sgj-stats__grid,
.sgj-stats .sgj-stat,
.sgj-stats .sgj-stat__value,
.sgj-stats .sgj-stat__label {
  margin-top: 0;
  margin-block-start: 0;
}
.sgj-stat__value {
  font-family: 'Bebas Neue', sans-serif; font-size: clamp(32px,2.4vw,48px);
  color: #e30613; font-weight: 700; margin: 0;
}
.sgj-stat__label {
  font-size: clamp(10px,.78vw,12.5px); color: rgba(245,244,242,.55);
  margin: 0; padding-top: 8px; letter-spacing: .02em;
}

/* ============ SPONSOREN-BANNER ============ */
/* Heller Streifen: Logos mit weißem Hintergrund gehen darin auf,
   es entstehen keine sichtbaren Kästen. Rote Haarlinien binden das
   Band an die Markenfarbe an. */
.sgj-page .sgj-sponsorbar,
.sgj-sponsorbar { margin-top: 0; margin-block-start: 0; }
.sgj-page .sgj-sponsorbar,
.sgj-sponsorbar { margin-top: 0; margin-block-start: 0; }
.sgj-sponsorbar {
  background: #0a0a0b;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  overflow: hidden; padding: 30px 0;
}
.sgj-sponsorbar__label {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(245,244,242,.4); text-align: center; margin: 0 0 22px; font-weight: 700;
}
.sgj-sponsorbar__viewport {
  overflow: hidden; white-space: nowrap;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image: linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.sgj-sponsorbar__track {
  display: inline-flex; align-items: center; gap: 0;
  animation: sgjSponsorScroll 80s linear infinite;
}
.sgj-sponsorbar__track:hover { animation-play-state: paused; }

/* Einheitliche Bühne pro Logo: gleiche Höhe UND gleiche Breite, Logo darin
   zentriert und proportional eingepasst – unabhängig vom Seitenverhältnis. */
/* Ein Feld pro Sponsor. Größe und Trennlinie liegen ausschließlich auf den
   direkten Kindern des Bandes – das ist je Sponsor entweder ein <a> (verlinkt)
   oder direkt das <img> bzw. <span>. So entsteht nie eine doppelte Linie. */
.sgj-sponsorbar__track > * {
  display: flex; align-items: center; justify-content: center;
  width: 220px; height: 90px; flex: none;
  padding: 12px 26px; box-sizing: border-box;
}

/* Logo innerhalb des Feldes: füllt es proportional. Logos hier bitte bereits
   für dunklen Hintergrund optimiert anliefern (heller/freigestellt). */
.sgj-sponsorbar__logo {
  width: 100%; height: 100%; max-width: 100%;
  object-fit: contain;
  border: 0; padding: 0;
  transition: transform .2s;
}
.sgj-sponsorbar a:hover .sgj-sponsorbar__logo,
.sgj-sponsorbar__logo:hover { transform: scale(1.06); }
span.sgj-sponsorbar__logo {
  font-size: 13px; font-weight: 700; text-align: center; line-height: 1.3;
  color: rgba(245,244,242,.8);
}
@keyframes sgjSponsorScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
/* Geschwindigkeit: größere Sekundenzahl = langsamer, siehe .sgj-sponsorbar__track */

/* Sponsoren-Übersicht (Sponsoring-Seite) – heller Block, damit die
   Logos ohne Kästen sitzen. */
.sgj-sponsors__tier { margin-bottom: 36px; }
.sgj-sponsors__tier-title {
  font-size: 16px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  margin: 0 0 18px;
}
.sgj-sponsors__tier--haupt    .sgj-sponsors__tier-title { color: #ff4d5a; }
.sgj-sponsors__tier--premium  .sgj-sponsors__tier-title { color: #e8c468; }
.sgj-sponsors__tier--sonstige .sgj-sponsors__tier-title { color: #c9ccd1; }
.sgj-banner-clamp { min-height: clamp(340px, 42vw, 500px) !important; max-width: 1920px; margin-left: auto !important; margin-right: auto !important; }
.sgj-sponsors__row { display: flex; flex-wrap: wrap; gap: 28px; align-items: center; }
.sgj-sponsors__logo,
.sgj-sponsors__row > a {
  display: flex; align-items: center; justify-content: center;
  object-fit: contain; transition: transform .2s;
}
.sgj-sponsors__row > a .sgj-sponsors__logo { width: 100%; height: 100%; padding: 0; }
.sgj-sponsors__row > a:hover .sgj-sponsors__logo,
.sgj-sponsors__logo:hover { transform: scale(1.04); }
span.sgj-sponsors__logo {
  font-size: 14px; font-weight: 700; text-align: center; line-height: 1.3;
  color: rgba(245,244,242,.8);
}

/* Bühnengröße je Stufe – innerhalb einer Stufe alle Logos exakt gleich groß */
.sgj-sponsors__tier--haupt    .sgj-sponsors__logo,
.sgj-sponsors__tier--haupt    .sgj-sponsors__row > a { width: 260px; height: 100px; }
.sgj-sponsors__tier--premium  .sgj-sponsors__logo,
.sgj-sponsors__tier--premium  .sgj-sponsors__row > a { width: 210px; height: 80px; }
.sgj-sponsors__tier--sonstige .sgj-sponsors__logo,
.sgj-sponsors__tier--sonstige .sgj-sponsors__row > a { width: 170px; height: 64px; }

/* ============ AKADEMIE-HINWEIS ============ */
.sgj-academy {
  display: flex; align-items: center; gap: 14px; padding: 16px 20px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  clip-path: polygon(8px 0,100% 0,100% 100%,0 100%);
}
.sgj-academy img { height: 36px; width: auto; object-fit: contain; flex: none; }

/* ============ DIAGONALE AKZENTLINIE ============ */
.sgj-band { position: relative; overflow: hidden; margin-block-start: 0 !important; }
.sgj-band::before {
  content: ''; position: absolute; top: -20%; right: 20%; width: 2px; height: 140%;
  background: linear-gradient(180deg,transparent,rgba(227,6,19,.5) 40%,transparent);
  transform: rotate(14deg); pointer-events: none;
}

/* ============ EINBLEND-ANIMATION ============ */
.sgj-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.sgj-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .sgj-reveal { opacity: 1; transform: none; transition: none; }
  .sgj-energy-bar::after, .sgj-sponsorbar__track, .sgj-hero__line { animation: none; }
}

/* ============ FOOTER ============ */
/* Der Abstand entsteht am Vorlagenteil-Wrapper (<footer class="wp-block-template-part">),
   nicht an der Gruppe darin – deshalb dort zurücksetzen. */
body footer.wp-block-template-part,
body header.wp-block-template-part,
body .wp-site-blocks > .wp-block-template-part,
body .sgj-footer { margin-top: 0; margin-block-start: 0; }
.sgj-footer {
  border-top: 1px solid rgba(227,6,19,.25);
  background: radial-gradient(circle at 15% 0%, rgba(227,6,19,.16), transparent 55%), #0a0a0b;
}
/* Footer-Navigation: keine Aufzählungspunkte, kein Einzug –
   gleiche Optik wie die Kontaktangaben. */
.sgj-footer .sgj-footer-nav,
.sgj-footer .sgj-footer-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}
.sgj-footer .sgj-footer-nav li { margin: 0; padding: 0; }
.sgj-footer .sgj-footer-nav li::marker { content: none; }
.sgj-footer .sgj-footer-nav a {
  display: block;
  padding: 4px 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(245,244,242,.7);
  text-decoration: none;
}
.sgj-footer .sgj-footer-nav a:hover { color: #e30613; }

.sgj-footer__social a {
  width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.18);
  clip-path: polygon(6px 0,100% 0,100% 100%,0 100%,0 6px);
  color: rgba(245,244,242,.75); transition: all .2s;
}
.sgj-footer__social a:hover { border-color: #e30613; color: #e30613; transform: translateY(-3px); }

/* ============ LIVE-TABELLEN (Google Sheets) ============ */
.sgj-live-table-wrap { overflow-x: auto; }
.sgj-live-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sgj-live-table thead th {
  text-align: left; padding: 10px 14px; font-size: 11px; letter-spacing: .06em;
  text-transform: uppercase; color: rgba(245,244,242,.45);
  border-bottom: 1px solid rgba(255,255,255,.1); white-space: nowrap;
}
.sgj-live-table tbody td {
  padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(245,244,242,.85); white-space: nowrap;
}
.sgj-live-table tbody tr:last-child td { border-bottom: 0; }
.sgj-live-table tbody tr.sgj-live-table__highlight td {
  background: #e30613; color: #fff; font-weight: 700; border-bottom-color: #e30613;
}
/* Erweitertes 9-Spalten-Format (Mannschaften 2-8): schmaler, damit alles ohne Scrollbalken passt. */
.sgj-live-table--wide { font-size: 12px; }
.sgj-live-table--wide thead th { padding: 8px 6px; font-size: 9.5px; white-space: normal; }
.sgj-live-table--wide tbody td { padding: 9px 6px; white-space: normal; }
.sgj-live-table--wide thead th:nth-child(2), .sgj-live-table--wide tbody td:nth-child(2) { white-space: nowrap; }
.sgj-live-empty {
  padding: 24px; text-align: center; font-size: 13.5px; color: rgba(245,244,242,.5);
  border: 1px dashed rgba(255,255,255,.15); margin: 0;
}

/* ============ BUNDESLIGA-SEITE ============ */
.sgj-link a {
  font-size: 12.5px; color: rgba(245,244,242,.55); border-bottom: 1px solid rgba(245,244,242,.25);
  text-decoration: none; padding-bottom: 1px;
}
.sgj-link a:hover { color: #e30613; border-color: #e30613; }
.sgj-eyebrow.sgj-badge--live { display: inline-flex; align-items: center; gap: 8px; }
.sgj-bl-hero-media { position: relative; height: calc(100% + 210px); min-height: 460px; margin-top: -120px !important; margin-bottom: -90px !important; margin-right: calc((100vw - 1320px) / -2); }
.sgj-bl-hero-media__img,
.sgj-bl-hero-media__img img { height: 100%; width: 100%; display: block; }
.sgj-bl-hero-media::before {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, #0a0a0b 0%, rgba(10,10,11,.7) 6%, transparent 16%);
}
.sgj-bl-hero-badge {
  position: absolute; top: 20px; right: 20px;
  background: radial-gradient(circle at 50% 40%, rgba(10,10,11,.92) 0%, rgba(10,10,11,.75) 55%, transparent 100%);
  padding: 26px 34px; text-align: center;
}
.sgj-bl-hero-badge__icon { width: fit-content !important; margin: 0 auto 8px !important; display: block; }
.sgj-bl-hero-badge__icon img { display: block; width: 52px; height: 46px; margin: 0 auto; }
.sgj-bl-hero-badge .sgj-bl-hero-badge__title {
  font-family: "Bebas Neue", Impact, sans-serif; font-size: 22px; color: #f5f4f2; font-weight: 700; line-height: 1; letter-spacing: .02em; text-transform: uppercase; margin: 0;
}
.sgj-bl-hero-badge .sgj-bl-hero-badge__sub {
  font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(245,244,242,.6); margin: 6px 0 0; line-height: 1.4;
}

/* Bundesliga-Bühne: gleiche Deko-Sprache wie die Startseiten-Bühne, kompakter skaliert */
.sgj-bl-hero { overflow: hidden; }
.sgj-hero__honeycomb {
  position: absolute; width: 340px; height: 420px; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'60'%20height%3D'104'%20viewBox%3D'0%200%2060%20104'%3E%3Cpath%20d%3D'M30%200L60%2017.3V52L30%2069.3L0%2052V17.3Z'%20fill%3D'none'%20stroke%3D'white'%20stroke-opacity%3D'0.045'%20stroke-width%3D'1'%2F%3E%3C%2Fsvg%3E");
  background-size: 60px 104px;
}
.sgj-hero__honeycomb--tl {
  top: 0; left: 0;
  -webkit-mask-image: linear-gradient(135deg,#000 30%,transparent 75%);
  mask-image: linear-gradient(135deg,#000 30%,transparent 75%);
}
.sgj-hero__cloud {
  position: absolute; bottom: -10%; left: -6%; width: 520px; height: 420px; z-index: 0; pointer-events: none; filter: blur(6px);
  background: radial-gradient(circle at 30% 70%, rgba(227,6,19,.20), transparent 55%), radial-gradient(circle at 55% 85%, rgba(227,6,19,.14), transparent 60%);
}
.sgj-ghost--sm { font-size: clamp(70px,11vw,180px); }
.sgj-hero__line--thin {
  position: absolute; top: -10%; right: 14%; left: auto; width: 2px; height: 130%; z-index: 0;
  background: linear-gradient(180deg,transparent,#ff2d3f 40%,transparent);
  box-shadow: 0 0 30px 4px rgba(227,6,19,.5); transform: rotate(16deg); pointer-events: none;
}
.sgj-hero__line--thin::before, .sgj-hero__line--thin::after { content: none; }
.sgj-kader-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 24px; }
.sgj-kader-grid .sgj-kader-card { margin-top: 0 !important; }
.sgj-kader-card { position: relative; background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); perspective: 1200px; }
.sgj-kader-card__inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transform: rotateY(180deg); filter: brightness(.35); transition: transform 1.1s cubic-bezier(.34,.02,.16,1), filter 1.1s ease; transition-delay: var(--reveal-delay, 0ms); }
.sgj-kader-card.is-visible .sgj-kader-card__inner { transform: rotateY(0deg); filter: brightness(1); }
.sgj-kader-card__inner, .sgj-kader-card__inner > * { backface-visibility: hidden; }
.sgj-kader-card img { aspect-ratio: 1/1; object-fit: cover; display: block; width: 100%; }
.sgj-kader-card figure { margin: 0; }
.sgj-kader-card__name { font-family: "Bebas Neue", Impact, sans-serif; font-size: 15.5px; color: #f5f4f2; text-align: center; margin: 12px 14px 0; }
.sgj-kader-card__first { font-family: Montserrat, sans-serif; font-size: 13px; font-weight: 500; color: #f5f4f2; text-align: center; margin: 12px 14px 0; }
.sgj-kader-card__last { font-family: "Bebas Neue", Impact, sans-serif; font-size: 19.5px; font-weight: 700; color: #f5f4f2; text-align: center; margin: 0 14px; line-height: 1.15; }
.sgj-kader-card__nation { font-size: 11px; color: rgba(245,244,242,.55); text-align: center; margin: 6px 14px 14px; }
.sgj-liga-panel { display: flex; flex-direction: column; height: 100%; }
.sgj-liga-panel .sgj-live-table-wrap { flex: 1; }
.sgj-next-match {
  background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26);
  border-left: 2px solid #e30613; padding: 14px 26px; height: auto; display: flex; flex-direction: column; justify-content: space-between;
}
.sgj-next-match__row { display: flex; align-items: center; justify-content: center; gap: 28px; margin: 20px 0; }
.sgj-next-match__team { text-align: center; flex: 1; }
.sgj-next-match__team img, .sgj-next-match__team .sgj-verein-logo-fallback { margin: 0 auto 8px; }
.sgj-next-match__vs { font-family: "Bebas Neue", Impact, sans-serif; font-size: 34px; color: #e30613; }
.sgj-next-match__when { font-size: 17px; color: rgba(245,244,242,.7); letter-spacing: .03em; text-align: center; margin: 0; }
.sgj-next-match__venue { font-size: 13px; color: #f5f4f2; letter-spacing: .05em; text-transform: uppercase; text-align: center; margin: 0; }
.sgj-next-match__entry { font-size: 12.5px; color: rgba(245,244,242,.55); text-align: center; margin: 4px 0 0; }
.sgj-next-match__buttons { flex-direction: column; align-items: stretch; margin-top: 18px; gap: 12px; }
.sgj-next-match__buttons.wp-block-buttons .wp-block-button.sgj-btn-primary,
.sgj-next-match__buttons.wp-block-buttons .wp-block-button.sgj-btn-ghost { width: 100%; margin-top: 16px; }
.sgj-next-match__buttons.wp-block-buttons .wp-block-button.sgj-btn-primary .wp-block-button__link,
.sgj-next-match__buttons.wp-block-buttons .wp-block-button.sgj-btn-ghost .wp-block-button__link { font-size: 15px; padding: 16px 30px; display: block; text-align: center; }
.sgj-next-match__name { font-family: "Bebas Neue", Impact, sans-serif; font-size: 19px; margin-top: 10px; }

.sgj-verein-logo { border-radius: 50%; object-fit: contain; display: block; margin: 0 auto; flex: none; }
.sgj-verein-logo--fallback {
  border-radius: 50%; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center; margin: 0 auto;
  font-family: "Bebas Neue", Impact, sans-serif; color: rgba(245,244,242,.5); flex: none;
}

.sgj-match-tabs { display: flex; gap: 4px; margin-bottom: 18px; }
.sgj-match-tabs button {
  padding: 8px 16px; font-size: 12.5px; font-weight: 700; cursor: pointer; font-family: Montserrat, sans-serif;
  background: transparent; color: rgba(245,244,242,.55); border: 1px solid rgba(255,255,255,.15);
  clip-path: polygon(6px 0,100% 0,100% 100%,0 100%);
}
.sgj-match-tabs button.is-active { background: #e30613; color: #fff; border-color: #e30613; }
.sgj-match-panels { display: grid; }
.sgj-match-panels > [data-match-panel] { grid-area: 1 / 1; visibility: visible; }
.sgj-match-panels > [data-match-panel].is-hidden { visibility: hidden; pointer-events: none; }
.sgj-match-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sgj-match-col__label { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(245,244,242,.5); margin: 0 0 10px; }
.sgj-match-list { display: flex; flex-direction: column; gap: 1px; }
.sgj-match-list--split { display: block; columns: 2; column-gap: 24px; }
.sgj-match-list--split .sgj-match-row { break-inside: avoid; margin-bottom: 1px; }
.sgj-match-row { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #232329; min-height: 48px; text-decoration: none; color: inherit; }
.sgj-match-row[href] { cursor: pointer; transition: background .15s; }
.sgj-match-row[href]:hover { background: #2b2b32; }
.sgj-match-row.is-next { background: rgba(227,6,19,.15); }
.sgj-match-row__main { flex: 1; min-width: 0; }
.sgj-match-row__date { font-size: 10.5px; color: rgba(245,244,242,.5); }
.sgj-match-row__vs { font-size: 12.5px; font-weight: 700; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgj-match-row__badge {
  background: #e30613; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; padding: 3px 8px; flex: none;
}
.sgj-match-row__result { font-size: 12px; color: rgba(245,244,242,.4); flex: none; }
.sgj-gegner-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sgj-gegner-tile { border: 1px solid rgba(255,255,255,.1); display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 22px 12px; background: #111113; }
.sgj-gegner-tile__name { font-size: 11.5px; text-align: center; color: rgba(245,244,242,.75); line-height: 1.3; }

/* ============ RESPONSIVE ============ */
@media (max-width: 700px) {
  .sgj-kader-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .sgj-match-columns { grid-template-columns: 1fr; }
  .sgj-match-list--split { columns: 1; }
  .sgj-gegner-grid { grid-template-columns: repeat(3, 1fr); }
  .sgj-band .wp-block-columns.are-vertically-aligned-stretch { align-items: flex-start !important; }
  .sgj-band .wp-block-column { align-self: auto !important; height: auto !important; margin-bottom: 32px; }
  .sgj-band .wp-block-column:last-child { margin-bottom: 0; }
  .sgj-liga-panel { height: auto; margin-bottom: 24px; }
  .sgj-hero { padding-top: 0 !important; }
  .sgj-bl-hero .wp-block-columns { flex-direction: column-reverse; }
  .sgj-bl-hero-media { height: auto !important; min-height: 260px; margin: 0 calc(50% - 50vw) 24px !important; }
  .sgj-bl-hero-media__img,
  .sgj-bl-hero-media__img img { height: 260px; }
  .sgj-bl-hero-media::before { background: linear-gradient(180deg, transparent 60%, #0a0a0b 100%); }
  .sgj-header__inner { padding: 14px 24px; }
  .sgj-stats__grid { grid-template-columns: repeat(2,1fr); gap: 24px 0; padding: 32px 24px; }
  .sgj-secnum::before { font-size: 64px; top: -40px; }
  .sgj-ghost { font-size: 33vw; }
  .sgj-training-grid { grid-template-columns: 1fr; }
  .sgj-hautnah-text { padding-top: 40px !important; padding-bottom: 40px !important; padding-left: 0 !important; padding-right: 0 !important; }
}

/* ============ ACADEMY ============ */
.sgj-values-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 32px; text-align: center; }
.sgj-value__icon { width: 34px; height: 34px; margin: 0 auto 14px; }
.sgj-value__icon img { width: 100%; height: 100%; object-fit: contain; display: block; }
.sgj-value__title { font-size: 14px; font-weight: 700; margin: 0 0 8px; }
.sgj-value__body { font-size: 13px; line-height: 1.6; color: rgba(245,244,242,.55); margin: 0; }

.sgj-steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.sgj-steps-grid > * { margin-block-start: 0 !important; }
.sgj-step__num { font-family: 'Bebas Neue', sans-serif; font-size: 34px; color: #e30613; font-weight: 700; margin: 0 0 14px; }
.sgj-step__title { font-size: 14px; font-weight: 700; margin: 0 0 10px; }
.sgj-step__body { font-size: 13px; line-height: 1.6; color: rgba(245,244,242,.55); margin: 0; }

.sgj-journey { display: grid; grid-template-columns: 76px 28px 76px 28px 76px 28px 76px; align-items: center; row-gap: 8px; }
.sgj-journey__icon { width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(227,6,19,.4); background: rgba(227,6,19,.08); display: flex; align-items: center; justify-content: center; margin: 0 auto; font-size: 16px; font-weight: 400; color: #f5f4f2B8; }
.sgj-journey__label { font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: rgba(245,244,242,.6); margin: 0; text-align: center; word-break: break-word; }
.sgj-journey__arrow { color: #e30613; font-size: 18px; text-align: center; }

.sgj-checklist { list-style: none; margin: 0; padding: 0; }
.sgj-checklist li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 14px; color: rgba(245,244,242,.8); }
.sgj-checklist li::before { content: '✓'; color: #e30613; font-weight: 700; }

.sgj-training-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.sgj-training-grid > * { margin-block-start: 0 !important; }
.sgj-training-card { background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); border-left: 2px solid #e30613; padding: 22px; }
.sgj-training-card__title { font-size: 14px; font-weight: 700; margin: 0 0 8px; }
.sgj-training-card__time { font-size: 13px; color: rgba(245,244,242,.55); margin: 0; }

@media (max-width: 900px) {
  .sgj-values-grid { grid-template-columns: repeat(2,1fr); gap: 32px 20px; }
  .sgj-steps-grid { grid-template-columns: repeat(2,1fr); }
  .sgj-timeline { grid-template-columns: repeat(2,1fr); gap: 32px 16px; }
  .sgj-timeline::before { display: none; }
  .sgj-teams-grid { grid-template-columns: repeat(3,1fr); }
  .sgj-people-grid { grid-template-columns: repeat(2,1fr); }
  .sgj-cta-columns { grid-template-columns: 1fr; }
}

/* ============ VEREIN ============ */
.sgj-timeline { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; position: relative; }
.sgj-timeline::before { content: ''; position: absolute; top: 42px; left: 5%; right: 5%; height: 1px; background: rgba(227,6,19,.3); z-index: 0; }
.sgj-timeline-item { text-align: center; position: relative; }
.sgj-timeline-item__photo { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; border: 1px solid rgba(227,6,19,.4); margin: 0 auto 18px; background: #232329; position: relative; z-index: 1; }
.sgj-timeline-item__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgj-timeline-item__year { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 24px; color: #e30613; font-weight: 700; margin: 14px 0 0; position: relative; }
.sgj-timeline-item__year::before { content: ''; display: block; width: 9px; height: 9px; border-radius: 50%; background: #e30613; margin: 0 auto 14px; }
.sgj-timeline-item__caption { font-size: 12.5px; line-height: 1.5; color: rgba(245,244,242,.6); margin: 8px 0 0; }
.sgj-timeline > * { margin-block-start: 0 !important; }
.sgj-timeline-item > * { margin-block-start: 0 !important; }

.sgj-arena-collage { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; height: 420px; }
.sgj-arena-collage__main { position: relative; height: 100%; margin: 0; clip-path: polygon(0 0,100% 0,100% 92%,92% 100%,0 100%); }
.sgj-arena-collage__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgj-arena-collage__side { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.sgj-arena-collage__thumb { position: relative; flex: 1; overflow: hidden; margin: 0; }
.sgj-arena-collage__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgj-arena-collage > * { margin-block-start: 0 !important; }
.sgj-arena-collage__side > * { margin-block-start: 0 !important; }

.sgj-teams-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: 16px; align-items: stretch; }
.sgj-teams-grid > * { margin-block-start: 0 !important; }
.sgj-teams-grid .sgj-teams-grid__tile-wrap { margin: 0; height: 100%; }
.sgj-teams-grid .sgj-teams-grid__tile-wrap .wp-block-button { height: 100%; flex: 1; }
.sgj-teams-grid__tile { background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); box-shadow: 0 16px 40px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); text-align: center; transition: border-color .2s, transform .2s; position: relative; }
.sgj-teams-grid__tile:hover { border-color: #e30613; transform: translateY(-4px); }
.sgj-teams-grid__tile > * { margin-block-start: 0 !important; }
.sgj-teams-grid__tile .wp-block-button__link {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 100%; height: 100%; padding: 28px 12px; margin: 0; box-sizing: border-box;
  background: none !important; border-radius: 0 !important;
  font-family: 'Bebas Neue', Impact, sans-serif; font-size: 26px; color: #e30613; font-weight: 700; line-height: 1;
  white-space: normal; word-break: keep-all;
}
.sgj-teams-grid__liga { display: block; white-space: normal; word-break: keep-all; font-family: 'Montserrat', system-ui, sans-serif; font-size: 11px; color: rgba(245,244,242,.55); font-weight: 400; margin: 8px 0 0; text-transform: none; }

.sgj-people-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px 20px; }
.sgj-people-grid > * { margin-block-start: 0 !important; }
.sgj-person { display: flex; align-items: center; gap: 16px; }
.sgj-person__photo { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; background: #232329; border: 1px solid rgba(255,255,255,.1); margin: 0; }
.sgj-person__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgj-person__name { font-size: 14.5px; font-weight: 700; color: #f5f4f2; margin: 0; }
.sgj-person__role { font-size: 12.5px; color: rgba(245,244,242,.55); margin: 2px 0 0; }
.sgj-person > * { margin-block-start: 0 !important; }
.sgj-person > div > * { margin-block-start: 0 !important; }

.sgj-cta-columns { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; text-align: center; }
.sgj-cta-columns > .sgj-cta-col { margin-block-start: 0 !important; }
.sgj-cta-col > * { margin-block-start: 0 !important; }
.sgj-cta-col > *:first-child { margin-block-start: 0 !important; }
.sgj-cta-col__icon { width: 30px; height: 30px; margin: 0 auto 14px; }
.sgj-cta-col__icon img { width: 100%; height: 100%; object-fit: contain; display: block; }
.sgj-cta-col__title { font-size: 15px; font-weight: 700; margin: 0 0 8px; }
.sgj-cta-col__body { font-size: 13px; color: rgba(245,244,242,.55); margin: 0 0 18px; }
.sgj-cta-col .wp-block-buttons { justify-content: center; }
.wp-block-button.sgj-cta-col__btn .wp-block-button__link { background: #e30613; color: #fff; padding: 13px 26px; font-size: 13.5px; font-weight: 700; clip-path: polygon(8px 0,100% 0,100% 100%,0 100%); border-radius: 0; }
.wp-block-button.sgj-cta-col__btn .wp-block-button__link:hover { background: #ff2d3f; }

.sgj-quote-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
.sgj-quote-grid > * { margin-block-start: 0 !important; }
.sgj-quote-card { display: flex; gap: 20px; align-items: flex-start; background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); padding: 32px; }
.sgj-quote-card > * { margin-block-start: 0 !important; }
.sgj-quote-card__photo { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; background: #232329; margin: 0; }
.sgj-quote-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgj-quote-card__text { font-size: 14px; line-height: 1.7; color: rgba(245,244,242,.85); font-style: italic; margin: 0; }
.sgj-quote-card__name { font-size: 14px; font-weight: 700; margin: 16px 0 0; }
.sgj-quote-card__role { font-size: 12.5px; color: rgba(245,244,242,.55); margin: 2px 0 0; }
@media (max-width: 782px) { .sgj-quote-grid { grid-template-columns: 1fr; } }

.sgj-schule__tags { font-size: 13px; font-weight: 700; color: #e30613; margin: 20px 0 0; }
.sgj-values-grid--3 { grid-template-columns: repeat(3,1fr); }
@media (max-width: 782px) { .sgj-values-grid--3 { grid-template-columns: repeat(2,1fr); } }

.sgj-faq__item { border-bottom: 1px solid rgba(255,255,255,.1); padding: 18px 0; }
.sgj-faq__item summary { cursor: pointer; font-size: 15px; font-weight: 700; color: #f5f4f2; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.sgj-faq__item summary::-webkit-details-marker { display: none; }
.sgj-faq__item summary::after { content: '+'; color: #e30613; font-size: 20px; font-weight: 400; margin-left: 12px; }
.sgj-faq__item[open] summary::after { content: '–'; }
.sgj-faq__item p { font-size: 13.5px; line-height: 1.7; color: rgba(245,244,242,.6); margin: 12px 0 0; }

.sgj-spielbetrieb-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.sgj-spielbetrieb-grid > * { margin-block-start: 0 !important; }
.sgj-spielbetrieb-tile-wrap { margin: 0; height: 100%; }
.sgj-spielbetrieb-tile-wrap .wp-block-button { height: 100%; }
.sgj-spielbetrieb-tile { background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); border-top: 2px solid #e30613; box-shadow: 0 16px 40px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); transition: transform .2s; }
.sgj-spielbetrieb-tile:hover { transform: translateY(-4px); }
.sgj-spielbetrieb-tile .wp-block-button__link {
  display: block; width: 100%; height: 100%; padding: 28px; margin: 0; box-sizing: border-box;
  background: none !important; border-radius: 0 !important; text-align: left;
}
.sgj-spielbetrieb-tile__n { display: block; font-family: 'Bebas Neue', Impact, sans-serif; font-size: 32px; color: #e30613; font-weight: 700; }
.sgj-spielbetrieb-tile__name { display: block; font-family: 'Montserrat', system-ui, sans-serif; font-size: 14.5px; font-weight: 700; color: #f5f4f2; margin-top: 6px; }
.sgj-spielbetrieb-tile__liga { display: block; font-family: 'Montserrat', system-ui, sans-serif; font-size: 11px; font-weight: 400; color: #ff8890; letter-spacing: .06em; text-transform: uppercase; margin-top: 8px; }
.sgj-spielbetrieb-tile__cta { display: block; font-family: 'Montserrat', system-ui, sans-serif; font-size: 12px; font-weight: 400; color: rgba(245,244,242,.5); margin-top: 10px; }
@media (max-width: 782px) { .sgj-spielbetrieb-grid { grid-template-columns: 1fr; } }

.sgj-bullet-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px 24px; }
.sgj-bullet-grid > * { margin-block-start: 0 !important; }
.sgj-bullet { border-left: 2px solid #e30613; padding: 4px 0 4px 16px; font-size: 14.5px; line-height: 1.5; color: rgba(245,244,242,.85); margin: 0; }
@media (max-width: 600px) { .sgj-bullet-grid { grid-template-columns: 1fr; } }

.sgj-kennzahl-label { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #e30613; margin: 0 0 18px; }
.sgj-kennzahl-label--muted { color: rgba(245,244,242,.5); }
.sgj-kennzahl-list > * { margin-block-start: 0 !important; }
.sgj-kennzahl-list p { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.07); font-size: 14.5px; color: rgba(245,244,242,.8); margin: 0; }

.sgj-warum-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.sgj-warum-grid > * { margin-block-start: 0 !important; }
.sgj-warum-item { padding: 24px 0 0; border-top: 2px solid #e30613; font-size: 15px; color: rgba(245,244,242,.85); margin: 0; }
@media (max-width: 782px) { .sgj-warum-grid { grid-template-columns: 1fr; } }

.sgj-tag-row { display: flex; flex-wrap: wrap; gap: 10px; }
.sgj-tag-row > * { margin-block-start: 0 !important; }
.sgj-tag { border: 1px solid rgba(255,255,255,.15); padding: 9px 16px; font-size: 13px; color: rgba(245,244,242,.8); clip-path: polygon(6px 0,100% 0,100% 100%,0 100%); margin: 0; }

.sgj-ausblick-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px 24px; }
.sgj-ausblick-grid > * { margin-block-start: 0 !important; }
@media (max-width: 782px) { .sgj-ausblick-grid { grid-template-columns: 1fr; } }

.sgj-cta-final > * { margin-block-start: 0 !important; }
.sgj-cta-final { margin-block-start: 0 !important; }
.sgj-warum-heading { max-width: 700px; }
.sgj-ausblick-heading { max-width: 760px; }
.sgj-bild-banner { position: relative; height: 420px; overflow: hidden; margin-block-start: 0 !important; }
.sgj-bild-banner__img { height: 100%; margin: 0; }
.sgj-bild-banner__img img { width: 100%; height: 420px; object-fit: cover; object-position: center 40%; display: block; }
.sgj-bild-banner__caption {
  position: absolute; left: 32px; right: 32px; bottom: 28px; margin: 0;
  font-family: 'Bebas Neue', Impact, sans-serif; font-size: clamp(22px,1.9vw,30px); font-weight: 700; color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}

.sgj-zielgruppen-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.sgj-zielgruppen-grid > * { margin-block-start: 0 !important; }
.sgj-zielgruppe-card { background: linear-gradient(155deg,#33333a,#232329); border: 1px solid rgba(255,255,255,.26); box-shadow: 0 16px 40px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); padding: 32px; transition: border-color .2s, transform .2s; }
.sgj-zielgruppe-card:hover { border-color: #e30613; transform: translateY(-4px); }
.sgj-zielgruppe-card > * { margin-block-start: 0 !important; }
.sgj-zielgruppe-card__title { font-size: 16px; font-weight: 700; color: #f5f4f2; margin: 0 0 16px; }
.sgj-zielgruppe-card__item { font-size: 14px; color: rgba(245,244,242,.6); padding: 7px 0; margin: 0; }
@media (max-width: 782px) { .sgj-zielgruppen-grid { grid-template-columns: 1fr; } }

.sgj-netzwerken-cols { align-items: stretch; }
.sgj-netzwerken-img { height: 380px; margin: 0; }
.sgj-netzwerken-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 600px) { .sgj-netzwerken-img { height: 260px; } }
@media (max-width: 600px) { .sgj-header__inner > .wp-block-buttons { display: none; } }
.sgj-header .wp-block-navigation-item.sgj-nav-mobile-cta,
.sgj-header .wp-block-navigation-item a[href="/training-mitgliedschaft/"].wp-block-navigation-item__content {
  display: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.sgj-nav-mobile-cta {
  display: block !important; margin-top: 20px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.sgj-nav-mobile-cta a {
  background: #e30613 !important; color: #fff !important; text-align: center;
  padding: 16px 24px !important; font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px !important; font-weight: 700 !important; border-bottom: none !important;
  display: block !important;
}

.sgj-downloads { margin-top: 64px; padding-top: 36px; border-top: 1px solid rgba(255,255,255,.08); display: flex; flex-wrap: wrap; gap: 28px; justify-content: center; }
.sgj-downloads > * { margin-block-start: 0 !important; }
.sgj-downloads a { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(245,244,242,.6); }
.sgj-downloads a::before { content: ''; width: 16px; height: 16px; flex: none; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M6 2h9l5 5v15H6V2z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M6 2h9l5 5v15H6V2z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center/contain no-repeat; }
.sgj-downloads a:hover { color: #e30613; }

.sgj-academy-intro { max-width: 640px; margin-left: auto; margin-right: auto; margin-block-start: 0 !important; }
.sgj-academy-intro > * { margin-block-start: 0 !important; }
.sgj-academy-intro > .wp-block-buttons { margin-block-start: 38px !important; }
.sgj-academy-intro h2, .sgj-academy-intro p { max-width: none; }
.sgj-academy-werte { margin-block-start: 0 !important; }
.sgj-values-grid > * { margin-block-start: 0 !important; }
.sgj-training-columns { column-gap: 64px !important; }
.sgj-academy-intro--sm { max-width: 520px; text-align: center; }
.sgj-center-buttons { justify-content: center; }
