/* ===========================================
   HERO — Split Layout (Light)
   =========================================== */
.hero {
  position: relative;
  background: var(--dark-bg);
  color: var(--dark-fg);
  overflow: hidden;
  isolation: isolate;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

/* ── Hero Center (schlicht, hell/gold, typo-getrieben) ───────────────── */
.hero--center {
  background: #FAFAF8;
  color: var(--fg);
}
.hero--center .hero-bg::after { display: none; }
.hero--center .hero-orb--1 {
  background: radial-gradient(circle, rgba(201,168,76,0.16) 0%, transparent 65%);
  width: 1000px; height: 1000px;
  top: -32%; left: 50%; right: auto;
  transform: translateX(-50%);
  opacity: 1;
  animation: orb-drift 24s ease-in-out infinite;
}
.hero--center .hero-orb--2 {
  background: radial-gradient(circle, rgba(30,58,110,0.07) 0%, transparent 65%);
  width: 760px; height: 760px;
  bottom: -24%; left: -8%;
  opacity: 1;
  animation: orb-drift 30s ease-in-out infinite reverse;
}
.hero--center .hero-orb--3 { display: none; }

.hero-split-inner {
  max-width: 880px;
  margin: 0 auto;
  padding: calc(var(--nav-h) + var(--space-9)) var(--space-6) var(--space-9);
  display: flex;
  justify-content: center;
  width: 100%;
}

/* ── Hero Inhalt (zentriert) ──────────────────────────────── */
.hero-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-5);
  position: relative;
  z-index: 1;
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-muted);
}
.hk-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent);
  flex-shrink: 0;
  animation: hkPulse 2s ease-in-out infinite;
}
@keyframes hkPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.65); }
}

/* Word Cycle — block, fixed height, opacity-only */
.word-cycle {
  display: block;
  position: relative;
  height: 1.15em;
  overflow: hidden;
  margin: 0.05em 0;
}
.wc-word {
  position: absolute;
  top: 0; left: 0;
  font-style: italic;
  color: var(--accent);
  -webkit-text-fill-color: var(--accent);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  opacity: 0;
  /* kurz halten: bei 0.5s überlagern sich altes+neues Wort sichtbar (Buchstabenmatsch) */
  transition: opacity 0.22s ease;
  white-space: nowrap;
}
.wc-word.is-active { opacity: 1; }

.hero--center .hero-h1 {
  font-size: clamp(40px, 4vw + 20px, 76px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.08;
  color: var(--fg);
  margin: 0;
  overflow: visible;
  text-wrap: balance;
}

.hero--center .word-cycle { display: block; width: 100%; }
.hero--center .word-cycle .wc-word { left: 0; right: 0; text-align: center; }

.hero--center .hero-sub {
  font-size: clamp(16px, 0.8vw + 14px, 19px);
  color: var(--fg-muted);
  line-height: 1.7;
  max-width: 54ch;
  margin: 0 auto;
}

.hero--center .hero-cta {
  display: flex;
  gap: var(--space-3);
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

/* Outline-Button für hellen Hintergrund */
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 22px;
  border-radius: var(--radius-full);
  border: 1.5px solid rgba(26,26,46,0.20);
  background: transparent;
  color: var(--fg);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}
.btn-outline:hover {
  border-color: rgba(26,26,46,0.40);
  background: rgba(26,26,46,0.04);
}

.hero--center .hero-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  padding-top: var(--space-2);
}
.hero-trust-img {
  height: 30px;
  width: auto;
  opacity: 0.55;
  filter: grayscale(60%);
  transition: opacity 0.2s, filter 0.2s;
  border-radius: 6px;
}
.hero-trust-img:hover { opacity: 1; filter: none; }

