/* Schriften liegen auf dem eigenen Server. Keine Verbindung zu Google beim Seitenaufruf.
   Quelle: Barlow von Jeremy Tribby, SIL Open Font License 1.1, Teilmenge latin. */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(schriften/barlow-400.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(schriften/barlow-500.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(schriften/barlow-600.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url(schriften/barlow-700.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(schriften/barlow-condensed-700.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(schriften/barlow-condensed-800.woff2) format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(schriften/barlow-semi-condensed-500.woff2) format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(schriften/barlow-semi-condensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(schriften/barlow-semi-condensed-700.woff2) format('woff2')}


/* Gestaltung der gesamten Website.
 *
 * Diese Datei war bis zum 06.10.2026 ein Erzeugnis: Sie wurde aus dem
 * <style>-Block von public/index.html gezogen. Seit die Startseite selbst aus
 * dem Bauschritt kommt, ist das hier die Quelle und wird von Hand gepflegt.
 *
 * Zusammen mit schriften.css wird daraus
 * public/stil.css. Gebaut wird mit: python3 bau/bauen.py
 */

/* Schriften liegen auf dem eigenen Server. Keine Verbindung zu Google beim Seitenaufruf.
   Quelle: Barlow von Jeremy Tribby, SIL Open Font License 1.1, Teilmenge latin. */


:root{
  --img-hall:url("bilder/halle.jpg");
  --img-coach:url("bilder/daniel.jpg");
  --img-wide:url("bilder/halle-weit.jpg");
  --logo:url("bilder/logo.png");

  --power:#C8102E; --power-hot:#E11631; --power-text:#FF3D52; --rule-soft2:#232327;
  --ink:#0B0B0C; --steel:#141416; --iron:#1B1B1F;
  --rule:#2C2C31; --smoke:#B0ADB2; --smoke-dim:#6E6B70;--ash:#D8D5D1;
  --chalk:#EFEDEA; --paper:#EAE7E2; --graphite:#1A181B;

  --disp:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --body:"Barlow","Helvetica Neue",Arial,sans-serif;
  --mono:"Barlow Semi Condensed","Barlow Condensed","Arial Narrow",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--chalk);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--power-hot);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}


/* ============ SHARED PAGE PRIMITIVES ============ */
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(18px,4vw,44px)}
.mono{font-family:var(--mono);font-size:14px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.h2{color:#fff;font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:.005em;
  font-size:clamp(28px,4vw,46px);margin:0;text-wrap:balance}
.h3{color:#fff;font-family:var(--disp);font-weight:700;text-transform:uppercase;line-height:1;letter-spacing:.02em;font-size:20px;margin:0}
.lede{max-width:64ch;font-size:17px;margin:16px 0 0}
.btn{display:inline-block;font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  font-size:18px;line-height:1;padding:15px 26px;background:var(--power);color:#fff;text-decoration:none;border:0;cursor:pointer}
.btn:hover{background:var(--power-hot)}
.btn.ghost{background:transparent;border:1px solid currentColor}
.sec{padding:clamp(46px,6.5vw,86px) 0}


/* ============ V1 — DIE HALLE ============ */

/* Kopfbereich, zwei Varianten am Wurzelelement:
   .hdr-over  legt Kopf und Navigation über das Bild (Startseite)
   .hdr-solid stellt sie als eigenen Block davor (Unterseiten) */

.top{position:relative;z-index:6}
.hdr-over .top{position:absolute;top:0;left:0;right:0}
.hdr-over .hero{min-height:min(86vh,740px)}
.hdr-over nav{border-bottom:0}
.hdr-over .hero .in{padding-top:150px}
.hdr-over .hero .scrim{position:absolute;top:0;left:0;right:0;height:340px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,6,8,.95) 0,rgba(6,6,8,.82) 90px,rgba(6,6,8,.40) 170px,rgba(6,6,8,.12) 240px,rgba(6,6,8,0) 100%)}
.hdr-over .logo,.hdr-over .nl{filter:drop-shadow(0 1px 10px rgba(0,0,0,.6))}
.hdr-over .nl{color:#fff}

.hdr-solid .top{position:relative;background:var(--ink)}
.bar{background:var(--power);color:#fff;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;text-align:center;padding:9px 16px}
.bar b{font-weight:600;border-bottom:1px solid rgba(255,255,255,.6)}
nav .btn .kurz{display:none}
nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid rgba(239,237,234,.14)}
.logo{width:132px;height:42px;background:var(--logo) left center/contain no-repeat;flex:0 0 auto}
.nl{display:flex;gap:22px;font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:15px;letter-spacing:.06em;color:var(--chalk)}
.nl a{color:inherit;text-decoration:none;padding-bottom:3px;border-bottom:2px solid transparent}
.nl a:hover,.nl a:focus-visible{border-bottom-color:var(--power)}
.hero{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;overflow:hidden}
.hero .bg{position:absolute;inset:0;background:var(--img-hall) center 42%/cover no-repeat}
.hero .veil{position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(8,8,10,.58) 0%,rgba(8,8,10,.34) 34%,rgba(8,8,10,.06) 62%,rgba(8,8,10,0) 78%),
  linear-gradient(180deg,rgba(8,8,10,.5) 0%,rgba(8,8,10,.08) 26%,rgba(8,8,10,.5) 68%,rgba(8,8,10,.92) 100%)}
.hero .in{position:relative;z-index:2;width:100%;padding:64px 0 52px}
h1{color:#fff;font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:.004em;
  font-size:clamp(34px,5.6vw,72px);margin:0;color:#fff;max-width:20ch;text-wrap:balance;
  text-shadow:0 2px 30px rgba(0,0,0,.5)}
.sub{max-width:52ch;margin:22px 0 0;font-size:clamp(16px,1.5vw,19px);color:var(--chalk);text-shadow:0 1px 18px rgba(0,0,0,.55)}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;align-items:center}
.cta .fine{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--smoke)}
.facts{background:var(--steel);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.facts .in{padding-top:0;padding-bottom:0}
.facts .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule)}
.facts .f{background:var(--steel);padding:26px 24px 28px;display:flex;flex-direction:column}
.facts .k{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--power-text)}
.facts .v{font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:1;letter-spacing:.01em;
  font-size:clamp(26px,2.5vw,34px);color:#fff;margin-top:12px}
.facts p{margin:10px 0 0;font-size:15px;line-height:1.5;color:var(--ash)}
.facts address{margin:12px 0 0;font-style:normal;font-family:var(--mono);font-size:16px;font-weight:600;
  letter-spacing:.04em;line-height:1.41;color:var(--chalk);font-variant-numeric:tabular-nums}
.facts .rt{margin-top:2px;font-family:var(--disp);font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;font-size:16px;line-height:1.41;color:var(--power-text);text-decoration:none;
  border-bottom:1px solid var(--power);align-self:flex-start;padding-bottom:1px}
.facts .rt:hover{color:#fff;border-color:#fff}
.halle{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,54px);align-items:center}
.duo{position:relative;isolation:isolate;overflow:hidden;background:#111}
.duo .im{position:absolute;inset:0;background-size:cover;background-position:center}
.halle .ph{aspect-ratio:4/3}
/* Gruppe: Szenenliste statt drittem Kachelraster */
.wenn{margin-top:32px;border-top:1px solid var(--rule)}
.wenn>div{display:grid;grid-template-columns:72px 1fr;gap:0 10px;padding:22px 0;border-bottom:1px solid var(--rule-soft2)}
.wenn .n{font-family:var(--disp);font-weight:800;font-size:30px;line-height:1;color:var(--power-text)}
.wenn h4{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:20px;letter-spacing:.03em;margin:0 0 8px;color:#fff}
.wenn p{margin:0;font-size:16px;line-height:1.55;color:var(--ash);max-width:76ch}
.rw{margin-top:clamp(22px,2.6vw,30px)}
.rw .grw-net-comment{background:var(--steel)!important;border:1px solid var(--rule)!important;border-radius:0!important}
.rw .grw-net-comment-more-less{color:var(--power-text)!important;font-weight:600}
.rw .grw-net-splide__arrow{background:var(--iron)!important;border:1px solid var(--rule)!important;
  border-radius:0!important;color:var(--chalk)!important;opacity:1!important}
.rw .grw-net-splide__arrow:hover{background:var(--power)!important;border-color:var(--power)!important;color:#fff!important}
.rw .grw-net-splide__arrow svg,.rw .grw-net-splide__arrow path{fill:currentColor!important;stroke:currentColor!important}
.roe{margin:26px 0 0;padding-left:20px;border-left:3px solid var(--power);font-size:17px;line-height:1.55;color:var(--chalk);max-width:80ch}
.roe span{display:block;margin-top:8px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--smoke)}
/* Overlays: Kursplan und Anfrage teilen sich den Rahmen */
.md{width:min(1060px,94vw);max-width:none;height:min(86vh,920px);padding:0;border:1px solid var(--rule);
  background:var(--steel);color:var(--chalk);overflow:hidden}
.md.md-s{width:min(720px,94vw);height:fit-content;max-height:92vh}
.md::backdrop{background:rgba(6,6,8,.84)}
.md-h{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;
  border-bottom:1px solid var(--rule);background:var(--iron)}
.md-h .mono{color:var(--power-text);font-size:12.5px}
.md-a{display:flex;align-items:center;gap:16px}
.md-x{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ash);text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
.md-x:hover{color:#fff;border-bottom-color:var(--power)}
.md-c{appearance:none;border:0;background:var(--power);color:#fff;width:34px;height:34px;
  font-size:21px;line-height:1;cursor:pointer;font-family:var(--body);flex:0 0 auto}
.md-c:hover{background:var(--power-hot)}
.md-b{height:calc(100% - 61px);background:#fff}
.md.md-s .md-b{height:auto;background:var(--steel);padding:clamp(20px,3vw,30px);overflow:auto;max-height:calc(92vh - 61px)}
.md iframe{display:block;width:100%;height:100%;border:0}
@media (max-width:560px){.md-x{display:none}}

/* Anfrageformular */
.md .fh{margin:0 0 22px;font-size:16px;line-height:1.55;color:var(--ash)}
.md .fr{margin-bottom:16px}
.md .fr2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.md label{display:block}
.md label>span{display:block;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--smoke);margin-bottom:7px}
.md label>span i{font-style:normal;color:var(--power-text)}
.md input[type=text],.md input[type=email],.md input[type=tel],.md select,.md textarea{
  width:100%;background:var(--ink);border:1px solid var(--rule);color:var(--chalk);
  font-family:var(--body);font-size:16px;padding:12px 14px;border-radius:0;appearance:none}
.md textarea{resize:vertical;line-height:1.5}
.md select{background-image:linear-gradient(45deg,transparent 50%,var(--smoke) 50%),linear-gradient(135deg,var(--smoke) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 13px) 21px;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.md input:focus,.md select:focus,.md textarea:focus{outline:0;border-color:var(--power);box-shadow:inset 0 0 0 1px var(--power)}
.md input::placeholder,.md textarea::placeholder{color:var(--smoke-dim)}
.md .fc{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;margin:4px 0 22px}
.md .fc input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--power)}
.md .fc span{font-size:14.5px;line-height:1.5;color:var(--ash);font-family:var(--body);letter-spacing:0;text-transform:none}
.md .fc a{color:var(--chalk)}
.md .fa{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;padding-top:6px;border-top:1px solid var(--rule)}
.md .fa .btn{margin-top:18px}
.md .fn{margin-top:18px;font-size:14.5px;color:var(--ash)}
.md .fn a{color:var(--chalk)}
.md .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.md .ffehler{margin:0 0 4px;padding:12px 14px;border-left:3px solid var(--power);background:rgba(200,16,46,.10);font-size:14.5px;line-height:1.55;color:var(--chalk)}
.md :user-invalid{border-color:var(--power)}
.md .fok .mono{display:block;color:var(--power-text);font-size:12.5px;margin-bottom:10px}
.md .fok p{margin:14px 0 22px;font-size:16px;line-height:1.6;color:var(--ash)}
.md .fok a{color:var(--chalk)}
@media (max-width:620px){.md .fr2{grid-template-columns:1fr}}
/* Fußzeile */
.foot{border-top:1px solid var(--rule);background:#0e0e10;padding:clamp(40px,5vw,64px) 0 28px}
.foot-g{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(24px,3vw,44px)}
.foot .logo{width:150px;height:46px}
.foot .mono{display:block;color:var(--power-text);font-size:12.5px}
.foot p{margin:12px 0 0;font-size:15.5px;line-height:1.75;color:var(--ash)}
.foot .adr{margin-top:16px}
.foot .kon{margin-top:14px}
.soz{display:flex;gap:10px;margin-top:18px}
.soz a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--rule);color:var(--ash)}
.soz a:hover{background:var(--power);border-color:var(--power);color:#fff}
.soz svg{width:19px;height:19px;fill:currentColor;display:block}
.foot a{color:var(--ash);text-decoration:none;border-bottom:1px solid var(--rule)}
.foot a:hover{color:#fff;border-bottom-color:var(--power)}
.foot-b{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:clamp(30px,3.6vw,48px);
  padding-top:18px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--smoke)}
.foot-b span:first-child{color:var(--power-text)}
.props{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:34px}
.props>div{background:var(--steel);padding:26px 22px}
.props .n{font-family:var(--disp);font-weight:800;font-size:44px;line-height:1;color:var(--power-text)}
.props .n em{font-family:var(--mono);font-style:normal;font-weight:600;font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:var(--smoke);vertical-align:.18em;margin-left:2px}
.props h4{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:18px;letter-spacing:.03em;margin:12px 0 8px;color:#fff}
.props p{margin:0;font-size:15px;color:var(--ash);line-height:1.5}
.board{background:var(--steel);border:1px solid var(--rule);border-left:3px solid var(--power);padding:clamp(22px,3vw,34px);
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
.bd{font-family:var(--mono);font-variant-numeric:tabular-nums}
.bd-h{display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  font-size:15px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--power-text);
  border-bottom:1px solid var(--power);padding-bottom:10px;margin-bottom:18px}
.bd-blk{margin-bottom:18px}
.bd-t{display:flex;gap:12px;align-items:baseline;font-size:19px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:#fff;margin-bottom:6px}
.bd-t .p{color:var(--smoke-dim);min-width:1.5em}
.bd-t b{margin-left:auto;color:var(--power-text);font-weight:700}
.bd-blk.hi .bd-t{color:var(--power-text)}
.bd-l{display:grid;grid-template-columns:2.6em 1fr auto;gap:0 12px;padding:4px 0 4px 2.6em;
  font-size:17px;font-weight:500;letter-spacing:.04em;color:var(--chalk);border-bottom:1px solid var(--rule-soft2)}
.bd-l .rep{color:#fff;font-weight:700;text-align:right}
.bd-l .w{color:var(--smoke);font-size:15px}
.bd-f{margin-top:18px;font-size:14px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--smoke-dim)}
.board .tr{border-left:2px solid var(--power);padding-left:16px;font-size:15.5px;color:var(--ash);line-height:1.55}
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.flow>div{border:1px solid var(--rule);background:var(--steel);padding:20px}
.flow .t{font-family:var(--mono);font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--power-text)}
.flow .m{font-family:var(--disp);font-weight:800;font-size:32px;line-height:1;margin-top:8px;color:#fff}
.flow p{margin:8px 0 0;font-size:14.5px;color:var(--ash);line-height:1.5}
/* Vergleich: zwei Karten, ENFORCE zuerst */
.gleich{margin:22px 0 0;font-size:16.5px;line-height:1.6;color:var(--ash);max-width:92ch}
.gleich b{color:#fff;font-weight:600}
.gg{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,22px);margin-top:22px;align-items:start}
.gk{border:1px solid var(--rule);background:var(--steel);padding:clamp(22px,2.4vw,30px)}
.gk.en{background:rgba(200,16,46,.10);border-color:rgba(200,16,46,.45)}
.gk .sub{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--smoke)}
.gk.en .sub{color:var(--power-text)}
.gk h3{margin-top:4px;color:#fff}
.gk ul{margin:18px 0 0;padding:0;list-style:none}
.gk li{padding:15px 0;border-top:1px solid var(--rule-soft2);font-size:16px;line-height:1.45;
  color:var(--chalk);font-weight:500;min-height:92px}
.gk.en li{color:#fff;font-weight:600}
.gk li i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--smoke);margin-bottom:5px}
.gk.en li i{color:var(--power-text)}
.gk li.ctazeile{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.btn.mini{font-size:15px;padding:11px 18px;white-space:nowrap}
.vnote{max-width:min(68%,100ch);margin:28px 0 0;font-size:16px;line-height:1.6;color:var(--ash)}
@media (max-width:860px){.vnote{max-width:none}}
.cmp{width:100%;border-collapse:collapse;margin-top:28px;font-size:15.5px;min-width:520px}
.cmp th,.cmp td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--rule)}
.cmp thead th{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--power-text);background:var(--iron)}
.cmp td{color:var(--ash)}
.cmp td:first-child{color:var(--chalk);font-weight:500}
.cmp td:last-child{color:#fff;font-weight:600}
.scrollx{overflow-x:auto;border:1px solid var(--rule);background:var(--steel)}
.team{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3.5vw,46px);align-items:center}
.team .ph{aspect-ratio:3/2}
.team>*{min-width:0}
.wlink{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.wlink:hover{color:#fff;border-bottom-color:var(--power)}
.refs{margin-top:26px;padding-top:20px;border-top:1px solid var(--rule)}
.refs .mono{display:block;font-size:12.5px;color:var(--smoke)}
.reflist{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin-top:14px}
.ref{background:var(--steel);padding:18px 16px 16px;display:flex;flex-direction:column;align-items:center;text-align:center}
.ref .rl{width:100%;height:60px;background:center/contain no-repeat;margin-bottom:12px}
.ref .rl.rnd{height:54px}
.ref b{font-family:var(--disp);font-weight:700;text-transform:uppercase;letter-spacing:.02em;
  font-size:14px;line-height:1.15;color:var(--chalk);text-wrap:balance}
.ref .rs{margin-top:5px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--smoke)}
.quals{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.quals span{font-family:var(--mono);font-size:12px;letter-spacing:.11em;text-transform:uppercase;border:1px solid var(--rule);padding:5px 9px;color:var(--smoke)}
.book{position:relative;overflow:hidden;background:#0e0e10;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.bookph{position:absolute;right:0;top:0;bottom:0;width:46%;background:var(--img-hall) center/cover no-repeat;
  filter:none}
.bookph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#0e0e10 0%,rgba(14,14,16,.82) 38%,rgba(14,14,16,.22) 100%)}
.book .wrap{position:relative;z-index:2}
.book .in{max-width:min(760px,100%)}
.ab{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--rule)}
.ab li{display:grid;grid-template-columns:44px 1fr;gap:0 8px;align-items:baseline;padding:14px 0;
  border-bottom:1px solid var(--rule-soft2);font-size:16.5px;line-height:1.5;color:var(--chalk)}
.ab span{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.13em;color:var(--power-text)}
.kpnote{margin:16px 0 0;font-size:15.5px;line-height:1.5;color:var(--ash);max-width:60ch}
.leiter{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:28px}
.lt{background:var(--steel);padding:clamp(22px,2.4vw,30px)}
.lt.hi{background:rgba(200,16,46,.10);box-shadow:inset 3px 0 0 var(--power)}
.lt .l{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--smoke)}
.lt.hi .l{color:var(--power-text)}
.lt .v{font-family:var(--disp);font-weight:800;font-size:clamp(38px,4vw,54px);line-height:1;color:#fff;margin-top:10px}
.lt .v.red{color:var(--power-text)}
.lt .v .alt{font-size:.5em;color:var(--smoke);text-decoration:line-through;margin-right:14px;vertical-align:.32em}
.lt b{display:block;margin-top:14px;font-family:var(--disp);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:19px;color:#fff}
.lt p{margin:8px 0 0;font-size:15.5px;line-height:1.5;color:var(--ash)}
.price{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-top:0}
.price>div{background:var(--steel);padding:22px}
.price .l{font-family:var(--mono);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--smoke)}
.price .v{font-family:var(--disp);font-weight:800;font-size:34px;line-height:1;color:#fff;margin-top:8px}
.price .v.red{color:var(--power-text)}
.price .s{font-size:14px;color:var(--ash);margin-top:8px;line-height:1.45}
details{border-bottom:1px solid var(--rule);padding:16px 0}
summary{cursor:pointer;font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:18px;letter-spacing:.02em;color:#fff;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";float:right;color:var(--power-text);font-family:var(--mono)}
details[open] summary::after{content:"–"}
details p{margin:12px 0 0;color:var(--ash);font-size:15.5px;max-width:74ch}
.final{background:var(--steel);border-top:1px solid var(--rule)}
.foot .dis{margin:clamp(28px,3.4vw,44px) 0 0;font-size:14px;line-height:1.6;color:var(--ash);max-width:88ch}
.weg{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:32px}
.weg>div{background:var(--steel);padding:22px 20px}
.weg .mono{color:var(--power-text);display:block;margin-bottom:10px}
.weg h4{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:17px;letter-spacing:.03em;margin:0 0 8px;color:#fff}
.weg p{margin:0;font-size:15px;color:var(--ash);line-height:1.5}
.zeiten{width:100%;border-collapse:collapse;font-size:15.5px;min-width:520px}
.zeiten th,.zeiten td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--rule)}
.zeiten thead th{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--power-text);background:var(--iron)}
.zeiten td{color:var(--ash);font-variant-numeric:tabular-nums}
.zeiten td:first-child{color:var(--chalk);font-weight:500}
.rtz{display:inline-block;padding-left:22px;color:var(--chalk);text-decoration:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FF3D52'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") left center/13px 13px no-repeat;border-bottom:1px solid transparent}
.rtz:hover,.rtz:focus-visible{color:#fff;border-bottom-color:var(--power)}
.zhin{margin:16px 0 0;font-size:15px;line-height:1.5;color:var(--ash)}


/* ============ RESPONSIVE ============ */
@media (max-width:980px){
  .halle,.team{grid-template-columns:1fr}
  .props,.flow{grid-template-columns:1fr}
  .foot-g{grid-template-columns:1.2fr 1fr}
  .price,.weg{grid-template-columns:repeat(2,1fr)}
  .leiter{grid-template-columns:1fr}
  .gg{grid-template-columns:1fr}
  .gk li{min-height:0}
  .foot-g{grid-template-columns:1fr}
  .wenn>div{grid-template-columns:1fr;gap:8px}
  .facts .grid{grid-template-columns:repeat(2,1fr)}
  .board{grid-template-columns:1fr}
}
@media (max-width:680px){
  .nl{display:none}
  /* Kopf-CTA: kurzer Text, schmalere Flaeche */
  nav .btn{font-size:16px;padding:13px 18px}
  nav .btn .lang{display:none}
  nav .btn .kurz{display:inline}
  /* Vereinswappen liegen nebeneinander und werden geschoben */
  .reflist{grid-template-columns:none;grid-auto-flow:column;
    grid-auto-columns:minmax(228px,1fr);overflow-x:auto;
    scroll-snap-type:x proximity;overscroll-behavior-x:contain}
  .reflist .ref{scroll-snap-align:start}
  .price,.weg{grid-template-columns:1fr}
  .facts .grid{grid-template-columns:1fr}
  .gg{grid-template-columns:1fr}
  .gk li{min-height:0}
  .foot-g{grid-template-columns:1fr}
  .wenn>div{grid-template-columns:1fr;gap:8px}
}
html,body{margin:0;padding:0;background:var(--ink)}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
img{max-width:100%}

/* ===========================================================================
   Bausteine, die es auf der alten Startseite noch nicht gab und die mit den
   Unterseiten dazugekommen sind. Sie gelten fuer alle Seiten.
   =========================================================================== */

/* Was die Startseite inline an einzelnen Stellen setzt, steht hier als Regel.
   Gerendert kommt dasselbe heraus, das Markup bleibt aber lesbar. */
.mono.rot{color:var(--power-text)}
.sec .mono + .h2{margin-top:14px}
.sec .lede{color:var(--ash)}
.sec .lede.hell{color:var(--chalk)}

/* Etwas flacherer Seitenkopf als auf der Startseite, sonst steht der Inhalt zu tief */

/* Titelblock der Textseiten */
.kopf{padding:clamp(40px,6vw,76px) 0 clamp(24px,3vw,34px);border-bottom:1px solid var(--rule)}
.kopf h1{font-size:clamp(34px,5vw,60px);margin:14px 0 0}

/* Inhaltsband fuer lange Flie\00dftexte */
.txt{padding:clamp(34px,4.4vw,60px) 0 clamp(50px,6vw,84px);max-width:80ch}
.txt h2{color:#fff;font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:1;
  letter-spacing:.01em;font-size:clamp(24px,3vw,34px);margin:clamp(34px,4vw,52px) 0 14px}
.txt h3{color:#fff;font-family:var(--disp);font-weight:700;text-transform:uppercase;line-height:1.1;
  letter-spacing:.03em;font-size:20px;margin:32px 0 10px}
.txt h4{font-family:var(--mono);font-weight:600;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  margin:24px 0 8px;color:var(--power-text)}
.txt p{margin:0 0 14px;font-size:16.5px;color:var(--ash)}
.txt ul,.txt ol{margin:0 0 16px;padding-left:22px;color:var(--ash);font-size:16.5px}
.txt li{margin:0 0 7px}
.txt strong,.txt b{color:#fff;font-weight:600}
.txt a{color:var(--chalk);text-decoration:none;border-bottom:1px solid var(--rule)}
.txt a:hover{color:#fff;border-bottom-color:var(--power)}
.txt table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:15.5px}
.txt th,.txt td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule);color:var(--ash)}
.txt th{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--smoke)}

/* Mehrere Absaetze am Stueck, im Ma\00df der Lede */
.txtblock p{margin:16px 0 0;font-size:clamp(16px,1.15vw,17.5px);line-height:1.7;color:var(--ash);max-width:76ch}
.txtblock p:first-child{margin-top:0}
.txtblock strong{color:#fff;font-weight:600}

/* Faktenkacheln der Startseite, hier auch zu dritt */
.facts.frei{background:transparent;border:0}
.facts.frei .grid{border:1px solid var(--rule);margin-top:26px}
.grid.drei{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.grid.drei{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.grid.drei{grid-template-columns:1fr}}

/* Hakenliste, gibt es auf der Startseite nicht */
.haken{list-style:none;margin:22px 0 0;padding:0;max-width:72ch}
.haken li{position:relative;padding:11px 0 11px 30px;border-bottom:1px solid var(--rule-soft2);
  font-size:16.5px;line-height:1.6;color:var(--ash)}
.haken li::before{content:"";position:absolute;left:0;top:19px;width:11px;height:2px;background:var(--power)}
.haken li b{color:#fff;font-weight:600}

/* Vokabeltabelle */
.vok{width:100%;border-collapse:collapse;font-size:15.5px}
.vok th,.vok td{text-align:left;padding:10px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.vok thead th{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--power-text);background:var(--iron)}
.vok td:first-child{font-family:var(--mono);font-weight:600;letter-spacing:.06em;color:#fff;white-space:nowrap}
.vok td{color:var(--ash)}
.vokgruppe{margin-top:clamp(30px,3.6vw,46px)}

/* Arbeitsstand und offene Stellen */
.luecke{background:rgba(200,16,46,.2);border-bottom:1px dashed var(--power-text);
  padding:1px 5px;color:#fff;font-weight:500}
.hinweis{border-left:3px solid var(--power);background:var(--steel);padding:18px 20px;margin:0 0 4px}
.hinweis p{margin:0;font-size:15.5px;line-height:1.65;color:var(--ash);max-width:90ch}
.hinweis .mono{display:block;color:var(--power-text);margin-bottom:6px;font-size:12px}

/* Skill. Weight. Speed. als drei Schritte beim Coach. */
.sws{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:14px}
.sws li{position:relative;padding:16px 18px 16px 20px;background:#141416;border-left:3px solid var(--power);
  font-size:15.5px;line-height:1.6;color:var(--ash)}
.sws li span{display:block;font-family:var(--data);font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--power-text);margin-bottom:7px}
.sws li b{color:var(--chalk)}

/* Der flache Kopfbereich wuchs auf sehr breiten Schirmen nicht mit. Dadurch
   blieb vom Bild nur ein schmaler Streifen am unteren Rand uebrig. */
.hero.kompakt{min-height:min(64vh,max(540px,30vw))}
@media (max-width:680px){.hero.kompakt{min-height:min(72vh,500px)}}

/* Zwei Klassen, die in den Seiten benutzt wurden, aber nie definiert waren. */
.fussnote{margin-top:20px;max-width:88ch;font-size:15px;line-height:1.6;color:var(--smoke)}
.fussnote a{color:var(--chalk)}
.lede.eng{max-width:62ch}

/* ===========================================================================
   Einwilligungsbanner. Zwei Ebenen im selben Kasten, mittig ueber der Seite.
   =========================================================================== */
.ebn{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(6,6,8,.72);overflow-y:auto}
.ebn[hidden]{display:none}
body.ebn-offen{overflow:hidden}
.ebn-k{width:min(560px,100%);background:var(--steel);border:1px solid var(--rule);
  padding:clamp(24px,3.4vw,36px);max-height:calc(100vh - 40px);overflow-y:auto}
.ebn-k .h3{margin:12px 0 0;color:#fff}
.ebn-k p{margin:14px 0 0;font-size:15.5px;line-height:1.6;color:var(--ash)}
.ebn-k .ebn-n{font-size:14px;color:var(--smoke)}
.ebn-a{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.ebn-a .btn{font-size:15px;padding:12px 18px;flex:1 1 auto;text-align:center}
.ebn-f{font-size:13.5px;color:var(--smoke)}
.ebn-f a{color:var(--ash)}

/* Die drei Kategorien */
.ebn-z{margin-top:20px;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.ebn-w{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  background:var(--iron);padding:16px 18px;cursor:pointer}
.ebn-w input{width:18px;height:18px;margin-top:3px;accent-color:var(--power);flex:0 0 auto}
.ebn-w input:disabled{opacity:.55;cursor:not-allowed}
.ebn-w span{font-size:14.5px;line-height:1.55;color:var(--ash)}
.ebn-w b{display:block;font-family:var(--disp);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:15px;color:var(--chalk);margin-bottom:4px}

@media (max-width:560px){
  .ebn{padding:0;align-items:flex-end}
  .ebn-k{width:100%;border-left:0;border-right:0;border-bottom:0;max-height:88vh}
  .ebn-a .btn{flex:1 1 100%}
}
