/* ============================================================================
   Landing "/" — öffentliche Produkt-Eingangsseite (fest im hellen Theme).
   Struktur-Vorbild: sim.ai (Sektions-Gerüst); Farben/Fonts/Controls kommen
   AUSSCHLIESSLICH aus tokens.css + components.css (.ds-btn / .ds-input).
   Alle Landing-eigenen Klassen tragen das Präfix `ld-`, damit nichts mit dem
   App-DS kollidiert. Erwartet <html data-theme="light"> (kein theme.js hier).
   ============================================================================ */

:root { --ld-maxw: 1460px; --ld-px: 80px; }

html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body.ld-root {
  background: var(--ds-surface);
  color: var(--ds-ink);
  font-family: var(--ds-font);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
/* :where() hält die Spezifität bei 0: der Link-Reset darf NIE eine
   DS-Komponenten-Farbe schlagen (.ds-btn--primary setzt seine eigene). */
:where(.ld-root) a { color: inherit; text-decoration: none; }
.ld-root svg, .ld-root img { max-width: 100%; }
.ld-wrap { max-width: var(--ld-maxw); margin: 0 auto; padding-left: var(--ld-px); padding-right: var(--ld-px); }

/* ==== Nav (sticky) ==== */
.ld-nav { position: sticky; top: 0; z-index: 50; background: rgba(250,250,249,.88); backdrop-filter: blur(10px); }
.ld-nav__in { display: flex; align-items: center; gap: 20px; height: 72px; }
.ld-nav__wordmark { font-family: var(--ds-font-heading); font-weight: 600; font-size: 22px; letter-spacing: -.01em; margin-right: 8px; }
.ld-nav__link { font-size: 14.5px; color: var(--ds-ink-4); padding: 8px 10px; border-radius: var(--ds-r-inner); }
.ld-nav__link:hover { background: var(--ds-hover); color: var(--ds-ink-2); }
.ld-nav__spacer { flex: 1; }
.ld-nav__cta { display: flex; align-items: center; gap: 10px; }

/* ==== Hero ==== */
.ld-hero { padding-top: 92px; }
.ld-hero__grid { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.ld-hero h1 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(40px, 6.6vw, 92px); line-height: 1.04; letter-spacing: -.025em; color: var(--ds-ink-1); }
.ld-hero__sub { margin-top: 26px; max-width: 640px; font-size: 18px; line-height: 1.55; color: var(--ds-ink-6); }
.ld-hero__ctas { display: flex; gap: 10px; margin-top: 32px; }
/* Der vertikale Strich ist ein EIGENES Element, kein Rahmen an der linken
   Kante: der „keine Links-Rails"-Wächter (test_ui_consistency) gilt für alle
   Flächen; dieser Marketing-Stat trennt nur Zahl und Text (Struktur-Vorbild). */
.ld-hero__stat { display: flex; gap: 16px; align-items: stretch; margin-bottom: 6px; min-width: 230px; }
.ld-hero__stat-bar { width: 2px; background: var(--ds-ink); flex-shrink: 0; }
.ld-hero__stat-num { font-family: var(--ds-font-heading); font-size: 26px; font-weight: 600; letter-spacing: -.01em; line-height: 1.1; }
.ld-hero__stat-label { font-size: 14.5px; color: var(--ds-ink-6); margin-top: 4px; }

/* ==== Produkt-Bühne ==== */
.ld-stage { margin-top: 60px; border-radius: 24px; overflow: hidden; position: relative; background:
  radial-gradient(1200px 500px at 15% -10%, var(--ds-inset) 0%, transparent 60%),
  radial-gradient(900px 420px at 85% 10%, var(--ds-interaction-surface) 0%, transparent 55%),
  linear-gradient(180deg, var(--ds-bg) 0%, var(--ds-inset) 100%); }
.ld-stage::before { content: ""; position: absolute; inset: 0; background:
  repeating-linear-gradient(115deg, var(--ds-accent-tint) 0 1px, transparent 1px 110px),
  repeating-linear-gradient(295deg, var(--ds-accent-tint) 0 1px, transparent 1px 74px); opacity: .5; }
.ld-stage__in { position: relative; padding: 60px 68px 0; }
.ld-frame { background: var(--ds-surface); border: 1px solid var(--ds-line); border-bottom: none; border-radius: 16px 16px 0 0; box-shadow: 0 24px 60px rgba(32,32,33,.10); overflow: hidden; }
.ld-frame__bar { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-bottom: 1px solid var(--ds-line); color: var(--ds-ink-7); font-size: 13px; }
.ld-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ds-line-strong); }
.ld-frame__body { display: grid; grid-template-columns: 340px 1fr; min-height: 430px; }
.ld-frame__body > * { min-width: 0; }
.ld-pane-l { border-right: 1px solid var(--ds-line); padding: 18px; }
.ld-pane-l__head { font-size: 12px; color: var(--ds-ink-7); text-transform: uppercase; letter-spacing: .06em; margin: 6px 6px 12px; }
.ld-rowitem { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 12px; border-radius: var(--ds-r-inner); font-size: 14.5px; color: var(--ds-ink-3); }
.ld-rowitem--sel { background: var(--ds-interaction-surface); }