/* Referenz-Chip: echtes Kundenprojekt, verlinkt auf die Case Study */
.hero-trust-case {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px 8px 10px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.6);
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}
.hero-trust-case:hover { border-color: rgba(201,168,76,0.5); background: #fff; }
.hero-trust-case .hero-trust-img { height: 34px; opacity: 1; filter: none; }
.htc-text { display: flex; flex-direction: column; text-align: left; line-height: 1.35; }
.htc-text strong { font-size: 13px; color: var(--fg); font-weight: 600; }
.htc-text span { font-size: 12px; color: var(--fg-muted); }
.hero-trust-case:hover .htc-text span { color: #8F7326; }

/* Mobile */
@media (max-width: 900px) {
  .hero-split-inner {
    padding: calc(var(--nav-h) + var(--space-7)) var(--space-5) var(--space-8);
  }
  .hero--center .hero-h1 { font-size: clamp(34px, 8vw, 52px); }
}

/* ===========================================
   HERO — Hand-Variante (Split + Hand-Stage)
   =========================================== */
.hero--hand .hero-split-inner {
  max-width: 1180px;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  align-items: center;
  gap: var(--space-7);
  text-align: left;
}
.hero--hand .hero-left { align-items: flex-start; text-align: left; }
.hero--hand .word-cycle .wc-word { left: 0; right: auto; text-align: left; }
.hero--hand .hero-sub  { margin: 0; }
.hero--hand .hero-cta,
.hero--hand .hero-trust { justify-content: flex-start; }

.hero-right {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  min-height: 520px;
}
.hero-hand-stage {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* Warmer Gold-Spot hinter der Hand */
.hand-glow {
  position: absolute;
  left: 50%; top: 48%;
  width: 560px; height: 560px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 50% 50%,
    rgba(201,168,76,0.34) 0%, rgba(201,168,76,0.12) 38%, transparent 68%);
  z-index: 0;
  pointer-events: none;
}
.hand-glow::after {
  content: "";
  position: absolute;
  inset: 16%;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,0.16);
}

.hero-hand-figure {
  position: relative;
  z-index: 1;
  margin: 0;
  width: clamp(280px, 32vw, 400px);
  filter: drop-shadow(0 28px 48px rgba(40,30,10,0.30));
  animation: hand-float 6s ease-in-out infinite;
  will-change: transform;
}
.hero-hand-img { display: block; width: 100%; height: auto; }

/* Realistisches Telefon-Display (volle Glasfläche) */
.hero-phone-screen {
  position: absolute;
  left: 12.5%; top: 2.8%;
  width: 44.5%; height: 57.5%;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(180deg, #0b0f1c 0%, #11162a 100%);
  box-shadow: 0 0 28px rgba(201,168,76,0.30), inset 0 0 0 1px rgba(255,255,255,0.07);
  display: flex;
  flex-direction: column;
  font-size: clamp(6.5px, 0.85vw, 9.5px);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #fff;
  line-height: 1.3;
}

/* Statusleiste */
.hps-statusbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.7em 1em 0.25em;
  font-size: 0.85em; font-weight: 600; letter-spacing: .02em;
}
.hps-sysicons { display: inline-flex; align-items: center; gap: 0.35em; }
.hps-ic { height: 0.85em; width: auto; fill: #fff; }
.hps-batt {
  position: relative; width: 1.5em; height: 0.78em; border-radius: 2px;
  border: 1px solid rgba(255,255,255,.6);
  background: linear-gradient(90deg, #fff 72%, transparent 72%);
  background-clip: content-box; padding: 1px;
}
.hps-batt::after {
  content: ""; position: absolute; right: -2px; top: 30%; height: 40%; width: 1.5px;
  background: rgba(255,255,255,.6); border-radius: 1px;
}

/* App-Kopf */
.hps-appbar {
  display: flex; align-items: center; gap: 0.55em;
  padding: 0.45em 0.85em 0.6em;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.hps-back { color: rgba(255,255,255,.7); font-size: 1.5em; line-height: 1; margin-right: -0.15em; }
.hps-avatar {
  width: 2.1em; height: 2.1em; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--accent) 0%, #d9b85a 100%);
  color: #1a1206; font-weight: 700; font-size: 0.95em;
}
.hps-meta { display: flex; flex-direction: column; line-height: 1.25; }
.hps-meta strong { font-size: 1em; font-weight: 600; }
.hps-meta em { font-style: normal; font-size: 0.78em; color: #9be15d; display: inline-flex; align-items: center; gap: 0.3em; }
.hps-meta em i { width: 0.45em; height: 0.45em; border-radius: 50%; background: #9be15d; box-shadow: 0 0 4px #9be15d; }

/* Nachrichten */
.hps-msgs {
  flex: 1; display: flex; flex-direction: column; justify-content: flex-end;
  gap: 0.45em; padding: 0.7em 0.8em; overflow: hidden;
}
.hps-bubble {
  max-width: 82%; padding: 0.5em 0.7em; border-radius: 0.9em;
  font-size: 0.92em; line-height: 1.35; word-wrap: break-word;
}
.hps-bot  { align-self: flex-start; background: rgba(255,255,255,0.09); color: #e9ecf5; border-bottom-left-radius: 0.2em; }
.hps-user { align-self: flex-end; background: linear-gradient(135deg, var(--accent) 0%, #d9b85a 100%); color: #1a1206; border-bottom-right-radius: 0.2em; }
.hps-typing { display: inline-flex; gap: 0.3em; align-self: flex-start; }
.hps-typing span {
  width: 0.42em; height: 0.42em; border-radius: 50%;
  background: rgba(255,255,255,0.55); animation: hps-blink 1.2s infinite;
}
.hps-typing span:nth-child(2) { animation-delay: .2s; }
.hps-typing span:nth-child(3) { animation-delay: .4s; }

/* Eingabeleiste */
.hps-inputbar {
  display: flex; align-items: center; gap: 0.5em;
  padding: 0.5em 0.7em 0.8em;
}
.hps-field {
  flex: 1; padding: 0.55em 0.8em; border-radius: 1em;
  background: rgba(255,255,255,0.08); color: rgba(255,255,255,.45);
  font-size: 0.85em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.hps-send {
  width: 1.9em; height: 1.9em; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--accent) 0%, #d9b85a 100%);
}
.hps-send svg { width: 0.95em; height: 0.95em; fill: #1a1206; }

/* Glas-Reflexion */
.hps-sheen {
  position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(125deg,
    rgba(255,255,255,0.12) 0%, rgba(255,255,255,0) 30%,
    rgba(255,255,255,0) 82%, rgba(255,255,255,0.05) 100%);
}

@keyframes hand-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

/* Hand „fliegt" beim Scrollen zum Chat-Button (JS steuert Position) */
.hero-hand-figure.is-flying {
  animation: none;
  z-index: 60;
  pointer-events: none;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
}
/* Tap-Welle am Chat-Button */
.hand-tap-ripple {
  position: fixed;
  width: 84px; height: 84px;
  margin: -42px 0 0 -42px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  background: radial-gradient(circle, rgba(201,168,76,0.25) 0%, transparent 70%);
  pointer-events: none;
  z-index: 59;
}
@keyframes hps-blink {
  0%, 60%, 100% { opacity: .3; }
  30% { opacity: 1; }
}

@media (max-width: 900px) {
  .hero--hand .hero-split-inner { grid-template-columns: 1fr; gap: var(--space-6); }
  .hero--hand .hero-left { align-items: center; text-align: center; }
  .hero--hand .word-cycle .wc-word { left: 0; right: 0; text-align: center; }
  .hero--hand .hero-sub { margin: 0 auto; }
  .hero--hand .hero-cta, .hero--hand .hero-trust { justify-content: center; }
  .hero-right { min-height: 340px; order: 2; }
  .hero-hand-figure { width: clamp(220px, 56vw, 300px); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-hand-figure { animation: none; }
  .hps-typing span { animation: none; }
}

/* Animated gradient orbs — the "living" background */
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  will-change: transform;
}
.hero-orb--1 {
  width: 700px; height: 700px;
  background: radial-gradient(circle, #1e3a6e 0%, transparent 70%);
  top: -20%; left: -10%;
  opacity: 0.7;
  animation: orb-drift 22s ease-in-out infinite;
}
.hero-orb--2 {
  width: 600px; height: 600px;
  background: radial-gradient(circle, #2d1b69 0%, transparent 70%);
  bottom: -15%; right: 5%;
  opacity: 0.6;
  animation: orb-drift 28s ease-in-out infinite reverse;
  animation-delay: -8s;
}
.hero-orb--3 {
  width: 450px; height: 450px;
  background: radial-gradient(circle, #0e3a3a 0%, transparent 70%);
  top: 35%; right: 20%;
  opacity: 0.45;
  animation: orb-drift 18s ease-in-out infinite;
  animation-delay: -14s;
}
@keyframes orb-drift {
  0%, 100% { transform: translate(0px, 0px) scale(1); }
  33%       { transform: translate(40px, -30px) scale(1.06); }
  66%       { transform: translate(-25px, 40px) scale(0.94); }
}

/* Subtle grid overlay for texture */
.hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 60px 60px;
}

.hero-stage {
  position: relative;
  z-index: 1;
  width: 100%;
}

/* ── Hero Light Mode ───────────────────────────────── */
.hero--light {
  background: #F8F9FC;
  color: var(--fg);
}
/* Dot-Grid Textur statt Grid-Overlay */
.hero--light .hero-bg {
  background-image: radial-gradient(circle, rgba(26,26,46,0.055) 1px, transparent 1px);
  background-size: 28px 28px;
}
.hero--light .hero-bg::after { display: none; }
/* Orbs: sehr dezente Farbflecken */
.hero--light .hero-orb--1 { background: radial-gradient(circle, rgba(201,168,76,0.09) 0%, transparent 70%); opacity: 1; }
.hero--light .hero-orb--2 { background: radial-gradient(circle, rgba(30,58,110,0.07) 0%, transparent 70%); opacity: 1; }
.hero--light .hero-orb--3 { background: radial-gradient(circle, rgba(45,27,105,0.05) 0%, transparent 70%); opacity: 1; }
/* Texte auf dunkel */
.hero--light .hero-h1   { color: var(--fg); }
.hero--light .hero-sub  { color: var(--fg-muted); }
.hero--light .hero-trust-label { color: var(--fg-dim); }
/* Kleine Chips hell */
.hero--light .hfloat:not(.hfpanel) {
  background: rgba(255,255,255,0.92);
  border-color: rgba(26,26,46,0.10);
  box-shadow: 0 4px 20px rgba(26,26,46,0.10);
}
.hero--light .hfloat:not(.hfpanel) strong { color: var(--fg); }
.hero--light .hfloat:not(.hfpanel) span   { color: var(--fg-muted); }
/* Mobile Chips */
.hero--light .hero-mobile-chips .hfloat {
  background: rgba(255,255,255,0.92);
  border-color: rgba(26,26,46,0.10);
  box-shadow: 0 2px 12px rgba(26,26,46,0.08);
}

/* ── Hero Center Layout ────────────────────────────── */
.hero-center {
  max-width: 760px;
  margin: 0 auto;
  padding: calc(var(--nav-h) + var(--space-5)) var(--space-5) var(--space-7);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-5);
}

.hero-h1 {
  font-size: clamp(52px, 6vw + 20px, 96px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.2;
  color: var(--dark-fg);
  margin: 0;
  overflow: hidden; /* Clip damit rotierende Wörter nicht aus der H1 herausragen */
}

/* ── Rotating Word ─────────────────────────────────── */
.word-cycle {
  display: inline-block;
  position: relative;
  min-width: 6ch;
  vertical-align: baseline;
  overflow: visible;
}
.wc-word {
  font-style: italic;
  color: var(--accent);
  -webkit-text-fill-color: var(--accent);
  transition: opacity .45s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
.wc-word.is-active {
  display: inline;
  opacity: 1;
  transform: translateY(0);
}
.wc-word:not(.is-active):not(.is-leaving) {
  position: absolute;
  top: 0; left: 0;
  opacity: 0;
  transform: translateY(40%);
  white-space: nowrap;
}
.wc-word.is-leaving {
  position: absolute;
  top: 0; left: 0;
  opacity: 0 !important;
  transform: translateY(-40%) !important;
  transition: opacity .45s ease, transform .45s cubic-bezier(.22,1,.36,1);
}

/* ── Stacked Hero Cards ─────────────────────────────── */
.hero-cards {
  position: relative;
  width: 100%;
  max-width: 420px;
  height: 60px;
  margin-top: var(--space-3);
}
.hcard {
  position: absolute;
  left: 0; right: 0;
  border-radius: var(--radius-xl);
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,0.10);
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--dark-fg);
  white-space: nowrap;
}
.hcard--front {
  bottom: 0; z-index: 3;
  background: rgba(20,26,42,0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: rgba(255,255,255,0.16);
  box-shadow: 0 24px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.05);
  animation: cardFloat 5s ease-in-out infinite;
}
.hcard--mid {
  bottom: -14px; z-index: 2;
  background: rgba(18,23,38,0.75);
  transform: scaleX(0.93);
  opacity: 0.6;
}
.hcard--back {
  bottom: -26px; z-index: 1;
  background: rgba(14,19,32,0.55);
  transform: scaleX(0.86);
  opacity: 0.35;
}
@keyframes cardFloat {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-10px); }
}
.hcard-check {
  width: 28px; height: 28px; flex-shrink: 0;
  border-radius: 50%;
  background: rgba(50,200,100,0.15);
  border: 1px solid rgba(50,200,100,0.30);
  display: flex; align-items: center; justify-content: center;
  color: #70e0a0;
}
.hcard-body { flex: 1; text-align: left; }
.hcard-body strong { display: block; font-size: 13px; font-weight: 600; color: var(--dark-fg); }
.hcard-body span   { font-size: 11px; color: var(--dark-muted); }
.hcard-pulse {
  width: 8px; height: 8px; flex-shrink: 0;
  border-radius: 50%; display: inline-block;
}
.hcard-live {
  font-family: var(--font-mono); font-size: 10px;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: var(--radius-full);
  background: rgba(50,200,100,0.12);
  border: 1px solid rgba(50,200,100,0.25);
  color: #70e0a0;
}
@media (max-width: 640px) {
  .hero-cards { max-width: 100%; height: auto; }
  .hcard--front { position: relative; bottom: auto; }
  .hcard--mid, .hcard--back { display: none; }
  /* Kleinerer Titel auf Mobile */
  .hero-h1 { font-size: clamp(34px, 9vw, 48px); letter-spacing: -0.03em; }
  .hero-center { padding-top: calc(var(--nav-h) + var(--space-6)); gap: var(--space-4); }
}
@media (max-width: 880px) {
  .hero-trust { justify-content: center; }
  .hero-cta   { justify-content: center; }
}

/* ── Mobile Chip-Reihe (Hero, nur ≤880px) ──────────── */
.hero-mobile-chips {
  display: none;
}
@media (max-width: 880px) {
  .hero-mobile-chips {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }
  .hero-mobile-chips .hfloat {
    position: static;
    opacity: 1;
    transform: none;
    animation: none;
    font-size: 11px;
    padding: 8px 12px;
    gap: 8px;
    white-space: normal;
  }
  .hero-mobile-chips .hfloat strong { font-size: 11px; }
  .hero-mobile-chips .hfloat span   { font-size: 10px; }
}

/* ── Website Service Showcase ─────────────────────── */
.ws-showcase {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--space-10);
  align-items: center;
}
.ws-browser {
  background: #0d1117;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
}
.ws-browser-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ws-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
}
.ws-dot:nth-child(1) { background: rgba(255,95,86,0.5); }
.ws-dot:nth-child(2) { background: rgba(255,189,46,0.5); }
.ws-dot:nth-child(3) { background: rgba(39,201,63,0.5); }
.ws-url {
  flex: 1;
  text-align: center;
  font-size: 11px;
  color: var(--dark-muted);
  font-family: var(--font-mono);
  background: rgba(255,255,255,0.05);
  padding: 3px 12px;
  border-radius: 6px;
  margin: 0 12px;
}
.ws-screen {
  padding: 28px;
  background: linear-gradient(160deg, #0f172a 0%, #1a2440 100%);
}
.ws-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 32px;
}
.ws-cta-sm {
  background: var(--accent);
  color: #000;
  padding: 5px 12px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 10px;
}
.ws-eyebrow {
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 10px;
  font-family: var(--font-mono);
}
.ws-btn-mock {
  display: inline-block;
  background: var(--accent);
  color: #000;
  padding: 10px 22px;
  border-radius: 30px;
  font-size: 12px;
  font-weight: 700;
  margin-top: 18px;
}
.ws-stats-row {
  display: flex;
  gap: 12px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.ws-stat {
  flex: 1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 10px 12px;
  text-align: center;
}
.ws-stat-num {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: var(--accent);
  font-family: var(--font-mono);
  line-height: 1;
  margin-bottom: 4px;
}
.ws-stat-label {
  font-size: 9px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ws-showcase-text .ws-kicker {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--accent);
  margin-bottom: var(--space-3);
  font-family: var(--font-mono);
}
.ws-showcase-text h3 {
  font-size: clamp(22px, 2.5vw, 34px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-4);
}
.ws-showcase-text p {
  color: var(--dark-muted);
  line-height: 1.7;
  margin-bottom: var(--space-5);
}
.ws-check-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ws-check-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--dark-fg);
}
.ws-check {
  color: #70e0a0;
  font-size: 13px;
  font-weight: 700;
}

/* ── Process Steps ─────────────────────────────────── */
.process-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
  margin-top: var(--space-8);
}
.process-step {
  position: relative;
  padding-top: 52px;
}
.process-num {
  font-size: 52px;
  font-weight: 800;
  color: rgba(201,168,76,0.12);
  position: absolute;
  top: -4px;
  left: 0;
  line-height: 1;
  font-family: var(--font-mono);
  pointer-events: none;
}
.process-step h4 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: var(--space-2);
}
.process-step p {
  color: var(--dark-muted);
  line-height: 1.65;
  font-size: 14px;
}

@media (max-width: 880px) {
  .ws-showcase { grid-template-columns: 1fr; }
  .process-steps { grid-template-columns: 1fr; gap: var(--space-7); }
}

/* ── Homepage: heller 4-Schritt-Prozess als Karten ──── */
.process-steps--light { grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.process-steps--light .process-step {
  padding: var(--space-5);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.process-steps--light .process-step:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--border-gold);
}
.process-steps--light .process-num {
  position: static;
  display: block;
  font-size: 30px;
  color: var(--accent);
  margin-bottom: var(--space-3);
}
.process-steps--light .process-step p { color: var(--fg-muted); }
@media (max-width: 1024px) { .process-steps--light { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .process-steps--light { grid-template-columns: 1fr; gap: var(--space-3); }
  /* Mobile: kompakte Zeilen statt luftiger Karten — Nummer neben dem Text */
  .process-steps--light .process-step {
    display: grid;
    grid-template-columns: 44px 1fr;
    column-gap: var(--space-3);
    align-items: start;
    padding: var(--space-4);
  }
  .process-steps--light .process-num {
    grid-row: 1 / span 2;
    font-size: 24px;
    margin-bottom: 0;
    line-height: 1.2;
  }
  .process-steps--light .process-step h4 { margin: 0 0 4px; }
  .process-steps--light .process-step p { margin: 0; }
}

/* ── Homepage: Gründer-Band (Gesichter statt Fake-Stats) ── */
.founders-band {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: var(--space-9);
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
}
@media (max-width: 880px) { .founders-band { grid-template-columns: 1fr; gap: var(--space-7); } }
.founders-kicker {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--accent); display: block; margin-bottom: var(--space-3);
}
.founders-intro h2 { margin: 0 0 var(--space-3); }
.founders-intro .lead { margin: 0 0 var(--space-4); max-width: 38ch; }
.founders-people { display: grid; gap: var(--space-6); }
.founder-mini {
  display: grid; grid-template-columns: 72px 1fr;
  gap: var(--space-4); align-items: start; margin: 0;
}
.founder-mini img {
  width: 72px; height: 72px; border-radius: 50%; object-fit: cover;
  border: 2px solid rgba(201,168,76,0.30);
}
.founder-mini figcaption { display: flex; flex-direction: column; }
.fm-name { font-weight: 700; font-size: 17px; color: var(--fg); }
.fm-role {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--fg-dim); margin: 1px 0 8px;
}
.founder-mini p { margin: 0; color: var(--fg-muted); font-size: 14.5px; line-height: 1.6; }
.founders-intro .card-cta {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--accent); font-size: 13px; font-weight: 700; letter-spacing: 0.02em;
  text-decoration: none; transition: gap var(--dur-fast) var(--ease-out);
}
.founders-intro .card-cta:hover { gap: 12px; }

/* ── Portfolio Project Items ───────────────────────── */
.projects-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.project-item {
  border-radius: var(--radius-xl);
  overflow: hidden;
}
.project-item-inner {
  display: grid;
  grid-template-columns: 1fr 400px;
  min-height: 400px;
  background: #2e3340;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--radius-xl);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color .35s, box-shadow .35s, transform .35s;
}
.project-item-inner:hover {
  border-color: rgba(201,168,76,0.35);
  box-shadow: 0 18px 44px rgba(0,0,0,0.28);
  transform: translateY(-2px);
}
.project-item-visual {
  overflow: hidden;
  background: #080c14;
}
.project-item-visual img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.project-item-inner:hover .project-item-visual img { transform: scale(1.02); }
.project-item-visual--shimmer { min-height: 400px; }
.project-item-info {
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.project-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}
.project-tag {
  font-size: 11px;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--dark-muted);
}
.project-status-badge {
  font-size: 10px;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.project-status-badge.is-done {
  background: rgba(50,200,100,0.12);
  border: 1px solid rgba(50,200,100,0.25);
  color: #70e0a0;
}
.project-status-badge.is-live {
  background: rgba(201,168,76,0.12);
  border: 1px solid rgba(201,168,76,0.25);
  color: var(--accent);
}
/* Farbige Service-Tags */
.project-tag--blue   { background: rgba(80,140,255,0.12); border-color: rgba(80,140,255,0.25); color: #90b8ff; }
.project-tag--purple { background: rgba(160,100,255,0.12); border-color: rgba(160,100,255,0.25); color: #c4a0ff; }
.project-tag--gold   { background: rgba(201,168,76,0.12); border-color: rgba(201,168,76,0.25); color: var(--accent); }
/* Project visual — full bleed image */
.project-item-visual { overflow: hidden; background: #080c14; }
.project-item-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.project-item-inner:hover .project-item-visual img { transform: scale(1.02); }
.project-item-info { padding: var(--space-7); display: flex; flex-direction: column; justify-content: space-between; }
.project-item-info h3 { font-size: clamp(22px, 2.5vw, 32px); font-weight: 700; color: #fff; margin: var(--space-3) 0 var(--space-2); }
.project-item-desc { color: rgba(255,255,255,0.92); line-height: 1.65; font-size: 14px; flex: 1; }
.project-meta-dot { color: rgba(255,255,255,0.2); }
.project-item-info h3 {
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-3);
  color: #fff;
}
.project-item-info p {
  color: rgba(255,255,255,0.92);
  line-height: 1.65;
  font-size: 14px;
  flex: 1;
}
.project-item-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.project-year {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--dark-muted);
}
.project-cta {
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  transition: gap .2s;
}
.project-item-inner:hover .project-cta { letter-spacing: .02em; }
.project-item--coming .project-item-inner { cursor: default; }
.project-item--coming .project-item-inner:hover {
  border-color: rgba(255,255,255,0.08);
  box-shadow: none;
  transform: none;
}

@media (max-width: 880px) {
  .project-item-inner { grid-template-columns: 1fr; }
  .project-item-visual { min-height: 200px; }
}

/* ── Hero Floating Ambient Chips ──────────────────── */
.hero-floats {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}
.hfloat {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--radius-lg);
  background: rgba(15,17,26,0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 8px 32px rgba(0,0,0,0.30);
  white-space: nowrap;
  opacity: 0; /* JS animates this */
  will-change: transform, opacity;
}
.hfloat strong { display: block; font-size: 12px; font-weight: 600; color: var(--dark-fg); }
.hfloat span   { font-size: 10px; color: var(--dark-muted); }

@keyframes floatIn {
  from { opacity: 0; transform: translateY(12px) rotate(var(--rot, 0deg)); }
  to   { opacity: 1; transform: translateY(0)    rotate(var(--rot, 0deg)); }
}
@keyframes floatBob {
  0%, 100% { transform: translateY(0px)   rotate(var(--rot, 0deg)); }
  50%       { transform: translateY(-8px) rotate(var(--rot, 0deg)); }
}

.hfloat--tl {
  top: 22%; left: 4%;
  --rot: -3deg; --bob-dur: 7s; --bob-delay: 0s;
  animation-delay: .4s, .4s;
}
.hfloat--tr {
  top: 18%; right: 4%;
  --rot: 2deg; --bob-dur: 8s; --bob-delay: 1s;
  animation-delay: .7s, .7s;
}
.hfloat--bl {
  bottom: 28%; left: 3%;
  --rot: 2deg; --bob-dur: 6s; --bob-delay: 2s;
  animation-delay: .9s, .9s;
}
.hfloat--br {
  bottom: 24%; right: 3%;
  --rot: -2deg; --bob-dur: 9s; --bob-delay: .5s;
  animation-delay: 1.1s, 1.1s;
}

.hfloat-icon {
  width: 26px; height: 26px; flex-shrink: 0;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.hfloat-icon--green { background: rgba(50,200,100,.15); border: 1px solid rgba(50,200,100,.25); color: #70e0a0; }
.hfloat-icon--blue  { background: rgba(80,140,255,.15); border: 1px solid rgba(80,140,255,.25); color: #90b8ff; }
.hfloat-icon--gold  { background: rgba(201,168,76,.15); border: 1px solid rgba(201,168,76,.25); color: var(--accent); }

/* Circle badge shape */
.hfloat--circle {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 72px; height: 72px;
  border-radius: 50%;
  padding: 0;
  gap: 2px;
  text-align: center;
}
.hf-circle-num {
  font-size: 18px;
  font-weight: 700;
  color: var(--dark-fg);
  letter-spacing: -0.03em;
  line-height: 1;
  font-family: var(--font-display);
}
.hf-circle-label {
  font-size: 9px;
  color: var(--dark-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Pill shape */
.hfloat--pill {
  padding: 7px 14px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 500;
  color: var(--dark-fg);
  gap: 7px;
  align-items: center;
}
.hf-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-block;
}

/* New positions */
.hfloat--lm {
  top: 50%; left: 1.5%;
  transform: translateY(-50%) rotate(-2deg);
  --rot: -2deg;
  --bob-dur: 8s; --bob-delay: 1.5s;
  animation-delay: .6s, .6s;
}
.hfloat--rm {
  top: 50%; right: 1.5%;
  transform: translateY(-50%) rotate(3deg);
  --rot: 3deg;
  --bob-dur: 7s; --bob-delay: 0.5s;
  animation-delay: .8s, .8s;
}
.hfloat--tml {
  top: 8%; left: 18%;
  --rot: -1deg;
  --bob-dur: 9s; --bob-delay: 3s;
  animation-delay: .5s, .5s;
}
.hfloat--bmr {
  bottom: 8%; right: 18%;
  --rot: 1deg;
  --bob-dur: 7.5s; --bob-delay: 1s;
  animation-delay: 1.0s, 1.0s;
}

@media (max-width: 1100px) { .hero-floats { display: none; } }

/* ── Hero Float Panels (grosse UI-Blöcke, Acctual-Stil) ─────── */
.hfpanel {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  width: 240px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  white-space: normal;
}
.hfpanel--left {
  left: 2%; top: 42%;
  transform: translateY(-50%) rotate(-2deg);
  --rot: -2deg; --bob-dur: 9s; --bob-delay: 0s;
  animation-delay: .5s, .5s;
}
.hfpanel--right {
  right: 2%; top: 42%;
  transform: translateY(-50%) rotate(2deg);
  --rot: 2deg; --bob-dur: 8s; --bob-delay: 1s;
  animation-delay: .8s, .8s;
}
.hfp-header {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.hfp-header strong { display: block; font-size: 12px; font-weight: 600; color: var(--dark-fg); }
.hfp-status { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--dark-muted); }
.hfp-avatar {
  width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700; letter-spacing: -.02em;
}
.hfp-avatar--bot  { background: rgba(201,168,76,0.15); border: 1px solid rgba(201,168,76,0.3);  color: var(--accent); }
.hfp-avatar--call { background: rgba(50,200,100,0.15);  border: 1px solid rgba(50,200,100,0.3);  color: #70e0a0; }

/* Chat messages */
.hfp-messages { padding: 10px 12px; display: flex; flex-direction: column; gap: 7px; }
.hfp-msg { font-size: 11px; line-height: 1.45; padding: 7px 10px; border-radius: 10px; max-width: 90%; }
.hfp-msg--user { background: rgba(255,255,255,0.07); color: var(--dark-muted); align-self: flex-end; border-bottom-right-radius: 3px; }
.hfp-msg--bot  { background: rgba(201,168,76,0.10); border: 1px solid rgba(201,168,76,0.15); color: var(--dark-fg); align-self: flex-start; border-bottom-left-radius: 3px; }
.hfp-sub { font-size: 10px; color: var(--dark-muted); display: block; margin-top: 2px; }
.hfp-footer { display: flex; align-items: center; gap: 7px; padding: 8px 12px; border-top: 1px solid rgba(255,255,255,0.06); font-size: 10px; color: var(--dark-muted); }
.hfp-typing { display: flex; gap: 3px; align-items: center; }
.hfp-typing span { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); animation: hfpDot 1.2s ease-in-out infinite; }
.hfp-typing span:nth-child(2) { animation-delay: .2s; }
.hfp-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes hfpDot { 0%,80%,100% { opacity:.25; transform:scale(.8); } 40% { opacity:1; transform:scale(1); } }

/* Call log */
.hfp-log { padding: 10px 14px; display: flex; flex-direction: column; gap: 7px; }
.hfp-log-row { display: flex; justify-content: space-between; align-items: center; font-size: 11px; }
.hfp-log-label { color: var(--dark-muted); }
.hfp-log-row span:last-child { color: var(--dark-fg); font-weight: 500; }
.hfp-tag-green { color: #70e0a0 !important; }
.hfp-log-divider { height: 1px; background: rgba(255,255,255,0.06); margin: 0 14px; }
.hfp-stats { display: flex; padding: 10px 14px; }
.hfp-stat { flex: 1; text-align: center; }
.hfp-stat-num { display: block; font-size: 22px; font-weight: 700; color: var(--dark-fg); letter-spacing: -.03em; line-height: 1; margin-bottom: 3px; }
.hfp-stat span:last-child { font-size: 9px; color: var(--dark-muted); text-transform: uppercase; letter-spacing: .07em; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(201, 168, 76, 0.30);
  background: rgba(201, 168, 76, 0.08);
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-weight: 600;
  width: fit-content;
}
.hero-badge::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
  animation: badge-pulse 2s ease-in-out infinite;
}
@keyframes badge-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* .hero-content h1 removed — replaced by .hero-h1 + .wc-word */

.hero-sub {
  font-size: clamp(16px, 1vw + 13px, 19px);
  color: var(--dark-muted);
  max-width: 48ch;
  line-height: 1.65;
  margin: 0;
}

.hero-cta {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  align-items: center;
}

/* Gold primary button */
.btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  background: var(--grad-gold);
  color: #0F1117;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  transition: box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
  box-shadow: 0 8px 32px -8px rgba(201, 168, 76, 0.5);
}
.btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px -8px rgba(201, 168, 76, 0.65);
  color: #0F1117;
}
.btn-gold .btn-arrow { width: 16px; height: 16px; }

/* Ghost on dark background */
.btn-on-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(242, 242, 240, 0.20);
  background: rgba(242, 242, 240, 0.05);
  color: var(--dark-fg);
  font-weight: 600;
  font-size: 15px;
  transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.btn-on-dark:hover {
  border-color: rgba(242, 242, 240, 0.40);
  background: rgba(242, 242, 240, 0.10);
  color: var(--dark-fg);
}

/* Social proof trust bar */
.hero-trust {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(255,255,255,0.08);
  flex-wrap: wrap;
}
.hero-trust-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-dim);
  white-space: nowrap;
}
.hero-trust-logo {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0.9;
  transition: opacity var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
  filter: none;
}
.hero-trust-logo:hover {
  opacity: 1;
  background: rgba(255,255,255,0.16);
}
.hero-trust-logo img {
  height: 30px;
  width: auto;
  max-width: 130px;
  object-fit: contain;
}

/* ── Hero Floating Chat ───────────────────────────── */
.hero-chat {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: 100%;
  max-width: 400px;
  padding: var(--space-2);
  position: relative;
}

/* Subtle gold glow behind the chat area */
.hero-chat::before {
  content: "";
  position: absolute;
  width: 340px; height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,0.10) 0%, transparent 70%);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  pointer-events: none;
}

.hc-row {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .35s ease, transform .35s ease;
}
.hc-row.is-visible { opacity: 1; transform: translateY(0); }

/* Bot: links, mit Avatar */
.hc-row--bot { justify-content: flex-start; }

.hc-avatar {
  width: 28px; height: 28px; flex-shrink: 0;
  border-radius: 50%;
  background: rgba(201,168,76,.15);
  border: 1px solid rgba(201,168,76,.30);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent);
}

