/* ══════════════════════════════════════════════════════════════════
   VITAREA · Gemeinsames Stylesheet
   Corporate Design „Jahresringe / Longevity Edition"

   Aufbau:
     1  Farben und Grundwerte
     2  Reset und Basis
     3  Zugänglichkeit
     4  Navigation
     5  Hero
     6  Buttons
     7  Startseite
     8  Preisseite
     9  Textseiten
    10  Kontaktformular
    11  Einwilligung für externe Einbettungen
    12  Mitgliedschafts-Banner
    13  Footer
    14  Responsive

   Seitenbereiche werden über eine Klasse am <body> gesteuert:
     .p-home    Startseite (index.html)
     .p-preise  Mitgliedschaft und Preise
     .p-text    Textseiten (Kursplan, Impressum, Datenschutz, AGB)
   Die Schriftdateien liegen unter assets/fonts/ und werden gleich zu
   Beginn dieser Datei eingebunden – es geht keine Anfrage an Google.
   ══════════════════════════════════════════════════════════════════ */


/* ─────────────────────────────────────────────
   0 · Schriften (liegen lokal – DSGVO)
   Inter (variabel 300–900) + DM Serif Display
   Bezogen von Google Fonts, lokal ausgeliefert –
   es geht keine Anfrage mehr an Google.
   ══════════════════════════════════════════════ */
/* DM Serif Display · italic · 400 · latin-ext */
@font-face{
  font-family:'DM Serif Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/dm-serif-display-italic-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Serif Display · italic · 400 · latin */
@font-face{
  font-family:'DM Serif Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/dm-serif-display-italic-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Serif Display · normal · 400 · latin-ext */
@font-face{
  font-family:'DM Serif Display';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/dm-serif-display-normal-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Serif Display · normal · 400 · latin */
@font-face{
  font-family:'DM Serif Display';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/dm-serif-display-normal-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter · normal · 300 900 · latin-ext */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url('../fonts/inter-normal-300-900-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter · normal · 300 900 · latin */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url('../fonts/inter-normal-300-900-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* ─────────────────────────────────────────────
   1 · Farben und Grundwerte
   ───────────────────────────────────────────── */
:root{
  --deep:#1B3A2F; --vital:#B8E04A; --earth:#0F1C15;
  --warm:#F6F2EA; --stone:#E2DDD4; --sage:#7A9E8C;
  --ink:#20241f; --muted:#6a6d63;
}


/* ─────────────────────────────────────────────
   2 · Reset und Basis
   ───────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--warm);color:var(--ink);-webkit-font-smoothing:antialiased}
.p-home,.p-preise{line-height:1.7}
.p-text{line-height:1.75}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.narrow{max-width:820px}

/* Wer Bewegung reduziert haben möchte, bekommt keine Animationen */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* ─────────────────────────────────────────────
   3 · Zugänglichkeit
   ───────────────────────────────────────────── */
/* Sprungmarke – nur sichtbar, wenn sie den Fokus hat */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--vital);color:var(--earth);font-size:14px;font-weight:800;padding:14px 24px;border-radius:0 0 12px 0}
.skip:focus{left:0}

/* Sichtbarer Fokus für Tastaturbedienung, überall gleich */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid var(--vital);outline-offset:3px;border-radius:4px
}
/* Auf hellem Grund braucht der Rahmen einen dunklen Kern, sonst reicht der Kontrast nicht */
.p-home section:not(.dark):not(.earth) a:focus-visible,
.p-preise section:not(.dark) a:focus-visible,
.p-text section a:focus-visible{outline-color:var(--deep)}

/* Nur für Screenreader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}


/* ─────────────────────────────────────────────
   4 · Navigation
   ───────────────────────────────────────────── */
header.nav{position:sticky;top:0;z-index:80;background:rgba(15,28,21,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(184,224,74,.14)}
.nav-in{max-width:1180px;margin:0 auto;padding:13px 28px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand-word{font-size:20px;font-weight:900;letter-spacing:.09em;color:#fff;line-height:1}
.brand-word span{color:var(--vital)}
.brand-sub{display:block;font-size:7.5px;letter-spacing:.24em;color:rgba(255,255,255,.56);text-transform:uppercase;margin-top:3px;font-weight:600}
.nav-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.nav-links a{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.62);transition:color .18s}
.nav-links a:hover{color:var(--vital)}
.nav-cta{background:var(--vital);color:var(--earth);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:11px 21px;border-radius:99px;white-space:nowrap;transition:transform .15s}
.nav-cta:hover{transform:scale(1.04)}
.burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:6px}
.burger span{width:24px;height:2px;background:var(--vital);display:block;border-radius:2px}

/* ─── Ausklappmenü „Bereiche" ───────────────────────────────────
   Die fünf Ringe stehen gebündelt hinter einem Eintrag. Zuvor lagen
   sie einzeln in der Leiste – die dadurch auf keiner Bildschirmbreite
   in eine Zeile passte. */
.bereiche{position:relative}
.bereiche-knopf{
  display:flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.62);padding:0;transition:color .18s
}
.bereiche-knopf:hover,.bereiche-knopf[aria-expanded="true"]{color:var(--vital)}
.bereiche-knopf .pfeil{width:9px;height:9px;flex-shrink:0;transition:transform .2s}
.bereiche-knopf[aria-expanded="true"] .pfeil{transform:rotate(180deg)}

.bereiche-menu{
  display:none;position:absolute;top:calc(100% + 14px);left:-16px;z-index:90;min-width:266px;
  background:var(--earth);border:1px solid rgba(184,224,74,.18);border-radius:18px;
  padding:10px;box-shadow:0 22px 50px rgba(0,0,0,.42)
}
.bereiche-menu.offen{display:block}
.bereiche-menu a{
  display:flex;align-items:center;gap:13px;padding:9px 12px;border-radius:12px;
  text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;
  color:rgba(255,255,255,.78);transition:background .16s,color .16s
}
.bereiche-menu a:hover{background:rgba(184,224,74,.1);color:var(--vital)}
.bereiche-menu a svg{flex-shrink:0}
.bereiche-menu .nr{
  display:block;font-size:9.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1px
}
.bereiche-menu a:hover .nr{color:var(--vital)}


/* ─────────────────────────────────────────────
   5 · Hero
   ───────────────────────────────────────────── */
.hero{background:var(--earth);color:#fff;position:relative;overflow:hidden}
.hero-rings{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}
.hero-in{position:relative;z-index:2}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--vital);margin-bottom:16px}
.hero h1 em{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-weight:400;color:var(--vital)}

/* Startseite */
.p-home .hero{padding:120px 0 128px}
.p-home .hero-rings{right:-180px}
.p-home .eyebrow{margin-bottom:20px}
.p-home .hero h1{font-size:clamp(42px,6.4vw,72px);font-weight:900;letter-spacing:-.02em;line-height:1.04;max-width:15ch}
.p-home .hero p.lead{margin-top:24px;font-size:17.5px;color:rgba(255,255,255,.56);max-width:52ch}
.areas{margin-top:32px;font-size:12px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.56)}
.areas b{color:var(--vital);font-weight:700}

