/* ==========================================================================
   Die Launcher – gemeinsamer Rahmen der Unterseiten
   Kopfzeile, Handy-Menue, Fusszeile mit Siegelreihe, Typografie, Knoepfe,
   dunkle Flaechen, feste Handy-Leiste, Abschluss-Block, FAQ, Rechtstexte.

   Vorbild ist die Startseite (index.html). Seit 15.09.2026 laedt auch die
   Startseite diese Datei und ergaenzt sie um ihre eigenen Inline-Styles.

   Reihenfolge im <head>: /css/theme.css → (/css/case.css) → diese Datei →
   seiteneigene Styles. Eingebunden mit ?v=…: Apache cacht CSS einen Monat,
   bei Aenderungen die Versionsnummer in allen Unterseiten erhoehen.
   ========================================================================== */

@font-face{font-family:'Playfair';src:url('/fonts/PlayfairDisplay-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}

/* ── TYPO-SKALA: die einzige Stelle fuer Schriftgroessen, Zeilenhoehen und Gewichte ──
   Sechs Groessen. Alle Unterseiten (auch ihre seiteneigenen Styles) verwenden nur
   diese Variablen. Wird die endgueltige Skala der Startseite festgelegt, hier nachziehen.
     --fs-xs    Nebeninfos, Fusszeile, Labels
     --fs-sm    kleine Zeilen: Hinweise unter Formularen, Quellen, Meta
     --fs-base  Fliesstext: 16 px Handy / 17 px Desktop
     --fs-lg    Zwischenueberschriften, FAQ-Fragen, Lead-Text im Seitenkopf
     --fs-xl    Abschnittsueberschriften (h2)
     --fs-2xl   Seitenueberschrift (h1), grosse Zahlen */
:root{
  --fs-xs:.8125rem;
  --fs-sm:.9375rem;
  --fs-base:1rem;
  --fs-lg:1.125rem;
  --fs-xl:clamp(1.75rem,3.4vw,2.5rem);
  --fs-2xl:clamp(2rem,4.6vw,3.3rem);

  --lh-tight:1.14;
  --lh-snug:1.35;
  --lh-body:1.65;

  --fw-regular:400;
  --fw-medium:560;
  --fw-semibold:600;
  --fw-bold:700;

  --ls-tight:-.03em;

  /* Abstaende wie Startseite: zwischen Abschnitten, zwischen Kopf und Inhalt, zwischen Elementen */
  --space-section:88px;
  --space-block:2.4rem;
  --space-gap:1.2rem;

  /* Farben und Masse wie Startseite „Runde 6“: Fliesstext #cfcfd8 (~12:1 auf #09090b),
     Grau #a2a2ae (~7,5:1) nur fuer Nebeninfos */
  --text2:#cfcfd8;
  --text3:#a2a2ae;
  --max:1080px;
  --ease:cubic-bezier(.4,0,.2,1);
  --nav-h:64px;
  --brand-grad-soft:linear-gradient(120deg,rgba(139,140,254,.18) 0%,rgba(192,180,255,.12) 100%);

  /* Alias fuer aeltere Seitenstyles */
  --fliess:var(--fs-base);

  /* Runde 12 (15.09.2026): Grund ist ein tiefes, leicht getoentes Indigo-Schwarz statt #09090b (theme.css bleibt wegen Cache
     unveraendert und wird hier ueberschrieben). Kopfzeile, Handy-Menue, Cookie-Hinweis und Handy-Leiste ziehen mit. */
  --bg:#0b0b12;
  --nav-bg:rgba(11,11,18,.9);

  /* ── Runde 13 (16.09.2026): Formensystem der Startseite ──
     Damit jede Unterseite aus derselben Hand wirkt, gelten hier dieselben Werte wie in index.html:
     eine Inhaltsbreite, ein Seitenrand, ein Kartenradius (gross 28 px), eine Flaeche, ein Rand,
     ein Glanz, ein Schatten, eine Zeit. Die Startseite definiert dieselben Namen zusaetzlich inline
     und bleibt dadurch unveraendert. */
  --w-content:1180px;
  --w-text:760px;
  --gutter:max(5%,calc((100% - var(--w-content)) / 2));

  --r-k:20px;
  --r-kg:28px;
  --r-pill:999px;
  --t-k:180ms;

  --k-grund:#13131e;
  --k-flaeche:linear-gradient(180deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,.012) 100%);
  --k-rand:rgba(255,255,255,.085);
  --k-rand-hell:rgba(255,255,255,.2);
  --k-glanz:inset 0 1px 0 rgba(255,255,255,.07);
  --k-schatten:0 1px 1px rgba(0,0,0,.25),0 28px 56px -32px rgba(0,0,0,.8);

  /* Signalfarbe: Haken, offene Zustaende, Hervorhebungen */
  --signal:#8b8cfe;
  --signal-soft:rgba(139,140,254,.14);
  --signal-line:rgba(139,140,254,.42);
  --g1:#10101a;
}
@media(min-width:769px){:root{--fs-base:1.0625rem;--fs-lg:1.25rem}}
@media(max-width:768px){:root{--space-section:52px;--space-block:1.8rem}}

body{background:var(--bg)}

/* Sprungmarken: sanft per js/layout.js, nicht per CSS (theme.css setzt noch smooth). Ziel direkt unter der Kopfzeile */
html{scroll-behavior:auto}
main [id]{scroll-margin-top:var(--nav-h)}
[hidden]{display:none!important}

.accent{font-family:'Playfair',Georgia,serif;font-style:italic;font-weight:var(--fw-regular)!important;color:var(--text);font-synthesis:none}

/* ── Kopfzeile (Groessen aus theme.css, wie Startseite) ──
   Markup der Navigation, fuer Startseite, Unterseiten und News identisch:
   <ul class="n-links">
     Website-Check · Paket & Preis · Referenz · News · Ueber uns
     <li><a href="tel:+493075435440" class="n-tel" aria-label="Anrufen: 030 75435440"><svg …Hoerer…></svg><span>030 75435440</span></a></li>
     <li><a href="/buchen" class="n-cta">Kennenlerngespraech</a></li>
   </ul>
   Im Handy-Menue steht die Nummer weiter unten in .mob-footer. */
/* Polsterung wie Startseite: ab 1181 px buendig mit einem 1180-px-Inhalt, sonst 5 % (theme.css liess bei 1920 px nur 888 px) */
@media(min-width:1181px){nav{padding-left:max(5%,calc((100% - 1180px) / 2));padding-right:max(5%,calc((100% - 1180px) / 2))}}
/* Feste Kopfzeile: auf allen Seiten gleich hoch; beim Scrollen eine ruhige Flaeche mit genau einer feinen Linie */
nav{height:var(--nav-h);padding-top:0;padding-bottom:0;transition:background-color .3s var(--ease),box-shadow .3s var(--ease)}
nav.scrolled{background:rgba(11,11,18,.94);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.n-links a{font-size:var(--fs-xs);font-weight:var(--fw-regular)}
.n-cta{font-size:var(--fs-xs);font-weight:var(--fw-medium)}
.n-mob a{font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}
.n-mob .mob-cta{font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.n-mob .mob-footer,.n-mob .mob-footer a{font-size:var(--fs-xs)}
.n-links{gap:1.7rem}
.n-links .n-tel{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.n-tel svg{width:13px;height:13px;flex-shrink:0;color:var(--brand-mint)}
/* Zwischen Tablet und kleinem Laptop reicht der Platz nur fuer den Hoerer; die Nummer bleibt im Namen des Links */
@media(min-width:769px) and (max-width:1180px){.n-links{gap:1.25rem}.n-tel span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.n-tel svg{width:16px;height:16px}}
@media(min-width:769px) and (max-width:1000px){.n-links{gap:1.05rem}.n-links a{font-size:var(--fs-xs)}}
@media(min-width:769px) and (max-width:860px){.n-links{gap:.8rem}.n-cta{padding:7px 12px}}
/* Aktive Seite: heller Text und ein Strich in Periwinkle unter dem Eintrag */
.n-links a[aria-current="page"]:not(.n-cta){position:relative;color:var(--text)}
.n-links a[aria-current="page"]:not(.n-cta)::after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:var(--brand-mint)}
.n-links .n-cta[aria-current="page"]{background:var(--brand-mint-soft);box-shadow:inset 0 0 0 1px var(--brand-mint-line)}
.n-mob a[aria-current="page"]:not(.mob-cta){color:var(--text)}
.n-mob a[aria-current="page"]:not(.mob-cta)::before{content:'';display:inline-block;width:.32em;height:.32em;margin:0 .45em .18em 0;border-radius:50%;background:var(--brand-mint);vertical-align:middle}
/* Geschlossenes Menue ist auch fuer die Tastatur weg; offen liegt der Schliessen-Knopf ueber der Flaeche */
.n-mob{visibility:hidden;background:rgba(11,11,18,.97);transition:opacity .35s cubic-bezier(.4,0,.2,1),visibility 0s linear .35s}
.n-mob.open{visibility:visible;transition:opacity .35s cubic-bezier(.4,0,.2,1),visibility 0s}
.menue-offen nav{z-index:102}
.menue-offen nav.scrolled{background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}

a:focus-visible,button:focus-visible{outline:2px solid var(--text);outline-offset:3px}
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}

/* ── Knoepfe (wie Startseite) ── */
.btn-primary,.btn-secondary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;border-radius:var(--r-pill);font-weight:var(--fw-semibold);font-size:var(--fs-sm);cursor:pointer;text-decoration:none;border:none;transition:all .3s var(--ease);letter-spacing:-.005em;line-height:1;white-space:nowrap;font-family:inherit}
.btn-primary{color:#0b0b0e;background:linear-gradient(120deg,#8b8cfe 0%,#c0b4ff 100%);background-size:200% auto;box-shadow:0 8px 24px -6px rgba(139,140,254,.55),inset 0 0 0 1px rgba(255,255,255,.2),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-primary::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 50%);pointer-events:none;mix-blend-mode:overlay;opacity:.6}
.btn-primary:hover{background-position:right center;box-shadow:0 12px 32px -6px rgba(139,140,254,.75),inset 0 0 0 1px rgba(255,255,255,.3),inset 0 1px 0 rgba(255,255,255,.45);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0);box-shadow:0 4px 14px -4px rgba(139,140,254,.5),inset 0 0 0 1px rgba(255,255,255,.18)}
.btn-secondary{color:var(--text);background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.btn-secondary:hover{background:rgba(139,140,254,.08);box-shadow:inset 0 0 0 1px var(--brand-mint-line);color:var(--text);transform:translateY(-1px)}
@media(max-width:400px){.btn-primary,.btn-secondary{white-space:normal;text-align:center;padding-left:22px;padding-right:22px}}
.hero-btns{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.6rem}
.knopfreihe{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}

/* ── Ueberschriften und Text ── */
.s-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);margin-bottom:.8rem}
.s-sub,.fliess{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--text2)}
.s-sub{max-width:640px}
.neben{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text3)}
.textlink{color:var(--brand-amber);text-decoration:underline;text-decoration-color:var(--brand-mint-line);text-underline-offset:3px}
.textlink:hover{text-decoration-color:var(--brand-amber)}
.weiter{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--brand-amber)}
.weiter svg{width:11px;height:11px}

