/* GENERATED by engine/design/build_css.py — do not edit by hand.
   Source of truth: tokens.json + layouts/*.json */

.theme-mitternacht {
  --bg: #0e0e12;
  --surface: #17171d;
  --border: #2a2a34;
  --fg: #ececf1;
  --fg_dim: #9aa0ad;
  --heading: #f3f4f6;
  --primary: #1a1a2e;
  --accent: #3b82f6;
  --accent_2: #60a5fa;
  --on_accent: #ffffff;
  --positive: #10b981;
  --negative: #ef4444;
  --warn: #f59e0b;
}

.r-eyebrow { font-size:2.2cqw; color:var(--accent_2); font-weight:800; line-height:1.3; font-family:"JetBrains Mono",ui-monospace,monospace; text-transform:uppercase; letter-spacing:.1em; }
.r-headline { font-size:4.2cqw; color:var(--heading); font-weight:800; line-height:1.3; letter-spacing:-0.02em; }
.r-title_cover { font-size:4.2cqw; color:var(--heading); font-weight:800; line-height:1.3; letter-spacing:-0.02em; }
.r-subtitle { font-size:3.0cqw; color:var(--fg_dim); font-weight:400; line-height:1.3; }
.r-meta { font-size:2.1cqw; color:var(--fg_dim); font-weight:600; line-height:1.3; font-family:"JetBrains Mono",ui-monospace,monospace; }
.r-body { font-size:2.5cqw; color:var(--fg); font-weight:400; line-height:1.3; }
.r-quote { font-size:3.5cqw; color:var(--heading); font-weight:800; line-height:1.3; letter-spacing:-0.02em; }
.r-cta_head { font-size:5.6cqw; color:var(--heading); font-weight:800; line-height:1.3; letter-spacing:-0.02em; }
.r-card_title { font-size:2.5cqw; color:var(--heading); font-weight:800; line-height:1.3; }
.r-card_text { font-size:2.05cqw; color:var(--fg_dim); font-weight:400; line-height:1.3; }
.r-stat_value { font-size:5.6cqw; color:var(--accent); font-weight:800; line-height:1.3; letter-spacing:-0.02em; }
.r-stat_label { font-size:2.15cqw; color:var(--fg_dim); font-weight:600; line-height:1.3; }
.r-table { font-size:2.2cqw; color:var(--fg); font-weight:400; line-height:1.3; }
.r-eyebrow{display:inline-block;padding:.4cqw 1.4cqw;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);width:max-content;max-width:100%;}


/* feature_rows — gleich hohe Karten-Reihen */
.r-feature_rows{display:flex;flex-direction:column;gap:2.1999999999999997cqw;height:100%;}
.r-feature_rows .feat-row{flex:1 1 0;min-height:0;overflow:hidden;display:flex;align-items:center;gap:2.2cqw;
  background:var(--surface);border:1px solid var(--border);border-radius:1.2cqw;padding:1.7cqw 2.4cqw;}
.r-feature_rows .badge{flex:0 0 auto;width:5.6cqw;height:5.6cqw;border-radius:50%;background:var(--accent);
  display:flex;align-items:center;justify-content:center;color:var(--on_accent);}
.r-feature_rows .badge svg{width:54%;height:54%;}
.r-feature_rows .ft{font-size:2.5cqw;font-weight:800;color:var(--heading);overflow-wrap:break-word;}
.r-feature_rows .fx{font-size:2.05cqw;color:var(--fg_dim);line-height:1.3;margin-top:.3cqw;}
.r-feature_rows .ftext{min-width:0;overflow:hidden;}

/* card_grid — Zeilen teilen Höhe (auto-rows:1fr), Text clippt im Kartenboden */
.r-card_grid{display:grid;gap:2.1999999999999997cqw;height:100%;grid-auto-rows:1fr;}
.r-card_grid.c1{grid-template-columns:1fr;} .r-card_grid.c2{grid-template-columns:repeat(2,1fr);}
.r-card_grid.c3{grid-template-columns:repeat(3,1fr);} .r-card_grid.c4{grid-template-columns:repeat(4,1fr);}
.r-card_grid .gcard{background:var(--surface);border:1px solid var(--border);border-radius:1.2cqw;
  padding:2cqw;display:flex;flex-direction:column;gap:.9cqw;min-height:0;overflow:hidden;}
.r-card_grid .badge{flex:0 0 auto;width:4.2cqw;height:4.2cqw;border-radius:50%;background:var(--accent);
  display:flex;align-items:center;justify-content:center;color:var(--on_accent);}
