  /* ── Flächenrhythmus ────────────────────────────────────────────
     Hinweis: --bg-soft / --dark sind in style.css alle auf #ffffff
     gesetzt, deshalb wirken .section--soft und .section--dark heute
     nicht. Die Bänder hier definieren die Tokens lokal neu — Grafiken,
     Karten, Tabellen und Formularfelder ziehen dadurch automatisch mit. */

  .band-cream { background: #faf8f4; }

  /* Textsections zentriert setzen, statt rechts ein Drittel leer zu lassen */
  .section-head.center  { text-align: center; margin-left: auto; margin-right: auto; }
  .section-head.center .lede { margin-left: auto; margin-right: auto; }
  .prose.center p { margin-left: auto; margin-right: auto; text-align: center; }
  .hero-actions.center { justify-content: center; }




  .product-hero .p-chips { justify-content: center; }
  .p-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: clamp(1.6rem, 3vw, 2.2rem); padding: 0; list-style: none; }
  .p-chip { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid var(--gold-line); border-radius: 999px; padding: 0.5rem 1rem 0.5rem 0.85rem; font-size: 0.9rem; color: var(--text-dim); background: var(--surface); }
  .p-chip svg { width: 15px; height: 15px; color: var(--gold-deep); flex: none; }
  .form-grid { display: grid; gap: 1rem 1.4rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
  .field { display: flex; flex-direction: column; gap: 0.4rem; }
  .field--wide { grid-column: 1 / -1; }
  .field label { font-size: 0.85rem; font-weight: 500; color: var(--text); }
  .field input, .field select, .field textarea { font: inherit; font-size: 0.95rem; color: var(--text); background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); padding: 0.7rem 0.85rem; width: 100%; }
  .field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--gold); outline-offset: 1px; border-color: var(--gold-line); }
  .field textarea { min-height: 7rem; resize: vertical; }
  .form-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.6rem; }
  .form-note { margin-top: 1.2rem; font-size: 0.87rem; line-height: 1.6; color: var(--text-faint); }
  .kontaktform { max-width: 46rem; margin: 0 auto; }
  .kontaktform .form-actions { justify-content: center; margin-top: clamp(1.8rem, 3.2vw, 2.6rem); }
  #kontakt { padding-bottom: clamp(2.75rem, 5vw, 4.25rem); }   /* war clamp(4rem, 8vw, 7.5rem) */
  .faq { margin-inline: auto; }
  .honigtopf { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
  .req { color: var(--gold-deep); text-decoration: none; font-weight: 600; }
  .consent { display: flex; align-items: flex-start; gap: 0.7rem; justify-content: center; margin-top: 0.6rem; }
  .consent input { width: 18px; height: 18px; margin-top: 0.15rem; accent-color: var(--gold-deep); flex: none; }
  .consent label { font-size: 0.93rem; font-weight: 400; color: var(--text-dim); line-height: 1.5; }
  .consent a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 2px; }

  /* ── Hero ────────────────────────────────────────────────────────
     Hierarchie: Wortmarke > Unterzeile > Claim.
     Gold #e8b463 wie gewünscht (Kontrast 1,9:1 — unter der Norm von 3:1;
     lesbare Alternative unten). */

  /* Luft nach oben: Topbar 40 px + Navi 62 px kleben sonst am Titel */
  .product-hero { padding-top: clamp(5.5rem, 9vw, 9rem); padding-bottom: clamp(4.5rem, 8vw, 7.5rem); }

  .product-hero .product-mark { gap: 0.9rem; margin-bottom: clamp(2rem, 3.5vw, 2.8rem); }
  .page-product .product-name { font-size: clamp(3.4rem, 7.5vw, 6rem); color: var(--gold); line-height: 0.95; }
  .product-tagline            { font-size: clamp(1.5rem, 2.9vw, 2.5rem); font-weight: 500; color: var(--text); letter-spacing: -0.01em; }

  /* Der Claim ordnet sich unter — er ist die Aussage, nicht die Marke */
  .product-hero h1 { font-size: clamp(1.5rem, 2.5vw, 2.05rem); font-weight: 500; letter-spacing: -0.01em; }
  .page-product .product-hero .accent { color: var(--gold); }

  .product-hero .lede { max-width: 52rem; margin-top: clamp(1.6rem, 3vw, 2.3rem); }
  .hero-fig { margin-top: clamp(2.75rem, 5.5vw, 4.5rem); }

  /* Lesbare Variante — nur diese zwei Farben tauschen:
     .page-product .product-name, .page-product .product-hero .accent { color: #c4821d; } */

  .product-hero {
    background:
      radial-gradient(80rem 34rem at 50% -8rem, rgba(232, 180, 99, 0.14), transparent 62%),
      linear-gradient(180deg, #fffdf9 0%, #ffffff 70%);
  }
  /* ── Produkt-Darstellungen ──────────────────────────────────────
     Stilisierte Ansichten der Oberfläche. Ersetzen die alten
     Kästchen-Diagramme, bis die echten Screenshots vorliegen. */
  .plan-converge svg.ui { overflow: hidden; }   /* schlägt .plan-converge svg { overflow: visible } */
  .ui { width: 100%; height: auto; display: block; border-radius: var(--radius); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-sm); overflow: hidden; }
  .ui-frame   { fill: var(--surface); }
  .ui-bar     { fill: var(--surface-2); }
  .ui-dot     { fill: var(--line-strong); }
  .ui-rule    { stroke: var(--line); stroke-width: 1; }
  .ui-row     { fill: var(--surface-2); opacity: 0.55; }
  .ui-axis    { fill: var(--text-faint); font-size: 11px; font-family: 'JetBrains Mono', monospace; }
  .ui-mach    { fill: var(--text-dim); font-size: 12px; font-weight: 500; }
  .ui-head    { fill: var(--text); font-size: 13px; font-weight: 600; }
  .ui-sub     { fill: var(--text-faint); font-size: 11.5px; }
  .ui-val     { fill: var(--text); font-size: 15px; font-weight: 600; font-family: 'JetBrains Mono', monospace; }
  .ui-job     { fill: var(--gold); }
  .ui-job-2   { fill: var(--gold-pale); }
  .ui-job-late{ fill: #c2410c; }
  .ui-job-new { fill: none; stroke: var(--gold-deep); stroke-width: 1.5; stroke-dasharray: 4 3; }
  .ui-now     { stroke: var(--gold-deep); stroke-width: 1.5; stroke-dasharray: 3 3; }
  .ui-due     { stroke: #c2410c; stroke-width: 1.5; }
  .ui-btn     { fill: var(--gold); }
  .ui-btn-txt { fill: #1a1206; font-size: 11.5px; font-weight: 600; }
  .ui-btn-gh  { fill: none; stroke: var(--line-strong); stroke-width: 1; }
  .ui-btn-gh-txt { fill: var(--text-dim); font-size: 11.5px; font-weight: 500; }
  .ui-chat-q  { fill: var(--surface-2); stroke: var(--line); stroke-width: 1; }
  .ui-chat-a  { fill: var(--gold-soft); stroke: var(--gold-line); stroke-width: 1; }
  .ui-txt     { fill: var(--text); font-size: 12.5px; }
  .ui-txt-dim { fill: var(--text-dim); font-size: 12px; }
  .hero-fig { margin: clamp(2.75rem,6vw,4.5rem) 0 0; }
  .fig-cap { margin-top: 0.9rem; font-size: 0.85rem; line-height: 1.5; color: var(--text-faint); }

  .challenges { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: 0.7rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); }
  .challenges li { position: relative; padding-left: 1.8rem; font-size: 1rem; line-height: 1.6; color: var(--text-dim); }
  .challenges li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 8px; height: 8px; border-radius: 2px; background: var(--gold); }
  /* Icon-Karten: zentriert, Symbol in hellem Gold statt Nummern */
  .steps--icons .step { align-items: center; text-align: center; gap: 0.65rem; padding-block: clamp(1.8rem, 3vw, 2.4rem); }
  .steps--icons .step-icon { width: 40px; height: 40px; color: var(--gold); margin: 0 0 0.4rem; stroke-width: 1.6; }
  .steps--icons .step h3 { font-size: 1.15rem; }

  /* Karten: gleiche Höhe kommt vom Grid, Innenabstände bleiben gleich.
     Kein margin-top:auto — das drückt den Text an den Kartenboden. */
  .steps { align-items: stretch; }
  .step  { display: flex; flex-direction: column; gap: 0.5rem; }
  .step h3 { margin: 0; }
  .step p  { margin: 0; }

  /* Screenshot-Karten: Bildunterschriften auf gleicher Höhe */
  .shot { display: flex; flex-direction: column; }
  .shot figcaption { margin-top: 0.85rem; display: flex; flex-direction: column; gap: 0.15rem; min-height: 0; text-align: center; }
  .shot figcaption strong { font-size: 1.02rem; font-weight: 500; color: var(--text); }
  .shot figcaption span   { font-size: 0.93rem; line-height: 1.55; color: var(--text-dim); }

  /* Vorschlagskarte bekommt mehr Raum, der Text weniger Wüste */
  .showcase--wide { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .showcase--wide .showcase-body { max-width: 42rem; }   /* stand auf 33rem */

  /* style.css setzt keinen Absatzabstand im showcase-body — die Absätze klebten aneinander */
  .showcase-body p { margin: 0 0 1.15rem; line-height: 1.72; }
  .showcase-body p:last-child { margin-bottom: 0; }
  .steps--3 { grid-template-columns: repeat(3, 1fr); }
  @media (max-width: 900px) { .steps--3 { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 600px) { .steps--3 { grid-template-columns: 1fr; } }
  .quotes { display: grid; gap: clamp(0.9rem, 2vw, 1.3rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); margin-top: 1.6rem; }
  .quote { margin: 0; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gold-line); border-radius: var(--radius-sm); padding: 1.1rem 1.3rem; font-size: 1rem; line-height: 1.6; color: var(--text-dim); }
  .quote::before { content: "„"; }
  .quote::after { content: "“"; }
  .kennen-sie-das { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
  .fit-note { margin-top: clamp(1.5rem, 3vw, 2rem); }
  .stack-lg { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
  .stack-md { margin-top: clamp(2rem, 4vw, 3rem); }
  .bare { padding-left: 0; padding-right: 0; }

/* Mobil: breite Showcase-Sections (Text + Bild) untereinander stapeln.
   Muss hier stehen (nicht nur in style.css), weil diese Datei später lädt
   und .showcase--wide sonst die Stapel-Regel aus style.css überschreibt. */
@media (max-width: 860px) {
  .showcase--wide { grid-template-columns: 1fr; }
}
