/* Modernisierte Fassung von Startseite und /referenzen/ (Björn, 03.11.2026). Die Bausteine der Hauptseite bleiben
   (Rundungen, zweifarbige Überschriften, Etiketten, Karten, Preise), neu sind die einmaligen Animationen im Stil von
   /hausverwaltungen/, der Hero, das Fallbeispiel und die Vergleichszeilen. Gilt nur unter body.modern, alle anderen
   Seiten laufen unverändert mit styles.css. Die Klasse html.bewegt setzt modern.js. */

.modern {
  --md-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --md-rahmen: rgba(232, 237, 243, 0.85);
  --md-linie: rgba(232, 237, 243, 0.16);
  --md-gedaempft: rgba(232, 237, 243, 0.72);
  --md-rand: 1rem;
  --md-sektion: 4.5rem;
  --md-luecke: 1.25rem;
  --md-innen: 1.25rem;
  font-variant-numeric: tabular-nums;
}
@media (min-width: 40em) { .modern { --md-rand: 2rem; --md-sektion: 6rem; --md-luecke: 1.75rem; --md-innen: 1.75rem; } }
@media (min-width: 64em) { .modern { --md-rand: 3rem; --md-sektion: 7.5rem; --md-luecke: 2rem; --md-innen: 2.25rem; } }

.modern ::selection { background: var(--blue); color: var(--bg); }
/* Die Navigation bleibt beim Container aus styles.css, damit sie auf allen Seiten an derselben Stelle steht.
   :where hält die Spezifität bei zwei Klassen. */
.modern .container:where(:not(.nav-inner)) { max-width: 80rem; padding-left: var(--md-rand); padding-right: var(--md-rand); }
.modern section { padding: var(--md-sektion) 0; }
.modern section.md-hero { padding: 5.5rem 0 var(--md-sektion); }
.modern .md-tief { background: var(--bg-deep); }
.modern :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }

/* Überschriften und Etiketten: Muster der Hauptseite, kleinste Schrift 12 px */
.modern h2 {
  font-family: var(--font-display); color: var(--white);
  font-size: clamp(1.9rem, 1rem + 3.6vw, 3.5rem); line-height: 1.08; letter-spacing: -0.02em;
  text-wrap: balance; margin: 0;
}
.modern h2 .fw-800 { font-weight: 800; color: var(--white); }
.modern h2 .fw-300 { font-weight: 300; color: var(--blue); }
.modern .tag, .modern .tag::before { font-size: 0.75rem; }
.modern .tag { margin-bottom: 1rem; }
.md-absatz, .md-kopfzeile p { color: var(--md-gedaempft); font-size: 1rem; line-height: 1.6; }
.md-kopfzeile strong, .md-absatz strong { color: var(--white); }
.md-kopfzeile { display: grid; gap: 1rem; margin-bottom: calc(var(--md-luecke) * 1.5); }
.md-kopfzeile p { max-width: 36rem; margin: 0; }
@media (min-width: 64em) { .md-kopfzeile { grid-template-columns: 1.15fr 1fr; gap: 3rem; align-items: end; } }

/* Einblendung der alten Seiten aus: Inhalte stehen sofort */
.modern .reveal { opacity: 1; transform: none; transition: none; }

/* Leuchtfeuer: ruht, dreht sich beim Darüberfahren genau einmal */
.modern .svc-card-wrap::before, .modern .price-card-wrap::before, .modern .probe::before, .modern .about-photo-glow::before { animation: none; }
.modern .svc-card-wrap:hover::before, .modern .price-card-wrap:hover::before, .modern .probe:hover::before, .modern .about-photo-wrap:hover .about-photo-glow::before { animation: border-rotate 2.4s linear 1; }

.modern .btn-primary, .modern .btn-outline { display: inline-flex; align-items: center; justify-content: center; min-height: 3.25rem; }
.md-ico { width: 1.25rem; height: 1.25rem; fill: none; stroke: var(--blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.md-link { color: var(--blue); font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }
.md-link:hover { color: var(--blue-hover); }
.md-weiter { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; margin-top: var(--md-luecke); }
.md-weiter .md-link { display: inline-flex; align-items: center; min-height: 2.75rem; }

/* Rahmenfeld: nur Hero und Diagramm */
.md-feld { background: var(--bg-deep); border: 1.5px solid var(--md-rahmen); border-radius: var(--radius); overflow: hidden; }
.md-tief .md-feld { background: var(--bg); }
.md-feld-kopf {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; align-items: baseline;
  padding: 0.9rem var(--md-innen); border-bottom: 1.5px solid var(--md-rahmen);
}
.md-feld-kopf b { font-family: var(--font-display); font-weight: 700; color: var(--white); font-size: 1rem; }
.md-feld-kopf span { font-size: 0.86rem; color: var(--md-gedaempft); }

/* Hero */
.md-kopf { display: grid; grid-template-columns: minmax(0, 1fr); }
.md-kopf-text { padding: var(--md-innen); padding-top: calc(var(--md-innen) * 1.1); }
.md-kopf h1 { margin: 0 0 1.25rem; font-family: var(--font-display); }
.md-kopf h1 > span { display: block; }
.md-h1-gross { font-weight: 800; color: var(--white); font-size: clamp(2.25rem, 0.9rem + 5.6vw, 5.4rem); line-height: 0.98; letter-spacing: -0.035em; }
.md-h1-zusatz { font-weight: 300; color: var(--blue); font-size: clamp(1.45rem, 1rem + 1.8vw, 2.5rem); line-height: 1.15; letter-spacing: -0.015em; margin-top: 0.5rem; text-wrap: balance; max-width: 26em; }
.md-einstieg { font-size: 1.05rem; line-height: 1.6; color: var(--md-gedaempft); max-width: 36rem; margin: 0 0 1.5rem; }
.md-einstieg strong { color: var(--white); }
.md-aussteller { margin: 0; display: grid; grid-template-columns: 4.5rem 1fr; gap: 0.9rem; align-items: center; padding: 0.9rem var(--md-innen); border-top: 1.5px solid var(--md-rahmen); }
.md-aussteller img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 12%; border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.06); }
.md-aussteller figcaption b { display: block; font-family: var(--font-display); font-weight: 700; color: var(--white); }
.md-aussteller figcaption span { font-size: 0.86rem; color: var(--md-gedaempft); }
@media (min-width: 64em) {
  .md-kopf { grid-template-columns: minmax(0, 1fr) 19rem; }
  .md-kopf-text { padding: 2.4rem 2.5rem; }
  .md-aussteller { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-top: 0; border-left: 1.5px solid var(--md-rahmen); }
  .md-aussteller picture { flex: 1; min-height: 0; display: block; }
  .md-aussteller img { height: 100%; aspect-ratio: auto; border-radius: 0; }
  .md-aussteller figcaption { padding: 0.8rem 1.1rem; border-top: 1.5px solid var(--md-rahmen); }
}

/* Skala: Ladezeit */
.md-skala { padding: var(--md-innen); border-top: 1.5px solid var(--md-rahmen); --pfeil: 1.6rem; }
.md-skala-kopf { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; justify-content: space-between; margin-bottom: 3.5rem; }
.md-skala-kopf b { font-family: var(--font-display); font-weight: 700; color: var(--white); }
.md-skala-kopf span { font-size: 0.86rem; color: var(--md-gedaempft); }
.md-skala-band { position: relative; height: 3.25rem; }
.md-skala-band i {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #78c0dd 0%, #8fb7c9 30%, #c9a083 62%, #e8935a 84%, #e07a45 100%);
  clip-path: polygon(0 0, calc(100% - var(--pfeil)) 0, 100% 50%, calc(100% - var(--pfeil)) 100%, 0 100%);
}
.md-marke {
  position: absolute; bottom: calc(100% + 0.55rem); left: calc((100% - var(--pfeil)) * 0.16);
  transform: translateX(-1.1rem); background: var(--white); color: var(--bg); border-radius: var(--radius-sm);
  padding: 0.3rem 0.65rem; white-space: nowrap; font-size: 0.8rem; font-weight: 600; line-height: 1.2;
}
.md-marke b { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; margin-right: 0.3rem; }
.md-marke::after { content: ""; position: absolute; left: 0.8rem; top: 100%; border: 0.35rem solid transparent; border-top-color: var(--white); }
.md-skala-ziffern { position: relative; display: flex; justify-content: space-between; margin-top: 0.5rem; padding-right: var(--pfeil); font-family: var(--font-display); font-weight: 600; font-size: 0.8rem; color: var(--md-gedaempft); }
.md-richtwert-stiel { position: absolute; left: calc((100% - var(--pfeil)) * 0.5); top: -0.45rem; bottom: -0.45rem; width: 4px; margin-left: -2px; background: var(--white); border-radius: 2px; }
.md-richtwert { margin: 0.9rem 0 0; padding-left: calc((100% - var(--pfeil)) * 0.5); }
.modern .md-richtwert a { display: inline-block; margin-left: -2px; border: 1.5px solid var(--white); border-radius: var(--radius-sm); padding: 0.25rem 0.6rem; color: var(--white); font-size: 0.8rem; font-weight: 600; line-height: 1.3; text-decoration-color: var(--md-gedaempft); text-underline-offset: 0.15em; }
.md-richtwert a b { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; margin-right: 0.25rem; }
@media (max-width: 30em) {
  .md-richtwert { padding-left: 0; }
  .md-skala-kopf { margin-bottom: 4.5rem; }
  .md-marke b { display: block; margin: 0; }
  .md-kopf-text .btn-primary { width: 100%; padding-left: 1rem; padding-right: 1rem; font-size: 0.95rem; }
  .md-skala { --md-marke-breit: 11rem; }
}
.bewegt .md-skala-band i { animation: md-wischen 0.9s var(--md-ease) both; }
.bewegt .md-marke { animation: md-gleiten 2s var(--md-ease) 0.5s both; }
@keyframes md-wischen { from { clip-path: polygon(0 0, 0 0, 0 50%, 0 100%, 0 100%); } }
/* Start nie weiter rechts, als die Marke Platz hat, sonst schneidet der Rand sie am Handy ab */
@keyframes md-gleiten { from { left: min(calc((100% - var(--pfeil)) * 0.8), calc(100% - var(--md-marke-breit, 17rem))); } }

/* Eckdaten */
.md-eck { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1.5px solid var(--md-rahmen); }
.md-eck li { display: flex; gap: 0.6rem; align-items: center; padding: 0.85rem var(--md-innen); color: var(--text-on-dark); font-size: 0.95rem; border-right: 1px solid var(--md-linie); border-bottom: 1px solid var(--md-linie); }
.md-eck li:nth-child(2n) { border-right: 0; }
.md-eck li:nth-last-child(-n+2) { border-bottom: 0; }
@media (max-width: 30em) { .md-eck li { padding: 0.75rem 0.8rem; font-size: 0.86rem; } }
@media (min-width: 64em) {
  .md-eck { grid-template-columns: repeat(4, 1fr); }
  .md-eck li { border-bottom: 0; }
  .md-eck li:nth-child(2n) { border-right: 1px solid var(--md-linie); }
  .md-eck li:last-child { border-right: 0; }
}