/* ── Seitenkopf der Unterseiten ── */
.u-kopf{max-width:none;margin:0;padding:128px var(--gutter) 40px}
.u-kopf h1{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin-bottom:1.2rem;max-width:860px}
.u-kopf .u-lead{font-size:var(--fs-lg);line-height:var(--lh-body);color:var(--text2);max-width:660px;margin-bottom:1.8rem}
.u-kopf.mittig{text-align:center}
.u-kopf.mittig h1,.u-kopf.mittig .u-lead{margin-left:auto;margin-right:auto}
@media(max-width:768px){.u-kopf{padding:108px var(--gutter) 32px}}

/* ── Abschnitte ── */
.u-block{position:relative;padding:var(--space-section) 0}
.u-in{max-width:none;margin:0;padding:0 var(--gutter)}
.u-in.schmal{max-width:820px;margin:0 auto;padding:0 5%}
.u-block h3,.u-h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:-.015em;color:var(--text)}

/* Dunkle Flaeche statt hellem Abschnitt (Startseite .flaeche) */
.flaeche{--k-grund:#171724;background:radial-gradient(60% 55% at 50% 0%,rgba(139,140,254,.08),transparent 70%),#101016;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(255,255,255,.06)}
.flaeche::before{display:none}

/* ── Karten: ein Radius, eine Flaeche, ein Rand, ein Glanz, ein Schatten, Hover 2 px in 180 ms.
   Wortgleich mit .krt der Startseite, damit beide Seiten dieselbe Karte zeigen. ── */
.krt{position:relative;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten);transition:transform var(--t-k) var(--ease),box-shadow var(--t-k) var(--ease)}
.krt::after{content:'';position:absolute;left:14%;right:14%;top:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.2),rgba(255,255,255,0));pointer-events:none}
.krt:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--k-rand-hell),var(--k-glanz),0 1px 1px rgba(0,0,0,.25),0 34px 64px -30px rgba(0,0,0,.85)}

/* ── Karten-Raster ── */
.karten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:2.2rem}
.karten.zwei{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:860px){.karten,.karten.zwei{grid-template-columns:minmax(0,1fr)}}
.karte{position:relative;padding:26px 24px;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten);transition:transform var(--t-k) var(--ease),box-shadow var(--t-k) var(--ease)}
.karte::after{content:'';position:absolute;left:14%;right:14%;top:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.2),rgba(255,255,255,0));pointer-events:none}
.karte:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--k-rand-hell),var(--k-glanz),0 1px 1px rgba(0,0,0,.25),0 34px 64px -30px rgba(0,0,0,.85)}
.karte.betont{background:linear-gradient(165deg,rgba(139,140,254,.16) 0%,rgba(139,140,254,.04) 60%),var(--k-grund);box-shadow:inset 0 0 0 1px var(--signal-line),var(--k-glanz),var(--k-schatten)}
.karte.betont:hover{box-shadow:inset 0 0 0 1px rgba(139,140,254,.6),var(--k-glanz),0 1px 1px rgba(0,0,0,.25),0 34px 64px -30px rgba(0,0,0,.85)}
.karte h3{margin-bottom:.6rem;font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:-.015em;color:var(--text)}
.karte p{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--text2)}
.karte p+p,.karte p+ul,.karte ul+p{margin-top:.8rem}
.karte .haken{gap:.6rem;margin-top:1rem}
.abschnitt-fuss{margin-top:2.2rem;max-width:760px}
.abschnitt-fuss p{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--text2)}
.abschnitt-fuss p+p{margin-top:1rem}
.abschnitt-fuss a:not(.btn-primary):not(.btn-secondary){color:var(--brand-amber);text-decoration:underline;text-decoration-color:var(--brand-mint-line);text-underline-offset:3px}
.medium{margin-top:2.2rem}