/* User: rechts, kein Avatar */
.hc-row--user { justify-content: flex-end; }

.hc-bubble {
  padding: 10px 14px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.5;
  max-width: 82%;
  font-family: var(--font-display);
}
.hc-row--bot .hc-bubble {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--dark-fg);
  border-bottom-left-radius: 4px;
}
.hc-row--user .hc-bubble {
  background: rgba(201,168,76,.13);
  border: 1px solid rgba(201,168,76,.25);
  color: var(--dark-fg);
  border-bottom-right-radius: 4px;
  font-weight: 500;
}

/* Typing indicator */
.hc-typing {
  display: flex; gap: 5px; align-items: center;
  padding: 12px 16px;
  border-radius: 16px;
  border-bottom-left-radius: 4px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.10);
  max-width: 82%;
}
.hc-typing i {
  display: block; width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--dark-muted);
  animation: hcDot .9s infinite ease-in-out;
}
.hc-typing i:nth-child(2) { animation-delay: .15s; }
.hc-typing i:nth-child(3) { animation-delay: .30s; }
@keyframes hcDot {
  0%, 60%, 100% { transform: translateY(0); opacity: .4; }
  30%            { transform: translateY(-4px); opacity: 1; }
}

@media (max-width: 860px) { .hero-chat { max-width: 100%; } }