/* Diagramm: Klicks je Woche */
.md-chart { margin: 0; }
.md-chart-innen { display: grid; }
.md-kennzahlen { margin: 0; display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1.5px solid var(--md-rahmen); }
.md-kennzahl { padding: 1rem var(--md-innen); }
.md-kennzahl + .md-kennzahl { border-left: 1px solid var(--md-linie); }
.md-kennzahl dt { font-size: 0.86rem; color: var(--md-gedaempft); margin-bottom: 0.25rem; }
.md-kennzahl dd { margin: 0; }
.md-wert { display: block; font-family: var(--font-display); font-weight: 800; color: var(--blue); font-size: clamp(2rem, 1.6rem + 1.4vw, 2.8rem); line-height: 1.05; letter-spacing: -0.02em; font-feature-settings: "tnum"; }
.md-wert-vorher { display: block; font-size: 0.86rem; color: var(--md-gedaempft); margin-top: 0.15rem; }
.md-plot-rahmen { padding: 1.5rem var(--md-innen) 1rem; min-width: 0; }
.md-plot { position: relative; height: clamp(12rem, 8rem + 16vw, 19rem); margin-left: 2rem; margin-right: 0.5rem; }
.md-plot svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.md-plot-achse { position: absolute; left: -2rem; width: 1.6rem; text-align: right; transform: translateY(-50%); font-family: var(--font-display); font-size: 0.75rem; font-weight: 600; color: var(--md-gedaempft); }
.md-plot-gitter { position: absolute; left: 0; right: 0; height: 1px; background: var(--md-linie); }
.md-plot-ende { position: absolute; right: 0; top: 7.6%; width: 0.8rem; height: 0.8rem; margin: -0.4rem -0.4rem 0 0; border-radius: 50%; background: var(--white); box-shadow: 0 0 0 3px var(--bg-deep); }
.md-tief .md-plot-ende { box-shadow: 0 0 0 3px var(--bg); }
.md-plot-endetext { position: absolute; right: 0.9rem; top: 7.6%; transform: translateY(-50%); text-align: right; color: var(--white); font-size: 0.86rem; line-height: 1.25; }
.md-plot-endetext b { font-family: var(--font-display); font-weight: 800; font-size: 1.45rem; display: block; }
.md-monate { position: relative; height: 1.4rem; margin: 0.5rem 0.5rem 0 2rem; }
.md-monate span { position: absolute; transform: translateX(-2px); font-family: var(--font-display); font-weight: 600; font-size: 0.75rem; color: var(--md-gedaempft); }
.md-quelle { margin: 0; padding: 0.8rem var(--md-innen); border-top: 1px solid var(--md-linie); font-size: 0.8rem; line-height: 1.45; color: var(--md-gedaempft); }
@media (max-width: 30em) { .md-monate .md-monat-weg { display: none; } }
@media (min-width: 64em) {
  .md-chart-innen { grid-template-columns: 17rem minmax(0, 1fr); }
  .md-kennzahlen { display: block; border-bottom: 0; border-right: 1.5px solid var(--md-rahmen); }
  .md-kennzahl + .md-kennzahl { border-left: 0; border-top: 1px solid var(--md-linie); }
  .md-kennzahl { padding: 1.5rem var(--md-innen); }
}
.bewegt [data-animation]:not(.laeuft) .md-plot-linie { clip-path: inset(0 100% 0 0); }
.bewegt [data-animation]:not(.laeuft) .md-plot-ende,
.bewegt [data-animation]:not(.laeuft) .md-plot-endetext { opacity: 0; }
.bewegt .laeuft .md-plot-linie { animation: md-linie 1.8s cubic-bezier(0.45, 0, 0.15, 1) both; }
.bewegt .laeuft .md-plot-ende { animation: md-punkt 0.4s var(--md-ease) 1.7s both; }
.bewegt .laeuft .md-plot-endetext { animation: md-auf 0.5s var(--md-ease) 1.8s both; }
@keyframes md-linie { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes md-punkt { from { opacity: 0; transform: scale(0.2); } }
@keyframes md-auf { from { opacity: 0; transform: translateY(calc(-50% + 6px)); } }

/* Aufnahmen */
.md-shots { display: grid; grid-template-columns: 1fr 1fr; gap: var(--md-luecke); margin-top: var(--md-luecke); }
.md-shots > :first-child { grid-column: 1 / -1; }
.md-shot { margin: 0; min-width: 0; }
.md-shot-bild { display: block; overflow: hidden; border: 1px solid rgba(232, 237, 243, 0.25); border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.06); }
.md-shot img { display: block; width: 100%; height: auto; }
.md-shot figcaption { margin-top: 0.6rem; font-size: 0.86rem; line-height: 1.45; color: var(--md-gedaempft); }
.md-shot figcaption b { display: block; font-family: var(--font-display); font-weight: 700; font-size: 1rem; color: var(--white); margin-bottom: 0.15rem; }
@media (min-width: 48em) { .md-shots { grid-template-columns: repeat(3, 1fr); } .md-shots > :first-child { grid-column: auto; } }
.bewegt [data-animation]:not(.laeuft) .md-shot-bild { clip-path: inset(0 0 100% 0); }
.bewegt .laeuft .md-shot-bild { animation: md-rollo 0.9s var(--md-ease) both; animation-delay: calc(var(--n, 0) * 0.14s); }
@keyframes md-rollo { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }

/* Warum: Problem und Antwort je Zeile gegenüber, darunter die blaue Karte der Hauptseite */
.md-vergleich { list-style: none; margin: 0; padding: 0; }
.md-vg-kopf { display: none; }
.md-vg-zeile { display: grid; gap: 0.6rem; padding: 1.1rem 0; border-top: 1px solid var(--md-linie); }
.md-vg-zeile:last-child { border-bottom: 1px solid var(--md-linie); }
.md-vg-zelle { display: flex; gap: 0.8rem; align-items: flex-start; }
.md-vg-zelle p { margin: 0; font-size: 1rem; line-height: 1.5; }
.md-vg-alt p { color: var(--md-gedaempft); }
.md-vg-alt strong { color: var(--text-on-dark); }
.md-vg-neu p { color: var(--white); }
.md-vg-neu strong { color: var(--blue); }
.md-vg-neu .md-ico { stroke: var(--green); stroke-width: 2.4; }
.md-kachel { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: none; border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.1); }
.modern .solution-card { margin-top: var(--md-luecke); }
.modern .solution-card h3 { font-family: var(--font-display); font-weight: 800; color: var(--text-on-blue); margin: 0; }
.modern .solution-card p { font-size: 1rem; line-height: 1.6; color: var(--text-on-blue); max-width: 52rem; margin: 0; }
.modern .solution-card strong { color: var(--text-on-blue); font-weight: 800; }
@media (min-width: 48em) {
  .md-vg-kopf { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding-bottom: 0.7rem; font-family: var(--font-display); font-weight: 700; color: var(--md-gedaempft); }
  .md-vg-kopf span + span { color: var(--blue); }
  .md-vg-zeile { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
}
.bewegt [data-animation]:not(.laeuft) .md-vg-neu { opacity: 0; }
.bewegt [data-animation].laeuft .md-vg-neu { animation: md-zeile 0.7s var(--md-ease) both; animation-delay: calc(0.1s + var(--n, 0) * 0.22s); }
@keyframes md-zeile { from { opacity: 0; transform: translateX(-0.9rem); } }

/* Ablauf: Band mit Spitze, ohne Boxen */
.md-schritte { position: relative; list-style: none; margin: 0; padding: 0 0 0 1.5rem; display: grid; gap: 2.25rem; }
.md-schritte::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; border-radius: 3px;
  background: linear-gradient(180deg, rgba(120, 192, 221, 0.3), var(--blue));
}
.md-ziffer { display: block; font-family: var(--font-display); font-weight: 800; font-size: 3.5rem; line-height: 0.9; letter-spacing: -0.04em; color: var(--blue); margin-bottom: 0.6rem; }
.md-schritt h3 { margin: 0 0 0.5rem; font-family: var(--font-display); font-weight: 700; color: var(--white); font-size: 1.25rem; }
.md-schritt p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--md-gedaempft); }
.md-schritt strong { color: var(--white); }
@media (min-width: 64em) {
  .md-schritte { grid-template-columns: repeat(3, 1fr); padding: 2.5rem 0 0; gap: 3rem; }
  .md-schritte::before {
    left: 0; right: 0; bottom: auto; width: auto; height: 0.9rem; border-radius: 0;
    background: linear-gradient(90deg, rgba(120, 192, 221, 0.3), var(--blue));
    clip-path: polygon(0 0, calc(100% - 0.8rem) 0, 100% 50%, calc(100% - 0.8rem) 100%, 0 100%);
  }
}
.bewegt .md-schritte[data-animation]:not(.laeuft)::before { transform: scaleY(0); transform-origin: top; }
.bewegt .md-schritte[data-animation].laeuft::before { animation: md-fuellen-y 1.5s var(--md-ease) both; transform-origin: top; }
.bewegt .md-schritte[data-animation]:not(.laeuft) .md-schritt { opacity: 0; }
.bewegt .md-schritte[data-animation].laeuft .md-schritt { animation: md-schritt 0.7s var(--md-ease) both; animation-delay: calc(0.15s + var(--n, 0) * 0.28s); }
@keyframes md-fuellen-y { from { transform: scaleY(0); } }
@keyframes md-fuellen-x { from { clip-path: polygon(0 0, 0 0, 0 50%, 0 100%, 0 100%); } }
@keyframes md-schritt { from { opacity: 0; transform: translateY(0.8rem); } }
@media (min-width: 64em) {
  .bewegt .md-schritte[data-animation]:not(.laeuft)::before { transform: none; clip-path: polygon(0 0, 0 0, 0 50%, 0 100%, 0 100%); }
  .bewegt .md-schritte[data-animation].laeuft::before { animation-name: md-fuellen-x; }
}

/* Leistungen: Karten der Hauptseite, gleiche Höhen je Reihe */
.md-svc { display: grid; gap: var(--md-luecke); }
.modern .md-svc .svc-card p { font-size: 0.95rem; line-height: 1.6; }
.modern .md-svc .card-dark p, .modern .md-svc .card-glass p { color: var(--md-gedaempft); }
.modern .md-svc .card-dark strong, .modern .md-svc .card-glass strong { color: var(--white); }
.md-svc .svc-featured { grid-row: auto; }
.md-svc .svc-featured .svc-card { display: flex; flex-direction: column; justify-content: center; }
.md-svc .svc-featured h3 { font-size: 1.6rem; font-weight: 800; line-height: 1.15; }
.md-cms-karte { display: grid; gap: 1.5rem; align-items: center; }
.md-cms-text > :last-child { margin-bottom: 0; }
.md-cms-text a { color: var(--blue); text-decoration: underline; text-underline-offset: 0.2em; }
.md-cms-bilder { position: relative; padding-right: 13%; padding-bottom: 8%; }
.md-cms-bilder img { display: block; width: 100%; height: auto; border: 1px solid rgba(232, 237, 243, 0.25); border-radius: var(--radius-sm); }
.md-cms-bilder .md-cms-handy { position: absolute; right: 0; bottom: 0; width: 24%; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, 0.9); }
.md-cms-schild { display: inline-block; background: rgba(120, 192, 221, 0.12); color: var(--blue); border-radius: var(--radius-pill); padding: 0.15rem 0.6rem; font-size: 0.75rem; font-weight: 700; margin-top: 0.75rem; }
@media (min-width: 48em) {
  .md-svc { grid-template-columns: 1fr 1fr; }
  .md-svc .svc-featured, .md-svc .md-svc-breit, .md-svc .md-svc-rest:last-child { grid-column: 1 / -1; }
}
@media (min-width: 64em) {
  .md-svc { grid-template-columns: repeat(3, 1fr); }
  .md-svc .svc-featured { grid-column: 1; }
  .md-svc .md-svc-breit { grid-column: 2 / 4; }
  .md-svc .md-svc-rest, .md-svc .md-svc-rest:last-child { grid-column: auto; }
  .md-cms-karte { grid-template-columns: 0.8fr 1.2fr; }
}
.bewegt [data-animation]:not(.laeuft) .md-cms-handy { opacity: 0; }
.bewegt [data-animation].laeuft .md-cms-handy { animation: md-handy 0.9s var(--md-ease) 0.25s both; }
@keyframes md-handy { from { opacity: 0; transform: translateY(1.5rem); } }

