/* ──────────────────────────────────────────────────────────────────
   THEME-ISOLATION — schützt Layout gegen Fremd-Theme-CSS-Override.
   Plugin-TemplateLoader setzt body.fone-page + body.fone-page-<slug>.
   ────────────────────────────────────────────────────────────────── */

/* Nav-Layout */
body.fone-page nav {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 100 !important;
  padding: 0 var(--gutter) !important;
  height: 84px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
}
body.fone-page nav .nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 36px !important;
}
body.fone-page nav a { text-decoration: none !important; }

/* Form-Inputs */
body.fone-page .cta-form-field input[type="text"],
body.fone-page .cta-form-field input[type="email"],
body.fone-page .cta-form-field input[type="tel"],
body.fone-page .cta-form-field input[type="number"],
body.fone-page .cta-form-field input[type="url"],
body.fone-page .cta-form-field textarea {
  background: var(--bg3) !important;
  background-color: var(--bg3) !important;
  color: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 14px 18px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
body.fone-page .cta-form-field input:focus,
body.fone-page .cta-form-field textarea:focus {
  border-color: var(--plum) !important;
  outline: none !important;
  box-shadow: none !important;
}
body.fone-page .calc-select-trigger {
  background: var(--bg3) !important;
  background-color: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  color: #fff !important;
  border-radius: 10px !important;
  font-family: inherit !important;
  padding: 14px 18px !important;
}

/* Outline-Headlines — Fill auf Page-Background statt transparent.
   Verhindert Anti-Aliasing-Artefakte/Konturlinien im Buchstaben-Inneren. */
body.fone-page .hero-line-2,
body.fone-page .editorial-text .t-outline,
body.fone-page .metrics-tagline .t-outline,
body.fone-page .cta-title .l3,
body.fone-page .outline-headline,
body.fone-page [class*="-outline"] {
  color: var(--bg) !important;
  -webkit-text-stroke: 2px var(--plum) !important;
  -webkit-text-fill-color: var(--bg) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  background: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
  paint-order: stroke fill !important;
}
/* Step-Num sitzt auf --bg2-Section (heller als --bg) */
body.fone-page .step-num {
  color: var(--bg2) !important;
  -webkit-text-stroke: 1.5px var(--plum) !important;
  -webkit-text-fill-color: var(--bg2) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  background: none !important;
  paint-order: stroke fill !important;
}

/* Buttons */
body.fone-page .btn {
  text-decoration: none !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* ── Original Page-CSS folgt ────────────────────────────────────── */


@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Black.ttf'); font-weight: 900; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-ExtraBold.ttf'); font-weight: 800; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Bold.ttf'); font-weight: 700; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-SemiBold.ttf'); font-weight: 600; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Medium.ttf'); font-weight: 500; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Regular.ttf'); font-weight: 400; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Light.ttf'); font-weight: 300; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg: #080810;
  --bg2: #0c0c1a;
  --bg3: #12121f;
  --fg: #ffffff;
  --fg2: #b8b8be;
  --fg3: #6d6d72;
  --cyan: #33e3f7;
  --blue: #3264fa;
  --plum: #7a54ff;
  --purple: #8200aa;
  --red: #e4003a;
  --green: #4ade80;
  --grad: linear-gradient(135deg, #33e3f7 0%, #3264fa 25%, #7a54ff 50%, #8200aa 75%, #e4003a 100%);
  --border: rgba(255,255,255,0.04);
  --border-acc: rgba(122,84,255,0.3);

  /* 12-column grid, 64px gutters */
  --gutter: 64px;
}

html { scroll-behavior: smooth; }
body { font-family: 'Montserrat', sans-serif; background: var(--bg); color: var(--fg); overflow-x: hidden; }

/* ─── shared ─── */
.eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--plum);
  display: inline-flex; align-items: center; gap: 12px;
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--plum); flex-shrink: 0; }
.eyebrow.muted { color: var(--fg3); }
.eyebrow.muted::before { background: var(--fg3); }
.eyebrow.red { color: var(--red); }
.eyebrow.red::before { background: var(--red); }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 10px; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; padding: 14px 24px; border-radius: 999px; cursor: pointer; border: none; transition: box-shadow 200ms; text-decoration: none; }
.btn svg { flex-shrink: 0; }
.btn-primary { background: var(--plum); color: #fff; }
.btn-primary:hover { box-shadow: 0 4px 20px rgba(122,84,255,0.5); }
.btn-ghost { background: transparent; color: var(--plum); border: 1.5px solid var(--plum); }
.btn-ghost:hover { box-shadow: 0 4px 20px rgba(122,84,255,0.3); }

/* ─── NAV ─── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gutter); height: 84px;
  background: transparent;
}
.nav-logo { height: 38px; }
.nav-links { display: flex; gap: 36px; }
.nav-links a { font-size: 14px; font-weight: 500; color: var(--fg2); text-decoration: none; letter-spacing: 0.04em; transition: color 200ms; }
.nav-links a:hover, .nav-links a.active { color: #fff; }

/* ─── HERO (Z-Pattern + Asymmetric, image as background-right) ─── */
.hero {
  min-height: 100vh; padding: 120px var(--gutter) 80px;
  display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px;
  align-items: stretch; position: relative; overflow: hidden;
}
.hero-bg {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 55%; pointer-events: none; z-index: 0;
  overflow: hidden;
}
.hero-bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: right 30%;
  display: block;
  /* B&W per Bild-Richtlinien */
  filter: grayscale(1) contrast(1.08) brightness(0.88);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 16%, #000 42%);
          mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.45) 16%, #000 42%);
}
.hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, var(--bg) 0%, rgba(8,8,16,0.55) 20%, rgba(8,8,16,0.15) 50%, transparent 80%),
    linear-gradient(180deg, rgba(8,8,16,0.25) 0%, transparent 35%, rgba(8,8,16,0.55) 100%);
  pointer-events: none;
}

/* Konvergenz-Overlay — Corporate-Bildeffekt mit Brand-Farbverläufen, Screen-Blendmode */
/* Pflicht-Regeln:
   • Position immer in einer Ecke des Bildes (top-left, top-right, bottom-left, bottom-right), niemals zentriert
   • Radial-Mask fadet Kanten weg, damit keine harten Schnittkanten im Quellbild stören
   • Filter pusht Sättigung/Kontrast, damit der Screen-Blend wie in Photoshop ankommt
*/
.convergence-overlay {
  position: absolute;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  mix-blend-mode: screen;                 /* = PS „Negativ multiplizieren" */
  filter: saturate(1.55) contrast(1.08) brightness(1.08);
  opacity: 0.82;
  pointer-events: none;
  z-index: 2;                              /* über der hero-bg::after-Vignette, sonst frisst die Vignette die Farbe */
  -webkit-mask-image: radial-gradient(ellipse 55% 55% at center, #000 25%, transparent 95%);
          mask-image: radial-gradient(ellipse 55% 55% at center, #000 25%, transparent 95%);
}
.convergence-overlay-hero {
  /* Variante: obere rechte Ecke, leicht über die Kante blutend, neue Konvergenz */
  top: -7%; right: -5%; bottom: auto;
  width: 42%; height: 50%;
  background-image: url('../assets/convergences/AdobeStock_942295827.jpeg');
  /* Frühere Varianten:
     • Baseline (oben-rechts, AdobeStock_944739309.jpeg, top: 4%, right: 4%, 38×42%)
     • Variante 1 (unten-rechts, AdobeStock_541179773-2.jpg, bottom: -6%, right: -6%, 44×48%) */
}
.convergence-overlay-strip-01 {
  /* Image-Strip 01 (Vertriebsmitarbeiter) — Ecke: oben-links */
  top: -6%; left: -4%;
  width: 32%; height: 65%;
  background-image: url('../assets/convergences/AdobeStock_944739309.jpeg');
}
.convergence-overlay-strip-02 {
  /* Image-Strip 02 (5-topics) — Ecke: oben-rechts */
  top: -5%; right: -5%;
  width: 30%; height: 60%;
  background-image: url('../assets/convergences/AdobeStock_1080517347.jpeg');
}
.convergence-overlay-strip-03 {
  /* Image-Strip 03 (Handshake) — Ecke: unten-links */
  bottom: -8%; left: -4%;
  width: 35%; height: 65%;
  background-image: url('../assets/convergences/AdobeStock_912268014.jpeg');
}

/* ───────────────────────────────────────────────────
   B&W IMAGE SYSTEM — per Bild- & Grafik-Richtlinien
   - Strict grayscale
   - <img> w/ alt for content (SEO + a11y)
   - background-image only for purely atmospheric
   - Visual rhythm: 1 image moment per ~1000px scroll
   ─────────────────────────────────────────────────── */
.bw-image, img.bw {
  filter: grayscale(1) contrast(1.08) brightness(0.92);
}

/* Placeholder used when no real asset is available */
.img-placeholder {
  position: relative; overflow: hidden;
  background:
    radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.06), transparent 55%),
    radial-gradient(ellipse at 75% 80%, rgba(122,84,255,0.06), transparent 55%),
    linear-gradient(135deg, #15151f 0%, #0a0a13 100%);
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
}
.img-placeholder::before {
  content: ''; position: absolute; inset: 0;
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,0.022) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.012) 0 1px, transparent 1px 24px);
  filter: grayscale(1);
  pointer-events: none;
}
.img-placeholder::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 80% at 50% 50%, transparent 30%, rgba(8,8,16,0.6) 100%);
}
.ipl-card {
  position: relative; z-index: 2; padding: 32px;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  text-align: center; max-width: 480px;
}
.ipl-icon {
  width: 52px; height: 52px; border: 1px solid rgba(255,255,255,0.14); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.5);
}
.ipl-icon svg { width: 22px; height: 22px; }
.ipl-tag {
  font-size: 9px; font-weight: 700; color: var(--plum); letter-spacing: 0.22em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 10px;
}
.ipl-tag::before, .ipl-tag::after { content: ''; width: 16px; height: 1px; background: var(--plum); }
.ipl-title { font-size: 15px; font-weight: 700; color: rgba(255,255,255,0.78); letter-spacing: -0.005em; }
.ipl-desc { font-size: 11.5px; font-weight: 500; color: rgba(255,255,255,0.42); line-height: 1.55; letter-spacing: 0.01em; }
.ipl-spec { font-size: 10px; font-weight: 600; color: rgba(255,255,255,0.32); letter-spacing: 0.16em; text-transform: uppercase; margin-top: 4px; }