/* Chips im Landing-Illustrationsmaßstab (Muster .ds-chip/--outline; Polarität
   trägt NUR der Punkt in --ds-positive, Zustände sonst neutral/akzent). */
.ld-chip { display: inline-flex; align-items: center; gap: 6px; font-size: var(--ds-text-sm); border: 1px solid var(--ds-line-strong); border-radius: var(--ds-r-chip); padding: var(--ds-space-1) var(--ds-space-5); color: var(--ds-ink-3); background: transparent; white-space: nowrap; }
.ld-chip--fill { border-color: transparent; background: var(--ds-inset); color: var(--ds-ink-2); }
.ld-chip--accent { color: var(--ds-accent); }
.ld-cdot { width: 6px; height: 6px; border-radius: 50%; background: var(--ds-ink-8); flex-shrink: 0; }
.ld-cdot--pos { background: var(--ds-positive); }

.ld-pane-r { padding: 26px 30px; }
.ld-pane-r h4 { font-family: var(--ds-font-heading); font-size: 20px; font-weight: 600; margin-bottom: 4px; }
.ld-pane-r .ld-muted { color: var(--ds-ink-7); font-size: 13.5px; }
.ld-verdict { display: flex; align-items: center; gap: 10px; margin: 18px 0 8px; font-size: 15px; flex-wrap: wrap; }
.ld-kvrow { display: grid; grid-template-columns: 150px minmax(0,1fr) auto; gap: 12px; padding: 11px 2px; border-top: 1px solid var(--ds-line); font-size: 14px; color: var(--ds-ink-3); align-items: center; }
.ld-kvrow > * { min-width: 0; }
.ld-kvrow .ld-mono { font-family: var(--ds-font-mono); font-size: 12.5px; color: var(--ds-ink-6); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-bubble { position: absolute; top: 34px; right: 88px; z-index: 1; background: var(--ds-surface); border: 1px solid var(--ds-line); border-radius: 14px; padding: 13px 16px; font-size: 14px; color: var(--ds-ink-3); box-shadow: 0 10px 30px rgba(32,32,33,.12); max-width: 340px; }

/* ==== Split-Sektion ==== */
.ld-split { margin-top: 120px; }
.ld-split__card { border: 1px solid var(--ds-line); border-radius: 20px; display: grid; grid-template-columns: 1.35fr 1fr; overflow: hidden; background: var(--ds-surface); }
.ld-split__card > * { min-width: 0; }
.ld-split__vis { background: linear-gradient(160deg, var(--ds-bg), var(--ds-inset)); padding: 48px; display: flex; align-items: center; justify-content: center; }
.ld-split__txt { padding: 64px 56px; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.ld-squiggle { width: 34px; height: 16px; color: var(--ds-ink); }
.ld-h2 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -.015em; line-height: 1.15; color: var(--ds-ink-1); }
.ld-copy { color: var(--ds-ink-6); font-size: 16.5px; line-height: 1.6; max-width: 46ch; }
.ld-minicard { background: var(--ds-surface); border: 1px solid var(--ds-line); border-radius: 14px; box-shadow: 0 16px 40px rgba(32,32,33,.08); width: 100%; max-width: 520px; padding: 20px; }
.ld-minicard h5 { font-family: var(--ds-font-heading); font-size: 15px; font-weight: 600; margin-bottom: 10px; }
.ld-schemarow { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--ds-line); padding: 10px 2px; font-size: 14px; color: var(--ds-ink-3); gap: 10px; }
.ld-schemarow > span { min-width: 0; }
.ld-schemarow .ld-mono { font-family: var(--ds-font-mono); font-size: 12.5px; color: var(--ds-ink-7); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-minicard__actions { display: flex; gap: 10px; margin-top: 14px; }

/* ==== Säulen ==== */
.ld-pillars { margin-top: 150px; text-align: center; }
.ld-pillars h2 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(28px, 3vw, 42px); letter-spacing: -.018em; line-height: 1.15; color: var(--ds-ink-1); }
.ld-pillars h2 .ld-dim { color: var(--ds-ink-7); }
.ld-pillars__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 56px; margin-top: 72px; text-align: left; }
.ld-pillar svg { width: 170px; height: 150px; color: var(--ds-ink-4); }
.ld-pillar h3 { font-family: var(--ds-font-heading); font-size: 20px; font-weight: 600; margin: 22px 0 8px; }
.ld-pillar p { color: var(--ds-ink-6); font-size: 15.5px; line-height: 1.55; max-width: 30ch; }