/* Preise: Original, nur Lesbarkeit */
.modern .pricing-grid { gap: var(--md-luecke); }
.modern .price-badge { font-size: 0.75rem; }
.modern .price-desc { font-size: 0.86rem; }
.modern .price-note { font-size: 0.8rem; }
.modern .card-outline .price-note, .modern .card-dark .price-note, .modern .card-dark .price-desc { color: var(--md-gedaempft); }
.modern .card-blue .price-desc, .modern .card-blue .price-note { color: rgba(12, 18, 34, 0.82); }
.modern .price-features li { font-size: 0.9rem; }
.modern .check { font-size: 0.75rem; }
.modern .pricing-note { font-size: 0.95rem; }

/* KI-Sichtbarkeit */
.md-angebot { display: grid; gap: 1.5rem; align-items: end; }
.md-angebot .md-absatz { max-width: 44rem; margin: 0; }
@media (min-width: 64em) { .md-angebot { grid-template-columns: 1.15fr 1fr; gap: 3rem; } }

/* Fragen */
.md-fragen { display: grid; gap: 1.5rem; }
@media (min-width: 64em) { .md-fragen { grid-template-columns: 0.9fr 1.3fr; gap: 3rem; } }
.md-fragen .md-absatz { margin: 0.75rem 0 0; }
.modern .faq-q { font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; color: var(--white); padding: 1rem 0; gap: 1rem; }
.modern .faq-q:hover, .modern .faq-item.open .faq-q { color: var(--blue); }
.modern .faq-a-inner { font-size: 1rem; line-height: 1.6; color: var(--md-gedaempft); }
.modern .faq-a-inner strong { color: var(--white); }

/* Über mich und Arbeitsproben: Original, nur Lesbarkeit */
.modern .about-copy h2 { margin-bottom: 1rem; }
.modern .about-text { font-size: 1rem; line-height: 1.6; color: var(--md-gedaempft); }
.modern .about-text strong { color: var(--white); }
.modern .about-hl { font-size: 0.9rem; }
.modern .arbeitsproben p { color: var(--md-gedaempft); max-width: 44rem; font-size: 1rem; line-height: 1.6; }
.modern .probe figcaption { font-size: 0.8rem; }

/* Kontakt: Original, nur Lesbarkeit */
.modern .contact-sub { font-size: 1rem; line-height: 1.6; }
.modern .form-group label { font-size: 0.75rem; }
.modern .form-group input, .modern .form-group textarea, .modern .form-group select { font-size: 1rem; }
.modern .form-group select:invalid, .modern .form-group select option[disabled] { color: rgba(232, 237, 243, 0.72); }
.modern .form-calculator-link, .modern .form-note, .modern .privacy-consent { font-size: 0.8rem; }
.modern .privacy-consent input[type="checkbox"] { width: 1.5rem; height: 1.5rem; flex: none; accent-color: var(--accent-warm); }

