/*
 * Nur dieser Vortrag. Bausteine mit Präfix cv-, aufbauend auf shared/theme.css.
 * Fließtext mindestens 36px; kleiner nur Etiketten, Achsen und Quellen.
 * Icons: 88px-Kreis für Rollen und Schritte, 64px für Zeilen, gold gefüllt = Alarm oder Ziel.
 */

/* ---------- Titelfolie ---------- */
.reveal .title-copy {
  width: 100%;
}
.reveal .title-copy h1 {
  font-size: 92px;
}

/* ---------- Grundbausteine ---------- */
.reveal .cv-body {
  display: flex;
  flex-direction: column;
  gap: 44px;
  width: 100%;
}
.reveal .cv-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  font-size: 42px;
  color: var(--gold);
  background: var(--navy);
  border: 2px solid var(--navy);
}
.reveal section[data-surface="dark"] .cv-icon {
  background: var(--navy-raised);
  border-color: var(--navy-line);
}
.reveal .slides .cv-icon.cv-icon--alert {
  color: var(--navy);
  background: var(--gold);
  border-color: var(--gold);
}
.reveal .slides .cv-icon.cv-icon--muted {
  color: var(--muted);
  background: transparent;
  border: 2px dashed var(--line);
}
.reveal .cv-icon--sm {
  width: 64px;
  height: 64px;
  font-size: 32px;
}
.reveal .cv-lead {
  font-size: 40px;
  line-height: 1.35;
  color: var(--fg-strong);
  max-width: 1560px;
}
.reveal .cv-callout {
  font-size: 36px;
  line-height: 1.35;
  color: var(--muted);
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.reveal .cv-punch {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 52px;
  line-height: 1.2;
  color: var(--fg-strong);
  padding-left: 32px;
  border-left: 6px solid var(--gold);
}
.reveal .cv-statement-lead {
  max-width: 1460px;
}
.reveal section[data-layout="statement"] .cv-callout {
  margin-top: 40px;
  max-width: 1460px;
}
.reveal .cv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 16px;
}
.reveal .cv-chips li {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 8px 24px;
  border-radius: 999px;
  font-size: 36px;
  line-height: 1.3;
  color: var(--fg-strong);
  background: rgb(199 170 106 / 0.18);
  border: 2px solid var(--gold);
}
.reveal .cv-chips--stack {
  flex-direction: column;
  align-items: flex-start;
}
.reveal .cv-list li {
  position: relative;
  padding-left: 40px;
  font-size: 36px;
  line-height: 1.35;
}
.reveal .cv-list li + li {
  margin-top: 14px;
}
.reveal .cv-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.5em;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--gold);
}

/* ---------- Kapitel ohne Bild: Wegweiser rechts ---------- */
.reveal section[data-layout="chapter"]:not([data-has-image]) .slide-body {
  width: 100%;
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 640px;
  column-gap: 120px;
  align-content: center;
}
.reveal
  section[data-layout="chapter"]:not([data-has-image])
  .slide-body
  > :not(.cv-roadmap) {
  grid-column: 1;
}
.reveal section[data-layout="chapter"]:not([data-has-image]) .deck-footer {
  right: var(--pad-x);
}
.reveal section[data-layout="chapter"]:not([data-has-image]) .chapters {
  gap: 40px;
}
.reveal .cv-roadmap {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
  display: flex;
  flex-direction: column;
  border-left: 2px solid var(--navy-line);
}
.reveal .cv-roadmap li {
  position: relative;
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 32px;
  align-items: center;
  padding: 26px 0 26px 48px;
  color: var(--muted-on-dark);
}
.reveal .cv-roadmap li .cv-icon {
  color: var(--muted-on-dark);
  background: transparent;
}
.reveal .cv-roadmap h3 {
  font-size: 48px;
  color: inherit;
  margin: 0;
}
.reveal .cv-roadmap p {
  font-size: 36px;
  line-height: 1.3;
  color: var(--ivory);
  margin-top: 8px;
}
.reveal .cv-roadmap li.is-current {
  color: var(--white);
}
.reveal .cv-roadmap li.is-current::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 18px;
  bottom: 18px;
  border-left: 6px solid var(--gold);
}
.reveal .slides .cv-roadmap li.is-current .cv-icon {
  color: var(--navy);
  background: var(--gold);
  border-color: var(--gold);
}