/* Zwei Spalten, auf dem Handy untereinander */
.zweispaltig{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 4rem;align-items:start;margin-top:2rem}
.zweispaltig>div>p{font-size:var(--fs-base);line-height:1.7;color:var(--text2)}
.zweispaltig>div>p+p{margin-top:1rem}
@media(max-width:860px){.zweispaltig{grid-template-columns:minmax(0,1fr)}}

/* ── Vergleich zweier Wege (Startseite .vg-*) ── */
.vg-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 3rem;margin-top:2.4rem}
@media(max-width:860px){.vg-raster{grid-template-columns:minmax(0,1fr)}}
.vg-spalte{border-radius:var(--r-k)}
.vg-spalte--minus{padding:1.7rem 0}
.vg-spalte--plus{padding:26px 26px;background:linear-gradient(165deg,rgba(139,140,254,.16) 0%,rgba(139,140,254,.04) 60%),var(--k-grund);box-shadow:inset 0 0 0 1px var(--signal-line),var(--k-glanz),var(--k-schatten)}
@media(max-width:860px){.vg-spalte--minus{padding:.4rem 0}.vg-spalte--plus{padding:1.4rem 1.2rem}}
.vg-kopf{display:block;padding-bottom:1rem;margin-bottom:1.1rem;font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.02em;line-height:1.25;border-bottom:1px solid rgba(255,255,255,.12)}
.vg-spalte--plus .vg-kopf{border-bottom-color:var(--brand-mint-line)}
.vg-marke{display:block;margin-bottom:.4rem;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}
.vg-spalte--minus .vg-marke{color:#fca5a5}
.vg-spalte--plus .vg-marke{color:var(--brand-amber)}
.vg-liste{list-style:none;display:grid;gap:.85rem;margin:0;padding:0}
.vg-liste li{position:relative;padding-left:1.35rem;font-size:var(--fs-base);line-height:1.6;color:var(--text2)}
.vg-liste li::before{content:'';position:absolute;left:.1rem;top:.72em;width:9px;height:2px;border-radius:2px;background:#f87171}
.vg-spalte--plus .vg-liste li::before{top:.45em;width:9px;height:5px;border-radius:0;background:none;border-left:2px solid var(--signal);border-bottom:2px solid var(--signal);transform:rotate(-45deg)}
.vg-liste b{color:var(--text);font-weight:var(--fw-semibold)}
.vg-liste--plus li::before{top:.45em;width:9px;height:5px;border-radius:0;background:none;border-left:2px solid var(--signal);border-bottom:2px solid var(--signal);transform:rotate(-45deg)}

/* ── Ansprechpartner (Startseite .ue-*) ── */
.person{display:grid;grid-template-columns:240px minmax(0,1fr);gap:1.5rem 4rem;align-items:start;margin-top:2rem}
.person-kopf{display:flex;flex-direction:column;gap:.9rem}
.person-kopf img{width:168px;height:168px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--signal-line)}
.person-name{display:flex;flex-direction:column;line-height:1.4}
.person-name b{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text)}
.person-name span{font-size:var(--fs-sm);color:var(--brand-amber)}
.person-weg{font-size:var(--fs-base);line-height:1.6;color:var(--text3)}
.gruende{list-style:none;display:grid;gap:1.3rem;margin:0;padding:0}
.gruende li{padding-left:1.1rem;border-left:2px solid var(--brand-mint-line);font-size:var(--fs-base);line-height:1.6;color:var(--text2)}
.gruende b{font-weight:var(--fw-semibold);color:var(--text)}
.gruende a{color:var(--brand-amber);text-decoration:underline;text-underline-offset:3px}
@media(max-width:860px){
  .person{grid-template-columns:minmax(0,1fr)}
  .person-kopf{display:grid;grid-template-columns:88px minmax(0,1fr);gap:.2rem 1rem;align-items:center}
  .person-kopf img{width:88px;height:88px}
  .person-weg{grid-column:1/-1;margin-top:.6rem}
}

/* ── Paket-Abschnitt: Kopf und Inhalt links, Preiskarte rechts; Handy: Kopf, Preis, Inhalt ── */
.paket-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"kopf preis" "haupt preis";gap:0 4rem;align-items:start}
.paket-kopf{grid-area:kopf}
.paket-split>.pk-preis{grid-area:preis;position:sticky;top:96px}
.paket-haupt{grid-area:haupt;margin-top:1.8rem}
.paket-haupt .haken{margin-bottom:1.6rem}
.paket-nicht{margin-bottom:1.6rem;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--text2)}
.paket-nicht b{color:var(--text);font-weight:var(--fw-semibold)}
@media(max-width:960px){.paket-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"kopf" "preis" "haupt"}.paket-split>.pk-preis{position:relative;top:auto;margin-top:1.6rem}.paket-split .pk-mini{display:none}}

/* ── Paketkarte (Startseite .pk-preis) ── */
.pk-preis{position:relative;padding:30px 28px;border-radius:var(--r-kg);--text:#fafafa;--text2:#d6d6de;--text3:#a9a9b5;color:var(--text);background:radial-gradient(110% 55% at 0% 0%,rgba(139,140,254,.3) 0%,rgba(139,140,254,0) 62%),radial-gradient(80% 45% at 100% 100%,rgba(192,180,255,.12) 0%,rgba(192,180,255,0) 70%),linear-gradient(180deg,#1b1b35 0%,#141424 58%,#11111d 100%);box-shadow:inset 0 0 0 1px rgba(139,140,254,.5),inset 0 1px 0 rgba(255,255,255,.16),0 50px 100px -50px rgba(90,90,230,.6)}
.pk-preis-name{margin-bottom:.8rem;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text)}
.pk-preis-zahl{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.045em;line-height:1.05;font-variant-numeric:tabular-nums;background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pk-preis-netto{margin-top:.45rem;font-size:var(--fs-base);color:var(--text2)}
.pk-preis-raten{margin:.35rem 0 0;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--brand-amber)}
.pk-preis-b2b{margin-top:.25rem;font-size:var(--fs-sm);line-height:1.5;color:var(--text3)}
.pk-mini{list-style:none;display:grid;gap:.6rem;margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.09)}
.pk-mini li{position:relative;padding-left:1.4rem;font-size:var(--fs-base);line-height:1.5;color:var(--text2)}
.pk-mini li::before{content:'';position:absolute;left:.1rem;top:.45em;width:9px;height:5px;border-left:2px solid var(--signal);border-bottom:2px solid var(--signal);transform:rotate(-45deg)}
.pk-preis .pk-cta{display:flex;justify-content:center;width:100%;margin-top:1.5rem;padding-left:18px;padding-right:18px;white-space:normal;text-align:center}
.pk-cta-sub{margin-top:.6rem;text-align:center;font-size:var(--fs-sm);color:var(--text3)}
.pk-extra{margin-top:1.3rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.12);font-size:var(--fs-base);line-height:1.6;color:var(--text2)}
.pk-extra b{color:var(--text);font-weight:var(--fw-semibold)}