/* Referenzen: Fallstudie */
.md-fall-blick { display: grid; gap: var(--md-luecke); margin-top: var(--md-luecke); }
.md-gsc { margin: 0; }
.md-gsc img { display: block; width: 100%; height: auto; border-radius: var(--radius-sm); }
.md-gsc figcaption { margin-top: 0.7rem; font-size: 0.86rem; color: var(--md-gedaempft); line-height: 1.45; }
.md-tabelle { width: 100%; border-collapse: collapse; }
.md-tabelle caption { text-align: left; padding: 0 0 0.9rem; font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; color: var(--white); }
.md-tabelle caption span { display: block; font-family: var(--font-body); font-weight: 400; font-size: 0.86rem; color: var(--md-gedaempft); }
.md-tabelle th, .md-tabelle td { padding: 0.65rem 0; text-align: left; border-top: 1px solid var(--md-linie); font-size: 0.95rem; color: var(--text-on-dark); }
.md-tabelle th { font-weight: 600; font-size: 0.86rem; color: var(--md-gedaempft); }
.md-tabelle .zahl { text-align: right; font-family: var(--font-display); font-weight: 700; color: var(--white); white-space: nowrap; padding-left: 1rem; }
.md-tabelle th.zahl { font-family: var(--font-body); font-weight: 600; color: var(--md-gedaempft); }
.md-bauteile { display: grid; grid-template-columns: 1fr; gap: var(--md-luecke); margin-top: calc(var(--md-luecke) * 1.5); }
.md-bauteile .md-handy-spalte { max-width: 13rem; }
@media (min-width: 48em) { .md-bauteile { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64em) { .md-bauteile { grid-template-columns: 1fr 1fr 0.5fr; } .md-bauteile .md-handy-spalte { max-width: none; } }

/* Referenzen: Galerie, nur Lesbarkeit */
.modern .filter-btn { font-size: 0.75rem; }
.modern .gallery-live-link { display: inline-flex; align-items: center; min-height: 1.75rem; }
.modern .gallery-branche, .modern .gallery-detail, .modern .gallery-detail span, .modern .gallery-live-link { font-size: 0.75rem; }
.modern .gallery-item[data-sektion="entwuerfe"] .gallery-info p { font-size: 0.8rem; }
.modern .gallery-item .gallery-info p { color: var(--md-gedaempft); }
.modern .gallery-item .gallery-info strong { color: var(--white); }
.modern .gallery-sektion-text { font-size: 1rem; line-height: 1.6; }
.modern .md-tiefer-text .md-absatz { max-width: 44rem; margin: 0.75rem 0 0; }
.modern .md-tiefer-text a { color: var(--blue); text-decoration: underline; text-underline-offset: 0.2em; }

/* Fuß: Original, nur Kleinstschrift */
.modern .footer-col-title, .modern .footer-updated { font-size: 0.75rem; }

/* Leistungen: nur eigene Klassen, Startseite und /referenzen/ bleiben unberührt */
.md-lst-kopf .md-h1-gross { text-wrap: balance; }
.md-lst-name { white-space: nowrap; }
@media (max-width: 30em) { .md-lst-knoepfe .btn-outline { width: 100%; } }
/* Fünf Eckdaten: am Handy zwei Spalten, der fünfte Punkt füllt die Reihe; ab 48em genau eine Reihe */
.md-lst-eck li:last-child { grid-column: 1 / -1; border-right: 0; }
.md-lst-eck li:nth-last-child(2) { border-bottom: 1px solid var(--md-linie); }
@media (min-width: 48em) {
  .md-lst-eck { grid-template-columns: repeat(5, 1fr); }
  .md-lst-eck li, .md-lst-eck li:nth-last-child(2) { border-bottom: 0; }
  .md-lst-eck li:nth-child(2n) { border-right: 1px solid var(--md-linie); }
  .md-lst-eck li:last-child { grid-column: auto; border-right: 0; }
}
@media (min-width: 48em) and (max-width: 63.9375em) {
  .md-lst-eck li { flex-direction: column; align-items: flex-start; gap: 0.4rem; padding: 0.85rem 1rem; }
  .md-lst-eck li:first-child { padding-left: var(--md-innen); }
}
@media (min-width: 64em) {
  .md-lst-eck li { padding: 0.85rem 1.25rem; }
  /* Erste Zelle fluchtet mit dem Hero-Text */
  .md-lst-eck li:first-child { padding-left: 2.5rem; }
}
/* Porträt: gleicher Zuschnitt wie auf der Startseite, das Bild steht unten, die Fläche darüber trägt seine Hintergrundfarbe */
@media (min-width: 64em) {
  .md-lst-kopf .md-aussteller picture { display: flex; flex-direction: column; justify-content: flex-end; background: rgba(120, 192, 221, 0.06); }
  .md-lst-kopf .md-aussteller img { flex: none; height: auto; aspect-ratio: 303 / 323; background: none; }
}
/* Definition und Projekte stehen auf derselben Fläche, ohne doppelten Abstand */
.modern section.md-lst-anschluss { padding-bottom: 0; }
.md-lst-anschluss .md-kopfzeile { margin-bottom: 0; }
/* Zwei Projekte als Karten der Arbeitsproben, zweispaltig ab der Breite, ab der die Startseite mehrspaltig wird */
@media (min-width: 37.5625em) { .md-lst-proben { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.modern .md-lst-proben figcaption { margin-top: 1rem; }
/* Enthalten: Liste über die volle Breite, darunter CMS-Karte und Zusatz. Ab 64em dieselben Spalten wie .md-kopfzeile, damit die Kanten fluchten */
.md-lst-unter { display: grid; grid-template-columns: minmax(0, 1fr); gap: calc(var(--md-luecke) * 1.5); margin-top: calc(var(--md-luecke) * 1.5); }
.md-lst-cms { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.md-lst-cms .md-cms-schild { justify-self: start; margin-top: 0; }
.md-lst-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.md-lst-liste li { display: flex; gap: 0.8rem; align-items: flex-start; padding: 1.1rem 0; border-top: 1px solid var(--md-linie); }
.md-lst-liste li:last-child { border-bottom: 1px solid var(--md-linie); }
.md-lst-liste p { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--md-gedaempft); }
.md-lst-liste .md-ico { stroke: var(--green); stroke-width: 2.4; }
.md-lst-zusatz { margin: 0; max-width: 44rem; }
@media (min-width: 48em) {
  .md-lst-liste { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 3rem; }
  .md-lst-liste li:nth-last-child(2) { border-bottom: 1px solid var(--md-linie); }
}
@media (min-width: 64em) {
  .md-lst-liste, .md-lst-unter { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: 3rem; }
  .md-lst-unter { align-items: center; }
}
/* Branchen: schlichte Linkliste, spaltenweise alphabetisch. Jede Zeile trägt beide Linien, -1px legt sie übereinander */
.md-lst-links { list-style: none; margin: 0; padding: 1px 0 0; display: grid; }
.md-lst-links li { margin-top: -1px; min-width: 0; }
.md-lst-links a {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: 0.5rem 0.35rem 0.5rem 0;
  border-top: 1px solid var(--md-linie); border-bottom: 1px solid var(--md-linie);
  font-family: var(--font-display); font-weight: 600; font-size: 1.12rem; color: var(--white);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.md-lst-links .md-ico { transition: transform 0.25s var(--md-ease); }
.md-lst-links a:hover, .md-lst-links a:focus-visible { position: relative; z-index: 1; color: var(--blue); border-color: var(--blue); }
.md-lst-links a:hover .md-ico, .md-lst-links a:focus-visible .md-ico { transform: translateX(0.35rem); }
@media (min-width: 30em) { .md-lst-links { grid-auto-flow: column; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(6, auto); column-gap: 2rem; } }
@media (min-width: 48em) { .md-lst-links { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); column-gap: 3rem; } }

/* Über mich: nur eigene Klassen, die übrigen Seiten bleiben unberührt */
/* Vier Eckdaten: ab 64em fluchten erste Zelle mit dem Hero-Text, letzte Spalte und Text mit der Porträtspalte */
@media (min-width: 64em) {
  .md-ueb-eck { grid-template-columns: repeat(3, minmax(0, 1fr)) 19rem; }
  .md-ueb-eck li { padding: 0.85rem 1.25rem; }
  .md-ueb-eck li:first-child { padding-left: 2.5rem; }
  .md-ueb-eck li:last-child { padding-left: 1.1rem; border-left: 1.5px solid var(--md-rahmen); }
  .md-ueb-eck li:nth-child(3) { border-right: 0; }
}
/* Überschrift links, Text rechts, Spalten wie .md-kopfzeile */
.md-ueb-zweier { display: grid; gap: 1.25rem; }
.md-ueb-zweier .md-absatz { margin: 0; max-width: 40rem; }
.md-ueb-zweier .md-absatz + .md-absatz { margin-top: 1rem; }
.md-ueb-punkte { margin: 1.5rem 0 0; max-width: 40rem; }
@media (min-width: 64em) { .md-ueb-zweier { grid-template-columns: 1.15fr 1fr; gap: 3rem; align-items: start; } }
/* Jeder Mittelteil trägt ein eigenes Bildstück, das einmal läuft, sobald es sichtbar wird (Björn, 04.11.2026: zu wenig
   Abwechslung, keine Bewegung). Ohne JavaScript und bei reduzierter Bewegung steht alles sofort da. */
@keyframes md-ueb-stich { from { transform: scaleX(0); } }
@keyframes md-ueb-dock { from { opacity: 0; transform: translateY(0.9rem) scale(0.8); } }
@keyframes md-ueb-ein { from { opacity: 0; } }

/* Fachgebiete: fünf Fächer an einer Sammelschiene, die sich füllt und in einem Knoten endet; daneben der Beleg */
.md-ueb-buendel { display: grid; gap: calc(var(--md-luecke) * 1.5); }
.md-ueb-schiene { position: relative; padding-left: 2.4rem; }
.md-ueb-schiene::before {
  content: ""; position: absolute; left: 0; top: 0.4rem; bottom: 1.125rem; width: 6px; border-radius: 3px;
  background: linear-gradient(180deg, rgba(120, 192, 221, 0.3), var(--blue)); transform-origin: top;
}
.md-ueb-faecher { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
.md-ueb-fach { position: relative; display: flex; gap: 0.9rem; align-items: flex-start; }
.md-ueb-fach::before { content: ""; position: absolute; left: -2.4rem; top: 0.75rem; width: 1.6rem; height: 3px; margin-top: -1.5px; background: var(--white); border-radius: 2px; transform-origin: left; }
/* Symbol auf der ersten Textzeile, nicht in der Mitte des Absatzes */
.md-ueb-fach .md-kachel { margin-top: -0.4rem; }
.md-ueb-fach h3 { margin: 0 0 0.3rem; font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; line-height: 1.3; color: var(--white); }
.md-ueb-fach p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: var(--md-gedaempft); }
.md-ueb-fach strong { color: var(--white); }
.md-ueb-ziel { position: relative; margin: 1.5rem 0 0; display: flex; align-items: center; min-height: 2.25rem; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; color: var(--blue); }
.md-ueb-ziel i { position: absolute; left: calc(-2.4rem + 3px - 0.7rem); top: 50%; width: 1.4rem; height: 1.4rem; margin-top: -0.7rem; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px var(--bg), 0 0 18px rgba(120, 192, 221, 0.6); }
/* Beleg: Klicks, Impressionen und KI-Impressionen als drei Kurven auf einer gemeinsamen Zeitachse, je eine Skala. Ab 64em oben und unten
   bündig mit der Liste und in voller Spaltenbreite (Björn, 05.11.2026); die Kurven teilen sich die Höhe, die die Liste vorgibt.
   Das HTML der Karte baut scripts/ueber-mich-diagramm/baue.py aus den Tageswerten. */
.md-ueb-beleg { --md-innen: 1.25rem; --md-ueb-y: 2.6rem; margin: 0; display: flex; flex-direction: column; min-width: 0; }
.md-ueb-zeit { flex: 1; display: flex; flex-direction: column; padding: 1.4rem var(--md-innen) 0.4rem; }
.md-ueb-baender { position: relative; flex: 1; display: flex; flex-direction: column; gap: 1.75rem; margin: 0 0.5rem 0 var(--md-ueb-y); }
.md-ueb-kurve { --c: var(--blue); position: relative; flex: 1 1 0; min-height: clamp(9.5rem, 7rem + 10vw, 13rem); }
.md-ueb-kurve--impressionen { --c: #a78bfa; }
.md-ueb-kurve--ki { --c: var(--accent-warm); }
.md-ueb-plot { position: absolute; inset: 0; }
.md-ueb-plot svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.md-ueb-plot .linie { fill: none; stroke: var(--c); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.md-ueb-plot .flaeche { fill: var(--c); fill-opacity: 0.12; }
.md-ueb-y { position: absolute; right: calc(100% + 0.5rem); transform: translateY(-50%); font-family: var(--font-display); font-weight: 600; font-size: 0.75rem; color: var(--md-gedaempft); white-space: nowrap; }
.md-ueb-ende { position: absolute; right: 0; width: 0.625rem; height: 0.625rem; margin: -0.3125rem -0.3125rem 0 0; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px var(--bg-deep); }
.md-ueb-monat { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--md-linie); }
/* Summe je Kurve auf der freien Fläche links oben, die Linien bleiben dort tief; die Fläche deckt das Gitter hinter dem Text ab */
.md-ueb-wert { position: absolute; z-index: 1; left: 0.5rem; top: 0.35rem; margin: 0; padding: 0.1rem 0.6rem 0.25rem 0.25rem; max-width: min(8.75rem, 64%); background: var(--bg-deep); }
.md-ueb-wert b { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--white); font-variant-numeric: normal; }
.md-ueb-wert span { display: block; font-size: 0.8rem; line-height: 1.3; color: var(--md-gedaempft); }
.md-ueb-daten { position: relative; height: 1.5rem; margin: 0.5rem 0.5rem 0 var(--md-ueb-y); font-family: var(--font-display); font-weight: 600; font-size: 0.75rem; color: var(--md-gedaempft); }
.md-ueb-daten span { position: absolute; top: 0; transform: translateX(-50%); }
.md-ueb-daten span:first-child { transform: none; }
.md-ueb-daten span:last-child { transform: translateX(-100%); }
/* Ein Lauf: die Linie fährt über alle drei Kurven und deckt sie im selben Tempo auf; danach setzen sich die Endpunkte.
   Der Zuschnitt steht 4 px außerhalb, md-linie schnitte nach dem Lauf die Striche an den Rändern halb ab, sichtbar an der KI-Nulllinie (Codex, 05.11.2026) */
.md-ueb-lauf { position: absolute; z-index: 2; top: -0.4rem; bottom: -0.4rem; left: 100%; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--white); opacity: 0; pointer-events: none; }
.bewegt .md-ueb-beleg:not(.laeuft) .md-ueb-plot svg { clip-path: inset(-4px 100% -4px -4px); }
.bewegt .md-ueb-beleg.laeuft .md-ueb-plot svg { animation: md-ueb-auf 1.8s cubic-bezier(0.45, 0, 0.15, 1) both; }
.bewegt .md-ueb-beleg.laeuft .md-ueb-lauf { animation: md-ueb-lauf 1.8s cubic-bezier(0.45, 0, 0.15, 1) both, md-ueb-aus 0.35s ease-out 1.8s both; }
@keyframes md-ueb-auf { from { clip-path: inset(-4px 100% -4px -4px); } to { clip-path: inset(-4px -4px -4px -4px); } }
@keyframes md-ueb-lauf { from { left: 0; } to { left: 100%; } }
@keyframes md-ueb-aus { from { opacity: 1; } to { opacity: 0; } }
.bewegt .md-ueb-beleg:not(.laeuft) .md-ueb-ende { opacity: 0; }
.bewegt .md-ueb-beleg.laeuft .md-ueb-ende { animation: md-punkt 0.4s var(--md-ease) 1.7s both; }
/* Tageswerte bei Zeiger und Tastatur, Griff und Anzeige baut modern.js; ohne JavaScript gibt es sie nicht und fehlen nicht */
.md-ueb-griff { position: absolute; z-index: 3; inset: -0.4rem 0; cursor: crosshair; touch-action: pan-y; }
.md-ueb-kreuz { position: absolute; z-index: 2; top: -0.4rem; bottom: -0.4rem; left: var(--x); width: 1px; background: var(--md-rahmen); pointer-events: none; }
.md-ueb-punkt { position: absolute; z-index: 2; left: var(--x); width: 0.625rem; height: 0.625rem; margin: -0.3125rem 0 0 -0.3125rem; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px var(--bg-deep); pointer-events: none; }
.md-ueb-tipp { position: absolute; z-index: 4; top: 50%; transform: translateY(-50%); display: grid; gap: 0.2rem; padding: 0.6rem 0.75rem; background: var(--bg); border: 1px solid var(--md-rahmen); border-radius: var(--radius-sm); box-shadow: 0 12px 28px -12px rgba(0, 0, 0, 0.8); font-size: 0.8rem; line-height: 1.35; color: var(--md-gedaempft); white-space: nowrap; pointer-events: none; }
.md-ueb-tipp > b { font-family: var(--font-display); font-weight: 700; color: var(--white); margin-bottom: 0.15rem; }
.md-ueb-tipp div { display: flex; align-items: center; gap: 0.45rem; }
.md-ueb-tipp i { flex: none; width: 0.85rem; height: 2px; border-radius: 1px; background: var(--c); }
.md-ueb-tipp div b { color: var(--white); font-weight: 700; }
.md-ueb-baender:not(.zeigt) .md-ueb-kreuz, .md-ueb-baender:not(.zeigt) .md-ueb-punkt, .md-ueb-baender:not(.zeigt) .md-ueb-tipp { display: none; }
@media (min-width: 64em) {
  .md-ueb-buendel { grid-template-columns: 1.15fr 1fr; gap: 3rem; }
  /* Oben bis zur Kante der ersten Kachel, unten bis zur Kante des Knotens; die Liste gibt die Höhe vor */
  .md-ueb-beleg { margin: -0.4rem 0 0.425rem; }
  .md-ueb-kurve { min-height: 8.5rem; }
}
.bewegt .md-ueb-schiene:not(.laeuft)::before { transform: scaleY(0); }
.bewegt .md-ueb-schiene.laeuft::before { animation: md-fuellen-y 1.7s var(--md-ease) both; }
.bewegt .md-ueb-schiene:not(.laeuft) .md-ueb-fach, .bewegt .md-ueb-schiene:not(.laeuft) .md-ueb-ziel { opacity: 0; }
.bewegt .md-ueb-schiene.laeuft .md-ueb-fach { animation: md-schritt 0.6s var(--md-ease) both; animation-delay: calc(0.1s + var(--n, 0) * 0.28s); }
.bewegt .md-ueb-schiene:not(.laeuft) .md-ueb-fach::before { transform: scaleX(0); }
.bewegt .md-ueb-schiene.laeuft .md-ueb-fach::before { animation: md-ueb-stich 0.35s var(--md-ease) both; animation-delay: calc(0.2s + var(--n, 0) * 0.28s); }
.bewegt .md-ueb-schiene.laeuft .md-ueb-ziel { animation: md-schritt 0.6s var(--md-ease) 1.6s both; }
.bewegt .md-ueb-schiene:not(.laeuft) .md-ueb-ziel i { opacity: 0; }
.bewegt .md-ueb-schiene.laeuft .md-ueb-ziel i { animation: md-punkt 0.45s var(--md-ease) 1.55s both; }

/* Möglichkeiten: die Website als Fenster, in das die Bausteine nacheinander einrasten; die Liste läuft im gleichen Takt */
.md-ueb-bau { display: grid; gap: calc(var(--md-luecke) * 1.5); }
.md-ueb-fenster { border: 1.5px solid var(--md-rahmen); border-radius: var(--radius); background: var(--bg-deep); overflow: hidden; }
.md-ueb-fenster-kopf { display: flex; align-items: center; gap: 0.4rem; padding: 0.7rem 1rem; border-bottom: 1.5px solid var(--md-rahmen); }
.md-ueb-fenster-kopf i { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: rgba(232, 237, 243, 0.35); }
.md-ueb-fenster-kopf span { margin-left: 0.6rem; flex: 1; padding: 0.3rem 0.8rem; border-radius: var(--radius-pill); background: rgba(232, 237, 243, 0.08); font-size: 0.75rem; font-weight: 600; color: var(--md-gedaempft); }
.md-ueb-seite { padding: 1.2rem 1.3rem 1.4rem; display: grid; gap: 0.55rem; }
.md-ueb-seite > b { display: block; height: 0.5rem; border-radius: 3px; background: rgba(232, 237, 243, 0.16); transform-origin: left; }
.md-ueb-seite .md-ueb-f-nav { height: 0.7rem; width: 42%; }
.md-ueb-seite .md-ueb-f-hero { height: 3.4rem; border-radius: var(--radius-sm); background: linear-gradient(135deg, rgba(120, 192, 221, 0.5), rgba(120, 192, 221, 0.12)); }
.md-ueb-seite .kurz { width: 65%; }
.md-ueb-module { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; margin-top: 0.7rem; }
.md-ueb-modul {
  display: grid; justify-items: center; gap: 0.35rem; padding: 0.65rem 0.2rem 0.55rem;
  border: 1px solid rgba(120, 192, 221, 0.4); border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.12);
  font-family: var(--font-display); font-weight: 700; font-size: 0.75rem; color: var(--white); text-align: center; white-space: nowrap;
}
.md-ueb-modul .md-ico { width: 1.15rem; height: 1.15rem; }
@media (max-width: 30em) { .md-ueb-module { grid-template-columns: 1fr 1fr; } .md-ueb-modul:last-child { grid-column: 1 / -1; } }
.md-ueb-bau .md-lst-liste { grid-template-columns: minmax(0, 1fr); }
.md-ueb-bau .md-lst-liste li:nth-last-child(2) { border-bottom: 0; }
.md-ueb-bau .md-lst-liste li:last-child { border-bottom: 1px solid var(--md-linie); }
.md-ueb-moeglich .md-ico { stroke: var(--blue); stroke-width: 1.8; }
.md-ueb-moeglich .md-kachel { margin-top: -0.35rem; }
@media (min-width: 48em) and (max-width: 63.9375em) { .md-ueb-fenster { max-width: 34rem; } }
@media (min-width: 64em) { .md-ueb-bau { grid-template-columns: 1.15fr 1fr; gap: 3rem; align-items: center; } .md-ueb-bau .md-ueb-fenster { order: 2; } }
.bewegt .md-ueb-bau:not(.laeuft) .md-ueb-seite > b { transform: scaleX(0); }
.bewegt .md-ueb-bau.laeuft .md-ueb-seite > b { animation: md-ueb-stich 0.6s var(--md-ease) both; animation-delay: calc(var(--n, 0) * 0.12s); }
.bewegt .md-ueb-bau:not(.laeuft) .md-ueb-modul { opacity: 0; }
.bewegt .md-ueb-bau.laeuft .md-ueb-modul { animation: md-ueb-dock 0.5s var(--md-ease) both; animation-delay: calc(0.2s + var(--n, 0) * 0.3s); }
.bewegt .md-ueb-bau:not(.laeuft) .md-ueb-moeglich li { opacity: 0; }
.bewegt .md-ueb-bau.laeuft .md-ueb-moeglich li { animation: md-zeile 0.6s var(--md-ease) both; animation-delay: calc(0.2s + var(--n, 0) * 0.3s); }

/* Arbeitsweise: zehn Werktage als Lineal, das sich füllt; Angebot am Start, Launch zwischen Tag 5 und 10 */
.md-ueb-takt { display: grid; gap: calc(var(--md-luecke) * 1.5); }
.md-ueb-lineal { position: relative; padding-top: 3.6rem; --pfeil: 0.8rem; }
.md-ueb-pins { position: absolute; left: 0; right: var(--pfeil); top: 0; height: 3.6rem; }
.md-ueb-pin { position: absolute; left: calc(100% * var(--p)); bottom: 0.7rem; translate: -50% 0; font-size: 0.75rem; line-height: 1.25; color: var(--md-gedaempft); text-align: center; white-space: nowrap; }
.md-ueb-pin b { display: block; font-family: var(--font-display); font-weight: 800; font-size: 1rem; color: var(--white); }
.md-ueb-pin::after { content: ""; position: absolute; left: 50%; top: 100%; width: 2px; height: 0.7rem; margin-left: -1px; background: var(--white); }
.md-ueb-pin:first-child { translate: 0 0; text-align: left; }
.md-ueb-pin:first-child::after { left: 0; margin-left: 0; }
.md-ueb-band { position: relative; height: 0.9rem; background: rgba(120, 192, 221, 0.14); clip-path: polygon(0 0, calc(100% - var(--pfeil)) 0, 100% 50%, calc(100% - var(--pfeil)) 100%, 0 100%); }
.md-ueb-band i { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(120, 192, 221, 0.3), var(--blue)); transform-origin: left; }
.md-ueb-band em { position: absolute; top: 0; bottom: 0; left: calc((100% - var(--pfeil)) * 0.5); right: 0; background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.32) 0 4px, transparent 4px 10px); }
.md-ueb-ticks { position: relative; height: 1.7rem; margin-top: 0.4rem; margin-right: var(--pfeil); }
.md-ueb-ticks span { position: absolute; left: calc(100% * var(--t) / 10); top: 0; translate: -50% 0; padding-top: 0.55rem; font-family: var(--font-display); font-weight: 600; font-size: 0.75rem; color: var(--md-gedaempft); }
.md-ueb-ticks span::before { content: ""; position: absolute; left: 50%; top: 0; width: 2px; height: 0.4rem; margin-left: -1px; background: rgba(232, 237, 243, 0.45); border-radius: 1px; }
/* Erste und letzte Ziffer bleiben innerhalb des Lineals */
.md-ueb-ticks span:first-child { translate: 0 0; }
.md-ueb-ticks span:first-child::before { left: 0; margin-left: 0; }
.md-ueb-ticks span:last-child { translate: -100% 0; }
.md-ueb-ticks span:last-child::before { left: auto; right: 0; margin-left: 0; }
.md-ueb-einheit { margin: 0.2rem 0 0; font-size: 0.75rem; font-weight: 600; color: var(--md-gedaempft); }
/* Schmal: nur die fetten Wörter */
@media (max-width: 40em) {
  .md-ueb-pin span { display: none; }
  .md-ueb-lineal { padding-top: 2.4rem; }
  .md-ueb-pins { height: 2.4rem; }
}
.md-ueb-weise { list-style: none; margin: 0; padding: 0; display: grid; }
.md-ueb-weise li { padding: 1.25rem 0; border-top: 1px solid var(--md-linie); }
.md-ueb-weise li:last-child { border-bottom: 1px solid var(--md-linie); }
.md-ueb-weise h3 { margin: 0 0 0.5rem; font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; color: var(--white); }
.md-ueb-weise p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--md-gedaempft); }
@media (min-width: 64em) {
  .md-ueb-weise { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 3rem; }
  .md-ueb-weise li, .md-ueb-weise li:last-child { border-bottom: 1px solid var(--md-linie); }
}
.bewegt .md-ueb-takt:not(.laeuft) .md-ueb-band i { transform: scaleX(0); }
.bewegt .md-ueb-takt.laeuft .md-ueb-band i { animation: md-ueb-stich 1.8s var(--md-ease) both; }
.bewegt .md-ueb-takt:not(.laeuft) .md-ueb-band em { opacity: 0; }
.bewegt .md-ueb-takt.laeuft .md-ueb-band em { animation: md-ueb-ein 0.5s ease-out 1.1s both; }
.bewegt .md-ueb-takt:not(.laeuft) .md-ueb-ticks span { opacity: 0; }
.bewegt .md-ueb-takt.laeuft .md-ueb-ticks span { animation: md-schritt 0.4s var(--md-ease) both; animation-delay: calc(var(--t, 0) * 0.12s); }
.bewegt .md-ueb-takt:not(.laeuft) .md-ueb-pin { opacity: 0; }
.bewegt .md-ueb-takt.laeuft .md-ueb-pin { animation: md-schritt 0.5s var(--md-ease) both; animation-delay: calc(0.15s + var(--p, 0) * 1.5s); }
.bewegt .md-ueb-takt:not(.laeuft) .md-ueb-weise li { opacity: 0; }
.bewegt .md-ueb-takt.laeuft .md-ueb-weise li { animation: md-schritt 0.6s var(--md-ease) both; animation-delay: calc(0.3s + var(--n, 0) * 0.5s); }

