/* =================================================================
   MOVEMENT GESUNDHEITSFABRIK — Entwurf 1  ·  "Soft One-Pager"
   (basiert auf olia Entwurf 3) · runde/organische Formen · dark+light
   Brand: Inter · Schwarz/Weiß · Lime #A2E030
   ================================================================= */

:root,[data-theme="dark"]{
  --bg:#0c0d0a;
  --surface:#16170f;
  --surface-2:#1f2016;
  --text:#f4f4ef;
  --muted:#9a9b90;
  --line:rgba(255,255,255,.13);
  --teal:#a2e030;          /* lime CI */
  --teal-soft:#b9ec5a;     /* helleres lime für Text auf dunkel */
  --teal-glow:rgba(162,224,48,.4);
  --on-teal:#11140a;       /* dunkler Text auf Lime */
  --shadow:0 40px 90px -50px rgba(0,0,0,.9);
}
[data-theme="light"]{
  --bg:#f5f4f0;
  --surface:#ffffff;
  --surface-2:#ecebe4;
  --text:#111110;
  --muted:#686864;
  --line:rgba(12,12,12,.12);
  --teal:#a2e030;
  --teal-soft:#6f9e18;     /* dunkleres lime für Text auf hell */
  --teal-glow:rgba(162,224,48,.32);
  --on-teal:#11140a;
  --shadow:0 40px 90px -55px rgba(40,50,30,.35);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
body{
  font-family:"Inter",-apple-system,system-ui,sans-serif;
  background:var(--bg); color:var(--text);
  font-weight:300; font-size:clamp(15px,1vw,17px); line-height:1.7;
  -webkit-font-smoothing:antialiased;
  /* overflow-x:clip statt hidden — verhindert, dass body zum Scroll-Container wird (iOS Phantom-Leerraum) */
  overflow-x:clip;
  transition:background .6s ease, color .6s ease;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }
::selection{ background:var(--teal); color:#11140a; }

h1,h2,h3,h4{ font-weight:700; line-height:.98; letter-spacing:-.035em; }
.lower{ text-transform:lowercase; }
.d1{ font-size:clamp(2.8rem,8vw,7.5rem); line-height:.92; letter-spacing:-.04em; }
.d2{ font-size:clamp(2.2rem,5.5vw,4.8rem); line-height:.95; letter-spacing:-.04em; }
.d3{ font-size:clamp(1.6rem,3vw,2.6rem); letter-spacing:-.03em; }
.italic{ font-family:Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.01em; }
.tl{ color:var(--teal-soft); }
.eyebrow{ display:inline-flex; align-items:center; gap:.6em; font-size:.74rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.eyebrow::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal); }

.wrap{ width:100%; max-width:1280px; margin-inline:auto; padding-inline:clamp(18px,5vw,56px); }
.sec{ padding-block:clamp(70px,10vw,150px); position:relative; }
.lead{ font-size:clamp(1.1rem,1.7vw,1.55rem); font-weight:300; line-height:1.5; color:var(--text); }
.muted{ color:var(--muted); }
.center{ text-align:center; }
.mt-s{margin-top:20px}.mt-m{margin-top:38px}.mt-l{margin-top:60px}

/* — pills / buttons — */
.btn{
  display:inline-flex; align-items:center; gap:.7em;
  padding:1.1em 1.9em; border-radius:100px;
  background:var(--text); color:var(--bg);
  font-size:.82rem; font-weight:500; letter-spacing:.04em;
  border:1px solid var(--text); white-space:nowrap;
  transition:transform .4s cubic-bezier(.2,.9,.3,1.2), background .4s, color .4s, border-color .4s;
}
.btn:hover{ transform:translateY(-3px); }
.btn .x{ transition:transform .4s ease; }
.btn:hover .x{ transform:translateX(4px); }
.btn--teal{ background:var(--teal); color:var(--on-teal); border-color:var(--teal); }
.btn--ghost{ background:transparent; color:var(--text); border:1px solid var(--line); }
.btn--ghost:hover{ border-color:var(--teal); color:var(--teal-soft); }

.tag{ display:inline-flex; align-items:center; gap:.5em; padding:.6em 1.1em; border-radius:100px; border:1px solid var(--line); font-size:.78rem; background:var(--surface); }
.tag .dot{ width:7px; height:7px; border-radius:50%; background:var(--teal); }

.arrow{ display:inline-flex; align-items:center; gap:.55em; font-size:.8rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.arrow .x{ transition:transform .4s ease; }
.arrow:hover .x{ transform:translateX(6px); }

/* =================================================================
   NAV — floating pill
   ================================================================= */
.nav{
  position:fixed; top:18px; left:50%; transform:translateX(-50%); z-index:100;
  width:min(1180px,calc(100% - 28px));
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 10px 10px 24px; border-radius:100px;
  background:color-mix(in srgb, var(--surface) 78%, transparent);
  border:1px solid var(--line);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  transition:background .6s ease, border-color .6s ease;
}
.nav__logo{ font-weight:700; font-size:1.2rem; letter-spacing:-.04em; text-transform:lowercase; }
.nav__menu{ display:flex; gap:6px; list-style:none; }
.nav__menu a{ padding:.55em 1em; border-radius:100px; font-size:.84rem; font-weight:400; transition:background .3s, color .3s; }
.nav__menu a:hover,.nav__menu a.on{ background:var(--surface-2); }
.nav__r{ display:flex; align-items:center; gap:10px; }

/* theme toggle */
.toggle{ position:relative; width:62px; height:30px; border-radius:100px; background:var(--surface-2); border:1px solid var(--line); flex:none; transition:background .4s; }
.toggle::after{ content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:var(--teal); transition:transform .45s cubic-bezier(.5,1.6,.4,1), background .4s; }
[data-theme="light"] .toggle::after{ transform:translateX(32px); background:#f9b233; }
.toggle .ic{ position:absolute; top:50%; translate:0 -50%; font-size:.7rem; opacity:.6; }
.toggle .ic.moon{ left:8px; } .toggle .ic.sun{ right:8px; }

.burger{ display:none; flex-direction:column; gap:5px; padding:10px; }
.burger span{ width:22px; height:1.5px; background:var(--text); transition:.3s; }

.drawer{ position:fixed; inset:0; z-index:98; background:var(--bg); padding:120px 28px 40px; transform:translateY(-101%); transition:transform .6s cubic-bezier(.7,0,.2,1); display:flex; flex-direction:column; gap:6px; overflow-y:auto; overscroll-behavior:contain; }
@media(min-width:981px){ .drawer{ display:none !important; } }  /* Drawer nur mobil — verhindert Durchscheinen auf Desktop */
.drawer.open{ transform:translateY(0); }
/* Online-Rezeption-Widget ausblenden, solange das Mobil-Menü offen ist (sonst überdeckt es „termin buchen") */
@media(max-width:980px){
  body.drawer-open arzt-direkt-online-rezeption{ display:none !important; }
}
.drawer a{ font-size:clamp(2rem,9vw,3.2rem); font-weight:700; letter-spacing:-.03em; text-transform:lowercase; padding:6px 0; transition:padding .3s, color .3s; }
.drawer a:hover{ padding-left:14px; color:var(--teal-soft); }

/* =================================================================
   blobs / glow decor
   ================================================================= */
.blob{ position:absolute; border-radius:50%; filter:blur(70px); z-index:0; pointer-events:none; background:var(--teal-glow); }
.ring{ position:absolute; border:1px solid var(--line); border-radius:50%; z-index:0; pointer-events:none; }

/* =================================================================
   HERO
   ================================================================= */
.hero{ position:relative; padding-top:clamp(120px,16vh,180px); padding-bottom:clamp(40px,6vw,80px); overflow:hidden; }
.hero .blob.b1{ width:620px; height:620px; top:-160px; right:-120px; }
.hero .blob.b2{ width:420px; height:420px; bottom:-180px; left:-140px; opacity:.7; }
.hero__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(30px,5vw,70px); align-items:center; position:relative; z-index:2; }
.hero h1{ }
.hero h1 .star{ color:var(--teal); font-weight:300; font-size:.5em; vertical-align:.35em; display:inline-block; }
.hero__sub{ max-width:42ch; margin-top:30px; color:var(--muted); font-size:clamp(1rem,1.3vw,1.2rem); }
.hero__cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:38px; }
.hero__stats{ display:flex; gap:30px; margin-top:46px; flex-wrap:wrap; }
.hero__stats .s b{ display:block; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:700; letter-spacing:-.03em; }
.hero__stats .s span{ font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }

/* circular hero media with floating pills */
.hero__media{ position:relative; aspect-ratio:1; }
.hero__disc{ position:absolute; inset:0; border-radius:50%; overflow:hidden; filter:grayscale(.25); box-shadow:var(--shadow); }
.hero__disc img{ width:100%; height:100%; object-fit:cover; }
.hero__media .ring{ inset:-26px; }
.hero__media .ring.r2{ inset:-52px; opacity:.5; }
.float{ position:absolute; z-index:3; padding:.7em 1.2em; border-radius:100px; background:var(--surface); border:1px solid var(--line); font-size:.82rem; font-weight:500; box-shadow:var(--shadow); display:inline-flex; align-items:center; gap:.5em; animation:bob 5s ease-in-out infinite; }
.float .dot{ width:8px; height:8px; border-radius:50%; background:var(--teal); }
.float.f1{ top:6%; left:-6%; } .float.f2{ top:42%; right:-12%; animation-delay:-1.5s; } .float.f3{ bottom:6%; left:8%; animation-delay:-3s; }
.float.badge{ background:var(--teal); color:#fff; border-color:var(--teal); width:96px; height:96px; border-radius:50%; flex-direction:column; align-items:center; justify-content:center; gap:1px; text-align:center; padding:0; bottom:-4%; right:-4%; line-height:1; }
.float.badge b{ font-size:1.5rem; } .float.badge span{ font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85; }
@keyframes bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-12px) } }

