/* ==========================================================================
   start.css — Startseite (C1), übersetzt aus dem finalen C0-Entwurf
   (design-b0/website-redesign/c0-final/startseite.dc.html; R ein/aus aus der
   Artefakt-Fassung „Reti Website Final“). Grund Beige, Akzent Schwarz, nur hell.
   Impressum/Datenschutz/Konfigurator nutzen weiter css/style.css.
   ========================================================================== */

/* Schrift: selbst gehostet (npm-Paket „geist“ 1.8.1, Lizenz assets/fonts/OFL.txt) */
@font-face{font-family:'Geist';src:url('../assets/fonts/Geist-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('../assets/fonts/GeistMono-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

[hidden]{display:none!important}
html{background:#F3EEE6}
body{margin:0;background:#F3EEE6}

/* ---------- Farben (Props aus dem Entwurf fest eingesetzt: Grund „Beige“, Akzent #111113) ---------- */
.app{--bg:#F3EEE6;--glow1:#ffffff;--glow2:rgba(232,222,206,.85);--glass:rgba(255,255,255,.66);--glass2:rgba(255,255,255,.88);--edge:rgba(0,0,0,.075);--edgeTop:#ffffff;--shadow:rgba(30,35,45,.07);--text:#111113;--text2:#45454c;--text3:#5f5f67;--ok:#17803a;--okBg:rgba(23,128,58,.11);--btn:#111113;--btnText:#ffffff;--akzent:#111113;--track:rgba(0,0,0,.06);--drift:rgba(229,218,200,.55);--spot:rgba(255,255,255,.95);--sheen:rgba(255,255,255,.9)}
.invers{--bg:#0b0b0c;--glass:rgba(255,255,255,.05);--glass2:rgba(255,255,255,.08);--edge:rgba(255,255,255,.1);--edgeTop:rgba(255,255,255,.16);--text:#f5f5f7;--text2:#b4b4bb;--text3:#8e8e96;--btn:#f5f5f7;--btnText:#0a0a0b;--track:rgba(255,255,255,.08);--spot:rgba(255,255,255,.06);--sheen:rgba(255,255,255,.06)}

/* ---------- Grundgerüst ---------- */
.app{position:relative;overflow:hidden;overflow:clip;min-height:100vh;box-sizing:border-box;padding:16px;font-family:'Geist',system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(1100px 620px at 12% -8%,var(--glow1),transparent 60%),radial-gradient(900px 560px at 100% 2%,var(--glow2),transparent 58%),var(--bg);-webkit-font-smoothing:antialiased}
.licht{position:absolute;left:-20%;right:-20%;top:-200px;height:1600px;pointer-events:none;background:radial-gradient(620px 420px at 70% 35%,var(--drift),transparent 65%),radial-gradient(520px 380px at 20% 75%,var(--drift),transparent 65%)}
.innen{position:relative;width:100%;max-width:1200px;box-sizing:border-box;margin:0 auto}
.glass{position:relative;isolation:isolate;overflow:hidden;background:var(--glass);-webkit-backdrop-filter:blur(26px) saturate(160%);backdrop-filter:blur(26px) saturate(160%);border:1px solid var(--edge);box-shadow:inset 0 1px 0 var(--edgeTop),0 10px 34px var(--shadow);border-radius:18px}
.mono{font-family:'Geist Mono',ui-monospace,monospace}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a{color:var(--text)}a:hover{color:var(--text2)}

/* Sichtbarer Fokus (Tastatur) */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:10px}
.sprung{position:absolute;left:16px;top:-80px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:12px;background:#111113;color:#fff;font:500 14px/1 'Geist',system-ui,sans-serif;text-decoration:none}
.sprung:focus{top:16px;color:#fff}

/* ---------- Bausteine ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:12px;border:1px solid var(--edge);background:var(--glass2);color:var(--text);font:inherit;font-size:15px;font-weight:500;cursor:pointer;text-decoration:none;box-sizing:border-box;transition:border-color .15s ease,transform .15s ease,opacity .15s ease}
.btn:hover{border-color:var(--text3);color:var(--text)}
.btn:active{transform:scale(.98)}
.btn.primaer{background:var(--btn);color:var(--btnText);border-color:transparent}
.btn.primaer:hover{color:var(--btnText);opacity:.88}
.btn.klein{min-height:44px;padding:0 16px;font-size:14px}
.btn.icon{padding:0 13px}
.btn.senden{padding:0 16px}
.navlink{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:11px;color:var(--text2);font-size:14px;font-weight:500;text-decoration:none}
.navlink:hover{color:var(--text);background:var(--glass)}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--text2);border:1px solid var(--edge);background:var(--glass)}
.ueber{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text3)}
.h2{margin:0;font-size:clamp(30px,4vw,46px);line-height:1.06;font-weight:600;letter-spacing:-.03em}
.lead{margin:0;font-size:16px;line-height:1.6;color:var(--text2)}
.zeile{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--edge);font-size:14px;color:var(--text2);line-height:1.5}
.zeile:last-child{border-bottom:0}
.liste{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.haken{flex:none;margin-top:2px;color:var(--akzent,var(--text))}
.nr{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;background:var(--btn);color:var(--btnText);flex:none;position:relative;z-index:1}
/* Glanz (.glanz::before, z-index 2) läuft hinter dem Inhalt der Karte, nie über dem Text */
.glanz>*{position:relative;z-index:3}
.kachel{transition:translate .2s ease,border-color .2s ease}
.kachel:hover{translate:0 -3px;border-color:rgba(0,0,0,.16)}
.abschnitt-kopf{display:flex;flex-direction:column;gap:12px;max-width:660px}
.abschnitt{display:flex;flex-direction:column;gap:24px;padding-top:120px}
.reihe{display:flex;flex-wrap:wrap;gap:16px}

/* Lichtfleck auf den Karten (nur Maus) */
@media (hover:hover) and (pointer:fine){
  .spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(340px circle at var(--mx,-400px) var(--my,-400px),var(--spot),transparent 62%)}
}

/* ---------- Kopfleiste ---------- */
.kopf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 10px 16px;border-radius:16px;z-index:50}
/* Kopf immer sichtbar und auf allen Seiten fest oben („fixed“). Startseite: über der dunklen Bühne,
   die ganz oben beginnt, darum ohne Platzhalter. Unterseiten halten seinen Platz frei: --kopf-h ist
   die gemessene Kopfhöhe (66 px, bis 860 px zweizeilig 112 px) – der Inhalt beginnt wie vorher, nichts springt. */
.kopf{position:fixed;top:16px;left:16px;right:16px;width:auto;max-width:1200px;margin:0 auto;transition:background-color .45s ease,border-color .45s ease,box-shadow .45s ease}
.startseite .kopf{position:fixed;left:16px;right:16px;width:auto;max-width:1200px;margin:0 auto}
.branchenseite .app,.rechtsseite .app{--kopf-h:66px;padding-top:calc(16px + var(--kopf-h))}
.kopf .logo-link,.kopf .navlink{transition:color .45s ease,background-color .2s ease}
.kopf .btn{transition:color .45s ease,background-color .45s ease,border-color .15s ease,transform .35s cubic-bezier(.2,.8,.2,1),opacity .15s ease}
/* dunkle Glas-Variante, solange der Kopf über der Bühne liegt (js/hero-video.js schaltet um) */
.kopf.dunkel{--text:#F3EEE6;--text2:rgba(243,238,230,.74);--text3:rgba(243,238,230,.55);--glass:rgba(255,255,255,.08);--bg:#1b1b1d;--btn:#F3EEE6;--btnText:#0b0b0c;background:rgba(22,22,24,.55);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 30px rgba(0,0,0,.25)}
/* Anker-Sprünge landen unter dem Kopf, nicht dahinter */
main [id]{scroll-margin-top:100px}
/* Impressum: Zwischenüberschrift „Bildnachweis“ */
.recht-zwischen{margin:8px 0 0}
.logo-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);min-height:44px}
.logo-link:hover{color:var(--text)}
.logo-link svg{color:var(--text);flex:none}
.logo-name{font-size:15px;font-weight:600}
.hauptnav{display:flex;flex-wrap:wrap;align-items:center;gap:2px}

/* ---------- Hero ---------- */
.hero{display:flex;flex-wrap:wrap;align-items:center;gap:40px;padding:96px 8px 64px}
.hero-text{position:relative;z-index:1;flex:1 1 560px;min-width:0;max-width:640px;display:flex;flex-direction:column;align-items:flex-start;gap:26px}
.hero-titel{margin:0;font-size:clamp(40px,4.8vw,68px);line-height:1.01;font-weight:600;letter-spacing:-.045em}
.hero-unter{margin:0;font-size:clamp(22px,2.4vw,30px);line-height:1.25;font-weight:500;letter-spacing:-.02em;color:var(--text2)}
.hero-lead{margin:0;font-size:17px;line-height:1.6;color:var(--text2);max-width:560px}
.knopfreihe{display:flex;flex-wrap:wrap;gap:10px}
.nowrap{white-space:nowrap}
.zeile-maske{display:block;overflow:hidden;padding-bottom:.06em}
.zeile-maske>span{display:block}
.wechsel{display:inline-block;height:1.15em;overflow:hidden;vertical-align:bottom;color:var(--akzent)}
.wechsel span{display:block;height:1.15em;line-height:1.15em}
.verz-1{animation-delay:220ms}.verz-2{animation-delay:320ms}.verz-3{animation-delay:420ms}.verz-4{animation-delay:560ms}

@media (max-width:1000px){.hero-text{max-width:none}}

/* ---------- Fragen-Band ---------- */
.fragen{position:relative;display:flex;flex-direction:column;gap:6px;margin:0 -16px;padding:4px 0 8px}
.fragen-text{margin:12px 0 0;text-align:center;font-size:13px;color:var(--text3)}
.band{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.spur{display:flex;padding:6px 0;flex:none}
.pille{display:inline-flex;align-items:center;gap:10px;height:48px;margin-right:12px;padding:0 18px 0 8px;border-radius:999px;white-space:nowrap;font-size:15px}
.pille .wer{height:32px;padding:0 10px;border-radius:999px;display:inline-flex;align-items:center;font-size:11px;color:var(--text3);background:var(--track)}
.pille-ok{display:inline-block;max-width:0;overflow:hidden;opacity:0;white-space:nowrap;font-size:12px;font-weight:600;color:var(--ok);transition:max-width .4s ease,opacity .4s ease}
.pille:hover .pille-ok{max-width:120px;opacity:1}
/* Handy: 24 bewegte Glas-Pillen ohne Unschärfe (flüssiger, optisch fast gleich) */
@media (hover:none),(pointer:coarse){.pille.glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(255,255,255,.78)}}

/* ---------- Vorteile ---------- */
.vorteile{display:flex;flex-wrap:wrap;gap:16px;padding-top:56px}
.karte-klein{flex:1 1 220px;padding:22px;display:flex;flex-direction:column;gap:6px}
.karte-klein h3{margin:0;font-size:15px;font-weight:600}
.karte-klein p{margin:0;font-size:13px;color:var(--text2);line-height:1.5}

/* ---------- Demo ---------- */
.demo{display:flex;flex-wrap:wrap;gap:40px;align-items:center;padding-top:120px}
.demo-text{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:14px}
.reiter{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.tab{min-height:44px;padding:0 14px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text2);font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.tab:hover{color:var(--text)}
.tab.aktiv{background:var(--glass2);color:var(--text);border-color:var(--edge);box-shadow:inset 0 1px 0 var(--edgeTop)}
.demo-fenster{flex:1.3 1 480px;min-width:0;display:flex;flex-direction:column}
.demo-kopf{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--edge)}
.demo-wer{display:flex;align-items:center;gap:12px;min-width:0}
.demo-avatar{width:38px;height:38px;border-radius:50%;background:var(--btn);color:var(--btnText);display:flex;align-items:center;justify-content:center;flex:none}
.demo-namen{display:flex;flex-direction:column;gap:2px;min-width:0}
.demo-betrieb{font-size:15px;font-weight:600}
.demo-status{font-size:12px;color:var(--text3)}
.demo-verlauf{display:flex;flex-direction:column;gap:10px;padding:18px;min-height:320px;max-height:420px;overflow-y:auto}
.blase-bot{align-self:flex-start;max-width:86%;padding:12px 15px;border-radius:16px 16px 16px 6px;background:var(--glass2);border:1px solid var(--edge);font-size:14.5px;line-height:1.5;white-space:pre-line}
.blase-gast{align-self:flex-end;max-width:80%;padding:12px 15px;border-radius:16px 16px 6px 16px;background:var(--btn);color:var(--btnText);font-size:14.5px;line-height:1.5}
.blase-tippt{align-self:flex-start;padding:10px 14px;border-radius:16px 16px 16px 6px;background:var(--glass2);border:1px solid var(--edge)}
.punkte{display:inline-flex;gap:4px;align-items:center;height:20px}
.punkte span{width:6px;height:6px;border-radius:50%;background:var(--text3)}
.demo-vorschlaege{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 14px}
.vorschlag{min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--edge);background:var(--glass2);color:var(--text2);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.vorschlag:hover{color:var(--text);border-color:var(--text3)}
.demo-eingabe{display:flex;gap:8px;margin:0;padding:14px 16px;border-top:1px solid var(--edge)}
.chatfeld{flex:1 1 auto;min-width:0;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--edge);background:var(--glass2);color:var(--text);font:inherit;font-size:15px}
.chatfeld::placeholder{color:var(--text3)}

/* ---------- Angebot ---------- */
.branche{flex:1 1 300px;min-width:0;padding:26px;display:flex;flex-direction:column;gap:16px}
.branche h3{margin:0;font-size:21px;font-weight:600;letter-spacing:-.01em}
.branche p{margin:0;font-size:14px;line-height:1.55;color:var(--text2)}
.branche-frage{padding:12px 14px;border-radius:12px;background:var(--track);font-size:14px;line-height:1.45}
.branche .btn{margin-top:auto}
.angebot-fuss{margin:0;font-size:15px;color:var(--text2)}

/* ---------- Ablauf ---------- */
.ablauf-wrap{position:relative}
.linie{position:absolute;left:44px;right:44px;top:44px;height:1px;background:var(--text3);opacity:.45}
.schritte{margin:0;padding:0;list-style:none}
.schritt{flex:1 1 300px;padding:26px;display:flex;flex-direction:column;gap:14px}
.schritt h3{margin:0;font-size:18px;font-weight:600}
.schritt p{margin:0;font-size:14px;line-height:1.55;color:var(--text2)}
.code{font-size:12px;line-height:1.6;padding:10px 12px;border-radius:10px;background:var(--track);color:var(--text2);word-break:break-all}

/* ---------- Preise (bis D3 ausgeblendet) ---------- */
.preis{flex:1 1 340px;padding:30px;display:flex;flex-direction:column;gap:20px}
.preis.betont{background:var(--glass2);border-color:rgba(0,0,0,.14)}
.preis-kopf{display:flex;flex-direction:column;gap:6px}
.preis-art{font-size:13px;color:var(--text2)}
.preis-zahl{font-size:44px;font-weight:600;letter-spacing:-.03em}
.preis-zahl small{font-size:18px;font-weight:500;color:var(--text2);letter-spacing:0}
.preis-fuss{margin:0;font-size:12px;color:var(--text3)}

/* ---------- Über uns ---------- */
.ueber-uns{padding-top:120px}
.ueber-karte{display:flex;flex-wrap:wrap;gap:36px;padding:36px;align-items:center}
.foto-platz{flex:0 0 220px;height:260px;border-radius:16px;background:linear-gradient(160deg,#e9eaee,#dcdee3);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text3)}
.foto{flex:0 0 220px;width:220px;height:260px;border-radius:16px;object-fit:cover}
.ueber-text{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:14px}
.ueber-titel{margin:0;font-size:clamp(26px,3.4vw,38px);line-height:1.1;font-weight:600;letter-spacing:-.03em}
.ueber-name{margin:0;font-size:14px;font-weight:600}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-wrap:wrap;gap:36px;padding-top:120px}
.faq-text{flex:1 1 280px;display:flex;flex-direction:column;gap:12px}
.faq-liste{flex:2 1 520px;min-width:0;padding:4px 0}
.faq-eintrag{border-bottom:1px solid var(--edge)}
.faqknopf{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:60px;box-sizing:border-box;padding:16px 22px;color:var(--text);font-size:16px;font-weight:600;text-align:left;cursor:pointer;list-style:none}
.faqknopf::-webkit-details-marker{display:none}
.faqknopf:focus-visible{outline-offset:-4px}
.faqknopf svg{flex:none;transition:transform .25s ease}
.faq-eintrag[open] .faqknopf svg{transform:rotate(180deg)}
.faq-antwort{margin:0;padding:0 22px 20px;font-size:15px;line-height:1.6;color:var(--text2)}

/* ---------- Kontakt (der schwarze Schlusspunkt) ---------- */
.kontakt{padding-top:120px}
.kontakt-block{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;gap:40px;padding:48px;border-radius:24px;background:radial-gradient(700px 400px at 85% 0%,rgba(255,255,255,.07),transparent 60%),var(--bg);color:var(--text)}
.kontakt-text{flex:1 1 320px;display:flex;flex-direction:column;gap:16px}
.kontakt-titel{margin:0;font-size:clamp(30px,4vw,48px);line-height:1.05;font-weight:600;letter-spacing:-.035em}
.kontakt-daten{display:flex;flex-direction:column;margin:8px 0 0}
.kontakt-daten .zeile{justify-content:space-between}
.kontakt-daten dt{margin:0}
.kontakt-daten dd{margin:0;color:var(--text)}
.kontakt-daten a{color:var(--text)}
.formular{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;gap:14px;margin:0}
.formular-reihe{display:flex;flex-wrap:wrap;gap:14px}
.formular-reihe .feld{flex:1 1 180px}
.feld{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text2)}
.feld input,.feld textarea{min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--edge);background:var(--glass2);color:var(--text);font:inherit;font-size:15px;box-sizing:border-box;width:100%}
.feld input::placeholder{color:var(--text3)}
.feld textarea{min-height:128px;resize:vertical}
.feld input:focus,.feld textarea:focus,.chatfeld:focus{outline:2px solid var(--text3);outline-offset:1px}
.formular-fuss{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.datenschutz-hinweis{margin:0;font-size:12px;line-height:1.5;color:var(--text3);max-width:340px}
.datenschutz-hinweis a{color:var(--text2)}
.honigtopf{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Fußzeile ---------- */
/* unten mehr Luft als im Entwurf (24px), damit die Kapitel-Pille den Text nicht verdeckt */
.fuss{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:40px 8px 84px;font-size:13px;color:var(--text3)}
.fuss p{margin:0}
.fuss nav{display:flex;gap:4px}
.fuss .navlink{font-size:13px}

/* ==========================================================================
   Hero v2 „KI-Hand“ (nur Startseite) — Aussehen 1:1 aus design-b0/hero-v2/final/web-referenz.
   Ohne Klasse html.hv-video (weniger Bewegung, Datensparmodus, kein WebGL, 3D zu spät)
   zeigt die Bühne sofort das ruhige Schlussbild. Ablauf: js/hero-video.js + js/hero-hand.js
   ========================================================================== */
.buehne{position:relative;height:100vh;min-height:560px;margin:-16px -16px 0;overflow:hidden;color:#F3EEE6;
  background:radial-gradient(70vw 60vh at 50% 55%,#1c1b1a,transparent 70%),#0b0b0c;
  --text:#F3EEE6;--text2:rgba(243,238,230,.62);--text3:rgba(243,238,230,.5);--edge:rgba(255,255,255,.16);--edgeTop:rgba(255,255,255,.12);--glass:rgba(255,255,255,.05);--glass2:rgba(255,255,255,.06);--btn:#F3EEE6;--btnText:#0b0b0c}
.buehne canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.hv-chip{position:absolute;z-index:3;top:var(--hv-chip-top,104px);left:50%;transform:translateX(-50%);color:rgba(243,238,230,.75);border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05)}
.hv-titel-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 3vw;pointer-events:none}
.hv-titel{margin:0;text-align:center;font-weight:600;font-size:clamp(44px,9.4vw,150px);line-height:1.0;letter-spacing:-.055em;color:#F3EEE6;max-width:14ch;text-wrap:balance;transform:translateY(-4vh);text-shadow:0 2px 24px rgba(0,0,0,.45)}
.hv-titel .wort{display:inline-block}
.hv-titel .ki{display:inline-block;position:relative}
.hv-titel .ki.an{animation:hvLeuchten 1.5s ease-out forwards}
@keyframes hvLeuchten{0%{color:#F3EEE6;text-shadow:0 2px 24px rgba(0,0,0,.45)}18%{color:#fff;text-shadow:0 0 .12em #fff,0 0 .5em rgba(255,250,240,.75),0 0 1.2em rgba(243,238,230,.45)}100%{color:#fff;text-shadow:0 0 .1em rgba(255,255,255,.6),0 0 .35em rgba(255,250,240,.35)}}
.hv-hinweis{position:absolute;left:50%;bottom:calc(5vh + 14px);transform:translateX(-50%);z-index:5;min-height:40px;padding:8px 14px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,238,230,.5);cursor:pointer;transition:color .2s}
.hv-hinweis:hover{color:#F3EEE6}
/* Schlussbild */
.hv-ende{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:22px;padding:90px 24px 14vh;pointer-events:none}
.hv-ende>*{pointer-events:auto}
.hv-satz{margin:0;font-weight:600;font-size:clamp(32px,5vw,74px);line-height:1.04;letter-spacing:-.045em;color:#F3EEE6;text-wrap:balance;max-width:16ch}
.hv-satz .sw{display:inline-block}
.hv-zeile{display:block}
.ki-ziel{display:inline-block;color:#fff;text-shadow:0 0 .1em rgba(255,255,255,.6),0 0 .35em rgba(255,250,240,.35)}
.hv-wechsel{display:inline-block;height:1.08em;overflow:hidden;vertical-align:bottom;color:rgba(243,238,230,.58)}
.hv-rolle{display:block}
.hv-rolle span{display:block;height:1.08em;line-height:1.08em;text-align:left;white-space:nowrap}
.hv-lead{margin:0;font-size:17px;line-height:1.6;color:rgba(243,238,230,.62);max-width:540px}
.hv-knoepfe{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.hv-fakten{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:0;padding:0;list-style:none;font-size:13px;color:rgba(243,238,230,.5)}
.hv-fakten li{display:flex;align-items:center;gap:8px}
.hv-fakten li::before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(243,238,230,.5)}
.hv-nochmal{position:absolute;z-index:5;left:24px;bottom:5vh;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:rgba(243,238,230,.6);cursor:pointer;opacity:0;pointer-events:none;transition:color .2s,border-color .2s}
.hv-nochmal:hover{color:#F3EEE6;border-color:rgba(255,255,255,.3)}
.hv-nochmal svg{width:16px;height:16px}
/* Übergang „weicher Verlauf“ (Emil 07.11.): 45vh, sanft geführt, warme Zwischentöne statt Grau.
   position:relative, damit nichts darüber malt (das Licht-Feld .licht lag sonst als Fleck darauf). */
.hv-uebergang{position:relative;height:45vh;margin:-1px -16px 0;background:linear-gradient(#0b0b0c 0%,#0f0e0e 10%,#1c1a18 22%,#36312b 35%,#5e564b 48%,#8f8576 60%,#bdb3a3 72%,#ddd5c8 84%,#eee8de 93%,#F3EEE6 100%)}
/* Startseite: das wandernde Licht-Feld liegt fast ganz unter Bühne und Übergang – aus, damit keine Kante entsteht */
.startseite .licht{display:none}
/* Startzustand des „Videos“ (js setzt danach Bild für Bild). Deckkraft .01 statt 0: so ist der Text schon
   beim ersten Bild „gemalt“ und wird später nicht zum LCP-Element (sonst LCP erst nach dem Video, ~4 s) */
.hv-video .hv-satz .sw{opacity:.01;transform:translateY(.35em);filter:blur(6px)}
.hv-video .ki-ziel{opacity:.01}
.hv-video .hv-lead,.hv-video .hv-knoepfe{opacity:.01;transform:translateY(12px)}
.hv-video .hv-knoepfe{pointer-events:none;visibility:hidden}   /* unsichtbar = auch nicht per Tab erreichbar (js schaltet frei) */
.hv-video .hv-fakten,.hv-video .hv-hinweis{opacity:.01}
.hv-video .hv-hinweis{pointer-events:none;visibility:hidden}
/* Ruhiges Schlussbild: Überschrift bleibt fürs Lesegerät im HTML */
html:not(.hv-video) .buehne:not(.hv-blende) .hv-titel-wrap{position:absolute;inset:auto;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hv-blende .hv-titel-wrap{opacity:0;transition:opacity .45s ease}
.hv-blende .hv-satz .sw,.hv-blende .ki-ziel,.hv-blende .hv-lead,.hv-blende .hv-knoepfe,.hv-blende .hv-fakten,.hv-blende .hv-hinweis{transition:opacity .6s ease .25s,transform .6s cubic-bezier(.2,.7,.2,1) .25s,filter .6s ease .25s}

/* ---------- Kapitel-Leiste: geht aus der Kugel auf (Lage/Größe setzt js/hero-video.js) ---------- */
.kapitel{position:fixed;z-index:42;left:0;top:0;height:46px;width:18px;border-radius:999px;overflow:hidden;opacity:0;pointer-events:none;transform:translate(-50%,-50%)}
.kap-glas{position:absolute;inset:0;border-radius:inherit;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);border:1px solid rgba(0,0,0,.075);box-shadow:inset 0 1px 0 #fff,0 10px 30px rgba(30,35,45,.12);opacity:0}
.kap-kugel{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 35% 30%,#fff,#F3EEE6 60%,#cfc6b8);box-shadow:0 0 18px rgba(243,238,230,.45)}
.kap-innen{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:2px;padding:6px;white-space:nowrap}
.kap-innen button{position:relative;z-index:1;border:0;background:transparent;font:inherit;font-family:'Geist',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;color:#45454c;padding:0 12px;min-height:34px;border-radius:999px;cursor:pointer;white-space:nowrap;opacity:0;transition:color .3s}
.kap-innen button.aktiv{color:#fff}
.kap-innen button:focus-visible{outline:2px solid #111113;outline-offset:-2px}
.kap-marke{position:absolute;z-index:0;left:0;top:6px;width:18px;height:34px;border-radius:999px;background:#111113;box-shadow:0 4px 12px rgba(0,0,0,.18);opacity:0}

@media (max-width:860px){
  .startseite{--hv-chip-top:150px}
  main [id]{scroll-margin-top:140px}
  .branchenseite .app,.rechtsseite .app{--kopf-h:112px}
}
@media (max-width:760px){
  .hv-chip{font-size:11px}
  .hv-titel{transform:translateY(-8vh)}
  .hv-hinweis{bottom:calc(13vh + 22px)}
  .hv-ende{padding-bottom:20vh;gap:16px}
  .hv-fakten{display:none}
}

/* ---------- Handy ---------- */
/* Kopfleiste schmal: Logo + Knopf oben, Links in einer Zeile darunter
   (der Entwurf bricht hier unkontrolliert um) */
@media (max-width:860px){
  .kopf{gap:6px 8px;padding:8px 8px 8px 12px}
  .hauptnav{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -4px}
  .hauptnav::-webkit-scrollbar{display:none}
  .hauptnav .navlink{flex:none;white-space:nowrap}
}
@media (max-width:640px){
  /* Links wischbar, rechts ausgeblendet als Hinweis */
  .hauptnav{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .hauptnav .navlink{padding:0 10px}
  .ueber-karte{padding:24px;gap:24px}
  .kontakt-block{padding:32px 22px;gap:32px}
}
@media (max-width:420px){
  .logo-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ==========================================================================
   Bewegung — nur ohne „weniger Bewegung“. Ohne diese Regeln ist alles fertig.
   ========================================================================== */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .licht{animation:drift 40s ease-in-out infinite alternate}
  @keyframes drift{0%{transform:translate3d(-3%,-2%,0)}100%{transform:translate3d(4%,4%,0)}}

  .ein{opacity:0;animation:ein .8s cubic-bezier(.2,.7,.2,1) forwards}
  @keyframes ein{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
  @keyframes einFlach{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

  .wechsel .rolle{animation:rolle 15s cubic-bezier(.7,0,.2,1) infinite}
  @keyframes rolle{0%,16%{transform:translateY(0)}20%,36%{transform:translateY(-1.15em)}40%,56%{transform:translateY(-2.3em)}60%,76%{transform:translateY(-3.45em)}80%,96%{transform:translateY(-4.6em)}100%{transform:translateY(-5.75em)}}

  .spur.links{animation:links 70s linear infinite}
  .spur.rechts{animation:rechts 82s linear infinite}
  @keyframes links{to{transform:translateX(-50%)}}
  @keyframes rechts{from{transform:translateX(-50%)}to{transform:translateX(0)}}
  .band:hover .spur{animation-play-state:paused}

  .blase{animation:blase .45s cubic-bezier(.2,.8,.2,1) both}
  .faq-eintrag[open] .faq-antwort{animation:blase .45s cubic-bezier(.2,.8,.2,1) both}
  @keyframes blase{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
  .punkte span{animation:hupf 1s ease-in-out infinite}
  .punkte span:nth-child(2){animation-delay:.15s}
  .punkte span:nth-child(3){animation-delay:.3s}
  @keyframes hupf{0%,60%,100%{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-3px)}}

  /* Logo-Knoten blinken, wenn der Demo-Assistent antwortet */
  .puls-a circle{animation:knotenA 1s ease both}
  .puls-b circle{animation:knotenB 1s ease both}
  .puls-a circle:nth-child(2),.puls-b circle:nth-child(2){animation-delay:.14s}
  .puls-a circle:nth-child(3),.puls-b circle:nth-child(3){animation-delay:.28s}
  @keyframes knotenA{0%,100%{fill:var(--bg)}35%{fill:var(--text)}}
  @keyframes knotenB{0%,100%{fill:var(--bg)}35%{fill:var(--text)}}

  /* Einblenden + Glanz beim Scrollen (Chrome/Safari 26+: Scroll-Zeitleiste) */
  @supports (animation-timeline: view()){
    .zeigen{animation:zeigen linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    .glanz::before{content:"";position:absolute;top:0;bottom:0;left:0;width:260%;pointer-events:none;z-index:2;background:linear-gradient(105deg,transparent 40%,var(--sheen) 50%,transparent 60%);opacity:.7;animation:glanz linear both;animation-timeline:view();animation-range:cover 15% cover 65%}
    .linie{transform-origin:left;animation:linie linear both;animation-timeline:view();animation-range:entry 30% cover 45%}
  }
  @keyframes zeigen{from{opacity:0;transform:translateY(26px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
  @keyframes zeigenFlach{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  /* Glanz über transform statt background-position (läuft auf der Grafikkarte) */
  @keyframes glanz{from{transform:translateX(-80%)}to{transform:translateX(18.5%)}}
  @keyframes linie{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  /* Ersatz ohne Scroll-Zeitleiste (Firefox, ältere Safari): js/start.js setzt html.io + .sichtbar */
  .io .zeigen{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  .io .zeigen.kachel{transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),translate .2s ease,border-color .2s ease}
  .io .zeigen.sichtbar{opacity:1;transform:none}
  .io .glanz::before{content:"";position:absolute;top:0;bottom:0;left:0;width:260%;pointer-events:none;z-index:2;background:linear-gradient(105deg,transparent 40%,var(--sheen) 50%,transparent 60%);opacity:.7;transform:translateX(-80%)}
  .io .glanz.sichtbar::before{animation:glanz 1.6s cubic-bezier(.45,0,.25,1) .15s both}
  .io .linie{transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .2s}
  .io .linie.sichtbar{transform:scaleX(1)}

  /* Handy/Touch: nur transform/opacity (keine Unschärfe) */
  @media (hover:none),(pointer:coarse){
    .ein{animation-name:einFlach}
    .zeigen{animation-name:zeigenFlach}
  }

  .magnet{transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .15s ease}

  /* Kleines R oben: zeichnet sich beim Laden, Knoten ploppen; Hover lässt sie leuchten */
  .r-zeichnen path{stroke-dasharray:1;animation:rzeichnen .7s cubic-bezier(.65,0,.35,1) both}
  .r-zeichnen path:nth-child(2){animation-delay:.18s}
  .r-zeichnen path:nth-child(3){animation-delay:.32s}
  .r-zeichnen path:nth-child(4){animation-delay:.62s}
  @keyframes rzeichnen{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  .r-schatten{animation:rFest .5s ease 1s both}
  .r-knoten circle{transform-box:fill-box;transform-origin:center;animation:rpop .45s cubic-bezier(.3,1.7,.5,1) both}
  .r-knoten circle:nth-child(1){animation-delay:.95s}
  .r-knoten circle:nth-child(2){animation-delay:1.05s}
  .r-knoten circle:nth-child(3){animation-delay:1.15s}
  @keyframes rpop{from{transform:scale(0)}to{transform:scale(1)}}
  .logo-link:hover .r-knoten circle{animation:knotenA .9s ease both}
  .logo-link:hover .r-knoten circle:nth-child(2){animation-delay:.12s}
  .logo-link:hover .r-knoten circle:nth-child(3){animation-delay:.24s}

  /* Überschrift steigt zeilenweise aus der Maske */
  .zeile-maske>span{animation:zeileHoch .9s cubic-bezier(.2,.75,.15,1) both}
  .zeile-maske:nth-child(2)>span{animation-delay:.12s}
  @keyframes zeileHoch{from{transform:translateY(105%)}to{transform:none}}

  /* Hero v2: Wort-Wechsel im zweiten Satz (läuft erst, wenn der Satz steht: .laeuft), ruhende Kugel wippt */
  .hv-rolle{animation:hvRolle 12s cubic-bezier(.7,0,.2,1) infinite}
  .hv-video .hv-satz:not(.laeuft) .hv-rolle{animation-play-state:paused}
  @keyframes hvRolle{0%,16%{transform:translateY(0)}20%,36%{transform:translateY(-1.08em)}40%,56%{transform:translateY(-2.16em)}60%,76%{transform:translateY(-3.24em)}80%,96%{transform:translateY(-4.32em)}100%{transform:translateY(-5.4em)}}
  .kapitel.wippt{animation:hvWipp 2.86s ease-in-out infinite}
  @keyframes hvWipp{0%,100%{translate:0 -3px}50%{translate:0 3px}}

  /* Logo: Schatten des R blendet ein */
  @keyframes rFest{from{opacity:0}to{opacity:1}}
}
@media (prefers-reduced-motion:reduce){
  .kopf,.kopf .logo-link,.kopf .navlink,.kopf .btn{transition:none}
}
