
    /* Keine externen Fonts: kein Request an Google, damit kein Cookie-/Consent-Banner nötig ist. */

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

    :root {
      --bg: #0c0c0c;
      --surface: rgba(255,255,255,0.025);
      --surface-hover: rgba(255,255,255,0.055);
      --border: rgba(255,255,255,0.07);
      --border-hover: rgba(255,255,255,0.18);
      --text: #efefef;
      --text-dim: #787878;
      --text-muted: #3a3a3a;
    }

    body {
      background: var(--bg);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
      min-height: 100vh;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
    }

    /* ── Animated background ── */
    .bg {
      position: fixed;
      inset: 0;
      z-index: 0;
      overflow: hidden;
    }

    .blob {
      position: absolute;
      border-radius: 50%;
      filter: blur(90px);
      opacity: 0;
      animation: appear 1.5s ease forwards;
    }

    .blob-1 {
      width: 700px; height: 700px;
      background: radial-gradient(circle at center, #3a3a3a 0%, transparent 65%);
      top: -200px; left: -150px;
      animation: appear 1.5s ease forwards, drift1 22s ease-in-out 1.5s infinite;
    }
    .blob-2 {
      width: 550px; height: 550px;
      background: radial-gradient(circle at center, #555 0%, transparent 65%);
      bottom: -150px; right: -100px;
      animation: appear 1.5s 0.3s ease forwards, drift2 28s ease-in-out 1.8s infinite;
    }
    .blob-3 {
      width: 400px; height: 400px;
      background: radial-gradient(circle at center, #444 0%, transparent 65%);
      top: 45%; left: 55%;
      animation: appear 1.5s 0.6s ease forwards, drift3 19s ease-in-out 2.1s infinite;
    }

    @keyframes appear {
      to { opacity: 0.18; }
    }
    @keyframes drift1 {
      0%,100% { transform: translate(0,0); }
      30%      { transform: translate(90px, 70px); }
      65%      { transform: translate(-50px, 120px); }
    }
    @keyframes drift2 {
      0%,100% { transform: translate(0,0); }
      35%      { transform: translate(-80px,-90px); }
      70%      { transform: translate(60px,-50px); }
    }
    @keyframes drift3 {
      0%,100% { transform: translate(-50%,-50%); }
      40%      { transform: translate(-65%,-40%); }
      75%      { transform: translate(-38%,-60%); }
    }

    /* subtle grid */
    .bg::after {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
      background-size: 72px 72px;
    }

    /* ── Layout ── */
    .wrap {
      position: relative;
      z-index: 1;
      max-width: 1080px;
      margin: 0 auto;
      padding: 0 44px;
    }

    /* ── hidden muss hidden bleiben ───────────────────────────────────────
       Das Browser-Standardblatt setzt [hidden] { display: none }. Jede eigene
       display-Regel schlaegt das — .form { display: grid } liess damit alle
       Anmeldemasken sichtbar, obwohl sie hidden waren. Deshalb hier hart. */
    [hidden] { display: none !important; }

    /* ── Nav ── */
    nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 36px 0;
      border-bottom: 1px solid var(--border);
    }

    .brand {
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--text);
      text-decoration: none;
    }

    .nav-right {
      display: flex;
      align-items: center;
      gap: 32px;
    }

    .nav-link {
      font-size: 12px;
      color: var(--text-dim);
      text-decoration: none;
      letter-spacing: 0.04em;
      transition: color 0.2s;
    }
    .nav-link:hover { color: var(--text); }

    /* ── Hero ── */
    .hero {
      padding: 110px 0 90px;
      display: grid;
      grid-template-columns: 1fr 160px;
      align-items: flex-end;
      gap: 48px;
    }

    .eyebrow {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 28px;
    }

    h1 {
      font-size: clamp(40px, 5.5vw, 76px);
      font-weight: 300;
      line-height: 1.06;
      letter-spacing: -0.025em;
    }

    h1 em {
      font-style: normal;
      font-weight: 600;
      color: var(--text);
    }

    .hero-desc {
      margin-top: 30px;
      font-size: 15px;
      font-weight: 300;
      color: var(--text-dim);
      line-height: 1.75;
      max-width: 400px;
    }

    .hero-cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 40px;
      padding: 11px 22px;
      border: 1px solid var(--border-hover);
      border-radius: 8px;
      font-size: 13px;
      font-weight: 500;
      color: var(--text);
      text-decoration: none;
      transition: background 0.2s, border-color 0.2s;
    }
    .hero-cta:hover {
      background: rgba(255,255,255,0.06);
    }

    /* ── Visualizer ── */
    .viz {
      display: flex;
      align-items: flex-end;
      justify-content: flex-end;
      gap: 3px;
      height: 64px;
      padding-bottom: 6px;
      opacity: 0.35;
    }

    .viz-bar {
      width: 3px;
      border-radius: 2px 2px 0 0;
      background: var(--text);
      animation: eq var(--d,1s) ease-in-out infinite alternate;
      transform-origin: bottom;
    }

    @keyframes eq {
      from { height: 6px; opacity: 0.4; }
      to   { height: var(--h,30px); opacity: 1; }
    }

    /* ── Divider ── */
    .rule {
      height: 1px;
      background: var(--border);
    }

    /* ── Clients ── */
    .clients {
      padding: 72px 0 96px;
    }

    .section-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-bottom: 44px;
    }

    .section-tag {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    .section-note {
      font-size: 12px;
      color: var(--text-muted);
    }

    /* 3×3 grid */
    .grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      border: 1px solid var(--border);
      border-radius: 18px;
      overflow: hidden;
    }

    .cell {
      position: relative;
      background: var(--surface);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border-right: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      text-decoration: none;
      color: var(--text-dim);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 38px 28px;
      min-height: 148px;
      overflow: hidden;
      transition: background 0.25s, color 0.25s;
    }

    /* remove right border on last column */
    .cell:nth-child(3n) { border-right: none; }
    /* remove bottom border on last row */
    .cell:nth-last-child(-n+3) { border-bottom: none; }

    .cell::after {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at 50% 120%, rgba(255,255,255,0.06) 0%, transparent 60%);
      opacity: 0;
      transition: opacity 0.3s;
      pointer-events: none;
    }

    .cell:hover {
      background: var(--surface-hover);
      color: var(--text);
    }

    .cell:hover::after { opacity: 1; }

    .logo-box {
      width: 50px;
      height: 50px;
      border-radius: 14px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,0.04);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: -0.03em;
      color: rgba(255,255,255,0.45);
      overflow: hidden;
      flex-shrink: 0;
    }

    .logo-box img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      padding: 6px;
      filter: brightness(0) invert(1);
      opacity: 0.55;
      transition: opacity 0.25s;
    }

    .cell:hover .logo-box img { opacity: 0.85; }

    .client-name {
      font-size: 13px;
      font-weight: 500;
      text-align: center;
    }

    .client-tag {
      font-size: 10px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
      text-align: center;
    }

    .arrow {
      position: absolute;
      top: 14px;
      right: 16px;
      font-size: 11px;
      color: var(--text-muted);
      opacity: 0;
      transform: translateX(-4px);
      transition: opacity 0.2s, transform 0.2s;
    }
    .cell:hover .arrow {
      opacity: 1;
      transform: translateX(0);
    }

    /* ── Footer ── */
    footer {
      border-top: 1px solid var(--border);
      padding: 28px 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .foot-copy {
      font-size: 12px;
      color: var(--text-muted);
    }

    .foot-email {
      font-size: 12px;
      color: var(--text-muted);
      text-decoration: none;
      transition: color 0.2s;
    }
    .foot-email:hover { color: var(--text-dim); }

    /* ── Responsive ── */
    @media (max-width: 720px) {
      .wrap { padding: 0 22px; }
      .hero { grid-template-columns: 1fr; }
      .viz  { display: none; }
      .grid { grid-template-columns: repeat(2,1fr); border-radius: 14px; }
      .cell:nth-child(3n) { border-right: 1px solid var(--border); }
      .cell:nth-child(2n) { border-right: none; }
      .cell:nth-last-child(-n+2) { border-bottom: none; }
      .cell:nth-last-child(-n+3) { border-bottom: 1px solid var(--border); }
    }

    @media (max-width: 440px) {
      .grid { grid-template-columns: 1fr; }
      .cell { border-right: none !important; }
      .cell:last-child { border-bottom: none !important; }
    }

    /* ══════════════════════════════════════════════════════════════════
       Erweiterungen: Leistungen, Pakete, Bestellung, Status, Partner
       ══════════════════════════════════════════════════════════════════ */

    a { color: inherit; }

    .lede {
      max-width: 62ch;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text-dim);
    }
    .lede + .lede { margin-top: 14px; }

    /* ── Leistungen ── */
    .services {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: var(--border);
      border: 1px solid var(--border);
      border-radius: 16px;
      overflow: hidden;
      margin-top: 34px;
    }
    .svc {
      background: var(--bg);
      padding: 26px 24px 28px;
      transition: background 0.2s;
    }
    .svc:hover { background: var(--surface); }
    .svc-num {
      font-size: 10px;
      letter-spacing: 0.14em;
      color: var(--text-muted);
      font-variant-numeric: tabular-nums;
    }
    .svc h3 {
      font-size: 15px;
      font-weight: 500;
      margin: 14px 0 8px;
      letter-spacing: -0.01em;
    }
    .svc p {
      font-size: 13px;
      line-height: 1.65;
      color: var(--text-dim);
    }

    /* ── Pakete ── */
    .pakete {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-top: 34px;
      align-items: start;
    }
    .paket {
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 26px 24px 24px;
      background: var(--surface);
      display: flex;
      flex-direction: column;
      gap: 16px;
      min-height: 100%;
      transition: border-color 0.2s, background 0.2s;
    }
    .paket:hover { border-color: var(--border-hover); }
    .paket.mark { border-color: rgba(255,255,255,0.22); background: rgba(255,255,255,0.045); }
    .paket-name {
      font-size: 13px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-dim);
    }
    .paket-preis {
      font-size: 30px;
      font-weight: 300;
      letter-spacing: -0.02em;
      font-variant-numeric: tabular-nums;
    }
    .paket-preis small { font-size: 12px; color: var(--text-muted); letter-spacing: 0; }
    .paket-tag { font-size: 13px; color: var(--text-dim); line-height: 1.6; }
    .paket ul { list-style: none; display: grid; gap: 9px; }
    .paket li {
      font-size: 13px;
      line-height: 1.55;
      color: var(--text-dim);
      padding-left: 18px;
      position: relative;
    }
    .paket li::before {
      content: "";
      position: absolute;
      left: 2px; top: 8px;
      width: 5px; height: 5px;
      border-radius: 50%;
      background: var(--text-muted);
    }
    .paket .btn { margin-top: auto; }

    /* ── Buttons / Formular ── */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 12px 20px;
      border-radius: 999px;
      border: 1px solid var(--border-hover);
      background: transparent;
      color: var(--text);
      font: inherit;
      font-size: 13px;
      cursor: pointer;
      text-decoration: none;
      transition: background 0.2s, border-color 0.2s, transform 0.1s;
    }
    .btn:hover { background: var(--surface-hover); border-color: rgba(255,255,255,0.32); }
    .btn:active { transform: translateY(1px); }
    .btn-solid { background: var(--text); color: #0c0c0c; border-color: var(--text); font-weight: 500; }
    .btn-solid:hover { background: #fff; border-color: #fff; }
    .btn[disabled] { opacity: 0.45; cursor: not-allowed; }

    .form { display: grid; gap: 18px; max-width: 620px; margin-top: 30px; }
    .row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
    .field { display: grid; gap: 7px; }
    .field label {
      font-size: 11px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
    }
    .field input, .field textarea, .field select {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 12px 14px;
      color: var(--text);
      font: inherit;
      font-size: 16px; /* verhindert iOS-Zoom beim Fokus */
      width: 100%;
    }
    .field textarea { min-height: 110px; resize: vertical; line-height: 1.6; }
    .field input:focus, .field textarea:focus, .field select:focus {
      outline: none;
      border-color: var(--border-hover);
      background: var(--surface-hover);
    }
    .check {
      display: grid;
      grid-template-columns: 18px 1fr;
      gap: 11px;
      align-items: start;
      font-size: 12.5px;
      line-height: 1.6;
      color: var(--text-dim);
    }
    .check input { width: 18px; height: 18px; margin-top: 1px; accent-color: #fff; }
    .check a { color: var(--text-dim); text-decoration: underline; text-underline-offset: 3px; }
    .hp { position: absolute; left: -9999px; opacity: 0; }

    .notice {
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 14px 16px;
      font-size: 13px;
      line-height: 1.65;
      color: var(--text-dim);
      background: var(--surface);
    }
    .notice.bad { border-color: rgba(255,120,120,0.3); color: #ffb4b4; }
    .notice.good { border-color: rgba(140,255,180,0.25); color: #b9f3cd; }

    /* ── Auswahl-Kacheln ── */
    .choices { display: grid; gap: 10px; }
    .choice {
      display: grid;
      grid-template-columns: 18px 1fr auto;
      gap: 13px;
      align-items: center;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 14px 16px;
      cursor: pointer;
      background: var(--surface);
      transition: border-color 0.15s, background 0.15s;
    }
    .choice:hover { border-color: var(--border-hover); }
    .choice input { accent-color: #fff; width: 17px; height: 17px; }
    .choice-name { font-size: 14px; }
    .choice-sub { font-size: 12px; color: var(--text-muted); margin-top: 3px; line-height: 1.5; }
    .choice-preis { font-size: 14px; font-variant-numeric: tabular-nums; color: var(--text-dim); white-space: nowrap; }
    .choice:has(input:checked) { border-color: rgba(255,255,255,0.3); background: rgba(255,255,255,0.05); }

    /* ── Tabellen (Partner / Status) ── */
    .table { width: 100%; border-collapse: collapse; font-size: 13px; }
    .table th {
      text-align: left;
      font-weight: 400;
      font-size: 10px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-muted);
      padding: 0 14px 10px 0;
      border-bottom: 1px solid var(--border);
    }
    .table td {
      padding: 13px 14px 13px 0;
      border-bottom: 1px solid var(--border);
      color: var(--text-dim);
      vertical-align: top;
    }
    .table td.num { font-variant-numeric: tabular-nums; text-align: right; padding-right: 0; color: var(--text); }
    .table th.num { text-align: right; padding-right: 0; }
    .scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 30px; }
    .stat {
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 20px;
      background: var(--surface);
    }
    .stat-label {
      font-size: 10px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-muted);
    }
    .stat-value {
      font-size: 26px;
      font-weight: 300;
      margin-top: 10px;
      letter-spacing: -0.02em;
      font-variant-numeric: tabular-nums;
    }
    .stat-note { font-size: 11.5px; color: var(--text-muted); margin-top: 6px; line-height: 1.5; }

    .pill {
      display: inline-block;
      font-size: 11px;
      padding: 3px 10px;
      border-radius: 999px;
      border: 1px solid var(--border-hover);
      color: var(--text-dim);
      white-space: nowrap;
    }

    /* ── Verlauf ── */
    .timeline { display: grid; gap: 0; margin-top: 8px; }
    .tl {
      display: grid;
      grid-template-columns: 96px 1fr;
      gap: 16px;
      padding: 13px 0;
      border-bottom: 1px solid var(--border);
      font-size: 13px;
    }
    .tl:last-child { border-bottom: none; }
    .tl-date { color: var(--text-muted); font-variant-numeric: tabular-nums; font-size: 12px; }
    .tl-text { color: var(--text-dim); }

    /* ── Legal / Textseiten ── */
    .prose { max-width: 74ch; padding: 20px 0 60px; }
    .prose h2 { font-size: 16px; font-weight: 500; margin: 34px 0 12px; letter-spacing: -0.01em; }
    .prose h3 { font-size: 13.5px; font-weight: 500; margin: 22px 0 8px; color: var(--text-dim); }
    .prose p, .prose li { font-size: 13.5px; line-height: 1.8; color: var(--text-dim); }
    .prose p { margin-bottom: 12px; }
    .prose ul { margin: 0 0 12px 18px; }
    .prose li { margin-bottom: 6px; }
    .prose strong { color: var(--text); font-weight: 500; }
    .prose a { color: var(--text-dim); text-decoration: underline; text-underline-offset: 3px; }

    .foot-links { display: flex; gap: 18px; flex-wrap: wrap; }
    .foot-links a { font-size: 12px; color: var(--text-muted); text-decoration: none; }
    .foot-links a:hover { color: var(--text-dim); }

    /* ── WhatsApp-Direktkontakt (reiner Link, kein Widget, keine Cookies) ── */
    .wa {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      border: 1px solid var(--border-hover);
      border-radius: 999px;
      padding: 11px 18px;
      font-size: 13px;
      text-decoration: none;
      color: var(--text);
      background: var(--surface);
      transition: background 0.2s, border-color 0.2s;
    }
    .wa:hover { background: var(--surface-hover); border-color: rgba(255,255,255,0.3); }
    .wa-dot {
      width: 7px; height: 7px; border-radius: 50%;
      background: #4ade80;
      box-shadow: 0 0 0 0 rgba(74,222,128,0.6);
      animation: pulse 2.4s infinite;
    }
    @keyframes pulse {
      0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.5); }
      70%  { box-shadow: 0 0 0 7px rgba(74,222,128,0); }
      100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
    }

    @media (max-width: 860px) {
      .services, .pakete, .stats { grid-template-columns: 1fr; }
      .services { gap: 1px; }
      .stats { grid-template-columns: repeat(2, 1fr); }
      .row { grid-template-columns: 1fr; }
      .tl { grid-template-columns: 1fr; gap: 4px; }
    }

    /* ══════════════════════════════════════════════════════════════════
       Referenzen — jede Karte trägt die Farben des Kunden, nicht unsere
       ══════════════════════════════════════════════════════════════════ */
    .refs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 34px; }

    .ref {
      position: relative;
      display: block;
      text-decoration: none;
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 30px 28px 26px;
      overflow: hidden;
      background: var(--ref-bg, var(--surface));
      transition: border-color 0.25s, transform 0.25s;
      isolation: isolate;
    }
    .ref:hover { border-color: var(--ref-edge, var(--border-hover)); transform: translateY(-2px); }
    /* Farbschleier in der Marke des Kunden */
    .ref::before {
      content: "";
      position: absolute;
      inset: -40% -10% auto -10%;
      height: 200px;
      background: var(--ref-glow, transparent);
      filter: blur(46px);
      opacity: 0.5;
      z-index: -1;
      transition: opacity 0.3s;
    }
    .ref:hover::before { opacity: 0.85; }

    .ref-mark { width: 52px; height: 52px; border-radius: 13px; display: block; }
    .ref-name {
      font-size: 19px;
      margin-top: 20px;
      letter-spacing: -0.02em;
      color: var(--ref-text, var(--text));
      font-weight: 400;
    }
    .ref-tag {
      font-size: 12px;
      color: var(--ref-dim, var(--text-dim));
      margin-top: 7px;
      letter-spacing: 0.02em;
    }
    .ref-do {
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid var(--ref-line, var(--border));
      font-size: 12.5px;
      line-height: 1.65;
      color: var(--ref-dim, var(--text-dim));
    }
    .ref-url {
      margin-top: 16px;
      font-size: 11.5px;
      letter-spacing: 0.06em;
      color: var(--ref-dim, var(--text-muted));
      display: flex;
      align-items: center;
      gap: 7px;
    }
    .ref:hover .ref-url { color: var(--ref-text, var(--text)); }

    /* ── Produkte ── */
    .produkte { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 34px; }
    .prod {
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 24px 24px 22px;
      background: var(--surface);
      display: grid;
      grid-template-columns: 40px 1fr;
      gap: 18px;
      align-items: start;
      transition: border-color 0.2s, background 0.2s;
    }
    .prod:hover { border-color: var(--border-hover); background: var(--surface-hover); }
    .prod-icon { width: 40px; height: 40px; }
    .prod h3 { font-size: 15px; font-weight: 500; letter-spacing: -0.01em; }
    .prod-preis { font-size: 12.5px; color: var(--text-muted); margin-top: 5px; font-variant-numeric: tabular-nums; }
    .prod p { font-size: 13px; line-height: 1.65; color: var(--text-dim); margin-top: 11px; }
    .prod-cta {
      display: inline-block;
      margin-top: 15px;
      font-size: 12.5px;
      color: var(--text-dim);
      text-decoration: none;
      border-bottom: 1px solid var(--border-hover);
      padding-bottom: 2px;
    }
    .prod-cta:hover { color: var(--text); border-color: var(--text); }

    /* ── News ── */
    .news { margin-top: 32px; display: grid; gap: 0; }
    .post {
      display: grid;
      grid-template-columns: 132px 1fr;
      gap: 26px;
      padding: 26px 0;
      border-bottom: 1px solid var(--border);
    }
    .post:last-child { border-bottom: none; }
    .post-meta { display: flex; flex-direction: column; gap: 8px; }
    .post-date { font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
    .post h3 { font-size: 16px; font-weight: 400; letter-spacing: -0.01em; margin-bottom: 9px; }
    .post p { font-size: 13.5px; line-height: 1.75; color: var(--text-dim); white-space: pre-wrap; }
    .news-leer { font-size: 13px; color: var(--text-muted); padding: 26px 0; }

    /* ── Labor ── */
    .lab { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 32px; }
    .lab-item {
      border: 1px dashed var(--border-hover);
      border-radius: 16px;
      padding: 24px 22px;
      background: transparent;
    }
    .lab-stage {
      font-size: 10px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--text-muted);
    }
    .lab-item h3 { font-size: 15px; font-weight: 500; margin: 13px 0 9px; letter-spacing: -0.01em; }
    .lab-item p { font-size: 13px; line-height: 1.65; color: var(--text-dim); }

    @media (max-width: 860px) {
      .refs, .produkte, .lab { grid-template-columns: 1fr; }
      .post { grid-template-columns: 1fr; gap: 10px; }
      .post-meta { flex-direction: row; align-items: center; gap: 12px; }
    }

    .steplabel {
      display: block;
      font-size: 11px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 12px;
    }

    /* ── Nav-CTA: neutral formuliert, damit die Seite nicht nach Webbude klingt ── */
    .nav-cta {
      font-size: 13px;
      text-decoration: none;
      color: var(--text);
      border: 1px solid var(--border-hover);
      border-radius: 999px;
      padding: 7px 15px;
      transition: background 0.2s, border-color 0.2s;
      white-space: nowrap;
    }
    .nav-cta:hover { background: var(--surface-hover); border-color: rgba(255,255,255,0.34); }

    /* ── Abschluss-Block ── */
    .schluss {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 40px;
      align-items: center;
      padding: 54px 0 10px;
    }
    .schluss h2 {
      font-size: clamp(22px, 3.2vw, 32px);
      font-weight: 300;
      letter-spacing: -0.03em;
      line-height: 1.15;
    }
    .schluss-cta { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }

    @media (max-width: 860px) {
      .schluss { grid-template-columns: 1fr; gap: 26px; padding-top: 40px; }
      nav .nav-right { flex-wrap: wrap; gap: 12px; }
    }

    /* ── Kopfleiste auf dem Handy ──────────────────────────────────────────
       Vorher: nav war starr (kein Umbruch), aber .nav-right brach ab 860 px um.
       Ergebnis: die rechte Spalte wurde zwei- bis dreizeilig, die Leiste wuchs
       nach oben weg und die Marke stand schief daneben. Jetzt bricht die Leiste
       als Ganzes um — Marke oben, Links darunter, links ausgerichtet. */
    @media (max-width: 860px) {
      nav { flex-wrap: wrap; gap: 12px 20px; }
    }

    @media (max-width: 640px) {
      nav {
        padding: 22px 0 18px;
        align-items: flex-start;
        row-gap: 14px;
      }
      nav .brand { flex: 0 0 100%; }
      nav .nav-right {
        flex: 0 0 100%;
        justify-content: flex-start;
        gap: 20px;
        row-gap: 10px;
      }
      .nav-cta { padding: 6px 13px; font-size: 12px; }
    }

    @media (max-width: 380px) {
      nav .nav-right { gap: 14px; }
      .nav-link { font-size: 11.5px; }
    }

    /* ── Häufige Fragen ──────────────────────────────────────────────────── */
    .faq { margin-top: 30px; border-top: 1px solid var(--border); }
    .faq-item { border-bottom: 1px solid var(--border); }
    .faq-item summary {
      list-style: none;
      cursor: pointer;
      padding: 20px 34px 20px 0;
      position: relative;
    }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary h3 {
      display: inline;
      font-size: 15px;
      font-weight: 400;
      letter-spacing: -0.01em;
      color: var(--text-dim);
      transition: color 0.2s;
    }
    .faq-item summary:hover h3,
    .faq-item[open] summary h3 { color: var(--text); }
    .faq-item summary::after {
      content: "+";
      position: absolute;
      right: 4px;
      top: 18px;
      font-size: 17px;
      color: var(--text-muted);
      transition: transform 0.2s;
    }
    .faq-item[open] summary::after { content: "−"; }
    .faq-item p {
      font-size: 14px;
      line-height: 1.75;
      color: var(--text-dim);
      margin: 0 0 22px;
      max-width: 74ch;
    }

    /* Nav wird mit sieben Punkten auf mittleren Breiten eng — Abstand mitwachsen lassen */
    @media (max-width: 1100px) {
      .nav-right { gap: 22px; }
    }

    /* ── Auswahlkacheln: Name und Beschreibung standen aneinandergeklebt ──────
       Ursache: .choice-name und .choice-sub sind <span>, also inline — auf
       inline-Elementen wirkt margin-top nicht, und beide Texte landen in
       derselben Zeile. Jetzt sind sie eigene Blöcke mit echtem Abstand. */
    .choice-mitte { display: block; min-width: 0; }
    .choice-name {
      display: block;
      font-size: 14px;
      line-height: 1.45;
      color: var(--text);
    }
    .choice-sub {
      display: block;
      font-size: 12.5px;
      color: var(--text-muted);
      line-height: 1.6;
      margin-top: 5px;
    }
    .choice { padding: 15px 17px; align-items: start; }
    .choice input { margin-top: 2px; }
    .choice-preis { padding-top: 1px; }

    /* Auf schmalen Handys darf der Preis unter den Text rutschen,
       statt die Beschreibung auf zwei Buchstaben zusammenzuquetschen. */
    @media (max-width: 460px) {
      .choice { grid-template-columns: 18px 1fr; gap: 11px; }
      .choice-preis { grid-column: 2; padding-top: 8px; font-size: 13px; }
    }

    /* ── So läuft es ab ──────────────────────────────────────────────────── */
    .ablauf {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 30px;
      margin-top: 34px;
    }
    .ablauf-schritt {
      border-top: 1px solid var(--border);
      padding-top: 22px;
    }
    .ablauf-nr {
      font-size: 12px;
      letter-spacing: 0.14em;
      color: var(--text-muted);
      margin-bottom: 14px;
    }
    .ablauf-schritt h3 {
      font-size: 17px;
      font-weight: 400;
      letter-spacing: -0.02em;
      line-height: 1.35;
      margin: 0 0 12px;
      color: var(--text);
    }
    .ablauf-schritt p {
      font-size: 14px;
      line-height: 1.75;
      color: var(--text-dim);
      margin: 0;
    }
    @media (max-width: 860px) {
      .ablauf { grid-template-columns: 1fr; gap: 26px; }
    }

    /* Auf dem Handy: Eingabefelder unter 16px lassen iOS beim Antippen
       in die Seite hineinzoomen — das wirkt wie ein Fehler. */
    @media (max-width: 760px) {
      input, select, textarea, .btn { font-size: 16px; }
      .btn { min-height: 42px; }
    }

    /* Zwei Wege aus dem Hero: kaufen oder erst schauen. Der zweite ist
       bewusst leise — er soll den Hauptknopf nicht schwächen. */
    .hero-aktionen { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
    .hero-zweit {
      font-size: 13px;
      color: var(--text-muted);
      text-decoration: underline;
      text-underline-offset: 4px;
      text-decoration-color: var(--border-hover);
      transition: color 0.2s;
    }
    .hero-zweit:hover { color: var(--text-dim); }
    @media (max-width: 460px) {
      .hero-aktionen { gap: 16px; }
    }

    /* ══════════════════════════════════════════════════════════════════
       Leads — zugeklappt eine Zeile, aufgeklappt alles
       ══════════════════════════════════════════════════════════════════ */
    .lead-karte {
      border: 1px solid var(--border);
      border-radius: 12px;
      margin-bottom: 10px;
      background: var(--surface);
      overflow: hidden;
      transition: border-color 0.2s;
    }
    .lead-karte.dran { border-left: 2px solid rgba(149,213,178,0.6); }
    .lead-karte.auf { border-color: var(--border-hover); }
    .lead-kopf {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      width: 100%;
      padding: 14px 16px;
      background: none;
      border: 0;
      color: inherit;
      font: inherit;
      text-align: left;
      cursor: pointer;
    }
    .lead-kopf:hover { background: rgba(255,255,255,0.02); }
    .lead-kopf-text { display: grid; gap: 4px; min-width: 0; }
    .lead-firma {
      font-size: 14.5px;
      color: var(--text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .lead-unter { font-size: 12px; color: var(--text-muted); }
    .lead-pfeil { color: var(--text-muted); transition: transform 0.2s; flex: 0 0 auto; }
    .lead-karte.auf .lead-pfeil { transform: rotate(180deg); }
    .lead-koerper { padding: 4px 16px 16px; }
    .lead-befund {
      font-size: 13px;
      line-height: 1.6;
      color: var(--text-dim);
      margin: 0 0 14px;
      padding: 10px 12px;
      border-left: 2px solid var(--border);
    }
    .lead-aktionen { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
    .lead-aktionen .btn-solid { flex: 1 1 auto; text-align: center; min-width: 150px; }
    .lead-ergebnis { display: grid; gap: 10px; }
    .lead-ergebnis select,
    .lead-ergebnis input {
      padding: 11px 14px;
      border-radius: 10px;
      border: 1px solid var(--border);
      background: transparent;
      color: var(--text);
      font-family: inherit;
      font-size: 16px;
      width: 100%;
    }
    .lead-ergebnis select { background: var(--surface); }
    .lead-protokoll {
      display: grid;
      grid-template-columns: 130px 1fr;
      gap: 10px;
      padding: 6px 0;
      font-size: 12.5px;
    }
    .lead-weg {
      margin-top: 14px;
      padding: 5px 12px;
      font-size: 12px;
      border-color: #c0392b;
      color: #e77;
    }
    @media (max-width: 560px) {
      .lead-protokoll { grid-template-columns: 1fr; gap: 2px; }
    }

    /* ══════════════════════════════════════════════════════════════════
       Referenzen — leuchtender Rahmen
       Steht jetzt ganz oben und soll den Blick halten: ein langsam
       kreisender Farbverlauf als Rand, dazu ein weicher Schein.
       ══════════════════════════════════════════════════════════════════ */
    .refs-rahmen {
      position: relative;
      border-radius: 22px;
      padding: 2px;
      overflow: hidden;
      margin-top: 34px;
      box-shadow: 0 0 40px -14px rgba(123,47,247,0.55),
                  0 0 70px -30px rgba(0,229,255,0.45);
    }
    .refs-rahmen::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 50%;
      width: 230%;
      aspect-ratio: 1 / 1;
      translate: -50% -50%;
      background: conic-gradient(
        #7b2ff7, #ff2e97, #ff8a00, #95d5b2, #00e5ff, #7b2ff7);
      animation: refs-dreht 14s linear infinite;
    }
    .refs-innen {
      position: relative;
      border-radius: 20px;
      background: var(--bg);
      padding: 24px;
    }
    .refs-innen .refs { margin-top: 0; }

    @keyframes refs-dreht { to { rotate: 360deg; } }

    /* Wer Bewegung im Betriebssystem abgeschaltet hat, bekommt sie auch hier
       nicht — der Rahmen bleibt, er dreht sich nur nicht. */
    @media (prefers-reduced-motion: reduce) {
      .refs-rahmen::before { animation: none; }
    }

    @media (max-width: 620px) {
      .refs-innen { padding: 16px; }
      .refs-rahmen { border-radius: 18px; }
      .refs-innen { border-radius: 16px; }
    }