/* =================================================================
   MARQUEE (rounded)
   ================================================================= */
.marq{ overflow:hidden; white-space:nowrap; padding-block:14px; border-block:1px solid var(--line); }
.marq__t{ display:inline-flex; animation:scrollx 30s linear infinite; }
.marq:hover .marq__t{ animation-play-state:paused; }
.marq__t span{ font-size:clamp(1.4rem,3vw,2.4rem); font-weight:700; letter-spacing:-.03em; text-transform:lowercase; padding-inline:clamp(14px,2.4vw,38px); display:inline-flex; align-items:center; gap:clamp(14px,2.4vw,38px); }
.marq__t span::after{ content:""; width:.5em; height:.5em; border-radius:50%; background:var(--teal); }
@keyframes scrollx{ to{ transform:translateX(-50%); } }

/* =================================================================
   STATEMENT
   ================================================================= */
.statement{ font-size:clamp(1.7rem,4.4vw,3.8rem); font-weight:300; line-height:1.15; letter-spacing:-.03em; max-width:22ch; }
.statement b{ font-weight:700; }
.statement .hl{ color:var(--teal-soft); }
.statement .pill{ background:var(--teal); color:#fff; padding:0 .25em; border-radius:.4em; white-space:nowrap; }
.statement .mut{ color:var(--muted); }

/* =================================================================
   CLASSES — soft rounded cards w/ circular media
   ================================================================= */
.classes{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(16px,2vw,26px); }
.cl{
  position:relative; display:flex; align-items:center; gap:clamp(18px,2.4vw,32px);
  padding:clamp(20px,2.4vw,30px); border-radius:clamp(26px,3vw,42px);
  background:var(--surface); border:1px solid var(--line);
  transition:transform .5s cubic-bezier(.2,.9,.3,1.1), background .4s;
  overflow:hidden;
}
.cl:hover{ transform:translateY(-6px); }
.cl__img{ width:clamp(96px,12vw,150px); aspect-ratio:1; border-radius:50%; overflow:hidden; flex:none; filter:grayscale(.3); }
.cl__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.cl:hover .cl__img img{ transform:scale(1.08); }
.cl__b h3{ font-size:clamp(1.4rem,2.2vw,2rem); text-transform:lowercase; }
.cl__b p{ color:var(--muted); font-size:.95rem; margin-top:6px; max-width:30ch; }
.cl__b .credits{ display:inline-block; margin-top:14px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-soft); }
.cl__no{ position:absolute; top:20px; right:26px; font-size:.78rem; color:var(--muted); }

