/* ===== SELBST GEHOSTETE SCHRIFTEN (DSGVO – keine Google Fonts) ===== */
/* Inter: bestlesbare Screen-Schrift (Variable, 100–900). Source Serif 4: klare Display-Serife. */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter.woff2') format('woff2')}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url('../fonts/sourceserif.woff2') format('woff2')}


:root{
  --red:#C41E14; --red-deep:#9A140C; --red-soft:#F7E7E4;
  --tkd:#114A86; --kumdo:#345E33; --kungfu:#A95219;
  --gold:#9C8455;
  --ink:#15120E; --ink-2:#2B2620; --muted:#6E665C; --faint:#9D9488;
  --bg:#FBFAF6; --bg-2:#F3EFE7; --bg-3:#ECE7DB; --line:#E9E3D7; --line-2:#DBD4C5;
  --r:18px; --r-sm:13px;
  --sh-1:0 1px 2px rgba(21,18,14,.04),0 8px 24px -16px rgba(21,18,14,.18);
  --sh-2:0 2px 8px -4px rgba(21,18,14,.06),0 30px 60px -34px rgba(21,18,14,.30);
  --sh-3:0 4px 12px -4px rgba(21,18,14,.08),0 56px 100px -50px rgba(21,18,14,.45);
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --ease:cubic-bezier(.22,.7,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html{overflow-x:clip}
body::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.3;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{width:min(1180px,90vw);margin-inline:auto;position:relative}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;line-height:1.07;text-wrap:balance;font-optical-sizing:auto}
.lede,.section-head p,.news-slide p,.book p,.hero .lede{text-wrap:pretty}

/* eyebrow — refined, brass hairline */
.eyebrow{display:inline-flex;align-items:center;gap:.85em;font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold)}
.eyebrow.center{justify-content:center}
.ac{color:var(--red)}

/* buttons — understated, refined */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font);font-weight:600;font-size:.92rem;padding:15px 30px;border-radius:11px;cursor:pointer;border:1px solid transparent;letter-spacing:.005em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s,border-color .35s,color .35s}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 10px 26px -14px rgba(196,30,20,.6)}
.btn-primary:hover{background:var(--red-deep);transform:translateY(-2px);box-shadow:0 16px 32px -16px rgba(196,30,20,.55)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(21,18,14,.025)}

/* nav */
.nav{position:sticky;top:0;z-index:50;transition:background .4s,box-shadow .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(251,250,246,.75);backdrop-filter:blur(20px) saturate(150%);border-color:var(--line);box-shadow:0 1px 0 rgba(21,18,14,.02)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:82px}
.brand{display:flex;align-items:center;gap:13px}
.brand .mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:1.15rem;font-weight:600}
.brand .bt{font-weight:600;font-size:1.02rem;letter-spacing:-.02em;line-height:1.08}.brand .bt small{display:block;font-size:.66rem;font-weight:500;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-top:2px}
.brand small{display:block;font-weight:500;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-top:3px}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links>a{font-size:.88rem;font-weight:500;color:var(--muted);padding:10px 15px;border-radius:10px;transition:color .25s,background .25s}
.nav-links>a:hover{color:var(--ink);background:var(--bg-2)}
.nav-cta{margin-left:14px;background:var(--ink);color:#fff !important;font-weight:600;padding:11px 22px !important;border-radius:11px;font-size:.85rem;transition:transform .3s var(--ease),background .3s}
.nav-cta:hover{background:var(--red);transform:translateY(-1px)}
.burger{display:none;background:none;border:0;font-size:1.4rem;cursor:pointer;color:var(--ink)}
.ndrop{position:relative}
.ndrop-t{font-family:var(--font);font-size:.88rem;font-weight:500;color:var(--muted);padding:10px 15px;border-radius:10px;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.4em;transition:color .25s,background .25s}
.ndrop-t .caret{font-size:.6em;opacity:.6;transition:transform .3s var(--ease)}
.ndrop:hover .ndrop-t,.ndrop:focus-within .ndrop-t{color:var(--ink);background:var(--bg-2)}
.ndrop:hover .caret,.ndrop:focus-within .caret{transform:rotate(180deg)}
.ndrop-menu{position:absolute;top:calc(100% + 12px);left:0;min-width:220px;background:rgba(251,250,246,.85);backdrop-filter:blur(22px) saturate(150%);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-2);padding:9px;opacity:0;visibility:hidden;transform:translateY(10px);transform-origin:top left;transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;z-index:60}
.ndrop-menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.ndrop:hover .ndrop-menu,.ndrop:focus-within .ndrop-menu,.ndrop-menu.open{opacity:1;visibility:visible;transform:none}
.ndrop-menu a{display:block;padding:11px 15px;border-radius:10px;font-size:.89rem;font-weight:500;color:var(--ink-2);transition:background .2s,color .2s,padding-left .2s}
.ndrop-menu a:hover{background:var(--red-soft);color:var(--red);padding-left:19px}

