/* ---------------------------------------------------------------------
   Gemeinsame Basis-Styles für alle Seiten des NachfolgeRadars.
   Enthält die Design-Tokens (:root), die Typo-/Abstands-Skala und die
   wiederverwendbaren Komponenten (.page, .card, .btn*, Formfelder, Links,
   .consent, .thanks, .form-error, .back-link, .sec-icon ...).
   Seiten-spezifische Regeln bleiben im <style>-Block der jeweiligen Seite
   (diese überschreiben bei Bedarf).
   --------------------------------------------------------------------- */
:root {
  /* Marken-Akzent (Grün) + Tinten (Navy) – nach Designvorlage */
  --accent: #2f9e57;        /* Primär-Akzent = Grün (Buttons/CTA) */
  --accent-strong: #25813f; /* dunkleres Grün (Hover / Links) */
  --ink: #0c2440;           /* Navy (Überschriften & Text) */
  --ink-soft: #5a6b7e;      /* Slate-Grau (gedämpfter Text) */
  --navy: #04193c;          /* tiefes Navy (Footer, dunkle Flächen) */

  /* Status-Farben */
  --green: #15803d;
  --orange: #b45309;
  --red: #b91c1c;

  /* Flächen */
  --bg: #eef3fb;            /* helles Blau (Seitenhintergrund) */
  --card-bg: #ffffff;
  --border: #d9e2ef;

  /* Abstands-Skala */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;

  /* Form & Tiefe */
  --radius: 14px;
  --radius-pill: 999px;
  --shadow: 0 8px 30px rgba(12, 36, 64, 0.08);
  --focus-ring: 2px solid var(--accent-strong);

  --serif: Georgia, "Times New Roman", Times, serif;

  /* Schlanker Rechtspfeil (lucide-Stil) als data-URI für Button-Indikatoren */
  --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");

  /* --- Rückwärtskompatible Aliase (alte Klassen nutzen diese weiter) --- */
  /* Gold bleibt als Status-/Auszeichnungsfarbe (z. B. Score-Stufe "Sehr attraktiv") */
  --gold: #e0b94f;
  --gold-dark: #a9842a;
  --blue: var(--accent);
  --blue-dark: var(--accent-strong);
  --purple: var(--ink);
  --text: var(--ink);
  --text-muted: var(--ink-soft);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  font-size: 17px;
}

/* ---------------------------------------------------------------------
   Typo-Skala (zentral – Seiten setzen keine eigenen H-Größen mehr)
   --------------------------------------------------------------------- */
h1, h2, h3 {
  font-family: var(--serif);
  letter-spacing: 0.2px;
  color: var(--ink);
}
h1 { font-size: clamp(24px, 4vw, 30px); line-height: 1.25; margin: 0 0 var(--space-3); }
h2 { font-size: 22px; line-height: 1.3; margin: 0 0 var(--space-5); }
h3 { font-size: 17px; line-height: 1.4; margin: 0 0 var(--space-3); }

a { color: var(--accent-strong); }

/* Globaler, dezenter Fokusring (nur Tastatur) */
:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 1px;
}

/* ---------------------------------------------------------------------
   Layout-Container (einheitliche Breite über alle Seiten: 640 px)
   --------------------------------------------------------------------- */
.page {
  max-width: 640px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4) 64px;
}

/* ---------------------------------------------------------------------
   Website-Kopfzeile (Logo + Markenname links, auf allen Seiten gleich)
   --------------------------------------------------------------------- */