/* =================================================================
   STEPS — number circles, connected
   ================================================================= */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px); position:relative; }
.stp{ text-align:center; position:relative; }
.stp__n{ width:clamp(72px,8vw,104px); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; margin:0 auto 24px; font-size:clamp(1.6rem,2.4vw,2.4rem); font-weight:700; color:var(--teal); border:1px solid var(--line); background:var(--surface); position:relative; z-index:2; transition:.4s; }
.stp:hover .stp__n{ background:var(--teal); color:#fff; border-color:var(--teal); transform:scale(1.05); }
.stp h4{ font-size:clamp(1.15rem,1.7vw,1.5rem); text-transform:lowercase; margin-bottom:10px; }
.stp p{ color:var(--muted); font-size:.95rem; max-width:30ch; margin-inline:auto; }
.steps__line{ position:absolute; top:clamp(36px,4vw,52px); left:16%; right:16%; height:1px; background:var(--line); z-index:1; }
@media(min-width:761px){ .steps__line{ display:block; } }

/* =================================================================
   LEVELS — pill rows
   ================================================================= */
.levels{ display:flex; flex-direction:column; gap:14px; }
.lv{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(18px,3vw,40px); padding:clamp(20px,2.4vw,32px) clamp(24px,3vw,44px); border-radius:100px; background:var(--surface); border:1px solid var(--line); transition:transform .4s, background .4s; }
.lv:hover{ transform:translateX(8px); background:var(--surface-2); }
.lv__dots{ display:flex; gap:6px; }
.lv__dots i{ width:11px; height:11px; border-radius:50%; border:1.4px solid var(--muted); }
.lv__dots i.on{ background:var(--teal); border-color:var(--teal); }
.lv h4{ font-size:clamp(1.2rem,1.8vw,1.6rem); text-transform:lowercase; }
.lv .v{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.lv p{ color:var(--muted); font-size:.95rem; }
@media(max-width:680px){ .lv{ grid-template-columns:1fr; gap:10px; text-align:left; border-radius:30px; } .lv p{ grid-column:1; } }

/* =================================================================
   EVENTS — organic image cards
   ================================================================= */
.ev{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.ecard{ position:relative; border-radius:clamp(28px,3vw,46px); overflow:hidden; min-height:clamp(400px,44vw,540px); display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(22px,2.6vw,34px); color:#fff; isolation:isolate; }
.ecard img{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:grayscale(.4); transition:transform 1s ease; }
.ecard::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.78)); }
.ecard:hover img{ transform:scale(1.06); }
.ecard .pill{ position:absolute; top:22px; left:22px; padding:.5em 1em; border-radius:100px; background:rgba(255,255,255,.16); backdrop-filter:blur(8px); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.ecard h3{ color:#fff; font-size:clamp(1.6rem,2.4vw,2.2rem); text-transform:lowercase; }
.ecard p{ color:rgba(255,255,255,.84); font-size:.94rem; margin-top:8px; max-width:32ch; }
.ecard .arrow{ margin-top:16px; }

/* =================================================================
   OFFERS — rounded price chips
   ================================================================= */
.offers{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
.ofc{ border-radius:clamp(24px,3vw,38px); background:var(--surface); border:1px solid var(--line); padding:clamp(26px,3vw,40px); transition:transform .4s, background .4s; }
.ofc:hover{ transform:translateY(-6px); background:var(--teal); color:#fff; }
.ofc:hover .t,.ofc:hover p{ color:rgba(255,255,255,.85); }
.ofc .t{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-soft); }
.ofc h4{ font-size:clamp(1.3rem,2vw,1.7rem); text-transform:lowercase; margin:12px 0; }
.ofc p{ color:var(--muted); font-size:.92rem; }
.ofc .pr{ font-size:clamp(2rem,3.4vw,2.8rem); font-weight:700; letter-spacing:-.03em; margin-top:20px; }

/* =================================================================
   FAQ accordion (rounded)
   ================================================================= */
.faq{ display:flex; flex-direction:column; gap:12px; }
.fq{ border:1px solid var(--line); border-radius:clamp(20px,2.4vw,30px); background:var(--surface); overflow:hidden; transition:background .3s; }
.fq__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:clamp(20px,2.2vw,28px) clamp(22px,2.6vw,34px); text-align:left; font-size:clamp(1.05rem,1.6vw,1.4rem); font-weight:500; letter-spacing:-.02em; text-transform:lowercase; }
.fq__q .pm{ position:relative; width:30px; height:30px; border-radius:50%; border:1px solid var(--line); flex:none; }
.fq__q .pm::before,.fq__q .pm::after{ content:""; position:absolute; top:50%; left:50%; background:var(--teal); transition:.35s ease; }
.fq__q .pm::before{ width:12px; height:1.6px; transform:translate(-50%,-50%); }
.fq__q .pm::after{ width:1.6px; height:12px; transform:translate(-50%,-50%); }
.fq.open .pm::after{ transform:translate(-50%,-50%) scaleY(0); }
.fq__a{ max-height:0; overflow:hidden; transition:max-height .45s ease; }
.fq__a p{ padding:0 clamp(22px,2.6vw,34px) 26px; color:var(--muted); max-width:72ch; }

/* =================================================================
   BIG CTA — teal rounded panel
   ================================================================= */
.cta{ position:relative; border-radius:clamp(32px,4vw,56px); background:var(--teal); color:var(--on-teal); padding:clamp(48px,8vw,120px) clamp(24px,5vw,80px); text-align:center; overflow:hidden; isolation:isolate; }
.cta .blob{ background:rgba(255,255,255,.28); }
.cta .b1{ width:360px; height:360px; top:-120px; left:-80px; } .cta .b2{ width:300px; height:300px; bottom:-120px; right:-60px; }
.cta h2{ color:var(--on-teal); position:relative; z-index:2; }
.cta p{ color:rgba(17,20,10,.72); max-width:46ch; margin:22px auto 0; position:relative; z-index:2; }
.cta .row{ position:relative; z-index:2; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:38px; }
.cta .eyebrow{ color:rgba(17,20,10,.65) !important; }
.cta .eyebrow::before{ background:var(--on-teal); }
.cta .btn--teal{ background:var(--on-teal); color:#fff; border-color:var(--on-teal); }
.cta .btn--ghost{ color:var(--on-teal); border-color:rgba(17,20,10,.4); }
.cta .btn--ghost:hover{ border-color:var(--on-teal); color:var(--on-teal); }

/* section heading */
.sh{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:clamp(34px,5vw,64px); }
.sh .eyebrow{ margin-bottom:18px; }

/* =================================================================
   FOOTER (rounded top)
   ================================================================= */
.foot{ background:var(--surface); border-radius:clamp(36px,5vw,70px) clamp(36px,5vw,70px) 0 0; margin-top:clamp(40px,6vw,90px); padding-top:clamp(54px,7vw,96px); border:1px solid var(--line); border-bottom:none; }
.foot__top{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid var(--line); }
.foot__top p{ color:var(--muted); max-width:32ch; margin-top:16px; font-size:.92rem; }
.foot__addr{ margin-top:20px; font-size:.86rem; line-height:1.7; color:var(--muted); }
.foot h5{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:20px; }
.foot ul{ list-style:none; display:flex; flex-direction:column; gap:11px; }
.foot ul a{ color:var(--muted); font-size:.92rem; transition:color .3s, padding .3s; }
.foot ul a:hover{ color:var(--teal-soft); padding-left:5px; }
.foot__partners{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; padding-block:28px; border-bottom:1px solid var(--line); }
.foot__partners .l{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.foot__partners .p{ font-size:.9rem; padding:.5em 1em; border-radius:100px; border:1px solid var(--line); }
.foot__bottom{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-block:26px 40px; font-size:.82rem; color:var(--muted); }
.foot__socials{ display:flex; gap:18px; }
.foot__socials a:hover{ color:var(--teal-soft); }

/* interior (academy) hero */
.ihero{ position:relative; padding-top:clamp(130px,17vh,200px); padding-bottom:clamp(40px,5vw,70px); overflow:hidden; }
.ihero .blob{ width:520px; height:520px; top:-160px; right:-120px; }
.crumb{ display:flex; gap:10px; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:24px; }
.crumb .s{ color:var(--teal); }

/* trainer */
.trainer{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,70px); align-items:center; }
.trainer__img{ aspect-ratio:4/5; border-radius:clamp(30px,4vw,56px); overflow:hidden; filter:grayscale(.3); box-shadow:var(--shadow); min-width:0; }
.trainer > *{ min-width:0; }
.trainer__img img{ width:100%; height:100%; object-fit:cover; }
.creds{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.creds li{ padding:.6em 1.1em; border-radius:100px; border:1px solid var(--line); font-size:.8rem; color:var(--muted); }

/* module / price soft cards */
.mods{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,26px); }
.mod{ border-radius:clamp(28px,3vw,44px); padding:clamp(28px,3.4vw,48px); border:1px solid var(--line); background:var(--surface); display:flex; flex-direction:column; transition:transform .4s; }
.mod:hover{ transform:translateY(-5px); }
.mod.teal{ background:var(--teal); color:#fff; border-color:var(--teal); }
.mod.teal .k,.mod.teal .desc{ color:rgba(255,255,255,.8); }
.mod .k{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.mod h3{ font-size:clamp(1.6rem,2.6vw,2.4rem); text-transform:lowercase; margin:14px 0 6px; }
.mod .price{ font-size:clamp(2.6rem,5vw,4rem); font-weight:700; letter-spacing:-.03em; margin:24px 0 0; }
.mod .desc{ color:var(--muted); font-size:.95rem; }
.mod ul{ list-style:none; margin:26px 0; display:flex; flex-direction:column; gap:11px; }
.mod ul li{ font-size:.94rem; padding-left:30px; position:relative; }
.mod ul li::before{ content:""; position:absolute; left:0; top:.1em; width:18px; height:18px; border-radius:50%; background:color-mix(in srgb,var(--teal) 22%, transparent); }
.mod ul li::after{ content:"✓"; position:absolute; left:4px; top:.05em; font-size:.7rem; color:var(--teal-soft); }
.mod.teal ul li::after{ color:#fff; }
.mod .btn{ margin-top:auto; align-self:flex-start; }

/* curriculum chips */
.curr{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.cc{ border-radius:clamp(22px,2.6vw,34px); border:1px solid var(--line); background:var(--surface); padding:clamp(22px,2.6vw,34px); transition:transform .4s, background .4s; }
.cc:hover{ transform:translateY(-5px); background:var(--surface-2); }
.cc .n{ width:46px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line); color:var(--teal-soft); font-weight:600; margin-bottom:18px; }
.cc h4{ font-size:clamp(1.1rem,1.6vw,1.4rem); text-transform:lowercase; }
.cc p{ color:var(--muted); font-size:.92rem; margin-top:6px; }

/* dates soft */
.dts{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,24px); }
.dtc{ border-radius:clamp(26px,3vw,40px); border:1px solid var(--line); background:var(--surface); padding:clamp(26px,3vw,42px); transition:transform .4s; }
.dtc:hover{ transform:translateY(-5px); }
.dtc .s{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-soft); }
.dtc h4{ font-size:clamp(1.4rem,2.2vw,2rem); text-transform:lowercase; margin:12px 0; }
.dtc .m{ color:var(--muted); }
.dtc .badge{ display:inline-block; margin-top:18px; padding:.5em 1.1em; border-radius:100px; border:1px solid var(--line); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }

/* reveal */
.rv{ opacity:0; transform:translateY(30px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.rv.in{ opacity:1; transform:none; }
.rv.r1{transition-delay:.08s}.rv.r2{transition-delay:.16s}.rv.r3{transition-delay:.24s}

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media(max-width:980px){
  .nav__menu{ display:none; }
  .burger{ display:flex; }
  .nav .toggle{ display:none; }   /* Theme-Switch mobil ausblenden — Header aufgeräumt (logo · termin · burger) */
  .nav{ padding-left:20px; }
  .hero__grid{ grid-template-columns:1fr; }
  /* Grün in der Hero ganz dezent auf Mobil */
  .hero .blob.b1{ opacity:.22; }
  .hero .blob.b2{ opacity:.14; }
  .hero__media{ max-width:420px; margin-inline:auto; order:-1; }
  .trainer{ grid-template-columns:1fr; }
}
@media(max-width:760px){
  .classes,.steps,.ev,.offers,.mods,.curr,.dts,.foot__top{ grid-template-columns:1fr; }
  .steps__line{ display:none; }
  .foot__top{ gap:34px; }
}

/* =================================================================
   MOVEMENT additions — APL dark panel · contact · trust
   ================================================================= */
.darkpanel{ background:#11140a; color:#f4f4ef; border-radius:clamp(32px,4vw,56px); padding:clamp(40px,6vw,96px); position:relative; overflow:hidden; }
.darkpanel h2{ color:#fff; }
.darkpanel .eyebrow{ color:rgba(255,255,255,.5); }
.darkpanel .lead{ color:rgba(255,255,255,.6); }
.apl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center; }
.apl-feats{ list-style:none; margin:26px 0 0; }
.apl-feats li{ padding:15px 0; border-top:1px solid rgba(255,255,255,.1); display:flex; gap:14px; color:rgba(255,255,255,.62); font-size:.96rem; }
.apl-feats li::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal); margin-top:.55em; flex:none; }
.apl-nums{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.apl-num{ background:rgba(255,255,255,.04); border-radius:26px; padding:clamp(24px,3vw,36px); min-width:0; }
.apl-num span{ overflow-wrap:anywhere; }
.apl-num b{ display:block; font-size:clamp(2.4rem,4.5vw,4rem); font-weight:800; letter-spacing:-.04em; color:#fff; line-height:1; }
.apl-num.lime b{ color:var(--teal); }
.apl-num span{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-top:12px; display:block; }
@media(max-width:760px){ .apl-grid{ grid-template-columns:1fr; } }
@media(max-width:480px){ .apl-nums{ grid-template-columns:1fr; } }

/* trust band */
.trust{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:clamp(28px,4vw,64px); }
.trust .ti{ border:1px solid var(--line); border-radius:24px; padding:clamp(22px,2.6vw,32px); background:var(--surface); min-width:0; }
.trust .ti b{ display:block; font-size:clamp(1.1rem,1.5vw,1.4rem); font-weight:700; letter-spacing:-.02em; overflow-wrap:anywhere; }
.trust .ti span{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-top:8px; display:block; }
@media(max-width:760px){ .trust{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:clamp(30px,8vw,52px); } }
@media(max-width:480px){ .trust{ grid-template-columns:1fr; gap:20px; } }

/* contact rows */
.cinfo{ display:flex; flex-direction:column; gap:0; }
.cinfo .ci{ display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:baseline; padding:20px 0; border-bottom:1px solid var(--line); }
.cinfo .ci:first-child{ border-top:1px solid var(--line); }
.cinfo .ci label{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.cinfo .ci a,.cinfo .ci span{ font-size:clamp(1rem,1.3vw,1.2rem); }
.cmap{ border-radius:clamp(26px,3vw,40px); overflow:hidden; aspect-ratio:4/3; background:var(--surface); border:1px solid var(--line); display:grid; place-items:center; }
.cmap a{ color:var(--teal-soft); font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; }

/* booking widget surface */
.bookwrap{ background:#fff; border-radius:clamp(26px,3vw,40px); padding:clamp(16px,2vw,28px); min-height:420px; border:1px solid var(--line); }

.float.badge{ color:var(--on-teal); }
.float.badge b{ color:var(--on-teal); }
.float.badge span{ color:var(--on-teal); opacity:.7; }

/* ── Fixes: mobile hero floats, map embed ── */
@media(max-width:980px){
  .hero__media{ display:none; }   /* Bild-Kreis + Bubbles nur auf Desktop */
  .hero{ padding-top:clamp(120px,18vh,160px); }
}
.cmap{ padding:0; }
.cmap iframe{ width:100%; height:100%; border:0; display:block; }
[data-theme="dark"] .cmap iframe{ filter:grayscale(.2) invert(.92) hue-rotate(180deg) contrast(.9); }
.cmap-link{ display:inline-flex; align-items:center; gap:.5em; margin-top:16px; font-size:.78rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--teal-soft); }
.cmap-link .x{ transition:transform .4s ease; } .cmap-link:hover .x{ transform:translateX(5px); }

/* ── Legal pages (einheitliches Design) ── */
.legal{ max-width:780px; margin-inline:auto; padding-top:clamp(120px,16vh,180px); padding-bottom:clamp(60px,8vw,110px); }
.legal h1{ font-size:clamp(2.4rem,6vw,4rem); letter-spacing:-.04em; padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:38px; }
.legal h2{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--teal-soft); margin:36px 0 12px; }
.legal p{ color:var(--muted); margin-bottom:10px; font-size:.95rem; }
.legal strong{ color:var(--text); font-weight:600; }
.legal a{ color:var(--teal-soft); }
.legal a:hover{ text-decoration:underline; }
.legal .box{ margin-top:34px; padding:26px 30px; border:1px solid var(--line); border-left:3px solid var(--teal); border-radius:22px; background:var(--surface); }
.legal .box h2{ margin-top:0; }
.legal .box p{ font-style:italic; margin-bottom:0; }

/* ── Hinweis-Box ── */
.note{ border-radius:22px; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--teal); padding:clamp(20px,2.4vw,28px); }
.note b{ color:var(--text); }
.note p{ color:var(--muted); font-size:.95rem; margin:0; }

/* ── Google Rezensionen Badge ── */
.grev{ display:inline-flex; flex-direction:column; gap:4px; padding:14px 22px; border-radius:20px; border:1px solid var(--line); background:var(--surface); transition:transform .4s ease; }
.grev:hover{ transform:translateY(-3px); }
.grev__stars{ color:#f5b50a; letter-spacing:2px; font-size:1rem; line-height:1; }
.grev__t{ font-size:.95rem; } .grev__t b{ font-weight:700; }
.grev__c{ font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

/* ── Kontakt: aufgeräumte, geradlinige Liste (override) ── */
.cinfo{ display:flex; flex-direction:column; }
.cinfo .ci{ display:block; padding:18px 0; border-bottom:1px solid var(--line); }
.cinfo .ci:first-child{ border-top:1px solid var(--line); }
.cinfo .ci label{ display:block; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:7px; }
.cinfo .ci a,.cinfo .ci span{ font-size:clamp(1.05rem,1.4vw,1.25rem); font-weight:400; line-height:1.45; }

/* ── Brand-Logo (Wortmarke) in Nav & Footer ── */
.brandlogo{ height:18px; width:auto; display:block; }
.foot .brandlogo{ height:24px; }
[data-theme="dark"] .brandlogo{ filter:invert(1); }

/* ── Legal: Listen, Stand, Highlight ── */
.legal .updated{ display:block; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--teal-soft); margin:-22px 0 30px; }
.legal h3{ font-size:1rem; font-weight:600; color:var(--text); margin:20px 0 6px; letter-spacing:-.01em; }
.legal ul{ list-style:none; margin:0 0 14px; }
.legal ul li{ position:relative; padding:5px 0 5px 22px; color:var(--muted); font-size:.95rem; }
.legal ul li::before{ content:"—"; position:absolute; left:0; color:var(--teal-soft); }
.legal .highlight{ margin:24px 0; padding:22px 26px; border:1px solid var(--line); border-left:3px solid var(--teal); border-radius:18px; background:var(--surface); }
.legal .highlight p{ margin:0; }

/* ── Sportvereine Sektion ── */
.sportv{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,64px); align-items:center; }
.sportv__img{ border-radius:clamp(26px,3vw,44px); overflow:hidden; aspect-ratio:16/11; box-shadow:var(--shadow); }
.sportv__img img{ width:100%; height:100%; object-fit:cover; }
.sportv .feat{ list-style:none; margin:26px 0 0; display:flex; flex-direction:column; gap:13px; }
.sportv .feat li{ padding-left:28px; position:relative; color:var(--muted); font-size:.97rem; }
.sportv .feat li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--teal); }
.sportv .chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.sportv .chips span{ font-size:.74rem; border:1px solid var(--line); border-radius:100px; padding:.55em 1.1em; color:var(--muted); }
@media(max-width:880px){ .sportv{ grid-template-columns:1fr; } .sportv__img{ order:-1; } }

/* ── Firmenfitness-Partner (EGYM Wellpass / Sportnavi) ── */
.pbadges{ display:flex; flex-wrap:wrap; gap:16px; margin-top:26px; }
.pbadge{ display:inline-flex; flex-direction:column; align-items:flex-start; gap:10px; padding:22px 26px; border:1px solid var(--line); border-radius:20px; background:#fff; transition:transform .4s ease, border-color .4s ease, box-shadow .4s ease; }
.pbadge:hover{ transform:translateY(-3px); border-color:var(--teal); box-shadow:var(--shadow); }
.pbadge img{ height:30px; width:auto; display:block; }
.pbadge b{ font-size:1.08rem; font-weight:700; letter-spacing:-.01em; color:var(--text); }
.pbadge span{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }

/* generische Chips (auch außerhalb von .sportv, z. B. Firmenfitness) */
.chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.chips span{ font-size:.74rem; border:1px solid var(--line); border-radius:100px; padding:.55em 1.1em; color:var(--muted); }

/* Hero-Partner-Strip (Logos „Offizieller Partner") — Label oben, Logos darunter; immer auf Weiß, theme-sicher */
.hpartner{ display:inline-flex; flex-direction:column; align-items:flex-start; gap:12px; margin-top:30px; padding:15px 24px; border:1px solid var(--line); border-radius:22px; background:#fff; }
.hpartner__l{ font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:#7a7a72; }
.hpartner__logos{ display:inline-flex; align-items:center; gap:18px; }
.hpartner img{ height:20px; width:auto; display:block; }
.hpartner .sep{ width:1px; height:18px; background:rgba(0,0,0,.12); }

/* Firmenfitness: Buttons & Logo-Badges auch auf Mobil nebeneinander */
@media(max-width:600px){
  .hero__cta--row,.row--2col{ display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%; }
  .hero__cta--row .btn,.row--2col .btn{ width:100%; justify-content:center; text-align:center; white-space:normal; padding:1em .9em; gap:.4em; font-size:.78rem; }
  .pbadges--row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .pbadges--row .pbadge{ padding:18px 12px; align-items:center; text-align:center; gap:9px; }
  .pbadges--row .pbadge img{ height:23px; }
  .pbadges--row .pbadge span{ font-size:.56rem; letter-spacing:.1em; }
}

/* ── Preise ── */
.prices{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
.pgroup{ }
.pgroup__h{ display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.pgroup__h h3{ font-size:clamp(1.2rem,2vw,1.55rem); font-weight:700; letter-spacing:-.02em; }
.pgroup__h img{ height:20px; width:auto; }
.pgroup > .pgnote{ color:var(--muted); font-size:.84rem; margin-bottom:6px; }
.prow{ display:flex; justify-content:space-between; gap:20px; align-items:baseline; padding:15px 0; border-bottom:1px solid var(--line); }
.prow__name{ font-weight:500; font-size:1rem; }
.prow__name small{ display:block; color:var(--muted); font-size:.8rem; font-weight:300; letter-spacing:.01em; margin-top:3px; }
.prow__price{ font-weight:700; white-space:nowrap; font-size:1.05rem; letter-spacing:-.01em; }
.prow__price small{ font-weight:400; color:var(--muted); font-size:.8rem; }
@media(max-width:760px){ .prices{ grid-template-columns:1fr; } }