/* ---------- Fahrplan ---------- */
.reveal .cv-route {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px;
  position: relative;
}
.reveal .cv-route::before {
  content: "";
  position: absolute;
  left: 44px;
  right: calc((100% - 112px) / 3 - 44px);
  top: 112px;
  border-top: 2px dashed var(--line);
}
.reveal .cv-route li {
  position: relative;
}
.reveal .cv-route-number {
  display: block;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 40px;
  color: var(--accent-ink);
  margin-bottom: 12px;
}
.reveal .cv-route .cv-icon {
  position: relative;
  margin-bottom: 30px;
}
.reveal .cv-route h3 {
  font-size: 56px;
}
.reveal .cv-route p {
  font-size: 36px;
  color: var(--muted);
}

/* ---------- Zeitstrahl Berlin ---------- */
.reveal .cv-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 64px;
  position: relative;
}
.reveal .cv-timeline::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 44px;
  border-top: 2px solid var(--gold);
}
.reveal .cv-timeline li {
  position: relative;
}
.reveal .cv-timeline .cv-icon {
  margin-bottom: 34px;
}
.reveal .cv-timeline .label {
  display: block;
  margin-bottom: 8px;
}
.reveal .cv-timeline h3 {
  font-size: 60px;
  margin-bottom: 18px;
}
.reveal .cv-timeline p {
  font-size: 36px;
  line-height: 1.35;
}

/* ---------- Angriffsmuster ---------- */
.reveal .cv-process {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px;
}
.reveal .cv-process li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  font-size: 36px;
  line-height: 1.25;
  color: var(--fg-strong);
}
.reveal .cv-process .cv-icon {
  width: 104px;
  height: 104px;
  font-size: 48px;
}
.reveal .cv-process li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 52px;
  left: calc(50% + 68px);
  right: calc(-50% + 44px);
  border-top: 2px dashed var(--line);
}
.reveal .cv-body > .prompt {
  margin-top: 0;
}

/* ---------- Kennzahlen ---------- */
.reveal .cv-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 80px;
}
.reveal .cv-stat {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 32px;
  align-items: center;
  padding-top: 24px;
  border-top: 2px solid var(--gold);
}
.reveal .cv-stat-value {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 104px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--accent-ink);
  white-space: nowrap;
}
.reveal .cv-stat p {
  font-size: 36px;
  line-height: 1.3;
}
.reveal .cv-quote {
  margin: 0;
  max-width: 1400px;
  padding-left: 40px;
  border-left: 6px solid var(--gold);
}
.reveal .cv-quote p {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 52px;
  line-height: 1.25;
  color: var(--fg-strong);
  margin-bottom: 22px;
}
.reveal .cv-quote cite {
  font-style: normal;
  font-size: var(--fs-label);
  letter-spacing: 0.16em;
  color: var(--accent-ink);
}

.reveal .cv-figures,
.reveal .cv-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 96px;
  align-items: start;
}
.reveal .cv-figure {
  border-top: 2px solid var(--gold);
  padding-top: 28px;
}
.reveal .cv-figure-value {
  display: block;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 150px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--accent-ink);
  margin-bottom: 28px;
  white-space: nowrap;
}
.reveal .cv-figure p {
  font-size: 38px;
  line-height: 1.32;
}