.site-header {
  background: var(--card-bg);
  border-bottom: 1px solid var(--border);
}
.site-header-inner {
  padding: 12px var(--space-5);
  display: flex;
  flex-wrap: wrap;
  row-gap: 8px;
  align-items: center;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.brand-logo {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}
.brand-name {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.2px;
  color: var(--ink);
}

/* ---------------------------------------------------------------------
   Karte
   --------------------------------------------------------------------- */
.card {
  background: var(--card-bg);
  border-radius: var(--radius);
  padding: var(--space-6) 28px;
  box-shadow: var(--shadow);
}

/* ---------------------------------------------------------------------
   Buttons
   --------------------------------------------------------------------- */
.btn {
  border: none;
  border-radius: 10px;
  padding: 14px 22px;
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: transform 0.1s ease, opacity 0.15s ease, background 0.15s ease;
}
.btn:active { transform: scale(0.98); }
.btn-primary {
  background: var(--accent);
  color: var(--ink);
  width: 100%;
}
.btn-primary:hover { background: var(--accent-strong); }
.btn-secondary {
  background: transparent;
  color: var(--ink-soft);
  border: 1px solid var(--border);
}
.btn-secondary:hover { background: var(--bg); }
.btn-cta {
  background: var(--ink);
  color: #fff;
  width: 100%;
}
.btn-cta:hover { opacity: 0.92; }
.btn-cta:disabled { opacity: 0.6; cursor: default; }

/* Schlanker Pfeil als CTA-Indikator (ersetzt das frühere 👉-Emoji).
   Per mask eingefärbt -> folgt automatisch der Button-Textfarbe. */
.btn-primary::after,
.btn-cta::after {
  content: "";
  display: inline-block;
  width: 1.05em;
  height: 1.05em;
  margin-left: 8px;
  vertical-align: -0.18em;
  background-color: currentColor;
  -webkit-mask: var(--arrow-mask) center / contain no-repeat;
  mask: var(--arrow-mask) center / contain no-repeat;
}
.btn-cta:disabled::after { opacity: 0.6; }

/* ---------------------------------------------------------------------
   Formfelder (gemeinsame Basis)
   --------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  background: #fff;
  color: var(--ink);
}
textarea { resize: vertical; }

/* ---------------------------------------------------------------------
   Wiederkehrende Bausteine
   --------------------------------------------------------------------- */
.back-link {
  display: inline-block;
  margin-bottom: 20px;
  font-size: 14px;
  color: var(--ink-soft);
}

.consent {
  display: flex;
  gap: var(--space-2);
  align-items: flex-start;
  font-size: 13px;
  color: var(--ink-soft);
}
.consent input { width: auto; margin-top: 3px; flex-shrink: 0; }

.form-error {
  color: var(--red);
  font-size: 13px;
  margin: 0;
}

.thanks {
  margin-top: var(--space-2);
  padding: 14px 16px;
  background: #dcfce7;
  color: #166534;
  border-radius: 10px;
  font-weight: 600;
  text-align: center;
}

/* Einheitliche Abschnitts-Icons (Inline-SVG-Sprite) */
.sec-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--accent-strong);
}

/* Spam-Honeypot: für echte Nutzer unsichtbar, nur Bots füllen es aus */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* =====================================================================
   Landingpage (nach Designvorlage) – Header-Navigation, Hero mit
   Dashboard-Vorschau, Feature-/Schritte-/Beispiel-Sektionen, Footer.
   Nur auf der Startseite (body.is-landing) aktiv; der Wizard bleibt
   unverändert in der zentrierten 640px-Spalte.
   ===================================================================== */

/* Header: Brand mit Tagline + Navigation + CTA */
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-name em { color: var(--accent); font-style: normal; }
.brand-tag { font-size: 11px; color: var(--ink-soft); font-weight: 400;
  font-family: "Segoe UI", system-ui, sans-serif; letter-spacing: 0.2px; }
.brand-logo { width: 42px; height: 42px; }