.r-card_grid .badge svg{width:54%;height:54%;}
.r-card_grid .gt{font-size:2.5cqw;font-weight:800;color:var(--heading);line-height:1.15;
  flex:0 0 auto;overflow-wrap:break-word;}
.r-card_grid .gx{font-size:2.05cqw;color:var(--fg_dim);line-height:1.3;flex:0 0 auto;overflow:hidden;}

/* stat_row — große Kennzahl-Kacheln */
.r-stat_row{display:flex;gap:2.4cqw;height:100%;align-items:stretch;}
.r-stat_row .stat{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;
  background:var(--surface);border:1px solid var(--border);border-radius:1.2cqw;padding:3cqw 2cqw;overflow:hidden;}
.r-stat_row .badge{flex:0 0 auto;width:6.4cqw;height:6.4cqw;border-radius:50%;background:var(--accent);color:var(--on_accent);
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.6cqw;}
.r-stat_row .badge svg{width:52%;height:52%;}
.r-stat_row .val{font-size:5.6cqw;font-weight:800;color:var(--accent);line-height:1.05;
  letter-spacing:-0.02em;overflow-wrap:break-word;}
.r-stat_row .lbl{font-size:2.15cqw;color:var(--fg_dim);line-height:1.3;margin-top:1.4cqw;}

/* compare_cols — zwei Spalten, positive/negative */
.r-compare_cols{display:grid;grid-template-columns:1fr 1fr;gap:3cqw;height:100%;}
.r-compare_cols .col{background:var(--surface);border:1px solid var(--border);border-radius:1.2cqw;
  overflow:hidden;display:flex;flex-direction:column;}
.r-compare_cols .chead{padding:2cqw;font-size:2.5cqw;font-weight:800;color:var(--bg);}
.r-compare_cols .col.positive .chead{background:var(--positive);}
.r-compare_cols .col.negative .chead{background:var(--negative);}
.r-compare_cols .citems{padding:1.9cqw 2.2cqw;display:flex;flex-direction:column;gap:1.2cqw;justify-content:safe center;
  flex:1;overflow:hidden;}
.r-compare_cols .ci{display:flex;gap:1.3cqw;font-size:2.3cqw;line-height:1.25;color:var(--fg);}
.r-compare_cols .ci .mk{font-weight:800;flex:0 0 auto;}
.r-compare_cols .positive .mk{color:var(--positive);} .r-compare_cols .negative .mk{color:var(--negative);}

/* timeline — horizontale Schritte */
.r-timeline{display:flex;gap:2cqw;height:100%;align-items:center;}
.r-timeline .tstep{flex:1;position:relative;text-align:center;}
.r-timeline .tline{position:absolute;top:3.4cqw;left:50%;width:100%;height:2px;background:var(--border);z-index:0;}
.r-timeline .tstep>*{position:relative;z-index:1;}
.r-timeline .tnum{width:6.8cqw;height:6.8cqw;border-radius:50%;background:var(--accent);color:var(--on_accent);
  font-weight:800;font-size:3.2cqw;display:flex;align-items:center;justify-content:center;margin:0 auto 1.4cqw;}
.r-timeline .tt{font-size:2.5cqw;font-weight:800;color:var(--heading);}
.r-timeline .tx{font-size:2.05cqw;color:var(--fg_dim);line-height:1.3;margin-top:.5cqw;}

/* table — Preis-/Datentabelle */
.r-table{width:100%;border-collapse:collapse;font-size:2.2cqw;color:var(--fg);}
.r-table th{background:var(--primary);color:#fff;text-align:left;padding:1.4cqw;font-weight:800;}
.r-table td{padding:1.3cqw 1.4cqw;border-bottom:1px solid var(--border);}
.r-table tr:nth-child(even) td{background:var(--surface);}

/* cta_contact — Kontaktblock */
.r-cta_contact{display:flex;flex-direction:column;gap:.8cqw;font-size:2.5cqw;color:var(--fg);}
.r-cta_contact .cline:first-child{font-weight:700;color:var(--heading);}

/* chart — Balkendiagramm (nur echte Zahlen) */
.r-chart{display:flex;align-items:flex-end;gap:3cqw;height:100%;padding:0 1cqw 4cqw;position:relative;}
.r-chart .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:1cqw;}
.r-chart .bar .col{width:62%;max-width:9cqw;border-radius:6px 6px 0 0;
  background:linear-gradient(180deg,var(--accent_2),var(--accent));min-height:2px;}