/* Technik: links die Ladezeit als Balken gegen den Google-Richtwert, rechts der Stack als Stapel, der sich von unten aufbaut */
.md-ueb-tech { display: grid; margin-top: calc(var(--md-luecke) * 1.5); }
.md-ueb-last, .md-ueb-stapel { display: flex; flex-direction: column; }
.md-ueb-stapel { border-top: 1.5px solid var(--md-rahmen); }
.md-ueb-balken-feld { padding: var(--md-innen); flex: 1; display: flex; flex-direction: column; justify-content: center; }
.md-ueb-balkenzeile { display: grid; gap: 0.4rem; }
.md-ueb-balkenzeile + .md-ueb-balkenzeile { margin-top: 1.1rem; }
.md-ueb-balkenzeile > span, .md-ueb-balkenzeile > a { font-size: 0.86rem; color: var(--md-gedaempft); }
.md-ueb-balkenzeile > a { text-decoration: underline; text-underline-offset: 0.2em; }
.md-ueb-balkenzeile > a:hover { color: var(--blue); }
.md-ueb-balken { display: flex; align-items: center; height: 1.7rem; }
.md-ueb-balken i { display: block; height: 100%; width: var(--w); background: var(--blue); clip-path: polygon(0 0, calc(100% - 0.6rem) 0, 100% 50%, calc(100% - 0.6rem) 100%, 0 100%); transform-origin: left; flex: none; min-width: 0.9rem; }
.md-ueb-balken i.vorher { background: rgba(120, 192, 221, 0.4); }
.md-ueb-balken b { margin-left: 0.6rem; font-family: var(--font-display); font-weight: 800; font-size: 1rem; color: var(--white); white-space: nowrap; }
/* Quelltext von unten nach oben, Anzeige gedreht; das Fundament ist der breiteste Block */
.md-ueb-schichten { list-style: none; margin: 0; padding: var(--md-innen) var(--md-innen) 0; display: flex; flex-direction: column-reverse; gap: 0.5rem; align-items: center; }
.md-ueb-schichten li {
  display: flex; align-items: center; gap: 0.6rem; width: calc(100% - var(--n, 0) * 18%); min-width: max-content; padding: 0.7rem 1rem;
  border: 1px solid rgba(120, 192, 221, 0.4); border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.12);
  font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; color: var(--white); transform-origin: bottom;
}
.md-ueb-schichten li:first-child { background: var(--blue); border-color: var(--blue); color: var(--bg); }
.md-ueb-schichten li:first-child .md-ico { stroke: var(--bg); }
.md-ueb-chips { margin: 1rem 0 0; padding: 1rem var(--md-innen) var(--md-innen); border-top: 1px solid var(--md-linie); }
.md-ueb-chips-titel { display: block; margin-bottom: 0.5rem; font-size: 0.8rem; color: var(--md-gedaempft); }
.md-ueb-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.md-ueb-chips li { padding: 0.3rem 0.75rem; border-radius: var(--radius-pill); border: 1px solid var(--md-linie); font-size: 0.8rem; font-weight: 600; color: var(--md-gedaempft); }
@media (min-width: 48em) {
  .md-ueb-tech { grid-template-columns: 1fr 1fr; }
  .md-ueb-stapel { border-top: 0; border-left: 1.5px solid var(--md-rahmen); }
}
@media (min-width: 64em) { .md-ueb-tech { grid-template-columns: 1.15fr 1fr; } }
.bewegt .md-ueb-tech:not(.laeuft) .md-ueb-balken i { transform: scaleX(0); }
.bewegt .md-ueb-tech.laeuft .md-ueb-balken i { animation: md-ueb-stich 0.9s var(--md-ease) both; animation-delay: calc(0.1s + var(--n, 0) * 0.25s); }
.bewegt .md-ueb-tech:not(.laeuft) .md-ueb-balken b { opacity: 0; }
.bewegt .md-ueb-tech.laeuft .md-ueb-balken b { animation: md-ueb-ein 0.4s ease-out both; animation-delay: calc(0.8s + var(--n, 0) * 0.25s); }
.bewegt .md-ueb-tech:not(.laeuft) .md-ueb-schichten li { opacity: 0; }
.bewegt .md-ueb-tech.laeuft .md-ueb-schichten li { animation: md-ueb-dock 0.55s var(--md-ease) both; animation-delay: calc(0.2s + var(--n, 0) * 0.35s); }
.bewegt .md-ueb-tech:not(.laeuft) .md-ueb-chips li { opacity: 0; }
.bewegt .md-ueb-tech.laeuft .md-ueb-chips li { animation: md-ueb-ein 0.4s ease-out both; animation-delay: calc(1.3s + var(--n, 0) * 0.12s); }