/* Einheitenraster: 1 von 20 */
.reveal .cv-market {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 96px;
  align-items: center;
}
.reveal .cv-units {
  margin: 0;
}
.reveal .cv-units-grid {
  display: grid;
  grid-template-columns: repeat(5, 72px);
  gap: 20px 36px;
}
.reveal .cv-units-grid span {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 2px solid var(--line);
  background: var(--raised);
}
.reveal .cv-units-grid span.is-on {
  background: var(--gold);
  border-color: var(--gold);
}
.reveal .cv-units figcaption {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  font-size: var(--fs-label);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-ink);
}
.reveal .cv-dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--gold);
}
.reveal .cv-market-figures {
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.reveal .cv-market-figures .cv-stat {
  grid-template-columns: 1fr;
  gap: 10px;
}
.reveal .cv-market-figures .cv-stat-value {
  font-size: 88px;
}

/* Ring: 80 % */
.reveal .cv-donut-block {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 48px;
  align-items: center;
}
.reveal .cv-donut {
  position: relative;
  display: grid;
  place-items: center;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: conic-gradient(
    var(--accent-ink) 0 80%,
    rgb(1 32 48 / 0.12) 80% 100%
  );
}
.reveal .cv-donut::before {
  content: "";
  position: absolute;
  inset: 44px;
  border-radius: 50%;
  background: var(--paper);
}
.reveal .cv-donut span {
  position: relative;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 76px;
  color: var(--fg-strong);
}
.reveal .cv-donut-block p {
  font-size: 38px;
  line-height: 1.32;
}

/* ---------- Schadenfälle ---------- */
.reveal .cv-cases {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}
.reveal .cv-cases article {
  padding: 36px 40px 44px;
  border-radius: 16px;
  background: var(--raised);
  border: 1px solid var(--line);
  border-top: 8px solid var(--gold);
}
.reveal .cv-cases header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}
.reveal .cv-case-value {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 72px;
  line-height: 1;
  color: var(--fg-strong);
  margin-bottom: 22px;
  white-space: nowrap;
}
.reveal .cv-cases p:not(.cv-case-value) {
  font-size: 36px;
  line-height: 1.32;
}

/* ---------- Risikotransfer ---------- */
.reveal .cv-transfer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 64px;
}
.reveal .cv-zone {
  position: relative;
  padding: 36px 38px 40px;
  border-radius: 16px;
  background: var(--raised);
  border: 1px solid var(--line);
}
.reveal .cv-zone .cv-icon {
  margin-bottom: 26px;
}
.reveal .cv-zone .label {
  display: block;
  margin-bottom: 6px;
}
.reveal .cv-zone h3 {
  font-size: 50px;
  margin-bottom: 14px;
}
.reveal .cv-zone p {
  font-size: 36px;
  line-height: 1.32;
}
.reveal .cv-zone--rest {
  background: transparent;
  border: 2px dashed var(--line);
}
.reveal .cv-zone--transfer {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--ivory);
  --fg-strong: var(--white);
  --accent-ink: var(--gold);
}
/* Pfeil zwischen den Zonen */
.reveal .cv-zone + .cv-zone::before {
  content: "";
  position: absolute;
  left: -46px;
  top: 76px;
  width: 26px;
  height: 26px;
  border-top: 4px solid var(--gold-ink);
  border-right: 4px solid var(--gold-ink);
  transform: rotate(45deg);
}

/* ---------- Mindeststandards in zwei Stufen ---------- */
.reveal .cv-levels {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.reveal .cv-level {
  padding: 34px 44px 40px;
  border-radius: 16px;
  background: var(--raised);
  border: 1px solid var(--line);
  border-top: 8px solid var(--gold);
}
.reveal .cv-level-head {
  font-size: 36px;
  color: var(--accent-ink);
  margin-bottom: 30px;
}
.reveal .cv-level-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
}
.reveal .cv-level-items h3 {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 40px;
  line-height: 1.15;
  margin-bottom: 18px;
}
.reveal .cv-level-items p {
  font-size: 36px;
  line-height: 1.32;
  color: var(--muted);
}
.reveal .cv-level-band {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 20px 44px;
  border-radius: 14px;
  font-size: 36px;
  color: var(--fg);
  background: rgb(1 32 48 / 0.06);
}
.reveal .cv-level-band--next {
  background: transparent;
  border: 2px dashed var(--line);
  color: var(--muted);
}