/* Preisseite */
.p-preise .hero{padding:82px 0 74px}
.p-preise .hero-rings{right:-200px}
.p-preise .hero h1{font-size:clamp(36px,5vw,58px);font-weight:900;letter-spacing:-.02em;line-height:1.06}
.p-preise .hero p{margin-top:20px;font-size:17px;color:rgba(255,255,255,.55);max-width:56ch}

/* Textseiten */
.p-text .hero{padding:74px 0 64px}
.p-text .hero-rings{right:-220px}
/* Themenseiten – ohne diese Regel steht das Ringmotiv links und der
   helle Mittelkreis liegt hinter der Ueberschrift. */
.p-thema .hero{padding:74px 0 64px}
.p-thema .hero-rings{right:-220px}
.p-thema .hero h1{font-size:clamp(34px,4.6vw,54px);font-weight:900;letter-spacing:-.02em;line-height:1.07}
.p-thema .hero p{margin-top:18px;font-size:16.5px;color:rgba(255,255,255,.55);max-width:58ch}
.p-text .hero h1{font-size:clamp(34px,4.6vw,54px);font-weight:900;letter-spacing:-.02em;line-height:1.07}
.p-text .hero p{margin-top:18px;font-size:16.5px;color:rgba(255,255,255,.55);max-width:58ch}


/* ─────────────────────────────────────────────
   6 · Buttons
   ───────────────────────────────────────────── */
.cta-row{margin-top:40px;display:flex;gap:15px;flex-wrap:wrap}
/* `border:0` ist noetig, weil `.btn` auch auf <button> sitzt — dort gibt
   der Browser sonst seinen hellen Standardrahmen dazu, sichtbar am
   Absendeknopf des Formulars. Die Varianten mit eigenem Rahmen
   (.btn-ghost, .btn-outline) stehen danach und behalten ihren. */
.btn{display:inline-block;font-weight:800;font-size:14.5px;letter-spacing:.04em;border:0;border-radius:99px;transition:transform .15s,background .2s,border-color .2s;cursor:pointer}
.btn:hover{transform:scale(1.035)}
.btn-lime{background:var(--vital);color:var(--earth)}
.btn-dark{background:var(--earth);color:var(--vital)}
.btn-ghost{border:1.6px solid rgba(255,255,255,.26);color:#fff}
.btn-ghost:hover{border-color:var(--vital)}
.p-home .btn,.p-preise .btn{padding:17px 36px}
.p-text .btn{padding:16px 34px}


/* ─────────────────────────────────────────────
   7 · Startseite
   ───────────────────────────────────────────── */

/* Aktuelles-Band */
.ticker{background:var(--vital);padding:14px 0}
.ticker .wrap{display:flex;gap:38px;flex-wrap:wrap;justify-content:center}
.ticker a{font-size:13.5px;font-weight:700;color:var(--earth);letter-spacing:.02em;border-bottom:1.5px solid transparent;transition:border-color .2s}
.ticker a:hover{border-color:rgba(15,28,21,.4)}

/* Sektionen */
.p-home section{padding:96px 0}
.p-home section.dark{background:var(--deep);color:#fff}
.p-home section.earth{background:var(--earth);color:#fff}
.p-home section.white{background:#fff}
.sec-head{display:flex;align-items:flex-end;gap:26px;margin-bottom:14px;flex-wrap:wrap}
.ring-badge{flex-shrink:0}
.sec-eyebrow{font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);margin-bottom:7px}
.p-home section.dark .sec-eyebrow,.p-home section.earth .sec-eyebrow{color:var(--vital)}
.p-home h2{font-size:clamp(30px,3.8vw,44px);font-weight:900;color:var(--deep);letter-spacing:-.015em;line-height:1.1}
.p-home section.dark h2,.p-home section.earth h2{color:#fff}
.p-home h2 em{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-weight:400;color:var(--vital)}
.p-home .intro{font-size:17px;color:var(--muted);max-width:70ch;margin-bottom:44px}
.p-home section.dark .intro,.p-home section.earth .intro{color:rgba(255,255,255,.56)}

/* Karten */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:16px}
.card{background:#fff;border:1.5px solid var(--stone);border-radius:18px;padding:26px 28px;transition:transform .16s,border-color .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);border-color:var(--vital);box-shadow:0 10px 30px rgba(27,58,47,.07)}
.card h3,.card h4{font-size:15.5px;font-weight:800;color:var(--deep);margin-bottom:7px}
.card p{font-size:13.5px;color:var(--muted);line-height:1.6}
.p-home section.dark .card,.p-home section.earth .card{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.11)}
.p-home section.dark .card h3,.p-home section.dark .card h4,.p-home section.earth .card h3,.p-home section.earth .card h4{color:#fff}
.p-home section.dark .card p,.p-home section.earth .card p{color:rgba(255,255,255,.56)}
.p-home section.dark .card:hover,.p-home section.earth .card:hover{border-color:var(--vital);box-shadow:none}

/* Story */
.story-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:62px;align-items:center;position:relative;z-index:2}
.story-grid p{margin-top:18px;font-size:16px;color:rgba(255,255,255,.56)}
.quote{margin-top:32px;background:rgba(255,255,255,.055);border-left:3px solid var(--vital);border-radius:0 14px 14px 0;padding:22px 26px}
.quote p{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:19px;color:rgba(255,255,255,.8);margin:0;line-height:1.5}
.quote span{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.56);margin-top:12px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fact{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:24px}
.fact b{display:block;font-size:30px;font-weight:900;color:var(--vital);line-height:1}
.fact span{font-size:12.5px;color:rgba(255,255,255,.56);letter-spacing:.04em;margin-top:6px;display:block}
.story-photo{position:relative;border-radius:20px;overflow:hidden;margin-bottom:16px;box-shadow:0 18px 46px rgba(0,0,0,.3)}
/* height:auto ist nötig, damit das Seitenverhältnis gilt und nicht die
   Maßangaben am <img> – die dienen nur dazu, das Layout vorab zu reservieren. */
.story-photo picture,.owner-photo picture{display:block}
.story-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 18%}
.story-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 58%,rgba(15,28,21,.8) 100%)}
.story-cap{position:absolute;left:0;right:0;bottom:20px;z-index:2;text-align:center;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85)}