/* closure banner */
.closure{position:relative;z-index:45;background:linear-gradient(90deg,#2A251F,#1C1814);color:#F2ECE2;overflow:hidden;max-height:0;transition:max-height .55s var(--ease)}
.closure.show{max-height:150px}
.closure::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.closure-inner{display:flex;align-items:center;gap:14px;padding:14px 0}
.closure .ci{font-size:1.1rem;flex:none}
.closure p{font-size:.89rem;line-height:1.45;margin:0}
.closure strong{color:#fff;font-weight:600}
.closure .hl{color:#D9BE84;font-weight:600}
.closure .x{margin-left:auto;background:rgba(255,255,255,.08);border:0;color:#fff;width:32px;height:32px;border-radius:9px;font-size:1.1rem;cursor:pointer;flex:none;transition:background .2s,transform .3s}
.closure .x:hover{background:rgba(255,255,255,.16);transform:rotate(90deg)}

/* hero */
.hero{position:relative;padding:clamp(54px,9vw,108px) 0 0;overflow:hidden}
.hero::before{content:"";position:absolute;top:-20%;right:-12%;width:54vw;height:54vw;border-radius:50%;background:radial-gradient(circle,rgba(196,30,20,.06),transparent 60%);z-index:0}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,90px);align-items:center}
.hero h1{font-size:clamp(3rem,6.8vw,5.6rem);font-weight:400;letter-spacing:-.02em;margin:24px 0 0;line-height:1.0}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln>span{display:block;transform:translateY(108%);animation:rise 1s var(--ease) forwards}
.hero h1 .ln:nth-child(2)>span{animation-delay:.1s}
@keyframes rise{to{transform:none}}
.hero .lede{font-size:1.14rem;color:var(--muted);max-width:45ch;margin:26px 0 0}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:36px}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:26px}
.reassure{font-size:.86rem;color:var(--muted);display:inline-flex;align-items:center;gap:.5em;font-weight:500}
.reassure svg{width:16px;height:16px;color:var(--kumdo);flex:none}
.hero-visual{position:relative}
.frame{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;box-shadow:var(--sh-3);background:#211913;animation:wipe 1.15s var(--ease) .15s both}
.frame::after{content:"";position:absolute;inset:0;border-radius:20px;border:1px solid rgba(255,255,255,.08);pointer-events:none}
.frame .ph{position:absolute;inset:0;background:radial-gradient(120% 90% at 74% 8%,rgba(196,30,20,.22),transparent 52%),linear-gradient(158deg,#2a2017,#3a2c22 50%,#15100c)}
.frame .glyph{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(7rem,15vw,12rem);font-weight:300;color:rgba(255,255,255,.06)}
.frame .cap{position:absolute;left:20px;bottom:18px;color:rgba(255,255,255,.45);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.frame .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.frame .corner{text-shadow:0 1px 6px rgba(0,0,0,.45)}
.frame .corner{position:absolute;top:18px;right:20px;color:rgba(255,255,255,.5);font-size:.8rem;letter-spacing:.22em}

/* stats — airy, hairlines */
.stats{margin-top:clamp(48px,7vw,84px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 0 34px 32px;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:30px;bottom:30px;width:1px;background:var(--line)}
.stat .n{font-family:var(--serif);font-size:2.7rem;font-weight:400;letter-spacing:-.01em;line-height:1}
.stat .n .u{color:var(--gold)}
.stat .l{font-size:.82rem;color:var(--muted);margin-top:9px;letter-spacing:.02em}

/* sections */
.section{padding:clamp(58px,8vw,104px) 0}
.section-head{max-width:62ch}
.section-head h2{font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:400;letter-spacing:-.018em;margin:20px 0 0}
.section-head p{color:var(--muted);margin-top:16px;font-size:1.08rem;max-width:50ch}
.divider{height:1px;background:var(--line)}

/* disciplines */
.disc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:54px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.disc-grid .disc{position:relative;background:var(--bg);padding:40px 38px 34px;display:flex;flex-direction:column;transition:background .4s var(--ease)}
.disc-grid .disc:hover{background:var(--bg-2)}
.disc-grid .disc .top{display:flex;align-items:center;justify-content:space-between}
.disc-grid .disc .ic{font-size:1.5rem;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 9%,var(--bg-2));transition:background .4s}
.disc-grid .disc .age{font-size:.71rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ac)}
.disc-grid .disc h3{font-size:1.7rem;font-weight:500;margin:24px 0 0;display:flex;align-items:center;gap:.5em}
.disc-grid .disc h3::before{content:"";width:18px;height:2px;background:var(--ac);border-radius:2px;display:inline-block}
.disc-grid .disc p{font-size:.96rem;color:var(--muted);margin:13px 0 0;line-height:1.6}
.disc-grid .disc .more{margin-top:26px;font-size:.86rem;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:.45em;transition:gap .3s var(--ease),color .3s}
.disc-grid .disc:hover .more{gap:.8em;color:var(--ac)}
.disc-grid .disc.judo{--ac:var(--red)}.disc-grid .disc.tkd{--ac:var(--tkd)}.disc-grid .disc.kumdo{--ac:var(--kumdo)}.disc-grid .disc.kungfu{--ac:var(--kungfu)}

/* signature booking — refined dark */
.book{position:relative;background:var(--ink);color:#F2ECE2;border-radius:24px;overflow:hidden;box-shadow:var(--sh-3)}
.book .glow{position:absolute;inset:0;background:radial-gradient(65% 100% at 100% -10%,rgba(196,30,20,.22),transparent 55%)}
.book-inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,68px);padding:clamp(40px,5vw,66px)}
.book .eyebrow{color:#C99}.book .eyebrow::before{background:var(--gold)}
.book h2{font-size:clamp(2.1rem,3.8vw,3rem);font-weight:400;letter-spacing:-.018em;margin:18px 0 0;color:#fff}
.book p{color:rgba(242,236,226,.68);margin-top:16px;max-width:40ch}
.steps{display:flex;gap:14px 28px;margin-top:32px;flex-wrap:wrap}
.step{display:flex;gap:11px;align-items:center;font-size:.89rem;color:rgba(242,236,226,.82);font-weight:500}
.step .si{font-weight:600;font-size:.82rem;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;color:#fff;flex:none}
.book-form{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:28px;align-self:center;backdrop-filter:blur(6px)}
.book-form .lbl{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,236,226,.5);margin-bottom:13px;font-weight:600}
.pick{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.pick button{font-family:var(--font);font-size:.9rem;font-weight:500;color:#F2ECE2;cursor:pointer;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:13px 10px;transition:border-color .25s,background .25s,color .25s}
.pick button:hover{border-color:rgba(255,255,255,.45)}
.pick button[aria-pressed="true"]{background:var(--red);border-color:transparent;color:#fff}
.book-form .btn-primary{width:100%;justify-content:center;margin-top:20px}
.book-form .mini{font-size:.77rem;color:rgba(242,236,226,.48);text-align:center;margin-top:13px}

/* proof */
.proof{background:var(--bg-2);border-block:1px solid var(--line)}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,3.3vw,2.7rem);font-weight:400;line-height:1.26;letter-spacing:-.01em;max-width:20ch}
.q-by{margin-top:24px;font-size:.88rem;color:var(--muted);font-weight:500}
.values{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.value{display:flex;gap:18px;align-items:flex-start;background:var(--bg);padding:24px 26px;transition:background .35s}
.value:hover{background:var(--bg-2)}
.value .vi{font-size:1.25rem;width:46px;height:46px;border-radius:12px;background:var(--bg-2);display:grid;place-items:center;flex:none}
.value h4{font-size:1.14rem;font-weight:500;letter-spacing:0}
.value p{font-size:.91rem;color:var(--muted);margin-top:4px;line-height:1.55}

/* news cycler — refined dark */
.cycler{position:relative;margin-top:48px;background:var(--ink);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-2)}
.cycler .glow{position:absolute;inset:0;background:radial-gradient(55% 100% at 100% 0,rgba(196,30,20,.18),transparent 55%);pointer-events:none}
.cyc-track{position:relative}
.news-slide{position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:opacity .65s var(--ease),transform .65s var(--ease);padding:clamp(34px,4.5vw,56px) clamp(30px,4.5vw,58px) clamp(50px,5.5vw,66px);display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.news-slide.active{position:relative;opacity:1;transform:none;pointer-events:auto}
.np{align-self:flex-start;display:inline-flex;align-items:center;gap:.5em;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.07);color:#EDE7DD;border:1px solid rgba(255,255,255,.12)}
.np.date{color:#D9A39B}
.np.warn{color:#D9BE84;background:rgba(217,190,132,.1);border-color:rgba(217,190,132,.3)}
.news-slide h4{color:#fff;font-size:clamp(1.5rem,2.8vw,2.15rem);font-weight:400;letter-spacing:-.015em;margin:18px 0 0}
.news-slide p{color:rgba(242,236,226,.66);margin:11px 0 0;max-width:54ch}
.cyc-link{align-self:flex-start;margin-top:22px;font-weight:600;font-size:.9rem;color:#fff;display:inline-flex;align-items:center;gap:.4em;transition:gap .3s var(--ease)}
.cyc-link:hover{gap:.75em}
.cyc-dots{position:absolute;bottom:24px;left:clamp(30px,4.5vw,58px);display:flex;gap:9px;z-index:2}
.cyc-dots button{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.22);cursor:pointer;padding:0;transition:background .3s,width .3s}
.cyc-dots button[aria-current="true"]{background:var(--gold);width:24px;border-radius:5px}

/* final */
.final{position:relative;text-align:center;padding:clamp(64px,9vw,116px) 0;overflow:hidden}
.final h2{font-size:clamp(2.5rem,5.4vw,4rem);font-weight:400;letter-spacing:-.02em;line-height:1.03}
.final p{color:var(--muted);max-width:50ch;margin:20px auto 0;font-size:1.1rem}
.final .hero-actions{justify-content:center;margin-top:36px}

/* footer */
footer{background:var(--ink);color:rgba(242,236,226,.6);padding:clamp(58px,7vw,84px) 0 32px}
.foot-top{display:grid;grid-template-columns:1.3fr 2fr;gap:clamp(34px,5vw,72px)}
footer .brand .bt{color:#fff}footer .brand small{color:rgba(242,236,226,.5)}
footer .brand .mark{background:#fff;color:var(--ink)}
.foot-blurb{margin:18px 0 22px;font-size:.87rem;max-width:40ch;color:rgba(242,236,226,.55);line-height:1.65}
.foot-contact a{font-size:.9rem;font-weight:500;color:rgba(242,236,226,.78);border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:2px;transition:color .2s,border-color .2s}
.foot-contact a:hover{color:#fff;border-color:#fff}
.foot-cols{display:grid;grid-template-columns:repeat(2,auto);gap:24px 64px;justify-content:end}
.foot-col h5{font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,236,226,.42);font-weight:600;margin-bottom:15px}
.foot-col a{display:block;font-size:.89rem;color:rgba(242,236,226,.7);padding:6px 0;transition:color .2s}
.foot-col a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:clamp(40px,5vw,56px);padding-top:24px;font-size:.77rem;color:rgba(242,236,226,.4);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.foot-legal{display:flex;gap:22px;flex-wrap:wrap}
.foot-legal a{transition:color .2s}.foot-legal a:hover{color:#fff}

.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;background:rgba(251,250,246,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:12px 16px}
.sticky-cta .btn-primary{width:100%;justify-content:center}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
@media (scripting: none){.reveal{opacity:1 !important;transform:none !important}}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.1s}.reveal[data-d="2"]{transition-delay:.2s}.reveal[data-d="3"]{transition-delay:.3s}
a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:8px}

@media (max-width:920px){
  .hero-grid,.quote-grid,.book-inner{grid-template-columns:1fr}
  .hero-visual{order:-1;max-width:460px;margin-inline:auto}
  .frame{aspect-ratio:16/11;min-height:220px}
  .disc-grid{grid-template-columns:1fr}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:4px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--sh-2);padding:14px 5vw 22px;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s var(--ease),opacity .3s}
  .nav-links.open{max-height:80vh;overflow-y:auto;opacity:1}
  .nav-links>a{padding:13px 14px;font-size:1rem}
  .nav-cta{margin-left:0;text-align:center;margin-top:8px}
  .burger{display:block}
  .nav{background:rgba(251,250,246,.85);backdrop-filter:blur(18px);border-color:var(--line)}
  .ndrop{width:100%}
  .ndrop-t{width:100%;justify-content:space-between;font-size:1rem;padding:13px 14px}
  .ndrop-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:var(--bg-2);border:0;min-width:0;margin:2px 0 6px;max-height:0;overflow:hidden;padding:0 9px;transition:max-height .35s var(--ease),padding .35s}
  .ndrop-menu::before{display:none}
  .ndrop-menu.open{max-height:340px;padding:9px}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .stat{padding:26px 0 26px 24px}
  .stat:nth-child(3)::before,.stat:nth-child(4)::before{display:none}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .foot-top{grid-template-columns:1fr;gap:34px}
  .foot-cols{grid-template-columns:repeat(2,1fr);justify-content:start;gap:24px 32px}
  .sticky-cta{display:block}
}
@media (max-width:560px){.stats-row{grid-template-columns:1fr 1fr}.foot-cols{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;animation:none !important}.reveal{opacity:1;transform:none;transition:none}}
@keyframes wipe{from{clip-path:inset(0 0 100% 0 round 20px)}to{clip-path:inset(0 0 0 0 round 20px)}}
@media (prefers-reduced-motion:reduce){.hero h1 .ln>span{transform:none}.frame{animation:none}}

/* ===== turniere ===== */

/* ---------- turniere ---------- */
.page-hd{padding:clamp(48px,7vw,92px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.7rem,5.8vw,4.2rem);font-weight:400;letter-spacing:-.02em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:58ch;margin:16px auto 0;font-size:1.08rem;font-family:var(--font)}
.tfilters{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:36px}
.tfilters .fpill{font-family:var(--font);font-size:.86rem;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:10px 22px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s}
.tfilters .fpill:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}
.tfilters .fpill[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tfilters .sep{width:1px;height:24px;background:var(--line-2);margin:0 4px}
.tn-select{font-family:var(--font);font-size:.86rem;font-weight:500;color:var(--ink);background-color:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:10px 42px 10px 20px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E665C' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 17px center;transition:border-color .25s}
.tn-select:hover{border-color:var(--ink)}
.tn-empty{text-align:center;color:var(--muted);font-family:var(--font);font-size:1rem;padding:50px 0}
.tn-month{margin-top:clamp(40px,5vw,58px)}
.tn-month.hide{display:none}
.tn-month-h{font-size:clamp(1.5rem,2.7vw,2rem);font-weight:500;letter-spacing:-.01em;padding-bottom:14px;border-bottom:1px solid var(--line-2);margin-bottom:22px;display:flex;align-items:baseline;gap:10px}
.tn-month-h .yr{color:var(--faint);font-family:var(--font);font-size:.6em;font-weight:500;letter-spacing:.04em}
.tn{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;margin-bottom:14px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s,opacity .35s}
.tn:hover{transform:translateY(-3px);box-shadow:var(--sh-1);border-color:transparent}
.tn.hide{display:none}.tn.past{opacity:.5}
.tn-date{text-align:center;flex:none;width:74px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:13px 6px}
.tn-date .d{font-family:var(--serif);font-size:1.95rem;font-weight:500;line-height:1;display:block}
.tn-date .m{font-family:var(--font);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px;display:block}
.tn-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tn-tags span{font-family:var(--font);font-size:.67rem;font-weight:600;letter-spacing:.03em;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);padding:4px 9px;border-radius:999px;transition:background .2s,color .2s,border-color .2s}
.tn-tags span.hit{background:var(--red);color:#fff;border-color:transparent}
.tn-title{font-size:1.28rem;font-weight:500;letter-spacing:-.01em;line-height:1.22}
.tn-meta{display:flex;flex-wrap:wrap;gap:5px 18px;margin-top:11px;font-family:var(--font);font-size:.86rem;color:var(--muted)}
.tn-meta b{color:var(--ink);font-weight:600}
.tn-meta .dl{color:var(--red);font-weight:600}
.tn-action{flex:none}
.tn-action .btn{padding:12px 20px;font-size:.85rem}
@media (max-width:760px){.tn{grid-template-columns:auto 1fr;gap:16px}.tn-action{grid-column:1 / -1;justify-self:start;margin-top:6px}}

/* ===== galerie ===== */

/* ---------- galerie ---------- */
.page-hd{padding:clamp(48px,7vw,92px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.7rem,5.8vw,4.2rem);font-weight:400;letter-spacing:-.02em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:54ch;margin:16px auto 0;font-size:1.08rem;font-family:var(--font)}
.gfilters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:36px}
.gfilters .fpill{font-family:var(--font);font-size:.86rem;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:10px 22px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s}
.gfilters .fpill:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}
.gfilters .fpill[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.cat-judo{--g1:#8a1812;--g2:#c41e14}.cat-kumdo{--g1:#22431f;--g2:#3d6b36}
.cat-tkd{--g1:#0c3a6e;--g2:#114a86}.cat-kungfu{--g1:#7d3a10;--g2:#a95219}.cat-allg{--g1:#2b2620;--g2:#4a433c}
.masonry{column-count:3;column-gap:18px;margin-top:clamp(42px,5vw,60px)}
@media(max-width:900px){.masonry{column-count:2}}
@media(max-width:540px){.masonry{column-count:1}}
.gtile{break-inside:avoid;margin:0 0 18px;border-radius:var(--r);overflow:hidden;position:relative;cursor:pointer;box-shadow:var(--sh-1);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.gtile.cat-hidden,.gtile.more-hidden{display:none}
.gtile:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.gph{position:relative;display:grid;place-items:center;background:linear-gradient(150deg,var(--g1,#2b2620),var(--g2,#4a433c))}
.gph::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 70% 10%,rgba(255,255,255,.12),transparent 55%)}
.gph .gly{position:relative;font-family:var(--serif);font-weight:300;font-size:3.2rem;color:rgba(255,255,255,.32)}
.gtile .ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(18,15,12,.78),rgba(18,15,12,.05) 55%,transparent);opacity:0;transition:opacity .4s var(--ease);display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.gtile:hover .ov{opacity:1}
.gtile .ov .c{font-family:var(--font);font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.gtile .ov .f{font-family:var(--font);font-size:.8rem;color:rgba(255,255,255,.72);margin-top:4px}
.gtile .zoom{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:rgba(252,251,246,.9);display:grid;place-items:center;font-size:1rem;opacity:0;transform:scale(.85);transition:opacity .35s,transform .35s}
.gtile:hover .zoom{opacity:1;transform:none}
.load-more{text-align:center;margin-top:36px}
.load-more.hide{display:none}
.load-more .rest{display:block;font-family:var(--font);font-size:.82rem;color:var(--muted);margin-top:14px;letter-spacing:.02em}
/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(16,13,10,.93);backdrop-filter:blur(10px);display:none;place-items:center;padding:30px}
.lb.open{display:grid}
.lb-stage{position:relative;width:min(860px,92vw)}
.lb-img{aspect-ratio:3/2;border-radius:var(--r);display:grid;place-items:center;box-shadow:var(--sh-3);background:linear-gradient(150deg,var(--g1,#2b2620),var(--g2,#4a433c));overflow:hidden;position:relative}
.lb-img::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 70% 10%,rgba(255,255,255,.12),transparent 55%)}
.lb-img .gly{position:relative;font-family:var(--serif);font-weight:300;font-size:5rem;color:rgba(255,255,255,.3)}
.lb-cap{text-align:center;color:rgba(242,236,226,.85);font-family:var(--font);margin-top:18px}
.lb-cap .c{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.lb-cap .f{font-size:.85rem;color:rgba(242,236,226,.6);margin-top:4px}
.lb-cap .n{font-size:.78rem;color:rgba(242,236,226,.45);margin-top:8px}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(252,251,246,.12);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:background .25s}
.lb-btn:hover{background:rgba(252,251,246,.24)}
.lb-prev{left:-22px}.lb-next{right:-22px}
.lb-close{position:fixed;top:24px;right:26px;width:44px;height:44px;border-radius:50%;background:rgba(252,251,246,.12);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:1.4rem;cursor:pointer;transition:background .25s,transform .3s}
.lb-close:hover{background:rgba(252,251,246,.24);transform:rotate(90deg)}
@media(max-width:600px){.lb-prev{left:6px}.lb-next{right:6px}}

/* ===== news ===== */

/* ---------- news ---------- */
.page-hd{padding:clamp(48px,7vw,92px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.7rem,5.8vw,4.2rem);font-weight:400;letter-spacing:-.02em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:54ch;margin:16px auto 0;font-size:1.08rem;font-family:var(--font)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(42px,5vw,60px);background:var(--ink);color:#F2ECE2;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-2)}
.feat-media{position:relative;min-height:280px;background:linear-gradient(140deg,var(--red-deep),#c0561c 52%,var(--gold))}
.feat-media::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 70% 10%,rgba(255,255,255,.12),transparent 55%)}
.feat-media .gly{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-weight:300;font-size:5rem;color:rgba(255,255,255,.22)}
.feat-body{padding:clamp(32px,4vw,52px);display:flex;flex-direction:column;justify-content:center}
.npill{align-self:flex-start;display:inline-flex;gap:.5em;align-items:center;font-family:var(--font);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#E79189;background:rgba(196,30,20,.16);border:1px solid rgba(196,30,20,.3);padding:6px 13px;border-radius:999px}
.feat-body h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem);font-weight:400;letter-spacing:-.02em;margin:16px 0 0}
.feat-body .dt{font-family:var(--font);font-size:.84rem;color:rgba(242,236,226,.55);margin-top:12px}
.feat-body p{color:rgba(242,236,226,.72);margin-top:14px;font-family:var(--font);max-width:46ch}
.feat-body .more{align-self:flex-start;margin-top:22px;font-family:var(--font);font-weight:600;font-size:.9rem;color:#fff;display:inline-flex;gap:.4em;align-items:center;transition:gap .3s var(--ease)}
.feat-body .more:hover{gap:.75em}
.nlist{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}
@media(max-width:900px){.feat{grid-template-columns:1fr}.feat-media{min-height:200px}.nlist{grid-template-columns:1fr}}
.narticle{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:28px 28px 26px;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;cursor:pointer}
.narticle:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.narticle .nc{align-self:flex-start;font-family:var(--font);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red);background:var(--red-soft);padding:5px 11px;border-radius:999px}
.narticle h3{font-size:1.32rem;font-weight:500;letter-spacing:-.01em;margin:16px 0 0;line-height:1.25}
.narticle .dt{font-family:var(--font);font-size:.82rem;color:var(--faint);margin-top:10px}
.narticle p{font-family:var(--font);font-size:.92rem;color:var(--muted);line-height:1.6;margin-top:12px;flex:1}
.narticle .more{font-family:var(--font);font-weight:600;font-size:.86rem;color:var(--ink);display:inline-flex;gap:.4em;align-items:center;margin-top:20px;transition:gap .3s var(--ease),color .3s}
.narticle:hover .more{gap:.7em;color:var(--red)}
.note-line{text-align:center;font-family:var(--font);font-size:.82rem;color:var(--faint);margin-top:30px;font-style:italic}

/* ===== kontakt ===== */

/* ---------- kontakt ---------- */
.page-hd{padding:clamp(48px,7vw,92px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.6rem,5.6vw,4rem);font-weight:400;letter-spacing:-.02em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:56ch;margin:16px auto 0;font-size:1.08rem;font-family:var(--font)}
.contact-grid{display:grid;grid-template-columns:1.45fr .9fr;gap:clamp(26px,4vw,46px);margin-top:clamp(42px,5vw,60px);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:clamp(28px,4vw,44px);box-shadow:var(--sh-1)}
.fld{margin-bottom:20px}
.fld label{display:block;font-family:var(--font);font-size:.8rem;font-weight:600;letter-spacing:.03em;color:var(--ink-2);margin-bottom:8px}
.fld .req{color:var(--red)}
.inp{width:100%;font-family:var(--font);font-size:.96rem;color:var(--ink);background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .25s,background .25s,box-shadow .25s}
.inp::placeholder{color:var(--faint)}
.inp:focus{outline:none;border-color:var(--red);background:var(--bg);box-shadow:0 0 0 3px var(--red-soft)}
textarea.inp{min-height:130px;resize:vertical}
.sel{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:44px;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%228%22 viewBox=%220 0 12 8%22%3E%3Cpath d=%22M1 1l5 5 5-5%22 stroke=%22%236E665C%22 stroke-width=%221.6%22 fill=%22none%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right 16px center}
.spick{display:flex;flex-wrap:wrap;gap:9px}
.spick button{font-family:var(--font);font-size:.88rem;font-weight:500;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-radius:11px;padding:11px 16px;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.spick button:hover{border-color:var(--ink)}
.spick button[aria-pressed="true"]{background:var(--red);border-color:transparent;color:#fff}
.chk{display:flex;gap:11px;align-items:flex-start;font-family:var(--font);font-size:.88rem;color:var(--muted);line-height:1.5;margin-bottom:22px}
.chk input{margin-top:2px;width:18px;height:18px;accent-color:var(--red);flex:none;cursor:pointer}
.chk a{color:var(--red);font-weight:600}
.submit{width:100%;justify-content:center}
.form-err{font-family:var(--font);font-size:.85rem;color:var(--red);margin-top:12px;text-align:center;display:none}
.form-err.show{display:block}
.form-success{display:none;align-items:center;gap:18px;background:#ECF4EC;border:1px solid #CFE5CF;border-left:3px solid var(--kumdo);border-radius:var(--r);padding:30px 32px}
.form-success.show{display:flex}
.form-success .si{width:46px;height:46px;border-radius:50%;background:var(--kumdo);color:#fff;display:grid;place-items:center;font-size:1.35rem;flex:none}
.form-success h3{font-size:1.25rem;font-weight:500}
.form-success p{font-family:var(--font);font-size:.92rem;color:var(--muted);margin-top:3px}
.info-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;margin-bottom:16px}
.info-card h3{font-size:1.18rem;font-weight:500;display:flex;align-items:center;gap:.55em;margin-bottom:12px}
.info-card p{font-family:var(--font);font-size:.92rem;color:var(--muted);line-height:1.65}
.info-card a{color:var(--red);font-weight:600;border-bottom:1px solid transparent;transition:border-color .2s}
.info-card a:hover{border-color:var(--red)}
.info-card.hl{background:var(--ink);color:#F2ECE2;border-color:transparent}
.info-card.hl h3{color:#fff}
.info-card.hl p{color:rgba(242,236,226,.72)}
.info-card.hl strong{color:#fff}
.info-card .ic{font-size:1.05rem}

/* ===== trainer ===== */

/* ---------- trainer page ---------- */
.page-hd{padding:clamp(46px,7vw,88px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.4rem,5.4vw,3.7rem);font-weight:800;letter-spacing:-.04em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:52ch;margin:16px auto 0;font-size:1.1rem}
.tsec{margin-top:clamp(46px,6vw,78px)}
.tsec:first-child{margin-top:0}
.tsec-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:30px}
.tsec-head h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.03em;position:relative;padding-left:18px}
.tsec-head h2::before{content:"";position:absolute;left:0;top:9px;bottom:6px;width:4px;border-radius:3px;background:var(--ac)}
.tsec-head .count{font-size:.85rem;color:var(--faint);font-weight:500}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tcard{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.tcard.feat{border-color:color-mix(in srgb,var(--ac) 32%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 5%,var(--bg)),var(--bg) 40%)}
.tavatar{position:relative;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:2rem;margin-bottom:18px;background:color-mix(in srgb,var(--ac) 13%,var(--bg-2));box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 8%,transparent)}
.tavatar .badge{position:absolute;right:-3px;bottom:-3px;width:28px;height:28px;border-radius:50%;background:var(--ac);color:#fff;font-size:.78rem;display:grid;place-items:center;border:3px solid var(--bg)}
.trank{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ac);background:color-mix(in srgb,var(--ac) 10%,transparent);padding:6px 12px;border-radius:999px}
.tname{font-size:1.3rem;font-weight:700;letter-spacing:-.02em;margin:13px 0 0}
.tdetails{list-style:none;margin:15px 0 0;display:grid;gap:9px;width:100%}
.tdetails li{position:relative;padding-left:20px;font-size:.9rem;color:var(--muted);line-height:1.45}
.tdetails li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--ac);opacity:.65}
.tdetails-p{font-size:.92rem;color:var(--muted);margin-top:15px;line-height:1.55}
.tsec.judo{--ac:var(--red)}.tsec.tkd{--ac:var(--tkd)}.tsec.kungfu{--ac:var(--kungfu)}
@media (max-width:920px){.tgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tgrid{grid-template-columns:1fr}}

/* ===== trainingszeiten-final ===== */

/* ---------- trainingszeiten ---------- */
.page-hd{padding:clamp(48px,7vw,92px) 0 0;text-align:center}
.page-hd h1{font-size:clamp(2.7rem,5.8vw,4.2rem);font-weight:400;letter-spacing:-.02em;margin-top:18px}
.page-hd p{color:var(--muted);max-width:56ch;margin:16px auto 0;font-size:1.08rem;font-family:var(--font)}
.filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:38px}
.fpill{font-family:var(--font);font-size:.86rem;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:10px 20px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s}
.fpill:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}
.fpill[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.fpill .fdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;background:var(--fc,var(--muted))}
.fpill.judo{--fc:var(--red)}.fpill.tkd{--fc:var(--tkd)}.fpill.kungfu{--fc:var(--kungfu)}.fpill.kumdo{--fc:var(--kumdo)}
.week{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:clamp(42px,5vw,64px);align-items:start}
.day-col.empty{display:none}
.day-head{display:flex;align-items:baseline;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line-2);margin-bottom:20px}
.day-head h3{font-size:1.55rem;font-weight:500;letter-spacing:-.01em}
.day-head .dcount{font-family:var(--font);font-size:.76rem;color:var(--faint);font-weight:500;letter-spacing:.02em}
.ses{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:22px 24px 20px 26px;margin-bottom:16px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.ses::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:3px;background:var(--ac)}
.ses:hover{transform:translateY(-3px);box-shadow:var(--sh-1);border-color:transparent}
.ses.hide{display:none}
.ses-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.dtag{font-family:var(--font);font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ac);background:color-mix(in srgb,var(--ac) 11%,transparent);padding:5px 11px;border-radius:999px}
.ses-place{font-family:var(--font);font-size:.92rem;font-weight:600;color:var(--ink)}
.ses-time{display:grid;gap:9px;margin-bottom:14px}
.ses-block{display:flex;flex-direction:column}
.ses-block .t{font-family:var(--serif);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;line-height:1.1}
.ses-block .a{font-family:var(--font);font-size:.82rem;color:var(--muted);margin-top:2px}
.ses-foot{font-family:var(--font);font-size:.85rem;color:var(--muted);line-height:1.5;border-top:1px solid var(--line);padding-top:13px}
.ses-foot p{margin-top:4px}.ses-foot p:first-child{margin-top:0}
.ses-foot b{color:var(--ink);font-weight:600}
.ses-foot .loc{color:var(--ac);font-weight:600;cursor:pointer;border-bottom:1px solid transparent;transition:border-color .2s}
.ses-foot .loc:hover{border-color:var(--ac)}
.ses-warn{font-family:var(--font);color:var(--red);font-weight:600;font-size:.82rem;margin-top:11px;line-height:1.4}
.ses.judo{--ac:var(--red)}.ses.tkd{--ac:var(--tkd)}.ses.kungfu{--ac:var(--kungfu)}.ses.kumdo{--ac:var(--kumdo)}
@media (max-width:980px){.week{grid-template-columns:1fr;gap:8px}.day-col{margin-bottom:30px}}

/* ===== judo ===== */

/* ---------- judo / disziplin-seite ---------- */
.hero.disc-hero{padding-bottom:clamp(20px,3vw,44px)}
.factchips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.factchip{font-family:var(--font);font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--red);background:var(--red-soft);border-radius:999px;padding:8px 15px}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.itile{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:38px 36px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.itile:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.itile .ic{font-size:1.7rem;width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:var(--red-soft);margin-bottom:22px}
.itile h3{font-size:1.5rem;font-weight:500;margin-bottom:13px}
.itile p{color:var(--muted);font-size:.99rem;line-height:1.72;font-family:var(--font)}
.itile p strong{color:var(--ink);font-weight:600}
.itile p em{font-style:italic;color:var(--ink-2)}
.acc{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:14px;background:var(--bg);transition:box-shadow .35s,border-color .35s}
.acc.open{box-shadow:var(--sh-1);border-color:var(--line-2)}
.acc-head{width:100%;display:flex;align-items:center;gap:16px;padding:26px 30px;background:none;border:0;cursor:pointer;text-align:left}
.acc-head h3{font-family:var(--serif);font-size:1.38rem;font-weight:500;letter-spacing:-.01em;flex:1}
.acc-head .ico{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-size:1.35rem;line-height:1;color:var(--muted);transition:transform .4s var(--ease),background .3s,color .3s,border-color .3s;flex:none}
.acc.open .acc-head .ico{transform:rotate(135deg);background:var(--red);color:#fff;border-color:transparent}
.acc-body{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.acc-inner{padding:0 30px 30px;color:var(--ink-2);line-height:1.72;font-family:var(--font);font-size:.97rem}
.acc-inner ul{list-style:none;display:grid;gap:13px}
.acc-inner li{position:relative;padding-left:24px}
.acc-inner li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--red);opacity:.65}
.acc-inner strong{color:var(--ink);font-weight:600}
.acc-inner p+p{margin-top:14px}
.note-box{margin-top:20px;background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r-sm);padding:18px 22px;font-size:.89rem;color:var(--muted);line-height:1.65}
.note-box strong{color:var(--ink)}
.note-box a{color:var(--red);font-weight:600;border-bottom:1px solid transparent;transition:border-color .2s}
.note-box a:hover{border-color:var(--red)}
@media (max-width:820px){.intro-grid{grid-template-columns:1fr}.acc-head{padding:22px 22px}.acc-inner{padding:0 22px 24px}}

/* ============================================================
   THEME-ERGÄNZUNGEN (Grav-Integration)
   ============================================================ */

/* Gradient-Headline (Trainer/Vorstand) */
.grad{background:linear-gradient(120deg,var(--red),var(--red-deep));-webkit-background-clip:text;background-clip:text;color:transparent}
.tsec{--ac:var(--red)}

/* Trainer: Markdown-Details + Gedenk-Modus */
.tdetails-md{width:100%;margin-top:15px}
.tdetails-md ul{list-style:none;display:grid;gap:9px;margin:0;padding:0}
.tdetails-md li{position:relative;padding-left:20px;font-size:.9rem;color:var(--muted);line-height:1.45}
.tdetails-md li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--ac);opacity:.65}
.tdetails-md p{font-size:.92rem;color:var(--muted);margin:6px 0 0;line-height:1.55}
.tcard.memorial{filter:grayscale(.9);opacity:.88}
.tcard.memorial .tavatar{box-shadow:0 0 0 4px rgba(110,102,92,.12)}

/* Vorstand: Sonderposten */
.vboard-extra{margin-top:clamp(48px,7vw,86px)}
.vextra-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:24px}
.vextra{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.vx-role{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--gold)}
.vx-name{font-size:1.08rem;font-weight:600;color:var(--ink)}

/* Trainingszeiten: Karten-Raster */
.ses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.ses-warn{color:var(--red);font-weight:600}

/* Galerie: echte Bilder + Lightbox-Foto */
.gimg{display:block;width:100%;height:auto}
.lb-img{display:grid;place-items:center;background:#0d0b09}
.lb-img::after{display:none !important}
.lb-img img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:10px}

/* Markdown-Inhalt (Disziplinen, Erfolgsbericht, Galerie-Intro) */
.prose{font-family:var(--font);color:var(--ink-2);line-height:1.75;font-size:1.05rem}
.prose h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;margin:1.8em 0 .5em;color:var(--ink)}
.prose h3{font-weight:700;font-size:1.25rem;margin:1.5em 0 .4em;color:var(--ink)}
.prose p{margin:0 0 1.1em}
.prose ul,.prose ol{margin:0 0 1.1em 1.2em;display:grid;gap:.4em}
.prose a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.prose img{max-width:100%;height:auto;border-radius:var(--r-sm);margin:1.2em 0}
.prose blockquote{border-left:3px solid var(--gold);padding-left:18px;color:var(--muted);font-style:italic;margin:1.2em 0}
.prose strong{color:var(--ink)}

/* Erfolge: Bericht-Karten + Jahres-Akkordeon + Medaillen-Badges */
.erf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-bottom:clamp(40px,6vw,70px)}
.erf-card{display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;text-decoration:none;color:var(--ink);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.erf-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.erf-medal{font-size:2rem;line-height:1}
.erf-date{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.erf-title{font-size:1.18rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:0}
.erf-more{margin-top:auto;font-size:.85rem;font-weight:600;color:var(--red);display:inline-flex;align-items:center;gap:6px}
.erf-h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.02em;margin:0 0 26px}
.erf-year{border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:14px;overflow:hidden;background:var(--bg)}
.erf-year>summary{list-style:none;cursor:pointer;padding:18px 22px;display:flex;align-items:center;gap:12px;font-weight:600}
.erf-year>summary::-webkit-details-marker{display:none}
.erf-year-badge{display:inline-flex;align-items:center;font-size:1.05rem;font-weight:700;color:var(--red)}
.erf-year-badge::after{content:"+";margin-left:10px;color:var(--gold);font-weight:400;font-size:1.2rem}
.erf-year[open] .erf-year-badge::after{content:"–"}
.erf-year-body{padding:2px 22px 20px}
.erf-group{padding:16px 0;border-top:1px solid var(--line)}
.erf-group:first-child{border-top:0}
.erf-group h4{font-size:1.02rem;font-weight:700;margin:0 0 12px}
.erf-res{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.erf-res li{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:.94rem}
.erf-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.m-badge,.erf-badge{font-size:.78rem;font-weight:600;padding:5px 13px;border-radius:999px;white-space:nowrap;border:1px solid var(--line)}
.m-1{background:#FBF1D0;color:#7A5B12;border-color:#EBD89A}
.m-2{background:#ECECEC;color:#555;border-color:#D9D9D9}
.m-3{background:#F3E0CE;color:#8A4B1E;border-color:#E4C6A8}
.m-o{background:var(--bg-2);color:var(--muted)}

/* Kontakt: Info-Sidebar */
.contact-side{display:grid;gap:16px;align-content:start}
.cs-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px}
.cs-dark{background:linear-gradient(155deg,var(--ink),var(--ink-2));color:#fff;border-color:transparent}
.cs-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.cs-dark h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin:10px 0 8px}
.cs-dark p{color:rgba(255,255,255,.75);font-size:.95rem;margin-bottom:18px}
.cs-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.cs-link{color:var(--red);font-weight:600;text-decoration:none;word-break:break-word}
.cs-link:hover{text-decoration:underline}
.cs-text{color:var(--muted);font-size:.95rem;line-height:1.6}

/* Grav-Form-Plugin: Felder im Premium-Look */
.form-card form{display:grid;gap:18px}
.form-card .form-group,.form-card fieldset{display:flex;flex-direction:column;gap:7px;border:0;padding:0;margin:0}
.form-card label{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.form-card input[type=text],.form-card input[type=email],.form-card input[type=tel],.form-card input:not([type]),.form-card textarea,.form-card select{font-family:var(--font);font-size:1rem;color:var(--ink);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:13px 15px;width:100%;transition:border-color .25s,box-shadow .25s}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.form-card textarea{min-height:140px;resize:vertical}
.form-card .buttons,.form-card .form-actions{margin-top:4px}
.form-card button,.form-card .button,.form-card input[type=submit]{font-family:var(--font);cursor:pointer;background:var(--red);color:#fff;border:0;border-radius:999px;padding:14px 30px;font-weight:600;font-size:.98rem;transition:background .25s,transform .25s}
.form-card button:hover,.form-card .button:hover,.form-card input[type=submit]:hover{background:var(--red-deep);transform:translateY(-2px)}
.form-card .honeypot,.form-card [name*="honeypot"]{position:absolute;left:-9999px}

/* ============================================================
   ÜBERNOMMENE FUNKTIONEN – STYLES
   (Cookie-Banner · Ferien-Banner · Maps-Modal · Akkordeon)
   ============================================================ */

/* Cookie-Banner */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1001;background:linear-gradient(0deg,#15120E,#241F18);color:#F2ECE2;transform:translateY(110%);transition:transform .45s var(--ease);box-shadow:0 -10px 30px -12px rgba(0,0,0,.5)}
.cookie-banner.show{transform:translateY(0)}
.cookie-inner{max-width:1120px;margin:0 auto;padding:18px 5vw;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cookie-text{flex:1 1 320px;margin:0;font-family:var(--font);font-size:.86rem;line-height:1.55;color:rgba(242,236,226,.86)}
.cookie-text a{color:var(--gold);text-underline-offset:2px}
.cookie-buttons{display:flex;gap:10px;flex:none}
.cookie-banner .btn-small{padding:11px 20px;font-size:.85rem}

/* Ferien-/Feiertags-Banner (per JS erzeugt) */
.holiday-banner{position:relative;z-index:40;background:linear-gradient(90deg,#2A251F,#1C1814);color:#F2ECE2;max-height:0;overflow:hidden;transition:max-height .55s var(--ease);box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.holiday-banner.show{max-height:200px}
.holiday-banner::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.holiday-inner{display:flex;align-items:center;gap:14px;max-width:1120px;margin:0 auto;padding:13px 5vw}
.holiday-text{display:flex;align-items:center;gap:12px;margin:0;font-family:var(--font);font-size:.89rem;line-height:1.45}
.holiday-icon{font-size:1.1rem;flex:none}
.holiday-text strong{color:#fff;font-weight:600}
.holiday-close{margin-left:auto;flex:none;width:32px;height:32px;border:0;border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:1.1rem;cursor:pointer;transition:background .2s,transform .3s}
.holiday-close:hover{background:rgba(255,255,255,.16);transform:rotate(90deg)}

/* Maps-Modal */
.map-modal{position:fixed;inset:0;z-index:1100;background:rgba(15,12,9,.82);backdrop-filter:blur(4px);padding:5vw;overflow-y:auto}
.map-modal-box{max-width:760px;margin:6vh auto 0;background:var(--bg);border-radius:var(--r);padding:24px;position:relative;box-shadow:var(--sh-3)}
.map-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:11px;background:var(--bg-2);color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;transition:background .2s}
.map-close:hover{background:var(--bg-3)}
.map-note{padding:30px 8px;text-align:center;font-family:var(--font);color:var(--muted);line-height:1.6}
.map-note p{margin-bottom:18px}
#mapFrame{width:100%;height:430px;border:0;border-radius:var(--r-sm)}
#routeBtn{margin-top:14px}
.map-modal-trigger{cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}
.map-modal-trigger:hover{text-decoration-color:currentColor}

/* Akkordeon (für Inhaltsseiten) */
.accordion-item,.training-accordion{border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:12px;overflow:hidden;background:var(--bg)}
.accordion-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;cursor:pointer;font-weight:600;font-family:var(--font);transition:background .2s}
.accordion-header:hover{background:var(--bg-2)}
.accordion-header::after{content:"+";color:var(--gold);font-size:1.3rem;font-weight:400;transition:transform .3s}
.accordion-header.active::after{content:"–"}
.accordion-content{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.accordion-content>*{padding-left:20px;padding-right:20px}
.accordion-content>*:last-child{padding-bottom:16px}

/* ===== Judo-Seite: Altersgruppen ===== */
.age-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:820px){.age-grid{grid-template-columns:1fr}}
.age-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;display:flex;flex-direction:column;gap:11px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.age-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.age-badge{align-self:flex-start;font-size:.73rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--red);background:var(--red-soft);padding:5px 13px;border-radius:999px}
.age-card h3{font-family:var(--serif);font-weight:500;font-size:1.4rem;letter-spacing:-.02em;margin:0}
.age-card p{color:var(--muted);font-size:.95rem;line-height:1.62;margin:0}

/* Judo: text-fokussierter Hero ohne Bild */
.hero-solo{max-width:760px}

/* ===== Vorstand: High-End (Monogramme, Fokus-Karte, Ämter-Leiste) ===== */
.vboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:18px}
.vcard{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:40px 28px 34px;text-align:center;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.vcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.vmono{position:relative;width:80px;height:80px;border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;font-family:var(--serif);font-weight:400;font-size:1.8rem;line-height:1;color:var(--gold);background:radial-gradient(circle at 32% 26%,#ffffff,var(--bg-2));box-shadow:inset 0 0 0 1px var(--line-2),0 0 0 6px rgba(156,132,85,.08)}
.vmono::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(156,132,85,.35)}
.vname{font-family:var(--serif);font-weight:500;font-size:1.32rem;letter-spacing:-.01em;line-height:1.2;color:var(--ink)}
.vrole{margin-top:8px;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.vstatus{margin-top:12px;font-size:.88rem;color:var(--muted);line-height:1.5}
.vmemorial{display:block;margin-top:10px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vcard.memorial{filter:grayscale(.85);opacity:.92}
.vcard.memorial .vmono{color:var(--muted)}
/* dunkle Fokus-Karte für den 1. Vorsitz */
.vcard.lead{background:linear-gradient(165deg,#1d1915,#100d0a);border-color:transparent;color:#fff}
.vcard.lead .vname{color:#fff}
.vcard.lead .vstatus{color:rgba(255,255,255,.62)}
.vcard.lead .vmono{background:rgba(255,255,255,.05);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 0 6px rgba(156,132,85,.12)}
.vcard.lead .vmono::after{border-color:rgba(156,132,85,.5)}
/* Ämter-Leiste */
.vfunc{margin-top:clamp(48px,7vw,84px)}
.vfunc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.vfunc-cell{background:var(--bg);padding:26px 28px}
.vfunc-cell .r{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.vfunc-cell .n{margin-top:7px;font-family:var(--serif);font-weight:500;font-size:1.18rem;color:var(--ink)}

/* ===== Trainer: High-End, nach Disziplin gruppiert (Monogramme in Disziplinfarbe) ===== */
.tgroup{--ac:var(--gold);margin-bottom:clamp(42px,6vw,76px)}
.tgroup.judo{--ac:var(--red)}
.tgroup.tkd{--ac:#2f5f8f}
.tgroup.mixed{--ac:var(--gold)}
.tgroup-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.tgroup-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;margin:0}
.tgroup-count{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ac)}
.tgroup .vmono{color:var(--ac);box-shadow:inset 0 0 0 1px var(--line-2),0 0 0 6px color-mix(in srgb,var(--ac) 12%,transparent)}
.tgroup .vmono::after{border-color:color-mix(in srgb,var(--ac) 45%,transparent)}
.tgroup .vrole{color:var(--ac)}
/* Haupttrainer: dunkle Fokus-Karte mit Gold (überschreibt Disziplinfarbe) */
.tgroup .vcard.lead .vmono{color:var(--gold);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 0 6px rgba(156,132,85,.12)}
.tgroup .vcard.lead .vmono::after{border-color:rgba(156,132,85,.5)}
.tgroup .vcard.lead .vrole{color:var(--gold)}
.tlead-badge{display:inline-block;margin-top:11px;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:rgba(156,132,85,.16);padding:4px 13px;border-radius:999px}
.tbio{text-align:left;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:.86rem;color:var(--muted);line-height:1.55}
.tbio ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.tbio li{position:relative;padding-left:17px}
.tbio li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--ac)}
.tbio p{margin:0 0 6px}
.vcard.lead .tbio{border-top-color:rgba(255,255,255,.14);color:rgba(255,255,255,.66)}
.vcard.lead .tbio li::before{background:var(--gold)}

/* ===== Über uns: Fakten-Leiste, Werte, Disziplinen-Wegweiser ===== */
.factstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:clamp(34px,5vw,56px)}
@media(max-width:640px){.factstrip{grid-template-columns:repeat(2,1fr)}}
.fact{background:var(--bg);padding:28px 18px;text-align:center}
.fact .n{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,3vw,2rem);color:var(--red);letter-spacing:-.02em;line-height:1.05}
.fact .l{display:block;margin-top:9px;font-size:.73rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}

.val-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}

.dteaser{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:16px}
.dteaser-card{position:relative;display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px 26px 30px;text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.dteaser-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ac,var(--gold))}
.dteaser-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.dteaser-card .dt-name{font-family:var(--serif);font-weight:500;font-size:1.28rem;letter-spacing:-.01em}
.dteaser-card .dt-sub{font-size:.9rem;color:var(--muted);line-height:1.5}
.dteaser-card .dt-link{margin-top:auto;font-size:.82rem;font-weight:600;color:var(--ac,var(--red));display:inline-flex;gap:6px;align-items:center}
.dteaser-card.judo{--ac:var(--red)}
.dteaser-card.tkd{--ac:#2f5f8f}
.dteaser-card.kumdo{--ac:#2d6a34}
.dteaser-card.kungfu{--ac:#c05000}

/* ===== Aus- & Fortbildung: nummerierter Weg ===== */
.path-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.path-step{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:32px 28px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.path-step:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.path-step .pnum{display:block;font-family:var(--serif);font-weight:400;font-size:2.3rem;color:var(--gold);line-height:1;letter-spacing:-.02em}
.path-step h3{font-family:var(--serif);font-weight:500;font-size:1.22rem;margin:14px 0 8px;letter-spacing:-.01em;color:var(--ink)}
.path-step p{font-size:.92rem;color:var(--muted);line-height:1.6;margin:0}

/* ===== Utility-Klassen (damit Twig frei von Inline-Styles bleibt) ===== */
.pt-0{padding-top:0}
.pt-s{padding-top:clamp(28px,4vw,48px)}
.mt-20{margin-top:20px}
.mb-40{margin-bottom:40px !important}
.prose-narrow{max-width:760px;margin-inline:auto}
.callout{display:flex;gap:22px;align-items:flex-start;background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r);padding:clamp(24px,4vw,34px)}
.callout .cic{font-size:2rem;flex:none;line-height:1}
.callout h3{font-family:var(--serif);font-weight:500;font-size:1.4rem;margin:0 0 8px;letter-spacing:-.01em}
.callout p{color:var(--muted);line-height:1.65;margin:0}
@media(max-width:560px){.callout{flex-direction:column;gap:14px}}

/* ===== Über uns: Pull-Quote & Standort-Buttons ===== */
.pullquote{margin:clamp(30px,5vw,46px) auto 0;max-width:760px;border-left:4px solid var(--gold);padding:6px 0 6px 28px;font-family:var(--serif);font-size:clamp(1.2rem,2.4vw,1.55rem);font-style:italic;line-height:1.45;color:var(--ink)}
.loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.loc-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:24px 20px;font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink);cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.loc-btn:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--gold)}
.loc-btn .pin{color:var(--red);font-style:normal}

/* ===== Listen in Intro-Karten & Förderer-Karten ===== */
.itile ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.itile ul li{position:relative;padding-left:18px;color:var(--muted);font-size:.99rem;line-height:1.5}
.itile ul li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.itile ul li strong{color:var(--ink);font-weight:600}
.itile ul li a{color:var(--red);font-weight:600;text-decoration:none}
.itile ul li a:hover{text-decoration:underline}

.sponsor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}
.sponsor-card{display:flex;flex-direction:column;gap:12px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:34px 32px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.sponsor-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:transparent}
.sponsor-card .sic{font-size:1.7rem;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--red-soft)}
.sponsor-card h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;line-height:1.25;letter-spacing:-.01em}
.sponsor-card p{color:var(--muted);font-size:.96rem;line-height:1.6;margin:0}
.sponsor-card .slink{margin-top:auto;font-size:.86rem;font-weight:600;color:var(--red);text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.sponsor-card .slink:hover{gap:10px}

/* ===== Rechtstexte (legal) ===== */
.legal-prose{font-size:.98rem}
.legal-prose h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:36px 0 12px;letter-spacing:-.01em}
.legal-prose h3{font-family:var(--serif);font-weight:500;font-size:1.2rem;margin:26px 0 10px}
.legal-prose p,.legal-prose li{color:var(--muted);line-height:1.7}
.legal-prose a{color:var(--red);text-decoration:none}
.legal-prose a:hover{text-decoration:underline}
.legal-prose ul{margin:10px 0 16px;padding-left:20px}
.legal-prose strong{color:var(--ink)}

/* ===== Cookie-Seite: Toggle-Schalter ===== */
.cookie-choice{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.switch{position:relative;display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-weight:600;color:var(--ink)}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .slider{position:relative;width:50px;height:28px;background:var(--line-2);border-radius:999px;transition:background .3s;flex:none}
.switch .slider::before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.switch input:checked + .slider{background:#2d6a34}
.switch input:checked + .slider::before{transform:translateX(22px)}
#cookie-status-text{font-size:.92rem;color:var(--muted);margin:0}
.cookie-hint{font-size:.86rem;color:var(--muted);line-height:1.55;margin:4px 0 0}

/* 3-spaltige Intro-Karten (Cookies) */
.intro-grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.intro-grid-3{grid-template-columns:1fr}}

/* ===== Sportart-Seiten: dynamisch & mit eigener Identität ===== */
.disc-judo{--ac:var(--red);--ac-soft:#F7E7E4}
.disc-tkd{--ac:#2f5f8f;--ac-soft:#e8eff6}
.disc-kungfu{--ac:#c05000;--ac-soft:#f8ece3}
.disc-kumdo{--ac:#2d6a34;--ac-soft:#e6f0e8}

/* Akzent-Umfärbung vorhandener Elemente innerhalb einer Disziplin */
.disc .ac{color:var(--ac)}
.disc .btn-primary{background:var(--ac);box-shadow:0 12px 28px -14px color-mix(in srgb,var(--ac) 65%,transparent)}
.disc .factchip{color:var(--ac);background:var(--ac-soft)}
.disc .itile .ic{background:var(--ac-soft)}
.disc .acc.open .acc-head .ico{background:var(--ac)}
.disc .acc.open{border-color:color-mix(in srgb,var(--ac) 32%,var(--line-2))}
.disc .note-box{border-left-color:var(--ac)}

/* Hero mit Glow + Schriftzeichen-Wasserzeichen */
.disc-hero{position:relative;overflow:hidden}
.disc-hero > .wrap{position:relative;z-index:2}
.disc-glow{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(46% 62% at 50% -8%, color-mix(in srgb,var(--ac) 18%,transparent), transparent 70%);animation:discPulse 7s ease-in-out infinite}
@keyframes discPulse{0%,100%{opacity:.65}50%{opacity:1}}
.disc-kanji{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);z-index:1;font-family:"Hiragino Sans","Yu Gothic","Noto Sans CJK JP","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",var(--serif),sans-serif;font-weight:700;font-size:clamp(190px,44vw,470px);line-height:1;color:var(--ac);opacity:.055;pointer-events:none;user-select:none;white-space:nowrap}
.disc-hero .hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
.disc-hero .factchips{justify-content:center}
@media(prefers-reduced-motion:reduce){.disc-glow{animation:none}}

/* Zitat-/Leitsatz-Band */
.disc-quote{text-align:center;padding:clamp(38px,6vw,72px) 0}
.disc-quote .wrap{max-width:880px}
.disc-quote .qmark{display:block;font-family:var(--serif);font-size:3.2rem;line-height:.6;color:var(--ac);margin-bottom:14px}
.disc-quote blockquote{margin:0;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.5rem,3.7vw,2.45rem);line-height:1.3;letter-spacing:-.01em;color:var(--ink)}
.disc-quote cite{display:block;margin-top:20px;font-style:normal;font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ac)}
.disc-quote .qrule{width:54px;height:3px;background:var(--ac);border-radius:2px;margin:0 auto 26px;opacity:.85}

/* ===== Echtes Vereinslogo (transparent) in Navigation & Footer ===== */
.brand{gap:14px}
.brand .mark-logo{width:60px;height:60px;object-fit:contain;display:block;flex:none}
footer .brand .mark-logo{width:64px;height:64px}
@media(max-width:520px){.brand .mark-logo{width:48px;height:48px}}

/* ===== Heller Hero-Rahmen für High-Key-Foto (formatfüllend) ===== */
.frame.frame-light{background:#fff;aspect-ratio:4/3}
.frame.frame-light .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.frame.frame-light .corner{color:rgba(156,132,85,.85);text-shadow:0 1px 6px rgba(255,255,255,.6)}

/* ===== Kontaktformular (eigenes HTML, modern) ===== */
.jform{display:grid;gap:20px}
.jf-success{background:#e6f0e8;border:1px solid #2d6a34;color:#1f4d25;border-radius:var(--r-sm,12px);padding:14px 18px;font-size:.95rem}
.jform fieldset{border:0;margin:0;padding:0}
.jf-aud legend{font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding:0}
.jf-radios{display:flex;gap:12px;flex-wrap:wrap}
.jf-radio{flex:1;min-width:140px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-sm,12px);padding:13px 16px;cursor:pointer;font-weight:500;transition:border-color .25s,background .25s}
.jf-radio:hover{border-color:var(--gold)}
.jf-radio input{accent-color:var(--red);width:17px;height:17px}
.jf-radio:has(input:checked){border-color:var(--red);background:var(--red-soft)}
.jf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.jf-grid{grid-template-columns:1fr}}
.jf-span{grid-column:1/-1}
.jf-field{display:flex;flex-direction:column;gap:7px}
.jf-lbl{font-size:.82rem;font-weight:600;color:var(--ink)}
.jf-lbl i{color:var(--red);font-style:normal}
.jf-lbl em{font-weight:400;color:var(--faint);font-style:normal}
.jform input[type=text],.jform input[type=email],.jform input[type=tel],.jform select,.jform textarea{
  width:100%;font-family:var(--font);font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid var(--line-2);border-radius:var(--r-sm,12px);padding:13px 15px;transition:border-color .2s,box-shadow .2s}
.jform textarea{resize:vertical;min-height:120px}
.jform select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%239C8455' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px;padding-right:40px;cursor:pointer}
.jform input:focus,.jform select:focus,.jform textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.jf-consent{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--muted);line-height:1.5}
.jf-consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--red);flex:none}
.jf-consent a{color:var(--red);text-decoration:underline}
.jf-consent i{color:var(--red);font-style:normal}
.jf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.jf-submit{justify-self:start;margin-top:4px}
.jf-note{font-size:.84rem;color:var(--faint);margin:0}
.jf-note i{color:var(--red);font-style:normal}

/* ============================================================
   PREMIUM-DYNAMIK-SCHICHT: reichere Hover-/Bewegungseffekte
   ============================================================ */

/* --- Galerie: Bild-Zoom + Glanz beim Hover --- */
.gtile .gimg{transition:transform .6s var(--ease);will-change:transform}
.gtile:hover .gimg{transform:scale(1.07)}
.gtile::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);pointer-events:none;z-index:2}
.gtile:hover::after{transform:translateX(120%)}
.gtile .zoom{transition:opacity .35s,transform .45s var(--ease)}
.gtile:hover .zoom{transform:rotate(90deg)}

/* --- Turniere: Datums-Badge färbt sich, Titel & Akzentbalken --- */
.tn{position:relative;overflow:hidden}
.tn::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.tn:hover::before{transform:scaleY(1)}
.tn-date{transition:background .35s var(--ease),border-color .35s var(--ease),color .35s}
.tn:hover .tn-date{background:var(--red);border-color:var(--red)}
.tn:hover .tn-date .d,.tn:hover .tn-date .m{color:#fff}
.tn-title{transition:color .3s var(--ease)}
.tn:hover .tn-title{color:var(--red)}
.tn-action .btn{transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s}
.tn:hover .tn-action .btn{transform:translateX(3px)}

/* --- Erfolge: Medaille tanzt, Akzentlinie oben, Pfeil --- */
.erf-card{position:relative;overflow:hidden}
.erf-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.erf-card:hover::before{transform:scaleX(1)}
.erf-medal{transition:transform .45s var(--ease)}
.erf-card:hover .erf-medal{transform:scale(1.22) rotate(-8deg)}
.erf-more{transition:gap .3s var(--ease),color .3s}
.erf-card:hover .erf-more{gap:.7em;color:var(--red)}
.erf-card .erf-title{transition:color .3s}
.erf-card:hover .erf-title{color:var(--red)}
.m-badge{transition:transform .25s var(--ease)}
.erf-res li:hover .m-badge{transform:scale(1.08)}
.erf-year summary{transition:opacity .25s}
.erf-year summary:hover{opacity:.7}

/* --- Trainingszeiten: Disziplin-Akzentbalken links --- */
.ses{overflow:hidden}
.ses.judo{--sc:var(--red)}.ses.tkd{--sc:#2f5f8f}.ses.kungfu{--sc:#c05000}.ses.kumdo{--sc:#2d6a34}
.ses::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sc,var(--red));transform:scaleY(.0);transform-origin:center;transition:transform .4s var(--ease)}
.ses:hover::before{transform:scaleY(1)}
.ses .dtag{transition:color .3s}
.ses:hover .dtag{color:var(--sc,var(--red))}

/* --- News: Karten-Akzent + Feature-Glyph-Bewegung --- */
.narticle{position:relative;overflow:hidden}
.narticle::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.narticle:hover::before{transform:scaleX(1)}
.narticle:hover h3{color:var(--red);transition:color .3s}
.feat-media .gly{transition:transform .7s var(--ease),opacity .7s}
.feat:hover .feat-media .gly{transform:scale(1.12) rotate(4deg);opacity:.32}
.feat-media::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 30% 90%,rgba(255,255,255,.10),transparent 60%);opacity:0;transition:opacity .6s}
.feat:hover .feat-media::before{opacity:1}

/* --- Filter-Pills: aktiver Zustand mit sanftem Puls --- */
.fpill[aria-pressed="true"]{transform:translateY(-1px)}
.fpill:active{transform:scale(.96)}

/* --- Globale Mikro-Interaktionen --- */
.btn{transition:transform .25s var(--ease),box-shadow .3s var(--ease),background .25s,color .25s,border-color .25s}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost:hover{transform:translateY(-2px)}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
/* Footer-Links: animierter Unterstrich */
footer .foot-col a{position:relative;transition:color .25s}
footer .foot-col a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
footer .foot-col a:hover::after{transform:scaleX(1);transform-origin:left}
/* Karten in Intro/Werte: Icon leicht beleben */
.itile .ic,.value .vi{transition:transform .4s var(--ease)}
.itile:hover .ic{transform:scale(1.08) rotate(-4deg)}
/* Disziplin-Wegweiser & Förderer: Pfeil-Animation */
.dteaser-card:hover .arr,.sponsor-card:hover .arr{transform:translateX(4px)}
.dteaser-card .arr,.sponsor-card .arr{transition:transform .3s var(--ease)}

/* ===== Home-News-Kasten: rechte Seite füllen (dezentes Wasserzeichen) ===== */
.cycler::before{content:"柔道";position:absolute;right:clamp(18px,4vw,58px);top:50%;transform:translateY(-50%);font-family:"Hiragino Sans","Yu Gothic","Noto Sans CJK JP",var(--serif),serif;font-weight:700;font-size:clamp(96px,17vw,230px);line-height:.8;color:rgba(255,255,255,.045);pointer-events:none;z-index:0;white-space:nowrap;letter-spacing:.04em}
.cyc-track{position:relative;z-index:1}
.news-slide{transform:translateY(10px)}
.news-slide p{max-width:48ch}
@media(max-width:680px){.cycler::before{display:none}}

/* ===== Hover allgemein ruhiger (kein „Wegfliegen") ===== */
.gtile:hover{transform:translateY(-3px)}
.itile:hover,.dteaser-card:hover,.sponsor-card:hover,.erf-card:hover,.tn:hover,.ses:hover,.narticle:hover,.path-step:hover,.vcard:hover,.loc-btn:hover,.cs-card:hover{transform:translateY(-3px)}

/* ============================================================
   FARBSCHICHT – mehr Farbe auf ALLEN Seiten (dezent & premium)
   ============================================================ */
/* Headline-Highlight als warmer Verlauf (rot → orange → brass) */
.ac{color:var(--red);background:linear-gradient(96deg,var(--red) 0%,#cf6a24 50%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* In Disziplin-Seiten bleibt die jeweilige Disziplinfarbe */
.disc .ac{background:none;-webkit-text-fill-color:var(--ac);color:var(--ac)}

/* Eyebrow: wärmerer Ton + farbiger Strich */
.eyebrow{color:var(--gold)}
.eyebrow::before{background:linear-gradient(90deg,var(--red),var(--gold));width:30px}
.final .eyebrow,.book .eyebrow{color:#D9BE84}

/* Sanfter Farb-Schimmer im Seitenkopf (alle Standardseiten) */
.page-hd:not(.disc-hero){position:relative;overflow:hidden}
.page-hd:not(.disc-hero)::after{content:"";position:absolute;top:-55%;left:50%;width:90vw;max-width:1200px;height:60vw;max-height:760px;transform:translateX(-50%);background:radial-gradient(closest-side at 32% 50%,rgba(196,30,20,.06),transparent 72%),radial-gradient(closest-side at 70% 45%,rgba(156,132,85,.07),transparent 72%);pointer-events:none;z-index:0}
.page-hd>*{position:relative;z-index:1}

/* Footer: farbige Akzentlinie oben (auf jeder Seite sichtbar) */
footer{position:relative}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),#cf6a24 38%,var(--gold) 64%,var(--tkd) 100%)}

/* Home-Disziplinkacheln: farbiger Bodenakzent + zarte Tönung beim Hover */
.disc-grid .disc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ac,var(--gold));transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.disc-grid .disc:hover::after{transform:scaleX(1)}
.disc-grid .disc:hover{background:color-mix(in srgb,var(--ac) 6%,var(--bg-2))}

/* Turniere: Altersklassen-Tags als farbige Pills */
.tn-tags span{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.03em;color:var(--red);background:var(--red-soft);border-radius:999px;padding:3px 10px;margin:0 6px 6px 0}

/* Erfolge: Jahres-Badge farbig, Gruppentitel mit Akzent */
.erf-year-badge{color:var(--red)}
.erf-group h4{color:var(--red-deep)}

/* Akkordeon (Disziplinen + Datenschutz): farbiger Top-Balken beim Öffnen */
.acc{position:relative}
.acc::before{content:"";position:absolute;left:0;right:0;top:0;height:0;background:linear-gradient(90deg,var(--red),var(--gold));transition:height .3s var(--ease);z-index:2}
.acc.open::before{height:3px}
.disc .acc::before{background:linear-gradient(90deg,var(--ac),color-mix(in srgb,var(--ac) 40%,var(--gold)))}

/* Ghost-Button: Hover bekommt Akzentfarbe */
.btn-ghost:hover{border-color:var(--red);color:var(--red)}

/* Rechtstexte (Impressum/Datenschutz-Prosa): premium Typo + Farbe */
.legal-prose h2,.prose h2{position:relative;padding-left:20px}
.legal-prose h2::before,.prose h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:2px;background:linear-gradient(var(--red),var(--gold))}
.prose h3{color:var(--red-deep)}
.prose ul li::marker{color:var(--red)}
.prose a{color:var(--red);font-weight:500}

/* Kontakt-Infokarten: farbiger Rand beim Hover */
.cs-card{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.cs-card:hover{border-color:color-mix(in srgb,var(--red) 35%,var(--line))}

/* ============================================================
   MEHR LEBEN – lebendige Farbflächen (deutlich sichtbarer)
   ============================================================ */
/* Umgebungslicht hinter allen Inhalten – die vier Disziplinfarben */
body{background:var(--bg)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(44vw 44vw at 5% 3%, rgba(196,30,20,.08), transparent 62%),
    radial-gradient(50vw 50vw at 97% 10%, rgba(156,132,85,.11), transparent 62%),
    radial-gradient(48vw 48vw at 92% 90%, rgba(17,74,134,.07), transparent 62%),
    radial-gradient(46vw 46vw at 3% 97%, rgba(52,94,51,.07), transparent 62%)}

/* Statistik-Zahlen in den vier Disziplinfarben */
.stats-row .stat:nth-child(1) .n{color:var(--red)}
.stats-row .stat:nth-child(2) .n{color:var(--tkd)}
.stats-row .stat:nth-child(3) .n{color:var(--kungfu)}
.stats-row .stat:nth-child(4) .n{color:var(--kumdo)}

/* Home-Disziplinkacheln dauerhaft zart in ihrer Farbe getönt */
.disc-grid .disc.judo{background:color-mix(in srgb,var(--red) 5%,var(--bg))}
.disc-grid .disc.tkd{background:color-mix(in srgb,var(--tkd) 5%,var(--bg))}
.disc-grid .disc.kungfu{background:color-mix(in srgb,var(--kungfu) 5%,var(--bg))}
.disc-grid .disc.kumdo{background:color-mix(in srgb,var(--kumdo) 5%,var(--bg))}
.disc-grid .disc.judo:hover{background:color-mix(in srgb,var(--red) 11%,var(--bg))}
.disc-grid .disc.tkd:hover{background:color-mix(in srgb,var(--tkd) 11%,var(--bg))}
.disc-grid .disc.kungfu:hover{background:color-mix(in srgb,var(--kungfu) 11%,var(--bg))}
.disc-grid .disc.kumdo:hover{background:color-mix(in srgb,var(--kumdo) 11%,var(--bg))}

/* Hero: größerer, sichtbarer Farb-Glow (rot + brass) */
.hero::before{width:60vw;height:60vw;top:-22%;right:-14%;background:radial-gradient(circle,rgba(196,30,20,.11),transparent 62%)}
.hero::after{content:"";position:absolute;bottom:-26%;left:-12%;width:46vw;height:46vw;border-radius:50%;background:radial-gradient(circle,rgba(156,132,85,.13),transparent 62%);z-index:0;pointer-events:none}

/* Seitenkopf-Schimmer kräftiger */
.page-hd:not(.disc-hero)::after{background:radial-gradient(closest-side at 28% 50%,rgba(196,30,20,.10),transparent 72%),radial-gradient(closest-side at 74% 42%,rgba(156,132,85,.12),transparent 72%)}

/* Dunkle Abschluss-Sektion: farbiger Doppel-Glow */
.final::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 100% at 10% 0%,rgba(196,30,20,.22),transparent 55%),radial-gradient(55% 100% at 92% 100%,rgba(156,132,85,.18),transparent 55%);pointer-events:none;z-index:0}
.final>*{position:relative;z-index:1}

/* Icon-Kacheln: wärmerer Verlauf */
.itile .ic{background:linear-gradient(135deg,var(--red-soft),#f6edde)}

/* Primär-Button mit Tiefe */
.btn-primary{background:linear-gradient(135deg,var(--red),var(--red-deep));border:0}

/* ============================================================
   STARTSEITE – mehr Leben & Bewegung
   ============================================================ */
/* Animierter Verlauf in der Hero-Headline */
@keyframes acflow{0%{background-position:0% 50%}100%{background-position:200% 50%}}
.hero h1 .ac{background:linear-gradient(96deg,var(--red),#e0701f,var(--gold),#e0701f,var(--red));background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--red);animation:acflow 7s linear infinite}

/* Hero-Glows schweben sanft */
@keyframes floatA{0%,100%{transform:translate(0,0)}50%{transform:translate(-3%,4%)}}
@keyframes floatB{0%,100%{transform:translate(0,0)}50%{transform:translate(4%,-3%)}}
.hero::before{animation:floatA 15s ease-in-out infinite}
.hero::after{animation:floatB 18s ease-in-out infinite}

/* Warmer Farbschatten unter dem Hero-Foto */
.frame.frame-light{box-shadow:0 34px 70px -28px rgba(196,30,20,.28),0 10px 30px -18px rgba(156,132,85,.3)}

/* Disziplinen als farbiges Band */
#disziplinen{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--gold) 6%,var(--bg)) 34%,color-mix(in srgb,var(--red) 5%,var(--bg)) 100%)}

/* Lebendigere Disziplin-Kacheln: farbige Icons, Titel & Pills */
.disc-grid .disc .ic{background:color-mix(in srgb,var(--ac) 18%,#fff)}
.disc-grid .disc h3{color:var(--ac)}
.disc-grid .disc h3::before{height:3px;width:24px;background:var(--ac)}
.disc-grid .disc .age{background:color-mix(in srgb,var(--ac) 13%,#fff);padding:5px 12px;border-radius:999px;color:color-mix(in srgb,var(--ac) 75%,#000)}

/* Statistik: farbige Akzentbalken unter den Zahlen */
.stats-row .stat .n{position:relative;display:inline-block;padding-bottom:12px}
.stats-row .stat .n::after{content:"";position:absolute;left:0;bottom:0;width:34px;height:3px;border-radius:2px}
.stats-row .stat:nth-child(1) .n::after{background:var(--red)}
.stats-row .stat:nth-child(2) .n::after{background:var(--tkd)}
.stats-row .stat:nth-child(3) .n::after{background:var(--kungfu)}
.stats-row .stat:nth-child(4) .n::after{background:var(--kumdo)}

@media(prefers-reduced-motion:reduce){.hero h1 .ac{animation:none}.hero::before,.hero::after{animation:none}}

/* ============================================================
   VIEL MEHR FARBE – kräftige, lebendige Gestaltung
   ============================================================ */
/* Umgebungslicht spürbar kräftiger (alle Seiten) */
body::before{background:
  radial-gradient(46vw 46vw at 3% 2%, rgba(196,30,20,.13), transparent 60%),
  radial-gradient(52vw 52vw at 98% 7%, rgba(156,132,85,.17), transparent 60%),
  radial-gradient(50vw 50vw at 95% 93%, rgba(17,74,134,.12), transparent 60%),
  radial-gradient(48vw 48vw at 2% 98%, rgba(52,94,51,.12), transparent 60%)}

/* HERO: warmer Farbverlauf als Untergrund + kräftige Glows */
.hero{background:linear-gradient(155deg,#fdeee5 0%,var(--bg) 40%,#edf3f8 100%)}
.hero::before{width:62vw;height:62vw;background:radial-gradient(circle,rgba(196,30,20,.16),transparent 60%)}
.hero::after{width:50vw;height:50vw;background:radial-gradient(circle,rgba(224,112,31,.17),transparent 60%)}

/* Vier-Farben-Band oben an den Disziplinen (die vier Wege) */
#disziplinen{border-top:5px solid transparent;border-image:linear-gradient(90deg,var(--red) 0 25%,var(--tkd) 25% 50%,var(--kungfu) 50% 75%,var(--kumdo) 75% 100%) 1;background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 10%,var(--bg)),color-mix(in srgb,var(--red) 8%,var(--bg)))}

/* Disziplin-Kacheln: kräftige Tönung, Icon-Kreis mit Farb-Glow, Dauerbalken */
.disc-grid .disc.judo{background:color-mix(in srgb,var(--red) 9%,var(--bg))}
.disc-grid .disc.tkd{background:color-mix(in srgb,var(--tkd) 9%,var(--bg))}
.disc-grid .disc.kungfu{background:color-mix(in srgb,var(--kungfu) 9%,var(--bg))}
.disc-grid .disc.kumdo{background:color-mix(in srgb,var(--kumdo) 9%,var(--bg))}
.disc-grid .disc.judo:hover{background:color-mix(in srgb,var(--red) 15%,var(--bg))}
.disc-grid .disc.tkd:hover{background:color-mix(in srgb,var(--tkd) 15%,var(--bg))}
.disc-grid .disc.kungfu:hover{background:color-mix(in srgb,var(--kungfu) 15%,var(--bg))}
.disc-grid .disc.kumdo:hover{background:color-mix(in srgb,var(--kumdo) 15%,var(--bg))}
.disc-grid .disc .ic{background:color-mix(in srgb,var(--ac) 22%,#fff);box-shadow:0 10px 24px -10px var(--ac),inset 0 0 0 1px color-mix(in srgb,var(--ac) 40%,transparent)}
.disc-grid .disc::after{height:4px;transform:scaleX(1)}
.disc-grid .disc:hover{box-shadow:0 18px 40px -22px var(--ac),var(--sh-2)}

/* Statistik auf farbig getönter Karte */
.stats{background:linear-gradient(120deg,color-mix(in srgb,var(--red) 7%,var(--bg)),color-mix(in srgb,var(--tkd) 7%,var(--bg)));border:1px solid var(--line);border-radius:var(--r);padding:6px clamp(14px,3vw,30px);box-shadow:var(--sh-1)}

/* Booking-Sektion (dunkel) farbenfroher */
.book .glow{background:radial-gradient(58% 100% at 100% -10%,rgba(196,30,20,.32),transparent 55%),radial-gradient(60% 120% at 0% 115%,rgba(17,74,134,.26),transparent 55%)}

/* Factchips/Reassure mit Farbe */
.factchip{background:linear-gradient(135deg,var(--red-soft),#f7ddd6)}
.reassure svg{color:var(--red)}

/* ============================================================
   EDEL / HIGH-END – ruhiger, hochwertiger Premium-Look
   (überschreibt die kräftige Farbschicht gezielt)
   ============================================================ */
/* Warmes, edles Papier statt bunter Flächen – nur ein feines Goldlicht */
body::before{background:
  radial-gradient(70vw 46vw at 50% -8%, rgba(156,132,85,.10), transparent 60%),
  radial-gradient(42vw 42vw at 100% 102%, rgba(156,132,85,.06), transparent 60%)}

/* HERO: ruhiger, warmer Verlauf + ein einziges, ruhiges Goldlicht */
.hero{background:linear-gradient(168deg,#fbf6ee 0%,var(--bg) 52%)}
.hero::before{width:56vw;height:56vw;background:radial-gradient(circle,rgba(156,132,85,.13),transparent 62%);animation:none}
.hero::after{width:42vw;height:42vw;background:radial-gradient(circle,rgba(196,30,20,.055),transparent 62%);animation:none}
.frame.frame-light{box-shadow:0 40px 80px -36px rgba(28,22,16,.4),0 0 0 1px rgba(156,132,85,.18)}

/* Headline edel & ruhig (kein animierter Regenbogen) */
.ac{background:none;-webkit-text-fill-color:currentColor;color:var(--red)}
.hero h1 .ac{background:none;-webkit-text-fill-color:currentColor;color:var(--red);animation:none}
.disc .ac{color:var(--ac);-webkit-text-fill-color:currentColor}

/* Disziplinen: edles, schmales Goldband statt buntem Vierfarbband */
#disziplinen{border-top:0;background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--gold) 4%,var(--bg)))}

/* Disziplin-Kacheln: ivory & edel, feine Linien, dezenter Farbakzent */
.disc-grid{background:#e9e1d0}
.disc-grid .disc,
.disc-grid .disc.judo,.disc-grid .disc.tkd,.disc-grid .disc.kungfu,.disc-grid .disc.kumdo{background:var(--bg)}
.disc-grid .disc:hover,
.disc-grid .disc.judo:hover,.disc-grid .disc.tkd:hover,.disc-grid .disc.kungfu:hover,.disc-grid .disc.kumdo:hover{background:#fbf7ef}
.disc-grid .disc .ic{background:var(--bg-2);box-shadow:none;border:1px solid color-mix(in srgb,var(--ac) 28%,var(--line-2))}
.disc-grid .disc h3{color:var(--ink)}
.disc-grid .disc h3::before{background:var(--ac);width:22px;height:2px}
.disc-grid .disc .age{background:none;padding:0;color:var(--ac);border-radius:0;font-weight:600}
.disc-grid .disc::after{background:var(--ac);height:2px}
.disc-grid .disc:hover{box-shadow:var(--sh-2)}

/* Statistik: edel mit feinen Haarlinien, ruhige Zahlen, Messing-Akzent */
.stats{background:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:0}
.stats-row .stat .n,
.stats-row .stat:nth-child(1) .n,.stats-row .stat:nth-child(2) .n,
.stats-row .stat:nth-child(3) .n,.stats-row .stat:nth-child(4) .n{color:var(--ink)}
.stats-row .stat .n .u{color:var(--gold)}
.stats-row .stat .n::after,
.stats-row .stat:nth-child(1) .n::after,.stats-row .stat:nth-child(2) .n::after,
.stats-row .stat:nth-child(3) .n::after,.stats-row .stat:nth-child(4) .n::after{background:var(--gold);width:28px;height:2px}

/* Icon-Kacheln (Unterseiten): edel & neutral mit feinem Goldring */
.itile .ic{background:var(--bg-2);border:1px solid rgba(156,132,85,.22)}

/* Footer & Akzentlinien: feines Gold statt Vierfarbverlauf */
footer::before{background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold) 70%,transparent)}

/* Dunkle Sektionen: tief & edel mit ruhigem Goldglanz */
.final::before{background:radial-gradient(65% 110% at 50% -10%,rgba(156,132,85,.18),transparent 60%),radial-gradient(50% 100% at 100% 110%,rgba(196,30,20,.10),transparent 60%)}
.book .glow{background:radial-gradient(60% 110% at 100% -10%,rgba(156,132,85,.22),transparent 55%),radial-gradient(50% 100% at 0 115%,rgba(196,30,20,.12),transparent 55%)}

/* Buttons: edler, ruhiger */
.btn-primary{background:var(--red);border:0}
.btn-primary:hover{background:var(--red-deep)}

/* Factchips dezent */
.factchip{background:var(--red-soft)}
/* Seitenkopf-Schimmer dezent in Gold */
.page-hd:not(.disc-hero)::after{background:radial-gradient(closest-side at 50% 40%,rgba(156,132,85,.10),transparent 72%)}

/* ============================================================
   SPORTART-HERO FIX + ROT-BETONTER EDEL-LOOK
   ============================================================ */
/* Hero-Höhe der Disziplinen sauber & kompakt, Schriftzeichen gezähmt */
.page-hd.disc-hero{padding:clamp(40px,6vw,82px) 0 clamp(22px,3vw,40px)}
.disc-hero > .wrap{position:relative;z-index:2}
.disc-glow{position:absolute;inset:0;z-index:0}
.disc-kanji{position:absolute!important;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;font-size:clamp(120px,22vw,280px);opacity:.05}

/* Rot als Hauptfarbe (Logo), Gold als feiner Zweitakzent */
body::before{background:
  radial-gradient(66vw 46vw at 50% -8%, rgba(196,30,20,.11), transparent 60%),
  radial-gradient(40vw 40vw at 100% 102%, rgba(156,132,85,.05), transparent 62%)}
.hero{background:linear-gradient(168deg,#fcefe9 0%,var(--bg) 52%)}
.hero::before{background:radial-gradient(circle,rgba(196,30,20,.15),transparent 62%)}
.hero::after{background:radial-gradient(circle,rgba(156,132,85,.07),transparent 62%)}
.eyebrow{color:var(--red-deep)}
.eyebrow::before{background:linear-gradient(90deg,var(--red),var(--gold))}
.final .eyebrow,.book .eyebrow{color:#E6BDB6}
.page-hd:not(.disc-hero)::after{background:radial-gradient(closest-side at 50% 38%,rgba(196,30,20,.12),transparent 72%)}
#disziplinen{background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--red) 5%,var(--bg)))}
.final::before{background:radial-gradient(66% 110% at 50% -10%,rgba(196,30,20,.22),transparent 60%),radial-gradient(50% 100% at 100% 110%,rgba(156,132,85,.10),transparent 60%)}
.book .glow{background:radial-gradient(60% 110% at 100% -10%,rgba(196,30,20,.30),transparent 55%),radial-gradient(50% 100% at 0 115%,rgba(156,132,85,.12),transparent 55%)}
footer::before{background:linear-gradient(90deg,var(--red),var(--gold) 55%,transparent)}
/* Disziplin-Quote & Akzente bleiben in Disziplinfarbe (Judo = rot) */
.disc-quote .qmark,.disc-quote cite{color:var(--ac)}

/* ============================================================
   LESBARKEIT – perfekte Kontraste auf allen Seiten
   ============================================================ */
/* .final hat hellen Hintergrund -> dunkle, gut lesbare Eyebrow */
.final .eyebrow{color:var(--red-deep)}
.final .eyebrow::before{background:linear-gradient(90deg,var(--red),var(--gold))}
/* .book bleibt dunkel -> helle Eyebrow */
.book .eyebrow{color:#E9C7C0}
/* schwaches Grau etwas dunkler für kleine Texte (Daten, Hinweise) */
:root{--faint:#857C6E}
/* Pills/Chips: kräftigeres Rot für klaren Kontrast */
.factchip{color:var(--red-deep)}
.npill{color:#B3160C}
/* Lede & Fließtext sicher lesbar */
.lede{color:var(--ink-2)}
.final p{color:#5F574C}

/* ============================================================
   „IN EINEM GUSS“ – durchgehende Leinwand, weiche Übergänge
   ============================================================ */
/* Eine durchgehende, warm-rote Leinwand für die ganze Seite */
body{background:linear-gradient(180deg,#fcefe9 0%,var(--bg) 16%,var(--bg) 82%,#fcefe9 100%)}
/* Umgebungslicht ruhig & fest, damit alles auf EINEM Feld liegt */
body::before{background:
  radial-gradient(60vw 42vw at 50% 0%, rgba(196,30,20,.08), transparent 60%),
  radial-gradient(46vw 46vw at 100% 60%, rgba(156,132,85,.05), transparent 62%),
  radial-gradient(46vw 46vw at 0% 100%, rgba(196,30,20,.05), transparent 62%)}

/* Hero & Disziplinen ohne eigenen Block-Hintergrund -> nahtloser Fluss */
.hero{background:transparent}
#disziplinen{background:transparent;border-top:0}

/* Hero-Glows weicher und nicht hart an der Kante abgeschnitten */
.hero{overflow:visible}
.hero::before{top:-14%;right:-6%;background:radial-gradient(circle,rgba(196,30,20,.13),transparent 64%)}
.hero::after{bottom:-10%;left:-4%;background:radial-gradient(circle,rgba(156,132,85,.08),transparent 64%)}
.hero .wrap,.hero .hero-grid{position:relative;z-index:1}

/* Seitenkopf-Schimmer sehr weich integriert */
.page-hd:not(.disc-hero)::after{opacity:.85}

/* Gleichmäßiger Rhythmus zwischen den Abschnitten (kein „Abhacken“) */
.section{padding:clamp(56px,7vw,96px) 0}
.section.pt-s{padding-top:clamp(24px,3vw,40px)}
.section.pt-0{padding-top:0}

/* Dunkle Karten (Buchung/News) weicher in die Seite eingebettet */
.book,.cycler{box-shadow:0 40px 90px -50px rgba(28,18,14,.6)}

/* Disziplin-Kacheln: feinere Trennlinien statt harter Kanten */
.disc-grid{background:#ece5d7}
.disc-grid .disc{border-radius:0}

/* Sanfte Trennlinie zwischen Abschnitten – fließend statt Bruch */
.section + .section{position:relative}
.disc-quote{border-top:1px solid color-mix(in srgb,var(--ac,var(--gold)) 14%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ac,var(--gold)) 14%,transparent)}

/* ============================================================
   TRAININGSZEITEN – färbt sich nach gewählter Sportart
   ============================================================ */
.tz{--ac:var(--red)}
.tz.tz-tkd{--ac:var(--tkd)}
.tz.tz-kungfu{--ac:var(--kungfu)}
.tz.tz-kumdo{--ac:var(--kumdo)}
/* tz-judo & tz-all bleiben rot (Standard/Vereinsfarbe) */

/* sanfte Farbübergänge beim Wechsel */
.tz .eyebrow,.tz .ac,.tz .fpill,.tz .fdot,.tz .btn-primary,.tz h1{
  transition:color .45s var(--ease),background .45s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease)}

/* Akzente in der jeweiligen Sportartfarbe */
.tz .eyebrow{color:var(--ac)}
.tz .eyebrow::before{background:linear-gradient(90deg,var(--ac),var(--gold))}
.tz .ac{background:none;-webkit-text-fill-color:var(--ac);color:var(--ac)}
.tz .page-hd:not(.disc-hero)::after{background:radial-gradient(closest-side at 50% 38%,color-mix(in srgb,var(--ac) 18%,transparent),transparent 72%)}
.tz .fdot{background:var(--ac)}
.tz .fpill[aria-pressed="true"]{border-color:var(--ac);color:color-mix(in srgb,var(--ac) 82%,#000);background:color-mix(in srgb,var(--ac) 10%,#fff)}
.tz .btn-primary{background:var(--ac)}
.tz .btn-primary:hover{background:color-mix(in srgb,var(--ac) 80%,#000)}
.tz .final .eyebrow{color:var(--ac)}
.tz .ses-warn{color:color-mix(in srgb,var(--ac) 78%,#000)}
/* dezenter Farb-Hauch über der Seite passend zur Sportart */
.tz::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;transition:background .6s var(--ease);
  background:radial-gradient(60vw 40vw at 50% 0%, color-mix(in srgb,var(--ac) 9%,transparent), transparent 60%)}

/* Filter-Pills: Punkt zeigt immer die eigene Sportfarbe (farbige Legende) */
.tz .fpill.judo .fdot{background:var(--red)}
.tz .fpill.tkd .fdot{background:var(--tkd)}
.tz .fpill.kungfu .fdot{background:var(--kungfu)}
.tz .fpill.kumdo .fdot{background:var(--kumdo)}

/* ============================================================
   GALERIE – färbt sich nach gewählter Kategorie
   ============================================================ */
.gz{--ac:var(--red)}
.gz .eyebrow,.gz .ac,.gz .fpill,.gz .btn-ghost{transition:color .45s var(--ease),background .45s var(--ease),border-color .45s var(--ease)}
.gz .eyebrow{color:var(--ac)}
.gz .eyebrow::before{background:linear-gradient(90deg,var(--ac),var(--gold))}
.gz .ac{background:none;-webkit-text-fill-color:var(--ac);color:var(--ac)}
.gz .page-hd:not(.disc-hero)::after{background:radial-gradient(closest-side at 50% 38%,color-mix(in srgb,var(--ac) 18%,transparent),transparent 72%)}
.gz .gfilters .fpill[aria-pressed="true"]{border-color:var(--ac);color:color-mix(in srgb,var(--ac) 82%,#000);background:color-mix(in srgb,var(--ac) 10%,#fff)}
.gz .btn-ghost:hover{border-color:var(--ac);color:var(--ac)}
.gz .gtile:hover .zoom{background:var(--ac);color:#fff;border-color:var(--ac)}

/* ============================================================
   EINGEFÄRBTER HINTERGRUND (Trainingszeiten + Galerie)
   – ersetzt das durchgehende Rot durch die gewählte Farbe
   ============================================================ */
.tz::before,.gz::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:1;
  background:
    radial-gradient(58vw 44vw at 50% -4%, color-mix(in srgb,var(--ac) 16%,#fff), transparent 58%),
    radial-gradient(46vw 46vw at 100% 74%, color-mix(in srgb,var(--ac) 10%,#fff), transparent 60%),
    radial-gradient(46vw 46vw at 0% 102%, color-mix(in srgb,var(--ac) 10%,#fff), transparent 60%),
    var(--bg)}

/* Hintergrund-Tint kräftiger & flächiger, damit der Farbwechsel klar sichtbar ist */
.tz::before,.gz::before{
  background:
    radial-gradient(70vw 50vw at 50% -6%, color-mix(in srgb,var(--ac) 22%,#fff), transparent 60%),
    radial-gradient(55vw 55vw at 100% 70%, color-mix(in srgb,var(--ac) 13%,#fff), transparent 62%),
    radial-gradient(55vw 55vw at 0% 104%, color-mix(in srgb,var(--ac) 13%,#fff), transparent 62%),
    color-mix(in srgb,var(--ac) 5%, var(--bg))}

/* ============================================================
   FLUSS-FIX – Farbbänder & harte Kanten entfernen
   Alles liegt auf EINER durchgehenden Leinwand
   ============================================================ */
/* „Mehr als ein Sportverein“-Band: kein eigener Hintergrund mehr */
.proof{background:transparent;border-block:0}
/* Final-CTA ohne eigenen Farb-Glow → kein rosa/rotes Band, passt zu jeder Themenfarbe */
.final::before{display:none!important}
/* Footer-Linie neutral & dezent (kollidiert mit keiner Sportfarbe) */
footer::before{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--gold) 70%,transparent) 35%,color-mix(in srgb,var(--gold) 70%,transparent) 65%,transparent);height:2px}

/* Sanftere, durchgehende Leinwand (weniger Sättigung an den Rändern) */
body{background:linear-gradient(180deg,#fbf4ef 0%,var(--bg) 18%,var(--bg) 84%,#fbf4ef 100%)}
/* Umgebungslicht ganz ruhig, damit keine Farbinseln entstehen */
body::before{background:
  radial-gradient(70vw 40vw at 50% -4%, rgba(196,30,20,.05), transparent 60%),
  radial-gradient(50vw 40vw at 50% 104%, rgba(156,132,85,.04), transparent 60%)}

/* Dunkle Karten weich eingebettet statt hart abgesetzt */
.book,.cycler{box-shadow:0 50px 100px -55px rgba(28,18,14,.55)}

/* Disziplin-Kacheln: weiche Trennfugen statt harter Linien */
.disc-grid{background:color-mix(in srgb,var(--gold) 12%,var(--line));gap:1px}

/* ============================================================
   Buttons folgen der Themenfarbe (kein roter Schatten/Hintergrund
   mehr auf blau/grün/orange eingefärbten Seiten)
   ============================================================ */
.tz .btn-primary,.gz .btn-primary{
  background:var(--ac);
  box-shadow:0 12px 28px -14px color-mix(in srgb,var(--ac) 60%,transparent)}
.tz .btn-primary:hover,.gz .btn-primary:hover{
  background:color-mix(in srgb,var(--ac) 82%,#000);
  box-shadow:0 16px 34px -16px color-mix(in srgb,var(--ac) 55%,transparent);
  transform:translateY(-2px)}
/* Ghost-Button-Hover ebenfalls in Themenfarbe */
.tz .btn-ghost:hover,.gz .btn-ghost:hover{border-color:var(--ac);color:var(--ac)}

/* ============================================================
   MOBILE-FEINSCHLIFF (≤600px) – Überläufe, Überschriften,
   Buttons, Abstände, Sticky-CTA
   ============================================================ */
@media (max-width:600px){
  /* Eyebrows: kleiner, weniger gesperrt, umbrechbar → kein Rausragen mehr */
  .eyebrow{font-size:.6rem;letter-spacing:.14em;flex-wrap:wrap;row-gap:5px;max-width:100%}
  .eyebrow::before{width:22px}
  /* Hero-Überschrift: kleiner & luftiger (vorher zu eng) */
  .hero h1{font-size:clamp(2.4rem,10.5vw,3.2rem);line-height:1.1;margin-top:18px}
  .disc-hero h1{font-size:clamp(2.4rem,11vw,3.2rem);line-height:1.1}
  /* Große Abschnitts-/Final-Überschriften zähmen */
  .final h2,.section-head h2,.proof h2,.intro h2{font-size:clamp(1.95rem,8.5vw,2.55rem);line-height:1.14}
  .page-hd h1{font-size:clamp(2.2rem,9.5vw,3rem);line-height:1.1}
  /* Aktionen gestapelt, Buttons volle Breite & gut tappbar */
  .hero-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:26px}
  .hero-actions .btn{width:100%;justify-content:center}
  .reassure{width:100%;justify-content:flex-start;margin-top:2px}
  /* etwas großzügigere Seitenränder */
  .wrap{width:92vw}
  /* Lesetexte minimal größer für Lesbarkeit */
  .hero p,.lede{font-size:1.02rem}
  /* Disziplin-Watermark dezenter, damit nichts überlagert */
  .disc-kanji{opacity:.04}
}
@media (max-width:380px){
  .hero h1,.disc-hero h1{font-size:clamp(2.1rem,11vw,2.7rem)}
  .brand .bt small{font-size:.62rem}
}
/* Sticky-CTA (Handy) verdeckt den Footer-Inhalt nicht mehr */
@media (max-width:920px){footer{padding-bottom:96px}}

/* ============================================================
   RHYTHMUS – durchgängige, edle Abstände (Desktop + Mobil)
   Ein konsistentes Spacing-System statt vieler Einzelwerte
   ============================================================ */
:root{
  --sp-sec:clamp(50px,6vw,88px);        /* Sektions-Polster oben/unten */
  --sp-eyebrow:clamp(12px,1.5vw,18px);  /* Eyebrow → Überschrift */
  --sp-title:clamp(15px,1.9vw,22px);    /* Überschrift → Fließtext */
  --sp-cta:clamp(24px,3vw,34px);        /* Text → Buttons/Chips/Filter */
  --sp-head:clamp(32px,4.4vw,52px);     /* Section-Head → Inhalt/Raster */
}
/* Sektions-Polster vereinheitlicht (kein 104–116px mehr) */
.section{padding:var(--sp-sec) 0}
.section.pt-0{padding-top:0}
.section.pt-s{padding-top:clamp(22px,3vw,38px)}
.hero{padding:clamp(42px,6vw,86px) 0 0}
.final{padding:var(--sp-sec) 0}
.page-hd{padding:clamp(42px,5.5vw,80px) 0 0}
.page-hd.disc-hero{padding:clamp(38px,5vw,72px) 0 clamp(18px,2.6vw,34px)}
.disc-quote{padding:var(--sp-sec) 0}
footer{padding:clamp(52px,6vw,78px) 0 30px}

/* Innerer Rhythmus – Textgruppen lesen als zusammenhängende Einheit */
.hero h1{margin:var(--sp-eyebrow) 0 0;line-height:1.08}
.hero .lede{margin:var(--sp-title) 0 0}
.hero-actions{margin-top:var(--sp-cta)}
.factchips{margin-top:var(--sp-cta)}
.section-head h2{margin:var(--sp-eyebrow) 0 0}
.section-head p{margin-top:var(--sp-title)}
.page-hd h1{margin-top:var(--sp-eyebrow)}
.page-hd p{margin-top:var(--sp-title)}
.final h2{line-height:1.05}
.final p{margin:var(--sp-title) auto 0}
.final .hero-actions{margin-top:var(--sp-cta)}
.disc-grid{margin-top:var(--sp-head)}
.filters,.gfilters{margin-top:var(--sp-cta)}

/* Raster-Abstände zu ihren Section-Heads vereinheitlichen */
.nlist{margin-top:var(--sp-head)}
.week{margin-top:var(--sp-head)}
.factstrip{margin-top:var(--sp-head)}
.age-grid,.val-grid,.dteaser,.path-grid,.erf-grid,.vboard,.sponsor-grid,.loc-grid{margin-top:clamp(20px,2.6vw,30px)}

/* Hero-/Quote-Raster enger gekoppelt (kein 90px-Spalt) */
.hero-grid{gap:clamp(34px,4.5vw,70px)}
.quote-grid{gap:clamp(32px,4.5vw,66px)}

/* Mobil zusätzlich verdichten, damit nichts „schwebt“ */
@media (max-width:600px){
  :root{--sp-sec:clamp(40px,10vw,56px);--sp-head:clamp(26px,7vw,40px)}
  .section-head{max-width:none}
}

/* ============================================================
   PREMIUM CONTROLS – Buttons & interaktive Details perfektioniert
   Zurückhaltend & edel: Glanzkante, Press-Feedback, weiche Tiefe
   ============================================================ */
.btn{will-change:transform}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
/* Press-Feedback für alle Buttons (taktil, dezent) */
.btn:active{transform:translateY(0) scale(.985)}

/* Primärbutton: feine Oberlicht-Glanzkante + sattere, weichere Tiefe */
.btn-primary{box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 12px 26px -14px rgba(196,30,20,.55)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 20px 40px -16px rgba(196,30,20,.5)}
.btn-primary:active{transform:translateY(0) scale(.985);box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 8px 18px -12px rgba(196,30,20,.5)}

/* Ghost-Button: gleicher Lift wie Primär, edle Kontur, Press */
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--ink);background:rgba(21,18,14,.03);box-shadow:0 12px 26px -18px rgba(21,18,14,.45)}
.btn-ghost:active{transform:translateY(0) scale(.985)}

/* Themen-Buttons (Trainingszeiten/Galerie/Disziplinen): Glanzkante + Farbschatten */
.tz .btn-primary,.gz .btn-primary,.disc .btn-primary{box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 12px 26px -14px color-mix(in srgb,var(--ac) 55%,transparent)}
.tz .btn-primary:hover,.gz .btn-primary:hover,.disc .btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 20px 40px -16px color-mix(in srgb,var(--ac) 50%,transparent)}

/* Pills: weicher Lift, Press, sanfter Schatten im aktiven Zustand */
.fpill,.tfilters .fpill,.gfilters .fpill{transition:background .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease),transform .25s var(--ease),box-shadow .28s var(--ease)}
.fpill:hover{transform:translateY(-1px);box-shadow:0 8px 18px -13px rgba(21,18,14,.55)}
.fpill:active{transform:translateY(0)}
.fpill[aria-pressed="true"]{box-shadow:0 9px 22px -13px rgba(21,18,14,.42)}
.tz .fpill[aria-pressed="true"]{box-shadow:0 9px 22px -13px color-mix(in srgb,var(--ac) 48%,transparent)}
.gz .gfilters .fpill[aria-pressed="true"]{box-shadow:0 9px 22px -13px color-mix(in srgb,var(--ac) 48%,transparent)}

/* Factchips: feine Kontur + leiser Hover-Lift (lebendig, nicht aufdringlich) */
.factchip{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--red) 13%,transparent);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.disc .factchip{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ac) 18%,transparent)}
.factchips:hover .factchip{transform:translateY(-1px)}

/* Nav-CTA: dezenter Lift + Press */
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 14px 26px -15px rgba(21,18,14,.6)}
.nav-cta:active{transform:translateY(0)}

/* Akkordeon-Kopf: feiner Hover am Icon */
.acc-head:hover .ico{border-color:var(--ink);color:var(--ink)}
.disc .acc-head:hover .ico{border-color:var(--ac);color:var(--ac)}

/* Klickbare Karten: zartes Press-Feedback */
.disc-grid .disc:active,.tn:active,.narticle:active,.gtile:active,.loc-btn:active{transform:translateY(0) scale(.992)}

/* Fokus-Ring nimmt die Themenfarbe auf (kein roter Ring auf blau/grün/orange) */
.tz :focus-visible,.gz :focus-visible,.disc :focus-visible{outline-color:var(--ac)}

/* ============================================================
   LIQUID GLASS – durchscheinende Premium-Oberflächen
   (nur schwebende Elemente; Inhaltskarten bleiben lesbar solide)
   ============================================================ */
@supports ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){

  /* Sticky-Nav (gescrollt): Liquid Glass mit Lichtkante */
  .nav.scrolled{
    background:linear-gradient(180deg,rgba(252,251,247,.78),rgba(252,251,247,.60));
    -webkit-backdrop-filter:blur(22px) saturate(188%);backdrop-filter:blur(22px) saturate(188%);
    border-color:rgba(255,255,255,.5);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 14px 36px -26px rgba(28,18,14,.5)}

  /* Dropdown-Menüs: Liquid Glass */
  .ndrop-menu{
    background:linear-gradient(180deg,rgba(252,251,247,.82),rgba(252,251,247,.70));
    -webkit-backdrop-filter:blur(28px) saturate(188%);backdrop-filter:blur(28px) saturate(188%);
    border:1px solid rgba(255,255,255,.6);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.75), 0 24px 50px -26px rgba(28,18,14,.45)}

  /* Mobile-Nav-Panel: Liquid Glass */
  @media (max-width:920px){
    .nav-links{
      background:linear-gradient(180deg,rgba(252,251,247,.86),rgba(252,251,247,.74));
      -webkit-backdrop-filter:blur(26px) saturate(188%);backdrop-filter:blur(26px) saturate(188%);
      border-bottom:1px solid rgba(255,255,255,.6)}
  }

  /* Filter-Pills (inaktiv): frosted glass – nimmt auf Themenseiten die Farbe auf */
  .fpill{
    background:rgba(252,251,247,.52);
    -webkit-backdrop-filter:blur(12px) saturate(165%);backdrop-filter:blur(12px) saturate(165%);
    border-color:rgba(255,255,255,.55);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
  .fpill:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 18px -13px rgba(21,18,14,.5)}

  /* Sticky-CTA (mobil): Liquid Glass */
  .sticky-cta{
    background:linear-gradient(180deg,rgba(252,251,247,.72),rgba(252,251,247,.86));
    -webkit-backdrop-filter:blur(22px) saturate(188%);backdrop-filter:blur(22px) saturate(188%);
    border-top:1px solid rgba(255,255,255,.6);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 -12px 30px -26px rgba(28,18,14,.4)}

  /* Galerie-Zoom: kleine Glas-Pille */
  .gtile .zoom{
    background:rgba(252,251,247,.5);
    -webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 6px 16px -10px rgba(28,18,14,.5)}

  /* Lightbox-Bedienung: dunkles Liquid Glass */
  .lb-btn,.lb-close{
    -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
}

/* Datenschutz – „Stand“-Hinweis */
.ds-stand{margin-top:clamp(30px,4vw,46px);padding-top:clamp(20px,3vw,28px);border-top:1px solid var(--line);font-size:.85rem;color:var(--faint);text-align:center;max-width:64ch;margin-inline:auto}

/* ============================================================
   STANDORT-KARTEN (Verein) – premium, anklickbar (öffnet Karte)
   ============================================================ */
.location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:clamp(20px,2.6vw,30px)}
.location-card{
  display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;
  width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);
  padding:24px 20px;font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink);
  cursor:pointer;-webkit-appearance:none;appearance:none;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.location-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:inset 0 1px 0 rgba(255,255,255,.6), var(--sh-2)}
.location-card:active{transform:translateY(0) scale(.992)}
.location-card:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* ============================================================
   FIX – Cookie-Banner „Ablehnen“ lesbar + Buttons ohne Hover-Versatz
   ============================================================ */
/* „Ablehnen“ auf dunklem Banner gut lesbar */
.cookie-banner .btn-ghost{color:#F2ECE2;border-color:rgba(255,255,255,.45);background:transparent}
.cookie-banner .btn-ghost:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.10)}

/* Alle Buttons bleiben beim Hover/Klick ruhig – kein „Weggleiten“ */
.btn:hover,.btn:active,.btn:focus-visible,
.nav-cta:hover,.nav-cta:active,
.fpill:hover,.fpill:active,
.location-card:hover,.location-card:active,
.loc-btn:hover,.loc-btn:active{transform:none !important}

/* ============================================================
   ANKER-SPRÜNGE – Sticky-Nav verdeckt das Ziel nicht mehr
   ============================================================ */
section[id],[id].book,.page-hd[id]{scroll-margin-top:98px}
@media (max-width:600px){section[id],[id].book{scroll-margin-top:90px}}

/* ============================================================
   MOBIL v2 – Sticky-CTA entfernt, Liquid Glass dezenter
   ============================================================ */
/* Schwebender Dauer-Button: weg (Markup entfernt, hier doppelt abgesichert) */
.sticky-cta{display:none !important}
/* Footer braucht unten keinen Extra-Platz mehr */
@media (max-width:920px){footer{padding-bottom:30px}}

/* Liquid Glass auf Mobil deutlich zurückgenommen (war zu stark) */
@media (max-width:600px){
  .nav.scrolled{background:rgba(252,251,247,.93);-webkit-backdrop-filter:blur(10px) saturate(135%);backdrop-filter:blur(10px) saturate(135%)}
  .nav-links{background:rgba(252,251,247,.97);-webkit-backdrop-filter:blur(8px) saturate(125%);backdrop-filter:blur(8px) saturate(125%)}
  .ndrop-menu{background:rgba(252,251,247,.96);-webkit-backdrop-filter:blur(8px) saturate(125%);backdrop-filter:blur(8px) saturate(125%)}
  .fpill{background:rgba(252,251,247,.88);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
  .gtile .zoom{background:rgba(252,251,247,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
}

/* ============================================================
   MOBILE NAV – kompletter, robuster Neuaufbau (solid & klar)
   ============================================================ */
@media (max-width:920px){
  /* Header kompakt & robust gegen Umbruch der Marke */
  .nav-inner{min-height:62px;height:auto;padding-block:8px}
  .brand{max-width:calc(100% - 60px)}
  .brand .mark-logo{width:44px;height:44px}
  .brand .bt{font-size:.95rem;line-height:1.1}
  .brand .bt small{font-size:.58rem;margin-top:1px}
  .burger{display:flex !important;align-items:center;justify-content:center;width:46px;height:46px;font-size:1.55rem;margin-right:-8px;border-radius:10px;transition:background .2s}
  .burger:active{background:var(--bg-2)}

  /* Menü-Panel: SOLID (kein Glas), klar lesbar, sitzt sicher unter dem Header */
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bg) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    box-shadow:0 26px 44px -30px rgba(28,18,14,.55);
    padding:6px 5vw calc(18px + env(safe-area-inset-bottom));
    max-height:0;overflow:hidden;opacity:0;visibility:hidden;
    transition:max-height .4s var(--ease),opacity .3s,visibility .4s;z-index:90}
  .nav-links.open{max-height:80vh;overflow-y:auto;opacity:1;visibility:visible;-webkit-overflow-scrolling:touch}

  /* Top-Level-Einträge & Dropdown-Köpfe als klare Zeilen mit Trennlinie */
  .nav-links>a,.ndrop-t{
    display:flex;align-items:center;justify-content:space-between;
    width:100%;padding:16px 6px;font-size:1.06rem;font-weight:500;color:var(--ink) !important;
    background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left}
  .ndrop{width:100%;border-bottom:1px solid var(--line)}
  .ndrop .ndrop-t{border-bottom:0}
  .ndrop-t .caret{opacity:.7;transition:transform .3s var(--ease)}
  .ndrop.open .ndrop-t{color:var(--red) !important}
  .ndrop.open .ndrop-t .caret{transform:rotate(180deg)}

  /* Untermenü: solide, eingerückt, sauberes Aufklappen */
  .ndrop-menu{
    position:static !important;background:transparent !important;
    -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
    border:0 !important;box-shadow:none !important;border-radius:0;
    opacity:1 !important;visibility:visible !important;transform:none !important;min-width:0;margin:0;
    max-height:0;overflow:hidden;padding:0;
    transition:max-height .34s var(--ease),padding .34s}
  .ndrop.open .ndrop-menu{max-height:440px;padding:2px 0 10px}
  .ndrop-menu a{display:block;padding:12px 6px 12px 20px;font-size:1rem;color:var(--muted) !important;border:0}
  .ndrop-menu a:active{color:var(--ink) !important}

  /* Kontakt als klarer Button am Ende (höhere Spezifität als .nav-links>a) */
  .nav-links .nav-cta{
    margin:14px 0 4px !important;justify-content:center;text-align:center;
    border:0 !important;padding:15px 22px !important;border-radius:12px;
    background:var(--ink) !important;color:#fff !important;font-size:1rem}
}

/* ============================================================
   FARB-KOHÄSION – alle Seiten aus einem Guss, keine Blöcke
   ============================================================ */
/* Seitenkopf-Schein sehr dezent & warm → verschmilzt mit der Leinwand
   (kein roter „Block" mehr oben). Themen-/Disziplinseiten überschreiben
   das weiterhin mit ihrer Sportfarbe, da höher spezifisch. */
.page-hd:not(.disc-hero)::after{
  background:radial-gradient(closest-side at 50% 42%, rgba(156,132,85,.045), transparent 70%);
  opacity:1}
/* Stats: kein abgesetztes Band mehr – nur eine dezente obere Trennlinie */
.stats{border-top:1px solid var(--line);border-bottom:0}

/* ============================================================
   TRAININGSZEITEN & GALERIE – Hintergrund neutral wie alle Seiten
   (Sportfarbe bleibt nur in Akzenten: Eyebrow, Pills, Buttons)
   ============================================================ */
.tz::before,.gz::before{display:none !important}
.tz .page-hd:not(.disc-hero)::after,.gz .page-hd:not(.disc-hero)::after{
  background:radial-gradient(closest-side at 50% 42%, rgba(156,132,85,.045), transparent 70%)}

/* ============================================================
   LIQUID GLASS – durchgängig auf allen Seiten, dezent & lesbar
   ============================================================ */
@supports ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  /* Helle Inhaltskarten: feines Milchglas + Lichtkante.
     Akzent-Ränder (z. B. goldener Balken) bleiben erhalten (kein border-color-Override). */
  .tn,.narticle,.form-card,.info-card,.tcard,.ses,.itile,.erf-card,.cs-card,
  .age-card,.vcard,.dteaser-card,.path-step,.callout,.loc-btn,.location-card,
  .sponsor-card,.value,.vextra,.note-box,.disc-grid .disc{
    background:rgba(255,255,255,.68);
    -webkit-backdrop-filter:blur(26px) saturate(135%);backdrop-filter:blur(26px) saturate(135%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.75), 0 12px 32px -28px rgba(28,18,14,.22)}

  /* Dunkle Akzentkarten bleiben solide & lesbar – nur feine Glas-Lichtkante oben */
  .book,.cycler,.feat,.info-card.hl{box-shadow:inset 0 1px 0 rgba(255,255,255,.10), var(--sh-3)}

  /* Mobil: Karten solider & ohne Blur (Lesbarkeit + Performance) */
  @media (max-width:600px){
    .tn,.narticle,.form-card,.info-card,.tcard,.ses,.itile,.erf-card,.cs-card,
    .age-card,.vcard,.dteaser-card,.path-step,.callout,.loc-btn,.location-card,
    .sponsor-card,.value,.vextra,.note-box,.disc-grid .disc{
      background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}
  }
}

/* ============================================================
   SEITENKOPF MIT FARBE – im Stil der Disziplin-Seiten
   Sanfter Markenrot-Schein hinter jeder Überschrift
   ============================================================ */
.page-hd:not(.disc-hero)::after,
.tz .page-hd:not(.disc-hero)::after,
.gz .page-hd:not(.disc-hero)::after{
  background:radial-gradient(closest-side at 50% 40%,
    rgba(196,30,20,.13),
    rgba(156,132,85,.05) 52%,
    transparent 76%);
  opacity:1}

/* ============================================================
   SEITENKOPF-FARBE v2 – kräftig im Stil des Disziplin-Hero
   Glow füllt den Kopfbereich von oben, Inhalt sauber darüber
   ============================================================ */
.page-hd:not(.disc-hero){position:relative;overflow:hidden}
.page-hd:not(.disc-hero) > .wrap{position:relative;z-index:2}
.page-hd:not(.disc-hero)::after,
.tz .page-hd:not(.disc-hero)::after,
.gz .page-hd:not(.disc-hero)::after{
  content:"";position:absolute;inset:0;top:0;left:0;right:0;bottom:0;
  width:auto;height:auto;max-width:none;max-height:none;transform:none;
  z-index:1;pointer-events:none;
  background:radial-gradient(72% 96% at 50% -12%, rgba(196,30,20,.18), rgba(196,30,20,.06) 46%, transparent 74%);
  opacity:1}

/* ============================================================
   STARTSEITE – spürbar warm, nicht steril (Aurora-Schein)
   ============================================================ */
.hero > .wrap{position:relative;z-index:2}
.hero::before{width:60vw;height:60vw;top:-18%;right:-12%;
  background:radial-gradient(circle, rgba(196,30,20,.17), transparent 62%);
  animation:floatA 16s ease-in-out infinite}
.hero::after{content:"";position:absolute;bottom:-22%;left:-12%;width:50vw;height:50vw;
  border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle, rgba(156,132,85,.16), transparent 62%);
  animation:floatB 19s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.hero::before,.hero::after{animation:none}}

/* ============================================================
   TRAININGSZEITEN & GALERIE – Seitenkopf-Schein folgt der Auswahl
   (Farbe wechselt beim Filtern über --ac; Fallback Markenrot)
   ============================================================ */
.gz{--ac:var(--red)}
.tz .page-hd:not(.disc-hero)::after,
.gz .page-hd:not(.disc-hero)::after{
  background:radial-gradient(72% 96% at 50% -12%, rgba(196,30,20,.18), rgba(196,30,20,.06) 46%, transparent 74%);
  background:radial-gradient(72% 96% at 50% -12%,
    color-mix(in srgb, var(--ac, var(--red)) 20%, transparent),
    color-mix(in srgb, var(--ac, var(--red)) 6%, transparent) 46%,
    transparent 74%)}

/* ============================================================
   STARTSEITE – gleicher Stil wie alle Seiten:
   Farbschein oben hinter der Überschrift (Top-Wash) + warmer Gold-Akzent
   ============================================================ */
.hero::before{
  inset:0;top:0;left:0;right:0;bottom:0;width:auto;height:auto;max-width:none;max-height:none;
  border-radius:0;transform:none;
  background:radial-gradient(80% 94% at 50% -14%, rgba(196,30,20,.17), rgba(196,30,20,.05) 44%, transparent 72%);
  animation:none}
.hero::after{
  top:auto;right:auto;bottom:-24%;left:-14%;width:48vw;height:48vw;border-radius:50%;
  background:radial-gradient(circle, rgba(156,132,85,.14), transparent 62%);
  animation:floatB 20s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.hero::after{animation:none}}

/* ============================================================
   PROFESSIONAL FINISHING – übergreifender Qualitäts-Feinschliff
   ============================================================ */
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;
  scrollbar-width:thin;scrollbar-color:rgba(156,132,85,.45) transparent}

/* Markenfarbe für Textauswahl */
::selection{background:rgba(196,30,20,.18);color:var(--ink)}

/* Feiner Textumbruch: Überschriften ausbalanciert, Fließtext „pretty“ */
h1,h2,h3,h4,.eyebrow{text-wrap:balance}
p,.lede,li{text-wrap:pretty}
.page-hd .lede{max-width:60ch;margin-inline:auto}

/* Medien sauber */
img{max-width:100%;height:auto;vertical-align:middle}
a{text-underline-offset:.16em}

/* Barrierefreier Fokus als Default (themenspezifische Ringe gewinnen weiterhin) */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--red);outline-offset:3px}

/* Dezente, gebrandete Scrollbar (WebKit) */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:rgba(156,132,85,.42);border-radius:9px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(156,132,85,.7);background-clip:content-box}

/* Druckansicht: aufgeräumt, lesbar, ohne UI-Chrome */
@media print{
  .nav,.burger,.cookie-banner,#mapModal,.sticky-cta,.hero-actions,
  .filters,.tz-filters,.gz-filters,.fpill,.lb,.cyc-dots{display:none !important}
  *{box-shadow:none !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;
    text-shadow:none !important;animation:none !important}
  html,body{background:#fff !important}
  body{color:#111}
  .hero::before,.hero::after,.page-hd::after,body::before{display:none !important}
  .book,.cycler,.feat,.info-card.hl,footer{background:#fff !important;color:#111 !important;border:1px solid #ddd}
  a{color:#111;text-decoration:underline}
  .section,.page-hd{padding-block:14px !important}
}

/* Turniere: abgelaufene Meldefrist durchgestrichen */
.tn-meta .dl.dl-expired{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--muted) !important;opacity:.8}

/* ============================================================
   DROPDOWN-MENÜ (Desktop) – highend & klar lesbar (nahezu deckend)
   ============================================================ */
@media (min-width:921px){
  .ndrop-menu{
    background:rgba(252,251,247,.99);
    -webkit-backdrop-filter:blur(5px) saturate(140%);backdrop-filter:blur(5px) saturate(140%);
    border:1px solid rgba(28,18,14,.08);
    border-radius:16px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),
               0 28px 56px -24px rgba(28,18,14,.40),
               0 6px 16px -10px rgba(28,18,14,.22);
    padding:8px}
  @supports ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
    .ndrop-menu{background:linear-gradient(180deg, rgba(253,252,250,.98), rgba(251,250,246,.95))}
  }
  .ndrop-menu a{
    color:var(--ink);font-weight:500;padding:11px 14px;border-radius:10px;
    transition:background .2s var(--ease),color .2s var(--ease)}
  /* Hover: dezente Tönung, KEIN Versatz */
  .ndrop-menu a:hover,.ndrop-menu a:focus-visible{
    background:var(--red-soft);color:var(--red);padding-left:14px}
}

/* Kontakt-Button: lesbarer Hover (rot + weiß) – nicht vom allgemeinen Link-Hover aufgehellt */
.nav-links>a.nav-cta:hover,
.nav-links>a.nav-cta:focus-visible{background:var(--red) !important;color:#fff !important}

/* ============================================================
   TYPO-HIERARCHIE – einheitliche, edle Skala über ALLE Seiten
   Seitentitel  >  Abschnittstitel / CTA  >  Karten
   ============================================================ */
/* Ebene 1 – Seitentitel (prominenteste Ebene, einheitlich, immer 400er-Serife) */
.disc-hero h1,
.page-hd h1{
  font-size:clamp(2.6rem, 5vw, 4rem) !important;
  font-weight:400 !important;letter-spacing:-.02em !important;line-height:1.06 !important}
.hero h1{
  font-size:clamp(2.9rem, 5.6vw, 4.6rem) !important;
  font-weight:400 !important;letter-spacing:-.022em !important;line-height:1.02 !important}

/* Ebene 2 – Abschnittstitel & finaler CTA (klare Stufe darunter, untereinander stimmig) */
.section-head h2,
.intro h2,
.proof h2,
.tsec-head h2,
.book h2{
  font-size:clamp(2rem, 3.5vw, 2.9rem) !important;
  font-weight:400 !important;letter-spacing:-.018em !important;line-height:1.08 !important}
.final h2{
  font-size:clamp(2.1rem, 3.7vw, 3.1rem) !important;
  font-weight:400 !important;letter-spacing:-.018em !important;line-height:1.06 !important}

/* Mobil kompakter, gleiche Hierarchie */
@media (max-width:600px){
  .hero h1,.disc-hero h1,.page-hd h1{font-size:clamp(2.2rem, 8.6vw, 2.9rem) !important;line-height:1.1 !important}
  .section-head h2,.intro h2,.proof h2,.tsec-head h2,.book h2,.final h2{font-size:clamp(1.8rem, 7vw, 2.35rem) !important;line-height:1.14 !important}
}

/* ============================================================
   FIXES – Kontakt-Karte lesbar · Haupttrainer markenrot · CTA-Abstände
   ============================================================ */
/* 1) Kontakt: dunkle Karte bleibt dunkel (Glas-Layer hatte sie aufgehellt) */
.cs-card.cs-dark{
  background:linear-gradient(155deg,var(--ink),var(--ink-2)) !important;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
  border-color:transparent !important;color:#fff}
.cs-card.cs-dark h3{color:#fff}

/* 3) Haupttrainer-Karte: markenrot statt „Trauer-Schwarz“ – wirkt lebendig */
.vcard.lead{
  background:linear-gradient(165deg,#c4261b,#8a150e) !important;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
  border-color:transparent !important;color:#fff;
  box-shadow:0 30px 60px -34px rgba(138,21,14,.6)}
.vcard.lead .vname{color:#fff}
.tgroup .vcard.lead .vrole,.vcard.lead .vrole{color:rgba(255,255,255,.85)}
.vcard.lead .vmono{background:rgba(255,255,255,.10);color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 0 0 6px rgba(255,255,255,.07)}
.vcard.lead .vmono::after{border-color:rgba(255,255,255,.5)}
.vcard.lead .tlead-badge{color:#fff;background:rgba(255,255,255,.20)}
.vcard.lead .tbio{border-top-color:rgba(255,255,255,.22);color:rgba(255,255,255,.85)}
.tgroup .vcard.lead .tbio li::before,.vcard.lead .tbio li::before{background:#fff}

/* 4) CTA-Abstände straffen & vereinheitlichen (Buttons näher am Text) */
:root{--sp-cta:clamp(16px,2vw,24px)}
.disc-hero .hero-actions,
.final .hero-actions,
.hero-actions{margin-top:var(--sp-cta)}

/* ============================================================
   MOBIL-NAV iPhone-Feinschliff – Safe-Area/Notch + klarer Bar
   ============================================================ */
@media (max-width:920px){
  /* Nav FIX – vom Nutzer getestete, funktionierende Variante */
  .nav{
    position:fixed;
    top:0 !important;left:0;right:0;
    margin-top:0 !important;
    padding-top:env(safe-area-inset-top);
    background:var(--bg) !important;
    -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
    border-bottom:1px solid var(--line);
    z-index:1000}
  .nav.scrolled{background:var(--bg) !important;box-shadow:0 1px 0 rgba(21,18,14,.05)}
  /* Inhalt um die feste Nav-Höhe versetzen – exakt via JS (--nav-h), Fallback 65px */
  body{padding-top:65px}
  body{padding-top:var(--nav-h, calc(65px + env(safe-area-inset-top))) !important}
  /* Unten: Home-Indicator-Safe-Area (viewport-fit=cover) */
  .cookie-inner{padding-bottom:calc(18px + env(safe-area-inset-bottom)) !important}
  footer{padding-bottom:calc(34px + env(safe-area-inset-bottom)) !important}
}

/* ============================================================
   Sportseiten: „Trainingszeiten“-Button (Ghost) klar erkennbar/lesbar
   ============================================================ */
.disc-hero .btn-ghost{
  background:rgba(255,255,255,.7);
  color:var(--ink);
  border-color:rgba(21,18,14,.30);
  font-weight:600}
.disc-hero .btn-ghost:hover{
  background:#fff;
  border-color:var(--ac, var(--red));
  color:var(--ac, var(--red))}

/* ============================================================
   DATENSCHUTZ – highend: Inhaltsübersicht-Karte, Gruppen, Icon-Badges
   ============================================================ */
.ds-toc{position:relative;overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%,var(--bg) 100%);
  border:1px solid var(--line);border-radius:20px;
  padding:34px 38px 36px;
  box-shadow:0 24px 56px -38px rgba(28,18,14,.35), inset 0 1px 0 rgba(255,255,255,.75);
  margin-bottom:54px}
.ds-toc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold,#9C8455),rgba(156,132,85,.16))}
.ds-toc-head{margin-bottom:28px}
.ds-toc-ey{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold,#9C8455);font-weight:700;margin-bottom:9px}
.ds-toc-head h3{font-family:var(--serif);font-size:1.5rem;font-weight:400;letter-spacing:-.01em;color:var(--ink)}
.ds-toc-cols{display:flex;flex-wrap:wrap;gap:30px 46px}
.ds-toc-col{flex:1 1 210px;display:flex;flex-direction:column;gap:12px;min-width:200px}
.ds-toc-h{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:2px}
.ds-toc a{display:flex;align-items:baseline;gap:12px;color:var(--ink-2);font-size:.96rem;
  text-decoration:none;transition:color .2s var(--ease)}
.ds-toc a .ds-num{font-family:var(--serif);font-size:.84rem;font-weight:600;color:var(--gold,#9C8455);
  min-width:20px;font-variant-numeric:tabular-nums;opacity:.9;flex:none}
.ds-toc a:hover{color:var(--red)}
.ds-toc a:hover .ds-num{color:var(--red)}

.ds-group{display:flex;align-items:center;gap:16px;margin:52px 0 20px}
.ds-group-label{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#9C8455);font-weight:700;white-space:nowrap}
.ds-group::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--gold,#9C8455);flex:none;opacity:.85}
.ds-group::after{content:"";flex:1;height:1px;background:var(--line)}

.acc{scroll-margin-top:104px}
.acc-head .acc-ico{width:44px;height:44px;border-radius:50%;flex:none;
  background:var(--bg-2,#f4efe7);border:1px solid var(--line);
  display:grid;place-items:center;font-size:1.2rem;line-height:1;
  transition:background .3s,border-color .3s}
.acc.open .acc-head .acc-ico{background:#fff;border-color:var(--line-2)}
.acc-head:hover .acc-ico{border-color:var(--line-2)}
.acc:target{border-color:var(--red);box-shadow:var(--sh-1)}

.ds-stand{margin-top:48px;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;color:var(--muted);font-size:.9rem}

@media (max-width:820px){
  .ds-toc{padding:26px 24px 28px}
  .ds-toc-cols{flex-direction:column;gap:24px}
  .ds-toc-col{min-width:0}
}

/* ============================================================
   DATENSCHUTZ v2 – klare Lese-Ansicht: sticky Seitennav + offene Abschnitte
   ============================================================ */
.ds-layout{display:flex;align-items:flex-start;gap:48px}
.ds-rail{flex:0 0 250px;position:sticky;top:96px}
.ds-body{flex:1;min-width:0}

.ds-rail-card{position:relative;overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);
  border:1px solid var(--line);border-radius:18px;padding:24px 24px 26px;
  box-shadow:0 22px 50px -38px rgba(28,18,14,.32),inset 0 1px 0 rgba(255,255,255,.7)}
.ds-rail-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold,#9C8455),rgba(156,132,85,.16))}
.ds-toc-ey{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold,#9C8455);font-weight:700;margin-bottom:14px}
.ds-rail-nav{display:flex;flex-direction:column;gap:9px}
.ds-rail-nav .ds-toc-h{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  font-weight:700;margin:15px 0 5px;border:0;padding:0}
.ds-rail-nav .ds-toc-h:first-child{margin-top:0}
.ds-rail-nav a{display:flex;align-items:baseline;gap:10px;color:var(--ink-2);font-size:.9rem;
  text-decoration:none;transition:color .2s var(--ease)}
.ds-rail-nav a .ds-num{font-family:var(--serif);font-size:.78rem;font-weight:600;color:var(--gold,#9C8455);
  min-width:18px;font-variant-numeric:tabular-nums;opacity:.9;flex:none}
.ds-rail-nav a:hover{color:var(--red)}
.ds-rail-nav a:hover .ds-num{color:var(--red)}

.ds-group{display:flex;align-items:center;gap:16px;margin:8px 0 22px}
.ds-group:not(:first-child){margin-top:46px}
.ds-group-label{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#9C8455);font-weight:700;white-space:nowrap}
.ds-group::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold,#9C8455);flex:none;opacity:.85}
.ds-group::after{content:"";flex:1;height:1px;background:var(--line)}

.ds-sec{scroll-margin-top:96px;background:var(--bg);border:1px solid var(--line);
  border-radius:16px;padding:30px 34px;margin-bottom:18px;transition:border-color .3s,box-shadow .3s}
.ds-sec:target{border-color:var(--red);box-shadow:var(--sh-1)}
.ds-sec-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.ds-sec-head h3{font-family:var(--serif);font-size:1.32rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.ds-sec-body{color:var(--ink-2);line-height:1.75;font-size:.97rem}
.ds-sec-body p+p{margin-top:14px}
.ds-sec-body ul{list-style:none;display:grid;gap:12px;margin-top:14px}
.ds-sec-body li{position:relative;padding-left:24px}
.ds-sec-body li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--red);opacity:.65}
.ds-sec-body strong{color:var(--ink);font-weight:600}
.ds-sec-body a{color:var(--red);text-decoration:underline;text-underline-offset:2px}

.acc-ico{width:44px;height:44px;border-radius:50%;flex:none;
  background:var(--bg-2,#f4efe7);border:1px solid var(--line);
  display:grid;place-items:center;font-size:1.2rem;line-height:1}

.ds-stand{margin-top:36px;padding-top:26px;border-top:1px solid var(--line);
  text-align:center;color:var(--muted);font-size:.9rem}

@media (max-width:920px){
  .ds-layout{display:block}
  .ds-rail{position:static;margin-bottom:30px}
  .ds-rail-card{padding:22px 22px 24px}
  .ds-sec{padding:24px 22px}
  .ds-group:not(:first-child){margin-top:36px}
}

/* ============================================================
   Reduced-Motion: Inhalte sofort sichtbar, Bewegungen reduziert
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1 !important;transform:none !important}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important}
}

/* Formular-Fehlermeldungen */
.jf-error{background:rgba(196,30,20,.08);border:1px solid var(--red);border-radius:12px;
  padding:16px 20px;margin-bottom:20px;color:var(--red-deep,#8a150e)}
.jf-error p{margin:0;font-size:.95rem}
.jf-error p+p{margin-top:6px}

/* Footer kompakter */
footer{padding:clamp(36px,4vw,54px) 0 24px}
footer .brand .mark-logo{width:50px;height:50px}

/* ============ LESERLICHKEIT & FEINSCHLIFF ============ */
/* 1) Sekundärtext global etwas kräftiger (besserer Kontrast, edler Look bleibt) */
:root{ --muted:#5E564A; --faint:#7A7163; }

/* 2) Fließtext: angenehmere Zeilenhöhen */
.section-head p,.page-hd p{line-height:1.62}
.value p,.final p{line-height:1.6}
.disc-grid .disc p{line-height:1.62}
.hero .lede{line-height:1.6}

/* 3) NAV: klarer Aktiv-Zustand zur Orientierung */
.nav-links>a:hover,.ndrop-t:hover{color:var(--ink)}
.nav-links>a.active{color:var(--ink);position:relative}
.nav-links>a.active::after{content:"";position:absolute;left:15px;right:15px;bottom:5px;height:2px;border-radius:2px;background:var(--red)}
.ndrop-t.active{color:var(--ink);font-weight:600}
.ndrop-menu a[aria-current="page"]{color:var(--red);background:var(--red-soft)}

/* 4) FOOTER: deutlich bessere Lesbarkeit */
footer{color:rgba(243,238,229,.76)}
footer .foot-col h5{color:rgba(243,238,229,.62)}
footer .foot-col a{color:rgba(243,238,229,.84)}
footer .foot-col a:hover{color:#fff}
footer .foot-bottom{color:rgba(243,238,229,.62)}
footer .brand small{color:rgba(243,238,229,.66)}

/* ============ TRAININGSZEITEN-FILTER: deutlich erkennbar ============ */
.filters .fpill{
  background:#fff;
  border:1.5px solid var(--line-2);
  color:var(--ink-2);
  font-weight:600;
  box-shadow:0 1px 2px rgba(21,18,14,.05),0 8px 18px -13px rgba(21,18,14,.28);
}
.filters .fpill:hover{background:#fff;border-color:var(--ac,var(--ink));color:var(--ink);transform:translateY(-1px)}
.filters .fpill .fdot{
  width:10px;height:10px;margin-right:9px;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--fc,var(--muted)) 18%,transparent)}
/* Aktiver Disziplin-Filter: klar in Akzentfarbe gefüllt */
.tz .filters .fpill[aria-pressed="true"]{
  background:var(--ac);border-color:var(--ac);color:#fff;
  box-shadow:0 10px 24px -12px color-mix(in srgb,var(--ac) 60%,transparent)}
.tz .filters .fpill[aria-pressed="true"] .fdot{background:#fff;box-shadow:none}
/* "Alle" aktiv -> dunkel gefüllt */
.filters .fpill[data-filter="all"][aria-pressed="true"]{
  background:var(--ink);border-color:var(--ink);color:#fff;
  box-shadow:0 10px 24px -12px rgba(21,18,14,.5)}