/* KI-Sichtbarkeit: nur eigene Klassen, die übrigen Seiten bleiben unberührt (Björn, 05.11.2026: „Ja, neutral“).
   Jeder Abschnitt trägt ein eigenes Bildstück, das einmal läuft, sobald es sichtbar wird. */
@keyframes md-ki-tippen { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes md-ki-fahrt { 0% { opacity: 1; left: 0; } 90% { opacity: 1; } 100% { opacity: 0; left: calc(100% - 0.6rem); } }
@keyframes md-ki-fahrt-y { 0% { opacity: 1; top: 0; } 90% { opacity: 1; } 100% { opacity: 0; top: calc(100% - 0.6rem); } }
@keyframes md-ki-knoten { 50% { transform: scale(1.03); border-color: var(--blue); } }
@keyframes md-ki-punkt { from { background: rgba(232, 237, 243, 0.18); transform: scale(0.5); } }
@keyframes md-ki-stern { from { opacity: 0.15; transform: scale(0.6); } }
/* Überschrift bewusst in zwei Zeilen: erst der fette Teil, dann der helle */
.md-ki-zeilen span { display: block; }

/* Hero: Beispielfrage. Die Frage tippt sich, die Antwort baut sich auf */
.md-ki-frage { padding: var(--md-innen); border-top: 1.5px solid var(--md-rahmen); }
.md-ki-frage-kopf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.25rem 1rem; margin-bottom: 1rem; }
.md-ki-frage-kopf b { font-family: var(--font-display); font-weight: 700; color: var(--white); }
.md-ki-frage-kopf span { font-size: 0.86rem; color: var(--md-gedaempft); }
.md-ki-chat { display: grid; gap: 0.75rem; }
.md-ki-blase { margin: 0; justify-self: start; padding: 0.8rem 1.1rem; border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.12); color: var(--white); font-weight: 500; font-size: 1.05rem; line-height: 1.4; }
.md-ki-getippt { display: block; }
.md-ki-antwort { display: grid; gap: 0.4rem; padding: 0.75rem 0.9rem; border: 1px solid var(--md-linie); border-radius: var(--radius-sm); }
.md-ki-zeile { margin: 0; display: flex; align-items: center; gap: 0.7rem; min-height: 2.25rem; padding: 0.35rem 0.6rem; border-radius: 0.6rem; }
.md-ki-zeile i { flex: none; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: rgba(232, 237, 243, 0.25); }
.md-ki-zeile em { display: block; width: var(--w, 60%); height: 0.55rem; border-radius: 3px; background: rgba(232, 237, 243, 0.14); }
.md-ki-treffer { flex-wrap: wrap; column-gap: 0.7rem; background: rgba(120, 192, 221, 0.14); box-shadow: inset 0 0 0 1px rgba(120, 192, 221, 0.5); }
.md-ki-treffer i { background: var(--blue); }
.md-ki-treffer b { font-family: var(--font-display); font-weight: 700; color: var(--white); }
.md-ki-treffer span { font-size: 0.86rem; color: var(--md-gedaempft); }
/* Am Handy steht die Unterzeile unter dem Namen, nicht unter dem Punkt */
@media (max-width: 30em) { .md-ki-treffer span { width: 100%; padding-left: 1.3rem; } }
@media (min-width: 48em) { .md-ki-chat { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 1.5rem; align-items: center; } }
.bewegt .md-ki-frage:not(.laeuft) .md-ki-getippt { clip-path: inset(0 100% 0 0); }
.bewegt .md-ki-frage.laeuft .md-ki-getippt { animation: md-ki-tippen 1.3s steps(30) 0.2s both; }
.bewegt .md-ki-frage:not(.laeuft) .md-ki-zeile { opacity: 0; }
.bewegt .md-ki-frage.laeuft .md-ki-zeile { animation: md-zeile 0.6s var(--md-ease) both; animation-delay: calc(1.5s + var(--n, 0) * 0.22s); }