/* Scroll hint */
.hero-scroll-hint {
  position: absolute;
  bottom: var(--space-6);
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.35);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.hero-scroll-hint::after {
  content: "";
  width: 1px;
  height: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4), transparent);
  animation: scroll-line 2s var(--ease-in-out) infinite;
}
@keyframes scroll-line {
  0%     { transform: scaleY(0); transform-origin: top; }
  50%    { transform: scaleY(1); transform-origin: top; }
  50.01% { transform-origin: bottom; }
  100%   { transform: scaleY(0); transform-origin: bottom; }
}

/* Wash at bottom for smooth transition to light body */
.hero-end-wash {
  position: absolute;
  inset: auto 0 0 0;
  height: 120px;
  background: linear-gradient(180deg, transparent, var(--bg-0));
  z-index: 2;
  pointer-events: none;
}

/* ===========================================
   Section heads — centered by default
   =========================================== */
.section-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-7);
  text-align: center;
  align-items: center;
}
.section-head h2 { margin: 0; max-width: 22ch; }
.section-head .lead { margin: 0 auto; }

/* ===========================================
   SERVICES PREVIEW — compact, image-led
   =========================================== */
.services-preview {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
}
@media (max-width: 880px) { .services-preview { grid-template-columns: 1fr; } }

.service-card {
  padding: var(--space-6);
  display: grid;
  gap: var(--space-4);
  align-content: start;
  grid-template-rows: auto auto 1fr auto;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--border);
  transition:
    border-color var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out),
    transform var(--dur-base) var(--ease-out);
}
.service-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid transparent;
  background: linear-gradient(135deg, var(--accent), var(--accent-hover)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-out);
}
.service-card:hover {
  border-color: transparent;
  box-shadow: 0 20px 60px -20px rgba(201, 168, 76, 0.20), var(--shadow-card-hover);
  transform: translateY(-4px);
}
.service-card:hover::after { opacity: 1; }

.service-icon {
  width: 64px; height: 64px;
  border-radius: var(--radius-md);
  background: var(--bg-1);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.service-card:hover .service-icon {
  background: var(--accent-soft);
  border-color: var(--border-gold);
}
.service-icon svg { width: 28px; height: 28px; }

/* ── Service-Mini-Demos: zeigen statt behaupten ─────────────── */
.service-demo {
  height: 84px;
  border-radius: var(--radius-md);
  background: var(--bg-1);
  border: 1px solid var(--border);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  overflow: hidden;
  transition: border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
.service-card:hover .service-demo { border-color: var(--border-gold); background: var(--accent-soft); }

/* Chatbot: zwei echte Mini-Bubbles */
.sdc-bubble {
  font-size: 11px;
  line-height: 1.35;
  padding: 5px 10px;
  border-radius: 10px;
  max-width: 96%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sdc-user {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--border);
  color: var(--fg-muted);
  border-bottom-left-radius: 3px;
}
.sdc-bot {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--accent) 0%, #d9b85a 100%);
  color: #1A1206;
  font-weight: 600;
  border-bottom-right-radius: 3px;
}

/* Telefonbot: Anruf-Zeile mit Wellenform */
.sd-phone { flex-direction: row; align-items: center; gap: 10px; }
.sdp-icon {
  width: 34px; height: 34px; flex: none;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent) 0%, #d9b85a 100%);
  color: #1A1206;
  display: grid; place-items: center;
}
.sdp-icon svg { width: 17px; height: 17px; }
.sdp-wave { display: inline-flex; align-items: center; gap: 3px; flex: 1 1 auto; min-width: 27px; overflow: hidden; }
.sdp-wave i {
  width: 3px;
  border-radius: 2px;
  background: var(--accent);
  animation: sdp-bounce 1.1s ease-in-out infinite;
}
.sdp-wave i:nth-child(1) { height: 8px; }
.sdp-wave i:nth-child(2) { height: 16px; animation-delay: .1s; }
.sdp-wave i:nth-child(3) { height: 22px; animation-delay: .2s; }
.sdp-wave i:nth-child(4) { height: 12px; animation-delay: .3s; }
.sdp-wave i:nth-child(5) { height: 19px; animation-delay: .4s; }
.sdp-wave i:nth-child(6) { height: 10px; animation-delay: .5s; }
.sdp-wave i:nth-child(7) { height: 15px; animation-delay: .6s; }
@keyframes sdp-bounce {
  0%, 100% { transform: scaleY(0.55); }
  50%      { transform: scaleY(1); }
}
.sdp-label {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #8F7326;
  white-space: nowrap;
  flex: none;
}