/* ==== Deep-Dive ==== */
.ld-deep { margin-top: 150px; }
.ld-deep__intro { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.015em; max-width: 30ch; line-height: 1.2; color: var(--ds-ink-1); }
.ld-feature { border: 1px solid var(--ds-line); border-radius: 20px; background: var(--ds-surface); display: grid; grid-template-columns: 1.3fr 1fr; overflow: hidden; position: relative; margin-top: 44px; min-height: 480px; }
.ld-feature > * { min-width: 0; }
.ld-feature--flip { grid-template-columns: 1fr 1.3fr; }
.ld-feature__pill { position: absolute; top: 22px; right: 24px; z-index: 2; background: var(--ds-inset); border-radius: var(--ds-r-chip); padding: var(--ds-space-1) var(--ds-space-5); font-size: var(--ds-text-sm); color: var(--ds-ink-2); }
.ld-feature--flip .ld-feature__pill { right: auto; left: 24px; }
.ld-feature__vis { background: linear-gradient(150deg, var(--ds-bg), var(--ds-inset)); position: relative; display: flex; align-items: center; justify-content: center; padding: 56px 48px; }
.ld-feature__txt { padding: 72px 56px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.ld-feature__txt h3 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(22px, 2.2vw, 30px); letter-spacing: -.015em; line-height: 1.2; color: var(--ds-ink-1); }
.ld-flow { display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 520px; }
.ld-flownode { background: var(--ds-surface); border: 1px solid var(--ds-line); border-radius: var(--ds-r-inner); padding: 13px 16px; font-size: 14px; color: var(--ds-ink-3); box-shadow: 0 10px 26px rgba(32,32,33,.06); }
.ld-flownode .ld-mono { font-family: var(--ds-font-mono); font-size: 12px; color: var(--ds-ink-7); }
.ld-flownode--indent { margin-left: 44px; position: relative; }
.ld-flownode--indent::before { content: ""; position: absolute; left: -26px; top: 50%; width: 22px; height: 1px; background: var(--ds-line-strong); }

/* ==== CTA / Request-Formular + Footer ==== */
.ld-cta { margin-top: 170px; text-align: center; }
.ld-cta h2 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(30px, 4vw, 56px); letter-spacing: -.02em; color: var(--ds-ink-1); }
.ld-cta__sub { margin: 18px auto 0; max-width: 52ch; font-size: 16.5px; color: var(--ds-ink-6); }
.ld-cta__form { display: flex; gap: 10px; justify-content: center; margin: 28px auto 0; max-width: 520px; }
.ld-cta__form .ds-input--cta { flex: 1; min-width: 0; }
.ld-cta__alt { margin-top: 16px; font-size: 14.5px; color: var(--ds-ink-6); }
.ld-cta__alt a { text-decoration: underline; }
/* Bestätigung nach dem Absenden (PRG: /?requested=1) — neutral, wie die
   Login-Notices: Rahmen + Punkt, nie rot. */
.ld-cta__done { display: flex; align-items: flex-start; gap: 9px; border: 1px solid var(--ds-line); background: var(--ds-inset); border-radius: var(--ds-r-inner); padding: 14px 16px; margin: 28px auto 0; max-width: 520px; text-align: left; }
.ld-cta__done-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ds-positive); flex-shrink: 0; margin-top: 6px; }
.ld-cta__done-text { font-size: 14.5px; color: var(--ds-ink-2); line-height: 1.5; }
.ld-cta__error { color: var(--ds-ink-2); font-size: 14.5px; border: 1px solid var(--ds-line); background: var(--ds-inset); border-radius: var(--ds-r-inner); padding: 12px 14px; margin: 20px auto 0; max-width: 520px; }
/* Honeypot: für Menschen unsichtbar, für simple Bots ein normales Feld. */
.ld-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ld-footer { margin-top: 150px; border-top: 1px solid var(--ds-line); padding: 64px 0 72px; }
.ld-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 40px; }
.ld-footer__wordmark { font-family: var(--ds-font-heading); font-weight: 600; font-size: 22px; }
.ld-footer h3 { font-size: 14.5px; font-weight: 700; margin-bottom: 16px; color: var(--ds-ink-2); }
.ld-footer a { display: block; font-size: 14.5px; color: var(--ds-ink-6); margin-bottom: 11px; }
.ld-footer a:hover { color: var(--ds-ink); }

/* Landing-Größenmodifikator: Input in der Zeile eines --lg-Buttons (komponiert,
   Muster "Input sizing modifiers" aus components.css). */