/* Zweispalter */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split-txt p{font-size:16px;color:var(--muted);margin-top:16px}
/* Hinweis: Die weiße Box bleibt in den „earth"-Abschnitten (z. B. Reha-Sport)
   bewusst hell – nur die „dark"-Abschnitte bekommen die transparente Variante. */
.p-home section.dark .split-txt p,
.p-home section.earth .split-txt p{color:rgba(255,255,255,.55)}
.p-home .box{background:#fff;border:1.5px solid var(--stone);border-radius:20px;padding:30px 32px}
.p-home section.dark .box{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
.p-home .box h3,.p-home .box h4{font-size:15px;font-weight:800;color:var(--deep);margin-bottom:12px}
.p-home section.dark .box h3,.p-home section.dark .box h4{color:#fff}
.p-home .box ul{list-style:none}
.p-home .box li{font-size:14.5px;padding:8px 0 8px 24px;position:relative;border-bottom:1px solid #f0ede5;color:var(--muted)}
.p-home .box li:last-child{border:0}
.p-home section.dark .box li{border-color:rgba(255,255,255,.07);color:rgba(255,255,255,.6)}
.p-home .box li::before{content:'›';position:absolute;left:4px;color:var(--vital);font-weight:800}

/* Inhaberfoto */
.owner-photo{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 18px 46px rgba(27,58,47,.16)}
.owner-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 22%}
.owner-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 55%,rgba(15,28,21,.72) 100%)}
.owner-cap{position:absolute;left:0;right:0;bottom:22px;z-index:2;text-align:center;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff}

/* 360°-Rundgang und Galerie */
.tour{border-radius:24px;overflow:hidden;background:var(--deep);aspect-ratio:16/9;position:relative}
.tour iframe{width:100%;height:100%;border:0;display:block}

/* Zwei-Klick-Einbettung: externer Dienst laedt erst nach Zustimmung (DSGVO) */
.einbettung{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:30px;position:relative}
.einbettung .icon{font-size:34px}
.einbettung b{color:#fff;font-size:17px;letter-spacing:.01em}
.einbettung span{max-width:66ch;font-size:13px;color:rgba(255,255,255,.55);line-height:1.65}
.einbettung span b{font-size:inherit}
.einbettung span a{color:var(--vital);text-decoration:underline}
.einbettung .tour-btn{margin-top:8px;background:var(--vital);color:var(--earth);border:0;font-weight:800;font-size:14.5px;letter-spacing:.04em;border-radius:99px;padding:16px 34px;cursor:pointer;transition:transform .15s}
.einbettung .tour-btn:hover{transform:scale(1.035)}
.einbettung iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* Kursbuchung braucht mehr Hoehe als das 16/9-Rundgangsfenster */
.einbettung.buchung{aspect-ratio:auto;min-height:min(78vh,760px)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:16px}
.gal{position:relative;border-radius:16px;overflow:hidden;margin:0;background:var(--deep)}
.gal img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .5s ease}
.gal:hover img{transform:scale(1.045)}
.gal::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,transparent 55%,rgba(15,28,21,.82) 100%)}
.gal figcaption{position:absolute;left:16px;bottom:13px;z-index:2;
  font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff}
/* Bewegung nur, wenn der Besucher sie nicht abbestellt hat */
@media(prefers-reduced-motion:reduce){.gal img,.gal:hover img{transition:none;transform:none}}


/* ─────────────────────────────────────────────
   8 · Preisseite
   ───────────────────────────────────────────── */