/* Haekchen-Liste (Startseite .pk-liste) */
.haken{list-style:none;display:grid;gap:1rem;margin:0;padding:0}
.haken li{position:relative;padding-left:30px;font-size:var(--fs-base);line-height:1.6;color:var(--text2)}
.haken li::before{content:'';position:absolute;left:0;top:.14em;width:18px;height:18px;border-radius:50%;background:var(--signal-soft)}
.haken li::after{content:'';position:absolute;left:6px;top:calc(.14em + 6px);width:6px;height:3px;border-left:2px solid var(--signal);border-bottom:2px solid var(--signal);transform:rotate(-45deg)}
.haken b{color:var(--text);font-weight:var(--fw-semibold)}

/* Garantie-Zeile (Startseite .pk-garantie) */

/* ── Ablauf in Schritten (Startseite .ab-schritte) ── */
.ab-schritte{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.6rem;margin-top:2.6rem;padding:0}
.ab-schritte.vier{grid-template-columns:repeat(4,minmax(0,1fr))}
.ab-schritte li{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.ab-schritte li>div{display:flex;flex-direction:column;gap:.3rem}
.ab-schritte b{font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:var(--lh-snug);color:var(--text)}
.ab-schritte li>div>span{font-size:var(--fs-base);line-height:1.55;color:var(--text2)}
.ab-nr{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.03em;color:var(--signal);background:var(--signal-soft);box-shadow:inset 0 0 0 1px var(--signal-line)}
.ab-schritte li:last-child .ab-nr{color:#0b0b12;background:var(--signal);box-shadow:none}
@media(min-width:961px){.ab-schritte li:not(:last-child)::after{content:'';position:absolute;top:22px;left:56px;right:-1.2rem;height:1px;background:var(--signal-line)}}
@media(max-width:960px){.ab-schritte,.ab-schritte.vier{grid-template-columns:minmax(0,1fr);gap:1.2rem}.ab-schritte li{flex-direction:row;gap:1rem}.ab-nr{width:38px;height:38px}}

/* ── Bewertungen (Startseite .pe-*) ── */
.pe-note{margin-top:.2rem;font-size:var(--fs-base);line-height:1.6;color:var(--text2)}
.pe-note b{font-weight:var(--fw-semibold);color:var(--text)}
.sterne{color:#fbbf24;letter-spacing:.12em;margin-right:.35rem}
.pe-haupt{display:flex;flex-direction:column;gap:1.2rem;margin:0}
.pe-haupt.pe-gross{max-width:880px;margin-top:2.2rem}
.pe-haupt.pe-gross p{font-size:var(--fs-xl);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:-.025em;color:var(--text)}
.pe-wer{display:flex;align-items:center;gap:.7rem}
.pe-wer img{height:22px;width:auto;max-width:90px;object-fit:contain;flex-shrink:0}
.pe-wer img.rund{width:30px;height:30px;border-radius:50%;object-fit:cover}
.pe-wer img.logo-weiss{opacity:.72}
.pe-wer span{display:flex;flex-direction:column;font-size:var(--fs-sm);color:var(--text3);line-height:var(--lh-snug)}
.pe-wer b{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text)}
.pe-marq{position:relative;margin-top:2.6rem;overflow:hidden;border-radius:6px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.pe-marq:focus-visible{outline:2px solid var(--brand-amber);outline-offset:4px}
.pe-marq-row{display:flex;width:max-content;animation:peLauf 48s linear infinite}
.pe-marq:hover .pe-marq-row,.pe-marq:focus .pe-marq-row,.pe-marq:focus-within .pe-marq-row{animation-play-state:paused}
@keyframes peLauf{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.pe-karte{display:flex;flex-direction:column;gap:.9rem;width:320px;flex-shrink:0;margin:0 1rem 0 0;padding:1.4rem 1.4rem 1.2rem;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten)}
.pe-karte-sterne{font-size:var(--fs-sm);letter-spacing:.12em;color:#fbbf24}
.pe-karte blockquote{flex:1;margin:0}
.pe-karte blockquote p{font-size:var(--fs-base);line-height:1.6;color:var(--text)}
@media(max-width:600px){.pe-karte{width:280px}}
@media(prefers-reduced-motion:reduce){.pe-marq{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.pe-marq-row{animation:none}.pe-marq-row>[aria-hidden="true"]{display:none}}
.pe-profil{margin-top:2rem;font-size:var(--fs-base)}
.pe-profil a{display:inline-flex;align-items:center;gap:6px;font-weight:var(--fw-semibold)}
.pe-profil svg{width:11px;height:11px}

/* ── FAQ (Startseite) ── */
.faq-list{display:grid;gap:12px;margin-top:2rem;max-width:none}
.faq-item{position:relative;border:0;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz);transition:box-shadow var(--t-k) var(--ease)}
.faq-item:hover{box-shadow:inset 0 0 0 1px var(--k-rand-hell),var(--k-glanz)}
.faq-item.open{box-shadow:inset 0 0 0 1px var(--signal-line),var(--k-glanz)}
.faq-btn{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:20px 22px;border:0;border-radius:var(--r-k);background:none;text-align:left;font-family:inherit;font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-snug);letter-spacing:-.015em;color:var(--text);cursor:pointer}
.faq-btn:hover{color:var(--text)}
.faq-btn svg{width:32px;height:32px;flex-shrink:0;padding:8px;border-radius:50%;color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal-line);transition:transform .3s var(--ease),background-color var(--t-k) var(--ease),color var(--t-k) var(--ease)}
.faq-item.open .faq-btn svg{transform:rotate(45deg);color:#0b0b12;background:var(--signal)}
.faq-ans{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq-item.open .faq-ans{max-height:800px}
.faq-ans p{max-width:680px;padding:0 22px 22px;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--text2)}
.faq-ans a{color:var(--text);text-decoration:underline;text-underline-offset:2px}
@media(max-width:768px){.faq-btn{padding:16px 18px;font-size:var(--fs-base)}.faq-ans p{padding:0 18px 18px}.faq-btn svg{width:30px;height:30px}}
/* Zweispaltig wie auf der Startseite: Kopf links bleibt beim Scrollen stehen, Karten rechts */
.fq-in{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:24px 64px;align-items:start}
.fq-kopf{position:sticky;top:calc(var(--nav-h,64px) + 32px)}
@media(max-width:900px){.fq-in{grid-template-columns:minmax(0,1fr);gap:var(--space-block)}.fq-kopf{position:static}}
.faq-weiter{margin-top:2rem;font-size:var(--fs-base);line-height:1.6;color:var(--text3)}
.faq-weiter a{color:var(--text);text-decoration:underline;text-underline-offset:2px}

/* ── Abschluss-Block (Startseite .cta) ── */
.cta-wrap{max-width:none;margin:60px 0;padding:0 var(--gutter)}
.cta{position:relative;text-align:center;padding:96px 5% 88px;border-radius:var(--r-kg);overflow:hidden;isolation:isolate;box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten)}
.cta>*{position:relative;z-index:1}
.cta::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,var(--bg) 100%);opacity:.35;pointer-events:none;z-index:0}
.cta .s-title{max-width:620px;margin:0 auto .8rem}
.cta p{max-width:540px;margin:0 auto 2.2rem;font-size:var(--fs-base);color:var(--text2);line-height:1.7}
.cta .hero-btns{margin-bottom:0}
.cta-meta{display:flex;gap:.8rem 2rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;font-size:var(--fs-sm);color:var(--text3)}
.cta-meta a{color:var(--text2);transition:color .2s;display:flex;align-items:center;gap:4px}
.cta-meta a:hover{color:var(--text)}
@media(max-width:768px){.cta-wrap{margin:32px 0 40px}.cta{padding:60px 6% 52px;border-radius:var(--r-kg)}}