.ds-input--cta { height: auto; padding: var(--ds-space-6) var(--ds-space-8); font-size: var(--ds-text-body); border-radius: var(--ds-r-inner); }

/* ==== Legal-Seiten (Imprint/Privacy) — schmale Lesespalte im selben Kleid ==== */
.ld-legal { max-width: 720px; margin: 0 auto; padding: 72px var(--ld-px) 120px; }
.ld-legal h1 { font-family: var(--ds-font-heading); font-weight: 600; font-size: clamp(30px, 4vw, 44px); letter-spacing: -.02em; color: var(--ds-ink-1); }
.ld-legal h2 { font-family: var(--ds-font-heading); font-weight: 600; font-size: 20px; margin: 36px 0 10px; color: var(--ds-ink-1); }
.ld-legal p { color: var(--ds-ink-4); font-size: 15.5px; line-height: 1.65; margin: 10px 0; }
.ld-legal .ld-todo { border: 1px dashed var(--ds-line-strong); border-radius: var(--ds-r-inner); padding: 12px 14px; color: var(--ds-ink-6); font-size: 14.5px; }

/* ==== Tablet ==== */
@media (max-width: 1000px) {
  :root { --ld-px: 24px; }
  .ld-hero__stat { display: none; }
  .ld-frame__body, .ld-split__card, .ld-feature, .ld-feature--flip { grid-template-columns: 1fr; }
  .ld-pane-l { border-right: none; border-bottom: 1px solid var(--ds-line); }
  .ld-pillars__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .ld-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .ld-footer__wordmark { grid-column: 1 / -1; }
  .ld-split__txt { padding: 40px 32px; }
  .ld-feature__txt { padding: 44px 32px; }
}

/* ==== Phone (lupenrein bei 375px) ==== */
@media (max-width: 640px) {
  :root { --ld-px: 18px; }
  /* Nav: Wortmarke + primäre Aktion; alles andere lebt in Sektionen/Footer. */
  .ld-nav__link, .ld-nav__company, .ld-nav__invite { display: none; }
  .ld-nav__in { height: 64px; }
  .ld-hero { padding-top: 44px; }
  .ld-hero h1 { font-size: clamp(37px, 11.5vw, 56px); letter-spacing: -.02em; }
  .ld-hero h1 br { display: none; }
  .ld-hero__sub { font-size: 16px; margin-top: 18px; }
  .ld-hero__ctas { flex-direction: column; margin-top: 24px; }
  .ld-hero__ctas .ds-btn { display: flex; width: 100%; align-items: center; justify-content: center; }
  .ld-stage { margin-top: 40px; border-radius: 16px; }
  .ld-stage__in { padding: 16px 12px 0; display: flex; flex-direction: column; gap: 12px; }
  .ld-bubble { position: static; order: -1; max-width: 100%; box-shadow: none; }
  .ld-frame__body { min-height: 0; }
  .ld-pane-r { padding: 18px 16px; }
  .ld-kvrow { grid-template-columns: 86px minmax(0,1fr) auto; gap: 8px; font-size: 13px; }
  .ld-chip { font-size: 12px; }
  .ld-split { margin-top: 72px; }
  .ld-split__vis { padding: 20px 14px; }
  .ld-split__txt { padding: 26px 18px; gap: 12px; }
  .ld-pillars { margin-top: 72px; }
  .ld-pillars__grid { grid-template-columns: 1fr; gap: 36px; margin-top: 40px; }
  .ld-pillar svg { width: 130px; height: auto; }
  .ld-pillar p { max-width: none; }
  .ld-deep { margin-top: 72px; }
  .ld-feature { margin-top: 24px; min-height: 0; }
  /* Mobil: Pill oben, dann Text, dann Visual — konsistent für beide Varianten. */
  .ld-feature__pill, .ld-feature--flip .ld-feature__pill { position: static; order: 0; align-self: flex-start; margin: 18px 18px 0; }
  .ld-feature { display: flex; flex-direction: column; }
  .ld-feature__txt { order: 1; padding: 14px 18px 22px; }
  .ld-feature__vis { order: 2; padding: 0 14px 20px; background: transparent; }
  .ld-flownode--indent { margin-left: 20px; }
  .ld-flownode--indent::before { left: -14px; width: 10px; }
  .ld-cta { margin-top: 88px; }
  .ld-cta__form { flex-direction: column; gap: 10px; }
  .ld-cta__form .ds-btn { display: flex; width: 100%; align-items: center; justify-content: center; }
  .ld-footer { margin-top: 80px; padding: 48px 0 56px; }
  .ld-legal { padding-top: 44px; padding-bottom: 72px; }
}