.p-preise section{padding:78px 0}
.p-preise section.white{background:#fff}
.p-preise h2{font-size:clamp(26px,3.2vw,38px);font-weight:900;color:var(--deep);letter-spacing:-.015em;line-height:1.12;margin-bottom:10px}
.p-preise .intro{font-size:16.5px;color:var(--muted);max-width:70ch;margin-bottom:42px}
.tarife{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:18px;margin-bottom:30px}
.tarif{background:#fff;border:1.5px solid var(--stone);border-radius:20px;padding:32px 26px;position:relative;transition:transform .16s,border-color .2s}
.tarif:hover{transform:translateY(-4px);border-color:var(--vital)}
.tarif.best{border-color:var(--vital);border-width:2.5px;box-shadow:0 14px 36px rgba(27,58,47,.1)}
.badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--vital);color:var(--earth);font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:99px;white-space:nowrap}
.tarif h3,.tarif h4{font-size:12.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--sage);margin-bottom:16px}
.price{font-size:46px;font-weight:900;color:var(--deep);line-height:1;letter-spacing:-.03em}
.price small{font-size:15px;font-weight:600;color:var(--muted);letter-spacing:0}
.term{font-size:13.5px;color:var(--muted);margin-top:12px;padding-top:15px;border-top:1px solid var(--stone)}
.term b{color:var(--deep)}
.incl{background:var(--deep);color:#fff;border-radius:22px;padding:38px 42px}
.incl h3{font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--vital);margin-bottom:20px}
.incl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 34px}
.incl-grid div{font-size:14.5px;color:rgba(255,255,255,.76);padding-left:24px;position:relative}
.incl-grid div::before{content:'✓';position:absolute;left:0;color:var(--vital);font-weight:800}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
.p-preise .box{background:var(--warm);border:1.5px solid var(--stone);border-radius:20px;padding:30px 32px}
.p-preise .box h3,.p-preise .box h4{font-size:15.5px;font-weight:800;color:var(--deep);margin-bottom:6px}
.p-preise .box .amount{font-size:13px;font-weight:700;color:var(--vital);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.p-preise .box ul{list-style:none}
.p-preise .box li{font-size:14.5px;padding:7px 0 7px 24px;position:relative;border-bottom:1px solid var(--stone);color:var(--muted)}
.p-preise .box li:last-child{border:0}
.p-preise .box li::before{content:'›';position:absolute;left:4px;color:var(--vital);font-weight:800}
.p-preise .fine{font-size:13.5px;color:var(--muted);margin-top:26px;line-height:1.75}


/* ─────────────────────────────────────────────
   9 · Textseiten
   ───────────────────────────────────────────── */
.p-text section{padding:70px 0}
.p-text section.white{background:#fff}
.p-text h2{font-size:clamp(22px,2.6vw,30px);font-weight:900;color:var(--deep);letter-spacing:-.01em;line-height:1.2;margin:44px 0 14px}
.p-text h2:first-child{margin-top:0}
.p-text h3{font-size:17px;font-weight:800;color:var(--deep);margin:28px 0 8px}
.p-text p{margin-bottom:14px;font-size:15.5px;color:var(--muted)}
.p-text p b,.p-text li b{color:var(--deep)}
.p-text ul{margin:0 0 18px 22px}
.p-text li{font-size:15.5px;color:var(--muted);margin-bottom:7px}
.p-text .lead{font-size:17px;color:var(--muted);margin-bottom:34px}
.p-text .data{background:#fff;border:1.5px solid var(--stone);border-radius:18px;padding:28px 32px;margin-bottom:26px}
.p-text .data p{margin-bottom:9px;font-size:15px}
.p-text .data p:last-child{margin:0}
.note{background:var(--warm);border-left:3px solid var(--vital);border-radius:0 14px 14px 0;padding:20px 24px;margin:26px 0;font-size:14.5px;color:var(--muted)}
.note b{color:var(--deep)}
.p-text section.white .note{background:var(--warm)}

/* Fläche für den späteren Kursplan – nimmt PDF, Wochenübersicht oder Buchungssystem auf */
.plan-slot{background:#fff;border:1.5px solid var(--stone);border-radius:22px;padding:0;overflow:hidden;margin-bottom:26px}
.plan-slot iframe{width:100%;min-height:760px;border:0;display:block}
.plan-hinweis{background:#fff;border:2px dashed var(--stone);border-radius:22px;padding:64px 40px;text-align:center}
.plan-downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px}
.plan-dl{display:flex;align-items:center;gap:16px;background:#fff;border:1.5px solid var(--stone);border-radius:18px;padding:20px 24px;transition:border-color .2s,transform .16s}
.plan-dl:hover{border-color:var(--vital);transform:translateY(-3px)}
.plan-dl .ic{font-size:26px;flex-shrink:0}
.plan-dl b{display:block;font-size:15px;color:var(--deep);font-weight:800}
.plan-dl span{font-size:13px;color:var(--muted)}


/* ─────────────────────────────────────────────
   10 · Kontaktformular
   ───────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.feld{display:flex;flex-direction:column;gap:7px}
.feld.voll{grid-column:1 / -1}
/* Die Feldbeschriftungen stehen in Versalien – die Einwilligung ist Fließtext
   und bleibt davon ausgenommen, damit sie lesbar bleibt. */
.feld label:not(.zustimmung){font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--vital)}
.feld input,.feld textarea,.feld select{
  font-family:inherit;font-size:15px;color:#fff;background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.16);border-radius:14px;padding:14px 16px;transition:border-color .2s,background .2s
}
.feld textarea{min-height:150px;resize:vertical;line-height:1.6}
.feld input::placeholder,.feld textarea::placeholder{color:rgba(255,255,255,.56)}
.feld input:focus,.feld textarea:focus,.feld select:focus{border-color:var(--vital);background:rgba(255,255,255,.09);outline:none}
.feld input:focus-visible,.feld textarea:focus-visible,.feld select:focus-visible{outline:3px solid var(--vital);outline-offset:2px}
.feld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--vital) 50%),linear-gradient(135deg,var(--vital) 50%,transparent 50%);background-position:calc(100% - 21px) center,calc(100% - 15px) center;background-size:6px 6px,6px 6px;background-repeat:no-repeat;cursor:pointer}

/* Lehnt der Server die Anfrage ab (Zeitfilter, zu viele Anfragen, Stoerung),
   kam der Absender bisher wortlos auf „/#kontakt" zurueck — es sah aus, als
   springe ein Anker ins Nichts. Der Hinweis steht immer im Markup und wird
   von `vitarea.js` eingeblendet, wenn die Adresse `?fehler` traegt. Bewusst
   nicht ueber QWeb: eine zwischengespeicherte Seite wuerde ihn sonst allen
   Besuchern zeigen. */
.formular-fehler{display:none}
.formular-fehler.sichtbar{
  display:block;margin:0 0 22px;padding:14px 18px;border-radius:14px;
  background:rgba(214,92,72,.14);border:1px solid rgba(214,92,72,.5);
  color:#F3C9C1;font-size:13.5px;line-height:1.55
}.feld select option{background:var(--deep);color:#fff}
/* Honigtopf – für Menschen unsichtbar, Spam-Skripte füllen ihn aus */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.zustimmung{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.6}
.zustimmung input{width:19px;height:19px;flex-shrink:0;margin-top:2px;accent-color:var(--vital);cursor:pointer}
.zustimmung a{color:var(--vital);text-decoration:underline;text-underline-offset:3px}
.form-fehler{background:rgba(220,90,70,.14);border:1.5px solid rgba(220,90,70,.5);color:#ffc9be;border-radius:14px;padding:15px 18px;font-size:14.5px;margin-bottom:20px}
.form-ok{background:rgba(184,224,74,.13);border:1.5px solid var(--vital);border-radius:18px;padding:26px 30px}
.form-ok b{display:block;font-size:18px;color:var(--vital);margin-bottom:6px}
.form-ok p{font-size:15px;color:rgba(255,255,255,.65);margin:0}
.kontakt-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.kontakt-daten p{font-size:15.5px;color:rgba(255,255,255,.6);margin-top:14px}
.kontakt-daten a:hover{color:var(--vital)}
.kontakt-daten h3,.kontakt-daten h4{font-size:11.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--vital);margin:26px 0 4px}
.kontakt-daten h4:first-child{margin-top:0}


/* ─────────────────────────────────────────────
   11 · Einwilligung für externe Einbettungen
   Der Rundgang lädt erst nach ausdrücklichem Klick –
   vorher geht keine Verbindung zum Anbieter.
   ───────────────────────────────────────────── */
.einbettung{position:relative;border-radius:24px;overflow:hidden;background:var(--deep);border:1.5px solid rgba(184,224,74,.28);aspect-ratio:16/9}
.einbettung iframe{width:100%;height:100%;border:0;display:block}
.einbettung-gate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px;background:var(--deep)}
.einbettung-gate .icon{font-size:48px;line-height:1}
.einbettung-gate b{font-size:18px;color:#fff}
.einbettung-gate span{font-size:13.5px;color:rgba(255,255,255,.56);max-width:52ch;line-height:1.6}
.einbettung-gate .btn{margin-top:6px;padding:14px 30px;font-size:14px}
.einbettung-gate .merken{display:flex;align-items:center;gap:9px;font-size:12.5px;color:rgba(255,255,255,.56);cursor:pointer}
.einbettung-gate .merken input{width:16px;height:16px;accent-color:var(--vital);cursor:pointer}


/* ─────────────────────────────────────────────
   12 · Mitgliedschafts-Banner
   ───────────────────────────────────────────── */
.join{background:var(--vital)}
.p-home .join{padding:74px 0}
.p-preise .join{padding:72px 0}
.p-thema .join{padding:64px 0}
.join-in{display:flex;align-items:center;justify-content:space-between;gap:38px;flex-wrap:wrap}
.join h2{color:var(--earth)}
.p-preise .join h2{margin:0}
.join p{color:rgba(15,28,21,.68);font-size:16.5px;margin-top:10px;font-weight:500}


/* ─────────────────────────────────────────────
   13 · Footer
   ───────────────────────────────────────────── */
footer{background:var(--earth);color:#fff}
.p-home footer{padding:82px 0 34px}
.p-preise footer,.p-text footer{padding:70px 0 32px}
.foot{display:grid;gap:44px}
.p-home .foot{grid-template-columns:1.25fr 1fr 1fr 1fr;margin-bottom:56px}
.p-preise .foot,.p-text .foot{grid-template-columns:1.25fr 1fr 1fr;margin-bottom:48px}
/* margin vollständig setzen, damit die Überschriften der Textseiten
   hier keinen zusätzlichen Abstand nach oben mitbringen */
.foot h3,.foot h4{font-size:11.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--vital);margin:0 0 16px}
.foot p,.foot li{font-size:14px;color:rgba(255,255,255,.55);line-height:1.95;list-style:none;margin:0}
.foot ul{margin:0}
.foot a:hover{color:var(--vital)}
.claim{font-family:'DM Serif Display',Georgia,serif;font-style:italic;color:rgba(255,255,255,.62)}
.p-home .claim{font-size:20px;margin-top:16px}
.p-preise .claim,.p-text .claim{font-size:19px;margin-top:14px}
.foot-btm{border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.56)}
.p-home .foot-btm{padding-top:26px}
.p-preise .foot-btm,.p-text .foot-btm{padding-top:24px}
.foot-btm a{margin-left:18px}


/* ─────────────────────────────────────────────
   14 · Responsive
   ───────────────────────────────────────────── */

/* Startseite */
/* Menü als Klappmenü – auf allen Seiten am selben Punkt, damit die
   Bedienung überall gleich funktioniert. Der Umschaltpunkt liegt dort,
   wo die Leiste rechnerisch nicht mehr in eine Zeile passt
   (Marke 175 + Leiste 528 + Knopf 168 + Abstände = 979 px). */
@media(max-width:980px){
  .story-grid,.split,.kontakt-grid{grid-template-columns:1fr;gap:38px}
  .p-home .foot{grid-template-columns:1fr 1fr;gap:34px}
}

/* Die Kopfzeile braucht 1180 px, um in eine Zeile zu passen. Darunter
   brach sie zweizeilig um und der Seitenkopf klebte an ihr — seit der
   Login-Knopf dazukam, reichte die alte Grenze von 980 px nicht mehr.
   Nur die Menue-Regeln wandern mit; die Rasterumbrueche darueber
   bleiben bei 980 px, sonst wuerden zweispaltige Abschnitte auf
   mittelgrossen Bildschirmen unnoetig frueh einspaltig. */
@media(max-width:1180px){
.nav-links{display:none}
  .burger{display:flex}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--earth);flex-direction:column;padding:22px 28px;gap:16px;border-bottom:1px solid rgba(184,224,74,.16);max-height:calc(100vh - 66px);overflow-y:auto}

  /* „Bereiche“ bleibt auch im Klappmenü ein eigener Punkt. Vorher standen
     die fünf Ringe dort offen und unbeschriftet da: man sah eine Ringliste,
     aber nicht, wozu sie gehört, und das Menü war doppelt so hoch. Jetzt
     klappt derselbe Knopf wie am großen Bildschirm die Liste auf – das
     Skript dahinter ist unverändert, es war nur der Knopf ausgeblendet.
     Die Zentrierung übernimmt `align-items:center` der Leiste. */
  .bereiche-knopf{display:flex}
  .bereiche-menu{display:none;position:static;min-width:0;background:none;border:0;
    padding:0 0 0 2px;box-shadow:none;margin:2px 0 -2px}
  .bereiche-menu.offen{display:block}
  .bereiche-menu a{padding:9px 0;gap:11px;font-size:13.5px}
  .bereiche-menu a:hover{background:none}
}

