/* Oswald – self-hosted (kein Google-Fonts/CDN, DSGVO). Gewichte 200–700. */
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 200; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-200.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 300; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-300.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-regular.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-500.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-600.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-700.woff2) format("woff2"); }
/* Ersatzschrift mit Oswald-Maßen (Laufweite der Großbuchstaben und Zeilenmetrik gemessen): Der Wechsel auf Oswald verschiebt nichts (CLS Navigation). */
@font-face { font-family: "Oswald Fallback"; font-weight: 100 450; src: local("Arial"), local("ArialMT"), local("Helvetica"), local("Liberation Sans"), local("Arimo"); size-adjust: 72%; ascent-override: 165%; descent-override: 40%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 451 550; src: local("Arial"), local("ArialMT"), local("Helvetica"), local("Liberation Sans"), local("Arimo"); size-adjust: 75.6%; ascent-override: 157.4%; descent-override: 38.4%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 551 650; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"), local("Liberation Sans Bold"), local("Arimo Bold"); size-adjust: 76.6%; ascent-override: 155.4%; descent-override: 37.9%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 651 900; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"), local("Liberation Sans Bold"), local("Arimo Bold"); size-adjust: 78.1%; ascent-override: 152.4%; descent-override: 37.1%; line-gap-override: 0%; }

/* Fight Lounge – Website. Kritisches CSS, inline eingebettet (kein CDN/Webfont von außen).
   Layout strikt nach Layout-PDF: HELLER Hintergrund, schwarze Bold-Uppercase-Headlines
   bündig links, Fließtext in nach rechts versetzter Spalte, gezielte dunkle Bänder
   (Hero-Video, About-CTA), Buttons als abgerundete Rechtecke (schwarz + grau). */

:root {
  --bg: #ffffff;
  --fg: #0a0a0a;
  --muted: #575757;
  --line: rgba(0, 0, 0, 0.12);
  --btn-2: #d9d9d9;          /* sekundärer Button (grau) */
  --dark-bg: #0a0a0a;
  --dark-fg: #ffffff;
  --dark-muted: rgba(255, 255, 255, 0.7);
  --dark-line: rgba(255, 255, 255, 0.14);
  --maxw: 75rem;
  --offset: 38%;            /* Versatz der Inhaltsspalte (Layout-PDF) */
  --font: "Helvetica Neue", Arial, system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }
/* Sicherheitsnetz gegen horizontalen Ueberlauf; clip statt hidden,
   damit kein Scroll-Container entsteht (wuerde position: sticky brechen) */