/* Full-bleed editorial image strip — used between sections for scroll rhythm */
.image-strip {
  position: relative; height: 70vh; min-height: 460px; max-height: 720px;
  margin: 0; overflow: hidden;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.image-strip > img,
.image-strip > .img-placeholder { width: 100%; height: 100%; object-fit: cover; display: block; }
.image-strip > img { filter: grayscale(1) contrast(1.08) brightness(0.78); }
.image-strip::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(8,8,16,0.55) 0%, transparent 25%, rgba(8,8,16,0.78) 100%),
    linear-gradient(90deg, rgba(8,8,16,0.5) 0%, transparent 35%);
}
.image-strip-caption {
  position: absolute; left: var(--gutter); right: var(--gutter); bottom: 48px; z-index: 3;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 14px 32px; align-items: end;
  pointer-events: none;
}
.image-strip-eyebrow {
  grid-column: 1 / 2; grid-row: 1;
  font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--plum); display: inline-flex; align-items: center; gap: 12px;
}
.image-strip-eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--plum); flex-shrink: 0; }
.image-strip-quote {
  grid-column: 1 / 2; grid-row: 2;
  max-width: 880px;
  font-size: clamp(22px, 2.6vw, 36px); font-weight: 700; color: #fff;
  letter-spacing: -0.018em; line-height: 1.18;
  text-shadow: 0 2px 32px rgba(0,0,0,0.6);
}
.image-strip-quote em { font-style: normal; color: var(--plum); }
.image-strip-meta {
  grid-column: 2 / 3; grid-row: 1 / 3; align-self: end; text-align: right;
  font-size: 10px; font-weight: 700; color: rgba(255,255,255,0.78); letter-spacing: 0.16em; text-transform: uppercase;
  line-height: 1.5;
}
.image-strip-meta::before {
  content: ''; display: block;
  width: 64px; height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 16' fill='none'><defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='0'><stop offset='0' stop-color='%2333e3f7'/><stop offset='0.25' stop-color='%233264fa'/><stop offset='0.5' stop-color='%237a54ff'/><stop offset='0.75' stop-color='%238200aa'/><stop offset='1' stop-color='%23e4003a'/></linearGradient></defs><path d='M2 10 Q12 0 22 8 T42 8 T62 8' stroke='url(%23g)' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 64px 16px;
  margin: 0 0 12px auto;
}
.image-strip-meta b { display: block; color: #fff; font-weight: 800; font-size: 18px; letter-spacing: -0.02em; margin-bottom: 4px; text-transform: none; }

/* Inline image card (used inside grids) */
.inline-figure { margin: 0; position: relative; overflow: hidden; border-radius: 16px; border: 1px solid var(--border); }
.inline-figure img, .inline-figure .img-placeholder { width: 100%; height: 100%; display: block; object-fit: cover; }
.inline-figure img { filter: grayscale(1) contrast(1.05) brightness(0.92); }
.inline-figure figcaption {
  position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 3;
  font-size: 10px; font-weight: 700; color: #fff; letter-spacing: 0.16em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 10px;
}
.inline-figure figcaption::before { content: ''; width: 22px; height: 1px; background: var(--plum); flex-shrink: 0; }
.inline-figure::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 50%, rgba(8,8,16,0.7) 100%);
}

/* Editorial quote — Soft-Plum-Glow als wiederkehrendes Hintergrund-Element für Big-Claim-Sections */
.editorial-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(122,84,255,0.16) 0%, transparent 70%);
}