/* Was ist das: vier Quellen laufen in die Antwort, die Antwort nennt den Betrieb */
.md-ki-fluss { display: grid; gap: 0.75rem; justify-items: stretch; margin-top: calc(var(--md-luecke) * 1.5); }
.md-ki-quellen { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.md-ki-quellen li { display: flex; align-items: center; gap: 0.6rem; color: var(--white); font-weight: 600; font-size: 0.95rem; line-height: 1.3; min-width: 0; }
.md-ki-quellen .md-kachel { flex: none; }
.md-ki-quellen .md-ki-bahn { display: none; }
.md-ki-bahn { position: relative; display: block; border-top: 2px dashed rgba(120, 192, 221, 0.45); }
.md-ki-bahn b { position: absolute; left: 0; top: -0.4rem; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--blue); opacity: 0; }
.md-ki-senk, .md-ki-raus { justify-self: center; width: 0; height: 1.75rem; border-top: 0; border-left: 2px dashed rgba(120, 192, 221, 0.45); }
.md-ki-senk b, .md-ki-raus b { left: -0.4rem; top: 0; }
.md-ki-knoten { display: grid; gap: 0.2rem; align-content: center; justify-items: center; text-align: center; padding: 1rem; border: 1.5px solid var(--md-rahmen); border-radius: var(--radius-sm); background: var(--bg); }
.md-ki-knoten b { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; color: var(--white); }
.md-ki-knoten span { font-size: 0.86rem; line-height: 1.35; color: var(--md-gedaempft); }
.md-ki-ziel { display: grid; gap: 0.1rem; align-content: center; justify-items: center; text-align: center; padding: 1rem; border-radius: var(--radius-sm); background: var(--blue); color: var(--bg); }
.md-ki-ziel b { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; }
.md-ki-ziel span { font-size: 0.86rem; line-height: 1.35; }
@media (min-width: 48em) {
  .md-ki-fluss { grid-template-columns: minmax(0, 1fr) 11rem 3rem 10rem; gap: 0; align-items: stretch; }
  .md-ki-quellen { grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
  .md-ki-quellen li { display: grid; grid-template-columns: 2.25rem minmax(0, auto) minmax(1.5rem, 1fr); }
  .md-ki-quellen .md-ki-bahn { display: block; }
  .md-ki-senk { display: none; }
  .md-ki-raus { justify-self: stretch; align-self: center; width: auto; height: 0; border-left: 0; border-top: 2px dashed rgba(120, 192, 221, 0.45); }
  .md-ki-raus b { left: 0; top: -0.4rem; }
}
@media (min-width: 64em) { .md-ki-fluss { grid-template-columns: minmax(0, 1fr) 14rem 5rem 13rem; } }
.bewegt .md-ki-fluss:not(.laeuft) .md-ki-quellen li, .bewegt .md-ki-fluss:not(.laeuft) .md-ki-ziel { opacity: 0; }
.bewegt .md-ki-fluss.laeuft .md-ki-quellen li { animation: md-zeile 0.6s var(--md-ease) both; animation-delay: calc(var(--n, 0) * 0.12s); }
.bewegt .md-ki-fluss.laeuft .md-ki-quellen .md-ki-bahn b { animation: md-ki-fahrt 0.7s var(--md-ease) both; animation-delay: calc(0.5s + var(--n, 0) * 0.16s); }
.bewegt .md-ki-fluss.laeuft .md-ki-knoten { animation: md-ki-knoten 0.6s ease-out 1.35s both; }
.bewegt .md-ki-fluss.laeuft .md-ki-raus b { animation: md-ki-fahrt 0.7s var(--md-ease) 1.8s both; }
.bewegt .md-ki-fluss.laeuft .md-ki-senk b { animation: md-ki-fahrt-y 0.6s var(--md-ease) 0.8s both; }
.bewegt .md-ki-fluss.laeuft .md-ki-ziel { animation: md-ueb-dock 0.55s var(--md-ease) 2.35s both; }
@media (max-width: 47.9375em) { .bewegt .md-ki-fluss.laeuft .md-ki-raus b { animation-name: md-ki-fahrt-y; } }

/* Die Suche: zwei Karten mit echten Werten, gleich hoch, darunter die eine große Zahl */
.md-ki-daten { display: grid; gap: var(--md-luecke); }
.md-ki-karte { margin: 0; display: flex; flex-direction: column; min-width: 0; }
.md-ki-gruppen { flex: 1; display: grid; align-content: space-evenly; gap: 0.5rem; padding: 0.5rem 0; }
.md-ki-gruppe { margin: 0; padding: 0.6rem var(--md-innen) 0; font-size: 0.86rem; color: var(--md-gedaempft); }
.md-ki-balken { list-style: none; margin: 0; padding: var(--md-innen); display: grid; gap: 0.85rem; align-content: space-evenly; }
.md-ki-karte > .md-ki-balken { flex: 1; }
.md-ki-gruppen .md-ki-balken { padding-top: 0.6rem; padding-bottom: 0.6rem; }
.md-ki-balken li { display: grid; grid-template-columns: minmax(0, 7.75rem) minmax(0, 1fr) 3.4rem; gap: 0.75rem; align-items: center; font-size: 0.95rem; line-height: 1.3; color: var(--text-on-dark); }
.md-ki-balken b { text-align: right; font-family: var(--font-display); font-weight: 700; color: var(--white); white-space: nowrap; }
.md-ki-spur { position: relative; display: block; height: 0.9rem; overflow: hidden; border-radius: 4px; background: rgba(232, 237, 243, 0.08); }
.md-ki-spur i { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--w) * 1%); border-radius: 0 4px 4px 0; background: rgba(120, 192, 221, 0.45); transform-origin: left; }
.md-ki-balken .hervor .md-ki-spur i { background: var(--blue); }
.md-ki-balken .hervor > span:first-child { color: var(--white); font-weight: 600; }
/* Listen mit Zeichen vor dem Namen (Flaggen, Logos). Schmal: Zeichen und Name links, Wert rechts, Balken darunter über die volle Breite. Ab 48em eine Zeile */
.md-ki-mit-zeichen li { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name wert" "spur spur"; gap: 0.45rem 0.75rem; }
.md-ki-mit-zeichen li > span:first-child { grid-area: name; display: flex; align-items: center; gap: 0.6rem; min-width: 0; }
.md-ki-mit-zeichen .md-ki-spur { grid-area: spur; }
.md-ki-mit-zeichen b { grid-area: wert; font-variant-numeric: tabular-nums; }
@media (min-width: 48em) { .md-ki-mit-zeichen li { grid-template-columns: minmax(0, var(--md-name, 12.5rem)) minmax(0, 1fr) 3.4rem; grid-template-areas: "name spur wert"; } }
.md-ki-flagge { flex: none; width: 1.4rem; height: 1.05rem; border-radius: 3px; box-shadow: 0 0 0 1px rgba(232, 237, 243, 0.22); }
.md-ki-logo { flex: none; width: 1.2rem; height: 1.2rem; fill: currentColor; }
/* Klickrate als Punkte: ein Punkt je Klick auf 1.000 Einblendungen. Name und Wert oben, Punkte darunter. Im Zeitverlauf werden die verlorenen Klicks blass */
.md-ki-piktos { list-style: none; margin: 0; padding: 0.6rem var(--md-innen); display: grid; gap: 1rem; }
.md-ki-piktos li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 0.75rem; align-items: center; font-size: 0.95rem; line-height: 1.3; color: var(--text-on-dark); }
.md-ki-piktos li > b { font-family: var(--font-display); font-weight: 700; color: var(--white); text-align: right; white-space: nowrap; }
.md-ki-piktos .hervor > span:first-child { color: var(--white); font-weight: 600; }
.md-ki-zeiger { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(18, minmax(0, 0.95rem)); gap: 0.35rem; }
.md-ki-zeiger i { display: block; aspect-ratio: 1; border-radius: 50%; background: rgba(120, 192, 221, 0.5); }
.md-ki-piktos .hervor .md-ki-zeiger i { background: var(--blue); }
.md-ki-piktos .hervor .md-ki-zeiger .weg { background: rgba(232, 237, 243, 0.16); }
@media (max-width: 29.9375em) { .md-ki-zeiger { grid-template-columns: repeat(9, minmax(0, 0.95rem)); } }
@keyframes md-ki-zeiger { from { opacity: 0; transform: translateY(0.35rem) scale(0.6); } }
@keyframes md-ki-weg { 0%, 35% { background: var(--blue); } 100% { background: rgba(232, 237, 243, 0.16); } }
.bewegt .md-ki-klicks:not(.laeuft) .md-ki-zeiger i { opacity: 0; }
.bewegt .md-ki-klicks.laeuft .md-ki-zeiger i { animation: md-ki-zeiger 0.45s var(--md-ease) both; animation-delay: calc(0.15s + var(--n, 0) * 0.4s); }
.bewegt .md-ki-klicks.laeuft .md-ki-zeiger .weg { animation: md-ki-zeiger 0.45s var(--md-ease) both, md-ki-weg 1.2s ease-out both; animation-delay: calc(0.15s + var(--n, 0) * 0.4s), calc(0.75s + var(--n, 0) * 0.4s); }
.md-ki-zahl { margin: calc(var(--md-luecke) * 1.5) 0 0; padding-top: calc(var(--md-luecke) * 0.9); border-top: 1px solid var(--md-linie); display: grid; gap: 0.4rem 2.5rem; align-items: center; }
.md-ki-zahl b { font-family: var(--font-display); font-weight: 800; font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4rem); line-height: 1; letter-spacing: -0.025em; color: var(--white); font-variant-numeric: normal; white-space: nowrap; }
.md-ki-zahl span { font-size: 1rem; line-height: 1.6; color: var(--md-gedaempft); max-width: 40rem; }
.md-ki-zahl strong { color: var(--white); }
@media (min-width: 48em) { .md-ki-zahl { grid-template-columns: auto minmax(0, 1fr); } }
@media (min-width: 64em) { .md-ki-daten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bewegt .md-ki-karte:not(.laeuft) .md-ki-spur i { transform: scaleX(0); }
.bewegt .md-ki-karte.laeuft .md-ki-spur i { animation: md-ueb-stich 0.9s var(--md-ease) both; animation-delay: calc(0.1s + var(--n, 0) * 0.12s); }
.bewegt .md-ki-karte:not(.laeuft) .md-ki-balken b { opacity: 0; }
.bewegt .md-ki-karte.laeuft .md-ki-balken b { animation: md-ueb-ein 0.4s ease-out both; animation-delay: calc(0.5s + var(--n, 0) * 0.12s); }
.bewegt .md-ki-zahl:not(.laeuft) { opacity: 0; }
.bewegt .md-ki-zahl.laeuft { animation: md-schritt 0.7s var(--md-ease) both; }

/* Leistungen: Karten der Hauptseite mit eigenem Bild, breit und schmal im Wechsel */
.md-ki-bausteine { display: grid; gap: var(--md-luecke); }
.modern .md-ki-baustein .svc-card { display: flex; flex-direction: column; gap: 1.25rem; padding: var(--md-innen); min-width: 0; }
.md-ki-text { display: grid; gap: 0.5rem; }
.modern .md-ki-text h3 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; line-height: 1.25; color: var(--white); }
.modern .md-ki-text p { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--md-gedaempft); }
.modern .md-ki-text strong { color: var(--white); }
.md-ki-bild { position: relative; display: grid; align-content: center; min-height: 9.5rem; margin: 0; padding: 1rem; border-radius: var(--radius-sm); background: rgba(120, 192, 221, 0.08); box-shadow: inset 0 0 0 1px rgba(120, 192, 221, 0.14); }
.md-ki-bild > .md-ki-bsp { position: absolute; top: 0.5rem; right: 0.7rem; }
.md-ki-bsp { font-size: 0.75rem; font-weight: 600; color: var(--md-gedaempft); }
/* Gleich hohe Bildflächen, damit die Überschriften einer Reihe auf einer Linie stehen */
@media (min-width: 48em) { .md-ki-baustein .md-ki-bild { min-height: 14.5rem; } }
/* Präsenz: sechs Einträge laufen auf den einen Betrieb zu. Schmal: Betrieb oben, Einträge paarweise in gleich hohen Reihen, ohne Linien */
.md-ki-netz { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; padding: 1.1rem; }
.md-ki-netz-mitte { grid-column: 1 / -1; order: -1; display: grid; justify-items: center; align-content: center; gap: 0.25rem; padding: 0.9rem 1rem; border-radius: 0.9rem; background: rgba(120, 192, 221, 0.16); box-shadow: inset 0 0 0 1px rgba(120, 192, 221, 0.55); text-align: center; }
.md-ki-netz-mitte .md-ico { width: 1.5rem; height: 1.5rem; stroke: var(--blue); stroke-width: 2; }
.md-ki-netz-mitte b { font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; line-height: 1.2; color: var(--white); }
.md-ki-netz-mitte span { font-size: 0.8rem; line-height: 1.35; color: var(--text-on-dark); }
.md-ki-netz-quellen { display: contents; }
.md-ki-netz-quellen li { position: relative; display: flex; align-items: center; gap: 0.45rem; min-width: 0; padding: 0.6rem 0.65rem; border: 1px solid var(--md-linie); border-radius: 0.6rem; background: var(--bg); font-size: 0.9rem; font-weight: 600; line-height: 1.2; color: var(--white); }
.md-ki-netz-quellen .md-ico { flex: none; width: 1rem; height: 1rem; stroke: var(--green); stroke-width: 2.6; }
/* Ab 40em: drei Einträge oben, der Betrieb als Band in der Mitte, drei unten; jede Linie führt senkrecht auf das Band */
@media (min-width: 40em) {
  .md-ki-netz { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem 0.9rem; padding: 1.4rem; }
  .md-ki-netz-quellen li { justify-content: center; }
  .md-ki-netz-quellen li::after { content: ""; position: absolute; left: 50%; width: 2px; height: 1.6rem; margin-left: -1px; background: rgba(120, 192, 221, 0.6); }
  .md-ki-netz-quellen:first-child li::after { top: 100%; transform-origin: top; }
  .md-ki-netz-quellen:last-child li::after { bottom: 100%; transform-origin: bottom; }
  .md-ki-netz-mitte { grid-row: 2; grid-column: 1 / -1; order: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.3rem 0.75rem; }
}
.md-ki-sterne { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 1rem; }
.md-ki-sterne > .md-ki-bsp { top: auto; bottom: 0.5rem; }
/* In der schmalen Karte bei 64 bis 80em wird es eng: Schrift und Abstände der Ablaufzeile etwas kleiner, damit sie im Bild bleibt */
@media (min-width: 64em) and (max-width: 79.9375em) { .md-ki-sterne .md-ki-bitte { gap: 0.3rem; font-size: 0.75rem; } .md-ki-sterne .md-ki-bitte .md-ki-bahn { min-width: 0.6rem; } }
.md-ki-neu { padding: 0.3rem 0.8rem; border-radius: 999px; background: rgba(232, 237, 243, 0.08); box-shadow: inset 0 0 0 1px var(--accent-warm); font-size: 0.8rem; font-weight: 700; color: var(--accent-warm); }
.md-ki-bitte { display: flex; align-items: center; gap: 0.5rem; width: 100%; font-size: 0.8rem; font-weight: 600; color: var(--text-on-dark); white-space: nowrap; }
.md-ki-bitte .md-ki-bahn { flex: 1; min-width: 1.25rem; }
.md-ki-stern-reihe { display: flex; gap: 0.3rem; }
.md-ki-stern-reihe { max-width: 100%; }
.md-ki-stern-reihe svg { flex: 0 1 2.4rem; min-width: 0; width: 2.4rem; height: auto; aspect-ratio: 1; fill: var(--accent-warm); }
/* KI-Gespräch: Kopf mit Funke, Frage rechts, Antwort links mit Funke als Absender, Quelle als Marke */
.md-ki-qa { align-content: start; gap: 0.8rem; min-height: 13rem; padding: 0.9rem; }
.md-ki-qa-kopf { display: flex; align-items: center; gap: 0.5rem; padding-bottom: 0.7rem; border-bottom: 1px solid var(--md-linie); font-size: 0.86rem; }
.md-ki-qa-kopf b { font-family: var(--font-display); font-weight: 700; color: var(--white); }
.md-ki-qa-kopf .md-ki-bsp { margin-left: auto; }
.md-ki-funke { --funke: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5c.6 5.6 3.4 8.9 10.5 10.5-7.1 1.6-9.9 4.9-10.5 10.5-.6-5.6-3.4-8.9-10.5-10.5C8.6 10.4 11.4 7.1 12 1.5z'/%3E%3C/svg%3E"); flex: none; display: block; width: 1.1rem; height: 1.1rem; background: var(--blue); -webkit-mask: var(--funke) center / contain no-repeat; mask: var(--funke) center / contain no-repeat; }
.md-ki-q { justify-self: end; max-width: 85%; margin: 0; padding: 0.7rem 1rem; border-radius: 1rem 1rem 0.3rem 1rem; background: rgba(120, 192, 221, 0.22); font-size: 1rem; line-height: 1.35; color: var(--white); }
.md-ki-a-zeile { display: flex; align-items: flex-end; gap: 0.55rem; max-width: 100%; }
.md-ki-q, .md-ki-a-text { text-wrap: balance; }
.md-ki-avatar { width: 1.15rem; height: 1.15rem; margin-bottom: 0.6rem; }
.md-ki-a { position: relative; display: grid; gap: 0.45rem; min-width: 0; padding: 0.75rem 0.85rem; border-radius: 1rem 1rem 1rem 0.3rem; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(120, 192, 221, 0.4); }
.md-ki-a-text { margin: 0; font-size: 1rem; font-weight: 500; line-height: 1.35; color: var(--white); }
.md-ki-a-quelle { justify-self: start; white-space: nowrap; padding: 0.15rem 0.55rem; border-radius: 999px; background: rgba(120, 192, 221, 0.14); font-size: 0.75rem; font-weight: 600; color: var(--blue); }
.md-ki-tippt { display: none; }
.md-ki-tippt i { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--md-gedaempft); }
.md-ki-blatt { display: grid; gap: 0.55rem; width: 100%; padding: 0.85rem 1rem; border: 1px solid rgba(232, 237, 243, 0.25); border-radius: 0.7rem; background: var(--bg); }
.md-ki-blatt-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; }
.md-ki-blatt-kopf b { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; color: var(--white); }
.md-ki-blatt-text { font-size: 0.8rem; color: var(--md-gedaempft); }
/* Bericht: Blatt mit dieser Monat und Vormonat als Punktreihen, daneben das Bildschirmfoto der KI-Antwort. Ab 40em nebeneinander */
.md-ki-bericht { gap: 0.9rem; }
@media (min-width: 40em) { .md-ki-bericht { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); align-items: center; } }
.md-ki-blatt-reihe { display: grid; grid-template-columns: 5.75rem minmax(0, 1fr); align-items: center; gap: 0.6rem; font-size: 0.8rem; font-weight: 600; color: var(--white); }
.md-ki-vormonat { font-weight: 500; color: var(--md-gedaempft); }
.md-ki-vormonat .md-ki-punkte .an { background: rgba(120, 192, 221, 0.45); }
.md-ki-foto { display: grid; gap: 0.4rem; padding: 0.75rem; border: 1px solid rgba(232, 237, 243, 0.25); border-radius: 0.7rem; background: var(--bg); }
.md-ki-foto-kopf { display: flex; align-items: center; gap: 0.4rem; font-size: 0.75rem; font-weight: 600; color: var(--md-gedaempft); }
.md-ki-foto-kopf .md-ki-funke { width: 0.9rem; height: 0.9rem; }
.md-ki-foto .md-ki-zeile { min-height: 1.9rem; padding: 0.3rem 0.55rem; }
.md-ki-foto .md-ki-treffer b { font-size: 0.9rem; }
.md-ki-punkte { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.md-ki-punkte i { width: 0.75rem; height: 0.75rem; border-radius: 50%; background: rgba(232, 237, 243, 0.18); }
.md-ki-punkte .an { background: var(--blue); }
/* 15 Punkte im Bericht bleiben eine Reihe und passen sich der Breite an */
.md-ki-blatt .md-ki-punkte { display: grid; grid-template-columns: repeat(15, minmax(0, 1fr)); gap: 0.25rem; max-width: 16rem; }
.md-ki-blatt .md-ki-punkte i { width: 100%; height: auto; aspect-ratio: 1; }
/* Bild oben, Text darunter, in jeder Karte. Breite Karten geben dem Bild die ganze Breite */
@media (min-width: 48em) { .md-ki-bausteine { grid-template-columns: repeat(2, minmax(0, 1fr)); } .md-ki-breit { grid-column: 1 / -1; } }
@media (min-width: 64em) {
  .md-ki-bausteine { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md-ki-breit { grid-column: span 2; }
}
/* Ganz schmal eine Spalte, sonst laufen die längeren Wörter aus ihrem Kasten */
@media (max-width: 22.4em) { .md-ki-quellen, .md-ki-netz { grid-template-columns: minmax(0, 1fr); } }
@keyframes md-ki-linie-y { from { transform: scaleY(0); } }
.bewegt .md-ki-baustein:not(.laeuft) .md-ki-netz-quellen li, .bewegt .md-ki-baustein:not(.laeuft) .md-ki-neu, .bewegt .md-ki-baustein:not(.laeuft) .md-ki-q, .bewegt .md-ki-baustein:not(.laeuft) .md-ki-a-zeile, .bewegt .md-ki-baustein:not(.laeuft) .md-ki-a-text, .bewegt .md-ki-baustein:not(.laeuft) .md-ki-a-quelle { opacity: 0; }
/* Präsenz: die Einträge docken an, die Linien wachsen zum Betrieb, der Betrieb leuchtet einmal auf */
.bewegt .md-ki-baustein.laeuft .md-ki-netz-quellen li { animation: md-ueb-dock 0.5s var(--md-ease) both; animation-delay: calc(0.1s + var(--n, 0) * 0.12s); }
.bewegt .md-ki-baustein:not(.laeuft) .md-ki-netz-quellen li::after { transform: scaleY(0); }
.bewegt .md-ki-baustein.laeuft .md-ki-netz-quellen li::after { animation: md-ki-linie-y 0.45s var(--md-ease) both; animation-delay: calc(0.55s + var(--n, 0) * 0.12s); }
.bewegt .md-ki-baustein.laeuft .md-ki-netz-mitte { animation: md-ki-knoten 0.7s ease-out 1.35s both; }
.bewegt .md-ki-baustein.laeuft .md-ki-neu { animation: md-ueb-dock 0.5s var(--md-ease) 1.75s both; }
.bewegt .md-ki-baustein.laeuft .md-ki-bitte .md-ki-bahn b { animation: md-ki-fahrt 0.8s var(--md-ease) 0.2s both; }
.bewegt .md-ki-baustein:not(.laeuft) .md-ki-stern-reihe svg { opacity: 0.15; }
.bewegt .md-ki-baustein.laeuft .md-ki-stern-reihe svg { animation: md-ki-stern 0.4s var(--md-ease) both; animation-delay: calc(0.9s + var(--n, 0) * 0.14s); }
.bewegt .md-ki-baustein.laeuft .md-ki-q { animation: md-schritt 0.5s var(--md-ease) 0.15s both; }
.bewegt .md-ki-baustein.laeuft .md-ki-a-zeile { animation: md-schritt 0.45s var(--md-ease) 0.6s both; }
/* Die KI tippt kurz, dann steht die Antwort da, zuletzt die Quelle. Alles einmal, ohne JavaScript steht die Antwort sofort da */
@keyframes md-ki-tippt { 0% { opacity: 0; } 15%, 85% { opacity: 1; } 100% { opacity: 0; } }
@keyframes md-ki-hupf { 50% { transform: translateY(-0.2rem); } }
.bewegt .md-ki-tippt { position: absolute; left: 1rem; top: 1rem; display: flex; gap: 0.25rem; opacity: 0; }
.bewegt .md-ki-baustein.laeuft .md-ki-tippt { animation: md-ki-tippt 1.1s ease-out 0.7s both; }
.bewegt .md-ki-baustein.laeuft .md-ki-tippt i { animation: md-ki-hupf 0.5s ease-in-out 2 both; animation-delay: calc(0.8s + var(--k, 0) * 0.12s); }
.bewegt .md-ki-baustein.laeuft .md-ki-a-text { animation: md-ki-tippen 0.9s steps(28) 1.8s both; }
.bewegt .md-ki-baustein.laeuft .md-ki-a-quelle { animation: md-ueb-dock 0.5s var(--md-ease) 2.75s both; }
.bewegt [data-animation]:not(.laeuft) .md-ki-punkte .an { background: rgba(232, 237, 243, 0.18); }
.bewegt [data-animation].laeuft .md-ki-punkte .an { animation: md-ki-punkt 0.35s var(--md-ease) both; animation-delay: calc(0.2s + var(--k, 0) * 0.13s); }

/* Beleg: dieselbe Karte wie auf /ueber-mich/, eine Kurve, groß. Steht nicht neben einer Liste, also ohne deren Versatz */
.md-feld.md-ki-beleg { margin: 0; }
.md-ki-beleg .md-ueb-kurve { min-height: clamp(14rem, 10rem + 13vw, 22rem); }

/* Ablauf: KI-Zitate von SupplementScout laut Ahrefs, große Summe neben den Balken je Plattform. Eine Reihe, eine Farbe */
.md-ki-messung { margin: calc(var(--md-luecke) * 1.5) 0 0; }
.md-ki-zitate { display: grid; gap: 1.25rem 3rem; padding: var(--md-innen); align-items: center; }
.md-ki-zitate .md-ki-balken { padding: 0; }
.md-ki-zitate .md-ki-balken li > span:first-child { color: var(--white); }
.md-ki-messung .md-ki-spur i { background: var(--blue); }
.md-ki-summe { margin: 0; display: grid; gap: 0.5rem; }
.md-ki-summe b { font-family: var(--font-display); font-weight: 800; font-size: clamp(3rem, 2.2rem + 3vw, 4.75rem); line-height: 1; letter-spacing: -0.03em; color: var(--white); }
.md-ki-summe span { max-width: 22rem; font-size: 1rem; line-height: 1.5; color: var(--md-gedaempft); }
.md-ki-summe strong, .md-ki-messung .md-quelle strong { color: var(--white); }
@media (min-width: 64em) { .md-ki-zitate { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); } }
.bewegt .md-ki-messung:not(.laeuft) .md-ki-spur i { transform: scaleX(0); }
/* Die Balken wachsen nacheinander, die Zahlen zählen dabei hoch (data-zaehlen in modern.js) */
.bewegt .md-ki-messung.laeuft .md-ki-spur i { animation: md-ueb-stich 0.9s var(--md-ease) both; animation-delay: calc(0.3s + var(--n, 0) * 0.12s); }

/* Umfang: Karten der Hauptseite, die Punkte laufen einmal nacheinander ein */
.md-ki-stufen { display: grid; gap: calc(var(--md-luecke) * 1.25); padding-top: 0.75rem; }
.modern .md-ki-stufen .price-card-wrap { margin: 0; display: flex; }
.modern .md-ki-stufen .price-card { flex: 1; }
/* Haken auf der ersten Textzeile, nicht in der Mitte des Absatzes */
.modern .md-ki-stufen .price-features li { align-items: flex-start; line-height: 1.5; }
.modern .md-ki-stufen .check { margin-top: 0.1rem; }
.md-ki-ergaenzt { margin: 1.5rem 0 0; }
@media (min-width: 48em) { .md-ki-stufen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bewegt .md-ki-stufen:not(.laeuft) .price-features li { opacity: 0; }
.bewegt .md-ki-stufen.laeuft .price-features li { animation: md-zeile 0.5s var(--md-ease) both; animation-delay: calc(0.15s + var(--n, 0) * 0.1s); }

/* Sicherheitsnetz: keine Bewegung, wenn der Besucher sie abgewählt hat */
@media (prefers-reduced-motion: reduce) {
  .modern *, .modern *::before, .modern *::after { animation: none !important; transition: none !important; }
}