/* Website: Mini-Browser */
.sd-web { gap: 5px; }
.sdw-chrome { display: inline-flex; gap: 4px; margin-bottom: 2px; }
.sdw-chrome i { width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
.service-card:hover .sdw-chrome i { background: var(--accent); }
.sdw-hero {
  height: 16px;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(201,168,76,0.55) 0%, rgba(201,168,76,0.2) 100%);
}
.sdw-line { height: 6px; width: 55%; border-radius: 3px; background: var(--border); }
.sdw-line--wide { width: 80%; }

@media (prefers-reduced-motion: reduce) {
  .sdp-wave i { animation: none; }
}

.service-card h3 {
  font-weight: 700;
  font-size: 22px;
  margin: 0;
  letter-spacing: -0.02em;
}
.service-card p {
  color: var(--fg-muted);
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  max-width: 34ch;
}
.service-card .card-cta {
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: gap var(--dur-fast) var(--ease-out);
}
.service-card:hover .card-cta { gap: 12px; }

/* Erste Karte leicht hervorgehoben — bricht die Uniformität */
.service-card--primary {
  background: var(--fg);
  border-color: var(--fg);
  color: var(--dark-fg);
}
.service-card--primary h3 { color: var(--dark-fg); }
.service-card--primary p { color: var(--dark-muted); }
.service-card--primary .service-icon {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.12);
  color: var(--accent);
}
.service-card--primary .card-cta {
  border-top-color: rgba(255,255,255,0.10);
  color: var(--accent);
}
.service-card--primary:hover {
  border-color: var(--fg);
  box-shadow: 0 24px 64px -20px rgba(26,26,46,0.35);
}
.service-card--primary:hover .service-icon {
  background: rgba(201,168,76,0.15);
  border-color: rgba(201,168,76,0.25);
}

/* ===========================================
   CHAT DEMO — centered
   =========================================== */
.chat-demo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  align-items: start;
  max-width: 1080px;
  margin: 0 auto;
}
@media (max-width: 880px) { .chat-demo { grid-template-columns: 1fr; } }
.chat-window {
  padding: var(--space-5);
  display: grid;
  gap: var(--space-3);
  max-height: 500px;
  overflow: hidden;
  position: relative;
}
.chat-window::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 80px;
  background: linear-gradient(transparent, var(--bg-glass-strong));
  pointer-events: none;
}
.chat-window header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--border);
}
.chat-window header .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent-lime); box-shadow: 0 0 8px rgba(22,163,74,0.5); }
.chat-window header strong { color: var(--fg); font-size: 14px; }
.chat-window header span { color: var(--fg-muted); font-size: 12px; margin-left: auto; }
.bubble {
  max-width: 80%;
  padding: 12px 16px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 300ms var(--ease-out), transform 300ms var(--ease-out);
}
.bubble.is-visible { opacity: 1; transform: translateY(0); }
.bubble.bot {
  background: var(--bg-1);
  border: 1px solid var(--border);
  align-self: flex-start;
  border-bottom-left-radius: 4px;
  color: var(--fg);
}
.bubble.user {
  background: var(--grad-primary);
  color: #1A1206;
  font-weight: 600;
  align-self: flex-end;
  margin-left: auto;
  border-bottom-right-radius: 4px;
}
.bubble.typing { display: inline-flex; gap: 4px; padding: 16px; }
.bubble.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--fg-muted); display: inline-block; animation: typing 1.2s infinite; }
.bubble.typing i:nth-child(2) { animation-delay: 0.15s; }
.bubble.typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes typing {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
  30% { transform: translateY(-4px); opacity: 1; }
}

/* ===========================================
   STATS — centered
   =========================================== */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1100px;
  margin: 0 auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #fff;
}
@media (max-width: 880px) {
  .stats { grid-template-columns: repeat(2, 1fr); }
}
.stat {
  padding: var(--space-6) var(--space-5);
  display: grid;
  gap: var(--space-2);
  text-align: center;
  border-right: 1px solid var(--border);
}
.stat:last-child { border-right: none; }
@media (max-width: 880px) {
  .stat:nth-child(2) { border-right: none; }
  .stat:nth-child(3) { border-right: 1px solid var(--border); }
  .stat:nth-child(1), .stat:nth-child(2) { border-bottom: 1px solid var(--border); }
}
.stat .stat-value {
  font-family: var(--font-display);
  font-size: clamp(36px, 3.5vw, 56px);
  font-weight: 700;
  line-height: 1;
  color: var(--fg);
  letter-spacing: -0.03em;
}
.stat .stat-label { color: var(--fg-muted); font-size: 13px; line-height: 1.4; }
.stat .mono { color: var(--fg-dim); font-size: 10px; }

/* ===========================================
   MISSION QUOTE — centered, word reveal
   =========================================== */
.mission-quote {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(28px, 3.5vw, 52px);
  line-height: 1.25;
  letter-spacing: -0.02em;
  max-width: 24ch;
  margin: 0 auto;
  text-align: center;
  color: var(--fg);
}
.mission-em {
  font-style: italic;
  color: var(--accent);
}

/* ===========================================
   PROJECTS
   =========================================== */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
  max-width: 880px;
  margin: 0 auto;
  align-items: stretch;
}
@media (max-width: 720px) { .projects-grid { grid-template-columns: 1fr; } }
.project-card {
  position: relative;
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  overflow: hidden;
  isolation: isolate;
}
.project-card-top { flex: 1 1 auto; }
.project-thumb {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-md);
  background: #fff;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
}
.project-thumb img {
  max-width: 80%;
  max-height: 80%;
  object-fit: contain;
}
.project-thumb.coming-soon {
  background: linear-gradient(135deg, var(--bg-1), var(--bg-2));
}
.project-card[data-status="laufend"] .project-status { color: var(--accent-lime); }
.project-card[data-status="abgeschlossen"] .project-status { color: var(--accent-cyan); }
.project-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-3);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-muted);
}
.project-card h3 { font-size: 20px; margin: 0; text-align: center; }
.project-card p { color: var(--fg-muted); margin: 0; font-size: 14px; text-align: center; }
.project-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  color: var(--accent-cyan);
  font-size: 13px;
  font-weight: 600;
  justify-content: center;
  padding-top: var(--space-3);
  border-top: 1px dashed var(--border);
}
.project-link::after { content: "↗"; transition: transform var(--dur-fast) var(--ease-out); }
.project-link:hover::after { transform: translate(2px, -2px); }
.project-card-top {
  display: grid;
  gap: var(--space-3);
  color: inherit;
  border-radius: var(--radius-md);
  transition: transform var(--dur-fast) var(--ease-out);
}
a.project-card-top { cursor: pointer; }
a.project-card-top:hover { transform: translateY(-2px); }
a.project-card-top:hover h3 {
  color: var(--accent);
}
.project-card-cta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-muted);
  text-align: center;
  transition: color var(--dur-fast) var(--ease-out);
}
a.project-card-top:hover .project-card-cta { color: var(--accent-violet); }

.filter-tabs {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-6);
  justify-content: center;
}
.filter-tabs button {
  padding: 10px 18px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-strong);
  background: #fff;
  color: var(--fg-muted);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
}
.filter-tabs button:hover { color: var(--fg); }
.filter-tabs button[aria-pressed="true"] {
  color: #fff;
  background: var(--grad-primary);
  border-color: transparent;
}

/* ===========================================
   ABOUT / Founders — equal partners, centered
   =========================================== */
.founders {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 880px) { .founders { grid-template-columns: 1fr; } }

.founder-card {
  padding: var(--space-6);
  display: grid;
  gap: var(--space-4);
  text-align: center;
  align-content: start;
  justify-items: center;
}
.founder-photo {
  width: 100%;
  max-width: 320px;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-1);
  border: 1px solid var(--border);
  position: relative;
}
.founder-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.founder-card h3 { font-size: 26px; margin: 0; }
.founder-card .founder-role {
  color: var(--accent-cyan);
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.founder-card blockquote {
  margin: 0;
  padding: var(--space-4);
  color: var(--fg);
  font-style: italic;
  background: var(--bg-1);
  border-radius: var(--radius-md);
  max-width: 38ch;
}
.founder-card p {
  color: var(--fg-muted);
  font-size: 14px;
  max-width: 38ch;
}

.timeline {
  display: grid;
  gap: var(--space-5);
  max-width: 700px;
  margin: 0 auto;
}
.timeline-item {
  padding: var(--space-5);
  text-align: center;
}
.timeline-item .year {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-cyan);
  margin-bottom: var(--space-2);
  font-weight: 600;
}
.timeline-item h4 { font-size: 20px; margin: 0 0 var(--space-2); }
.timeline-item p { color: var(--fg-muted); margin: 0; font-size: 14px; max-width: 50ch; margin-inline: auto; }

.values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 880px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
.value-card {
  padding: var(--space-5);
  display: grid;
  gap: var(--space-3);
  text-align: center;
  align-content: start;
  justify-items: center;
}
.value-card .value-icon {
  width: 48px; height: 48px;
  border-radius: var(--radius-md);
  background: var(--grad-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-cyan);
}
.value-card h4 { font-size: 18px; margin: 0; }
.value-card p { color: var(--fg-muted); font-size: 14px; margin: 0; max-width: 26ch; }

/* ===========================================
   CONTACT
   =========================================== */
.contact {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: var(--space-7);
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 880px) { .contact { grid-template-columns: 1fr; } }
.contact-form-card { padding: var(--space-6); display: grid; gap: var(--space-4); }
.contact-info { display: grid; gap: var(--space-3); align-content: start; }
.contact-tile {
  padding: var(--space-4);
  display: flex;
  gap: var(--space-4);
  align-items: center;
  font-size: 14px;
}
.contact-tile .icon {
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  background: var(--grad-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent-cyan);
  flex-shrink: 0;
}
.contact-tile strong { display: block; color: var(--fg); font-weight: 600; margin-bottom: 2px; }
.contact-tile a { color: var(--fg-muted); }
.contact-tile a:hover { color: var(--fg); }

.cal-embed {
  padding: var(--space-4);
  display: grid;
  gap: var(--space-3);
  text-align: center;
}
.cal-embed iframe { width: 100%; min-height: 480px; border: 0; border-radius: var(--radius-md); }