html, body { overflow-x: clip; }
body { font-family: var(--font); color: var(--fg); background: var(--bg); line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
/* Telefonnummern ohne Unterstreichung (ueberall, inkl. Footer und Kontaktseite) */
a[href^="tel:"] { text-decoration: none; }

/* Sichtbarer Tastatur-Fokus (nur Keyboard, nicht Maus) */
:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; border-radius: 0; }
.topbar :focus-visible, .band--dark :focus-visible, .media-band :focus-visible,
.hm-hero :focus-visible, .hm-offer :focus-visible, .hm-why :focus-visible, .hm-cta :focus-visible { outline-color: #fff; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1.25rem, 5vw, 4rem); }

/* Inhaltsspalte rechts versetzt (Headline bleibt bündig links) */
.offset { margin-left: var(--offset); max-width: 36rem; }

/* ---- Typografie ---- */
.eyebrow { margin: 0 0 1.25rem; font-size: .76rem; letter-spacing: .28em; text-transform: uppercase; color: var(--muted); }
.h-xl { font-size: clamp(2.4rem, 7vw, 5rem); line-height: .94; font-weight: 800; letter-spacing: -0.025em; text-transform: uppercase; margin: 0 0 2rem; }
.h-lg { font-size: clamp(1.9rem, 5.4vw, 3.6rem); line-height: 1; font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; margin: 0 0 1.5rem; }
.lead { font-size: clamp(1.02rem, 1.5vw, 1.18rem); color: var(--muted); }

/* ---- Buttons (CI wie Live-Seite/Sidebar: flach, eckig, Oswald, Rot/Gruen) ---- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .75rem 1.6rem; background: var(--fl-red); color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase;
  letter-spacing: .02em; font-size: .85rem;
  text-decoration: none; border-radius: 0; border: 0;
  transition: background .15s ease;
}
.btn:hover { background: #b80017; }
.btn--wa { background: var(--fl-green); }
.btn--wa:hover { background: #016b01; }
.btn--ghost { background: transparent; border: 1px solid #fff; color: #fff; }
.btn--ghost:hover { background: rgba(255,255,255,.12); }
.btn--secondary { background: var(--btn-2); color: var(--fg); }
.btn--secondary:hover { background: #cfcfcf; }
.btn--small { padding: .5rem 1.1rem; font-size: .78rem; }
/* Nackte Buttons aus Alt-Inhalten (pages.json) einheitlich im CI-Stil */
.prose button {
  display: block; width: 100%; padding: .75rem 1.6rem; cursor: pointer;
  background: var(--fl-red); color: #fff; border: 0; border-radius: 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase; font-size: .85rem;
  transition: background .15s ease;
}
.prose button:hover { background: #b80017; }

/* ---- Top-Utility-Bar (dunkel, wie PDF) ---- */
.topbar {
  display: flex; justify-content: flex-end; gap: 1.75rem;
  padding: .5rem clamp(1.25rem, 5vw, 4rem);
  font-size: .76rem; letter-spacing: .06em;
  color: var(--dark-muted); background: var(--dark-bg);
}
.topbar a { text-decoration: none; }
.topbar a:hover { color: #fff; }

/* ---- Header (hell) ---- */
/* Wrapper um Header + CTA-Balken: klebt als Einheit oben, der grüne
   Probetraining-Button bleibt so auf allen Geräten dauerhaft sichtbar. */
.site-top { position: sticky; top: 0; z-index: 20; }
.site-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 1rem clamp(1.25rem, 5vw, 4rem);
  background: rgba(255, 255, 255, .92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header__logo { display: inline-flex; align-items: center; text-decoration: none; }
.site-header__logo img { height: clamp(15px, 2.2vw, 20px); width: auto; display: block; }
/* ---- Hauptnavigation (Dropdown-Menü) ---- */
.nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: clamp(.8rem, 1.8vw, 1.6rem); }
.nav a { text-decoration: none; font-size: .82rem; color: var(--fg); white-space: nowrap; display: block; padding: .3rem 0; }
.nav a:hover { opacity: .6; }
.nav a[aria-current="page"] { font-weight: 700; }
.nav__item { position: relative; }
.nav__item--has-children > a::after { content: " ▾"; font-size: .7em; opacity: .6; }
/* Untermenü: Desktop = absolut, per Hover/Fokus sichtbar */
.nav__sub {
  list-style: none; margin: 0; padding: .5rem 0; position: absolute; left: 0; top: 100%;
  min-width: 15rem; background: #fff; border: 1px solid var(--line); border-radius: 0;
  box-shadow: 0 12px 30px rgba(0,0,0,.12); z-index: 30;
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .12s, transform .12s;
}
.nav__sub li { margin: 0; }
.nav__sub a { padding: .45rem 1rem; font-size: .8rem; white-space: normal; }
.nav__sub a:hover { opacity: 1; background: var(--line); }
.nav__item--has-children:hover > .nav__sub,
.nav__item--has-children:focus-within > .nav__sub { opacity: 1; visibility: visible; transform: translateY(0); }
/* Dritte Ebene: seitlicher Flyout (LOUNGES › Kampfsport › Boxen) */
.nav__sub .nav__item--has-children > a::after { content: "›"; float: right; margin-left: .5rem; }
.nav__sub .nav__sub { left: 100%; top: -.5rem; }
@media (min-width: 901px) {
  /* Flyout, das aus dem Viewport ragen würde, nach links öffnen (rechte Menüpunkte) */
  .nav > .nav__item:nth-last-child(-n+3) .nav__sub .nav__sub { left: auto; right: 100%; }
  /* Erste Ebene der rechten Menüpunkte rechtsbündig öffnen: die Dropdowns sind
     unsichtbar (visibility), aber layoutwirksam und würden rechts über den
     Viewport ragen -> horizontaler Scrollbalken (seit Wegfall des Shop-Links). */
  .nav > .nav__item:nth-last-child(-n+3) > .nav__sub { left: auto; right: 0; }
}

/* Hamburger */
.nav-toggle { display: none; flex-direction: column; gap: 4px; background: none; border: 0; cursor: pointer; padding: .4rem; }
.nav-toggle span { width: 24px; height: 2px; background: var(--fg); display: block; }

/* ---- Mobil ---- */
@media (max-width: 900px) {
  .nav-toggle { display: flex; }
  .site-header__nav { display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; border-bottom: 1px solid var(--line); max-height: 80vh; overflow-y: auto;
    padding: .5rem clamp(1.25rem, 5vw, 4rem) 1.5rem; }
  .site-header__nav.is-open { display: block; }
  .nav { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid var(--line); }
  .nav a { padding: .8rem 0; font-size: .95rem; }
  .nav__sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none;
    border: 0; min-width: 0; padding: 0 0 .5rem .8rem; display: none; }
  .nav__item.is-expanded > .nav__sub { display: block; }
  .nav__item--has-children > a::after { content: " ＋"; float: right; }
  .nav__item.is-expanded > a::after { content: " –"; }
}

/* ---- Sektionen ---- */
section { padding: clamp(4rem, 9vw, 7.5rem) 0; }
.band--dark { background: var(--dark-bg); color: var(--dark-fg); }
.band--dark .lead, .band--dark .cv__item dd, .band--dark .contact__fine { color: var(--dark-muted); }

/* ---- Hero (hell) ---- */
.hero {
  position: relative; overflow: hidden; background: #fff;
  padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem);
}
/* About-Hero: Foto als vollflächiger Hintergrund, Text mit hellem Verlauf lesbar */
.hero--about {
  min-height: clamp(28rem, 60vh, 40rem);
  display: flex; align-items: center;
  background-color: #111;
  background-size: cover; background-position: center right; background-repeat: no-repeat;
}
.hero--about::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 40%, rgba(255,255,255,.35) 68%, rgba(255,255,255,0) 100%);
}
.hero--about .wrap { width: 100%; }
.hero__content { max-width: 42rem; }
.hero .wrap { position: relative; z-index: 1; }
.hero__title { font-size: clamp(1.6rem, 5.2vw, 4rem); line-height: .98; font-weight: 800; letter-spacing: -0.03em; text-transform: uppercase; margin: 0 0 1.75rem; text-wrap: balance; }
.hero__body { margin-top: 0; }
.hero__lead { font-size: clamp(1.05rem, 1.7vw, 1.3rem); color: var(--muted); margin: 0 0 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

/* ---- Voll­breites Medien-Band (Hero-Showreel, dunkel) ---- */
.media-band { padding: 0; background: #000; line-height: 0; }
.media-band__video { width: 100%; height: clamp(16rem, 40vw, 34rem); object-fit: cover; display: block; }

/* Split (About-Hero / CTA mit Foto) */
.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.split__media { overflow: hidden; }
.split__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(1); }
.split--rev .split__media { border-radius: 0; }

/* ---- Pull-Quote (About, zentriert, kursiv) ---- */
.pull { font-size: clamp(1.4rem, 3.2vw, 2.3rem); font-style: italic; font-weight: 500; line-height: 1.3; margin: 0 auto; max-width: 46rem; text-align: center; }
.pull__by { color: var(--muted); margin: 1.25rem 0 0; text-align: center; font-size: .95rem; }

/* ---- Stats ---- */
.stats__grid { list-style: none; margin: 3.5rem 0 0; padding: 0; display: grid; gap: 2.5rem; grid-template-columns: repeat(3, 1fr); text-align: center; }
.stats__grid li { display: flex; flex-direction: column; gap: .4rem; }
.stats__value { font-size: clamp(2.8rem, 7vw, 4.6rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.stats__label { text-transform: uppercase; letter-spacing: .12em; font-size: .82rem; font-weight: 700; }

/* ---- Services (Titel + Inhalt in versetzter Spalte) ---- */
.services .h-xl { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.service { margin-left: var(--offset); max-width: 36rem; padding: clamp(2.5rem, 5vw, 4rem) 0; }
.service:first-of-type { padding-top: 0; }
.service__title { font-size: clamp(1.3rem, 2.4vw, 1.85rem); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 1.1rem; }
.service__body p, .service > p { color: var(--muted); margin: 0 0 1.5rem; }
.service__items { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .65rem 1.5rem; }
.service__items li { position: relative; padding-left: 1.6rem; font-size: .92rem; }
.service__items li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 700; }

/* ---- Reviews ---- */
.reviews__list { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.reviews .stars { font-size: 1.1rem; letter-spacing: .2em; margin: 0 0 1.25rem; color: var(--fg); }
.review { margin: 0; }
.review blockquote { margin: 0 0 1.5rem; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.55; color: var(--fg); }
.review__by { display: flex; align-items: center; gap: 1.1rem; color: var(--muted); font-size: .82rem; line-height: 1.35; }
.review__by strong { color: var(--fg); display: block; text-transform: uppercase; letter-spacing: .04em; font-size: .92rem; margin-bottom: .15rem; }
.review__avatar { width: 64px; height: 64px; object-fit: cover; filter: grayscale(1); flex: none; }

/* ---- Kontakt ---- */
.contact__mail-lg { display: inline-block; margin-top: 1.5rem; font-size: clamp(1.5rem, 5vw, 3rem); font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; text-decoration: none; padding-bottom: 1rem; border-bottom: 2px solid currentColor; }
.contact__mail-lg:hover { opacity: .65; }
.contact__fine { margin-top: 1.5rem; color: var(--muted); font-size: .85rem; }

/* ---- CV (About): Label links, Inhalt rechts versetzt ---- */
.cv__list { margin: 3rem 0 0; padding: 0; }
.cv__item { display: grid; grid-template-columns: var(--offset) 1fr; gap: clamp(1rem, 3vw, 2rem); padding: 2.25rem 0; border-top: 1px solid var(--line); }
.cv__item:first-child { border-top: 0; }
.cv__item dt { text-transform: uppercase; letter-spacing: .08em; font-size: .95rem; font-weight: 800; align-self: start; }
.cv__item dd { margin: 0; max-width: 36rem; color: var(--muted); }
.cv__item dd strong { color: var(--fg); }
.cv__item dd a { color: var(--fg); }

/* ==== GEO-Seite ==== */
.band--soft { background: #f6f6f6; }
.band--stats { background: #f1f2f3; }
.band--dark .eyebrow { color: var(--dark-muted); }
.band--dark .step__text { color: var(--dark-muted); }

/* Statistik-Karten */
.statcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }
.statcard { display: flex; flex-direction: column; gap: .75rem; }
.statcard__value { font-size: clamp(2.6rem, 6vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; min-height: clamp(2.6rem, 6vw, 4rem); display: flex; align-items: flex-end; }
.statcard__text { margin: 0; color: var(--fg); font-size: .98rem; line-height: 1.5; }
.statcard__source { color: var(--muted); font-size: .8rem; }

/* Definition-Callout */
.geo-def { font-size: clamp(1.4rem, 3.2vw, 2.4rem); font-weight: 800; line-height: 1.25; letter-spacing: -0.015em; max-width: 52rem; margin: 0; }

/* Vergleichstabelle GEO vs. SEO */
.compare { width: 100%; border-collapse: collapse; margin-top: clamp(1.5rem, 4vw, 2.5rem); font-size: .95rem; }
.compare th, .compare td { text-align: left; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare thead th { text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; color: var(--muted); border-bottom: 2px solid var(--fg); }
.compare tbody th { font-weight: 700; width: 22%; }
.compare td { color: var(--muted); }
.compare .compare__geo { color: var(--fg); font-weight: 600; }

/* Prozess-Schritte (dunkel, 4-spaltig) */
.steps { list-style: none; margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
.step { display: flex; flex-direction: column; gap: .65rem; padding-top: 1.5rem; border-top: 2px solid var(--dark-line); }
.step__num { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--dark-muted); }
.step__title { margin: 0; font-size: clamp(1.05rem, 1.6vw, 1.3rem); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; }
.step__text { margin: 0; font-size: .9rem; line-height: 1.5; }

/* Leistungs-Karten (3-spaltig) */
.cardgrid { list-style: none; margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3rem); }
.card { padding-top: 1.5rem; border-top: 2px solid var(--fg); }
.card__title { margin: 0 0 .6rem; font-size: 1.02rem; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.card__text { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.5; }

/* FAQ-Akkordeon */
.faq { margin-top: clamp(2rem, 5vw, 3rem); border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.4rem 0; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: .92rem; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; font-weight: 400; font-size: 1.5rem; line-height: 1; flex: none; transition: transform .2s ease; }
.faq__item[open] summary::after { transform: rotate(45deg); }
.faq__answer { padding: 0 0 1.6rem; max-width: 50rem; }
.faq__answer p { margin: 0; color: var(--muted); }

/* ---- Foto-Raster (About), vollbreit 3-spaltig ---- */
.gallery { padding: 0; }
.gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.gallery__grid li { margin: 0; overflow: hidden; aspect-ratio: 3 / 4; }
.gallery__grid img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* ---- Footer (hell) ---- */
.site-footer { border-top: 1px solid var(--line); }
/* Menü links, Logo rechts – vertikal mittig zwischen den Linien, gleicher Abstand oben/unten */
.site-footer__row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 1.5rem 2.5rem;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 5vw, 4rem);
}
.site-footer__menu { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.75rem; }
.site-footer__nav { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.75rem; }
.site-footer__nav a { text-decoration: none; font-size: .85rem; color: var(--fg); }
.site-footer__nav a:hover { opacity: .6; }
.site-footer__social-note { font-size: .85rem; color: var(--muted); }
.site-footer__brand { flex: none; display: inline-flex; align-items: center; }
.site-footer__brand img { height: clamp(18px, 2vw, 24px); width: auto; display: block; }
.site-footer__copy { color: var(--muted); font-size: .76rem; margin: 0; padding: clamp(1rem, 2.5vw, 1.5rem) clamp(1.25rem, 5vw, 4rem); border-top: 1px solid var(--line); }
@media (max-width: 760px) {
  .site-footer__row { flex-direction: column; align-items: flex-start; gap: 1.75rem; }
}

/* ---- Rechtsseiten ---- */
.legal .wrap { max-width: 46rem; }
.legal h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 1.5rem; }
.legal h2 { font-size: 1.05rem; margin: 2rem 0 .5rem; }
.legal p { color: var(--muted); }
.legal a { color: var(--fg); }

/* ---- Mobile ---- */
@media (max-width: 900px) {
  .offset, .service, .cv__item dd { margin-left: 0; max-width: none; }
  .service { max-width: none; }
  .cv__item { grid-template-columns: 1fr; gap: .6rem; }
  .split { grid-template-columns: 1fr; }
  .split--rev .split__media { order: -1; }
  /* About-Hero mobil: Foto oben-rechts sichtbar, Text unten im Frosted-Panel */
  .hero--about {
    align-items: flex-end;
    min-height: clamp(30rem, 84vh, 42rem);
    background-position: right top;
  }
  .hero--about::before {
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 40%, rgba(255,255,255,.55) 62%, rgba(255,255,255,.85) 100%);
  }
  .hero--about .hero__content {
    max-width: none;
    background: rgba(255,255,255,.82);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    padding: 1.4rem 1.25rem 1.5rem;
    border-radius: 0;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
  }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .cardgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .stats__grid { grid-template-columns: 1fr; gap: 2rem; }
  .service__items { grid-template-columns: 1fr; }
  .gallery__grid { grid-template-columns: 1fr; }
  .statcards, .steps, .cardgrid { grid-template-columns: 1fr; }
  .compare { font-size: .85rem; }
  .compare th, .compare td { padding: .75rem .6rem; }
  .topbar { justify-content: center; gap: 1.1rem; }
  .site-header__nav { gap: 1.1rem; }
}

/* ==== Tools- und Ratgeber-Übersicht: klickbare Karten ==== */
a.card--link { display: block; text-decoration: none; color: inherit; transition: transform .15s ease; }
a.card--link:hover { transform: translateY(-3px); }
.card__more { display: inline-block; margin-top: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
a.card--link:hover .card__more { text-decoration: underline; text-underline-offset: 3px; }
.card__cat { display: block; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin-bottom: .5rem; }
.card--link .card__title, .card--link .card__text, .card--soon .card__title, .card--soon .card__text { display: block; }
.card--soon { opacity: .6; }
.card__badge { display: inline-block; margin-top: 1.1rem; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); border: 1px solid var(--line); border-radius: 0; padding: .25rem .8rem; }

/* ==== Ratgeber-Artikel: Fließtext ==== */
.article__head { max-width: 44rem; }
/* Prominente Kontaktzeile (ersetzt Kontakt-CTA-Buttons) */
.contact-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; }
.btn--tel { white-space: nowrap; background: var(--fl-black); }
.btn--tel:hover { background: #000; }
/* Auf dunklen Baendern: WhatsApp bleibt gruen, Telefon invertiert weiss */

/* Zurück-Navigation (Detailseiten → Übersicht) */
.backlink { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 1.5rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; text-decoration: none; color: var(--muted); transition: color .12s ease, gap .12s ease; }
.backlink:hover { color: var(--fg); gap: .7rem; }
/* Artikel-Navigation (weiter / zurück zwischen Ratgeber-Beiträgen) */
.post-nav { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 3rem; max-width: 44rem; }
.post-nav__next { margin-left: auto; }
.article__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .85rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; margin: 1.75rem 0 0; }
.article__meta .article__cat { font-weight: 700; color: var(--fg); }
.prose { max-width: 44rem; }
.prose > * + * { margin-top: 1.3rem; }
.prose h2 { font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.15; font-weight: 500; text-transform: uppercase; letter-spacing: 0; margin-top: 2.5rem; }
.prose h3 { font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.2; font-weight: 500; margin-top: 2rem; }
.prose h4 { font-size: 1.15rem; font-weight: 500; margin-top: 1.75rem; }
.prose p, .prose li { color: var(--fg); }
.prose a { color: var(--fg); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { opacity: .6; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li + li { margin-top: .5rem; }
.prose li::marker { color: var(--muted); }
.prose strong { font-weight: 700; }
.prose blockquote { margin: 2rem 0; border-left: 3px solid var(--fg); padding: .25rem 0 .25rem 1.4rem; font-style: italic; font-size: clamp(1.1rem, 1.8vw, 1.3rem); }
.prose h2 + p, .prose h3 + p { margin-top: 1rem; }
.article__faq { max-width: 44rem; margin-top: 3.5rem; }
.article__faq h2 { font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.12; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; margin: 0; }
.article__author { display: flex; align-items: center; gap: 1rem; margin-top: 3rem; padding-top: 1.75rem; border-top: 1px solid var(--line); max-width: 44rem; color: var(--muted); font-size: .92rem; }
.article__author strong { color: var(--fg); display: block; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; margin-bottom: .1rem; }

/* ==== GEO-Readiness-Check (interaktives Tool) ==== */
.quiz { max-width: 44rem; }
.quiz__intro { color: var(--muted); margin: 0 0 2.5rem; }
.quiz__q { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 1.75rem 0; min-width: 0; }
.quiz__q:first-of-type { border-top: 0; padding-top: 0; }
.quiz__question { display: block; width: 100%; padding: 0; font-weight: 700; font-size: 1.05rem; margin: 0 0 1rem; }
.quiz__num { color: var(--muted); font-weight: 700; margin-right: .5rem; }
.quiz__options { display: flex; flex-wrap: wrap; gap: .6rem; }
.quiz__option { position: relative; }
.quiz__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.quiz__option span { display: inline-block; padding: .6rem 1.3rem; border: 1.5px solid var(--line); border-radius: 0; font-size: .9rem; font-weight: 600; cursor: pointer; transition: border-color .12s ease, background .12s ease; }
.quiz__option input:checked + span { background: var(--fg); color: #fff; border-color: var(--fg); }
.quiz__option input:focus-visible + span { outline: 2px solid var(--fg); outline-offset: 2px; }
.quiz__actions { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.quiz__hint { color: var(--muted); font-size: .85rem; }
.quiz__result { margin-top: 2.5rem; padding: 2rem; border: 2px solid var(--fg); border-radius: 0; }
.quiz__result[hidden] { display: none; }
.quiz__score { font-size: clamp(3rem, 9vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.quiz__score span { font-size: .4em; color: var(--muted); }
.quiz__grade { text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .95rem; margin: .75rem 0 0; }
.quiz__bar { height: 10px; border-radius: 0; background: var(--btn-2); margin: 1.5rem 0; overflow: hidden; }
.quiz__bar-fill { height: 100%; background: var(--fg); border-radius: 0; width: 0; transition: width .6s ease; }
.quiz__recos { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.quiz__recos li { position: relative; padding-left: 1.6rem; margin-top: .7rem; color: var(--fg); }
.quiz__recos li::before { content: "→"; position: absolute; left: 0; font-weight: 700; }
.quiz__noscript { color: var(--muted); font-size: .9rem; margin-top: 1.5rem; }

@media (max-width: 640px) {
  .quiz__result { padding: 1.4rem; }
  .quiz__option span { padding: .55rem 1rem; }
}

/* ==== Gemeinsame Tool-Bausteine (Rechner, Generator, Optimizer) ==== */
.tool { max-width: 44rem; }
.tool__intro { color: var(--muted); margin: 0 0 2.5rem; }
.tfields { display: grid; gap: 1.5rem; }
.tfield { display: flex; flex-direction: column; gap: .5rem; }
.tfield label { font-weight: 700; font-size: .95rem; }
.tfield .tfield__hint { font-weight: 400; color: var(--muted); font-size: .82rem; }
.tfield input, .tfield select, .tfield textarea {
  font: inherit; color: var(--fg); background: #fff;
  border: 1.5px solid var(--line); border-radius: 0; padding: .7rem .9rem; width: 100%;
}
.tfield textarea { resize: vertical; min-height: 3.2rem; line-height: 1.5; }
.tfield input:focus-visible, .tfield select:focus-visible, .tfield textarea:focus-visible {
  outline: 2px solid var(--fg); outline-offset: 2px; border-color: var(--fg);
}
.tfield__count { font-size: .82rem; color: var(--muted); }
.tool__actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* Ergebnisbox */
.tout { margin-top: 2.5rem; padding: 2rem; border: 2px solid var(--fg); border-radius: 0; }
.tout[hidden] { display: none; }
.tout__label { text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .8rem; color: var(--muted); margin: 0; }
.tout__big { font-size: clamp(2.4rem, 7vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; margin: .4rem 0 0; }
.tout__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 1.75rem; }
.tout__row .tout__label { margin-bottom: .3rem; }
.tout__sub { font-size: clamp(1.3rem, 3vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; }
.tout__note { color: var(--muted); font-size: .88rem; margin: 1.5rem 0 0; }

/* Google-SERP-Vorschau (bewusst farbig, simuliert echte Trefferdarstellung) */
.serp { margin-top: 1.5rem; padding: 1.25rem 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 0; font-family: Arial, sans-serif; }
.serp__crumb { font-size: .82rem; color: #4d5156; margin-bottom: .2rem; }
.serp__title { color: #1a0dab; font-size: 1.25rem; line-height: 1.3; margin: 0; font-weight: 400; }
.serp__desc { color: #4d5156; font-size: .92rem; line-height: 1.45; margin: .3rem 0 0; }

/* Längen-Ampel */
.gauge { height: 8px; border-radius: 0; background: var(--btn-2); margin: .5rem 0; overflow: hidden; }
.gauge__fill { height: 100%; width: 0; border-radius: 0; transition: width .25s ease, background .25s ease; }
.is-ok { background: #1a7f37; } .is-warn { background: #9a6700; } .is-bad { background: #b42318; }
.gauge-note { font-size: .82rem; }
.gauge-note.is-ok { color: #1a7f37; background: none; } .gauge-note.is-warn { color: #9a6700; background: none; } .gauge-note.is-bad { color: #b42318; background: none; }

/* Generierter Text + Kopieren */
.gen { margin-top: 2rem; }
.gen__box { white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88rem; line-height: 1.6; background: #f6f6f6; border: 1px solid var(--line); border-radius: 0; padding: 1.25rem 1.4rem; max-height: 30rem; overflow: auto; }
.gen[hidden] { display: none; }

@media (max-width: 640px) {
  .tout { padding: 1.4rem; }
  .tout__row { grid-template-columns: 1fr; gap: 1rem; }
}

/* ============================================================
   FIGHT LOUNGE — Design-Layer: Header / Menü / CTA / Footer
   Werte 1:1 aus dem Live-CSS (Gantry g5_hydrogen).
   ============================================================ */
:root { --fl-red: #dc001b; --fl-black: #111; --fl-dropdown: #020202; --fl-green: #008000; --fl-gray: #828488; }
body { font-family: "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; color: #222; }
h1, h2, h3, h4, h5, .h-xl, .h-lg, .hero__title, .eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; }

/* Header: roter Zierbalken + schwarz */
.site-header {
  border-top: 4px solid var(--fl-red);
  background: var(--fl-black); color: #fefefe;
  backdrop-filter: none; border-bottom: 0;
  padding: 0 clamp(1rem, 3vw, 2rem); gap: clamp(1rem, 2vw, 2rem);
}
.site-header__logo { padding: .4rem 0; }
.lgo { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 24px; font-weight: 500; text-transform: uppercase; color: #fff; letter-spacing: .02em; line-height: 1; }
.lgo span { color: var(--fl-red); }

/* Menü Toplevel */
.nav { gap: 0; }
.nav > .nav__item > a {
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  color: #fefefe; font-size: 1.1rem; padding: 1.2rem .938rem; letter-spacing: .02em;
}
.nav > .nav__item > a:hover { opacity: 1; background: var(--fl-dropdown); }
.nav > .nav__item > a[aria-current="page"] { background: #fff; color: #222; font-weight: 600; }
.nav__item--has-children > a::after { content: " ▾"; opacity: .7; }

/* Dropdowns */
.nav__sub {
  background: var(--fl-dropdown); border: 0; border-radius: 0; box-shadow: 0 12px 30px rgba(0,0,0,.4);
  min-width: 250px; padding: 0; text-align: left;
}
.nav__sub a {
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 400;
  color: #fefefe; font-size: .78rem; padding: .7815rem 1rem; letter-spacing: .02em; white-space: normal;
}
.nav__sub a:hover { background: #000; opacity: 1; }
.nav__sub .nav__item--has-children > a::after { content: "›"; float: right; border: 1px solid #202020; background: #070707; border-radius: 0; padding: 0 .35rem; margin-left: .5rem; }
.nav__sub .nav__sub { top: 0; }

.nav-toggle span { background: #fff; }

/* Sticky-Bereich (Header + CTA) verdeckt Anker-Sprungziele sonst */
[id] { scroll-margin-top: 120px; }

/* Grüner CTA-Balken (Probetraining WhatsApp) */
.cta-bar {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--fl-green); color: #fff; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .03em;
  font-size: .9rem; padding: .7rem 1rem; text-align: center;
}
.cta-bar:hover { color: #eee; }

/* Footer schwarz */
.site-footer { background: var(--fl-black); color: #fff; margin-top: 4rem; border-top: 0; padding: 3rem clamp(1.25rem, 5vw, 4rem) 2rem; }
.site-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7rem; max-width: 1100px; margin: 0 auto; }
.site-footer__standort h3 { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.6rem; font-weight: 300; text-transform: uppercase; color: var(--fl-gray); margin: 0 0 .6rem; }
.site-footer__addr, .site-footer__hours { font-size: .9rem; line-height: 1.7; color: #ddd; margin: 0 0 .9rem; }
.site-footer__addr a, .site-footer__hours a { color: #fff; }
/* Oeffnungszeiten als ruhige Zeilen: Tag links, Zeit rechts, feine Trennlinien */
.site-footer__zt { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 400; text-transform: uppercase; color: var(--fl-gray); font-size: 1rem; margin: 0 0 .15rem; }
.site-footer__zeiten { margin: 0; font-size: .86rem; line-height: 1.5; }
.site-footer__zeiten > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .38rem 0; border-bottom: 1px solid #262626; text-align: left; }
.site-footer__zeiten dt { color: #9a9a9a; white-space: nowrap; }
.site-footer__zeiten dd { margin: 0; color: #fff; text-align: right; white-space: nowrap; }
.site-footer .sep { color: var(--fl-red); }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center; margin: 2.5rem auto 1rem; border-top: 1px solid #2a2a2a; padding-top: 1.5rem; max-width: 1100px; }
.site-footer__nav a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .82rem; color: #fff; text-decoration: none; }
.site-footer__nav a:hover { color: var(--fl-red); }
.site-footer__copy { text-align: center; color: #9a9a9a; font-size: .8rem; margin: 0; }

/* Mobil */
@media (max-width: 900px) {
  .site-header { padding: 9px clamp(1rem, 3vw, 2rem); }
  .site-header__nav { background: var(--fl-black); border-bottom: 0; }
  .nav > .nav__item { border-bottom: 1px solid #2a2a2a; }
  .nav__sub { background: var(--fl-dropdown); }
  .site-footer__cols { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
}

/* --- Globales Shell-Layout: Content + Sidebar (alle Unterseiten) --- */
.shell { max-width: 1240px; margin: 0 auto; padding: 1.5rem clamp(1.25rem, 5vw, 4rem) 0;
  display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 2.5rem; align-items: start; }
.shell__main { min-width: 0; }
.shell__main > main { padding: 0; }
.shell__main .wrap { max-width: none; padding-left: 0; padding-right: 0; }
/* Innerhalb des Shells keine Marketing-Abstaende: Sections eng wie live */
.shell__main section { padding: 0 0 2.25rem; }
.shell__main .hero { background: none; padding: 0 0 1rem; }
/* Statische Seiten (page.njk): Inhaltsspalte wie live ohne Innen-Begrenzung */
.page .prose { max-width: none; }
.page .prose img { max-width: 100%; height: auto; }
/* Bilder mit KI-Hinweis (figure/figcaption, z. B. Berufsausbildung) */
.prose .bild-ki { margin: 0 0 1.2rem; }
.prose .bild-ki img { display: block; }
.prose .bild-ki .bild-ki__hinweis { margin-top: .35rem; font-size: .76rem; color: var(--muted); }
.shell .sidebar { position: sticky; top: 132px; }
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; gap: 1.8rem; }
  .shell .sidebar { position: static; }
}

/* --- Standort-Seiten (Titel, Foto, Akkordeon) --- */
.standort { padding: 0; }
.standort__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.4rem; }
.standort__photo { width: 100%; height: auto; display: block; margin-bottom: 1.2rem; }
.breadcrumb-line { margin: 1.2rem 0 0; font-size: .82rem; color: var(--muted); }
.breadcrumb-line a { color: var(--fl-red); text-decoration: none; }

/* Akkordeon */
.accordion__item { border: 0; margin: 0 0 .55rem; }
.accordion__head {
  list-style: none; cursor: pointer; background: #222; color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .02em;
  font-size: 1rem; padding: 1rem 1.2rem; position: relative;
}
.accordion__head::-webkit-details-marker { display: none; }
.accordion__head::after { content: "+"; position: absolute; right: 1.2rem; font-weight: 400; }
.accordion__item[open] > .accordion__head { background: var(--fl-red); }
.accordion__item[open] > .accordion__head::after { content: "–"; }
.accordion__body { padding: 1.4rem 1.2rem 1.8rem; }
.accordion__body img { max-width: 100%; height: auto; }

/* Gallery */
.gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.gallery__item { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gallery__item:hover img { transform: scale(1.06); }

/* Sidebar-Boxen */
.sidebar { display: flex; flex-direction: column; gap: 1.4rem; }
.sb-box { background: var(--fl-black); color: #fff; padding: 1.3rem; }
.sb-box--banner { padding: 0; display: block; }
.sb-box--banner img { width: 100%; height: auto; display: block; }
.sb-box__eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: #8ec73b; font-size: 1.05rem; margin: 0 0 .6rem; line-height: 1.2; }
.sb-box__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin: 0 0 .8rem; color: #fff; }
.sb-box__text { font-size: .9rem; color: #ccc; margin: 0 0 1rem; }
.sb-btn { display: block; text-align: center; text-decoration: none; padding: .7rem 1rem; margin: .5rem 0 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .85rem; }
.sb-btn--red { background: var(--fl-red); color: #fff; }
.sb-btn--red:hover { background: #b80017; }
.sb-btn--green { background: var(--fl-green); color: #fff; }
.sb-btn--green:hover { background: #016b01; }
.sb-social { list-style: none; margin: 0; padding: 0; }
.sb-social li { margin: .4rem 0; }
.sb-social a { color: #fff; text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .95rem; }
.sb-social a:hover { color: var(--fl-red); }

/* Standort-Tabs (fix, links) */
.locbar { position: fixed; left: 0; top: 50%; width: 47px; z-index: 40; display: flex; flex-direction: column; }
.locbar a { display: flex; align-items: center; justify-content: center; height: 40px; color: #fff; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .72rem; font-weight: 500; border-bottom: 2px solid #fff; }
.locbar a:hover { background: var(--fl-red) !important; }
.locbar__ha { background: #111; } .locbar__do { background: var(--fl-red); } .locbar a.locbar__bo { background: goldenrod; color: #111; } /* Kontrast: weiss auf Gold nur 2,2:1 */
.locbar a.locbar__bo:hover { color: #fff; }
/* <picture> fuer WebP-Varianten: fuer das Layout unsichtbar, Bildregeln greifen weiter am <img> */
picture { display: contents; }
picture > source { display: none; } /* sonst wird <source> in Grid-Containern zum leeren Rasterelement */
.locbar a.locbar__termine { background: #111; writing-mode: vertical-rl; text-orientation: upright; height: auto; padding: .6rem 0; letter-spacing: .1em; }

@media (max-width: 900px) {
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .locbar { display: none; }
}

/* --- Disziplin-Seiten --- */
.page-title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.2rem; }
.disziplin__header { width: 100%; height: auto; display: block; margin: 0 0 1.4rem; }
.disziplin__courses-title { margin: 2.4rem 0 1.2rem; }
.course-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.course-card { display: flex; flex-direction: column; background: #f4f4f4; text-decoration: none; color: var(--fg); overflow: hidden; transition: box-shadow .2s; }
.course-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.14); }
.course-card__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.course-card__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; padding: .9rem 1rem .3rem; }
.course-card__text { font-size: .88rem; color: var(--muted); padding: 0 1rem; line-height: 1.5; flex: 1; }
.course-card__more { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .78rem; color: var(--fl-red); padding: .8rem 1rem 1rem; }
.cta-strip { margin-top: 2.5rem; padding: clamp(2.5rem, 6vw, 4.25rem) 0; border-radius: 0; border-top: 4px solid #dc001b; }
.shell__main .cta-strip .wrap { padding-left: clamp(1.4rem, 3.5vw, 3rem); padding-right: clamp(1.4rem, 3.5vw, 3rem); }
.cta-strip--img { position: relative; overflow: hidden; background-size: cover; background-position: center; }
.cta-strip--img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(6,6,6,.94) 30%, rgba(6,6,6,.78) 60%, rgba(10,10,10,.5) 100%); }
.cta-strip--img .wrap { position: relative; z-index: 1; }
.cta-strip__title { margin: 0 0 .6rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600; font-size: clamp(1.7rem, 3.6vw, 2.6rem); line-height: 1.1; }
.cta-strip__accent { color: #ff2f45; }
.cta-strip__lead { margin: 0 0 1.4rem; color: #e2e2e2; max-width: 34rem; font-size: clamp(.98rem, 1.5vw, 1.1rem); }
.cta-strip__proof { margin: 1.1rem 0 0; font-size: .82rem; color: #cfcfcf; text-transform: uppercase; letter-spacing: .08em; }
.btn--gross { padding: 1.05rem 2rem; font-size: .85rem; }
.contact-cta .btn svg { flex-shrink: 0; }
@media (max-width: 620px) { .course-grid { grid-template-columns: 1fr; } }

/* --- Listing-Seiten (Coaches/Fighter) --- */
.listing__intro { color: var(--muted); font-size: 1.05rem; margin: 0 0 1.6rem; max-width: 46rem; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
/* Head Coaches zwei nebeneinander, Coaching Team drei nebeneinander */
.team-grid--gross { grid-template-columns: repeat(2, 1fr); }
.listing__h2:first-of-type { margin-top: 1.2rem; }
/* Fighter-Uebersicht: Kategorie-Zwischentitel und Meta-Zeile (Gewicht/Nationalitaet) */
.listing__h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  font-size: clamp(1.3rem, 2.6vw, 1.8rem); margin: 2.4rem 0 1rem;
  padding-left: .8rem; border-left: 4px solid var(--fl-red); }
.team-card__meta { font-size: .78rem; color: #9a9a9a; padding: .1rem .8rem .85rem; }
.team-card { display: flex; flex-direction: column; text-decoration: none; color: var(--fg); background: #111; overflow: hidden; }
.team-card__photo { display: block; aspect-ratio: 3 / 4; background: #000; overflow: hidden; }
.team-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s, opacity .3s; opacity: .92; }
.team-card:hover .team-card__photo img { transform: scale(1.05); opacity: 1; }
.team-card__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .95rem; color: #fff; padding: .7rem .8rem .1rem; }
.team-card__role { font-size: .78rem; color: var(--fl-red); padding: 0 .8rem .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; }
.team-card__ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#1c1c1c,#333); }

/* --- Coach-Profil --- */
.coach__head { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; align-items: start; margin-top: 1rem; }
.coach__photo img { width: 100%; height: auto; display: block; }
.coach__role { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; color: var(--fl-red); font-weight: 500; margin: 0 0 .2rem; }
.coach__body ul { padding-left: 1.1rem; }
.coach__body li { margin: .25rem 0; }
@media (max-width: 700px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .coach__head { grid-template-columns: 1fr; gap: 1.2rem; }
  .coach__photo { max-width: 260px; }
}

/* ---- Startseite (mobile first) ---- */
/* Hero: Inhalt auf solidem Grund (Kontrast garantiert), Bild rein dekorativ.
   Mobil: Bildband oben, Text darunter auf #0a0a0a. Desktop: Bild rechts mit
   diagonalem Schnitt + Scrim nach links ins Solide. */
.hm-hero { position: relative; background: #0a0a0a; color: #fff; overflow: hidden; border-bottom: 4px solid #dc001b; padding: 0; }
.hm-hero__media { position: relative; }
.hm-hero__media img { width: 100%; height: clamp(220px, 56vw, 340px); object-fit: cover; object-position: center 30%; display: block; }
.hm-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.05) 40%, rgba(10,10,10,.65) 80%, #0a0a0a 100%); }
.hm-hero .wrap { position: relative; z-index: 1; }
.hm-hero__inner { max-width: 44rem; padding: 1.6rem 0 2.9rem; }
.hm-hero__loc { margin: 0 0 .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .22em; font-size: .8rem; color: #ff2f45; }
.hm-hero h1 { margin: 0 0 1rem; font-size: clamp(2.2rem, 9vw, 4.2rem); font-weight: 600; line-height: 1.02; }
.hm-hero__accent { display: inline-block; background: #dc001b; color: #fff; padding: .05em .22em .08em; margin-top: .12em; }
.hm-hero__lead { margin: 0 0 1.6rem; font-size: clamp(1rem, 2vw, 1.2rem); color: #e6e6e6; max-width: 36rem; }
.hm-hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; }
.hm-proof { display: flex; flex-wrap: wrap; gap: .45rem 1.6rem; margin: 1.9rem 0 0; padding: 0; list-style: none; font-size: .9rem; color: #e6e6e6; }
.hm-check { color: #4fd865; margin-right: .45rem; font-weight: 700; }
@media (min-width: 1000px) {
  .hm-hero { min-height: 34rem; display: flex; align-items: center; }
  .hm-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 62%; }
  .hm-hero__media img { width: 100%; height: 100%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
  .hm-hero__media::after { background: linear-gradient(90deg, #0a0a0a 8%, rgba(10,10,10,.72) 34%, rgba(10,10,10,.18) 62%, rgba(10,10,10,.05) 100%); }
  .hm-hero .wrap { width: 100%; }
  .hm-hero__inner { max-width: 40rem; padding: 5.5rem 0; }
}

/* Angebots-Band: verkaufsoptimiert (Nutzenliste links, Standort-CTAs rechts) */
.hm-offer { background: linear-gradient(135deg, #e30019 0%, #ad0014 100%); color: #fff;
  padding: clamp(2.6rem, 6vw, 4.2rem) 0; }
.hm-offer__grid { display: grid; gap: 2rem; }
.hm-offer__eyebrow { margin: 0 0 .4rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: #ffc2c9; }
.hm-offer h2 { margin: 0 0 1.2rem; font-size: clamp(1.8rem, 4.6vw, 2.7rem); font-weight: 700; line-height: 1.08; }
.hm-offer__marker { background: #fff; color: var(--fl-red); padding: 0 .22em; }
.hm-offer__vorteile { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .5rem;
  font-size: .96rem; }
.hm-offer__vorteile .hm-check { color: #fff; background: rgba(255, 255, 255, .22); border-radius: 0;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.3rem; height: 1.3rem; font-size: .75rem; margin-right: .55rem; }
.hm-offer__hint { margin: 0; color: #ffd0d6; font-size: .88rem; }
.hm-offer__btns { display: grid; gap: .8rem; align-content: center; }
.hm-offer__cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #fff; color: var(--fl-black); text-decoration: none; padding: 1rem 1.3rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .22); transition: transform .15s ease, box-shadow .15s ease; }
.hm-offer__cta:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 0, 0, .3); }
.hm-offer__ort { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600; font-size: 1.1rem;
  text-transform: uppercase; letter-spacing: .02em; }
.hm-offer__aktion { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .74rem;
  letter-spacing: .06em; text-transform: uppercase; color: var(--fl-red); white-space: nowrap; }
.hm-offer__aktion::after { content: "→"; display: inline-block; margin-left: .4em; transition: transform .15s ease; }
.hm-offer__cta:hover .hm-offer__aktion::after { transform: translateX(4px); }
@media (min-width: 1000px) {
  .hm-offer__grid { grid-template-columns: 1.1fr .9fr; gap: 3.5rem; align-items: center; }
}

.hm-sec { padding: clamp(2.75rem, 7vw, 5rem) 0; }
.hm-sec--tint { background: #f4f4f4; }
.hm-h2 { margin: 0 0 .6rem; font-size: clamp(1.5rem, 4.5vw, 2.25rem); font-weight: 500; }
.hm-sub { margin: 0 0 1.6rem; color: var(--muted); max-width: 38rem; }
.hm-more { margin: 1.4rem 0 0; }
.hm-more a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; color: var(--fg); border-bottom: 2px solid #dc001b; padding-bottom: .15rem; }

.hm-dgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
.hm-dcard { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 0; background: #111; }
.hm-dcard img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease, opacity .25s ease; }
.hm-dcard:hover img { transform: scale(1.06); opacity: .85; }
.hm-dcard span { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem .7rem .55rem; background: linear-gradient(transparent, rgba(0,0,0,.88)); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .92rem; letter-spacing: .04em; }

.hm-lounges { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.hm-lcard { display: block; background: #fff; border-left: 4px solid #dc001b; padding: 1.1rem 1.2rem; text-decoration: none; border-radius: 0; box-shadow: 0 1px 3px rgba(0,0,0,.07); transition: transform .15s ease; }
.hm-lcard:hover { transform: translateY(-2px); }
.hm-lcard__title { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); margin-bottom: .25rem; }
.hm-lcard__text { display: block; color: var(--muted); font-size: .92rem; line-height: 1.45; }

.hm-why { background: #111; color: #fff; padding: clamp(2.75rem, 7vw, 5rem) 0; }
.hm-why__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
.hm-why__img { width: 100%; height: auto; border-radius: 0; }
/* Grafiken (PNG mit Text) nicht ueber Originalgroesse skalieren, sonst unscharf */
.hm-why__img--gfx { width: 461px; max-width: min(100%, 461px); margin: 0 auto; display: block; border-radius: 0; }
.hm-why p { color: #d8d8d8; max-width: 38rem; }
.hm-why a.btn { margin-top: 1.4rem; }
.hm-checklist { margin: 1.2rem 0 0; padding: 0; list-style: none; }
.hm-checklist li { margin-bottom: .6rem; color: #e6e6e6; }
/* Laengere Listen (Hybrid-Fitness-Bausteine): gleichmaessiger Rhythmus,
   haengender Einzug hinter dem Haken, auf breiten Viewports zweispaltig */
.hm-checklist--zweispaltig li { display: flex; align-items: baseline; gap: .55rem;
  margin: 0; padding: .38rem 0; line-height: 1.45; }
.hm-checklist--zweispaltig .hm-check { flex: none; margin-right: 0; }
@media (min-width: 700px) {
  .hm-checklist--zweispaltig { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.2rem; }
}
.hm-checklist a { color: #fff; }

.hm-locgrid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.hm-loccard { display: block; text-decoration: none; background: #fff; border-radius: 0; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.09); transition: transform .15s ease; }
.hm-loccard:hover { transform: translateY(-2px); }
.hm-loccard img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.hm-loccard__body { display: block; padding: 1rem 1.1rem 1.15rem; }
.hm-loccard__title { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; color: var(--fg); }
.hm-loccard__text { display: block; color: var(--muted); font-size: .9rem; margin: .3rem 0 .55rem; }
.hm-loccard__more { display: block; color: #dc001b; font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }

.hm-cta { background: #111; color: #fff; padding: clamp(2.75rem, 7vw, 5rem) 0; text-align: center; }
.hm-cta h2 { margin: 0 0 .6rem; font-size: clamp(1.6rem, 5vw, 2.4rem); font-weight: 500; }
.hm-cta p { color: #d8d8d8; max-width: 34rem; margin: 0 auto 1.5rem; }
/* Doppelte Klasse noetig: .hm-cta p (margin-Shorthand) wuerde margin-top sonst ueberstimmen */
.hm-cta p.hm-cta__tel { margin-top: 2.4rem; font-size: .95rem; }
/* Auf Smartphones uebernimmt der Telefon-Button im Buchungs-Block */
@media (max-width: 699px) {
  .hm-cta p.hm-cta__tel { display: none; }
}
.hm-cta__tel a { color: #fff; white-space: nowrap; }
/* Vollbreites Team-Band vor dem Footer (Startseite) */
.hm-teamband { background: #0a0a0a; line-height: 0; }
/* Bild immer vollstaendig sichtbar: volle Breite, Hoehe skaliert proportional mit (kein Beschnitt) */
.hm-teamband img { width: 100%; height: auto; }
/* Band schliesst buendig an den Footer an (kein weisser Zwischenraum) */
.home + .site-footer { margin-top: 0; }

/* MMA im Fokus: doppelt grosse Karte an Position 1 des Disziplinen-Grids */
.hm-dcard--gross { grid-column: span 2; }
.hm-dcard--gross .hm-dcard__badge { position: absolute; top: .7rem; left: .7rem; right: auto; bottom: auto; z-index: 1;
  background: var(--fl-red); color: #fff; padding: .28rem .65rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem;
  letter-spacing: .1em; text-transform: uppercase; }
.hm-dcard--gross .hm-dcard__inhalt { position: absolute; left: 0; right: 0; bottom: 0;
  padding: 2.4rem .9rem .85rem; background: linear-gradient(transparent, rgba(0, 0, 0, .92)); }
.hm-dcard--gross .hm-dcard__titel { position: static; display: block; background: none; padding: 0;
  color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600;
  font-size: 1.5rem; letter-spacing: .04em; }
.hm-dcard--gross .hm-dcard__sub { position: static; display: block; background: none; padding: .2rem 0 0;
  color: #d6d6d6; font-family: var(--font); text-transform: none; letter-spacing: 0;
  font-size: .85rem; line-height: 1.45; }
.hm-dcard--gross .hm-dcard__cta { position: static; display: inline-block; background: var(--fl-red);
  margin-top: .7rem; padding: .45rem .9rem; color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .06em; text-transform: uppercase; transition: background .15s; }
.hm-dcard--gross:hover .hm-dcard__cta { background: #a00014; }
/* Abschlusskachel: alle Kampfsportarten */
.hm-dcard--mehr { display: flex; align-items: center; justify-content: center; text-align: center;
  aspect-ratio: 16 / 10; padding: .6rem; background: #111; color: #fff; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  font-size: .92rem; letter-spacing: .05em; transition: background .15s; }
.hm-dcard--mehr:hover { background: var(--fl-red); }
@media (min-width: 700px) {
  .hm-dgrid { grid-template-columns: repeat(3, 1fr); gap: .9rem; }
  /* ab 3 Spalten zusaetzlich doppelt hoch; Hoehe kommt aus den Nachbarzeilen */
  .hm-dcard--gross { grid-row: span 2; aspect-ratio: auto; height: 100%; }
  .hm-lounges { grid-template-columns: repeat(2, 1fr); }
  .hm-locgrid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1000px) {
  .hm-dgrid { grid-template-columns: repeat(4, 1fr); }
  .hm-why__grid { grid-template-columns: 1.15fr .85fr; gap: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
}

/* ---- Interaktiver Kursplan (kp-) ---- */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.kp-seite .backlink { margin-top: .5rem; }
.kp, .kp-ort, .kp-tag, .kp-beschreibungen { padding-top: 0; padding-bottom: 0; }
.kp-sub { color: var(--muted); margin: 0 0 1.4rem; }
.kp-meta { font-size: .82rem; color: var(--muted); margin: 0 0 1rem; }

.kp-filter { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; margin: 0 0 1.1rem; }
.kp-filter label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; display: flex; flex-direction: column; gap: .3rem; }
.kp-filter select { font: inherit; padding: .45rem .6rem; border: 1.5px solid var(--fg); border-radius: 0; background: #fff; min-width: 12rem; }
.kp-filter__reset { align-self: flex-end; padding: .5rem 1rem; background: transparent;
  border: 1px solid #bbb; border-radius: 0; cursor: pointer;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .05em; text-transform: uppercase; color: var(--fg);
  transition: border-color .15s, background .15s; }
.kp-filter__reset:hover { border-color: var(--fg); background: #f3f3f3; }

/* Tages-Navigation als Pills (aktiver Tag = CI-Rot) */
.kp-tage ul { list-style: none; margin: 0 0 1.1rem; padding: .2rem 0; display: flex; gap: .4rem; overflow-x: auto; }
.kp-tage a { display: flex; align-items: center; justify-content: center; min-width: 3rem;
  padding: .5rem .95rem; border-radius: 0; background: #efefef; color: var(--fg);
  text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  transition: background .12s, color .12s; }
.kp-tage a:hover { background: #dedede; }
.kp-tage a.is-active, .kp-tage a[aria-current] { background: #dc001b; color: #fff; }

/* Projektregel: border-radius immer 0; Inhalte nie an den Rahmen kleben lassen
   (immer Padding zwischen Border und Inhalt).
   section.kp-tag: gleiche Spezifitaet wie ".shell__main section" (setzt Padding 0),
   gewinnt durch spaetere Position im Stylesheet -> Padding bleibt erhalten. */
section.kp-tag { background: #fff; border: 1px solid var(--line); border-radius: 0;
  padding: 1.3rem 1.4rem 1.4rem; margin: 0 0 1rem; box-shadow: 0 4px 16px rgba(0, 0, 0, .05); }
.kp-tag__name { display: flex; align-items: center; gap: .6rem; margin: 0 0 .7rem;
  font-size: 1.15rem; font-weight: 500; }
.kp-tag__anzahl { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem;
  letter-spacing: .06em; color: #fff; background: var(--fl-black);
  border-radius: 0; padding: .2rem .65rem; }
.kp-zu { margin: 0; color: var(--muted); }
.kp-leer { margin: 0; color: var(--muted); font-size: .92rem; }

.kp-kurse { list-style: none; margin: 0; padding: 0; }
.kp-kurs { display: grid; grid-template-columns: auto 1fr; gap: .15rem 1rem;
  padding: .6rem .6rem .6rem .8rem; border-left: 3px solid #d9d9d9;
  border-bottom: 1px solid var(--line); transition: background .12s; }
.kp-kurs:hover { background: #f7f7f7; }
.kp-kurs:last-child { border-bottom: 0; }
.kp-zeit { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; font-size: .95rem; }
.kp-zeit span[aria-hidden] { color: #b5b5b5; padding: 0 .12rem; }
.kp-name { overflow-wrap: anywhere; align-self: center; }
.kp-name a { color: var(--fg); text-decoration: none; font-weight: 600; }
.kp-name a:hover { color: #dc001b; }
/* Badges direkt hinter dem Kursnamen in derselben Zeile */
.kp-badges { display: inline-flex; flex-wrap: wrap; gap: .35rem; margin-left: .45rem; vertical-align: middle; }
.kp-badge, .kp-matte { font-size: .66rem; font-weight: 700; letter-spacing: .05em; padding: .14rem .55rem; border-radius: 0; }
.kp-badge { color: #555; border: 1px solid #bbb; background: #fff; }
.kp-matte { color: #444; border: 1px solid #999; background: #fff; }
/* Zeitraum-Zeilen (z. B. Fitnessbereich geoeffnet): ruhige graue Infoleiste */
.kp-kurs--zeitraum { color: var(--muted); background: #f5f5f5; border-left-color: transparent;
  border-bottom: 0; border-radius: 0; margin-bottom: .4rem; }
.kp-kurs--zeitraum:hover { background: #f5f5f5; }
.kp-kurs--zeitraum .kp-zeit { font-weight: 400; }
/* Filter aktiv: Nicht-Treffer stark dimmen, Treffer bleiben kraeftig (kursplan.js) */
.kp-kurs--raus { opacity: .22; filter: grayscale(1); }
.kp-kurs--raus:hover { background: transparent; }
/* Farbcodierung nach Disziplin (linke Kante) */
.kp-kurs[data-disziplin$="/mixed-martial-arts"] { border-left-color: #dc001b; }
.kp-kurs[data-disziplin$="/thai-boxen"] { border-left-color: #e07a00; }
.kp-kurs[data-disziplin$="/luta-livre"] { border-left-color: #0e7bbf; }
.kp-kurs[data-disziplin$="/boxen"] { border-left-color: #7a4dd8; }
.kp-kurs[data-disziplin$="/krav-maga"] { border-left-color: #3d3d3d; }
.kp-kurs[data-disziplin$="lil-dragon-lounge"] { border-left-color: #e6a700; }
.kp-kurs[data-disziplin$="thai-boxen-teenager-jugend-10-18-jahre"] { border-left-color: #0a9b60; }
.kp-kurs[data-disziplin$="ladies-lounge"] { border-left-color: #c2447f; }

/* Status (per JS) */
.kp-status { margin-left: .5rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.kp-kurs.is-now { border-left-color: #dc001b; background: #fdecee; }
.kp-kurs.is-now .kp-status { color: #b40016; }
.kp-kurs.is-soon { border-left-color: #008000; }
.kp-kurs.is-soon .kp-status { color: #006b00; }
.kp-kurs.is-past:not(.kp-kurs--zeitraum) { color: #595959; }
.kp-kurs.is-past:not(.kp-kurs--zeitraum) .kp-name a { color: #595959; }

.kp-legende { margin: .4rem 0 0; font-size: .85rem; color: var(--muted); }
.kp-legende summary { cursor: pointer; font-weight: 700; }
.kp-legende ul { margin: .5rem 0 0; padding-left: 1.2rem; }

.kp-intro { margin-top: 2rem; }
.kp-info { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin: 2rem 0 0; padding: 1.4rem; background: #f4f4f4; border-radius: 0; }
.kp-info__h { margin: 0 0 .6rem; font-size: 1.05rem; font-weight: 500; }
.kp-info__liste { list-style: none; margin: 0; padding: 0; }
.kp-info__liste li { margin-bottom: .25rem; }
.kp-downloads { margin: 1.6rem 0 0; }
.kp-downloads ul { padding-left: 1.2rem; }

.kp-standorte ul { list-style: none; margin: 0 0 1.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kp-standorte a { display: block; padding: .7rem 1.4rem; border: 1.5px solid var(--fg); border-radius: 0; text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); }
.kp-standorte a.is-active, .kp-standorte a[aria-current] { background: #dc001b; border-color: #dc001b; color: #fff; }
.kp-ort { margin: 0 0 2.5rem; }
.kp-ort__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.3rem, 2.6vw, 1.8rem); margin: 0 0 .8rem; }
.kp-ort__mehr { margin: .4rem 0 0; }
.kp-beschreibungen { margin-top: 2.5rem; }
.kp-beschreibungen h2 { font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 500; margin: 0 0 1rem; }

/* Tages-Ansicht auf allen Breiten; Inhaltsbreite fuer Lesbarkeit begrenzen */
.kp { max-width: 46rem; }
@media (min-width: 1000px) {
  .kp-tage a { padding: .65rem 1.15rem; font-size: 1.02rem; }
  .kp-info { grid-template-columns: 1fr 1fr; }
}

/* Kurs-Akkordeon auf der Kursplan-Uebersicht */
.kp-akkordeon { max-width: 46rem; }
.kp-akk { margin: 0 0 .5rem; border-radius: 0; overflow: hidden; }
.kp-akk summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1.1rem; background: #222; color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .03em; }
.kp-akk summary::-webkit-details-marker { display: none; }
.kp-akk summary::after { content: "+"; font-size: 1.25rem; line-height: 1; flex-shrink: 0; }
.kp-akk[open] summary { background: #dc001b; }
.kp-akk[open] summary::after { content: "\00d7"; }
.kp-akk summary:hover { background: #000; }
.kp-akk[open] summary:hover { background: #b40016; }
.kp-akk__body { border: 1px solid var(--line); border-top: 0; border-radius: 0; padding: .9rem 1.1rem; background: #fff; }
.kp-akk__body p { margin: 0 0 .8rem; }
.kp-akk__body p:last-child { margin-bottom: 0; }
.kp-akk__body a { color: var(--fg); font-weight: 700; }

/* Disziplinen-Kacheln innerhalb des Shell-Layouts (schmalere Spalte) */
.shell__main .hm-dgrid { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1000px) { .shell__main .hm-dgrid { grid-template-columns: repeat(3, 1fr); } }

/* Termin-Liste (Seminare-Seite) */
.termine { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.termine li { display: flex; gap: 1.1rem; align-items: baseline; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.termine__datum { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; color: #dc001b; white-space: nowrap; min-width: 6.4rem; }
/* Zustände via assets/js/termine.js: abgelaufen gedämpft, nächster Termin grün */
.termine li.termine--vorbei { opacity: .45; }
.termine li.termine--vorbei .termine__datum { color: var(--muted); }
.termine li.termine--naechster { background: rgba(0, 128, 0, .08); border-left: 4px solid var(--fl-green); padding-left: .8rem; padding-right: .5rem; }
.termine li.termine--naechster .termine__datum { color: var(--fl-green); }
.termine__badge { display: inline-block; margin-left: .6rem; padding: .1rem .5rem; vertical-align: middle;
  background: var(--fl-green); color: #fff; border-radius: 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.termine__was strong { display: block; }
.termine__wo { color: var(--muted); font-size: .92rem; }

/* Anmeldung/Beitraege (Conversion-Seite) */
.anm-lead { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
.anm-vorteile { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.anm-vorteile li { margin-bottom: .45rem; }
.anm-vorteile .hm-check { color: #0a7d22; }
.anm-card { display: flex; flex-direction: column; }
.anm-card .hm-loccard__body { display: flex; flex-direction: column; flex: 1; }
.anm-card .anm-btn { margin-top: auto; width: 100%; justify-content: center; }
.anm-card .hm-loccard__text { margin-bottom: 1rem; }
.prose a.btn, .prose .hm-loccard a.btn { text-decoration: none; color: #fff; }
.prose a.btn--secondary { color: var(--fg); }
.anm-grid { margin: 1rem 0 1.75rem; }
.anm-sekundaer { display: flex; flex-wrap: wrap; gap: .7rem; }

/* --- Kontaktseite: Standortkarten --- */
.kontakt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; margin-top: .5rem; }
.kontakt-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.2rem 1.2rem 1.1rem; }
.kontakt-card__eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 0 0 .15rem; }
.kontakt-card__titel { font-size: 1.3rem; font-weight: 500; margin: 0 0 .7rem; }
.kontakt-card__titel a { color: inherit; text-decoration: none; }
.kontakt-card__titel a:hover { color: var(--fl-red); }
.kontakt-card__adresse { margin: 0 0 .55rem; font-size: .9rem; line-height: 1.55; }
.kontakt-card__tel { margin: 0 0 1rem; }
.kontakt-card__tel a { display: inline-flex; align-items: center; gap: .45rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1rem; color: var(--fl-red); text-decoration: none; }
.kontakt-card__tel a:hover { color: #a00014; }
.kontakt-card__zwt { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0 0 .3rem; }
.kontakt-card__zeiten { list-style: none; margin: 0 0 1.2rem; padding: 0; font-size: .84rem; }
.kontakt-card__zeiten li { padding: .35rem 0; border-top: 1px solid var(--line); }
.kontakt-card__zeiten .tage { display: block; font-weight: 700; }
.kontakt-card__zeiten .zeit { color: var(--muted); }
/* Aktionsleiste: beide Buttons immer gleich hoch und gleich breit */
.kontakt-card__aktionen { margin-top: auto; display: flex; gap: .6rem; align-items: stretch; }
.kontakt-card__aktionen .ka { flex: 1; display: inline-flex; align-items: center; justify-content: center; text-align: center; padding: .6rem .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; }
/* a-Element im Selektor: haelt die Spezifitaet ueber .prose a (Textfarbe/Underline/Hover-Opacity),
   sonst werden die Buttons im prose-Kontext schwarz auf rot (Kontrast, Barrierefreiheit) */
a.ka--kursplan { background: var(--fl-red); color: #fff; text-decoration: none; }
a.ka--kursplan:hover { background: #a00014; opacity: 1; }
a.ka--route { border: 1px solid var(--fl-black); color: var(--fl-black); text-decoration: none; }
a.ka--route:hover { background: var(--fl-black); color: #fff; opacity: 1; }

/* --- Kontaktseite: kompaktes CTA-Panel (statt vollbreitem Marketing-Band) --- */
.kontakt-cta { background: var(--fl-black); color: #fff; border-top: 4px solid var(--fl-green); padding: clamp(1.5rem, 4vw, 2.4rem); }
.kontakt-cta__titel { font-size: clamp(1.25rem, 2.4vw, 1.7rem); font-weight: 500; letter-spacing: .02em; margin: 0 0 .6rem; }
.kontakt-cta__text { color: #c9c9c9; line-height: 1.6; margin: 0 0 1.4rem; max-width: 40rem; }
.kontakt-cta .btn--tel { background: transparent; border: 1px solid #4a4a4a; }
.kontakt-cta .btn--tel:hover { background: #fff; color: var(--fl-black); }
/* Kontakt-Buttons überall: gleiche Höhe, sauber zentriert (Flex-Absicherung) */
.contact-cta { align-items: stretch; }
.contact-cta .btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
@media (max-width: 560px) {
  .kontakt-cta .contact-cta { flex-direction: column; }
  .kontakt-cta .contact-cta .btn { width: 100%; }
}

/* --- Consent-Manager (Opt-in mit Einzeldienst-Auswahl, assets/js/consent.js) ---
   Klassen werden vom Skript erzeugt; dieser Block ist das projektspezifische Theming.
   Bottom-Sheet im CI: abdunkelnder Hintergrund, schwarze Karte mit rotem Balken. */
.consent { position: fixed; inset: 0; z-index: 60;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 1rem clamp(.8rem, 2vw, 1.5rem) clamp(.8rem, 2vw, 1.5rem);
  background: rgba(5, 5, 5, .55); backdrop-filter: blur(3px);
  animation: consent-blende .25s ease-out; }
.consent__box { width: 100%; max-width: 34rem;
  background: var(--fl-black); color: #fff; border-top: 4px solid var(--fl-red);
  padding: clamp(1.2rem, 3vw, 1.7rem) clamp(1.1rem, 3vw, 1.8rem) clamp(1.1rem, 3vw, 1.5rem);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
  animation: consent-rein .32s cubic-bezier(.2, .8, .3, 1); }
.consent__titel { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  text-transform: uppercase; letter-spacing: .04em; font-size: 1.25rem; line-height: 1.15; }
.consent__text { margin: 0 0 .55rem; font-size: .86rem; line-height: 1.6; color: #cfcfcf; }
.consent__rechtslinks { margin: 0 0 1.1rem; font-size: .78rem; color: #9a9a9a; }
.consent__rechtslinks a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.consent__rechtslinks a:hover { color: var(--fl-red); }
/* Diensteliste (Einstellungs-Ansicht) mit Schaltern statt Checkboxen */
.consent__dienste { margin: 0 0 1.2rem; max-height: 42vh; overflow-y: auto;
  border-top: 1px solid #262626; scrollbar-width: thin; scrollbar-color: #444 transparent; }
.consent__dienst { display: flex; gap: .9rem; align-items: flex-start; cursor: pointer;
  padding: .8rem .2rem; border-bottom: 1px solid #262626; transition: background .15s; }
.consent__dienst:hover { background: #161616; }
.consent__dienst--pflicht, .consent__dienst--pflicht input { cursor: default; }
.consent__dienst input { appearance: none; -webkit-appearance: none; flex: none;
  width: 2.5rem; height: 1.35rem; margin: .15rem 0 0; border-radius: 0;
  background: #3c3c3c; position: relative; cursor: pointer; transition: background .18s; }
.consent__dienst input::before { content: ""; position: absolute; top: 3px; left: 3px;
  width: calc(1.35rem - 6px); height: calc(1.35rem - 6px); border-radius: 0;
  background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); transition: transform .18s; }
.consent__dienst input:checked { background: var(--fl-green); }
.consent__dienst input:checked::before { transform: translateX(1.15rem); }
.consent__dienst input:disabled { opacity: .55; }
.consent__dienst input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.consent__dienst-text { font-size: .82rem; line-height: 1.5; }
.consent__dienst-text strong { display: block; font-weight: 700; letter-spacing: .01em; }
.consent__dienst-text span { color: #a8a8a8; }
/* Buttons gleichrangig und gleich hoch (DSGVO + Button-Regel) */
.consent__aktionen { display: flex; flex-wrap: wrap; align-items: stretch; gap: .6rem; }
.consent__btn { display: inline-flex; align-items: center; justify-content: center;
  flex: 1 1 auto; min-height: 2.9rem; padding: .6rem 1.2rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .82rem; letter-spacing: .05em; text-transform: uppercase;
  border: 1px solid transparent; border-radius: 0; cursor: pointer;
  transition: background .15s, color .15s; }
.consent__btn--gruen { background: var(--fl-green); color: #fff; }
.consent__btn--gruen:hover { background: #016b01; }
.consent__btn--voll { background: #fff; color: var(--fl-black); }
.consent__btn--voll:hover { background: #dcdcdc; }
.consent__btn--leise { background: transparent; color: #fff; border-color: #4a4a4a; }
.consent__btn--leise:hover { border-color: #fff; }
/* Schliessen-Kreuz (nur wenn bereits eine Entscheidung vorliegt) */
.consent__box { position: relative; }
.consent__schliessen { position: absolute; top: .55rem; right: .6rem;
  width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 0; border-radius: 0; color: #9a9a9a;
  font-size: 1rem; line-height: 1; cursor: pointer; }
.consent__schliessen:hover { color: #fff; }
/* Dauerhafter Wiederaufruf-Badge unten links (wie der Revoke-Reiter der Altseite) */
.consent-badge { position: fixed; left: 0; bottom: 0; z-index: 55;
  background: var(--fl-black); color: #cfcfcf; border: 1px solid #333; border-left: 0; border-bottom: 0;
  padding: .4rem .8rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
  cursor: pointer; opacity: .82; transition: opacity .15s, color .15s; }
.consent-badge:hover { opacity: 1; color: #fff; }
@keyframes consent-blende { from { opacity: 0; } }
@keyframes consent-rein { from { opacity: 0; transform: translateY(22px); } }
@media (max-width: 560px) {
  .consent { padding: 0; align-items: flex-end; }
  .consent__box { max-width: none; }
  .consent__aktionen { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .consent, .consent__box { animation: none; }
}

/* --- Buchungs-Block: Haupt-Duo (WhatsApp + 14 Tage) gross, Nebenreihe leise --- */
.buchen-block { display: grid; gap: .8rem; max-width: 42rem; margin: 0 auto 1.4rem; }
.bb-haupt { display: grid; gap: .8rem; }
.bb-card { display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .35rem; text-align: center; padding: 1.4rem 1.2rem; text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s; }
.bb-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0, 0, 0, .35); }
.bb-card__titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600; font-size: 1.1rem;
  letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; }
.bb-card__sub { font-size: .82rem; line-height: 1.45; max-width: 22rem; }
.bb-card--wa { background: var(--fl-green); color: #fff; }
.bb-card--wa:hover { background: #016b01; }
.bb-card--wa .bb-card__sub { color: #eef8ee; }
.bb-card--abo { background: #fff; color: var(--fl-black); }
.bb-card--abo .bb-card__titel { color: var(--fl-red); }
.bb-card--abo .bb-card__sub { color: #555; }
/* Nebenreihe: gleich hohe, leise Optionen */
.bb-neben { display: flex; flex-wrap: wrap; gap: .6rem; align-items: stretch; }
.bb-btn { flex: 1 1 0; display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 2.9rem; padding: .6rem .9rem; text-decoration: none;
  background: transparent; color: #cfcfcf; border: 1px solid #4a4a4a;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .05em; text-transform: uppercase; transition: border-color .15s, color .15s; }
.bb-btn:hover { border-color: #fff; color: #fff; }
.bb-btn--video::before { content: "▶"; margin-right: .5rem; font-size: .7em; }
/* Telefon-Button nur auf Smartphones: dort waehlt tel: wirklich; auf Desktop/Tablet
   uebernehmen die ausgeschriebenen Standortnummern darunter */
.bb-btn--tel { display: none; }
@media (max-width: 699px) {
  .bb-btn--tel { display: flex; }
}
@media (min-width: 700px) {
  .bb-haupt { grid-template-columns: 1fr 1fr; }
}
/* Auf der hellen Kontaktseite steht der Block im dunklen Panel -> passt unveraendert */

/* --- Video-Opt-in (Zwei-Klick-Loesung, assets/js/video-optin.js) --- */
.video-optin { margin: 1.2rem 0; max-width: 860px; }
.video-optin__media { position: relative; display: block; cursor: pointer; }
.video-optin__media img { display: block; width: 100%; height: auto; }
/* Kraeftige, konstante Abdunklung: weisser Text braucht verlaesslichen Kontrast
   (WCAG); Hover hellt bewusst NICHT auf, sonst kippt die Lesbarkeit. */
.video-optin__media::after { content: ""; position: absolute; inset: 0;
  background: rgba(5, 5, 5, .72); }
/* Overlay: Nutzenversprechen + Play-Button zentriert ueber dem Vorschaubild */
.video-optin__overlay { position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .6rem; padding: 1rem; text-align: center; }
.video-optin__pitch-titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600;
  text-transform: uppercase; letter-spacing: .03em; color: #fff;
  font-size: clamp(1.15rem, 2.8vw, 1.8rem); line-height: 1.15;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .7); }
.video-optin__pitch { color: #f2f2f2; font-size: clamp(.82rem, 1.6vw, .95rem); line-height: 1.5;
  max-width: 34rem; text-shadow: 0 1px 6px rgba(0, 0, 0, .7); }
.video-optin__btn { display: inline-flex; align-items: center; gap: .55rem;
  margin-top: .4rem; padding: .8rem 1.5rem;
  background: var(--fl-red); color: #fff; border: 0; border-radius: 0; cursor: pointer;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .9rem;
  letter-spacing: .05em; text-transform: uppercase; transition: background .15s; }
.video-optin__btn::before { content: "▶"; font-size: .75em; }
.video-optin__media:hover .video-optin__btn { background: #a00014; }
@media (max-width: 560px) {
  .video-optin__pitch { display: none; } /* auf sehr kleinen Screens nur Titel + Button */
}
.video-optin__hinweis { margin: .45rem 0 0; font-size: .78rem; color: var(--muted); }
.video-optin__player { aspect-ratio: 16 / 9; background: #000; }
.video-optin__player iframe { width: 100%; height: 100%; border: 0; display: block; }
.video-optin__cta { display: flex; align-items: center; justify-content: center; gap: .5rem;
  margin-top: .8rem; min-height: 3rem; padding: .7rem 1.2rem;
  background: var(--fl-green); color: #fff !important; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .9rem;
  letter-spacing: .05em; text-transform: uppercase; transition: background .15s; }
.video-optin__cta:hover { background: #016b01; }
.video-optin__cta::after { content: "↓"; font-size: .9em; }

/* Leise Sekundaer-Buttons (z. B. Kuendigung/Widerruf): dezent, aber gut
   lesbar und mit vollem Touch-Ziel (min. 44px). a-Selektor wegen .prose a. */
.leise-aktionen { display: flex; flex-wrap: wrap; gap: .7rem; }
a.btn-leise { display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.75rem; padding: .55rem 1.3rem;
  border: 1px solid #bbb; background: transparent; color: var(--fg);
  text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .8rem; letter-spacing: .05em; text-transform: uppercase;
  transition: border-color .15s, background .15s; }
a.btn-leise:hover { border-color: var(--fg); background: #f3f3f3; opacity: 1; }

/* ============================================================
   Joomla-Formulare (RSForm!Pro unter /kontakt/...), nur .page-joomla.
   Das Formular-Markup kommt aus dem Altlayout "uikit" (uk-*-Klassen ohne
   UIkit-CSS); hier wird es auf die Feld-Optik der statischen Seiten
   (.tfield) und die Buttons (.btn) gebracht. Die kontakt-cta-Box ist dunkel,
   dort gelten die dark-*-Variablen.
   ============================================================ */
.page-joomla .formContainer { border: 0; margin: 0; padding: 0; min-width: 0; }
.page-joomla .formContainer .uk-grid { display: block; }
.page-joomla .formContainer [class*="uk-width"] { width: auto; }
.page-joomla .rsform-block { margin: 0 0 1.15rem; }
.page-joomla .rsform-block > .formControlLabel {
  display: block; margin: 0 0 .4rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .8rem;
  letter-spacing: .08em; text-transform: uppercase;
}
.page-joomla .formRequired { color: var(--fl-red); margin-left: .15rem; }
.page-joomla .formControls { min-width: 0; }
.page-joomla .rsform-input-box, .page-joomla .rsform-text-box,
.page-joomla .rsform-select-box, .page-joomla .rsform-calendar-box {
  font: inherit; color: var(--fg); background: #fff;
  border: 1.5px solid var(--line); border-radius: 0; padding: .7rem .9rem;
  width: 100%; max-width: 32rem; box-sizing: border-box;
}
.page-joomla .rsform-text-box { resize: vertical; min-height: 8rem; line-height: 1.5; }
.page-joomla .rsform-input-box:focus-visible, .page-joomla .rsform-text-box:focus-visible,
.page-joomla .rsform-select-box:focus-visible {
  outline: 2px solid var(--fl-red); outline-offset: 2px; border-color: var(--fl-red);
}
/* Radio-/Checkbox-Gruppen: Optionen in einer Reihe, umbrechend */
.page-joomla .rsfp-fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.page-joomla .rsfp-fieldset label { display: inline-flex; align-items: flex-start; gap: .5rem; font-size: .95rem; line-height: 1.5; cursor: pointer; }
.page-joomla .rsform-radio, .page-joomla .rsform-checkbox { margin: .3rem 0 0; accent-color: var(--fl-red); flex-shrink: 0; }
/* Lange Einwilligungstexte (DSGVO-Checkbox) als Absatz */
.page-joomla .rsfp-fieldset label small { font-size: .85rem; color: inherit; }
/* Adressblock aus dem Altformular: die Standorte stehen bereits in den Karten darueber */
.page-joomla .rsform-block-wejscie ._kontakt { display: none; }
.page-joomla .rsform-block-wejscie p, .page-joomla .rsform-block-wejscie li { font-size: .88rem; line-height: 1.55; }
.page-joomla .rsform-block-trenner hr { border: 0; border-top: 1px solid var(--line); margin: 1.4rem 0; }
/* Captcha */
.page-joomla .rsform-block-capcha img { display: block; max-width: 100%; height: auto; border: 1.5px solid var(--line); background: #fff; margin: 0 0 .6rem; }
.page-joomla .rsform-block-capcha .rsform-input-box { max-width: 14rem; }
.page-joomla .rsform-block-capcha a { font-size: .85rem; margin-left: .6rem; }
/* Senden: wie .btn, Label "Senden hier klicken" entfaellt */
.page-joomla .rsform-block-senden > .formControlLabel { display: none; }
.page-joomla .rsform-submit-button, .page-joomla .rsform-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .9rem 2rem; background: var(--fl-red); color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase;
  letter-spacing: .05em; font-size: .9rem; border: 0; border-radius: 0; cursor: pointer;
  width: auto; min-width: 12rem; transition: background .15s ease;
}
.page-joomla .rsform-submit-button:hover, .page-joomla .rsform-button:hover { background: #b80017; }
.page-joomla .rsform-button { background: var(--btn-2); color: var(--fg); }
.page-joomla .rsform-button:hover { background: #cfcfcf; }
/* Fehler- und Erfolgsmeldungen */
.page-joomla .formError, .page-joomla .formRed { color: var(--fl-red); font-size: .85rem; }
.page-joomla .formValidation { display: block; }
.page-joomla .rsform-block .formError { margin-top: .3rem; }
.page-joomla .rsform-thankyou, .page-joomla .rsform-block-thankyou { line-height: 1.6; }
/* Dunkle Anfrage-Box auf der Kontaktseite */
.page-joomla .kontakt-formular { margin: 0 0 1.6rem; }
.page-joomla .kontakt-formular .rsform-block-trenner hr { border-top-color: var(--dark-line); }
.page-joomla .kontakt-formular .rsform-block-wejscie p { color: var(--dark-muted); }
.page-joomla .kontakt-formular .formError, .page-joomla .kontakt-formular .formRed { color: #ff7b8a; }
.page-joomla .kontakt-formular a { color: #fff; }
/* Ueberschrift, die manche Altformulare selbst mitbringen ({global:formtitle}) */
.page-joomla .formContainer h2, .page-joomla form > h2 { font-size: 1.3rem; margin: 0 0 1rem; }


/* ============================================================
   Unterseiten im Shell-Layout (mit Sidebar): kompakte Kopfbereiche,
   einheitliche Kartenraster. Korrekturen nach Sichtpruefung 2026-09-22.
   ============================================================ */
.shell__main .hero__title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; letter-spacing: 0; line-height: 1.1; margin: 0 0 .8rem; }
.shell__main .hero__body { margin-left: 0; max-width: 42rem; }
.shell__main .hero__lead { font-size: 1.02rem; margin: 0 0 .5rem; }
.shell__main .eyebrow { margin-bottom: .6rem; }
.shell__main .band { padding-top: .5rem; }
.shell__main .cardgrid { margin-top: 1.2rem; gap: 1.6rem 1.4rem; }
.shell__main .card { padding-top: 0; border-top: 0; }
.card__img, .card__ph { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; margin: 0 0 .85rem; background: #e6e6e6; }
.card__ph { display: flex; align-items: center; justify-content: center; background: var(--fl-black); border-top: 4px solid var(--fl-red); }
.card__ph .lgo { font-size: 1.15rem; opacity: .55; }
.shell__main .card__title { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.05rem; letter-spacing: .01em; line-height: 1.25; margin: 0 0 .4rem; }
.shell__main .card__cat { font-size: .72rem; letter-spacing: .1em; margin-bottom: .35rem; }
.shell__main .card__more { margin-top: .7rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem; letter-spacing: .06em; color: var(--fl-red); }
.disziplin__courses-title { font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 500; letter-spacing: 0; line-height: 1.15; margin: 2.2rem 0 1rem; }
/* News-Beitrag: Textfluss aus den K2-Originalen */
.news-item .prose p, .page .prose p { margin: 0 0 1rem; line-height: 1.6; }
.prose a { color: var(--fl-red); }
.prose img { max-width: 100%; height: auto; }
.card--portrait .card__img, .card--portrait .card__ph { aspect-ratio: 3 / 4; object-position: top; }
.card__img { height: auto; }
/* Bilder im Fliesstext (Disziplinen, Seiten, News aus Joomla-HTML): immer volle Breite des
   Textcontainers, Blockabstand zum Text, Abstand zwischen gestapelten Bildern. Die Joomla-
   Inhalte liegen in verschachtelten <div>, die von ".prose > * + *" nicht erfasst werden. */
.prose img { display: block; width: 100%; max-width: 100%; height: auto; margin: 1.75rem 0; }
.prose img + img, .prose div > div + div > img:first-child { margin-top: 1.25rem; }
.prose div > div + div { margin-top: 1rem; }
.prose div > div:has(> img:only-child) + div:has(> img:only-child) { margin-top: 0; }
.prose figure { margin: 1.75rem 0; }
/* Roter Zierbalken oben an Inhaltsbildern, wie beim Probetraining-Block (cta-strip) */
.prose img { border-top: 4px solid var(--fl-red); }
/* Titelbild der News-Beitraege: volle Breite, roter Zierbalken wie die Inhaltsbilder */
.news-item__image { display: block; width: 100%; height: auto; margin: 0 0 1.5rem; border-top: 4px solid var(--fl-red); }
/* Probetraining-Block (cta-strip) im Shell-Layout: eigene Innenabstaende, damit die Ueberschrift
   nicht an der Oberkante klebt (Regel: Inhalte nie an den Rahmen kleben lassen). */
.shell__main .cta-strip, .shell__main .band--dark.cta-strip { padding: clamp(2.2rem, 4.5vw, 3.25rem) 0 clamp(2rem, 4vw, 3rem); }
.shell__main .cta-strip .wrap { padding-left: clamp(1.6rem, 3.5vw, 3rem); padding-right: clamp(1.6rem, 3.5vw, 3rem); }
.shell__main .cta-strip__title { margin-bottom: .8rem; }
/* Einheitliche Innenabstaende fuer alle dunklen Boxen (wie beim Probetraining-Block) */
.sb-box { padding: clamp(1.6rem, 2.6vw, 2.1rem); }
.sb-box--banner { padding: 0; }
.kontakt-cta { padding: clamp(2.2rem, 4.5vw, 3.25rem) clamp(1.6rem, 3.5vw, 3rem) clamp(2rem, 4vw, 3rem); }
.consent__box { padding: clamp(1.6rem, 3vw, 2.2rem) clamp(1.6rem, 3vw, 2.2rem) clamp(1.4rem, 3vw, 2rem); }
/* Roter Zierbalken oben an ALLEN Bildern im Inhaltsbereich (Shell-Hauptspalte): Titelbilder,
   Karten, Kacheln, Galerien, Profilfotos. Ausgenommen: SVG-Icons und das Iframe der 360-Tour. */
.shell__main img:not([src$=".svg"]) { border-top: 4px solid var(--fl-red); }
/* Startseite: roter Zierbalken oben an den Bildkacheln, Standortkarten und dem Teamband */
.hm-dcard { border-top: 4px solid var(--fl-red); }
.hm-loccard img, .hm-teamband img { border-top: 4px solid var(--fl-red); }
/* Standortkarten im Inhaltsbereich (z. B. Anmeldung): Fließtext-Bildabstände und
   Geschwister-Abstände der Prose-Regeln gelten hier nicht, sonst wandert das Bild
   nach unten und die Karten stehen versetzt. */
.prose .hm-locgrid .hm-loccard > img:first-child { margin: 0; }
.prose .hm-locgrid > div + div { margin-top: 0; }
/* Kursplan-Uebersicht: Abstand zum Kopf, je Standort Plan + Infobox nebeneinander,
   Kurs-Akkordeon zweispaltig. Vorher blieb rechts ein Drittel der Seite leer. */
.kp-seite { padding: clamp(1.8rem, 3.5vw, 2.75rem) 0 clamp(2.5rem, 5vw, 4rem); }
.kp-ort__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.kp-ort__plan, .kp-ort__side { min-width: 0; }
.kp-ort__grid .kp { max-width: none; }
.kp-ort__side { padding: clamp(1.6rem, 2.6vw, 2.1rem); }
.kp-side__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.02rem; margin: 0 0 .6rem; color: #fff; }
.kp-side__h + .kp-side__h, .kp-side__liste + .kp-side__h, .kp-side__adr + .kp-side__h { margin-top: 1.4rem; }
.kp-side__liste { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.kp-side__liste li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--dark-line); }
.kp-side__liste li:last-child { border-bottom: 0; }
.kp-side__liste strong { font-weight: 400; color: var(--dark-muted); }
.kp-side__liste span { text-align: right; white-space: nowrap; flex-shrink: 0; }
.kp-side__adr { margin: 0; font-size: .9rem; line-height: 1.6; }
.kp-side__adr a { color: #fff; }
.kp-side__dl { margin: 0; padding: 0; list-style: none; font-size: .9rem; }
.kp-side__dl li { margin: 0 0 .35rem; }
.kp-side__dl a { color: #fff; }
.kp-side__btn { width: 100%; margin-top: 1.4rem; }
.kp-akkordeon { max-width: none; }
@media (min-width: 64rem) {
  .kp-ort__grid { grid-template-columns: minmax(0, 1fr) 20rem; gap: 2rem; }
  .kp-akkordeon { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; align-items: start; }
}
/* Standort-Kursplaene: gleiches Raster wie die Uebersicht, Intro unter dem Plan,
   Verweise auf die anderen Standorte als Buttonleiste. */
.kp-ort__plan .kp-intro { margin-top: 1.8rem; }
.kp-andere { margin-top: 2.5rem; }
.kp-andere__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.2rem, 2.2vw, 1.5rem); margin: 0 0 .8rem; }
.kp-andere ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kp-andere a { display: block; padding: .7rem 1.4rem; border: 1.5px solid var(--fg); text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); }
.kp-andere a:hover { background: var(--fg); color: #fff; }

/* ===== Sidebar (Shell-Seiten): Konversionsbaustein + Kontextkarte + Linkzeile ===== */
.sb-icons { list-style: none; margin: 0; padding: 0; display: flex; gap: .6rem; }
.sb-icons a { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1.5px solid var(--line); color: var(--fg); transition: background .15s, color .15s, border-color .15s; }
.sb-icons a:hover { background: var(--fl-black); border-color: var(--fl-black); color: #fff; }

/* Bausteine der Sidebar (sbB) */
.sbB { display: grid; gap: 1rem; }
.sbB__start { background: #fff; color: var(--fg); padding: clamp(1.5rem, 2.4vw, 1.9rem); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.sbB__eyebrow { margin: 0 0 .25rem; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #277012; }
.sbB__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.9rem; line-height: 1.05; margin: 0 0 .6rem; color: var(--fg); }
.sbB__title span { color: var(--fl-red); }
.sbB__text { margin: 0 0 1.2rem; font-size: .92rem; line-height: 1.55; color: var(--muted); }
.sbB__checks { list-style: none; margin: 0 0 1.4rem; padding: 1.1rem 0 .2rem; border-top: 1px solid var(--line); font-size: .9rem; }
.sbB__checks li { display: flex; align-items: center; gap: .8rem; padding: .42rem 0; }
.sbB__ico { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; background: #fdecee; color: var(--fl-red); }
.sbB__ico svg { width: 1.15rem; height: 1.15rem; }
.sbB__btn { width: 100%; margin-top: .55rem; padding: .85rem 1rem; font-size: .88rem; }
.sbB__btn svg { flex-shrink: 0; }
.sbB__orte-label { margin: 1.4rem 0 .5rem; padding-top: 1.1rem; border-top: 1px solid var(--line); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.sbB__orte { margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.sbB__orte a { display: inline-block; padding: .38rem .8rem; border: 1.5px solid var(--fg); color: var(--fg); text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; transition: background .15s, border-color .15s, color .15s; }
.sbB__orte a:hover { background: var(--fl-red); border-color: var(--fl-red); color: #fff; }
.sbB__card { background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); padding: clamp(1.4rem, 2.2vw, 1.8rem); }
.sbB__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin: 0 0 .8rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); line-height: 1.2; }
.sbB__zeiten { list-style: none; margin: 0 0 .9rem; padding: 0; font-size: .86rem; }
.sbB__zeiten li { display: flex; justify-content: space-between; gap: .8rem; padding: .35rem 0; border-bottom: 1px solid var(--line); }
.sbB__zeiten li:last-child { border-bottom: 0; }
.sbB__zeiten span { color: var(--muted); }
.sbB__zeiten strong { font-weight: 500; text-align: right; white-space: nowrap; flex-shrink: 0; }
.sbB__adr { margin: 0 0 .9rem; font-size: .86rem; line-height: 1.55; color: var(--muted); }
.sbB__adr a { color: var(--fg); }
.sbB__standorte, .sbB__news { list-style: none; margin: 0 0 .9rem; padding: 0; }
.sbB__standorte li, .sbB__news li { border-bottom: 1px solid var(--line); }
.sbB__standorte li:last-child, .sbB__news li:last-child { border-bottom: 0; }
.sbB__standorte a { display: flex; justify-content: space-between; gap: .8rem; padding: .5rem 0; text-decoration: none; color: var(--fg); font-size: .88rem; }
.sbB__standorte strong { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; }
.sbB__standorte span { color: var(--muted); text-align: right; }
.sbB__standorte a:hover strong { color: var(--fl-red); }
.sbB__news li { padding: .5rem 0; }
.sbB__news a { display: block; color: var(--fg); text-decoration: none; font-size: .88rem; font-weight: 600; line-height: 1.4; }
.sbB__news a:hover { color: var(--fl-red); }
.sbB__news span { display: block; font-size: .76rem; color: var(--muted); margin-top: .15rem; }
.sbB__more { display: inline-block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .85rem; letter-spacing: .04em; color: var(--fl-red); text-decoration: none; }
.sbB__more::after { content: " \2192"; }
.sbB__more:hover { text-decoration: underline; text-underline-offset: 3px; }
.sbB__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .2rem .2rem 0; }
.sbB__seminare { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .9rem; color: var(--fg); text-decoration: none; border-bottom: 2px solid var(--fl-red); padding-bottom: .1rem; }
.sbB__seminare:hover { color: var(--fl-red); }

/* Band-Hero: Titel und grosses Bild ueber die volle Shell-Breite, darunter Inhalt links, Sidebar rechts */
.band-hero { max-width: 1240px; margin: 0 auto; padding: 1.5rem clamp(1.25rem, 5vw, 4rem) 0; }
.band-hero__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.2rem; }
.band-hero__img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; object-position: center; border-top: 4px solid var(--fl-red); }
.shell--band { padding-top: 2.25rem; }
.shell--band .sidebar { top: 132px; }
@media (max-width: 700px) { .band-hero__img { aspect-ratio: 16 / 10; } }

/* Lounge-Leiste (2026-09-28): Rueckweg und Geschwister-Disziplinen zwischen Titel und Kopfbild.
   Desktop umbrechend, mobil seitlich wischbar bis an den Bildschirmrand (Bleed ueber das Band-Padding). */
.band-hero__title + .lnav { margin-top: -.35rem; }
.lnav { margin: 0 0 1.2rem; }
.lnav__back { display: inline-block; margin: 0 0 .6rem; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); text-decoration: none; transition: color .12s ease; }
.lnav__back:hover { color: var(--fg); }
.lnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lnav__item { display: flex; align-items: center; min-height: 2.3rem; padding: .35rem .85rem; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; white-space: nowrap; transition: border-color .12s ease; }
.lnav__item:hover { border-color: var(--fg); }
.lnav__item[aria-current="page"] { border-color: var(--fg); box-shadow: inset 0 -3px 0 var(--fl-red); }
@media (max-width: 700px) {
  .lnav__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    margin: 0 calc(-1 * clamp(1.25rem, 5vw, 4rem)); padding: 0 clamp(1.25rem, 5vw, 4rem) .1rem;
    -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
  .lnav__list::-webkit-scrollbar { display: none; }
}

/* Kompakter Kursplan einer Disziplin (2026-09-28): Wochenraster Tag x Standort, Live-Hinweis per JS.
   Standortfarben wie die Schnellleiste links (DO rot, HA schwarz, BO goldenrod). */
.kz, .shell__main section.kz { margin: 0 0 2.4rem; padding: 1.4rem clamp(1rem, 3vw, 1.7rem) 1.2rem; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); background: #fff; }
.kz__kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem 1rem; margin: 0 0 .8rem; }
.kz__titel { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.15rem, 2.2vw, 1.45rem); font-weight: 500; text-transform: uppercase; line-height: 1.2; }
.kz__live { display: inline-flex; align-items: center; gap: .55rem; margin: 0; padding: .45rem .8rem; border: 1px solid rgba(0, 128, 0, .28); background: #eff8ef; color: #0b5d0b; font-size: .86rem; font-weight: 600; }
.kz__live[hidden] { display: none; }
.kz__puls { flex: none; width: .55rem; height: .55rem; background: #0a8a0a; animation: kz-puls 1.8s ease-out infinite; }
@keyframes kz-puls { 0% { box-shadow: 0 0 0 0 rgba(10, 138, 10, .5); } 70% { box-shadow: 0 0 0 .5rem rgba(10, 138, 10, 0); } 100% { box-shadow: 0 0 0 0 rgba(10, 138, 10, 0); } }
@media (prefers-reduced-motion: reduce) { .kz__puls { animation: none; } }
.kz__fakten { display: flex; flex-wrap: wrap; gap: .35rem 1.3rem; margin: 0 0 1.1rem; padding: 0; list-style: none; font-size: .88rem; color: var(--muted); }
.kz__fakten strong { color: var(--fg); }
.kz__tab { width: 100%; border-collapse: collapse; table-layout: fixed; }
.kz__tab th, .kz__tab td { padding: .55rem .35rem; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.kz__tab thead th { padding-top: 0; border-bottom: 2px solid var(--fg); }
.kz__tab thead th:first-child, .kz__tab tbody th { width: 3.8rem; text-align: left; }
.kz__tab tbody tr:last-child > * { border-bottom: 0; }
.kz__ort { display: inline-flex; align-items: center; gap: .45rem; color: var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .95rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; text-decoration: none; }
.kz__ort::before { content: ""; width: .6rem; height: .6rem; background: #111; }
.kz__ort--dortmund::before { background: var(--fl-red); }
.kz__ort--bochum::before { background: goldenrod; }
.kz__ort:hover { text-decoration: underline; text-underline-offset: 3px; }
.kz__tab tbody th { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1rem; font-weight: 500; text-transform: uppercase; }
.kz__tab abbr { text-decoration: none; }
.kz__heute { display: block; margin-top: .1rem; color: var(--fl-red); font-family: system-ui, sans-serif; font-size: .62rem; font-weight: 700; letter-spacing: .1em; }
.kz__heute[hidden] { display: none; }
.kz__tab tr.is-heute > * { background: #fdf2f3; }
.kz__slot { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 10rem; margin: 0 auto; padding: .3rem .55rem; border: 1px solid var(--line); background: #fff; line-height: 1.15; }
.kz__slot + .kz__slot { margin-top: .3rem; }
.kz__slot b { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.1rem; font-weight: 500; }
.kz__slot small { font-size: .72rem; color: var(--muted); }
.kz__kurs { display: block; margin-top: .2rem; font-size: .72rem; font-style: normal; font-weight: 600; color: var(--fg); line-height: 1.2; }
.kz__level { display: block; margin-top: .1rem; font-size: .64rem; font-style: normal; letter-spacing: .06em; color: var(--muted); }
.kz__legende { margin: .8rem 0 0; font-size: .8rem; color: var(--muted); }
.kz__legende strong { color: var(--fg); }
.kz__slot.is-naechst { border-color: #0a8a0a; box-shadow: inset 0 -3px 0 #0a8a0a; }
.kz__leer::before { content: ""; display: inline-block; width: 1rem; height: 1px; background: rgba(0, 0, 0, .25); vertical-align: middle; }
.kz__sparring { margin: 1rem 0 0; font-size: .88rem; }
.kz__fuss { margin: .55rem 0 0; font-size: .78rem; color: var(--muted); }
.kz__fuss a { color: var(--fl-red); text-decoration: none; }
.kz__fuss a:hover { text-decoration: underline; }
@media (max-width: 560px) {
  .kz__tab th, .kz__tab td { padding: .5rem .15rem; }
  .kz__tab thead th:first-child, .kz__tab tbody th { width: 2.6rem; }
  .kz__ort { gap: .3rem; font-size: .8rem; }
  .kz__ort::before { width: .5rem; height: .5rem; }
  .kz__slot { min-width: 0; width: 100%; padding: .3rem .2rem; }
  .kz__slot b { font-size: 1rem; }
  .kz__slot small { font-size: .66rem; }
}

/* Blaettern am Seitenende (2026-09-28): vorige/naechste Disziplin als helle Bildkarten */
.lpager { margin: 2.5rem 0 0; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.lpager__title { margin: 0 0 1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.2rem; font-weight: 500; text-transform: uppercase; }
.lpager__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.lpager__card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--fg); text-decoration: none; transition: border-color .12s ease; }
.lpager__card:hover { border-color: var(--fg); }
.lpager__card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-top: 3px solid var(--fl-red); }
.lpager__dir { padding: .85rem 1rem 0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.lpager__name { padding: .15rem 1rem .95rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .03em; }
.lpager__card--next { text-align: right; }
.lpager--text .lpager__card { border-top: 3px solid var(--fl-red); }
.lpager--text .lpager__dir { padding-top: 1rem; }
.lpager__all { margin: 1rem 0 0; font-size: .85rem; font-weight: 700; }
.lpager__all a { color: var(--fl-red); text-decoration: none; }
.lpager__all a:hover { text-decoration: underline; }

/* Band-Layout: erste Ueberschrift im Inhalt ohne oberen Abstand, damit sie mit der Oberkante der Sidebar fluchtet.
   Alt-Inhalte verschachteln die erste Ueberschrift in bis zu acht leeren Divs. */
.shell--band .shell__main .prose > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child { margin-top: 0; }
.shell--band .shell__main .wrap > :first-child { margin-top: 0; }

/* Fighter-Karten: Disziplin in Rot direkt unter dem Namen, Meta darunter */
.team-card__role--tight { padding-bottom: .15rem; }
.team-card__role--tight + .team-card__meta { padding-top: 0; }

/* Fighter-Profil: Foto links, Daten rechts als Kacheln, Erfolge als Liste */
.fighter__head { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; margin-top: .5rem; }
.fighter__photo img { width: 100%; height: auto; display: block; }
.fighter__cat { margin: 0 0 .3rem; }
.fighter__cat a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fl-red); text-decoration: none; letter-spacing: .04em; }
.fighter__cat a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fighter .page-title { margin-bottom: 1.2rem; }
.fighter__specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .6rem; margin: 0 0 1.8rem; }
.fighter__specs > div { background: #f4f4f4; padding: .8rem .95rem; border-left: 4px solid var(--fl-red); }
.fighter__specs dt { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 .2rem; }
.fighter__specs dd { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; line-height: 1.2; }
.fighter__h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.25rem; margin: 0 0 .7rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); }
.fighter__erfolge { list-style: none; margin: 0 0 1.8rem; padding: 0; }
.fighter__erfolge li { display: flex; gap: .6rem; align-items: baseline; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.fighter__erfolge li:last-child { border-bottom: 0; }
.fighter__erfolge span { color: #0a7d22; font-weight: 700; }
.fighter__links { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; }
@media (max-width: 700px) {
  .fighter__head { grid-template-columns: 1fr; }
  .fighter__photo { max-width: 300px; }
}
.fighter__erfolge-sub { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--muted); padding-top: 1rem !important; border-bottom: 0 !important; }

/* News-Uebersicht: neueste Karten enger, Archiv als Jahres-Akkordeon mit kompakten Zeilen */
.listing .cardgrid--news { margin-top: 0; gap: 1.5rem 1.25rem; }
.listing .listing__h2 + .listing__intro { margin-top: -.4rem; }
.news-archiv__anzahl { font-size: .78rem; font-weight: 400; letter-spacing: .06em; opacity: .75; margin-left: auto; }
.news-archiv__liste { list-style: none; margin: 0; padding: .4rem 0 .2rem; }
.news-archiv__liste li { border-bottom: 1px solid var(--line); }
.news-archiv__liste li:last-child { border-bottom: 0; }
.news-archiv__liste a { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: .6rem 1rem; padding: .55rem .2rem; text-decoration: none; color: var(--fg); font-size: .92rem; line-height: 1.4; }
.news-archiv__liste a:hover .news-archiv__titel { color: var(--fl-red); }
.news-archiv__datum { color: var(--muted); font-size: .82rem; padding-top: .1rem; }
.news-archiv__titel { font-weight: 600; }
@media (max-width: 600px) { .news-archiv__liste a { grid-template-columns: 1fr; gap: .1rem; } }

/* Medien: Karten mit Play-Kennzeichen bzw. Fotoanzahl, Detailseite mit Video-Opt-in und Galerie-Raster */
.media-card__thumb { position: relative; display: block; }
.media-card__play { position: absolute; left: 50%; top: 50%; width: 3.2rem; height: 3.2rem; transform: translate(-50%, -60%); background: rgba(220,0,27,.92); display: flex; align-items: center; justify-content: center; }
.media-card__play::after { content: ""; border-style: solid; border-width: .55rem 0 .55rem .95rem; border-color: transparent transparent transparent #fff; margin-left: .2rem; }
.media-card:hover .media-card__play { background: #b80017; }
.media-card__count { position: absolute; right: .6rem; bottom: 1.4rem; background: rgba(0,0,0,.75); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; padding: .25rem .55rem; }
.media-item__eyebrow { margin-bottom: .3rem; color: var(--fl-red); letter-spacing: .12em; font-weight: 700; }
.media-item .page-title { margin-bottom: 1rem; }
.media-item__text { margin: 0 0 1.4rem; }
.media-item__video { max-width: none; margin: 0 0 1.6rem; }
.media-item__video .video-optin__media img { aspect-ratio: 16 / 9; object-fit: cover; }
.media-item__ph { display: block; aspect-ratio: 16 / 9; background: var(--fl-black); }
.media-item__weg { padding: 1rem 1.2rem; background: #f4f4f4; border-left: 4px solid var(--fl-red); margin: 0 0 1.4rem; }
.media-item__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin: 0 0 1.4rem; }
.media-item__gallery img, .shell__main .media-item__gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-top: 0; margin: 0; }
@media (max-width: 600px) { .media-item__gallery { grid-template-columns: repeat(2, 1fr); } }

/* Kontaktseite: Anfrage-Block hell statt schwarz (Entscheidung 2026-09-22: Sidebar und Boxen freundlich, hell) */
.kontakt-cta { background: #fff; color: var(--fg); border-top: 4px solid var(--fl-green); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.kontakt-cta__text { color: var(--muted); }
.kontakt-cta .btn--tel { background: transparent; border: 1.5px solid var(--fg); color: var(--fg); }
.kontakt-cta .btn--tel:hover { background: var(--fg); color: #fff; }
.page-joomla .kontakt-formular .rsform-block-trenner hr { border-top-color: var(--line); }
.page-joomla .kontakt-formular .rsform-block-wejscie p { color: var(--muted); }
.page-joomla .kontakt-formular .formError, .page-joomla .kontakt-formular .formRed { color: var(--fl-red); }
.page-joomla .kontakt-formular a { color: var(--fl-red); }
.page-joomla .kontakt-formular .rsform-input-box, .page-joomla .kontakt-formular .rsform-text-box, .page-joomla .kontakt-formular .rsform-select-box { border: 1.5px solid var(--line); }
.kontakt-cta .bb-card--abo { background: #f4f4f4; }
.kontakt-cta .bb-card:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, .14); }
.kontakt-cta .bb-btn { color: var(--fg); border-color: var(--line); }
.kontakt-cta .bb-btn:hover { border-color: var(--fg); color: var(--fg); background: #f4f4f4; }
/* Captcha-Bild in Originalgroesse statt volle Breite */
.page-joomla .rsform-block-capcha img { max-width: 14rem; width: auto; }
.shell__main .rsform-block-capcha img { border-top: 0; }

/* Lightbox fuer Fotogalerien (assets/js/lightbox.js) */
.media-item__gallery img { cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.media-item__gallery img:hover, .media-item__gallery img:focus-visible { transform: scale(1.03); opacity: .92; outline: none; }
.media-item__gallery img:focus-visible { box-shadow: 0 0 0 3px var(--fl-red); }
html.lb-offen { overflow: hidden; }
.lb { border: 0; padding: 0; margin: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; background: rgba(5,5,5,.985); color: #fff; }
.lb::backdrop { background: rgba(5,5,5,.985); }
.lb[open] { display: flex; flex-direction: column; }
.lb__stage { flex: 1; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 3.5rem; align-items: center; min-height: 0; }
.lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 0; padding: 1rem 0; }
.lb__img { max-width: 100%; max-height: calc(100vh - 7rem); width: auto; height: auto; object-fit: contain; border-top: 4px solid var(--fl-red); opacity: 0; transform: scale(.985); }
.lb__img.is-in { opacity: 1; transform: none; transition: opacity .22s ease, transform .22s ease; }
.lb__cap { margin-top: .6rem; font-size: .85rem; color: #cfcfcf; text-align: center; }
.lb__btn { background: transparent; border: 0; color: #fff; font-size: 3rem; line-height: 1; cursor: pointer; height: 100%; opacity: .75; transition: opacity .15s, background .15s; }
.lb__btn:hover, .lb__btn:focus-visible { opacity: 1; background: rgba(255,255,255,.06); outline: none; }
.lb__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1.2rem; border-top: 1px solid rgba(255,255,255,.14); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.lb__close { background: transparent; border: 1.5px solid rgba(255,255,255,.5); color: #fff; padding: .45rem .9rem; font: inherit; cursor: pointer; }
.lb__close:hover, .lb__close:focus-visible { background: var(--fl-red); border-color: var(--fl-red); outline: none; }
@media (max-width: 600px) { .lb__stage { grid-template-columns: 2.4rem minmax(0, 1fr) 2.4rem; } .lb__btn { font-size: 2.2rem; } }
@media (prefers-reduced-motion: reduce) { .lb__img, .lb__img.is-in, .media-item__gallery img { transition: none; transform: none; } }

/* Impressum: Rechtstraeger als Karten, Rechtstexte darunter in Leseweite */
.impressum__grid { margin: 1.2rem 0 2.2rem; }
.impressum__firma { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; line-height: 1.2; margin: .2rem 0 .5rem; }
.impressum__adr { margin: 0 0 .8rem; color: var(--muted); font-size: .92rem; line-height: 1.5; }
.impressum__dl { margin: 0; font-size: .9rem; }
.impressum__dl > div { padding: .4rem 0; border-top: 1px solid var(--line); }
.impressum__dl dt { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 .1rem; }
.impressum__dl dd { margin: 0; overflow-wrap: anywhere; }
.impressum__dl a { color: var(--fg); }
.impressum__text { max-width: 46rem; }
.impressum__text h2 { font-size: 1.2rem; margin-top: 2rem; }

/* Medien: Vor/Zurueck zwischen Videos bzw. Galerien */
.media-nav { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.6rem 0 0; }
.media-nav__link { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); text-decoration: none; color: var(--fg); transition: background .15s; }
.media-nav__link--next { text-align: right; align-items: flex-end; }
.media-nav__link:hover { background: #f4f4f4; }
.media-nav__label { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .78rem; letter-spacing: .06em; color: var(--fl-red); }
.media-nav__title { font-weight: 600; font-size: .95rem; line-height: 1.35; }
.media-nav__pos { grid-column: 1 / -1; margin: .2rem 0 0; font-size: .85rem; color: var(--muted); text-align: center; }
.media-nav__pos a { color: var(--fg); }
@media (max-width: 560px) { .media-nav { grid-template-columns: 1fr; } .media-nav__link--next { text-align: left; align-items: flex-start; } }

/* Datenschutz: Inhaltsverzeichnis mit Sprungmarken */
.ds-toc { background: #f4f4f4; border-left: 4px solid var(--fl-red); padding: 1.1rem 1.4rem; margin: 0 0 2rem; }
.ds-toc__h { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1rem; }
.ds-toc ol { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 2rem; }
.ds-toc li { margin: .2rem 0; break-inside: avoid; font-size: .92rem; }
.ds-toc a { color: var(--fg); }
.ds-toc a:hover { color: var(--fl-red); }
.prose h2[id^="abschnitt-"] { scroll-margin-top: 140px; }
@media (max-width: 600px) { .ds-toc ol { columns: 1; } }
.media-nav__sub { display: block; font-weight: 400; font-size: .8rem; color: var(--muted); margin-top: .1rem; }
.coach .media-nav, .fighter .media-nav { margin-top: 2.2rem; }

/* Partner & Links: Logokarten und Linkliste */
.partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; margin: 0 0 1.5rem; }
.prose .partner-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); text-decoration: none; color: var(--fg); transition: transform .15s ease, box-shadow .15s ease; }
.prose .partner-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.12); opacity: 1; }
.partner-card__logo { display: flex; align-items: center; justify-content: center; height: 8rem; padding: 1.2rem 1.5rem; background: #fff; border-bottom: 1px solid var(--line); }
.prose .partner-card__logo img, .shell__main .partner-card__logo img { width: auto; max-width: 100%; max-height: 100%; height: auto; margin: 0; border-top: 0; object-fit: contain; }
.partner-card__body { display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.2rem 1.1rem; }
.partner-card__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; }
.partner-card__text { font-size: .9rem; color: var(--muted); line-height: 1.5; }
.partner-card__url { margin-top: .3rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .78rem; letter-spacing: .05em; color: var(--fl-red); }
.prose .link-liste { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.prose .link-liste li { border-bottom: 1px solid var(--line); }
.prose .link-liste li:last-child { border-bottom: 0; }
.prose .link-liste a { display: flex; align-items: center; gap: .7rem; padding: .65rem .2rem; text-decoration: none; color: var(--fg); font-weight: 600; }
.prose .link-liste a::before { content: ""; flex-shrink: 0; width: .5rem; height: .5rem; background: var(--fl-red); }
.prose .link-liste a::after { content: "\2197"; margin-left: auto; color: var(--muted); font-weight: 400; }
.prose .link-liste a:hover { color: var(--fl-red); opacity: 1; }

/* Ausbildung Kampfkunstlehrer: Chips, Disziplin-Karten, Bild-Text-Split, Checkliste, Schritte, Abschlussblock */
.prose .ausb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.3rem; }
.prose .ausb-chips span { display: inline-block; padding: .4rem .9rem; border: 1.5px solid var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .82rem; letter-spacing: .04em; }
.prose .ausb-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1rem 0 2rem; }
.prose .ausb-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.3rem 1.4rem 1.2rem; }
.prose .ausb-card h3 { margin: 0 0 .6rem; font-size: 1.15rem; }
.prose .ausb-card p { margin: 0 0 .7rem; font-size: .95rem; }
.prose .ausb-card p:last-child { margin-bottom: 0; }
.prose .ausb-card ul { margin: 0 0 .9rem; padding-left: 1.1rem; font-size: .92rem; }
.prose .ausb-card li { margin: .2rem 0; }
.prose .ausb-split { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; margin: 1rem 0 1.5rem; }
.prose .ausb-split .bild-ki { margin: 0; }
.prose .ausb-split__text > :first-child { margin-top: 0; }
.prose .ausb-checks { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.prose .ausb-checks li { position: relative; padding: .3rem 0 .3rem 1.6rem; border-bottom: 1px solid var(--line); }
.prose .ausb-checks li:last-child { border-bottom: 0; }
.prose .ausb-checks li::before { content: "\2713"; position: absolute; left: 0; top: .3rem; color: #0a7d22; font-weight: 700; }
.prose .ausb-steps { list-style: none; margin: 1rem 0 1.5rem; padding: 0; counter-reset: schritt; }
.prose .ausb-steps li { counter-increment: schritt; position: relative; padding: .7rem 0 .9rem 3.4rem; border-bottom: 1px solid var(--line); }
.prose .ausb-steps li:last-child { border-bottom: 0; }
.prose .ausb-steps li::before { content: counter(schritt); position: absolute; left: 0; top: .75rem; width: 2.4rem; height: 2.4rem; display: flex; align-items: center; justify-content: center; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }
.prose .ausb-steps strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin-bottom: .15rem; }
.prose .ausb-cta { background: #fff; border-top: 4px solid var(--fl-green); box-shadow: 0 1px 4px rgba(0,0,0,.08); padding: clamp(1.6rem, 3vw, 2.2rem); margin: 2rem 0 0; }
.prose .ausb-cta__h { margin: 0 0 .3rem; font-size: 1.5rem; }
.prose .ausb-cta__lead { margin: 0 0 1rem; color: var(--fl-red); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; }
.prose .ausb-cta p { margin: 0 0 1rem; }
.prose .ausb-cta .anm-sekundaer { margin-bottom: 0; }
@media (min-width: 700px) { .prose .ausb-grid { grid-template-columns: 1fr 1fr; } .prose .ausb-split { grid-template-columns: 18rem minmax(0, 1fr); } }

/* Standort-/Kontaktkarten im Fliesstext: kein Geschwister-Abstand der Prose-Regel, Karten buendig */
.prose .kontakt-grid > div + div { margin-top: 0; }
.prose .kontakt-grid { margin-bottom: 1.8rem; }
.prose .kontakt-card .kontakt-card__titel { margin-top: 0; }
.prose .kontakt-card a.ka--kursplan { color: #fff; text-decoration: none; }
.prose .kontakt-card a.ka--kursplan:hover { opacity: 1; }
.prose .kontakt-card a.ka--route { color: var(--fl-black); text-decoration: none; }
.prose .kontakt-card a.ka--route:hover { color: #fff; opacity: 1; }


/* ===== Landingpage Anmeldung/Beitraege ===== */
.lp { background: #fff; }
.lp .wrap { max-width: 1180px; }
.lp-eyebrow { margin: 0 0 .6rem; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8ec73b; }
.lp-eyebrow--dark { color: #277012; }
.lp-h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.1; margin: 0 0 1.2rem; }
.lp-h2--light { color: #fff; }
.lp-sub { margin: -.4rem 0 1.4rem; color: var(--muted); max-width: 46rem; }
.lp-hero__soft { margin: 1.4rem 0 0; font-size: .9rem; color: #cfcfcf; }
.lp-hero__soft a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lp-hero__soft--dark { color: var(--muted); }
.lp-hero__soft--dark a { color: var(--fg); }
/* Zahlen */
.lp-stats { background: #f4f4f4; border-bottom: 1px solid var(--line); }
.lp-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 2rem; padding-top: 1.6rem; padding-bottom: 1.6rem; }
.lp-stats__grid div { display: flex; flex-direction: column; gap: .15rem; padding-left: .9rem; border-left: 4px solid var(--fl-red); }
.lp-stats__grid strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1; }
.lp-stats__grid span { font-size: .88rem; color: var(--muted); }
/* Schritte */
.lp-steps { padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(1.8rem, 4vw, 3rem); }
.lp-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 1rem; counter-reset: s; }
.lp-steps__list li { position: relative; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.4rem 1.4rem 1.3rem 4.4rem; }
.lp-steps__nr { position: absolute; left: 1.2rem; top: 1.3rem; width: 2.4rem; height: 2.4rem; display: flex; align-items: center; justify-content: center; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.15rem; }
.lp-steps__list strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; margin: 0 0 .35rem; }
.lp-steps__list p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
/* Sozialer Beweis */
.lp-proof { background: #f4f4f4; padding: clamp(2.4rem, 5vw, 4rem) 0; }
.lp-proof__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.lp-proof__head .lp-h2 { margin: 0; }
.lp-proof__rating { margin: 0; display: inline-flex; align-items: center; gap: .6rem; padding: .55rem .9rem; background: #fff; border: 1px solid var(--line); font-size: .9rem; }
.lp-proof__stars { color: #f5a623; letter-spacing: .05em; }
.lp-proof__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.lp-proof__card { margin: 0; background: #fff; border-left: 4px solid var(--fl-red); padding: 1.3rem 1.4rem; display: flex; flex-direction: column; gap: 1rem; }
.lp-proof__card p { margin: 0; font-size: .98rem; line-height: 1.55; }
.lp-proof__card footer { display: flex; align-items: center; gap: .8rem; font-size: .85rem; color: var(--muted); }
.lp-proof__avatar { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #ddd; flex-shrink: 0; }
.lp-proof__coaches { margin: 1.4rem 0 0; font-size: .92rem; color: var(--muted); }
.lp-proof__coaches a { color: var(--fg); font-weight: 600; }
/* Video */
.lp-video { padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(1.4rem, 3vw, 2.4rem); }
.lp-video__inner .video-optin { max-width: none; margin: 0; }
/* FAQ */
.lp-faq { padding: clamp(1.8rem, 4vw, 3rem) 0 clamp(2.4rem, 5vw, 4rem); }
.lp-faq__inner { max-width: 900px; }
.lp-faq__item { border-top: 1px solid var(--line); }
.lp-faq__item:last-child { border-bottom: 1px solid var(--line); }
.lp-faq__item summary { list-style: none; cursor: pointer; padding: 1rem 2.4rem 1rem 0; position: relative; font-weight: 600; font-size: 1.02rem; }
.lp-faq__item summary::-webkit-details-marker { display: none; }
.lp-faq__item summary::after { content: "+"; position: absolute; right: .2rem; top: .75rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.6rem; color: var(--fl-red); }
.lp-faq__item[open] summary::after { content: "\2013"; }
.lp-faq__item p { margin: 0 0 1.1rem; color: var(--muted); line-height: 1.6; max-width: 46rem; }
/* Abschluss */
.lp-final { background: var(--fl-black); color: #fff; padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(2.8rem, 6vw, 5rem); border-top: 4px solid var(--fl-red); }
.lp-final__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.lp-final__card { background: #fff; color: var(--fg); display: flex; flex-direction: column; }
.lp-final__card img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top: 4px solid var(--fl-red); }
.lp-final__body { padding: 1.2rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.lp-final__body h3 { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; }
.lp-final__body p { margin: 0; font-size: .9rem; color: var(--muted); }
.lp-final__body p a { color: var(--fg); }
.lp-final__btn { margin-top: auto; width: 100%; padding: .9rem 1rem; }
.lp-final__more { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .82rem; letter-spacing: .04em; color: var(--fl-red); text-decoration: none; }
.lp-final__fine { margin: 1.6rem 0 0; font-size: .85rem; color: #bdbdbd; }
.lp-final__fine a { color: #fff; }
.lp-final__cta { text-align: center; }
.lp-final__cta > p { max-width: 40rem; margin: 0 auto 1.4rem; color: #cfcfcf; }
.lp-final__cta .lp-hero__btns { justify-content: center; }
/* Sticky-Button mobil */
.lp-sticky { display: none; }
@media (max-width: 900px) {
  .lp-sticky { display: flex; align-items: center; justify-content: center; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: .95rem 1rem; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .04em; text-decoration: none; box-shadow: 0 -4px 14px rgba(0,0,0,.25); }
  .lp-sticky:hover { background: #b80017; }
  .lp { padding-bottom: 0; }
  .lp ~ .site-footer { padding-bottom: 5.6rem; }
}
@media (min-width: 700px) {
  .lp-stats__grid { grid-template-columns: repeat(4, 1fr); }
  .lp-steps__list, .lp-proof__grid, .lp-final__grid { grid-template-columns: repeat(3, 1fr); }
}
/* Landingpage: echte Google-Bewertungen je Standort */
.lp-proof__ratings { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lp-proof__ratings a { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; background: #fff; border: 1px solid var(--line); font-size: .88rem; color: var(--fg); text-decoration: none; }
.lp-proof__ratings a:hover { border-color: var(--fg); }
.lp-proof__ratings strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }
.lp-proof__ratings span:last-child { color: var(--muted); }
.lp-proof__quote-stars { margin: 0 0 -.4rem; color: #f5a623; letter-spacing: .05em; font-size: .95rem; }
.lp-proof__avatar { display: inline-flex; align-items: center; justify-content: center; background: var(--fl-black); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }

/* Landingpage: Footer schliesst ohne weissen Streifen an den dunklen Abschluss an; Head-Coaches als Portraitreihe */
.lp ~ .site-footer { margin-top: 0; }
.lp-coaches { margin: 1.8rem 0 0; }
.lp-coaches__h { margin: 0 0 .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; }
.lp-coaches__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.lp-coaches__card { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid var(--line); padding: .6rem .9rem .6rem .6rem; text-decoration: none; color: var(--fg); transition: border-color .15s; }
.lp-coaches__card:hover { border-color: var(--fg); }
.lp-coaches__card img { width: 3.8rem; height: 3.8rem; object-fit: cover; object-position: center 22%; flex-shrink: 0; border-top: 0; }
.lp-coaches__card strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .95rem; line-height: 1.15; color: var(--fg); }
.lp-coaches__card > span { min-width: 0; }
.lp-coaches__card > span > span { display: block; font-size: .78rem; line-height: 1.2; color: var(--fl-red); text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.lp-coaches__more { margin: .8rem 0 0; font-size: .9rem; }
@media (min-width: 900px) { .lp-coaches__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 599px) { .lp-coaches__grid { grid-template-columns: 1fr; } .lp-coaches__card { padding: .6rem .9rem .6rem .6rem; } .lp-coaches__card strong { font-size: 1rem; } }

/* Landingpage-Hero: derselbe Aufbau wie der Startseiten-Hero (Wiedererkennung), mit Teamfoto und Anmelde-Botschaft. Entscheidung Kunde 2026-09-23. */
.lp-hero7 { padding: 0; }
.lp-hero7 .hm-hero__media img { object-position: center 20%; }
.lp-hero7__label { margin: 0 0 .7rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .04em; }
.lp-hero7 .hm-hero__cta .btn { padding: .95rem 1.7rem; font-size: 1rem; }
.lp-hero7__rating { color: #e6e6e6; text-decoration: none; }
.lp-hero7__rating:hover { color: #fff; }
.lp-hero7 .lp-hero__soft { margin-top: 1.3rem; }
@media (min-width: 1000px) { .lp-hero7 .hm-hero__media img { object-position: center 25%; } .lp-hero7 .hm-hero__media::after { background: linear-gradient(90deg, #0a0a0a 10%, rgba(10,10,10,.78) 36%, rgba(10,10,10,.22) 62%, rgba(10,10,10,.05) 100%); } }

/* Standortseiten: 360-Tour, Adress- und Zeitenblock aus site.json, Galerie mit Lightbox */
.standort__tour iframe { display: block; width: 100%; height: clamp(260px, 42vw, 500px); border: 0; margin: 0 0 1.4rem; }
.standort__info { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.standort__info-h { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); }
.standort__info p { margin: 0 0 1rem; line-height: 1.6; }
.standort__info p a { color: var(--fg); }
.standort__info .anm-sekundaer { margin: 0; }
.standort__zeiten { list-style: none; margin: 0; padding: 0; font-size: .95rem; }
.standort__zeiten li { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.standort__zeiten li:last-child { border-bottom: 0; }
.standort__zeiten span { color: var(--muted); }
.standort__zeiten strong { font-weight: 500; text-align: right; white-space: nowrap; }
.gallery img.gallery__item, .shell__main .gallery img.gallery__item { aspect-ratio: 4 / 3; object-fit: cover; margin: 0; border-top: 0; cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.gallery img.gallery__item:hover { transform: scale(1.03); opacity: .92; }
@media (min-width: 700px) { .standort__info { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .gallery { grid-template-columns: repeat(2, 1fr); } }

/* Slideshow (Standortseiten, assets/js/slideshow.js): Ueberblendung, Pfeile, Punkte */
.slideshow { position: relative; overflow: hidden; background: #111; border-top: 4px solid var(--fl-red); margin-bottom: 1.2rem; }
.slideshow__track { position: relative; aspect-ratio: 16 / 10; }
.slideshow__track img, .shell__main .slideshow__track img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; border-top: 0; opacity: 0; transition: opacity .7s ease; }
.slideshow__track img.is-active { opacity: 1; }
.slideshow__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 2.8rem; height: 2.8rem; border: 0; background: rgba(10,10,10,.55); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.slideshow__btn:hover, .slideshow__btn:focus-visible { background: var(--fl-red); outline: none; }
.slideshow__btn--prev { left: .8rem; } .slideshow__btn--next { right: .8rem; }
.slideshow__dots { position: absolute; left: 0; right: 0; bottom: .8rem; display: flex; justify-content: center; gap: .45rem; }
.slideshow__dot { width: .6rem; height: .6rem; padding: 0; border: 0; background: rgba(255,255,255,.5); cursor: pointer; transition: background .15s, transform .15s; }
.slideshow__dot.is-active { background: var(--fl-red); transform: scale(1.3); }
.slideshow:focus-visible { outline: 3px solid var(--fl-red); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .slideshow__track img { transition: none; } }

/* Kursplan: Wochentage auf schmalen Bildschirmen in einer Reihe ohne Abschneiden */
@media (max-width: 600px) { .kp-tage ul { gap: .3rem; overflow: visible; } .kp-tage li { flex: 1 1 0; min-width: 0; } .kp-tage a { min-width: 0; padding: .55rem .2rem; font-size: .9rem; } }
.fighter__specs--wide { grid-column: 1 / -1; }
.fighter__coachlink { margin: -.8rem 0 1.6rem; font-size: .92rem; color: var(--muted); }
.fighter__coachlink a { color: var(--fl-red); font-weight: 600; }

/* Fighter-Profil: chronologische Bilder-Slideshow, Hoch- und Querformat gemischt (contain), Bildunterschrift */
.fighter__slideshow { margin: 0 0 .4rem; }
.fighter > .wrap > .fighter__h2 { margin-top: 2rem; }
.slideshow--contain .slideshow__track { aspect-ratio: 16 / 10; background: #111; }
.slideshow--contain .slideshow__track img { object-fit: contain; }
.slideshow__caption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 2rem 3.5rem .6rem; text-align: center; font-size: .82rem; color: #fff; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.7) 100%); pointer-events: none; }
.slideshow--contain .slideshow__dots { bottom: 2.4rem; }

/* ===== Fighter-Profil: Fighter Card (hell), Portrait randlos links, Chips, Zahlenleiste, Erfolgs-Timeline ===== */
.fp-hero { display: grid; grid-template-columns: 1fr; background: #fff; color: var(--fg); border: 1px solid var(--line); border-top: 4px solid var(--fl-red); margin: .8rem 0 0; padding: 0; overflow: hidden; }
.fp-hero__photo { position: relative; background: #f4f4f4; }
.fp-hero__photo img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; border-top: 0; margin: 0; }
.fp-hero__ph { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 4; background: linear-gradient(135deg, #e6e6e6, #cfcfcf); }
.fp-hero__ph .lgo { font-size: 1.4rem; opacity: .5; }
.fp-hero__body { padding: clamp(1.4rem, 3vw, 2.4rem); display: flex; flex-direction: column; gap: .9rem; }
.fp-hero__cat { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; }
.fp-hero__cat a { color: var(--fl-red); text-decoration: none; }
.fp-hero__cat a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* Mehrere Kategorien je Fighter (2026-09-28) */
.listing__h2 a { color: inherit; text-decoration: none; }
.listing__h2 a:hover { color: var(--fl-red); }
.listing__h2-sub { display: block; margin-top: .15rem; font-family: system-ui, sans-serif; font-size: .82rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); }
.listing__sub { margin: -.6rem 0 .8rem; color: var(--muted); font-size: .95rem; }
.fp-hero__team { color: var(--muted); }
.fp-hero__name { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: .98; letter-spacing: -.01em; }
.fp-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.fp-chips li { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .75rem; border: 1.5px solid var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .8rem; letter-spacing: .05em; }
.fp-chips--gurt li { border-color: transparent; background: #f4f4f4; text-transform: none; font-family: var(--font); font-size: .82rem; }
.fp-chips__belt { width: 1.1rem; height: .45rem; background: #2e9e3a; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.fp-stats { margin: .4rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.2rem; }
.fp-stats > div { min-width: 0; }
.fp-stats dt { margin: 0 0 .1rem; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.fp-stats dd { margin: 0; display: flex; align-items: baseline; gap: .25rem; }
.fp-stats strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1; color: var(--fg); }
.fp-stats small { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .85rem; color: var(--muted); text-transform: uppercase; }
.fp-stats__text { font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important; line-height: 1.2 !important; overflow-wrap: anywhere; }
.fp-hero__coach { margin: 0; font-size: .88rem; }
.fp-hero__coach a { color: var(--fl-red); font-weight: 600; text-decoration: none; }
.fp-hero__coach a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fp-erfolge { margin: 1.8rem 0 0; }
.fp-timeline { list-style: none; margin: 0; padding: 0; }
.fp-timeline__item { display: grid; grid-template-columns: 3.6rem 1.4rem minmax(0, 1fr); align-items: start; column-gap: .4rem; position: relative; padding: 0 0 1rem; }
.fp-timeline__jahr { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .95rem; color: var(--fl-red); text-align: right; padding-right: .3rem; padding-top: .1rem; }
.fp-timeline__dot { position: relative; width: .8rem; height: .8rem; margin: .3rem auto 0; background: var(--fl-red); }
.fp-timeline__item::before { content: ""; position: absolute; left: calc(3.6rem + .4rem + .7rem - 1px); top: 1.1rem; bottom: -.3rem; width: 2px; background: var(--line); }
.fp-timeline__item.is-last::before { display: none; }
.fp-timeline__text { font-size: 1rem; line-height: 1.45; padding-top: .05rem; }
.fp-timeline__sub { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--muted); padding: .6rem 0 .6rem 5.4rem; }
.fighter .fighter__links { margin: 1.4rem 0 0; }
/* Die Shell-Regel ".shell__main section" setzt 2.25rem Unterabstand; die Karte braucht keinen (Bild schliesst buendig ab) */
.shell__main section.fp-hero { padding: 0; }
.shell__main section.fp-erfolge { padding-bottom: 0; }
@media (min-width: 640px) { .fp-hero { grid-template-columns: minmax(240px, 36%) minmax(0, 1fr); align-items: stretch; } .fp-hero__photo img { position: static; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; } .fp-hero__body { justify-content: center; } .fp-stats { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .fp-stats { grid-template-columns: repeat(auto-fit, minmax(6.5rem, max-content)); justify-content: start; gap: .8rem 1.8rem; } }

/* Fighter-Profil ohne rechte Spalte: Inhalt in voller Breite, Sidebar-Bausteine als dreispaltiges Band darunter */
.fighter--breit .wrap { max-width: 1240px; }
.fighter--breit section.fp-hero { padding: 0; }
.fighter--breit section.fp-erfolge { padding: 0; margin: 2rem 0 0; }
.fighter--breit .fighter__h2 { margin-top: 2rem; }
.fighter--breit .fp-erfolge .fighter__h2 { margin-top: 0; }
.fighter--breit > .wrap:first-child { padding-top: 1.5rem; }
.fighter__unten { margin-top: 2.5rem; padding-top: 2.5rem; padding-bottom: 3rem; border-top: 1px solid var(--line); }
.fighter__unten .sbB { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.fighter__unten .sbB__foot { grid-column: 1 / -1; padding-top: .6rem; }
@media (min-width: 900px) {
  .fighter__unten .sbB { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .fighter--breit .fp-hero { grid-template-columns: minmax(300px, 36%) minmax(0, 1fr); }
  .fighter--breit .fp-stats { grid-template-columns: repeat(auto-fit, minmax(6.5rem, max-content)); justify-content: start; gap: .8rem 2.2rem; }
  .fighter--breit .fp-timeline { columns: 2; column-gap: 3rem; }
  .fighter--breit .fp-timeline__item, .fighter--breit .fp-timeline__sub { break-inside: avoid; }
  .fighter--breit .slideshow--contain .slideshow__track { aspect-ratio: 16 / 9; }
}

/* Shell ohne rechte Spalte (Kontakt/Joomla): Inhalt volle Breite, Sidebar-Bausteine als Band darunter (Regeln von .fighter__unten) */
.shell--breit { grid-template-columns: minmax(0, 1fr); }
.shell-unten { max-width: 1240px; }
.shell-unten .sbB { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.shell-unten .sbB__foot { grid-column: 1 / -1; padding-top: .6rem; }
@media (min-width: 900px) { .shell-unten .sbB { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
/* Joomla-Seiten ohne Sidebar: Felder bis 40rem, FAQ zweispaltig auf dem Desktop */
.shell--breit .page-joomla .rsform-input-box, .shell--breit .page-joomla .rsform-text-box, .shell--breit .page-joomla .rsform-select-box { max-width: 40rem; }
.shell--breit .article__faq { max-width: none; }
@media (min-width: 900px) { .shell--breit .article__faq .faq { columns: 2; column-gap: 3rem; } .shell--breit .article__faq .faq__item { break-inside: avoid; } }

/* Coach-Profil: gleiche Karte wie das Fighter-Profil, Textbloecke (Ausbildung, Erfolge) als Karten mit Haken-Listen */
.coach--breit .wrap { max-width: 1240px; }
.coach--breit > .wrap { padding-top: 1.5rem; }
.coach--breit section.fp-hero { padding: 0; }
.cp-hero__intro { font-size: 1rem; }
.cp-hero__intro p { margin: 0 0 .7rem; }
.cp-hero__intro p:last-child { margin-bottom: 0; }
.cp-hero__intro ul { margin: 0; padding-left: 1.1rem; }
.cp-bloecke { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1.5rem 0 0; }
.coach--breit section.cp-block { padding: 1.3rem 1.4rem 1.2rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); }
.cp-block .fighter__h2 { margin: 0 0 .8rem; padding-left: 0; border-left: 0; }
.cp-block__body ul { list-style: none; margin: 0; padding: 0; }
.cp-block__body li { position: relative; padding: .35rem 0 .35rem 1.5rem; border-bottom: 1px solid var(--line); font-size: .95rem; }
.cp-block__body li:last-child { border-bottom: 0; }
.coach .fighter__h2.cp-video__h { margin-top: 3.5rem; } /* Abstand Video zu den Erfolgs-Bloecken (2026-09-28) */
.cp-block__body li::before { content: "\2713"; position: absolute; left: 0; top: .35rem; color: #0a7d22; font-weight: 700; }
.cp-block__body li strong, .cp-block__body li b { font-weight: 600; }
.cp-block__body p { margin: .8rem 0 0; font-size: .95rem; }
.cp-block__body p:first-child { margin-top: 0; }
.coach--breit .media-nav { margin-top: 2rem; }
@media (min-width: 900px) { .cp-bloecke { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

/* Coach-Profil: Bildergalerie unten (Hochformat 3:4), Klick oeffnet die Lightbox */
.cp-galerie__h { margin-top: 2rem; }
.cp-galerie { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; margin: 0 0 .5rem; }
.cp-galerie img, .shell__main .cp-galerie img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; margin: 0; border-top: 0; cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.cp-galerie img:hover, .cp-galerie img:focus-visible { transform: scale(1.02); opacity: .92; outline: none; }
.cp-galerie img:focus-visible { box-shadow: 0 0 0 3px var(--fl-red); }
@media (min-width: 700px) { .cp-galerie { grid-template-columns: repeat(4, 1fr); } }

/* Kontaktseite (Neugestaltung 2026-09-29): Kopf mit drei Kontaktwegen, Formular zweispaltig mit
   Seitenspalte "Direkt starten", Standortkarten darunter. Hell, Radius 0, Inhalte mit Abstand zum Rahmen. */
.kontakt-seite .kx-kopf { margin-bottom: clamp(2rem, 4vw, 3rem); }
.kx-eyebrow { margin: 0 0 .35rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-red); }
.kx-lead { max-width: 44rem; }
.kx-wege { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.6rem; }
.kx-weg { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: 1.3rem 1.3rem 1.2rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fg); color: var(--fg); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
a.kx-weg:hover { border-color: var(--fg); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.kx-weg--wa { border-top-color: var(--fl-green); }
.kx-weg--tel { border-top-color: var(--fl-red); }
.kx-weg__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin-bottom: .35rem; background: #f4f4f4; color: var(--fg); }
.kx-weg--wa .kx-weg__icon { background: #e9f5e9; color: var(--fl-green); }
.kx-weg--tel .kx-weg__icon { background: #fdeef0; color: var(--fl-red); }
.kx-weg__titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.15rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-weg__text { font-size: .9rem; line-height: 1.5; color: var(--muted); }
.kx-weg__mehr { margin-top: auto; padding-top: .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; color: var(--fl-red); }
.kx-weg--wa .kx-weg__mehr { color: var(--fl-green); }
.kx-weg__nummern { list-style: none; margin: .15rem 0 0; padding: 0; }
.kx-weg__nummern li { display: flex; justify-content: space-between; gap: .8rem; padding: .4rem 0; border-top: 1px solid var(--line); font-size: .92rem; }
.kx-weg__nummern li span { color: var(--muted); }
.kx-weg__nummern a { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; color: var(--fg); text-decoration: none; white-space: nowrap; }
.kx-weg__nummern a:hover { color: var(--fl-red); }

.kx-haupt { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.kx-layout { display: block; }
.kx-form { scroll-margin-top: 150px; padding: clamp(1.4rem, 3vw, 2.2rem); background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); }
.kx-h2 { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 500; text-transform: uppercase; letter-spacing: .02em; }
.kx-form__text { margin: 0 0 1.6rem; max-width: 40rem; color: var(--muted); line-height: 1.6; }

/* RSForm im Raster: kurze Felder paarweise, Rest volle Breite */
.kontakt-seite .kontakt-formular { margin: 0; }
.kontakt-seite .kontakt-formular .formContainer .uk-width-12-12 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.2rem; }
.kontakt-seite .kontakt-formular .rsform-block { grid-column: 1 / -1; margin-bottom: 1.1rem; }
.kontakt-seite .kontakt-formular :is(.rsform-block-voername, .rsform-block-name, .rsform-block-email, .rsform-block-telefon) { grid-column: auto; }
.kontakt-seite .kontakt-formular .rsform-block-anrede { order: 1; }
.kontakt-seite .kontakt-formular .rsform-block-voername { order: 2; }
.kontakt-seite .kontakt-formular .rsform-block-name { order: 3; }
.kontakt-seite .kontakt-formular .rsform-block-email { order: 4; }
.kontakt-seite .kontakt-formular .rsform-block-telefon { order: 5; }
.kontakt-seite .kontakt-formular .rsform-block-firma { order: 6; }
.kontakt-seite .kontakt-formular .rsform-block-location { order: 7; }
.kontakt-seite .kontakt-formular .rsform-block-mitteilung { order: 8; }
.kontakt-seite .kontakt-formular .rsform-block-capcha { order: 9; }
.kontakt-seite .kontakt-formular .rsform-block-dsgvo { order: 10; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.kontakt-seite .kontakt-formular .rsform-block-senden { order: 11; margin-bottom: 0; }
.kontakt-seite .kontakt-formular :is(.rsform-block-wejscie, .rsform-block-trenner) { display: none; }
.kontakt-seite .kontakt-formular :is(.rsform-input-box, .rsform-text-box, .rsform-select-box) { width: 100%; max-width: none; }
.kontakt-seite .kontakt-formular .rsform-text-box { min-height: 9rem; }
.kontakt-seite .kontakt-formular .rsform-block-capcha .rsform-input-box { max-width: 14rem; }
.kontakt-seite .kontakt-formular .rsform-submit-button { min-width: 12rem; }
.kontakt-seite .kontakt-formular .rsform-captcha-box { display: block; width: 14rem; max-width: 100%; box-sizing: border-box; padding: .7rem .9rem; font: inherit; color: var(--fg); background: #fff; border: 1.5px solid var(--line); border-radius: 0; }
.kontakt-seite .kontakt-formular .rsform-block-capcha a { display: inline-block; margin: .5rem 0 0; }

/* Reihe "Direkt starten" unter dem Formular, volle Breite (2026-09-29) */
.kx-direkt, .shell__main section.kx-direkt { margin-top: clamp(1.2rem, 2.5vw, 1.8rem); padding: clamp(1.4rem, 3.5vw, 2.4rem); background: #f6f6f6; border: 1px solid var(--line); }
.kx-direkt__titel { margin: 0 0 1.1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-direkt__karten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.kx-direkt__karte { display: flex; flex-direction: column; gap: .3rem; padding: 1.3rem 1.4rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fg); color: var(--fg); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.kx-direkt__karte:hover { border-color: var(--fg); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.kx-direkt__karte--abo { border-top-color: var(--fl-red); }
.kx-direkt__label { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.05rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-direkt__karte--abo .kx-direkt__label { color: var(--fl-red); }
.kx-direkt__label::after { content: " →"; }
.kx-direkt__text { font-size: .9rem; line-height: 1.55; color: var(--muted); }
.kx-direkt__mail { margin: 1.1rem 0 0; font-size: .92rem; color: var(--muted); }
.kx-direkt__mail a { color: var(--fl-red); font-weight: 600; text-decoration: none; }
.kx-direkt__mail a:hover { text-decoration: underline; }

.kx-standorte { margin-bottom: clamp(1rem, 3vw, 2rem); }
.kx-standorte .kx-h2 { margin-bottom: 1rem; }

@media (max-width: 900px) {
  .kx-wege { grid-template-columns: 1fr; }
  .kx-direkt__karten { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .kontakt-seite .kontakt-formular .formContainer .uk-width-12-12 { grid-template-columns: 1fr; }
  /* Handy: Kontaktwege kompakt, das Formular folgt direkt */
  .kx-wege { gap: .7rem; margin-top: 1.2rem; }
  .kx-weg--form { display: none; }
  .kx-weg { padding: .9rem 1rem; }
  .kx-weg--wa { flex-direction: row; align-items: center; gap: .8rem; }
  .kx-weg--wa .kx-weg__icon { margin: 0; }
  .kx-weg--wa :is(.kx-weg__text, .kx-weg__mehr) { display: none; }
  .kx-weg--wa .kx-weg__titel::after { content: " · Chat öffnen"; font-size: .85rem; color: var(--fl-green); }
  .kx-weg--tel { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: .8rem; }
  .kx-weg--tel .kx-weg__icon { margin: 0; }
  .kx-weg--tel .kx-weg__nummern { flex-basis: 100%; }
}