.site-nav { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.site-nav a { color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 500; padding: 4px 0; }
.site-nav a:hover { color: var(--accent-strong); }
.site-nav a.active { color: var(--accent-strong); box-shadow: inset 0 -2px 0 var(--accent); }
.header-cta { width: auto; padding: 10px 18px; font-size: 14px; white-space: nowrap; }
.header-cta::after { width: 1em; height: 1em; margin-left: 6px; }
body:not(.is-landing) .site-nav { display: none; }

/* Landing aktiv: App-Container voll ausbreiten, kleinen Footer ausblenden */
body.is-landing .app { max-width: none; padding: 0; min-height: 0; display: block; }
body.is-landing .app-footer { display: none; }

.lp-container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.lp-section { padding: 64px 0; }
.lp-section.alt { background: #fff; }
.lp-head { text-align: center; margin-bottom: 42px; }
.lp-head h2 { font-size: clamp(24px, 3vw, 32px); margin: 0; display: inline-block; }
.lp-head h2::after { content: ""; display: block; width: 56px; height: 3px;
  background: var(--accent); border-radius: 3px; margin: 14px auto 0; }
.lp-head p { color: var(--ink-soft); max-width: 64ch; margin: 14px auto 0; font-size: 16px; }

.btn-lg { width: auto; padding: 15px 26px; font-size: 16px; }

/* ---- Hero (zweispaltig) ---- */
.lp-hero {
  position: relative;
  overflow: hidden;
  padding: 58px 0 70px;
  background: linear-gradient(125deg, #e6eff9 0%, #bcd6f1 42%, #84b3e3 76%, #4683d0 100%);
}
/* dezente Radar-Wellen (konzentrische Ringe) oben rechts */
.lp-hero::after {
  content: "";
  position: absolute;
  top: -260px; right: -210px;
  width: 700px; height: 700px;
  border-radius: 50%;
  background: repeating-radial-gradient(circle at center,
    rgba(255,255,255,0) 0 46px, rgba(255,255,255,0.30) 46px 48px);
  pointer-events: none;
  z-index: 0;
}
.lp-hero .lp-container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 50px;
  align-items: center;
}
.lp-hero h1 { font-size: clamp(30px, 4.4vw, 46px); line-height: 1.1; margin: 0 0 18px; }
.lp-hero h1 em { color: var(--accent); font-style: normal; }
.lp-sub { font-size: 18px; color: var(--ink-soft); margin: 0 0 22px; max-width: 50ch; }
.lp-bullets { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 11px; }
.lp-bullets li { position: relative; padding-left: 32px; font-weight: 500; }
.lp-bullets li::before {
  content: ""; position: absolute; left: 0; top: 1px;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--accent) var(--check-white) center / 13px 13px no-repeat;
}
.lp-hero-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.lp-note { font-size: 13px; color: var(--ink-soft); margin: 14px 0 0; }

/* ---- Dashboard-Vorschau: 2x2 Mini-Karten ---- */
.lp-dash { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lp-dcard { background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: 0 12px 34px rgba(12, 36, 64, 0.10); padding: 18px; }
.lp-dcard h4 { font-size: 12px; color: var(--ink-soft); margin: 0 0 12px; font-weight: 600; }
.dash-gauge { position: relative; width: 92px; height: 92px; margin: 0 auto; }
.dash-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.dash-gauge .bg { fill: none; stroke: #e6edf6; stroke-width: 10; }
.dash-gauge .fg { fill: none; stroke: var(--accent); stroke-width: 10; stroke-linecap: round; }
.dash-gauge .val { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dash-gauge .val b { font-size: 24px; color: var(--ink); }
.dash-gauge .val span { font-size: 10px; color: var(--ink-soft); }
.lp-dcard .tag { text-align: center; color: var(--accent-strong); font-size: 12px; font-weight: 600; margin: 8px 0 0; }
.lp-dcard .big { font-size: 20px; font-weight: 700; color: var(--accent-strong); margin: 6px 0 2px; line-height: 1.25; }
.lp-dcard .small { font-size: 12px; color: var(--ink-soft); margin: 0; }
.lp-dcard .chart svg { width: 100%; height: 44px; display: block; margin-top: 6px; }
.lp-levers { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.lp-levers li { display: flex; gap: 9px; align-items: center; font-size: 12.5px; color: var(--ink); }
.lp-levers .n { width: 20px; height: 20px; border-radius: 50%; background: #e6f4ec; color: var(--accent-strong);
  font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ---- Feature-Cards (4, Icons in hellblauen Kreisen) ---- */
.lp-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.lp-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 24px; box-shadow: var(--shadow); text-align: center; }
.lp-ic { width: 54px; height: 54px; border-radius: 50%; background: #e8f0fb; color: #2563a8;
  display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.lp-ic svg { width: 26px; height: 26px; }
.lp-card h3 { margin: 0 0 8px; font-size: 17px; }
.lp-card p { margin: 0; color: var(--ink-soft); font-size: 14px; }

/* ---- Schritte (4, Navy-Kreise) ---- */
.lp-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.lp-step { text-align: center; }
.lp-step .num { position: relative; width: 58px; height: 58px; border-radius: 50%; background: var(--navy); color: #fff;
  display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.lp-step .num svg { width: 25px; height: 25px; }
.lp-step .num b { position: absolute; top: -6px; right: -6px; width: 23px; height: 23px; border-radius: 50%;
  background: var(--accent); color: #fff; font-size: 12px; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; }
.lp-step h3 { font-size: 16px; margin: 0 0 6px; }
.lp-step p { font-size: 14px; color: var(--ink-soft); margin: 0; }

/* ---- Beispiel + Für wen (zweispaltig) ---- */
.lp-two { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 44px; align-items: start; }
.lp-example { background: #fff; border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow); padding: 22px; }
.lp-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.lp-tab { font-size: 13px; padding: 7px 14px; border-radius: 999px; background: var(--bg); color: var(--ink-soft); border: 1px solid var(--border); }
.lp-tab.active { background: var(--navy); color: #fff; border-color: var(--navy); }
.lp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 22px; align-items: end; }
.lp-stat .l { font-size: 12px; color: var(--ink-soft); margin: 0 0 4px; }
.lp-stat .v { font-size: 18px; font-weight: 700; color: var(--accent-strong); }
.lp-stat .v small { font-size: 12px; font-weight: 600; }
.lp-gaugemini { width: 78px; height: 78px; }
.lp-factors h4 { font-size: 14px; margin: 0 0 14px; }
.lp-bar { margin-bottom: 11px; }
.lp-bar .row { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 4px; }
.lp-bar .num { color: var(--ink-soft); font-weight: 600; }
.lp-bar .track { height: 8px; background: #e6edf6; border-radius: 999px; overflow: hidden; }
.lp-bar .fill { height: 100%; background: var(--accent); border-radius: 999px; }
.lp-forwhom { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
.lp-forwhom li { display: flex; gap: 13px; align-items: flex-start; }
.lp-forwhom .lp-ic { width: 42px; height: 42px; margin: 0; flex-shrink: 0; }
.lp-forwhom .lp-ic svg { width: 21px; height: 21px; }
.lp-forwhom h3 { margin: 1px 0 3px; font-size: 16px; }
.lp-forwhom p { margin: 0; font-size: 14px; color: var(--ink-soft); }

/* ---- CTA-Band (zweispaltig) ---- */
.lp-cta-band { background: linear-gradient(120deg, #073056, var(--navy)); padding: 50px 0; }
.lp-cta-band .lp-container { display: grid; grid-template-columns: 1.25fr 1fr; gap: 36px; align-items: center; }
.lp-cta-band h2 { color: #fff; margin: 0 0 14px; font-size: clamp(22px, 2.6vw, 30px); }
.lp-cta-band > .lp-container > div > p { color: #c5d2e4; margin: 0 0 22px; }
.lp-cta-trust { display: grid; gap: 14px; }
.lp-cta-trust div { display: flex; gap: 11px; align-items: center; color: #d7e2f0; font-size: 14px; }
.lp-cta-trust .ic { width: 32px; height: 32px; border-radius: 8px; background: rgba(255,255,255,0.10); color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lp-cta-trust .ic svg { width: 17px; height: 17px; }

/* ---- Footer (5 Spalten) ---- */
.lp-footer { background: var(--navy); color: #aebdd0; padding: 50px 0 24px; }
.lp-footer .lp-container { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr 1.2fr; gap: 28px; }
.lp-footer h4 { color: #fff; font-size: 13px; letter-spacing: 0.6px; text-transform: uppercase; margin: 0 0 14px;
  font-family: "Segoe UI", system-ui, sans-serif; }
.lp-footer a { color: #aebdd0; text-decoration: none; }
.lp-footer a:hover { color: #fff; }
.lp-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; font-size: 14px; }
.lp-foot-brand .brand-name { color: #fff; }
.lp-foot-brand .brand-tag { color: #8ea0b6; }
.lp-foot-brand > p { font-size: 13px; margin: 14px 0 0; color: #8ea0b6; max-width: 32ch; }
.lp-foot-contact p { margin: 0 0 9px; font-size: 14px; }
.lp-social { display: flex; gap: 10px; margin-top: 12px; }
.lp-social a { width: 34px; height: 34px; border-radius: 8px; background: rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: center; }
.lp-social svg { width: 17px; height: 17px; fill: #c5d2e4; }
.lp-foot-bottom { border-top: 1px solid rgba(255,255,255,0.12); margin-top: 36px; padding-top: 18px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-size: 13px; color: #7e8ea3; }
.lp-foot-bottom a { color: #7e8ea3; }
.lp-foot-bottom a:hover { color: #fff; }

/* Weißer Haken (Hero-Bullets) als Hintergrundbild */
:root {
  --check-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

/* ---- Responsive ---- */
@media (max-width: 980px) {
  .lp-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .lp-footer .lp-container { grid-template-columns: 1fr 1fr 1fr; }
  .lp-foot-brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .lp-hero .lp-container { grid-template-columns: 1fr; gap: 36px; }
  .lp-steps { grid-template-columns: repeat(2, 1fr); row-gap: 34px; }
  .lp-two { grid-template-columns: 1fr; gap: 32px; }
  .lp-cta-band .lp-container { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 720px) {
  .site-nav a:not(.header-cta) { display: none; }
  .brand-tag { display: none; }
}
@media (max-width: 560px) {
  .lp-dash { grid-template-columns: 1fr; }
  .lp-stats { grid-template-columns: 1fr; }
  /* Feste 1fr-Grids schrumpfen bei CSS Grid nicht unter die Inhaltsbreite der
     Karten -> horizontaler Overflow auf schmalen Handys. Auf 1 Spalte umstellen. */
  .lp-grid-4 { grid-template-columns: 1fr; }
  .lp-steps { grid-template-columns: 1fr; }
  .lp-footer .lp-container { grid-template-columns: 1fr; }
}
