/* language.css */
/* The language control is the only addition to the existing page structure. */
.language-switch{display:flex;align-items:center;flex-shrink:0;gap:2px;padding:3px;border:1px solid var(--line);border-radius:24px;background:#fff}
.language-switch a{display:flex;align-items:center;justify-content:center;min-width:34px;min-height:32px;padding:3px 6px;border-radius:20px;color:#625970;font:600 12px/1.2 'DM Sans',sans-serif;text-decoration:none;transition:background .15s,color .15s}
.language-switch a[aria-current]{background:linear-gradient(110deg,#f0e3ff,#fde8f5);color:#7c25be}
.language-switch a:hover{background:#f4e8ff;color:#7325ad}
.language-switch a:focus-visible{outline:2px solid #9333ea;outline-offset:3px}
.nav{gap:18px}.nav-links{gap:18px}
@media(max-width:1320px){.nav-links{display:none}.burger{display:flex}.nav .logo{margin-right:auto}}
@media(max-width:600px){.nav{gap:10px}}
@media(max-width:420px){.wrap.nav{padding-left:16px;padding-right:16px;gap:6px}.nav .logo{font-size:14px;gap:3px}.nav .logo span{font-size:12px}.nav .logo .mark{width:26px;height:26px}.language-switch a{min-width:29px;min-height:30px;padding:3px 4px}.nav .burger{width:36px;height:36px;flex-shrink:0}}
/* a11y.css */
/* Kontrast-Korrekturen (WCAG 2.1 AA, 4,5:1 für normalen Text) – minimal abgedunkelt,
   Farbwelt der Designvorlage bleibt erhalten. Wird nach allen Vorlagen-Styles geladen. */
:root{--crm-gradient:linear-gradient(90deg,#9333ea 0%,#c026d3 50%,#db2777 100%)} /* vorher #d946ef/#ec4899: Weiß 3,46:1 */
.hero .hero-cta .trial{color:#736c79!important} /* vorher #78717e: 4,47:1 */
.preis-dark .fine{color:#6c6672} /* vorher #77707f: 4,09:1 */
/* Schriften: beide Dateien sind variable Fonts (Geist wght 100–900, DM Sans 100–1000).
   Die Vorlage deklarierte nur eine feste Stärke (800 bzw. 400) -> Browser fälschte Zwischen-/Fettstufen.
   Freigabe 29.09.2026. */
@font-face{font-family:Geist;src:url('/assets/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:DM Sans;src:url('/assets/dm-sans.woff2') format('woff2');font-weight:100 1000;font-display:swap}
/* Zusatztext Online-Galerie (.gf-details): Absatz- und Zwischenüberschriften-Abstände
   (die Vorlage hat für Fließtext in .sec keine Abstände). ANNAHME 29.09. mit dem Text. */
.gf-details h2{margin:10px 0 18px}
.gf-details h3{margin:34px 0 10px;font-size:1.2rem;line-height:1.4}
.gf-details p{margin:0 0 14px;line-height:1.75;color:var(--ink-soft)}
/* Preis-Umschalter Jährlich/Monatlich (Freigabe Viktor 30.09.2026) */
.price-toggle{display:inline-flex;gap:4px;padding:4px;margin:18px 0 0;border:1px solid var(--line);border-radius:999px;background:#fff}
.price-toggle button{font:600 14px 'DM Sans',sans-serif;border:0;background:transparent;color:var(--ink-soft);padding:8px 16px;border-radius:999px;cursor:pointer}
.price-toggle button[aria-pressed="true"]{background:var(--violet-deep);color:#fff}
.price-toggle button:focus-visible{outline:3px solid var(--violet);outline-offset:2px}
.price-toggle .save{font-size:12px;font-weight:700;margin-left:2px}
.plan [hidden]{display:none!important}

/* 30.09.2026: Hero-Claims leichter (vorher 800 aus design.css, dann 700) */
.hero-display,.phero-display{font-weight:500}

/* 30.09.2026: KI-Kennzeichnung – klein, aber lesbar (Art. 50 KI-VO) */
.photo{position:relative}
.ki-label{position:absolute;right:10px;bottom:8px;z-index:1;font:500 10px/1.2 "DM Sans",sans-serif;letter-spacing:.02em;color:#fff;background:rgba(20,14,28,.45);padding:2px 6px;border-radius:4px;pointer-events:none}

/* 30.09.2026: Rechtstabellen (AGB/Terms) auf dem Handy horizontal scrollbar statt Seitenüberlauf */
.legal-table{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}

/* 30.09.2026: Layout-Check (43 Seiten × 7 Breiten) */
/* Überschriften ohne einzelnes Wort in der letzten Zeile */
h1,h2,h3,.phero-display{text-wrap:balance}
/* Preis nie "39,99 / €" umbrechen */
.price b{white-space:nowrap}
@media(max-width:400px){.price b{font-size:3.3rem!important}}
/* Blog-Artikel: Text klebte am Rahmen */
article.legal-copy.post{padding:clamp(22px,4vw,56px)}
/* Handy: Hero-Bild lag unter dem Kleingedruckten der CTA */
@media(max-width:600px){.hero{min-height:0;padding-bottom:310px}.hero-art{inset:auto 0 30px;height:265px}}

/* 01.10.2026: Statusbox des Kontaktformulars (von Devops in design.css ergaenzt, 4fd43d4) - hier gesichert, weil design.css beim Build neu erzeugt wird */
.form-status{margin-top:20px;padding:16px 18px;border:1px solid;border-radius:12px;font-size:16px;font-weight:600;line-height:1.5}.form-status[data-state=success]{color:#176b3a;background:#edf9f1;border-color:#a9ddbb}.form-status[data-state=error]{color:#a42a2a;background:#fff1f1;border-color:#f1b7b7}

/* 02.10.2026: Footer auf schmalen Handys – Kontakt-Spalte über volle Breite, damit E-Mail und "Cookie-Einstellungen" nicht umbrechen */
@media(max-width:420px){.f-grid{gap:30px 16px}.f-grid>div:last-child{grid-column:1/-1}.f-grid a{font-size:14px}}

/* 02.10.2026: zweispaltiges Kartenraster (Tablet) – einzelne letzte Karte über die volle Breite */
@media(min-width:681px) and (max-width:940px){.g3>:last-child:nth-child(odd){grid-column:1/-1}}

/* 27.10.2026: Briefing „ChatGPT-Suche“ – Galerie-Seite (Tabelle, Kapitel) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.video-chapters ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0}
.video-chapters a{display:inline-flex;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.95rem}
.video-chapters a:hover,.video-chapters a:focus-visible{border-color:var(--violet)}
.video-chapters time{font-variant-numeric:tabular-nums;color:var(--ink-soft)}
.gf-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:24px 0 8px}
.gf-table{width:100%;border-collapse:collapse;font-size:.97rem;line-height:1.5}
.gf-table th,.gf-table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.gf-table thead th{font-size:.85rem;letter-spacing:.04em;color:var(--ink-soft)}
.gf-table tbody th{white-space:nowrap}
@media(max-width:600px){.gf-table tbody th{white-space:normal}.gf-table th,.gf-table td{padding:10px 8px}}
/* 27.10.2026: Kundenansichten auf der Galerie-Seite */
.gf-shot{margin:22px 0 30px}
.gf-shot img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}
.gf-shot figcaption{margin-top:8px;font-size:.85rem;color:var(--ink-soft)}
.gf-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.gf-steps span{display:block;margin-top:8px;font-weight:600;font-size:.92rem}
@media(max-width:700px){.gf-steps{grid-template-columns:1fr}}
/* 28.10.2026: Galerie-Seite nach Design-/QA-Review – Schritte gleich hoch, breitere Screenshots, Tabelle als Karten auf dem Handy */
#gallery-video{scroll-margin-top:100px}
.gf-shot{margin:28px 0 48px}
.gf-shot-narrow{max-width:520px}
.gf-steps{align-items:stretch}
.gf-steps img{aspect-ratio:1/1;object-fit:cover;object-position:top center;background:#fff}
@media(max-width:700px){.gf-steps{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.gf-steps li{scroll-snap-align:start}}
.gf-table td{color:var(--ink-soft)}
.gf-table-wrap{margin-bottom:32px}
@media(max-width:600px){.gf-table thead{display:none}.gf-table,.gf-table tbody,.gf-table tr,.gf-table th,.gf-table td{display:block;width:auto}.gf-table tr{padding:14px 0;border-bottom:1px solid var(--line)}.gf-table tbody th,.gf-table td{padding:2px 0;border:0}.gf-table tbody th{font-size:1.05rem;margin-bottom:6px}.gf-table td+td{margin-top:8px}.gf-table td::before{content:attr(data-label);display:block;font-size:.8rem;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}}
@media(max-width:600px){.video-chapters ol{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.video-chapters a{white-space:nowrap;font-size:.85rem;padding:6px 12px}}
/* 28.10.2026 (2): „Im Detail“ als Zeilen Text | Screenshot, Video auf Fensterhöhe, Hinweis unter den Buttons */
#galerie-video .wfs-player{max-width:min(100%,calc((100svh - 116px) * 16 / 9));margin-inline:auto}
.gf-trial,.phero p.gf-trial{margin:14px 0 0;font-size:15px;line-height:1.5;color:var(--ink-soft)}
.wfs-end .gf-trial{margin:0;text-align:center}
.gf-details .wrap{max-width:1180px}
.gf-intro{max-width:860px}
.gf-details h3{font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.25;letter-spacing:-.02em;margin:0 0 14px}
.gf-row{margin-top:clamp(56px,7vw,96px)}
.gf-copy{max-width:760px}
.gf-media .gf-shot{margin:24px 0 0}
.gf-shot-narrow{max-width:360px;margin-inline:auto!important}
.gf-note{margin-top:clamp(56px,7vw,88px);max-width:860px;padding:24px 28px;border-left:3px solid var(--violet);background:var(--cream-deep);border-radius:12px}
.gf-note h3{font-size:1.15rem}
.gf-note p{font-size:.95rem;margin:0}
@media(min-width:1000px){
 .gf-row:not(.gf-row-full){display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
 .gf-row.gf-row-rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.gf-row-rev .gf-copy{order:2}
 .gf-row:not(.gf-row-full) .gf-media .gf-shot:first-child{margin-top:0}
 .gf-row-full .gf-media .gf-shot{margin-top:28px}
 .gf-steps{gap:20px}}
@media(max-width:600px){.gf-shot-wide img{aspect-ratio:4/3;object-fit:cover;object-position:left top}}
/* 28.10.2026 (3): dritte Review-Runde – Achse, Abschlussblock, Tabellenlinks, Kapitel-Trefferflächen */
.wfs-end p.gf-trial{font-size:15px;line-height:1.5;max-width:none;margin:0}
.gf-trust,.wfs-end p.gf-trust{margin:22px auto 0;font-size:14px;line-height:1.5;color:var(--ink-soft);text-align:center}
.wfs-end-link{display:inline-flex;align-items:center;min-height:44px}
.gf-details .wrap{max-width:var(--wrap)}
.gf-details .wrap>*{max-width:1180px}
.gf-details .wrap>.gf-intro,.gf-details .wrap>.gf-note{max-width:860px}
.gf-copy{max-width:860px}
.gf-row{scroll-margin-top:100px}
.gf-table tbody th a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.gf-table tbody th a:hover{text-decoration-color:var(--violet)}
.gf-note{border-radius:0 12px 12px 0}
.gf-steps+figcaption{margin-top:16px}
.video-chapters a{min-height:44px;align-items:center}
@media(max-width:600px){.gf-note{padding:20px}}
@media(min-width:601px) and (max-width:999px){.gf-row-rev .gf-media{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:end}.gf-row-rev .gf-media .gf-shot{margin:24px 0 0!important;max-width:none}}
/* 27.10. Mobile Kopfzeile: Testen-Knopf statt Sprachumschalter; der Umschalter steht als erste Zeile im Burger-Menue. */
.nav .cta-kurz,.m-panel .m-lang{display:none}
@media(max-width:600px){.wrap.nav>.btn{display:inline-flex;align-items:center;height:40px;min-height:0;padding:0 14px;line-height:1;gap:6px;font-size:14px;white-space:nowrap;flex-shrink:0}.wrap.nav>.btn .cta-voll{display:none}.wrap.nav>.btn .cta-kurz{display:inline}.wrap.nav>.btn .arw{width:auto}.wrap.nav>.language-switch{display:none}.m-panel .m-lang{display:inline-flex;width:max-content;margin:0 0 10px}.m-panel .m-lang a{display:flex;font-size:13px;min-height:36px;min-width:44px;padding:4px 10px;border:0}}
@media(max-width:350px){.wrap.nav>.btn .arw{display:none}}
/* 29.10. Ergebnisse der Prüfung (Tester, Barrierefreiheit). Bedienziele auf dem Handy mindestens 44 px; bei Textlinks
   vergrößert eine unsichtbare Fläche das Ziel, ohne das Layout zu verschieben. Offenes Burger-Menü zeigt ×. */
.burger{position:relative}
.burger[aria-expanded="true"] svg{opacity:0}
.burger[aria-expanded="true"]::before,.burger[aria-expanded="true"]::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.6px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.burger[aria-expanded="true"]::after{transform:translate(-50%,-50%) rotate(-45deg)}
.m-panel.open{max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:760px){.home-text-link,.home-footnote-link{position:relative}.home-text-link::after,.home-footnote-link::after{content:"";position:absolute;inset:-11px -4px}.home-footnote-link::after{inset:-12px -10px}.price-toggle button{min-height:44px}.tour-pin::after{content:"";position:absolute;inset:-8px;border-radius:50%}}
@media(max-width:600px){.wrap.nav>.btn{height:44px}}
@media(max-width:420px){.nav .burger{width:44px;height:44px}}
/* 29.10. Paket 1b. Erster Bildschirm der Startseite kompakter: der Testen-Knopf rückt von ~452 auf ~370 px
   und bleibt auf den meisten Handys über dem Cookie-Banner sichtbar. */
@media(max-width:600px){.hero{padding-top:18px}.hero h1.key{margin-top:0;margin-bottom:10px}.hero .hero-display{font-size:clamp(2.3rem,9.6vw,3.4rem);margin-bottom:12px}.hero-lead{font-size:16px;line-height:1.5;margin-bottom:16px}}
/* Kopfzeile auf dem Handy deckend, sonst scheint Text durch */
@media(max-width:1000px){header{background:#fcfbf8}}
/* Laptops 1101–1320 px: Navigation statt Burger, "Startseite" entfällt (das Logo führt dorthin), Kopf-Knopf kurz */
@media(max-width:1320px) and (min-width:1101px){.nav-links{display:flex!important;gap:14px}.nav-links>a[href="/"],.nav-links>a[href="/en/"]{display:none}.burger{display:none!important}.wrap.nav>.btn .cta-voll{display:none}.wrap.nav>.btn .cta-kurz{display:inline}}
/* Zeilenumbrüche: keine einzelnen Wörter am Ende von Überschriften; feste <br> im Lead auf dem Handy aus */
h1,h2,h3,.hero-display,.phero-display{text-wrap:balance}
@media(max-width:600px){.phero p br{display:none}}
/* Videokapitel auf Tablets in einer Reihe statt 4+1 */
@media(min-width:601px) and (max-width:999px){.video-chapters ol{display:grid;grid-template-columns:repeat(5,auto);justify-content:start}}
/* Pause-Knopf der Tour im Stil der Chips statt Browser-Standard */
.tour-toggle{-webkit-appearance:none;appearance:none;box-sizing:border-box;cursor:pointer;border-radius:999px;border:1px solid #e4e0e6;background:#fff;color:var(--ink-soft);font:500 12.5px/1 'DM Sans',sans-serif;min-height:32px}
.tour-toggle:hover{border-color:var(--violet)}
.tour-toggle:focus-visible{outline:3px solid var(--violet);outline-offset:2px}
@media(max-width:760px){.tour-toggle,.tour-chip{min-height:44px}}
/* Kontrast der Hinweise unter den Preisen (4,18:1 -> 5,6:1) */
#preisdetails p,#preisdetails p strong{color:#675870}
/* Fußzeilen-Überschriften als Absatz (Überschriftenfolge), Aussehen wie bisher */
.f-grid .f-h{font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#bca9cf;margin:0 0 16px;font-weight:500;line-height:1.7}
/* Hero mobil: Dachzeile einzeilig und etwas weniger Abstand vor dem CTA, damit der CTA neben dem Cookie-Banner sichtbar bleibt */
@media(max-width:430px){.hero h1.key{font-size:11.5px;letter-spacing:.08em}.hero-lead{margin-bottom:12px}}
/* 06.11.2026 SEO R1: Block „So funktioniert's" auf Funktionsseiten (funktion_text.py) */
.ft-how h2{margin:10px 0 28px;max-width:28ch}
.ft-steps{list-style:none;counter-reset:ft;margin:0;padding:0;display:grid;gap:22px;max-width:820px}
.ft-steps li{counter-increment:ft;position:relative;padding-left:52px}
.ft-steps li::before{content:counter(ft);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;background:var(--violet-soft);color:var(--ink);font-weight:600;display:flex;align-items:center;justify-content:center;font-size:.95rem}
.ft-steps h3{margin:4px 0 6px;font-size:1.12rem;line-height:1.4}
.ft-steps p,.ft-outro{margin:0;line-height:1.75;color:var(--ink-soft);max-width:72ch}
.ft-outro{margin-top:28px}