/* ── Fusszeile (Startseite) ── */
.f-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:3rem;margin-bottom:3rem}
.f-brand p{font-size:var(--fs-xs);color:var(--text3);line-height:1.7;margin:.8rem 0 1.2rem}
.f-social a:hover{color:var(--text2)}
.f-col h3,.f-col a,.f-btm,.f-btm a,.f-btm span{font-size:var(--fs-xs)!important}
.f-btm{padding-top:1.4rem}
@media(max-width:768px){.f-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:480px){.f-grid{grid-template-columns:1fr 1fr;gap:1.6rem 1.2rem;padding:40px 0 32px;margin-bottom:0}.f-brand{grid-column:1/-1}}
.f-col a[aria-current="page"],.f-btm a[aria-current="page"]{color:var(--text)}
/* Siegelreihe: Original-Badges (ProvenExpert, IONOS) plus eigene flache Wortmarken */
/* Mittig, jede Marke in einer gleich hohen Zelle, gleiche Abstaende. Die Original-Badges sind ueber dem Motiv
   luftiger als die Wortmarken, deshalb 60 px Bild zu 46 px Wortmarke fuer dieselbe optische Hoehe. */
.f-siegel{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.4rem 3rem;padding:8px 0 34px}
.f-siegel>a,.f-siegel>span{display:flex;align-items:center;justify-content:center;height:64px;transition:opacity .2s}
.f-siegel>a:hover,.f-siegel>a:focus-visible{opacity:.85}
/* Seit Runde 12b: <span role="listitem"><a>…</a></span> (role="listitem" ist auf Links nicht erlaubt); gleiche Flaeche und derselbe Hover */
.f-siegel>span>a{display:flex;align-items:center;justify-content:center;height:100%;transition:opacity .2s}
.f-siegel>span>a:hover,.f-siegel>span>a:focus-visible{opacity:.85}
.f-siegel img{display:block;width:auto;height:60px}
.sgm{display:block;width:auto;height:46px}
.sgm text{font-family:inherit}
@media(max-width:480px){.f-siegel{gap:1rem 1.8rem}.f-siegel>a,.f-siegel>span{height:54px}.f-siegel img{height:50px}.sgm{height:38px}}