/* ===========================================
   PREISE
   =========================================== */
/* Modell — drei nummerierte Bausteine (Setup → Abo → Add-ons).
   Ersetzt das frühere flow-diagram + pricing-tiles (redundant). */
.model-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  max-width: 1120px;
  margin: 0 auto;
  align-items: start;
}
@media (max-width: 880px) { .model-steps { grid-template-columns: 1fr; max-width: 520px; } }
.model-step {
  position: relative;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-6) var(--space-5) var(--space-5);
  display: grid;
  gap: var(--space-3);
  align-content: start;
}
.model-step--featured {
  border-color: var(--border-gold);
  box-shadow: var(--shadow-card-hover);
}
.model-step--featured::after {
  content: "";
  position: absolute; left: var(--space-5); right: var(--space-5); top: -1px;
  height: 3px; border-radius: 0 0 3px 3px;
  background: var(--grad-gold);
}
.ms-top { display: flex; align-items: center; justify-content: space-between; }
.ms-num {
  font-family: var(--font-mono);
  font-size: 13px; font-weight: 600;
  color: var(--accent);
  width: 30px; height: 30px;
  display: grid; place-items: center;
  border: 1px solid var(--border-gold);
  border-radius: 50%;
}
.model-step .tile-tag {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--accent); font-weight: 600;
}
.model-step h3 { font-size: 22px; margin: 0; letter-spacing: -0.01em; }
.model-step .ms-sub { color: var(--fg-muted); font-size: 14px; margin: 0; line-height: 1.5; }
.model-step ul {
  list-style: none; margin: var(--space-1) 0 0; padding: var(--space-4) 0 0;
  border-top: 1px solid var(--border);
  display: grid; gap: var(--space-3);
}
.model-step li { color: var(--fg-muted); font-size: 14px; padding-left: 26px; position: relative; line-height: 1.45; }
.model-step li::before {
  content: "";
  position: absolute; left: 2px; top: 4px;
  width: 13px; height: 8px;
  border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
}

/* Beispiele — getönte Szenario-Karten, bewusst anders als die Modell-Karten */
.example-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  max-width: 1120px;
  margin: 0 auto;
}
@media (max-width: 880px) { .example-grid { grid-template-columns: 1fr; max-width: 520px; } }
.example-card {
  background: var(--grad-soft);
  border: 1px solid var(--border-gold);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  display: grid; gap: var(--space-2); align-content: start;
}
.ex-branch {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--fg-muted);
}
.example-card h3 { font-size: 19px; margin: 0 0 var(--space-1); letter-spacing: -0.01em; }
.example-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.example-card li { color: var(--fg-muted); font-size: 14px; padding-left: 18px; position: relative; line-height: 1.45; }
.example-card li::before { content: "·"; position: absolute; left: 5px; top: -1px; color: var(--accent); font-weight: 700; font-size: 18px; }
.ex-model {
  margin: var(--space-2) 0 0; padding-top: var(--space-3);
  border-top: 1px dashed var(--border-gold);
  font-size: 13px; color: var(--fg); font-weight: 500;
}

/* Reassure — eine schlanke Leiste statt vier Karten (warum ein Abo?) */
.reassure {
  max-width: 1000px; margin: 0 auto;
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
  padding: var(--space-6);
  display: grid; gap: var(--space-5);
}
.reassure-head h2 { margin: 0 0 var(--space-2); font-size: clamp(22px, 2.6vw, 30px); letter-spacing: -0.02em; }
.reassure-head p { margin: 0; max-width: 60ch; color: var(--fg-muted); font-size: 15px; line-height: 1.55; }
.reassure-items {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4) var(--space-6);
}
@media (max-width: 640px) { .reassure-items { grid-template-columns: 1fr; } }
.reassure-item { display: flex; gap: var(--space-3); align-items: flex-start; }
.reassure-item .ri-icon {
  flex-shrink: 0; width: 38px; height: 38px; border-radius: var(--radius-sm);
  background: var(--grad-soft); display: grid; place-items: center; color: var(--accent);
}
.reassure-item strong { display: block; font-size: 15px; margin-bottom: 2px; color: var(--fg); }
.reassure-item p { margin: 0; color: var(--fg-muted); font-size: 13.5px; line-height: 1.45; }
.reassure-items--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 820px) { .reassure-items--3 { grid-template-columns: 1fr; } }

/* Richtwerte — Service-Preiskarten */
.price-services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  max-width: 1120px;
  margin: 0 auto;
}
@media (max-width: 880px) { .price-services { grid-template-columns: 1fr; max-width: 520px; } }
.price-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-6) var(--space-5) var(--space-5);
  display: grid;
  gap: var(--space-3);
  align-content: start;
}
.price-card--featured { border-color: var(--border-gold); box-shadow: var(--shadow-card-hover); }
.price-card .pc-icon {
  width: 46px; height: 46px; border-radius: var(--radius-md);
  background: var(--grad-soft); display: grid; place-items: center; color: var(--accent);
}
.price-card h3 { font-size: 20px; margin: 0; letter-spacing: -0.01em; }
.price-card .pc-desc { color: var(--fg-muted); font-size: 14px; margin: 0; line-height: 1.5; }
.price-card .pc-price {
  display: flex; align-items: baseline; gap: 8px;
  margin-top: var(--space-2); padding-top: var(--space-3);
  border-top: 1px solid var(--border);
  font-size: clamp(28px, 3vw, 34px); font-weight: 700; letter-spacing: -0.02em; color: var(--fg);
}
.price-card .pc-from {
  font-family: var(--font-mono); font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.06em; color: var(--accent);
}
.price-card .pc-note { font-size: 12.5px; color: var(--fg-dim); }

.accordion {
  display: grid;
  gap: var(--space-3);
  max-width: 760px;
  margin: 0 auto;
}
.accordion details {
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #fff;
}
.accordion details[open] { border-color: var(--border-strong); }
.accordion summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 16px;
  color: var(--fg);
  font-weight: 600;
  gap: var(--space-3);
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after {
  content: "+";
  font-family: var(--font-mono);
  font-size: 20px;
  color: var(--accent-cyan);
  transition: transform var(--dur-fast) var(--ease-out);
  flex-shrink: 0;
}
.accordion details[open] summary::after { content: "−"; }
.accordion details > *:not(summary) {
  margin-top: var(--space-3);
  color: var(--fg-muted);
  font-size: 14px;
}

/* ===========================================
   Reader (legal pages)
   =========================================== */
.reader {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--space-7);
  padding-top: var(--space-7);
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 880px) { .reader { grid-template-columns: 1fr; } }
.reader-toc {
  position: sticky;
  top: calc(var(--nav-h) + var(--space-5));
  align-self: start;
  font-size: 13px;
}
.reader-toc h4 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-muted); margin: 0 0 var(--space-3); }
.reader-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.reader-toc a {
  color: var(--fg-muted);
  display: block;
  padding: 4px 0;
  border-left: 1px solid var(--border);
  padding-left: var(--space-3);
}
.reader-toc a:hover, .reader-toc a.is-active { color: var(--fg); border-left-color: var(--accent-cyan); }
.reader-body h2 {
  margin-top: var(--space-7);
  font-size: clamp(22px, 2vw, 28px);
  scroll-margin-top: calc(var(--nav-h) + var(--space-5));
}
.reader-body p, .reader-body li { color: var(--fg-muted); font-size: 15px; line-height: 1.75; }
.reader-body strong { color: var(--fg); }
.reader-body ul, .reader-body ol { padding-left: var(--space-5); }

/* ===========================================
   404
   =========================================== */
.page-404 {
  min-height: 100vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding-top: var(--nav-h);
}
.page-404 h1 {
  font-size: clamp(64px, 12vw, 200px);
  font-weight: 700;
  line-height: 1;
  margin: 0;
  color: var(--accent);
  opacity: 0.25;
}
.page-404 img { max-width: 320px; margin: 0 auto var(--space-4); }

/* ===========================================
   Subpage hero / banner
   =========================================== */
.subhero {
  position: relative;
  padding-top: calc(var(--nav-h) + var(--space-3));
  padding-bottom: var(--space-7);
  text-align: center;
  overflow: hidden;
}
.subhero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(700px 400px at 25% 0%, rgba(201,168,76,0.07), transparent 60%),
    radial-gradient(700px 400px at 75% 10%, rgba(45,27,105,0.06), transparent 60%);
  pointer-events: none;
  z-index: -1;
}
.subhero h1 {
  font-size: clamp(32px, 5vw, 80px);
  font-weight: 700;
  letter-spacing: -0.03em;
  max-width: 18ch;
  margin: 0 auto var(--space-4);
}
.subhero .lead { max-width: 56ch; margin: 0 auto; }
@media (max-width: 640px) {
  .subhero { padding-top: calc(var(--nav-h) + var(--space-2)); padding-bottom: var(--space-3); }
  .subhero h1 { font-size: clamp(24px, 6.5vw, 32px); margin-bottom: var(--space-2); }
  .subhero .lead { font-size: 14px; line-height: 1.55; }
}
.subhero-hero-image {
  margin: var(--space-5) auto 0;
  max-width: 760px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg-1);
}
@media (max-width: 640px) {
  .subhero-hero-image { margin-top: var(--space-3); border-radius: var(--radius-lg); }
}
.subhero-hero-image img { width: 100%; display: block; }
.subhero-hero-image--portrait {
  aspect-ratio: 4 / 3.4;
}
.subhero-hero-image--portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
}
/* Founders joint photo — waist-up crop */
.subhero-hero-image--founders {
  aspect-ratio: 3 / 4;
  max-width: 480px;
}
.subhero-hero-image--founders img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}
@media (max-width: 640px) {
  .subhero-hero-image--founders {
    aspect-ratio: auto;
    max-width: 100%;
  }
  .subhero-hero-image--founders img {
    height: auto;
    object-fit: unset;
    object-position: unset;
  }
}

/* ===========================================
   Feature Grid (used on detail pages)
   =========================================== */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 880px) { .feature-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .feature-grid { grid-template-columns: 1fr; } }
.feature-card {
  padding: var(--space-5);
  display: grid;
  gap: var(--space-3);
  /* linksbündig statt zentrierter Karten-Monotonie — besser scanbar */
  text-align: left;
  align-content: start;
  justify-items: start;
}
.feature-card .feature-icon {
  width: 44px; height: 44px;
  border-radius: var(--radius-md);
  background: var(--grad-soft);
  display: grid; place-items: center;
  color: var(--accent-cyan);
}
.feature-card .feature-icon svg { width: 24px; height: 24px; }
.feature-card h4 { margin: 0; font-size: 17px; }
.feature-card p { color: var(--fg-muted); font-size: 14px; margin: 0; max-width: 30ch; }

