/* ══════════════════════════════════════════════════════════════════
   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}
.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 ───────────────────────────────
   Mit Logo, Login, Handlungsknopf und Menueknopf braucht die Leiste
   469 px — auf einem 390-px-Geraet bricht sie zweizeilig um und wird
   116 statt 67 px hoch. Hier ruecken die Teile zusammen: der Zusatz
   „Gesundheitszentrum" entfaellt, der Login zeigt nur noch sein
   Schloss, die Schrift wird knapper. Damit passt alles in eine Zeile. */
@media(max-width:560px){
  .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}
}