/* ── Feste Leiste (Handy, nur Verkaufsseiten) ── */
.leiste{display:none}
@media(max-width:768px){
  .leiste{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(14,14,23,.95);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -1px 0 rgba(255,255,255,.1),0 -14px 30px rgba(0,0,0,.4);transform:translateY(110%);visibility:hidden;transition:transform .3s var(--ease),visibility 0s linear .3s}
  .leiste.an{transform:none;visibility:visible;transition:transform .3s var(--ease),visibility 0s}
  .leiste-preis{display:flex;flex-direction:column;line-height:1.25;min-width:0}
  .leiste-preis b{font-size:var(--fs-base);font-weight:var(--fw-bold);color:#fff}
  .leiste-preis span{font-size:var(--fs-xs);color:var(--text3)}
  .leiste-knopf{padding:13px 18px;font-size:var(--fs-sm)}
}

/* ── Case Study: ein Aufbau fuer alle Referenzen ──
   Kopf mit Kundenfakten → Mitschnitt → Ausgangslage / Loesung → Ergebnis in Zahlen
   (nur Belegtes, mit Quelle) → Uebertragbar → weitere Referenzen → Abschluss. */
.cs-kopf{max-width:none;margin:0;padding:112px var(--gutter) 0}
.cs-zurueck{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text3);transition:color .2s}
.cs-zurueck:hover{color:var(--text)}
.cs-zurueck svg{width:12px;height:12px}
.cs-kopf h1{max-width:900px;margin:1.3rem 0 1.1rem;font-size:var(--fs-2xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.cs-kopf .u-lead{max-width:720px;font-size:var(--fs-lg);line-height:var(--lh-body);color:var(--text2)}
.cs-fakten{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem 2rem;margin:2.2rem 0 0;padding:1.4rem 0 0;border-top:1px solid rgba(255,255,255,.1)}
.cs-fakten div{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.cs-fakten dt{font-size:var(--fs-xs);color:var(--text3)}
.cs-fakten dd{margin:0;font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:var(--lh-snug);color:var(--text);overflow-wrap:anywhere}
.cs-fakten dd a{color:var(--brand-amber);text-decoration:underline;text-decoration-color:var(--brand-mint-line);text-underline-offset:3px}
@media(max-width:760px){.cs-fakten{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cs-medium{max-width:none;margin:2.6rem 0 0;padding:0 var(--gutter)}
.cs-medium-rahmen,.medium-rahmen{position:relative;overflow:hidden;border-radius:var(--r-k);background:#000;box-shadow:0 40px 100px -30px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.06)}
.cs-medium-rahmen video,.cs-medium-rahmen img{display:block;width:100%;height:auto;aspect-ratio:1440/900;object-fit:cover}
/* Medium mit Standbild unter dem Video (Seitenverhaeltnis per --ratio) */
.medium-rahmen{aspect-ratio:var(--ratio,16/9)}
.medium-rahmen img,.medium-rahmen video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.medium-rahmen video{z-index:1}
@media(max-width:768px){.cs-medium-rahmen,.medium-rahmen{border-radius:var(--r-k)}}

/* Schaufenster: gerade, scharfe Aufnahmen in schlichtem Rahmen – Browser mit Desktop-Aufnahme, Handy versetzt davor */
.schaufenster{position:relative;margin:2.6rem 0 0;padding:0 0 2.6rem}
.sf-browser{position:relative;overflow:hidden;border-radius:var(--r-k);background:#0e0e14;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 40px 90px -30px rgba(0,0,0,.75)}
.sf-leiste{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;background:#15151c;border-bottom:1px solid rgba(255,255,255,.07)}
.sf-leiste i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16)}
.sf-leiste span{margin-left:10px;padding:3px 12px;border-radius:50px;font-size:var(--fs-xs);line-height:1.4;color:var(--text3);background:rgba(255,255,255,.05)}
.sf-browser img{display:block;width:100%;height:auto;aspect-ratio:1440/900}
.sf-handy{position:absolute;right:2.4rem;bottom:0;width:clamp(120px,20%,212px);padding:7px;border-radius:28px;background:#0e0e14;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 30px 60px -18px rgba(0,0,0,.85)}
.sf-handy img{display:block;width:100%;height:auto;aspect-ratio:390/844;border-radius:21px}
.schaufenster figcaption{margin-top:1rem;max-width:60%;font-size:var(--fs-xs);line-height:1.5;color:var(--text3)}
@media(max-width:760px){
  .schaufenster{padding-bottom:1.8rem}
  .sf-leiste{height:24px;padding:0 10px}.sf-leiste i{width:7px;height:7px}.sf-leiste span{display:none}
  .sf-handy{right:.8rem;width:27%;padding:4px;border-radius:16px}.sf-handy img{border-radius:12px}
  .schaufenster figcaption{max-width:66%}
}

/* Kopf links, Text rechts */
.cs-teil{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:1rem 4rem;padding:2.6rem 0;border-top:1px solid rgba(255,255,255,.1)}
.cs-teil:first-child{padding-top:0;border-top:0}
.cs-teil:last-child{padding-bottom:0}
.cs-teil>h2{font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.cs-teil-text p{font-size:var(--fs-base);line-height:1.7;color:var(--text2)}
.cs-teil-text p+p,.cs-teil-text p+.haken,.cs-teil-text .haken+p,.cs-teil-text .haken+h3,.cs-teil-text p+h3{margin-top:1.1rem}
.cs-teil-text h3{margin-bottom:.9rem;font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug);color:var(--text)}
.cs-teil-text a{color:var(--brand-amber);text-decoration:underline;text-decoration-color:var(--brand-mint-line);text-underline-offset:3px}
@media(max-width:860px){.cs-teil{grid-template-columns:minmax(0,1fr);gap:1rem;padding:2rem 0}}

/* Ergebnis in Zahlen */
.cs-zahlen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:2.2rem}
.cs-zahl{position:relative;padding:24px 22px;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten);transition:transform var(--t-k) var(--ease),box-shadow var(--t-k) var(--ease)}
.cs-zahl::after{content:'';position:absolute;left:14%;right:14%;top:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.2),rgba(255,255,255,0));pointer-events:none}
.cs-zahl:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--k-rand-hell),var(--k-glanz),0 1px 1px rgba(0,0,0,.25),0 34px 64px -30px rgba(0,0,0,.85)}
.cs-zahl.haupt{background:linear-gradient(165deg,rgba(139,140,254,.16) 0%,rgba(139,140,254,.04) 60%),var(--k-grund);box-shadow:inset 0 0 0 1px var(--signal-line),var(--k-glanz),var(--k-schatten)}
.cs-zahl b{display:block;font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:1;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.cs-zahl.haupt b{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cs-zahl span{display:block;margin-top:.7rem;font-size:var(--fs-sm);line-height:1.5;color:var(--text2)}
/* Kennzahl ohne Zahl: reine Aussage, gleiche Kachel */
.cs-zahl--text span{margin-top:0;font-size:var(--fs-base);color:var(--text)}
.cs-zahl.haupt.cs-zahl--text span{color:var(--text)}

@media(max-width:900px){.cs-zahlen{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.cs-zahlen{grid-template-columns:minmax(0,1fr)}}
.cs-ergebnis-text{max-width:760px;margin-top:2rem}
.cs-ergebnis-text p{font-size:var(--fs-base);line-height:1.7;color:var(--text2)}
.cs-ergebnis-text p+p{margin-top:1rem}
.cs-quelle{margin-top:1.4rem;font-size:var(--fs-sm);line-height:1.6;color:var(--text3)}

/* Weitere Referenzen mit Standbild */
.cs-mehr{margin-top:4.5rem}
.cs-mehr:first-child{margin-top:0}
.cs-weitere{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:2rem 0 0;padding:0}
.cs-karte{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:var(--r-k);background:var(--k-flaeche),var(--k-grund);box-shadow:inset 0 0 0 1px var(--k-rand),var(--k-glanz),var(--k-schatten);transition:transform var(--t-k) var(--ease),box-shadow var(--t-k) var(--ease)}
.cs-karte:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--k-rand-hell),var(--k-glanz),0 1px 1px rgba(0,0,0,.25),0 34px 64px -30px rgba(0,0,0,.85)}
.cs-karte img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.cs-karte>span{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem 1.2rem}
.cs-karte b{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text)}
.cs-karte i{font-style:normal;font-size:var(--fs-sm);line-height:1.5;color:var(--text3)}
@media(max-width:900px){.cs-weitere{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.cs-weitere{grid-template-columns:minmax(0,1fr)}}

/* ── Rechtstexte (AGB, Impressum, Datenschutz): nur Lesbarkeit, Text unveraendert ── */
.recht{max-width:760px;margin:0 auto;padding:128px 5% 88px}
.recht h1{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);margin-bottom:2rem}
.recht h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.015em;line-height:var(--lh-snug);margin:2.8rem 0 .9rem;color:var(--text)}
.recht h3{font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:var(--lh-snug);margin:1.8rem 0 .6rem;color:var(--text)}
.recht p,.recht ul,.recht ol{font-size:var(--fs-base);line-height:1.75;color:var(--text2);margin-bottom:1.1rem}
.recht ul,.recht ol{padding-left:1.3rem}
.recht li{margin-bottom:.55rem}
.recht strong{color:var(--text);font-weight:var(--fw-semibold)}
.recht a{color:var(--text);text-decoration:underline;text-decoration-color:var(--brand-mint-line);text-underline-offset:3px;overflow-wrap:anywhere}
.recht a:hover{text-decoration-color:var(--brand-mint)}
.recht code{font-size:var(--fs-sm);padding:.1em .35em;border-radius:6px;background:var(--glass-strong);color:var(--text)}
@media(max-width:768px){.recht{padding:108px 5% 64px}}

/* ── Runde 12b (15.09.2026): Tippziele mindestens 44 px ──
   Menue-Knopf, Logo-Link und Handy-Menue immer. Links in Kopfzeile, Fusszeile und Kontaktzeile nur bei Touch (pointer: coarse),
   damit sich mit der Maus nichts verschiebt: die Flaechen wachsen unsichtbar (inline-flex mit Mindesthoehe). Am Handy gleichen
   knappere Abstaende in der Fusszeile die zusaetzliche Hoehe aus. */
.n-ham{width:44px;height:44px}
.n-logo{min-height:44px}
.f-brand .n-logo{min-height:0}
.n-mob .mob-cta{display:inline-flex;align-items:center;min-height:44px}
.n-mob .mob-footer a{display:inline-flex;align-items:center;min-height:44px}
@media(pointer:coarse){
  .n-links a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
  .n-links .n-cta{padding-top:0;padding-bottom:0}
  .f-social{gap:0;margin-left:-6px}
  .f-social a{width:44px;height:44px}
  .f-col li{margin-bottom:0}
  .f-col a,.f-btm a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
  .cta-meta{row-gap:0}
  .cta-meta a{min-height:44px}
}
@media(pointer:coarse) and (min-width:769px) and (max-width:1180px){.n-links .n-tel{min-width:44px;justify-content:center;margin:0 -14px}}
@media(max-width:480px){.f-grid{padding:28px 0 12px;gap:1rem 1.2rem}.f-col h3{margin-bottom:.2rem}.f-siegel{padding:0 0 20px}}