@media(max-width:860px){
  .two{grid-template-columns:1fr}
  .p-preise .foot,.p-text .foot{grid-template-columns:1fr}
  .p-text .hero{padding:56px 0 48px}
}

@media(max-width:760px){
  .p-home .hero{padding:82px 0 90px}
  .p-home section{padding:64px 0}
  .p-home .foot{grid-template-columns:1fr}

  /* Der Freigabe-Kasten des Rundgangs stand auf 16/9 — bei 390 px sind das
     nur 219 px Hoehe. Hinweistext und Knopf brauchen gut das Doppelte, und
     `overflow:hidden` schnitt sie ab: „Rundgang starten“ ragte halb aus dem
     Kasten und war kaum zu treffen. Hier deshalb kein festes
     Seitenverhaeltnis, sondern eine Mindesthoehe — die dem Rundgang selbst
     ebenso guttut, 16/9 ist auf dem Telefon ein Sehschlitz. Die Buchung
     (`.einbettung.buchung`) bringt ihre eigene Hoehe mit und ist
     spezifischer, bleibt also unberuehrt. */
  .tour,.einbettung{aspect-ratio:auto;min-height:clamp(360px,96vw,460px)}

  /* Auf schmalen Geräten treten die Ringe zurück, sonst liegen sie
     über der Überschrift. Auf der Startseite war das schon so – die
     Preis- und Textseiten hatten die Regel bisher nicht. */
  .p-home .hero-rings{opacity:.22;right:-260px}
  .p-preise .hero-rings{opacity:.22;right:-250px}
  .p-text .hero-rings{opacity:.22;right:-240px}
  .p-thema .hero-rings{opacity:.22;right:-240px}
}