/* ===========================================
   Image showcase (subpages)
   =========================================== */
.image-showcase {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}
@media (max-width: 880px) { .image-showcase { grid-template-columns: 1fr; } }
.image-showcase .ic-text { display: grid; gap: var(--space-3); }
.image-showcase img {
  width: 100%;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}

/* ===========================================
   Integrations Orbit
   =========================================== */
.orbit {
  position: relative;
  width: min(460px, 90vw);
  aspect-ratio: 1;
  margin: 0 auto;
}
.orbit-core {
  position: absolute;
  inset: 30%;
  border-radius: 50%;
  background: var(--grad-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  box-shadow: var(--shadow-glow-violet);
  font-size: 22px;
}
.orbit-ring {
  position: absolute;
  inset: 0;
  border: 1px dashed var(--border-strong);
  border-radius: 50%;
  animation: spin 28s linear infinite;
}
.orbit-ring.inner { inset: 12%; animation-duration: 18s; animation-direction: reverse; }
@keyframes spin {
  to { transform: rotate(360deg); }
}
.orbit-pill {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) rotate(var(--angle, 0deg)) translateX(var(--r, 200px)) rotate(calc(var(--angle, 0deg) * -1));
  padding: 6px 12px;
  background: #fff;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-full);
  font-size: 12px;
  color: var(--fg-muted);
  font-weight: 600;
}

/* ===========================================
   Waveform (telefonbot subpage)
   =========================================== */
.waveform {
  width: 100%;
  height: 140px;
  border-radius: var(--radius-md);
  background: var(--bg-1);
  border: 1px solid var(--border);
  display: block;
}

/* ===========================================
   Voice demo (telefonbot subpage)
   =========================================== */
.voice-demo {
  padding: var(--space-5);
  display: grid;
  gap: var(--space-4);
  max-width: 760px;
  margin: 0 auto;
}
.voice-header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--border);
}
.voice-header .pulse-dot {
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--fg-dim);
  position: relative;
  transition: background var(--dur-fast) var(--ease-out);
}
.voice-header .pulse-dot::after {
  content: "";
  position: absolute; inset: -6px;
  border-radius: 50%;
  border: 2px solid currentColor;
  opacity: 0;
}
.voice-demo[data-voice-state="listening"] .pulse-dot { background: var(--accent-cyan); color: var(--accent-cyan); }
.voice-demo[data-voice-state="listening"] .pulse-dot::after { animation: voice-ping 1.4s var(--ease-out) infinite; }
.voice-demo[data-voice-state="speaking"] .pulse-dot { background: var(--accent-violet); color: var(--accent-violet); }
.voice-demo[data-voice-state="speaking"] .pulse-dot::after { animation: voice-ping 0.9s var(--ease-out) infinite; }
.voice-demo[data-voice-state="thinking"] .pulse-dot { background: var(--accent-lime); }
@keyframes voice-ping {
  0% { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(2.2); opacity: 0; }
}
.voice-header strong { color: var(--fg); font-size: 14px; }
.voice-header [data-voice-status] {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--fg-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.voice-transcript {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-height: 220px;
  max-height: 380px;
  overflow-y: auto;
  padding: var(--space-4);
  background: var(--bg-1);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
}
.voice-transcript:empty::before {
  content: "Klicken Sie unten auf »Anruf starten«, um zu beginnen.";
  color: var(--fg-muted);
  font-size: 13px;
  margin: auto;
  text-align: center;
}
.voice-controls {
  display: flex;
  justify-content: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  align-items: center;
}
.voice-demo[data-voice-active="true"] .voice-controls .btn-primary {
  background: linear-gradient(135deg, #ef4444, #db2777);
  box-shadow: 0 10px 28px -10px rgba(219, 39, 119, 0.4);
}
.voice-hint {
  text-align: center;
  color: var(--fg-muted);
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  margin: 0;
}
.voice-nosupport {
  text-align: center;
  color: var(--fg-muted);
  font-size: 13px;
  margin: 0;
  padding: var(--space-3);
  background: var(--bg-1);
  border-radius: var(--radius-md);
}

/* ===========================================
   Before/after (website subpage)
   =========================================== */
.beforeafter {
  position: relative;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  aspect-ratio: 16 / 10;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  cursor: ew-resize;
  user-select: none;
}
.beforeafter .layer {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.beforeafter .layer.after { clip-path: inset(0 0 0 var(--split, 50%)); }
.beforeafter .handle {
  position: absolute;
  top: 0; bottom: 0;
  left: var(--split, 50%);
  width: 2px;
  background: var(--accent-cyan);
  transform: translateX(-50%);
}
.beforeafter .handle::after {
  content: "↔";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--accent-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-cyan);
  font-size: 14px;
  box-shadow: 0 0 18px rgba(8,145,178,0.25);
}
.beforeafter .layer.before {
  background: #e9e2d2;
  overflow: hidden;
}
.beforeafter .layer.after {
  background: radial-gradient(120% 80% at 70% 0%, rgba(124,58,237,0.18), transparent 60%),
              radial-gradient(120% 80% at 20% 100%, rgba(8,145,178,0.18), transparent 60%),
              linear-gradient(180deg, #0b1020 0%, #111634 100%);
  overflow: hidden;
}

/* --- Mock-Screenshot: alte Website -------------------------------- */
.mock { position: absolute; inset: 0; padding: 14px 18px; box-sizing: border-box; }
.mock-old {
  font-family: "Times New Roman", Times, serif;
  color: #1a1a1a;
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,0.025) 0 1px, transparent 1px 18px),
    #f5efe1;
  display: flex; flex-direction: column; gap: 10px;
}
.mock-old-bar {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding-bottom: 8px;
  border-bottom: 2px ridge #b9a37a;
}
.mock-old-title {
  font-family: "Comic Sans MS", "Brush Script MT", cursive;
  font-size: 22px;
  color: #b00;
  text-shadow: 1px 1px 0 #fc0;
  letter-spacing: 0.5px;
}
.mock-old-nav {
  font-size: 11px;
  color: #0000ee;
  text-decoration: underline;
}
.mock-old-banner {
  background: repeating-linear-gradient(45deg, #ff0 0 8px, #f80 8px 16px);
  color: #b00;
  text-align: center;
  padding: 6px;
  font-weight: bold;
  font-size: 12px;
  border: 2px outset #f80;
  animation: mock-blink 1.6s steps(2, start) infinite;
}
@keyframes mock-blink { 50% { opacity: 0.65; } }
.mock-old-body { display: flex; gap: 12px; flex: 1; }
.mock-old-img {
  flex: 0 0 110px;
  background:
    linear-gradient(135deg, #888 25%, #aaa 25% 50%, #888 50% 75%, #aaa 75%) 0 0 / 18px 18px,
    #999;
  border: 3px ridge #777;
}
.mock-old-text { flex: 1; font-size: 11px; line-height: 1.45; }
.mock-old-text p { margin: 0 0 6px; }
.mock-old-link { color: #0000ee; text-decoration: underline; }
.mock-old-foot {
  margin-top: auto;
  text-align: center;
  font-size: 10px;
  color: #555;
  border-top: 1px solid #c8b88f;
  padding-top: 6px;
}

/* --- Mock-Screenshot: neue Website -------------------------------- */
.mock-new {
  color: #f1f5ff;
  display: flex; flex-direction: column; gap: 14px;
  padding: 16px 22px;
}
.mock-new-bar {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mock-new-brand {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
}
.mock-new-dot {
  width: 10px; height: 10px;
  border-radius: 3px;
  background: linear-gradient(135deg, #06b6d4, #a21caf);
}
.mock-new-nav {
  margin-left: auto;
  display: inline-flex; gap: 14px;
}
.mock-new-nav i {
  display: inline-block;
  width: 28px; height: 4px;
  background: rgba(255,255,255,0.22);
  border-radius: 2px;
}
.mock-new-cta {
  font-family: var(--font-display);
  font-size: 11px;
  padding: 6px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #6d28d9, #db2777);
  color: #fff;
}
.mock-new-hero {
  flex: 1;
  display: flex; flex-direction: column; gap: 8px;
  padding: 4px 4px 0;
}
.mock-new-eyebrow {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  color: #93a0c2;
}
.mock-new-hero h4 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(18px, 3vw, 26px);
  line-height: 1.05;
  margin: 0;
  letter-spacing: -0.01em;
}
.mock-new-hero h4 span {
  color: var(--accent);
}
.mock-new-hero p {
  font-size: 11px;
  color: rgba(241,245,255,0.75);
  margin: 0;
  max-width: 36ch;
  line-height: 1.5;
}
.mock-new-actions { display: inline-flex; gap: 8px; margin-top: 4px; }
.mock-new-btn {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #6d28d9, #db2777);
  color: #fff;
}
.mock-new-btn.ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.28);
  color: rgba(255,255,255,0.9);
}
.mock-new-cards {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.mock-new-cards > div {
  height: 56px;
  border-radius: 8px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
}
.mock-new-cards > div::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.06), transparent);
  transform: translateX(-100%);
  animation: mock-shimmer 3.2s linear infinite;
}
@keyframes mock-shimmer { to { transform: translateX(100%); } }
.beforeafter .label {
  position: absolute;
  bottom: 12px;
  padding: 6px 10px;
  background: rgba(255,255,255,0.9);
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg);
  pointer-events: none;
  border: 1px solid var(--border);
}
.beforeafter .label.l { left: 12px; }
.beforeafter .label.r { right: 12px; }

/* ===========================================
   CTA Block (shared)
   =========================================== */
.cta-block {
  text-align: center;
  padding: clamp(var(--space-7), 8vw, var(--space-9)) var(--space-5);
  border-radius: var(--radius-lg);
  background: var(--fg);
  border: 1px solid var(--fg);
  display: grid;
  gap: var(--space-4);
  justify-items: center;
  max-width: 1000px;
  margin: 0 auto;
}
.cta-block h2 { font-size: clamp(28px, 4vw, 48px); margin: 0; font-weight: 700; color: var(--dark-fg); }
.cta-block p { color: var(--dark-muted); max-width: 50ch; margin: 0; }
.cta-block .cta-actions { display: flex; gap: var(--space-3); flex-wrap: wrap; justify-content: center; margin-top: var(--space-3); }
/* Sekundär-Button auf dunklem CTA-Block sichtbar (vorher schwarz-auf-schwarz) */
.cta-block .btn-ghost {
  --btn-bg: rgba(255,255,255,0.08);
  --btn-border: rgba(255,255,255,0.30);
  color: #fff;
}
.cta-block .btn-ghost:hover { --btn-bg: rgba(255,255,255,0.18); }