/* ---------- Antrag ---------- */
.reveal .cv-application {
  grid-template-columns: 1.3fr 1fr;
  gap: 72px;
}
.reveal .cv-form {
  margin: 0;
}
.reveal .cv-form .form-mock li {
  font-size: 36px;
  padding: 20px 0;
}
.reveal .cv-form .form-answer {
  font-size: 28px;
}
.reveal .cv-form figcaption {
  margin-top: 18px;
  font-size: var(--fs-source);
  color: var(--muted);
}
.reveal .cv-application .big-quote {
  font-size: 56px;
}
.reveal .cv-application .action {
  margin-top: 0;
}

/* ---------- Bausteinkarte ---------- */
.reveal .cv-modules {
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: 64px;
  align-items: start;
}
.reveal .cv-modules-map .label {
  margin-bottom: 18px;
}
.reveal .cv-modules-map ol {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.reveal .cv-modules-map li {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 14px 22px;
  border-radius: 12px;
  font-size: 32px;
  color: var(--muted);
  border: 2px dashed var(--line);
}
.reveal .cv-modules-map li .icon {
  font-size: 36px;
}
.reveal .cv-modules-map li.is-current {
  color: var(--white);
  background: var(--navy);
  border: 2px solid var(--navy);
}
.reveal .cv-modules-map li.is-current .icon {
  color: var(--gold);
}
.reveal .cv-modules-detail {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.reveal .cv-module {
  padding: 26px 40px 30px;
  border-radius: 14px;
  background: var(--raised);
  border: 1px solid var(--line);
  border-left: 8px solid var(--gold);
}
.reveal .cv-module h3 {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 44px;
  margin-bottom: 10px;
}
.reveal .cv-module p {
  font-size: 36px;
  line-height: 1.32;
}
.reveal .cv-tag {
  font-family: "Varela Round", system-ui, sans-serif;
  font-size: var(--fs-label);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
  background: var(--gold);
  padding: 6px 14px;
  border-radius: 999px;
}

/* ---------- Prüfpunkte ---------- */
.reveal .cv-progress {
  display: flex;
  align-items: center;
  gap: 28px;
}
.reveal .cv-progress ol {
  display: flex;
  gap: 12px;
}
.reveal .cv-progress li {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: var(--muted);
  border: 2px solid var(--line);
}
.reveal .cv-progress li.is-current {
  color: var(--gold);
  background: var(--navy);
  border-color: var(--navy);
}
.reveal .cv-criteria {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 80px;
}
.reveal .cv-criterion {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-top: 28px;
  border-top: 2px solid var(--gold);
}
.reveal .cv-criterion-number {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 56px;
  line-height: 1;
  color: var(--accent-ink);
}
.reveal .cv-criterion h3 {
  font-size: 44px;
  margin: 0;
}
.reveal .cv-criterion > p {
  font-size: 36px;
  line-height: 1.35;
}
.reveal .cv-criterion strong {
  color: var(--accent-ink);
}

/* Zeitlicher Selbstbehalt auf der Stundenachse */
.reveal .cv-hours {
  margin: 8px 0 0;
}
.reveal .cv-hours figcaption {
  font-size: 36px;
  margin-bottom: 18px;
}
.reveal .cv-hours-track {
  position: relative;
  height: 36px;
  border-radius: 6px;
  background: rgb(1 32 48 / 0.08);
}
.reveal .cv-hours-good,
.reveal .cv-hours-bad {
  position: absolute;
  top: 0;
  bottom: 0;
}
.reveal .cv-hours-good {
  left: 16.7%;
  width: 8.3%;
  background: var(--gold);
  border-radius: 4px;
}
.reveal .cv-hours-bad {
  left: 50%;
  right: 0;
  border: 2px dashed var(--muted);
  border-radius: 4px;
  background: repeating-linear-gradient(
    135deg,
    rgb(1 32 48 / 0.14) 0 8px,
    transparent 8px 18px
  );
}
.reveal .cv-hours-scale {
  position: relative;
  height: 34px;
  margin-top: 10px;
}
.reveal .cv-hours-scale li {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: var(--fs-label);
  color: var(--muted);
  white-space: nowrap;
}
.reveal .cv-hours-scale li:first-child {
  transform: none;
}
.reveal .cv-hours-scale li:last-child {
  transform: translateX(-100%);
}

/* Faustformel Versicherungssumme */
.reveal .cv-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 16px;
}
.reveal .cv-formula span {
  padding: 8px 20px;
  border-radius: 10px;
  font-size: 36px;
  background: var(--navy);
  color: var(--white);
}
.reveal .cv-formula i {
  font-style: normal;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 48px;
  line-height: 1;
  color: var(--accent-ink);
}

/* ---------- Antrag gegen Wirklichkeit ---------- */
.reveal .cv-versus {
  display: grid;
  grid-template-columns: 1fr 120px 1fr;
  align-items: stretch;
}
.reveal .cv-versus-claim {
  padding: 40px 48px;
  background: var(--white);
  border-radius: 8px;
  box-shadow: 0 30px 60px -24px rgb(1 32 48 / 0.35);
  border-top: 10px solid var(--gold);
}
.reveal .cv-versus .label {
  margin-bottom: 22px;
}
.reveal .cv-versus-quote {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 24px;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 50px;
  line-height: 1.22;
}
.reveal .cv-tick {
  width: 48px;
  height: 48px;
  margin-top: 8px;
  border-radius: 6px;
  background: var(--navy)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c7aa6a' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
    center / 34px no-repeat;
}
.reveal .cv-versus-sign {
  align-self: center;
  text-align: center;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 120px;
  line-height: 1;
  color: var(--gold-ink);
}
.reveal .cv-versus-fact {
  display: flex;
  flex-direction: column;
  padding: 40px 48px;
  border-radius: 16px;
  background: var(--navy);
  color: var(--ivory);
  --accent-ink: var(--gold);
}
.reveal .cv-versus-fact > p:not(.label) {
  font-size: 38px;
  line-height: 1.35;
}
.reveal .cv-versus-fact > p.cv-versus-result {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: auto;
  padding-top: 30px;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 50px;
  color: var(--gold);
}

/* ---------- Folgen falscher Angaben ---------- */
.reveal .cv-severity-axis {
  display: flex;
  justify-content: space-between;
  font-size: var(--fs-label);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 14px;
}
.reveal .cv-severity ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
/* Balkenfarbe von schwerem zu keinem Verschulden: Marine, Gold, Petrol */
.reveal .cv-severity li {
  padding: 32px 38px 38px;
  border-top: 16px solid var(--navy);
  background: var(--raised);
}
.reveal .cv-severity li:first-child {
  border-radius: 0 0 0 16px;
}
.reveal .cv-severity li:last-child {
  border-radius: 0 0 16px 0;
}
.reveal .cv-severity li:nth-child(2) {
  border-top-color: var(--gold);
}
.reveal .cv-severity li:nth-child(3) {
  border-top-color: var(--teal);
}
.reveal .cv-severity h3 {
  font-size: 42px;
  margin-bottom: 18px;
}
.reveal .cv-severity p {
  font-size: 36px;
  line-height: 1.32;
}
.reveal .cv-severity .cv-severity-full {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--teal);
}
.reveal .cv-severity-full .icon {
  font-size: 44px;
}