/* Formular und schmale Geräte */
@media(max-width:680px){
  .form-grid{grid-template-columns:1fr}
  .plan-slot iframe{min-height:620px}
}

/* Auf schmalen Telefonen war die Kopfleiste breiter als der Bildschirm –
   die Seite ließ sich seitlich verschieben. Marke, Knopf und Menüsymbol
   rücken deshalb enger zusammen. */
@media(max-width:480px){
  .wrap{padding:0 20px}
  .nav-in{padding:11px 16px;gap:10px}
  .brand{gap:9px}
  .brand svg{width:34px;height:34px}
  .brand-word{font-size:17px;letter-spacing:.07em}
  .brand-sub{font-size:6.5px;letter-spacing:.2em}
  .nav-cta{font-size:10.5px;padding:9px 13px;letter-spacing:.05em}
  .burger{padding:4px}
  .burger span{width:21px}
  .nav-links.open{padding:20px}
  .ticker .wrap{gap:14px;flex-direction:column;align-items:center}
  .incl{padding:28px 22px}
  .p-home .box,.p-preise .box{padding:26px 22px}
  .einbettung-gate{padding:24px 18px;gap:11px}
  .einbettung-gate span{font-size:12.5px}
}

/* Sehr schmale Geräte (iPhone SE und ältere Android-Telefone) */
@media(max-width:360px){
  .wrap{padding:0 16px}
  .nav-in{padding:10px 14px;gap:8px}
  .brand svg{width:30px;height:30px}
  .brand-word{font-size:15.5px}
  .brand-sub{display:none}
  .nav-cta{font-size:9.5px;padding:8px 11px}
}

/* ═══ KURSPLAN (Lieferung 12.08.2026) ═══ */
/* ══════════════════════════════════════════════
   KURSPLAN – Zusatzstile nur für diese Seite
   ══════════════════════════════════════════════ */
:root{
  --k-aqua:#4E9CC4;   /* Aqua-Kurse       */
  --k-cyc:#E0A33C;    /* Cycling          */
  --k-fit:#5E7268;    /* Fitness-Kurse    */
  --k-ges:#8FBB33;    /* Gesundheits-Kurse */
}