.hero-stats {
  position: absolute; bottom: 160px; right: calc(var(--gutter) + 32px); z-index: 3;
  display: flex; flex-direction: row; gap: 12px;
}
.hero-stat-tag { display: none; }
.hero-stat-divider { display: none; }
.hero-stat {
  font-size: 11px; font-weight: 600; color: var(--fg2); line-height: 1.45;
  max-width: 200px;
  padding: 16px 22px;
  background: rgba(12,12,26,0.55);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(122,84,255,0.25);
  border-radius: 16px;
}
.hero-stat strong { display: block; font-size: 26px; font-weight: 700; color: #fff; letter-spacing: -0.025em; margin-bottom: 6px; line-height: 1; }

.hero-content {
  grid-column: 1 / 11; grid-row: 1;
  align-self: start; position: relative; z-index: 2;
  display: flex; flex-direction: column; gap: 36px;
  padding-top: 140px;
}
.hero-headline { pointer-events: none; }
.hero-headline span {
  display: block; font-weight: 900; line-height: 0.9;
  letter-spacing: -0.035em; text-transform: uppercase;
}
/* Seiten-spezifischer Override: H1 etwas kleiner als die Design-System-Default (8vw / 140px),
   weil das Wort „OUTSOURCING" zu lang ist und sonst über die Hero-Spalte hinausläuft.
   Design-System-Regel bleibt 8vw / 140px — hier nur lokal angepasst. */
.hero-line-1 { font-size: clamp(48px, 6.8vw, 118px); color: #fff; }
.hero-line-2 {
  font-size: clamp(48px, 6.8vw, 118px);
  -webkit-text-stroke: 2px var(--plum);
  -webkit-text-fill-color: var(--bg);   /* Hintergrundfarbe statt transparent: verdeckt durchscheinende Konturen überlappender Buchstaben */
  color: var(--bg);
  paint-order: stroke fill;             /* Kontur zuerst, Füllung drüber → saubere Innenkanten */
}
.hero-sub {
  font-size: clamp(17px, 1.8vw, 23px); font-weight: 400; color: var(--fg2);
  line-height: 1.55; letter-spacing: -0.012em; max-width: 620px;
}
.hero-sub strong { color: #fff; font-weight: 600; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.hero-tag {
  position: absolute; bottom: 80px; right: var(--gutter); z-index: 3;
  background: var(--plum); color: #fff;
  padding: 14px 24px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  display: flex; align-items: baseline; gap: 10px;
  box-shadow: 0 10px 40px rgba(122,84,255,0.4);
}
.hero-tag b { font-size: 20px; font-weight: 900; letter-spacing: -0.02em; line-height: 1; }

/* ─── LOGOS strip ─── */
.logos-band { padding: 64px var(--gutter) 32px; border-bottom: 1px solid var(--border); overflow: hidden; }
.logos-flex { display: flex; align-items: center; gap: 32px; }
.logos-label-side { font-size: 10px; font-weight: 700; color: var(--fg3); letter-spacing: 0.16em; text-transform: uppercase; flex-shrink: 0; max-width: 140px; line-height: 1.4; }
.logos-divider { width: 1px; height: 32px; background: var(--border); flex-shrink: 0; }
.logos-rail {
  flex: 1; position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.logos-track {
  display: inline-flex; align-items: center;
  animation: logosScroll 90s linear infinite;
  white-space: nowrap;
}
@keyframes logosScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.logos-band:hover .logos-track { animation-play-state: paused; }
.logo-img {
  height: 48px; width: auto; flex-shrink: 0;
  margin-right: 64px;          /* statt gap — auch nach dem letzten Logo des Sets gilt das Spacing, sonst hakt der Loop */
  opacity: 0.55;
  filter: brightness(0) invert(1);
  transition: opacity 250ms;
}
.logo-img:hover { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .logos-track { animation: none; }
}

/* ─── PROBLEM (asymmetric, with breakout image) ─── */
.problem {
  padding: 180px var(--gutter) 260px; position: relative; overflow: hidden;
  background: var(--bg2);
}
.problem-grid {
  display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px;
  align-items: start;
}
.problem-head { grid-column: 1 / 9; margin-bottom: 56px; }
.problem-head .eyebrow { margin-bottom: 32px; }
.problem-headline {
  font-size: clamp(36px, 4.5vw, 68px); font-weight: 700;
  letter-spacing: -0.025em; line-height: 1.05;
}
.problem-headline em { font-style: normal; color: var(--plum); }
.problem-pull {
  font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2);
  line-height: 1.5; letter-spacing: -0.012em;
}

.problem-content { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; position: relative; }
.pain-side { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 32px; }
.pain-list-wrap { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.pain-row {
  display: grid; grid-template-columns: auto auto 1fr; gap: 18px; align-items: center;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 999px; padding: 14px 22px 14px 14px;
  transition: border-color 300ms, transform 300ms, background 300ms, margin-left 300ms;
}
/* Treppen-Versatz pro Pain-Row über margin-left (transform würde mit .reveal kollidieren) */
.pain-row:nth-child(1) { margin-left: 0; }
.pain-row:nth-child(2) { margin-left: 18px; }
.pain-row:nth-child(3) { margin-left: 36px; }
.pain-row:nth-child(4) { margin-left: 54px; }
.pain-row:nth-child(5) { margin-left: 72px; }
.pain-row:hover { border-color: rgba(228,0,58,0.4); transform: translateX(4px); background: linear-gradient(90deg, rgba(228,0,58,0.06), var(--bg3) 60%); }

/* Wave-Connector — verbindet Pain-Liste mit Win-Card, halb in/halb aus der Card */
.win-connector {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 64px; height: 20px;
  z-index: 4; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 20' fill='none'><defs><linearGradient id='wc' x1='0' y1='0' x2='1' y2='0'><stop offset='0' stop-color='%2333e3f7'/><stop offset='0.25' stop-color='%233264fa'/><stop offset='0.5' stop-color='%237a54ff'/><stop offset='0.75' stop-color='%238200aa'/><stop offset='1' stop-color='%23e4003a'/></linearGradient></defs><path d='M3 11 Q11 2 19 10 T35 10 T51 10 T63 10' stroke='url(%23wc)' stroke-width='2.4' stroke-linecap='round' fill='none'/></svg>");
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.pain-row-icon { width: 28px; height: 28px; border-radius: 50%; background: rgba(228,0,58,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pain-row-icon svg { width: 14px; height: 14px; }
.pain-row-num { font-size: 11px; font-weight: 700; color: var(--fg3); letter-spacing: 0.14em; min-width: 22px; }
.pain-row-text { font-size: 13.5px; font-weight: 600; color: #fff; line-height: 1.35; }
.pain-row-text span { display: block; font-weight: 400; color: var(--fg2); font-size: 12px; margin-top: 3px; }

.win-card {
  grid-column: 7 / 13;
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, rgba(80,55,180,0.22) 0%, rgba(50,35,120,0.18) 100%);
  border: none; border-radius: 24px;
  padding: 48px 44px; min-height: 100%;
  display: flex; flex-direction: column; justify-content: space-between; gap: 36px;
}
.win-card::before {
  content: ''; position: absolute; inset: -50%;
  background: radial-gradient(ellipse 40% 50% at 70% 30%, rgba(122,84,255,0.4), transparent 60%);
  pointer-events: none;
}
.win-inner { position: relative; z-index: 2; }
.win-badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px;
  background: rgba(51,227,247,0.12); border: 1px solid rgba(51,227,247,0.4);
  border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--cyan); margin-bottom: 28px;
}
.win-badge svg { width: 12px; height: 12px; }
.win-headline { font-size: clamp(28px, 3.2vw, 48px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 20px; }
.win-headline span { color: #fff; }
.win-desc { font-size: 14px; color: var(--fg2); line-height: 1.7; max-width: 380px; }
.win-stats { display: flex; gap: 28px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.08); position: relative; z-index: 2; }
.win-stat-num { font-size: 1.8rem; font-weight: 700; color: #fff; letter-spacing: -0.02em; line-height: 1; }
.win-stat-lbl { font-size: 10px; font-weight: 600; color: var(--fg3); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 6px; }

/* ─── EDITORIAL QUOTE (matches Metrics tagline look) ─── */
.editorial {
  padding: 220px var(--gutter); position: relative; overflow: hidden;
  background: var(--bg);
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.editorial-grid { position: relative; z-index: 2; }
.editorial-text {
  display: flex; flex-direction: column; gap: 0;
  font-weight: 900; line-height: 0.9; letter-spacing: -0.045em;
  width: fit-content; margin-left: auto; margin-right: auto;
}
.editorial-text span {
  display: block; font-size: clamp(50px, 8vw, 144px);
  font-weight: 900; line-height: 0.9; letter-spacing: -0.045em;
}
.editorial-text span:nth-child(2) { padding-left: clamp(40px, 6vw, 120px); }
.editorial-text span:nth-child(3) { padding-left: clamp(80px, 12vw, 240px); }
.editorial-text .t-white { color: #fff; }
.editorial-text .t-outline { -webkit-text-stroke: 2px var(--plum); -webkit-text-fill-color: var(--bg); color: var(--bg); }
.editorial-text em { font-style: normal; color: var(--plum); }

/* ─── SOLUTION (Z-Pattern continuation) ─── */
.solution { padding: 180px var(--gutter); }
.solution-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; }
.sol-left { grid-column: 1 / 6; position: sticky; top: 100px; }
.sol-left .eyebrow { margin-bottom: 32px; }
.sol-heading { font-size: clamp(36px, 4.5vw, 68px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 24px; }
.sol-heading span { color: var(--plum); }
.sol-body { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.55; letter-spacing: -0.012em; margin-bottom: 32px; }
.sol-body strong { color: #fff; font-weight: 600; }
.sol-right { grid-column: 7 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.benefit-tile {
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 14px; padding: 22px 24px;
  display: grid; grid-template-columns: auto 1fr;
  column-gap: 12px; row-gap: 8px;
  align-items: start;
  transition: border-color 200ms, transform 200ms;
  min-height: 120px;
}
.benefit-tile:hover { border-color: var(--border-acc); transform: translateY(-2px); }
.benefit-arrow { color: var(--plum); grid-column: 1; grid-row: 1; margin-top: 4px; }
.benefit-strong { grid-column: 2; grid-row: 1; font-size: 14px; font-weight: 700; color: #fff; line-height: 1.3; }
.benefit-text { grid-column: 2; grid-row: 2; font-size: 12.5px; color: var(--fg2); line-height: 1.55; }
.benefit-tile.featured {
  grid-column: span 2;
  background: linear-gradient(135deg, rgba(80,55,180,0.18), rgba(50,35,120,0.12));
  border-color: transparent;
}
.benefit-tile.featured:hover {
  outline: 2px solid #7a54ff; outline-offset: 0;
  border-color: transparent;
}
.benefit-tile.featured .benefit-strong { font-size: 18px; }
.benefit-tile.featured .benefit-arrow { margin-top: 6px; }

/* ─── STEPS (Editorial timeline) ─── */
.steps {
  padding: 180px var(--gutter) 260px; background: var(--bg2);
  position: relative; overflow: hidden;
}
.steps-watermark {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center; font-size: 18vw; font-weight: 900;
  color: rgba(255,255,255,0.014); letter-spacing: -0.05em;
  pointer-events: none; user-select: none; line-height: 1; white-space: nowrap;
}
.steps-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; position: relative; z-index: 2; }
.steps-head { grid-column: 1 / 7; margin-bottom: 64px; }
.steps-head .eyebrow { margin-bottom: 32px; }
.steps-title { font-size: clamp(36px, 4.5vw, 68px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 20px; }
.steps-title span { color: var(--plum); }
.steps-sub { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.5; letter-spacing: -0.012em; max-width: 540px; }
.steps-tag {
  grid-column: 9 / 13;
  margin-top: 80px; align-self: end;
  font-size: 12px; color: var(--fg2); line-height: 1.7;
  border-left: 2px solid var(--plum); padding-left: 18px;
}
.steps-tag b { display: block; color: #fff; font-weight: 700; margin-bottom: 6px; }

.steps-list { grid-column: 1 / 13; display: flex; flex-direction: column; }
.step-row {
  display: grid; grid-template-columns: 100px 1fr 380px;
  gap: 48px; align-items: center;
  padding: 36px 0; border-top: 1px solid var(--border);
  transition: background 300ms;
}
.step-row:last-child { border-bottom: 1px solid var(--border); }
.step-row:hover { background: linear-gradient(90deg, rgba(122,84,255,0.04), transparent); }
.step-num {
  font-size: clamp(48px, 6vw, 96px); font-weight: 900;
  letter-spacing: -0.05em; color: var(--bg2);
  -webkit-text-fill-color: var(--bg2);
  -webkit-text-stroke: 1.5px var(--plum);
  line-height: 1;
}
.step-row:hover .step-num { color: var(--plum); -webkit-text-fill-color: var(--plum); }
.step-body {}
.step-name { font-size: 22px; font-weight: 700; color: #fff; letter-spacing: -0.01em; margin-bottom: 8px; }
.step-desc { font-size: 13.5px; color: var(--fg2); line-height: 1.7; max-width: 540px; }
.step-tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.step-tag {
  font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
  background: var(--bg3); border: 1px solid var(--border);
  color: var(--fg2); padding: 5px 12px; border-radius: 999px;
}

/* ─── METRICS (huge breakout) ─── */
.metrics {
  padding: 300px var(--gutter) 220px; position: relative; overflow: hidden;
  background: var(--bg);
}
.metrics-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(122,84,255,0.16) 0%, transparent 70%);
}
.metrics-tagline {
  text-align: left;
  display: flex; flex-direction: column; gap: 0;
  position: relative; z-index: 2;
  width: fit-content; margin: 0 auto 80px;
}
.metrics-tagline span {
  display: block; font-weight: 900; line-height: 0.9;
  letter-spacing: -0.045em;
  font-size: clamp(50px, 8vw, 144px);
}
.metrics-tagline span:nth-child(2) { padding-left: clamp(40px, 6vw, 120px); }
.metrics-tagline span:nth-child(3) { padding-left: clamp(80px, 12vw, 240px); }
.metrics-tagline .t-white { color: #fff; }
.metrics-tagline .t-outline { -webkit-text-stroke: 2px var(--plum); -webkit-text-fill-color: var(--bg); color: var(--bg); }

.metrics-tiles {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  max-width: 1400px; margin: 0 auto;
  position: relative; z-index: 2;
}
.metric-tile {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 14px; padding: 40px 36px;
  position: relative; overflow: hidden;
  transition: border-color 300ms, transform 300ms;
}
.metric-tile:hover { border-color: var(--border-acc); transform: translateY(-4px); }
.metric-icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; }
.metric-icon svg { width: 100%; height: 100%; fill: none; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.metric-big { font-size: clamp(56px, 6vw, 96px); font-weight: 700; letter-spacing: -0.04em; color: #fff; line-height: 1; margin-bottom: 16px; }
.metric-label { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 6px; }
.metric-sub { font-size: 12.5px; color: var(--fg2); line-height: 1.65; }

/* ─── FAQ ─── */
.faq { padding: 180px var(--gutter) 260px; }
.faq-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 48px; align-items: start; }
.faq-head { grid-column: 1 / 5; position: sticky; top: 100px; }
.faq-head .eyebrow { margin-bottom: 32px; }
.faq-title { font-size: clamp(36px, 4vw, 56px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 20px; }
.faq-sub { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.5; letter-spacing: -0.012em; }
.faq-list { grid-column: 6 / 13; display: flex; flex-direction: column; gap: 8px; }
.faq-item { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; transition: border-color 300ms; }
.faq-item.open { border-color: var(--border-acc); }
.faq-q { width: 100%; background: none; border: none; cursor: pointer; color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 17px; text-align: left; padding: 24px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.faq-q-icon { width: 24px; height: 24px; border: 1px solid var(--border-acc); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 300ms; }
.faq-item.open .faq-q-icon { transform: rotate(45deg); background: var(--plum); border-color: transparent; }
.faq-q-icon svg { width: 10px; height: 10px; stroke: #fff; fill: none; stroke-width: 2; }
/* Grid-Template-Rows-Trick: animiert smooth auf die echte Content-Höhe, nicht auf einen fixen max-height-Wert */
.faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 380ms cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-item.open .faq-a { grid-template-rows: 1fr; }
.faq-a > .faq-a-inner {
  min-height: 0;
  overflow: hidden;
  padding: 0 28px;
  font-size: 13.5px; color: var(--fg2); line-height: 1.75;
  border-top: 1px solid transparent;
  transition: padding 380ms cubic-bezier(0.4, 0, 0.2, 1), border-color 380ms ease;
}
.faq-item.open .faq-a-inner {
  padding: 20px 28px 24px;
  border-top-color: var(--border);
}
.faq-a-inner strong { color: #fff; font-weight: 600; }

/* ─── GLOBAL FOOTPRINT ─── */
.footprint {
  padding: 240px var(--gutter) 160px; background: var(--bg2);
  border-top: 1px solid var(--border);
}
.fp-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; }
.fp-left { grid-column: 1 / 6; }
.fp-left .eyebrow { margin-bottom: 24px; }
.fp-title { font-size: clamp(32px, 3.5vw, 52px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 20px; }
.fp-sub { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.5; letter-spacing: -0.012em; margin-bottom: 40px; }
.fp-cols {
  padding-top: 32px; border-top: 1px solid var(--border);
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.fp-map-wrap { grid-column: 6 / 13; align-self: center; position: relative; }
.fp-map { width: 100%; height: auto; display: block; }
.fp-col-title { font-size: 10px; font-weight: 700; color: var(--plum); letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 16px; }
.country-pill, .lang-pill {
  font-size: 11px; font-weight: 600; color: var(--fg2);
  background: var(--bg3); border: 1px solid var(--border); border-radius: 999px;
  padding: 5px 12px; transition: border-color 200ms, color 200ms;
}
.country-pill:hover, .lang-pill:hover { border-color: var(--border-acc); color: #fff; }
.pill-wrap { display: flex; flex-wrap: wrap; gap: 6px; }

/* ─── CTA ─── */
.cta {
  padding: 220px var(--gutter); position: relative; overflow: hidden;
  background: var(--bg);
}
.cta-bg {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(122,84,255,0.16) 0%, transparent 70%);
}
.cta-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: end; position: relative; z-index: 2; }
.cta-eyebrow { grid-column: 1 / 4; }
.cta-title {
  grid-column: 1 / 13;
  font-size: clamp(50px, 8vw, 144px); font-weight: 900;
  letter-spacing: -0.045em; line-height: 0.9; margin: 32px 0 64px;
  width: fit-content; justify-self: center;
}
.cta-title .l1 { color: #fff; }
.cta-title .l2 { color: #fff; padding-left: clamp(40px, 6vw, 120px); display: block; }
.cta-title .l3 {
  display: block; padding-left: clamp(80px, 12vw, 240px);
  -webkit-text-stroke: 2px var(--plum);
  -webkit-text-fill-color: var(--bg); color: var(--bg);
}
.cta-text { grid-column: 1 / 7; font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.55; letter-spacing: -0.012em; max-width: 560px; }
.cta-actions-wrap { grid-column: 8 / 13; display: flex; flex-direction: column; gap: 18px; align-items: flex-end; }
.cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.cta-tel { font-size: 12px; color: var(--fg3); letter-spacing: 0.06em; }
.cta-tel a { color: var(--fg2); text-decoration: none; font-weight: 600; }
.cta-tel a:hover { color: #fff; }

/* ─── CTA STAGE — Multi-Step-Formular mit Slide-Transitions ─── */
.cta-stage {
  position: relative; z-index: 2;
  min-height: 580px;
}
.cta-screen {
  position: absolute; top: 0; left: 0; right: 0;
  opacity: 0;
  transform: translateX(100%);
  pointer-events: none;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1),
              opacity 500ms ease;
}
.cta-screen.is-active   { opacity: 1; transform: translateX(0);    pointer-events: auto; }
.cta-screen.is-before   { opacity: 0; transform: translateX(-100%); }

/* Initial-Screen Sonderfall: Headlines slide-out gestaffelt mit Motion-Blur */
/* Kein Parent-Opacity-Fade — sonst überlagert er die Line-Animation und das Verschwinden wirkt abrupt.
   Jedes Element bekommt eine eigene Exit-Transition. */
.cta-screen-initial { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.cta-screen-initial.is-before { pointer-events: none; }

/* Eyebrow, Sub-Text, Action-Buttons faden mit leichtem Left-Drift */
.cta-screen-initial .cta-eyebrow,
.cta-screen-initial .cta-text,
.cta-screen-initial .cta-actions-wrap {
  will-change: transform, opacity;
  transition: opacity 500ms ease, transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cta-screen-initial.is-before .cta-eyebrow,
.cta-screen-initial.is-before .cta-text,
.cta-screen-initial.is-before .cta-actions-wrap {
  opacity: 0;
  transform: translate3d(-25%, 0, 0);
}

/* Headline-Zeilen: gestaffelt nach links sliden mit Motion-Blur, ease-out für sichtbaren schnellen Start */
.cta-screen-initial .cta-title span {
  display: block;
  will-change: transform, filter, opacity;
  transition: transform 800ms cubic-bezier(0.33, 1, 0.68, 1),
              filter   650ms ease,
              opacity  650ms ease;
}
.cta-screen-initial.is-before .cta-title .l1 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 0ms,    0ms,    100ms; }
.cta-screen-initial.is-before .cta-title .l2 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 130ms,  130ms,  230ms; }
.cta-screen-initial.is-before .cta-title .l3 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 260ms,  260ms,  360ms; }

/* Form-Screen Layout — zentriert, Inhalt links-aligned */
.cta-form-screen {
  display: flex; flex-direction: column; gap: 24px;
  max-width: 720px;
  margin-left: auto; margin-right: auto;
  left: 0; right: 0;
}
/* Label-Override: in der Form sollen Select-Labels normal als Block über dem Feld sitzen,
   nicht absolut wie im Akquise-Rechner */
.cta-form-field.calc-select-wrap label {
  position: static;
  margin-bottom: 0;
}
.cta-form-head { display: flex; align-items: center; gap: 16px; }
.cta-form-back {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: var(--bg3); border: 1px solid var(--border); border-radius: 50%;
  color: var(--fg2); cursor: pointer;
  transition: border-color 200ms, color 200ms, transform 200ms;
}
.cta-form-back:hover { border-color: var(--border-acc); color: #fff; transform: translateX(-3px); }
.cta-form-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cta-form-step { font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--plum); }
.cta-form-title { font-size: clamp(28px, 3.2vw, 44px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; color: #fff; margin: 0; }

.cta-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.cta-form-field { display: flex; flex-direction: column; gap: 8px; }
.cta-form-field-full { grid-column: 1 / -1; }
.cta-form-field label {
  display: block; font-size: 10px; font-weight: 700;
  color: var(--fg3); letter-spacing: 0.18em; text-transform: uppercase;
}
/* Label-Variante in Zwischenheadlinegröße — für Nachricht-Feld */
.cta-form-field label.cta-form-sublabel {
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 500;
  color: var(--fg2);
  letter-spacing: -0.01em;
  text-transform: none;
  line-height: 1.45;
  margin-top: 8px;
}
.cta-form-field input,
.cta-form-field textarea {
  width: 100%;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 18px;
  color: #fff; font-family: 'Montserrat', sans-serif;
  font-size: 14px; line-height: 1.4;
  transition: border-color 200ms;
}
.cta-form-field textarea { min-height: 100px; resize: vertical; }
.cta-form-field input:focus,
.cta-form-field textarea:focus { outline: none; border-color: var(--plum); }
.cta-form-field input:invalid:not(:placeholder-shown),
.cta-form-field textarea:invalid:not(:placeholder-shown) { border-color: rgba(228,0,58,0.45); }
.cta-form-field.is-invalid input,
.cta-form-field.is-invalid textarea,
.cta-form-field.is-invalid .calc-select-trigger {
  border-color: var(--red);
  animation: ctaFieldShake 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97);
}
@keyframes ctaFieldShake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(3px); }
  30%, 50%, 70% { transform: translateX(-5px); }
  40%, 60% { transform: translateX(5px); }
}

.cta-form-consent { font-size: 11px; color: var(--fg3); line-height: 1.55; letter-spacing: -0.005em; margin: 0; }
.cta-form-checkbox { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.cta-form-checkbox input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  background: var(--bg3); border: 1px solid var(--border-acc); border-radius: 4px;
  cursor: pointer; position: relative;
  transition: background 150ms, border-color 150ms;
}
.cta-form-checkbox input[type="checkbox"]:checked { background: var(--plum); border-color: var(--plum); }
.cta-form-checkbox input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 5px; top: 1px;
  width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.cta-form-checkbox span { font-size: 12px; color: var(--fg2); line-height: 1.55; }

.cta-form-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Thanks-Screen */
.cta-screen-thanks {
  display: flex; flex-direction: column; align-items: flex-start; gap: 24px;
}
.cta-form-check {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: rgba(51,227,247,0.08);
  border: 1px solid rgba(51,227,247,0.25);
  display: flex; align-items: center; justify-content: center;
}
.cta-form-check svg { width: 64px; height: 64px; fill: none; }
.cta-form-check svg circle {
  stroke: #33e3f7; stroke-width: 2; stroke-dasharray: 151; stroke-dashoffset: 151;
}
.cta-form-check svg path {
  stroke: #33e3f7; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 60; stroke-dashoffset: 60;
}
.cta-screen-thanks.is-active .cta-form-check svg circle { animation: checkDrawCircle 700ms ease-out forwards; }
.cta-screen-thanks.is-active .cta-form-check svg path   { animation: checkDrawPath 500ms ease-out 500ms forwards; }
@keyframes checkDrawCircle { to { stroke-dashoffset: 0; } }
@keyframes checkDrawPath   { to { stroke-dashoffset: 0; } }
.cta-form-thanks-text { font-size: clamp(16px, 1.5vw, 18px); color: var(--fg2); max-width: 480px; line-height: 1.55; margin: 0; }

footer {
  padding: 96px var(--gutter) 200px;
  border-top: 1px solid var(--border);
  background: var(--bg);
  position: relative; overflow: hidden;
}
footer::before {
  content: ''; position: absolute; inset: 0;
  pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(122,84,255,0.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122,84,255,0.22) 1px, transparent 1px);
  background-size: 36px 36px;
  -webkit-mask-image: radial-gradient(ellipse 70% 75% at 50% 0%, #000 0%, transparent 75%);
          mask-image: radial-gradient(ellipse 70% 75% at 50% 0%, #000 0%, transparent 75%);
}
.footer-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1.4fr 1fr 1fr; gap: 48px;
  align-items: start;
  position: relative; z-index: 1;
}
.footer-col h6 {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--plum); margin-bottom: 20px;
}
.footer-brand .footer-logo { height: 48px; margin-bottom: 28px; display: block; }
.footer-brand p {
  font-size: 13px; color: var(--fg3);
  line-height: 1.7; max-width: 320px;
}
.footer-col ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.footer-col a {
  font-size: 13px; color: var(--fg2);
  text-decoration: none; transition: color 200ms;
}
.footer-col a:hover { color: #fff; }
.footer-contact-address { font-size: 13px; color: var(--fg2); line-height: 1.7; }
.footer-contact-channels { font-size: 13px; color: var(--fg2); line-height: 1.7; margin-top: 14px; }
.footer-contact-channels a { color: var(--fg2); }
.footer-bottom {
  max-width: 1400px; margin: 64px auto 0;
  padding-top: 32px; border-top: 1px solid var(--border);
  display: flex; flex-wrap: wrap; justify-content: space-between;
  align-items: center; gap: 16px;
  font-size: 11px; color: var(--fg3); letter-spacing: 0.04em;
  position: relative; z-index: 1;
}
.footer-bottom span { line-height: 1.6; }

/* ─── HERO industries marquee ─── */
.hero-industries { margin-top: 12px; display: flex; align-items: center; gap: 18px; pointer-events: none; }
.hero-industries-label { display: inline-flex; align-items: center; gap: 12px; font-size: 9px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fg3); white-space: nowrap; flex-shrink: 0; }
.hero-industries-label::before { content: ''; width: 24px; height: 1px; background: var(--fg3); flex-shrink: 0; }
.hero-industries-rail { flex: 1; position: relative; overflow: hidden;
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 35%, transparent 63%);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 35%, transparent 63%); }
.hero-industries-track { display: inline-flex; gap: 12px; animation: industriesScroll 40s linear infinite; white-space: nowrap; }
.hero-ind { display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,0.02); font-size: 13px; font-weight: 600; color: var(--fg2); letter-spacing: -0.005em; line-height: 1; white-space: nowrap; }
.hero-ind::before {
  content: ''; width: 12px; height: 12px; flex-shrink: 0;
  background: var(--plum);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><polyline points='3 9 7 12.5 13 4' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><polyline points='3 9 7 12.5 13 4' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
}
.hero-ind .hero-ind-meta { font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); }
@keyframes industriesScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.hero-industries:hover .hero-industries-track { animation-play-state: paused; }

/* ─── ERFOLGSFAKTOREN (Gates-Style: nummerierte Kreise mit Verbindungslinie) ─── */
.factors { padding: 200px var(--gutter); background: var(--bg); position: relative; overflow: hidden; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.factors-watermark { position: absolute; top: 50%; right: -2vw; transform: translateY(-50%); font-size: 16vw; font-weight: 900; color: rgba(255,255,255,0.018); letter-spacing: -0.05em; pointer-events: none; user-select: none; line-height: 1; white-space: nowrap; }

.factors-head { max-width: 800px; margin: 0 auto 80px; text-align: center; position: relative; z-index: 2; }
.factors-head .eyebrow { margin-bottom: 32px; justify-content: center; display: inline-flex; }
.factors-head .eyebrow::before { display: none; }
.factors-head .eyebrow::after { content: ''; width: 28px; height: 1px; background: var(--plum); flex-shrink: 0; }
.factors-title { font-size: clamp(40px, 5vw, 72px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 24px; }
.factors-title span { color: var(--plum); }
.factors-sub { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.5; letter-spacing: -0.012em; max-width: 620px; margin: 0 auto; }

.factors-rail { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 1400px; margin: 0 auto; z-index: 2; }
.factors-rail::before { content: ''; position: absolute; top: 112px; left: 10%; right: 10%; height: 2px; background: linear-gradient(to right, transparent, var(--border-acc) 8%, var(--border-acc) 92%, transparent); z-index: 0; }
.factor-col { position: relative; z-index: 2; cursor: default; }
.factor-icon { width: 64px; height: 64px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; }
.factor-icon img { width: 100%; height: 100%; object-fit: contain; opacity: 0.85; transition: opacity 300ms; }
.factor-col:hover .factor-icon img, .factor-col.active .factor-icon img { opacity: 1; }
.factor-dot { width: 64px; height: 64px; border-radius: 50%; background: var(--bg); border: 2px solid var(--border-acc); display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; font-size: 18px; font-weight: 700; color: var(--plum); transition: all 300ms; }
.factor-col:hover .factor-dot, .factor-col.active .factor-dot { background: var(--plum); color: #fff; border-color: var(--plum); box-shadow: 0 0 0 6px rgba(122,84,255,0.18), 0 0 30px rgba(122,84,255,0.4); }
.factor-name { font-size: 15px; font-weight: 700; color: #fff; text-align: center; margin-bottom: 6px; letter-spacing: -0.01em; line-height: 1.3; }
.factor-tag { font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); text-align: center; margin-bottom: 16px; }
.factor-card { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 18px 20px; transition: border-color 300ms; }
.factor-col:hover .factor-card { border-color: var(--border-acc); }
.factor-text { font-size: 13px; color: var(--fg2); line-height: 1.65; }

/* ─── AKQUISERECHNER ─── */
.calc {
  padding: 180px var(--gutter);
  background: var(--bg2);
  position: relative; overflow: hidden;
  border-top: 1px solid var(--border);
}
.calc-inner { max-width: 1400px; margin: 0 auto; display: flex; flex-direction: column; gap: 56px; }
.calc-head { max-width: 640px; }
.calc-head .eyebrow { margin-bottom: 28px; }
.calc-title { font-size: clamp(32px, 4vw, 60px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 16px; }
.calc-title span { color: #fff; }
.calc-sub { font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.55; letter-spacing: -0.012em; }

/* 50/50 split: inputs left — outputs right */
.calc-body { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; position: relative; }
.calc-left { display: flex; flex-direction: column; gap: 16px; }
.calc-right { display: flex; flex-direction: column; gap: 16px; }

/* Selects — Label schwebt über der Oberkante, damit linke + rechte Spalte oben bündig sind */
.calc-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.calc-select-wrap { position: relative; }
.calc-select-wrap label {
  position: absolute; bottom: calc(100% + 8px); left: 0;
  display: block; font-size: 10px; font-weight: 700; color: var(--fg3);
  letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap;
}
.calc-select-wrap .sel-outer { position: relative; }
.calc-select-wrap select { display: none; }

.calc-select-trigger {
  width: 100%; background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 18px; color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 500;
  cursor: pointer; text-align: left;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  transition: border-color 200ms, background 200ms;
}
.calc-select-trigger:hover { border-color: var(--border-acc); }
.calc-select-trigger[aria-expanded="true"] { border-color: var(--plum); background: rgba(122,84,255,0.06); }
.calc-select-trigger .select-value { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calc-select-trigger .select-arrow {
  width: 0; height: 0; flex-shrink: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--fg3);
  transition: transform 220ms ease, border-top-color 220ms;
}
.calc-select-trigger[aria-expanded="true"] .select-arrow {
  transform: rotate(180deg);
  border-top-color: var(--plum);
}

.calc-select-list {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--bg3);
  border: 1px solid rgba(122,84,255,0.3);
  border-radius: 12px;
  padding: 6px;
  list-style: none; margin: 0;
  z-index: 100;
  max-height: 280px; overflow-y: auto;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
  box-shadow: 0 16px 50px rgba(0,0,0,0.55);
}
.calc-select-list.open { opacity: 1; visibility: visible; transform: translateY(0); }
.calc-select-list::-webkit-scrollbar { width: 6px; }
.calc-select-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 999px; }
.calc-select-option {
  padding: 11px 14px; border-radius: 8px;
  font-size: 13px; font-weight: 500;
  color: var(--fg2); cursor: pointer;
  transition: background 150ms, color 150ms;
}
.calc-select-option:hover { background: rgba(122,84,255,0.12); color: #fff; }
.calc-select-option.selected { background: rgba(122,84,255,0.18); color: var(--plum); font-weight: 600; }

/* Slider cards — vertically stacked in left column */
.calc-slider-card {
  background: var(--bg3); border: 1px solid var(--border); border-radius: 14px;
  padding: 22px 24px; display: flex; flex-direction: column; gap: 8px;
  transition: border-color 200ms;
}
.calc-slider-card:hover { border-color: var(--border-acc); }
.calc-slider-card h5 { font-size: 13px; font-weight: 700; color: #fff; line-height: 1.3; }
.calc-slider-card > p { font-size: 12px; color: var(--fg2); line-height: 1.5; }
.calc-slider-card input[type="range"] {
  width: 100%; appearance: none; -webkit-appearance: none;
  height: 3px; background: rgba(255,255,255,0.12); border-radius: 999px;
  cursor: pointer; margin: 8px 0 2px; accent-color: var(--plum);
}
.calc-slider-card input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%;
  background: var(--plum); cursor: pointer; box-shadow: 0 0 12px rgba(122,84,255,0.5);
}
.calc-slider-card input[type="range"]::-moz-range-thumb {
  width: 18px; height: 18px; border-radius: 50%; border: none; background: var(--plum); cursor: pointer;
}
.range-value { font-size: 20px; font-weight: 700; color: var(--plum); letter-spacing: -0.02em; line-height: 1; }

/* Stats card — 3 rows with dividers in right column */
.calc-stats {
  background: var(--bg3); border: 1px solid var(--border); border-radius: 14px; overflow: hidden;
}
.calc-stat-item {
  padding: 22px 28px; border-bottom: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 5px;
}
.calc-stat-item:last-child { border-bottom: none; }
.c-num { font-size: clamp(26px, 2.4vw, 38px); font-weight: 700; color: #fff; letter-spacing: -0.03em; line-height: 1; }
.c-lbl { font-size: 11px; font-weight: 600; color: var(--fg3); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }

/* Umsatz highlight — fills remaining space in right column */
.calc-umsatz {
  background: linear-gradient(135deg, rgba(80,55,180,0.22), rgba(50,35,120,0.18));
  border: none; border-radius: 24px;
  padding: 40px 36px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  position: relative; overflow: hidden;
}
.calc-umsatz::after { content: ''; position: absolute; inset: -50%; background: radial-gradient(ellipse 40% 50% at 70% 30%, rgba(122,84,255,0.25), transparent 60%); pointer-events: none; }
.calc-umsatz-chart {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  pointer-events: none; z-index: 1;
  opacity: 0; transition: opacity 600ms ease;
}
.calc-umsatz.has-chart .calc-umsatz-chart { opacity: 1; }
.calc-umsatz p { font-size: 13px; color: var(--fg2); line-height: 1.7; position: relative; z-index: 2; }
.calc-umsatz-num {
  font-size: clamp(40px, 4.5vw, 76px); font-weight: 700;
  color: #fff; letter-spacing: -0.04em; line-height: 1; margin: 4px 0 12px;
  position: relative; z-index: 2;
}
.calc-umsatz-num .neuumsatz { color: #fff; }
.calc-umsatz .btn { position: relative; z-index: 2; }

.calc-chart-legend {
  display: flex; gap: 20px; flex-wrap: wrap;
  padding: 0 4px;
  font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
  color: var(--fg3);
}
.calc-chart-legend-item { display: inline-flex; align-items: center; gap: 8px; }
.calc-chart-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.calc-chart-dot-inv { background: #e4003a; }
.calc-chart-dot-rev { background: #7a54ff; }

/* Lock-State — Felder unscharf bis beide Selects gewählt sind */
.calc-slider-card, .calc-stats, .calc-umsatz, .calc-chart-legend {
  transition: filter 450ms ease, opacity 450ms ease, border-color 200ms;
}
.calc-body.calc-locked .calc-slider-card,
.calc-body.calc-locked .calc-stats,
.calc-body.calc-locked .calc-umsatz,
.calc-body.calc-locked .calc-chart-legend {
  filter: blur(7px);
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
}

/* Unlock-Hinweis-Pfeil — sitzt über dem blurry Slider-Bereich, Spitze zeigt UP zur Mitte der zwei Selects */
.calc-unlock-hint {
  position: absolute;
  top: 76px;
  left: 0;
  width: calc(50% - 16px);   /* = Breite von .calc-left (50% des body - halbes gap) */
  height: 170px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 450ms ease;
  z-index: 4;
}
.calc-body.calc-locked .calc-unlock-hint { opacity: 1; transition-delay: 200ms; }
/* SVG hat viewBox 86.5 × 153.9 (portrait). Tip Apex liegt bei viewBox-x = 14.8 (= 17.1 % vom SVG-Linksrand). */
/* Width 80px, height = 80 × 153.9/86.5 ≈ 142px. Tip-x in render = 0.171 × 80 = 13.7px vom SVG-Linksrand. */
/* SVG mit left: 50% positionieren und mit margin-left: -13.7px die Tip-Spitze auf 50 % Container-Breite anchorn. */
.calc-unlock-hint-arrow {
  position: absolute;
  top: 0;
  left: 50%;
  width: 80px;
  height: 142px;
  margin-left: -14px;
}
.calc-unlock-hint-text {
  position: absolute;
  bottom: 12px;
  left: calc(50% + 70px);   /* rechts vom Pfad-Ende (Tail), nicht am Container-Rand */
  font-size: 10px; font-weight: 700;
  color: var(--fg3);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ─── CONTENT-WIDTH GUARD — alle Sektionen-Innencontainer auf 1400px begrenzen ───
   Ausgenommen: Hero (eigenes Asymmetrie-Layout), Image-Strips + Logo-Marquee (full-bleed gewollt),
   Footer (eigene 1400px-Container). */
.problem-grid,
.solution-grid,
.steps-grid,
.editorial-grid,
.faq-grid,
.fp-grid,
.cta-stage {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

/* ─── EDGE BLUR (progressive top/bottom blur strips) ─── */
.edge-blur {
  position: fixed; left: 0; right: 0;
  height: 140px; pointer-events: none; z-index: 50;
}
.edge-blur-top { top: 0; }
.edge-blur-bottom { bottom: 0; transform: scaleY(-1); }
.edge-blur-layer { position: absolute; inset: 0; }
.edge-blur-layer:nth-child(1) {
  backdrop-filter: blur(0.5px); -webkit-backdrop-filter: blur(0.5px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 100%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 100%);
}
.edge-blur-layer:nth-child(2) {
  backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 87.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 87.5%);
}
.edge-blur-layer:nth-child(3) {
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 62.5%, transparent 75%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 62.5%, transparent 75%);
}
.edge-blur-layer:nth-child(4) {
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 50%, transparent 62.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 50%, transparent 62.5%);
}
.edge-blur-layer:nth-child(5) {
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 37.5%, transparent 50%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 37.5%, transparent 50%);
}
.edge-blur-layer:nth-child(6) {
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 25%, transparent 37.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 25%, transparent 37.5%);
}
.edge-blur-layer:nth-child(7) {
  backdrop-filter: blur(32px); -webkit-backdrop-filter: blur(32px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 12.5%, transparent 25%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 12.5%, transparent 25%);
}

/* ─── ANIMATIONS ─── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 700ms ease, transform 700ms ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 100ms; }
.reveal-delay-2 { transition-delay: 200ms; }
.reveal-delay-3 { transition-delay: 300ms; }
.reveal-delay-4 { transition-delay: 400ms; }

/* Animierte Verbindungslinien (dezenter Flow vom HQ zu den Ländern) */
.arc-flow {
  fill: none;
  stroke: #ffffff;
  stroke-width: 0.7;
  stroke-dasharray: 3 14;
  stroke-linecap: round;
  opacity: 0.32;
  animation: arcFlow 6s linear infinite;
}
@keyframes arcFlow {
  to { stroke-dashoffset: -34; }
}
@media (prefers-reduced-motion: reduce) {
  .arc-flow { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — drei Breakpoints
   ≤ 1100px  Tablet:  asymmetrische Grids stacken, Sticky → static
   ≤ 768px   Mobile:  Single-Column, Gutter reduziert, Hero vertikal
   ≤ 480px   Phone:   weitere Verdichtung
   ═══════════════════════════════════════════════════════════════════ */

/* ─── ≤ 1100px — Tablet ──────────────────────────────────────────── */
@media (max-width: 1100px) {
  :root { --gutter: 40px; }

  /* Sektions-Paddings reduzieren */
  .hero       { padding: 100px var(--gutter) 80px; min-height: auto; }
  /* Hero-Bild schmaler, damit der Content links mehr Luft kriegt */
  .hero-bg    { width: 48%; }
  .hero-content { padding-top: 100px; }
  .hero-stats { bottom: 32px; right: var(--gutter); }
  .problem,
  .steps      { padding: 100px var(--gutter) 160px; }
  .solution,
  .faq,
  .calc       { padding: 120px var(--gutter); }
  .factors    { padding: 120px var(--gutter); }
  .editorial,
  .metrics,
  .cta        { padding: 140px var(--gutter); }
  .footprint  { padding: 140px var(--gutter) 100px; }
  .metrics    { padding-top: 200px; }

  /* Hero bleibt im Desktop-Layout (Foto rechts mit Mask, Content links) —
     erst ab Mobile (768px) wird gestackt. */

  /* Problem: Pain-Side + Win-Card untereinander */
  .problem-content { display: flex; flex-direction: column; gap: 32px; }
  .pain-side       { width: 100%; }
  .win-card        { width: 100%; padding: 36px 32px; }
  .win-connector   { display: none; }
  /* Treppen-Versatz der Pain-Rows zurückrollen — sieht auf Tablet kaputt aus */
  .pain-row:nth-child(n) { margin-left: 0 !important; }

  /* Solution: Sticky off, Tiles 2-col */
  .solution-grid  { display: block; }
  .sol-left       { position: static; max-width: 720px; margin-bottom: 48px; }
  .sol-right      { grid-template-columns: 1fr 1fr; }

  /* Factors-Rail 2-col, Verbindungslinie weg */
  .factors-rail        { grid-template-columns: 1fr 1fr; gap: 32px 16px; }
  .factors-rail::before { display: none; }

  /* Steps: Tags unter den Step-Body, Num bleibt links */
  .step-row    { grid-template-columns: 80px 1fr; gap: 24px; }
  .step-tags   { grid-column: 1 / -1; justify-content: flex-start; padding-top: 4px; }
  .steps-head  { grid-column: 1 / -1; }
  .steps-tag   { grid-column: 1 / -1; margin-top: 0; }

  /* Metrics 1-Spalt (3 untereinander wirkt auf Tablet besser) */
  .metrics-tiles { grid-template-columns: 1fr; gap: 12px; }

  /* Akquise-Rechner 50/50 → stacked */
  .calc-body            { grid-template-columns: 1fr; gap: 28px; }
  .calc-selects         { grid-template-columns: 1fr 1fr; }
  .calc-unlock-hint     { display: none; }

  /* FAQ: Sticky off, 1-Spalt */
  .faq-grid  { grid-template-columns: 1fr; gap: 32px; }
  .faq-head  { position: static; }
  .faq-list  { grid-column: auto; }

  /* Footprint stacken */
  .fp-grid     { grid-template-columns: 1fr; }
  .fp-left,
  .fp-map-wrap { grid-column: auto; }
  .fp-map      { max-width: 720px; margin: 0 auto; }

  /* CTA Treppen-Headline kompakter */
  .cta-title .l2,
  .editorial-text span:nth-child(2),
  .metrics-tagline span:nth-child(2) { padding-left: clamp(20px, 4vw, 60px); }
  .cta-title .l3,
  .editorial-text span:nth-child(3),
  .metrics-tagline span:nth-child(3) { padding-left: clamp(40px, 8vw, 120px); }

  /* CTA Action-Wrap untereinander zentriert */
  .cta-grid          { grid-template-columns: 1fr; }
  .cta-eyebrow,
  .cta-text          { grid-column: 1 / -1; }
  .cta-actions-wrap  { grid-column: 1 / -1; align-items: stretch; }
  .cta-actions       { justify-content: flex-start; }

  /* Footer 4 → 2 Spalten */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px 32px; }

  /* Logos-Marquee enger */
  .logo-img { height: 36px; margin-right: 48px; }
}

/* ─── ≤ 768px — Mobile ──────────────────────────────────────────── */
@media (max-width: 768px) {
  :root { --gutter: 20px; }

  /* Sektions-Paddings weiter reduzieren */
  .hero       { padding: 80px var(--gutter) 60px; }
  .problem,
  .steps,
  .solution,
  .faq,
  .calc,
  .factors    { padding: 80px var(--gutter); }
  .editorial,
  .metrics,
  .cta        { padding: 100px var(--gutter); }
  .metrics    { padding-top: 140px; }
  .footprint  { padding: 100px var(--gutter) 80px; }
  footer      { padding: 64px var(--gutter) 120px; }

  /* Nav: Links ausblenden — bewusst keine Burger, Standalone-Page */
  .nav-links { display: none; }
  nav        { height: 64px; }
  .nav-logo  { height: 32px; }

  /* Outline-Stroke dünner — sonst zu fett bei kleinen Schriften */
  .hero-line-2,
  .editorial-text .t-outline,
  .metrics-tagline .t-outline,
  .cta-title .l3,
  .step-num { -webkit-text-stroke-width: 1.5px; }

  /* Hero stackt: Foto oben (full-width), Content drunter */
  .hero { display: block; min-height: auto; }
  .hero-bg {
    position: relative; top: auto; right: auto; bottom: auto;
    width: 100%; height: 56vh; min-height: 360px;
  }
  .hero-bg img {
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 8%, #000 28%, #000 80%, rgba(0,0,0,0.4) 96%, transparent 100%);
            mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 8%, #000 28%, #000 80%, rgba(0,0,0,0.4) 96%, transparent 100%);
  }
  .hero-bg::after {
    background:
      linear-gradient(180deg, var(--bg) 0%, rgba(8,8,16,0.35) 24%, transparent 50%, rgba(8,8,16,0.7) 100%);
  }
  .hero-content { padding-top: 24px; gap: 20px; }
  .hero-actions     { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { justify-content: center; width: 100%; }

  /* Hero-Stats: minimalistisch unten im Bild — kein Glas, keine Badge.
     Über negativen Margin auf den unteren Bildrand zurückgeholt, damit
     sie nicht in den Button-Bereich rutschen. */
  .hero-stats {
    position: relative;
    margin: -56px var(--gutter) 0;
    top: auto; bottom: auto; left: auto; right: auto;
    flex-direction: row; gap: 24px; z-index: 3;
    pointer-events: none;
  }
  .hero-stat {
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
    border-radius: 0;
    padding: 0;
    max-width: none;
    font-size: 10px; font-weight: 500;
    color: rgba(255,255,255,0.78);
    letter-spacing: 0.02em; line-height: 1.3;
    text-shadow: 0 1px 8px rgba(0,0,0,0.6);
  }
  .hero-stat strong {
    display: inline; margin: 0 5px 0 0;
    font-size: 13px; font-weight: 700; color: #fff;
    text-shadow: 0 1px 10px rgba(0,0,0,0.7);
  }

  /* Hero-Industries-Marquee Edge-Fade enger */
  .hero-industries-rail {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 70%, transparent 100%);
            mask-image: linear-gradient(to right, transparent, #000 6%, #000 70%, transparent 100%);
  }

  /* Edge-Blur Höhe halbieren */
  .edge-blur { height: 90px; }

  /* Win-Card kompakter */
  .win-card       { padding: 28px 24px; }
  .win-stats      { flex-wrap: wrap; gap: 20px 28px; padding-top: 20px; }
  .win-stat-num   { font-size: 1.5rem; }

  /* Solution: Tile-Grid 1-Spalt */
  .sol-right             { grid-template-columns: 1fr; }
  .benefit-tile.featured { grid-column: auto; }

  /* Factors: 1-Spalt */
  .factors-rail   { grid-template-columns: 1fr; gap: 32px; max-width: 480px; }
  .factor-icon    { width: 56px; height: 56px; }
  .factor-dot     { width: 56px; height: 56px; }

  /* Steps: Num über Body, kompakter */
  .step-row    { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
  .step-num    { font-size: clamp(40px, 14vw, 64px); }
  .step-tags   { padding-top: 0; }
  .steps-tag   { font-size: 11px; padding-left: 14px; }
  .steps-head  { margin-bottom: 32px; }

  /* Metrics-Tiles kompakter */
  .metric-tile { padding: 32px 28px; }
  .metric-big  { font-size: clamp(48px, 14vw, 72px); }

  /* Akquise-Rechner: Slider-Cards minimaler */
  .calc-selects        { grid-template-columns: 1fr; gap: 32px; }
  .calc-select-wrap label { position: static; margin-bottom: 8px; }
  .calc-slider-card    { padding: 18px 20px; }
  .calc-stats          { padding: 0; }
  .calc-stat-item      { padding: 18px 22px; }
  .calc-umsatz         { padding: 32px 28px; }

  /* FAQ-Frage kleiner */
  .faq-q { padding: 20px 22px; font-size: 15px; }
  .faq-a-inner       { padding: 0 22px; }
  .faq-item.open .faq-a-inner { padding: 16px 22px 20px; }

  /* Editorial / Metrics / CTA — Big-Claim-Treppe deutlich kleiner */
  .editorial-text span,
  .metrics-tagline span,
  .cta-title span,
  .cta-title { font-size: clamp(40px, 12vw, 72px); }
  .editorial-text span:nth-child(2),
  .metrics-tagline span:nth-child(2),
  .cta-title .l2 { padding-left: clamp(16px, 4vw, 32px); }
  .editorial-text span:nth-child(3),
  .metrics-tagline span:nth-child(3),
  .cta-title .l3 { padding-left: clamp(32px, 8vw, 64px); }

  /* Image-Strip Captions kompakter */
  .image-strip               { height: 50vh; min-height: 340px; }
  .image-strip-caption       { left: var(--gutter); right: var(--gutter); bottom: 24px; grid-template-columns: 1fr; }
  .image-strip-eyebrow       { grid-column: 1; grid-row: 1; }
  .image-strip-quote         { grid-column: 1; grid-row: 2; font-size: clamp(18px, 5vw, 24px); }
  .image-strip-meta          { grid-column: 1; grid-row: 3; text-align: left; align-self: start; margin-top: 8px; }
  .image-strip-meta::before  { margin: 0 auto 8px 0; }

  /* CTA-Form: 1-Spalt, Aktions zentriert */
  .cta-form-screen      { padding: 0 4px; }
  .cta-form-grid        { grid-template-columns: 1fr; gap: 18px; }
  .cta-form-title       { font-size: clamp(24px, 7vw, 32px); }
  .cta-form-actions     { flex-direction: column; }
  .cta-form-actions .btn { width: 100%; justify-content: center; }
  .cta-stage            { min-height: 720px; }

  /* Footer 1-Spalt */
  .footer-grid    { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom  { flex-direction: column; align-items: flex-start; }

  /* Logos-Marquee kompakter */
  .logos-band { padding: 48px var(--gutter) 24px; }
  .logos-flex { flex-direction: column; align-items: stretch; gap: 16px; }
  .logos-divider { display: none; }
  .logo-img { height: 28px; margin-right: 36px; }

  /* Hero-Industries-Marquee weniger Höhe */
  .hero-ind { padding: 9px 16px; font-size: 12px; }
}

/* ─── ≤ 480px — Phone ──────────────────────────────────────────── */
@media (max-width: 480px) {
  /* Hero kompakteste Variante */
  .hero-line-1,
  .hero-line-2 { font-size: clamp(40px, 12vw, 64px); }
  .hero-sub    { font-size: 16px; }
  .hero-stats  { gap: 8px; }
  .hero-stat   { padding: 12px 16px; font-size: 11px; }
  .hero-stat strong { font-size: 22px; }

  /* Big-Claim noch eine Stufe runter */
  .editorial-text span,
  .metrics-tagline span,
  .cta-title span,
  .cta-title { font-size: clamp(36px, 11vw, 56px); }

  /* Win-Stats umbrechen sauber */
  .win-stats > div { flex: 1 1 calc(50% - 14px); min-width: 0; }

  /* Section-Headlines sanft kappen */
  .problem-headline,
  .sol-heading,
  .factors-title,
  .steps-title,
  .calc-title,
  .faq-title,
  .fp-title { font-size: clamp(28px, 8vw, 40px); }

  /* Calc-Umsatz Highlight kompakter */
  .calc-umsatz-num { font-size: clamp(32px, 10vw, 48px); }

  /* CTA-Form: Multi-Step-Stage höher (Felder + Consent + Hidden) */
  .cta-stage    { min-height: 820px; }
  .cta-form-consent { font-size: 10.5px; }

  /* Footer eng */
  .footer-brand .footer-logo { height: 36px; }

  /* Image-Strip Quote noch kleiner */
  .image-strip-quote { font-size: clamp(16px, 5vw, 20px); }
}