.r-chart .bar .val{font-size:2.6cqw;font-weight:800;color:var(--heading);}
.r-chart .bar .lbl{font-size:1.9cqw;color:var(--fg_dim);text-align:center;line-height:1.25;}

/* statement — grafische Zitat-Folie (großes Anführungszeichen + Akzentlinien, KEIN Bild) */
.l-statement{background:
  radial-gradient(70cqw 50cqw at 50% 18%, color-mix(in srgb,var(--accent) 12%,transparent), transparent 60%),
  var(--bg);}
.l-statement::before{content:"\201C";position:absolute;left:50%;top:3%;transform:translateX(-50%);
  font-family:Georgia,serif;font-size:15cqw;line-height:1;color:var(--accent);opacity:.24;}
.l-statement .s-title .r-quote{position:relative;}
.l-statement .s-subtitle::before{content:"";position:absolute;left:50%;top:-2.4cqw;transform:translateX(-50%);
  width:9cqw;height:3px;border-radius:2px;background:var(--accent);}

/* image — Half-Bleed (nur Cover). Phase 1: dezenter Platzhalter ohne echtes Bild. */
.s-image{overflow:hidden;}
.r-image{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;
  background-image:linear-gradient(135deg,color-mix(in srgb,var(--accent) 42%,var(--primary)),var(--primary) 70%);}
.r-image.half::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--border);}
.r-image.full_bleed::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,12,.42),rgba(8,8,12,.74));}
.on-image{color:#fff;} .on-image.r-eyebrow{background:rgba(255,255,255,.16);color:#fff;}
.on-image.r-subtitle{color:rgba(255,255,255,.84);} .on-image.r-quote{color:#fff;}

.slide{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;container-type:inline-size;background:var(--bg);color:var(--fg);font-family:"Inter",-apple-system,system-ui,sans-serif;border-radius:1.2cqw;}
.slot{position:absolute;overflow:hidden;}
.slot.center{text-align:center;}
.slot.center .r-eyebrow,.slot.center .r-cta_contact{margin-left:auto;margin-right:auto;}
.l-chart .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-chart .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-chart .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-chart .s-chart{left:6.0%;top:37.0%;width:88.0%;height:54.0%;}
.l-comparison .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-comparison .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-comparison .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-comparison .s-columns{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
.l-cover .s-image{left:55.0%;top:0.0%;width:45.0%;height:100.0%;}
.l-cover .s-kicker{left:6.0%;top:16.0%;width:45.0%;height:7.0%;}
.l-cover .s-title{left:6.0%;top:25.0%;width:45.0%;height:40.0%;}
.l-cover .s-title .r-title_cover{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.l-cover .s-subtitle{left:6.0%;top:68.0%;width:45.0%;height:15.0%;}
.l-cover .s-subtitle .r-subtitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-cover .s-meta{left:6.0%;top:86.0%;width:45.0%;height:6.0%;}
.l-cta .s-eyebrow{left:10.0%;top:26.0%;width:80.0%;height:7.0%;}
.l-cta .s-title{left:10.0%;top:35.0%;width:80.0%;height:16.0%;}
.l-cta .s-title .r-cta_head{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-cta .s-subtitle{left:10.0%;top:53.0%;width:80.0%;height:14.0%;}
.l-cta .s-subtitle .r-subtitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-cta .s-contact{left:10.0%;top:72.0%;width:80.0%;height:21.0%;}
.l-feature_list .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-feature_list .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-feature_list .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-feature_list .s-items{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
.l-grid .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-grid .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-grid .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-grid .s-items{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
.l-stat_row .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-stat_row .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-stat_row .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-stat_row .s-stats{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
.l-statement .s-eyebrow{left:12.0%;top:27.0%;width:76.0%;height:7.0%;}
.l-statement .s-title{left:12.0%;top:35.5%;width:76.0%;height:45.0%;display:flex;flex-direction:column;justify-content:center;}
.l-statement .s-title .r-quote{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;}
.l-statement .s-subtitle{left:12.0%;top:84.0%;width:76.0%;height:8.0%;}
.l-statement .s-subtitle .r-subtitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-table .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-table .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-table .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-table .s-table{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
.l-timeline .s-eyebrow{left:5.0%;top:5.0%;width:90.0%;height:7.0%;}
.l-timeline .s-title{left:5.0%;top:13.5%;width:90.0%;height:20.0%;}
.l-timeline .s-title .r-headline{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.l-timeline .s-steps{left:5.0%;top:35.0%;width:90.0%;height:57.0%;}