/* ── Filterleiste ── */
.kp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.kp-bar .lbl{font-size:11.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-right:6px}
.chip{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  background:#fff;border:1.5px solid var(--stone);border-radius:99px;
  padding:8px 17px;font-size:13.5px;font-weight:700;color:var(--deep);
  transition:border-color .18s,background .18s,opacity .18s;font-family:inherit;
}
.chip .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.chip[aria-pressed="false"]{opacity:.4}
.chip:hover{border-color:var(--sage)}
.chip[aria-pressed="true"]{border-color:var(--deep)}
.chip-all{opacity:1}
.chip-all.on{border-color:var(--deep);background:var(--deep);color:#fff}

/* ── Wochenraster ── */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;align-items:start}
.day{background:#fff;border:1.5px solid var(--stone);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.day.today{border-color:var(--vital);border-width:2.5px;box-shadow:0 12px 30px rgba(27,58,47,.09)}
.day-h{
  background:var(--deep);color:#fff;padding:12px 14px;text-align:center;
  font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
}
.day.today .day-h{background:var(--vital);color:var(--earth)}
.day-h small{display:block;font-size:9.5px;font-weight:600;letter-spacing:.14em;opacity:.55;margin-top:2px}
.day-b{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1}
.kurs{
  border-left:4px solid var(--stone);border-radius:0 11px 11px 0;
  background:var(--warm);padding:10px 12px;transition:opacity .2s;
}
.kurs .n{font-size:13.5px;font-weight:800;color:var(--deep);line-height:1.25}
.kurs .z{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px}
.kurs .r{font-size:10.5px;color:var(--sage);letter-spacing:.05em;margin-top:3px}
.kurs[data-k="aqua"]{border-left-color:var(--k-aqua)}
.kurs[data-k="cycling"]{border-left-color:var(--k-cyc)}
.kurs[data-k="fitness"]{border-left-color:var(--k-fit)}
.kurs[data-k="gesundheit"]{border-left-color:var(--k-ges)}
.kurs.dim{opacity:.16}
.day-leer{padding:22px 12px;text-align:center;font-size:12.5px;color:var(--sage)}
.kp-split{height:1px;background:var(--stone);margin:3px 2px}

/* ── Infokarten ── */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:16px;margin-top:34px}
.info{background:#fff;border:1.5px solid var(--stone);border-radius:18px;padding:24px 26px}
.info h4{font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:12px}
.info p{font-size:14.5px;margin-bottom:6px}
.info p:last-child{margin-bottom:0}
.info b{color:var(--deep)}
.info ul{margin:0;list-style:none}
.info li{font-size:14.5px;margin-bottom:5px;display:flex;gap:10px}
.info li span:first-child{color:var(--deep);font-weight:700;min-width:1.4em}
.info.hl{background:var(--deep);border-color:var(--deep);color:#fff}
.info.hl h4{color:var(--vital)}
.info.hl p{color:rgba(255,255,255,.62)}
.info.hl b{color:#fff}
.info.hl .big{font-size:30px;font-weight:900;color:var(--vital);line-height:1.1;margin-bottom:8px}

/* ── Kursbeschreibungen ── */
.desc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.desc{background:#fff;border:1.5px solid var(--stone);border-radius:18px;padding:24px 26px;border-top:4px solid var(--stone)}
.desc[data-k="aqua"]{border-top-color:var(--k-aqua)}
.desc[data-k="cycling"]{border-top-color:var(--k-cyc)}
.desc[data-k="fitness"]{border-top-color:var(--k-fit)}
.desc[data-k="gesundheit"]{border-top-color:var(--k-ges)}
.desc h3{margin:0 0 7px;font-size:16.5px}
.desc p{font-size:14.5px;margin:0}

/* ── Responsive ── */
@media(max-width:1100px){
  .week{grid-template-columns:repeat(3,1fr)}
}
/* Das Ringzeichen gehoert neben die Ueberschrift, nicht darueber.
   `.sec-head` bricht mit `flex-wrap:wrap` die Zeile um, sobald die
   Ueberschrift lang wird — bei „Beckenbodenstuhl – ein starker
   Beckenboden" reichten 1124 px Platz fuer 1154 px Inhalt nicht. Mit
   `nowrap` schrumpft stattdessen der Textblock und die Ueberschrift
   bricht in sich um; `min-width:0` erlaubt dieses Schrumpfen ueberhaupt
   erst. Auf schmalen Geraeten bleibt der Umbruch erwuenscht. */
@media(min-width:861px){
  .sec-head{flex-wrap:nowrap;align-items:flex-start}
  .sec-head > div{min-width:0}
  /* Bei zweizeiliger Ueberschrift saehe ein mittig gesetztes Zeichen
     aus, als haenge es zwischen den Zeilen. Oben ausgerichtet markiert
     es den Anfang des Blocks — der kleine Versatz bringt es auf die
     Hoehe der ersten Textzeile. */
  .sec-head > svg{margin-top:6px}
}

/* Sobald der Inhaltsbereich schmaler wird als seine Hoechstbreite, rueckt
   das Ringmotiv in den Satzspiegel und sein heller Kern liegt hinter der
   Ueberschrift. Ab hier tritt es zurueck — dieselbe Loesung wie auf dem
   Telefon, nur frueher. */
@media(max-width:1320px){
  .p-home .hero-rings{opacity:.3}
  .p-preise .hero-rings{opacity:.3}
  .p-text .hero-rings{opacity:.3}
  .p-thema .hero-rings{opacity:.3}
}

/* Knapp oberhalb der Grenze wird es eng — Abstaende etwas zuruecknehmen. */
@media(min-width:1181px) and (max-width:1320px){
  .nav-in{gap:18px}
  .nav-links{gap:15px}
  .nav-cta{padding:11px 17px}
  .nav-login{padding:9px 13px}
}

@media(max-width:720px){
  .week{grid-template-columns:1fr;gap:14px}
  .day-b{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .kp-split{display:none}
}
@media(max-width:460px){
  .day-b{grid-template-columns:1fr}
}
@media print{
  header.nav,.hero,.kp-bar,footer,.no-print{display:none!important}
  .week{grid-template-columns:repeat(7,1fr);gap:5px}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
}

/* ─── FIRMENFITNESS / AGGREGATOREN ─── */
.partner{background:var(--deep);border-radius:22px;padding:38px 42px;margin-top:30px;color:#fff}
.partner h3{font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--vital);margin-bottom:12px}
.partner p{font-size:16px;color:rgba(255,255,255,.68);max-width:none;margin-bottom:26px;text-wrap:pretty}
.partner-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.partner-logos span{border:1.5px solid rgba(184,224,74,.34);border-radius:99px;
  padding:16px 20px;font-size:15.5px;font-weight:800;letter-spacing:.02em;color:#fff;
  text-align:center;transition:background .2s,border-color .2s}
.partner-logos span:hover{background:rgba(184,224,74,.12);border-color:rgba(184,224,74,.6)}
@media(max-width:620px){.partner-logos{grid-template-columns:1fr}}
.partner small{display:block;margin-top:22px;font-size:13.5px;color:rgba(255,255,255,.45);max-width:none;text-wrap:pretty}

.join-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-outline{border:2px solid var(--earth);color:var(--earth);background:transparent}
.btn-outline:hover{background:var(--earth);color:var(--vital)}
@media(max-width:620px){.join-btns{width:100%}.join-btns .btn{flex:1;text-align:center}}

/* ─── SOCIAL ─── */
.social{display:flex;gap:10px;margin-top:20px}
.social a{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;border:1.5px solid rgba(184,224,74,.34);
  transition:background .2s,border-color .2s,transform .15s}
.social a:hover{background:var(--vital);border-color:var(--vital);transform:translateY(-2px)}
.social a:hover svg{fill:var(--earth)}
.social svg{fill:rgba(255,255,255,.72);transition:fill .2s}
@media(prefers-reduced-motion:reduce){.social a:hover{transform:none}}

/* ─── FAKTENSEITE ─── */
.fakt-tab{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:15.5px}
.fakt-tab th{text-align:left;vertical-align:top;padding:11px 18px 11px 0;width:34%;
  font-weight:700;color:var(--deep);border-bottom:1px solid var(--stone)}
.fakt-tab td{padding:11px 0;color:var(--muted);border-bottom:1px solid var(--stone)}
.fakt-tab tr:last-child th,.fakt-tab tr:last-child td{border-bottom:0}
.fakt-tab td b{color:var(--deep)}
.stand{display:inline-block;background:var(--deep);color:var(--vital);font-size:11.5px;
  font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:8px 18px;
  border-radius:99px;margin-bottom:26px}
.frage{background:#fff;border:1.5px solid var(--stone);border-radius:16px;
  padding:22px 26px;margin-bottom:12px}
.frage h3{margin:0 0 7px;font-size:16px}
.frage p{margin:0;font-size:15px}
@media(max-width:640px){
  .fakt-tab,.fakt-tab tbody,.fakt-tab tr,.fakt-tab th,.fakt-tab td{display:block;width:100%}
  .fakt-tab th{border:0;padding-bottom:2px}
  .fakt-tab td{padding-top:0;padding-bottom:14px}
}

/* ══════════════════════════════════════════════
   BAUSTEINE DER THEMENSEITEN (Lieferung 01.09.2026)
   ══════════════════════════════════════════════ */

/* Mitglieder-Login in der Kopfzeile – fuehrt ins Kursbuchungs-Portal */
.nav-login{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.72);
  border:1.5px solid rgba(184,224,74,.34);padding:9px 16px;border-radius:99px;
  white-space:nowrap;transition:border-color .2s,color .2s}

/* Unterhalb 620 px zeigt der Knopf in der Leiste nur noch sein Schloss —
   breiter passt er neben „Mitglied werden" nicht. Ohne diesen Punkt stuende
   auf dem Telefon nirgends, wohin er fuehrt. Oberhalb traegt der Knopf seine
   Beschriftung selbst, dann waere der Punkt doppelt. */
.nav-kursbuchung{display:none}
@media(max-width:620px){
  .nav-links.open .nav-kursbuchung{display:block}
}
.nav-login:hover{border-color:var(--vital);color:var(--vital)}
.nav-login svg{fill:currentColor;flex-shrink:0}

/* Brotkrumen-Leiste direkt unter dem Kopfbild */
.crumb{background:var(--vital);padding:12px 0}
.crumb .wrap{display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  font-size:13px;font-weight:700;color:rgba(15,28,21,.62)}
.crumb a{color:var(--earth);border-bottom:1.5px solid transparent;transition:border-color .2s}
.crumb a:hover{border-color:rgba(15,28,21,.4)}
.crumb .sep{opacity:.45}

/* Die kurze Antwort ganz oben – fuer Leser wie fuer KI-Systeme */
.kurz{background:var(--deep);color:#fff;border-radius:20px;padding:30px 34px;margin-bottom:34px}
.kurz .lbl{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--vital);margin-bottom:12px}
.kurz p{font-size:16.5px;color:rgba(255,255,255,.82);margin:0;line-height:1.72}
.kurz p + p{margin-top:12px;color:rgba(255,255,255,.62);font-size:15.5px}
/* `.p-text p b` faerbt fette Stellen dunkelgruen — im dunklen Kasten
   „Kurz gesagt" waeren sie damit exakt in Hintergrundfarbe und
   unsichtbar. Die Klasse davor hebt die Spezifitaet an. */
.p-text .kurz b,.kurz b{color:#fff}

/* Faktenkasten */
.fakten{background:#fff;border:1.5px solid var(--stone);border-radius:20px;
  padding:8px 30px;margin:30px 0}
.fakten dl{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:0 26px}
.fakten dt{font-size:12.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--sage);padding:15px 0;border-top:1px solid #f0ede5}
.fakten dd{font-size:15.5px;color:var(--muted);padding:15px 0;border-top:1px solid #f0ede5}
.fakten dt:first-of-type,.fakten dd:nth-of-type(1){border-top:0}
.fakten dd b{color:var(--deep)}

/* Karten sind jetzt Verweise auf die Themenseiten */
a.card{display:block}
a.card h3::after,a.card h4::after{content:'\2009\203A';color:var(--vital);font-weight:900}

/* Aufzaehlung mit Haken */
.haken{list-style:none;margin:20px 0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:6px 28px}
.haken li{position:relative;padding-left:24px;margin:0;padding-top:5px;padding-bottom:5px}
.haken li::before{content:'✓';position:absolute;left:0;color:var(--vital);font-weight:800}

/* Fragen und Antworten zum Aufklappen */
.faq{margin-top:14px;border-top:1px solid var(--stone)}
.faq details{border-bottom:1px solid var(--stone)}
.faq summary{cursor:pointer;list-style:none;padding:19px 34px 19px 0;position:relative;
  font-size:16px;font-weight:700;color:var(--deep)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:16px;font-size:24px;
  font-weight:400;color:var(--vital);line-height:1}
.faq details[open] summary::after{content:'–'}
.faq .a{padding:0 0 20px;font-size:15.5px;color:var(--muted)}
.faq .a p{margin-bottom:10px}
.faq .a p:last-child{margin:0}

/* Weiterfuehrende Seiten */
.rel{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:20px}
.rel a{background:#fff;border:1.5px solid var(--stone);border-radius:14px;padding:17px 20px;
  transition:border-color .2s,transform .15s}
.rel a:hover{border-color:var(--vital);transform:translateY(-3px)}
.rel b{display:block;font-size:14.5px;font-weight:800;color:var(--deep)}
.rel span{display:block;font-size:12.5px;color:#8b8d82;margin-top:3px;line-height:1.5}

.join .cta-row{display:flex;gap:13px;flex-wrap:wrap}

@media(max-width:640px){
  .fakten dl{grid-template-columns:1fr;gap:0}
  .fakten dd{padding-top:0;border-top:0}
  .fakten dt{padding-bottom:4px}
}

/* ─── Kopfzeile auf schmalen Bildschirmen ───
   Ohne diese Regel schiebt der lange CTA-Knopf zusammen mit dem
   Login die Kopfzeile breiter als das Display.

   Umbrechen darf sie dabei nicht. Mit `wrap` und zentriert sass die
   Leiste zwischen 561 und 720 px als Block in der Mitte – links und
   rechts blieb Rand ungenutzt, Marke und Menüknopf standen nicht mehr
   an den Kanten. Gebraucht werden 520 px (Marke 175 + Login 88 +
   Knopf 155 + Menüsymbol 36 + Abstände + Polster); ab 561 px greift
   diese Regel, es passt also immer in eine Zeile. Darunter übernimmt
   die kompakte Fassung bei 560 px. */
@media(max-width:720px){
  .nav-in{flex-wrap:nowrap;justify-content:space-between;gap:10px;padding:12px 18px}
  .brand{margin-right:0}
  .nav-cta{font-size:11.5px;padding:10px 18px;letter-spacing:.06em}
  .nav-login{font-size:11px;padding:9px 14px;gap:6px}
}
@media(prefers-reduced-motion:reduce){
  .card:hover,.rel a:hover{transform:none}
}

/* Kopfzeile auf dem Telefon ───────────────────────────────
   In voller Fassung braucht die Leiste 578 px: Marke 175 + Kursbuchung 146
   + „Mitglied werden" 155 + Menuesymbol 36, dazu Abstaende und Polster.
   Darunter ruecken die Teile zusammen: der Zusatz „Gesundheitszentrum"
   entfaellt, die Kursbuchung zeigt nur noch ihr Schloss, die Schrift wird
   knapper. Damit passt alles in eine Zeile.

   Die Grenze lag bei 560 px, solange dort „Login" stand (88 px breit). Mit
   „Kurse buchen" (146 px) blieb bei 561 px nur 1 px Rand — die Leiste
   quetschte sich an den Bildschirmrand. Am Geraet gemessen: ab 620 px
   passt die volle Fassung mit ordentlichem Rand. */
@media(max-width:620px){
  .nav-in{gap:9px;padding:11px 14px;flex-wrap:nowrap;justify-content:space-between}
  .brand{gap:9px}
  .brand-sub{display:none}
  .brand-word{font-size:17px;letter-spacing:.07em}
  .brand > svg{width:32px;height:32px}
  .nav-login{padding:8px 10px;gap:0;font-size:0}
  .nav-login svg{width:15px;height:15px}
  .nav-cta{font-size:10.5px;padding:9px 12px;letter-spacing:.04em}
  .burger{padding:5px}
}

/* Sehr schmale Geraete (360 px und darunter): dort ragte die Leiste noch
   sechs Pixel ueber den Rand hinaus und die Seite liess sich seitlich
   schieben. */
@media(max-width:400px){
  .nav-in{gap:7px;padding:11px 11px}
  .brand{gap:7px}
  .brand-word{font-size:15.5px}
  .brand > svg{width:28px;height:28px}
  .nav-cta{font-size:10px;padding:9px 11px}
  .nav-login{padding:8px 9px}
}