/* ===========================================
   HERO — Video-Scroll-Story (ganzer Hintergrund)
   Seite 1: Hand+Handy schwebt · Scroll: Handy löst
   sich · Seite 2: Hand tippt → Chat öffnet.
   =========================================== */
.hero--video {
  position: relative;
  display: block;
  /* WICHTIG: .hero setzt overflow:hidden — das killt position:sticky.
     Das Clipping übernimmt stattdessen .hero-sticky. */
  overflow: visible;
  min-height: 100svh;
  background: #F7F1E5; /* Creme des Videos — nahtloser Rand */
  color: var(--fg);
}
/* JS aktiviert die Scroll-Story: 4 Viewport-Höhen Scrollweg
   (Seite 1 Schweben halten · Übergang · Seite 2 Tipp — die längere
   Story braucht mehr Weg für ruhiges, frame-genaues Scrubbing). */
.hero--video.is-scrolly { height: 400vh; }

.hero-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 560px;
  overflow: hidden;
  display: flex;
  align-items: center;
}
@supports not (height: 100svh) {
  .hero--video { min-height: 100vh; }
  .hero-sticky { height: 100vh; }
}

/* Video = kompletter Hintergrund */
.hero-media { position: absolute; inset: 0; z-index: 0; }
.hero-media video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 68% 40%; /* Hand rechts im Bild halten */
}
.hv-story { opacity: 0; }

/* Lesbarkeits-Verlauf hinter dem Text (links) */
.hero-shade {
  position: absolute; inset: 0;
  background: linear-gradient(90deg,
    rgba(250,248,242,0.94) 0%,
    rgba(250,248,242,0.78) 32%,
    rgba(250,248,242,0.25) 55%,
    rgba(250,248,242,0) 68%);
}

/* Gold-Netzwerk über dem ganzen Hero */
.hero-net { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-net .hn-dots circle { animation: hnTwinkle 4.5s ease-in-out infinite; }
.hero-net .hn-dots circle:nth-child(2n) { animation-duration: 6s; animation-delay: .7s; }
.hero-net .hn-dots circle:nth-child(3n) { animation-duration: 7s; animation-delay: 1.4s; }
@keyframes hnTwinkle { 0%, 100% { opacity: .25; } 50% { opacity: .75; } }

/* Text liegt über dem Video */
.hero--video .hero-split-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: calc(var(--nav-h) + var(--space-6)) var(--space-6) var(--space-7);
  display: block;
}
.hero--video .hero-left {
  max-width: 560px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: var(--space-5);
}
.hero--video .hero-h1 {
  font-size: clamp(38px, 3.4vw + 18px, 64px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.07;
  color: var(--fg);
  margin: 0;
  text-wrap: balance;
}
.hero--video .word-cycle { display: block; width: 100%; }
.hero--video .word-cycle .wc-word { left: 0; right: auto; text-align: left; }
.hero--video .hero-sub {
  font-size: clamp(16px, 0.7vw + 14px, 19px);
  color: var(--fg-muted);
  line-height: 1.7;
  max-width: 44ch;
  margin: 0;
}
.hero--video .hero-cta {
  display: flex;
  gap: var(--space-3);
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
}

@media (max-width: 900px) {
  .hero-media video { object-position: 72% 32%; }
  /* Schmales Fenster mit Maus: Overlay bleibt, aber Verlauf deutlich stärker */
  .hero-shade {
    background: linear-gradient(180deg,
      rgba(250,248,242,0.97) 0%,
      rgba(250,248,242,0.93) 46%,
      rgba(250,248,242,0.55) 68%,
      rgba(250,248,242,0.1) 88%);
  }
  .hero--video .hero-left { max-width: 100%; }
}

/* Touch-Geräte: keine Scroll-Story — Text oben auf ruhigem Grund,
   Video als eigene Karte darunter (voll lesbar, kein Text-über-Handy). */
@media (pointer: coarse) and (max-width: 900px) {
  .hero-sticky {
    position: static;
    height: auto;
    min-height: 100svh;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding-bottom: var(--space-6);
  }
  .hero-media {
    position: relative;
    inset: auto;
    order: 2;
    aspect-ratio: 16 / 10;
    margin: 0 var(--space-4);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 56px -28px rgba(120, 90, 20, 0.35);
  }
  .hero-media video { object-position: 62% 40%; }
  .hero-shade { display: none; }
  .hero--video .hero-split-inner {
    padding-top: calc(var(--nav-h) + var(--space-5));
    padding-bottom: var(--space-5);
  }
  .hero--video .hero-left { align-items: center; text-align: center; }
  .hero--video .word-cycle .wc-word { left: 0; right: 0; text-align: center; }
  .hero--video .hero-sub { margin: 0 auto; }
  .hero--video .hero-cta { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-net .hn-dots circle { animation: none; }
}

/* ===========================================
   NIGHT-REDESIGN 2026-07 — Ambient Motion + fette Typo
   (igloo: es bewegt sich immer etwas · wimpdecaf: grosse Schrift
    functionhealth: clean & ruhig · webkinder: klare Struktur)
   =========================================== */

/* ---- Hero: atmender Gold-Glow hinter der Hand (Bewegung ohne Scroll) ---- */
.hero-glow {
  position: absolute;
  right: -8%;
  top: 18%;
  width: 46vw;
  height: 46vw;
  max-width: 700px;
  max-height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,0.20) 0%, rgba(201,168,76,0.08) 42%, transparent 68%);
  filter: blur(12px);
  pointer-events: none;
  animation: heroGlowBreathe 7s var(--ease-in-out) infinite;
}
@keyframes heroGlowBreathe {
  0%, 100% { transform: scale(1);    opacity: .75; }
  50%      { transform: scale(1.12); opacity: 1; }
}

/* ---- Hero: Gold-Netz treibt langsam (kaum merklich, aber lebendig) ---- */
.hero-net {
  animation: heroNetDrift 26s var(--ease-in-out) infinite alternate;
}
@keyframes heroNetDrift {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-22px, 10px, 0); }
}

/* ---- Hero: Scroll-Einladung ---- */
.hero-scrollcue {
  position: absolute;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  opacity: 1;
  transition: opacity 600ms var(--ease-out);
  pointer-events: none;
}
.hero--video.has-scrolled .hero-scrollcue { opacity: 0; }
.hsc-line {
  width: 1.5px;
  height: 42px;
  background: linear-gradient(180deg, transparent, var(--accent));
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.hsc-line::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.9) 50%, transparent 100%);
  animation: hscPulse 2.2s var(--ease-in-out) infinite;
}
@keyframes hscPulse {
  from { transform: translateY(-100%); }
  to   { transform: translateY(100%); }
}
.hsc-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8F7326;
  white-space: nowrap;
  max-width: calc(100vw - 32px);
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 480px) {
  .hsc-label { font-size: 9.5px; letter-spacing: 0.06em; }
}
/* Auf Touch gibt es keine Scroll-Story — Cue weg */
@media (pointer: coarse) and (max-width: 900px) { .hero-scrollcue { display: none; } }

/* ---- Marquee: läuft immer, volle Breite ---- */
.marquee {
  overflow: hidden;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #fff;
  padding-block: 18px;
  position: relative;
  z-index: 1;
}
.marquee-track {
  display: inline-flex;
  align-items: center;
  gap: 40px;
  white-space: nowrap;
  will-change: transform;
  animation: marqueeScroll 30s linear infinite;
  padding-right: 40px;
}
.marquee-track span {
  font-family: var(--font-display);
  font-size: clamp(15px, 1.1vw + 10px, 20px);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--fg);
}
.marquee-track i {
  font-style: normal;
  font-size: 10px;
  color: var(--accent);
}
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ---- Statement: eine riesige Zeile (wimpdecaf) ---- */
.statement-band { text-align: left; }
.statement {
  font-family: var(--font-display);
  font-size: var(--fs-statement);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: var(--fg);
  margin: 0 0 var(--space-5);
  text-wrap: balance;
}
.statement em {
  font-style: normal;
  /* dunkleres Gold: grosse Display-Schrift braucht >=3:1 auf Weiss */
  color: #A8862F;
}
.statement-sub {
  font-size: var(--fs-lead);
  color: var(--fg-muted);
  max-width: 52ch;
  margin: 0;
}

/* ---- CTA-Block: wandernder Gold-Schein (Bewegung im Stillstand) ---- */
.cta-glow {
  position: relative;
  overflow: hidden;
}
.cta-glow::before {
  content: "";
  position: absolute;
  width: 60%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,0.28) 0%, transparent 65%);
  top: -30%;
  left: -20%;
  filter: blur(30px);
  animation: ctaAurora 13s var(--ease-in-out) infinite alternate;
  pointer-events: none;
}
@keyframes ctaAurora {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(130%, 55%) scale(1.25); }
}
.cta-block > * { position: relative; z-index: 1; }
.cta-block h2 { font-size: clamp(32px, 4.5vw, 60px); letter-spacing: -0.028em; }

/* ---- Service-Demo „Chat": Konversation loopt (wirkt live) ---- */
@media (prefers-reduced-motion: no-preference) {
  .sd-chat .sdc-user { animation: sdcUser 9s var(--ease-out) infinite; }
  .sd-chat .sdc-bot  { animation: sdcBot  9s var(--ease-out) infinite; }
}
@keyframes sdcUser {
  0%, 3%   { opacity: 0; transform: translateY(7px); }
  9%, 84%  { opacity: 1; transform: translateY(0); }
  93%,100% { opacity: 0; transform: translateY(-4px); }
}
@keyframes sdcBot {
  0%, 17%  { opacity: 0; transform: translateY(7px); }
  25%, 84% { opacity: 1; transform: translateY(0); }
  93%,100% { opacity: 0; transform: translateY(-4px); }
}

/* ---- Service-Demo „Website": Skeleton atmet ---- */
@media (prefers-reduced-motion: no-preference) {
  .sd-web .sdw-hero { animation: sdwBreathe 4.5s var(--ease-in-out) infinite; }
  .sd-web .sdw-line { animation: sdwBreathe 4.5s var(--ease-in-out) infinite; animation-delay: .6s; }
  .sd-web .sdw-line--wide { animation-delay: .3s; }
}
@keyframes sdwBreathe {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.45; }
}

/* ---- Prozess-Nummern: grösser, goldener Auftritt ---- */
.process-steps--light .process-num {
  font-size: clamp(28px, 2vw + 18px, 40px);
  font-weight: 700;
  color: var(--accent);
  opacity: 0.9;
}

/* ---- Ruhe für alle, die es wünschen ---- */
@media (prefers-reduced-motion: reduce) {
  .hero-glow,
  .hero-net,
  .hsc-line::after,
  .marquee-track,
  .cta-glow::before { animation: none; }
  .marquee { overflow-x: auto; }
}