:root{--rakete-maske:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M12.5 15.5l-4-4c1.5-4.6 5-7.9 11.5-9-1.1 6.5-4.4 10-9 11.5z'/><path d='M8.5 11.5H5l2.5-3.5h3.5M12.5 15.5V19l3.5-2.5V13'/><path d='M6 17.5c-1.3.6-1.9 2.2-2 3.5 1.3-.1 2.9-.7 3.5-2'/></svg>")}


/* --- Startknopf: Rakete beim Ueberfahren, echter Start beim Klick ---------
   Ruhe: Pfeil. Ueberfahren/Fokus: Rakete wippt startbereit, Flamme flackert,
   Knopf bekommt einen feinen Schein. Klick: Funken spruehen, eine helle Welle
   laeuft durch den Knopf, die Rakete schiesst nach oben heraus und zieht einen
   Rauchfaden nach. Sie fliegt nach OBEN, damit nichts die Seitenbreite dehnt.
   Bei reduzierter Bewegung passiert nichts davon. */
a.btn-primary[href="/buchen"]{overflow:hidden;isolation:isolate}
a.btn-primary[href="/buchen"].zuendet{overflow:visible}

a.btn-primary[href="/buchen"] .startknopf-rakete{
  position:absolute;right:26px;top:50%;width:18px;height:18px;margin:-9px 0 0 0;
  background:currentColor;
  -webkit-mask:var(--rakete-maske) center/contain no-repeat;mask:var(--rakete-maske) center/contain no-repeat;
  opacity:0;transform:translate(-14px,16px) rotate(8deg);pointer-events:none;z-index:2;
  transition:opacity .18s var(--ease),transform .32s cubic-bezier(.34,1.3,.5,1);
}
a.btn-primary[href="/buchen"] .startknopf-schweif{
  position:absolute;right:32px;top:50%;width:7px;height:7px;margin:-3px 0 0 0;border-radius:50%;
  background:radial-gradient(circle,#fff,rgba(255,206,120,.85) 45%,transparent 72%);
  opacity:0;transform:translate(-14px,16px) scale(.6);pointer-events:none;z-index:1;
  transition:opacity .18s var(--ease),transform .32s cubic-bezier(.34,1.3,.5,1);
}
a.btn-primary[href="/buchen"] .startknopf-text{transition:transform .28s var(--ease),opacity .2s var(--ease)}
a.btn-primary[href="/buchen"] .pfeil{transition:opacity .18s var(--ease),transform .28s var(--ease)}

/* Ueberfahren und Tastaturfokus */
a.btn-primary[href="/buchen"]:hover,
a.btn-primary[href="/buchen"]:focus-visible{box-shadow:0 12px 32px -6px rgba(139,140,254,.85),0 0 0 4px rgba(139,140,254,.18),inset 0 0 0 1px rgba(255,255,255,.3)}
a.btn-primary[href="/buchen"]:hover .startknopf-rakete,
a.btn-primary[href="/buchen"]:focus .startknopf-rakete,
a.btn-primary[href="/buchen"]:focus-visible .startknopf-rakete{opacity:1;transform:translate(0,0) rotate(0deg);animation:startknopf-wippen 1.1s ease-in-out infinite}
a.btn-primary[href="/buchen"]:hover .startknopf-schweif,
a.btn-primary[href="/buchen"]:focus .startknopf-schweif,
a.btn-primary[href="/buchen"]:focus-visible .startknopf-schweif{opacity:1;transform:translate(-5px,5px) scale(1);animation:startknopf-flackern .28s ease-in-out infinite alternate}
a.btn-primary[href="/buchen"]:hover .startknopf-text,
a.btn-primary[href="/buchen"]:focus .startknopf-text,
a.btn-primary[href="/buchen"]:focus-visible .startknopf-text{transform:translateX(-4px)}
a.btn-primary[href="/buchen"]:hover .pfeil,
a.btn-primary[href="/buchen"]:focus .pfeil,
a.btn-primary[href="/buchen"]:focus-visible .pfeil{opacity:0;transform:translateX(10px)}
@keyframes startknopf-wippen{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(0,-2px) rotate(-3deg)}}
@keyframes startknopf-flackern{from{transform:translate(-5px,5px) scale(1);opacity:.85}to{transform:translate(-5px,6px) scale(1.25);opacity:1}}

/* Zuendung */
a.btn-primary[href="/buchen"].zuendet{animation:startknopf-ruck .52s cubic-bezier(.3,0,.4,1) forwards}
/* Die Rakete traegt in Ruhe die dunkle Schriftfarbe des Knopfes. Die liest sich nur
   AUF dem hellen Knopf; ueber der dunklen Seite waere sie unsichtbar. Darum wechselt
   sie waehrend des Starts auf Weiss und bekommt einen warmen Schein. */
a.btn-primary[href="/buchen"].zuendet .startknopf-rakete{
  filter:drop-shadow(0 0 7px rgba(255,208,130,.95)) drop-shadow(0 0 20px rgba(139,140,254,.85));
  animation:startknopf-start 1.05s linear forwards;
}
a.btn-primary[href="/buchen"].zuendet .startknopf-schweif{animation:startknopf-schub 1.05s linear forwards}
a.btn-primary[href="/buchen"].zuendet .startknopf-text{opacity:.85;transform:translateX(-4px)}
a.btn-primary[href="/buchen"].zuendet .pfeil{opacity:0;transform:translateX(10px)}
/* helle Welle laeuft durch den Knopf */
a.btn-primary[href="/buchen"] .startknopf-welle{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;z-index:0;
  /* Der Streifen wandert ueber den Hintergrund, das Element bleibt stehen. Verschoebe
     ich es selbst, bricht es bei .zuendet (overflow:visible) als Balken aus dem Knopf. */
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.85) 50%,transparent 58%);
  background-size:260% 100%;background-position:-60% 0;
}
a.btn-primary[href="/buchen"].zuendet .startknopf-welle{animation:startknopf-welle .52s ease-out forwards}
/* Funken */
a.btn-primary[href="/buchen"] .startknopf-funke{
  position:absolute;right:30px;top:50%;width:4px;height:4px;margin:-2px 0 0 0;border-radius:50%;
  background:radial-gradient(circle,#fff,rgba(255,196,92,.9) 50%,transparent 75%);
  opacity:0;pointer-events:none;z-index:1;
}
a.btn-primary[href="/buchen"].zuendet .startknopf-funke{animation:startknopf-funke .72s cubic-bezier(.2,.7,.4,1) forwards}
/* Druckwelle am Abhebepunkt */
a.btn-primary[href="/buchen"] .startknopf-ring{
  position:absolute;right:30px;top:50%;width:14px;height:14px;margin:-7px 0 0 0;border-radius:50%;
  border:1.5px solid rgba(255,214,150,.8);opacity:0;pointer-events:none;z-index:1;
}
a.btn-primary[href="/buchen"].zuendet .startknopf-ring{animation:startknopf-ring .62s cubic-bezier(.2,.7,.3,1) forwards}
/* Rauchfaden */
a.btn-primary[href="/buchen"] .startknopf-rauch{
  position:absolute;right:31px;top:50%;width:5px;height:5px;margin:-2px 0 0 0;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.55),transparent 70%);
  opacity:0;pointer-events:none;z-index:0;
}
a.btn-primary[href="/buchen"].zuendet .startknopf-rauch{animation:startknopf-rauch .8s ease-out forwards}