/* ---------- Ausschlüsse ---------- */
.reveal .cv-exclusions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px 56px;
}
.reveal .cv-exclusions li {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 30px;
  align-items: start;
  padding: 32px 36px;
  border-radius: 16px;
  border: 2px dashed var(--line);
}
.reveal .cv-exclusions h3 {
  font-size: 42px;
  margin-bottom: 10px;
}
.reveal .cv-exclusions p {
  font-size: 36px;
  line-height: 1.32;
  color: var(--muted);
}

/* ---------- Szenario ---------- */
.reveal .cv-profile .label {
  margin-bottom: 22px;
}
.reveal .cv-chips--icons li {
  padding: 12px 28px 12px 22px;
  color: var(--white);
  background: var(--navy-raised);
  border-color: var(--navy-line);
}
.reveal .cv-chips--icons .icon {
  font-size: 38px;
  color: var(--gold);
}

/* ---------- Schadenverlauf mit Kostenbalken ---------- */
.reveal .cv-ledger {
  position: relative;
  display: flex;
  flex-direction: column;
}
.reveal .cv-ledger li {
  display: grid;
  grid-template-columns: 170px 64px 640px 1fr 280px;
  gap: 28px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.reveal .cv-ledger-phase {
  font-size: var(--fs-label);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-ink);
}
.reveal .cv-ledger-text {
  font-size: 36px;
  line-height: 1.25;
}
.reveal .cv-ledger-bar {
  height: 30px;
}
.reveal .cv-ledger-bar span {
  display: block;
  height: 100%;
  min-width: 4px;
  border-radius: 4px;
  background: var(--navy);
}
.reveal .cv-ledger li.is-key .cv-ledger-bar span {
  background: var(--gold);
}
.reveal .cv-ledger-value {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 44px;
  line-height: 1.1;
  text-align: right;
  white-space: nowrap;
}
.reveal .cv-ledger-sub {
  display: block;
  font-family: "Varela Round", system-ui, sans-serif;
  font-size: var(--fs-label);
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-top: 4px;
  white-space: normal;
}
.reveal .cv-ledger li.is-key .cv-ledger-text,
.reveal .cv-ledger li.is-key .cv-ledger-value {
  color: var(--gold-ink);
}
.reveal .cv-ledger li.cv-ledger-open {
  border-bottom: 2px dashed var(--line);
}
.reveal .cv-ledger li.cv-ledger-open .cv-ledger-text {
  grid-column: 3 / -1;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 44px;
  color: var(--fg-strong);
}
.reveal .cv-ledger li.cv-ledger-total {
  border-bottom: none;
  border-top: 3px solid var(--navy);
  margin-top: -1px;
  padding-top: 18px;
}
.reveal .cv-ledger li.cv-ledger-total .cv-ledger-text {
  grid-column: 2 / -1;
  text-align: right;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 60px;
  color: var(--fg-strong);
}

/* ---------- Bilanz: mit und ohne getestete Backups ---------- */
.reveal .cv-compare {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1664px;
}
.reveal .cv-compare-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.reveal .cv-compare-bar {
  height: 44px;
  border-radius: 6px;
  background: rgb(234 228 210 / 0.08);
}
.reveal .cv-compare-bar span {
  display: block;
  height: 100%;
  border-radius: 6px;
  background: var(--gold);
}
.reveal .cv-compare-row.is-worse .cv-compare-bar span {
  position: relative;
  background: repeating-linear-gradient(
    135deg,
    rgb(234 228 210 / 0.5) 0 10px,
    rgb(234 228 210 / 0.2) 10px 20px
  );
}
.reveal .cv-compare-row.is-worse .cv-compare-bar span::after {
  content: "";
  position: absolute;
  right: -34px;
  top: 50%;
  width: 22px;
  height: 22px;
  border-top: 4px solid var(--ivory);
  border-right: 4px solid var(--ivory);
  transform: translateY(-50%) rotate(45deg);
}
.reveal .cv-compare-row p:not(.label) {
  font-size: 38px;
}
.reveal .cv-compare-row strong {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 48px;
  color: var(--gold);
}
.reveal .cv-compare-row.is-worse strong {
  color: var(--white);
}