@keyframes startknopf-ruck{0%{transform:translateY(0) scale(1)}10%{transform:translateY(3px) scale(.968)}26%{transform:translateY(-2px) scale(1.018)}48%{transform:translateY(0) scale(1)}100%{transform:translateY(0) scale(1)}}
/* Erst ducken, dann Kick, dann gleichmaessiger Steigflug ueber den Knopf hinaus.
   Sie wird auf dem Weg groesser statt kleiner und bleibt bis kurz vor Schluss voll da. */
@keyframes startknopf-start{
  0%{opacity:1;background:currentColor;transform:translate(0,0) rotate(0deg) scale(1)}
  9%{opacity:1;background:currentColor;transform:translate(0,5px) rotate(-8deg) scale(.9)}
  18%{opacity:1;background:#fff;transform:translate(1px,-10px) rotate(-2deg) scale(1.3)}
  40%{opacity:1;background:#fff;transform:translate(9px,-58px) rotate(8deg) scale(1.45)}
  65%{opacity:1;background:#fff;transform:translate(19px,-112px) rotate(14deg) scale(1.3)}
  85%{opacity:.9;background:#fff;transform:translate(29px,-158px) rotate(20deg) scale(1.05)}
  100%{opacity:0;background:#fff;transform:translate(40px,-205px) rotate(26deg) scale(.85)}
}
@keyframes startknopf-schub{
  0%{opacity:1;transform:translate(-5px,5px) scale(1)}
  12%{opacity:1;transform:translate(-4px,10px) scale(3.4)}
  35%{opacity:.95;transform:translate(2px,-36px) scale(2.2)}
  62%{opacity:.75;transform:translate(13px,-92px) scale(1.5)}
  100%{opacity:0;transform:translate(28px,-156px) scale(.4)}
}
@keyframes startknopf-welle{0%{opacity:0;background-position:-60% 0}25%{opacity:.9}100%{opacity:0;background-position:160% 0}}
@keyframes startknopf-funke{
  0%{opacity:1;transform:translate(0,0) scale(1)}
  100%{opacity:0;transform:translate(var(--fx,10px),var(--fy,26px)) scale(.2)}
}
@keyframes startknopf-rauch{
  0%{opacity:.6;transform:translate(0,2px) scale(.8)}
  45%{opacity:.4;transform:translate(4px,-40px) scale(3)}
  100%{opacity:0;transform:translate(12px,-96px) scale(5.5)}
}
@keyframes startknopf-ring{0%{opacity:.85;transform:scale(.3)}55%{opacity:.3}100%{opacity:0;transform:scale(4)}}

@media(prefers-reduced-motion:reduce){
  a.btn-primary[href="/buchen"] .startknopf-rakete,
  a.btn-primary[href="/buchen"] .startknopf-schweif,
  a.btn-primary[href="/buchen"] .startknopf-funke,
  a.btn-primary[href="/buchen"] .startknopf-welle,
  a.btn-primary[href="/buchen"] .startknopf-ring,
  a.btn-primary[href="/buchen"] .startknopf-rauch{display:none}
  a.btn-primary[href="/buchen"] .startknopf-text,
  a.btn-primary[href="/buchen"] .pfeil{transition:none;transform:none;opacity:1}
  a.btn-primary[href="/buchen"].zuendet,
  a.btn-primary[href="/buchen"]:hover{animation:none}
}

/* --- Seitenuebergang: dunkler Sog laengs der Flugbahn ---------------------
   Kein Farbblitz: Die Flaeche traegt die Seitenfarbe (#0b0b12) und wird nur von
   einer duennen, gluehenden Kante angefuehrt. Sie ist im Winkel der Rakete
   gekippt und zieht nach oben durch. Auf der Terminseite laeuft sie in DERSELBEN
   Richtung weiter hinaus, damit es eine Bewegung bleibt und nicht zwei.
   Uebergross und gedreht, damit beim Kippen keine Ecke frei bleibt.
   Nur transform, keine Layoutberechnung. Bei reduzierter Bewegung: nichts. */
.uebergang{
  position:fixed;left:-50%;top:-8%;width:200%;height:115%;z-index:9998;pointer-events:none;
  transform:rotate(-22deg) translateY(-105%);
  background:linear-gradient(to top,
    #c9c7ff 0,#a9a6ff 3px,#8b8cfe 5px,rgba(139,140,254,.5) 12px,
    rgba(14,14,24,.97) 54px,#0b0b12 26%,#0b0b12 100%);
  box-shadow:0 14px 60px rgba(139,140,254,.55);
  will-change:transform;
}
.uebergang--zu{animation:uebergang-zu .58s cubic-bezier(.25,.6,.35,1) forwards}
@keyframes uebergang-zu{from{transform:rotate(-22deg) translateY(-105%)}to{transform:rotate(-22deg) translateY(0)}}

/* Ankunft: gedeckt, dann zieht dieselbe Flaeche nach oben weiter hinaus.
   Als Pseudo-Element am <html>, weil layout.js mit defer VOR DOMContentLoaded
   laeuft und ein per Skript angehaengtes Element noch nicht saehe. */
html.uebergang-ankunft::before{
  content:"";position:fixed;left:-50%;top:-8%;width:200%;height:115%;z-index:9998;pointer-events:none;
  transform:rotate(-22deg) translateY(0);
  background:linear-gradient(to top,
    #c9c7ff 0,#a9a6ff 3px,#8b8cfe 5px,rgba(139,140,254,.5) 12px,
    rgba(14,14,24,.97) 54px,#0b0b12 26%,#0b0b12 100%);
  box-shadow:0 14px 60px rgba(139,140,254,.55);
}
html.uebergang-oeffnet::before{animation:uebergang-auf .64s cubic-bezier(.3,0,.25,1) forwards}
@keyframes uebergang-auf{from{transform:rotate(-22deg) translateY(0)}to{transform:rotate(-22deg) translateY(-105%)}}
html.uebergang-ankunft main,html.uebergang-ankunft header{opacity:0}
html.uebergang-oeffnet main,html.uebergang-oeffnet header{opacity:1;animation:uebergang-inhalt .5s .12s cubic-bezier(.2,.7,.3,1) backwards}
@keyframes uebergang-inhalt{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  .uebergang{display:none}
  html.uebergang-ankunft::before{display:none}
  html.uebergang-ankunft main,html.uebergang-ankunft header,
  html.uebergang-oeffnet main,html.uebergang-oeffnet header{opacity:1;animation:none;transform:none}
}

/* Feste Leiste am Handy: schmaler Knopf, dort waere die Rakete ueber der Schrift.
   Deshalb bleibt sie dort aus; der Effekt wirkt auf den grossen Knoepfen im Inhalt. */
#leiste a.btn-primary[href="/buchen"] .startknopf-rakete,
#leiste a.btn-primary[href="/buchen"] .startknopf-ring,
#leiste a.btn-primary[href="/buchen"] .startknopf-schweif{display:none}
#leiste a.btn-primary[href="/buchen"] .startknopf-text,
#leiste a.btn-primary[href="/buchen"] .pfeil{transform:none;opacity:1}
#leiste a.btn-primary[href="/buchen"].zuendet{transform:translateY(1px) scale(.99)}
#leiste a.btn-primary[href="/buchen"].zuendet .startknopf-text{opacity:1;transform:none}