/* ---------- Erste Schritte, nummeriert ---------- */
.reveal .cv-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px;
}
.reveal .cv-steps li {
  position: relative;
}
.reveal .cv-step-head {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 30px;
}
.reveal .cv-step-number {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 96px;
  line-height: 0.9;
  color: var(--accent-ink);
  min-width: 56px;
}
.reveal .cv-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 44px;
  left: 190px;
  right: -40px;
  border-top: 2px dashed var(--line);
}
.reveal .cv-steps h3 {
  font-size: 46px;
  margin-bottom: 16px;
}
.reveal .cv-steps p {
  font-size: 36px;
  line-height: 1.32;
  color: var(--muted);
}
.reveal .cv-steps--compact .cv-step-head {
  margin-bottom: 22px;
}
.reveal .cv-steps--compact .cv-step-number {
  font-size: 80px;
}
.reveal .cv-steps--compact h3 {
  font-size: 38px;
}
.reveal .cv-steps .cv-chips {
  margin-top: 4px;
}

/* ---------- Drei Akten ---------- */
.reveal .cv-files {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
  padding-top: 34px;
}
.reveal .cv-files li {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 24px 28px;
  border-radius: 0 16px 16px 16px;
  background: var(--raised);
  border: 1px solid var(--line);
}
/* Reiter der Akte */
.reveal .cv-files li::before {
  content: "";
  position: absolute;
  left: -1px;
  top: -34px;
  width: 44%;
  height: 34px;
  border-radius: 12px 12px 0 0;
  background: var(--raised);
  border: 1px solid var(--line);
  border-bottom: none;
}
.reveal .cv-files .cv-icon {
  margin-bottom: 20px;
}
.reveal .cv-files h3 {
  font-size: 40px;
}
.reveal .cv-files p {
  font-size: 36px;
  line-height: 1.32;
}
.reveal .cv-files .cv-owner {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--accent-ink);
}
.reveal .cv-files p:not(.cv-owner) {
  margin-bottom: 20px;
}

/* ---------- Praxistipp ---------- */
.reveal .cv-tip {
  align-items: flex-start;
  font-size: 44px;
  line-height: 1.35;
  max-width: 1560px;
  margin-top: 0;
}
.reveal .cv-tip .action-badge {
  margin-top: 6px;
}

/* ---------- Fazit ---------- */
.reveal .cv-then-now {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  margin-bottom: 48px;
}
.reveal .cv-then-now > p {
  font-size: 40px;
  line-height: 1.35;
}
.reveal .cv-then-now-figure {
  display: flex;
  align-items: center;
  gap: 36px;
  padding-left: 48px;
  border-left: 2px solid var(--navy-line);
}
.reveal .cv-then-now-figure strong {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 140px;
  line-height: 1;
  color: var(--gold);
  white-space: nowrap;
}

.reveal .cv-takeaways {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
}
.reveal .cv-takeaways li {
  padding: 40px 40px 48px;
  border-radius: 16px;
  background: var(--raised);
  border: 1px solid var(--line);
}
.reveal .cv-takeaways .cv-icon {
  width: 104px;
  height: 104px;
  font-size: 50px;
  margin-bottom: 32px;
}
.reveal .cv-takeaways .label {
  display: block;
  margin-bottom: 14px;
}
.reveal .cv-takeaways p {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 38px;
  line-height: 1.28;
  color: var(--fg-strong);
}

/* ---------- Kontakt ---------- */
.reveal .cv-contact p {
  font-size: 36px;
}
.reveal .cv-contact .muted {
  margin-top: 8px;
  font-size: 36px;
}
.reveal .cv-contact-list li {
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 36px;
  line-height: 1.5;
}
.reveal .cv-contact-list .icon {
  font-size: 34px;
  color: var(--gold);
}
.reveal .cv-contact-list:not(:first-child) {
  margin-top: 14px;
}

/* ---------- Quellen ---------- */
.reveal .cv-sources {
  display: grid;
  gap: 24px;
  counter-reset: source;
}
.reveal .cv-sources li {
  position: relative;
  padding-left: 72px;
  font-size: 36px;
  line-height: 1.32;
}
.reveal .cv-sources li::before {
  counter-increment: source;
  content: counter(source, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 6px;
  font-size: var(--fs-label);
  letter-spacing: 0.08em;
  color: var(--accent-ink);
}
