/* Modul „abschluss“ (module/abschluss). Nur Tokens (--bm-*, --bb-*); Farben
   der Flächen aus der Ton-Regel (--bb-text, --bb-text-ruhig, --bb-linie …).
   Werte übernommen aus dem Bestand: seiten/module/d2e.css (CTA-Band,
   Formularbox), seiten/start/start.css (Karriere-Band, Abschluss-CTA),
   seiten/ki/ki.css (ZweiWege), site/design/basis.css (Kreis-Punkt-Knopf,
   Pfeil-Link). Breakpoints: 640/768/1024/1200/1440 (max: …-1). */
.bb-m-abschluss {
  /* Maße des Moduls an einer Stelle */
  --bb-m-abschluss-box-innen: clamp(2.5rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 5rem);
  --bb-m-abschluss-formular-innen: clamp(1.5rem, 4.5vw, 3.5rem);
  --bb-m-abschluss-box-radius: var(--bm-radius-gross);
  --bb-m-abschluss-fuss-abstand: clamp(2rem, 4vw, 3.5rem);
  --bb-m-abschluss-buehne-luft: clamp(5rem, 11vw, 9rem);
  --bb-m-abschluss-gross: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);  /* Titel → Wege */
  --bb-m-abschluss-block: clamp(2rem, 1.25rem + 2.2vw, 3.5rem);  /* Spalten, Titel → Knopf */
  --bb-m-abschluss-klein: clamp(1rem, 0.75rem + 0.8vw, 1.5rem);  /* Titel → Absatz */
  --bb-m-abschluss-textbreite: 52ch;
}

/* Titel: Titelschrift, Schnitt 400 (alle Varianten) */
.bb-m-abschluss__titel,
.bb-m-abschluss__wegtitel {
  font-family: var(--bm-font-titel);
  font-weight: var(--bm-g-normal);
  font-synthesis: none;
  letter-spacing: var(--bm-sp-leicht);
  margin: 0;
  color: var(--bb-text);
  text-wrap: balance;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 10 4 4;
  overflow-wrap: break-word;
}
.bb-m-abschluss__text {
  margin: 0;
  font-size: var(--bm-t-lead);
  line-height: var(--bm-zh-mittel);
  color: var(--bb-text-ruhig);
  max-width: var(--bb-m-abschluss-textbreite);
  text-wrap: pretty;
}

/* ════════════════════════════════════════════════════════════════════════
   Dunkle Box (band, person)
   ════════════════════════════════════════════════════════════════════════ */
.bb-m-abschluss__box {
  position: relative;
  overflow: hidden;
  padding: var(--bb-m-abschluss-box-innen);
  border-radius: var(--bb-m-abschluss-box-radius);
  background: var(--bm-dunkel);
  color: var(--bb-text);
  --bm-fokus: var(--bm-fokus-auf-dunkel);
  --bm-fokus-gegen: var(--bm-fokus-auf-hell);
}
.bb-m-abschluss--band .bb-m-abschluss__titel {
  max-width: 18ch;
  font-size: var(--bm-t-h1);
  line-height: var(--bm-zh-eng);
}
@media (min-width: 1024px) {
  .bb-m-abschluss--band .bb-m-abschluss__titel { max-width: min(100%, 32ch); }
}
.bb-m-abschluss__fuss {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem 3rem;
  margin-top: var(--bb-m-abschluss-fuss-abstand);
}
.bb-m-abschluss__links { max-width: var(--bb-m-abschluss-textbreite); }
.bb-m-abschluss__zusage {
  margin: 1rem 0 0;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-lang);
  color: var(--bm-text-invers-leise);
}
.bb-m-abschluss__person {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--bb-linie-zart);
}
.bb-m-abschluss__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }

/* Kreis-Punkt-Knopf auf Dunkel: Signal-Kreis mit Pfeil, Text daneben */
.bb-m-abschluss__kreis {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--bm-knopf-punkt);
  padding: 0.0625rem 1.5rem 0 calc(var(--bm-knopf-punkt) + 1rem);
  border-radius: var(--bm-radius-pille);
  font-family: var(--bm-font);
  font-size: var(--bm-t-knopf);
  font-weight: var(--bm-g-mittel);
  line-height: var(--bm-zh-titel);
  letter-spacing: var(--bm-sp-knopf);
  color: var(--bb-text);
  text-decoration: none;
  transition: color var(--bm-dauer) var(--bm-ease), scale var(--bm-dauer-kurz) var(--bm-ease);
}
.bb-m-abschluss__kreis::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  top: 50%;
  width: var(--bm-knopf-punkt);
  height: var(--bm-knopf-punkt);
  transform: translateY(-50%);
  border-radius: var(--bm-radius-pille);
  background: var(--bm-signal);
  transition: width var(--bm-dauer) var(--bm-ease);
}
.bb-m-abschluss__kreis::after {
  content: '→';
  content: '→' / '';
  position: absolute;
  left: 0;
  top: 50%;
  width: var(--bm-knopf-punkt);
  translate: 0 -50%;
  text-align: center;
  color: var(--bm-signal-text);
  font-size: 1.375rem;
  font-weight: var(--bm-g-normal);
  line-height: 1;
  transition: transform var(--bm-dauer) var(--bm-ease);
}
.bb-m-abschluss__kreis:is(:hover, :focus-visible) { color: var(--bm-signal-text); }
.bb-m-abschluss__kreis:is(:hover, :focus-visible)::before { width: 100%; }
.bb-m-abschluss__kreis:is(:hover, :focus-visible)::after { transform: translateX(var(--bm-bewegung-pfeil)); }
.bb-m-abschluss__kreis:active { scale: var(--bm-bewegung-druck); }
.bb-m-abschluss__kreis:focus-visible { outline: var(--bm-fokus-breite) solid var(--bb-fokus); outline-offset: var(--bm-fokus-versatz); }

/* Pfeil-Link (zweites Ziel) */
.bb-m-abschluss__pfeil {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding-block: 0.5rem;
  font-family: var(--bm-font);
  font-size: var(--bm-t-knopf);
  font-weight: var(--bm-g-mittel);
  line-height: var(--bm-zh-kompakt);
  letter-spacing: var(--bm-sp-knopf);
  color: var(--bb-text);
  text-decoration: none;
}
.bb-m-abschluss__pfeil::after { content: '→'; content: '→' / ''; transition: transform var(--bm-dauer) var(--bm-ease); }
.bb-m-abschluss__pfeil::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0.25rem;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width var(--bm-dauer) var(--bm-ease);
}
.bb-m-abschluss__pfeil:is(:hover, :focus-visible)::before { width: 100%; }
.bb-m-abschluss__pfeil:is(:hover, :focus-visible)::after { transform: translateX(var(--bm-bewegung-pfeil)); }
.bb-m-abschluss__pfeil:focus-visible { outline: var(--bm-fokus-breite) solid var(--bb-fokus); outline-offset: var(--bm-fokus-versatz); }

/* ── person: Formularbox (Kopf, darunter bzw. rechts das Formular) ─────── */
.bb-m-abschluss--person .bb-m-abschluss__box {
  display: grid;
  gap: clamp(2rem, 4vw, 4rem);
  padding: var(--bb-m-abschluss-formular-innen);
  background: linear-gradient(135deg, var(--bm-flaeche-dunkel), var(--bm-karte-dunkel));
}
@media (min-width: 1024px) {
  .bb-m-abschluss__box--zwei { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: start; }
  .bb-m-abschluss__box--zwei .bb-m-abschluss__kopf { position: sticky; top: 8rem; }
}
.bb-m-abschluss__kopf { max-width: 36rem; }
.bb-m-abschluss--person .bb-m-abschluss__titel {
  font-size: var(--bm-t-h2);
  line-height: var(--bm-zh-snug);
}
.bb-m-abschluss__einleitung {
  margin: 1.25rem 0 0;
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-text);
  color: var(--bb-text-ruhig);
}

/* ════════════════════════════════════════════════════════════════════════
   buehne: Band über die volle Breite (Licht oder Bild)
   ════════════════════════════════════════════════════════════════════════ */
.bb-m-abschluss--buehne {
  --bb-sektion-abstand: var(--bb-m-abschluss-buehne-luft);
  --bb-medium-radius: 0;
  --bm-fokus: var(--bm-fokus-auf-dunkel);
  --bm-fokus-gegen: var(--bm-fokus-auf-hell);
}
.bb-m-abschluss--buehne .bb-m-abschluss__titel {
  max-width: 18ch;
  font-size: var(--bm-t-display);
  line-height: var(--bm-zh-snug);
}
.bb-m-abschluss--buehne .bb-m-abschluss__text { margin-top: 1.5rem; }
.bb-m-abschluss--buehne .bb-m-abschluss__knoepfe { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2.5rem; }
/* Signal-Licht oben rechts (ohne Bild) */
.bb-m-abschluss--buehne .bb-sektion__hintergrund::after { content: none; }
.bb-m-abschluss--buehne .bb-sektion__hintergrund > .bb-m-abschluss__licht {
  position: absolute;
  right: -20vmax;
  top: -30vmax;
  width: 75vmax;
  height: 75vmax;
  border-radius: 50%;
  background: radial-gradient(closest-side, var(--bm-signal-glow), transparent 70%);
  opacity: 0.5;
  filter: blur(40px);
}
/* Mit Bild: Schleier von links (linke Bildhälfte ist ruhig), unten leicht */
.bb-m-abschluss--mit-bild .bb-sektion__hintergrund::after {
  content: '';
  background:
    linear-gradient(to right, var(--bm-schleier-stark) 0%, var(--bm-schleier-mittel) 50%, transparent 85%),
    linear-gradient(to top, var(--bm-schleier-leicht) 0%, transparent 50%);
}
@media (max-width: 767px) {
  .bb-m-abschluss--mit-bild .bb-sektion__hintergrund::after {
    background: linear-gradient(to bottom, var(--bm-schleier-stark) 0%, var(--bm-schleier-mittel) 100%);
  }
}

/* ════════════════════════════════════════════════════════════════════════
   zeile: sehr große Zeile links, Text und Knopf rechts
   ════════════════════════════════════════════════════════════════════════ */
.bb-m-abschluss--zeile { --bb-sektion-abstand: calc(var(--bm-sektion) * 1.2); }
.bb-m-abschluss__raster { display: grid; grid-template-columns: 1fr auto; gap: 2rem 4rem; align-items: end; }
.bb-m-abschluss--zeile .bb-m-abschluss__titel {
  max-width: 18ch;
  font-size: var(--bm-t-display);
  line-height: var(--bm-zh-snug);
}
.bb-m-abschluss--zeile .bb-m-abschluss__text {
  margin-bottom: 1.5rem;
  max-width: calc(var(--bm-textbreite) * 0.85);
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-text);
}
@media (max-width: 767px) { .bb-m-abschluss__raster { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════════════════════
   zwei-wege: großer Titel, Termin | Nachricht
   ════════════════════════════════════════════════════════════════════════ */
.bb-m-abschluss--zwei-wege .bb-m-abschluss__titel {
  max-width: 16em;
  margin-bottom: var(--bb-m-abschluss-gross);
  font-size: var(--bm-t-h1);
  line-height: var(--bm-zh-snug);
}
.bb-m-abschluss__wege { display: grid; gap: var(--bb-m-abschluss-gross); max-width: var(--bm-textbreite); }
@media (min-width: 1024px) {
  .bb-m-abschluss__wege--zwei { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; max-width: none; }
  .bb-m-abschluss__wege--zwei > .bb-m-abschluss__weg:first-child { padding-right: var(--bb-m-abschluss-block); }
  .bb-m-abschluss__wege--zwei > .bb-m-abschluss__weg + .bb-m-abschluss__weg {
    padding-left: var(--bb-m-abschluss-block);
    border-left: 1px solid var(--bb-linie);
  }
}
.bb-m-abschluss__wegtitel {
  max-width: 20em;
  margin-bottom: var(--bb-m-abschluss-klein);
  font-size: var(--bm-t-h4);
  line-height: var(--bm-zh-titel);
}
.bb-m-abschluss__weg .bb-m-abschluss__text { font-size: var(--bm-t-body); line-height: var(--bm-zh-text); }
.bb-m-abschluss__weg .bb-m-abschluss__knoepfe {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bm-raster-luecke);
  margin-top: var(--bb-m-abschluss-klein);
}
.bb-m-abschluss__weg .bb-m-abschluss__wegtitel + .bb-m-abschluss__knoepfe { margin-top: var(--bb-m-abschluss-block); }

@media (prefers-reduced-motion: reduce) {
  .bb-m-abschluss__kreis, .bb-m-abschluss__kreis::before, .bb-m-abschluss__kreis::after,
  .bb-m-abschluss__pfeil::before, .bb-m-abschluss__pfeil::after { transition: none; }
}


/* ══════════════════════════════════════════════════════════════════════
   Variante person: Formular der Strecke „eingebettet“ und Ansprechperson.
   Regeln für bm-formular-*, bm-person-* (seiten/module/d2e.css) und bm-funnel__*
   (site/funnel/funnel.css), unverändert aus dem Bestand übernommen.
   ══════════════════════════════════════════════════════════════════════ */
.bm-neu .bm-formular-box {
  display: grid;
  gap: clamp(2rem, 4vw, 4rem);
  padding: clamp(1.5rem, 4.5vw, 3.5rem);
  border-radius: var(--bm-radius-gross);
  background: linear-gradient(135deg, var(--bm-flaeche-dunkel), var(--bm-karte-dunkel));
}
@media (min-width: 1024px) {
  .bm-neu .bm-formular-box--zweispaltig { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: start; }
}
.bm-neu .bm-formular-kopf { max-width: 36rem; }
@media (min-width: 1024px) {
  .bm-neu .bm-formular-box--zweispaltig .bm-formular-kopf { position: sticky; top: 8rem; }
}
.bm-neu.bm-neu .bm-formular-box .bm-formular-titel {
  font-size: var(--bm-t-h2);
  line-height: var(--bm-zh-snug);
  color: var(--bm-text-invers);
  text-wrap: balance;
}
.bm-neu.bm-neu .bm-formular-box .bm-formular-einleitung {
  margin-top: 1.25rem;
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-text);
  color: var(--bm-text-invers-ruhig);
}
.bm-neu.bm-neu .bm-formular-box .bm-formular-zusage {
  margin-top: 1rem;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-lang);
  color: var(--bm-text-invers-leise);
}
.bm-neu .bm-formular-person {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--bm-linie-invers);
}
.bm-neu.bm-neu .bm-formular-box .bm-formular-karte,
.bm-neu.bm-neu .bm-formular-karte {
  background: var(--bm-bg);
  color: var(--bm-text);
  border: 0;
  border-radius: var(--bm-radius-karte);
  box-shadow: none;
  padding: clamp(1.25rem, 3vw, 2.5rem);
}
.bm-neu.bm-neu .bm-formular-karte--leer {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 16rem;
  text-align: center;
  outline: 1px dashed var(--bm-linie);
  outline-offset: -0.75rem;
}
.bm-neu.bm-neu .bm-formular-karte .bm-formular-hinweis {
  font-size: var(--bm-t-body);
  color: var(--bm-text-leise);
}
.bm-neu.bm-neu .bm-formular-karte .bm-formular-kleingedrucktes {
  margin-top: 1.25rem;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-lang);
  color: var(--bm-text-leise);
}
.bm-neu.bm-neu .bm-formular-box .bm-formular-karte [data-platzhalter] {
  color: var(--bm-text-leise);
  border-color: var(--bm-linie-feld);
}
.bm-neu .bm-formular-raster {
  display: grid;
  gap: 1.25rem 1rem;
}
@media (min-width: 640px) {
  .bm-neu .bm-formular-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bm-neu .bm-formular-raster > .bm-formular-feld--breit { grid-column: 1 / -1; }
}
.bm-neu.bm-neu .bm-formular .bm-formular-label {
  display: block;
  margin-bottom: 0.5rem;
  font-family: var(--bm-font);
  font-size: var(--bm-t-klein);
  font-weight: var(--bm-g-normal);
  line-height: var(--bm-zh-kompakt);
  letter-spacing: var(--bm-sp-knopf);
  color: var(--bm-text-leise);
}
.bm-neu .bm-formular-pflicht { color: var(--bm-text-leise); }
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 1.125rem 0.625rem;
  background-color: var(--bm-bg-kuehl);
  
  border: 1px solid var(--bm-linie-feld);
  border-radius: var(--bm-radius-feld);
  font-family: var(--bm-font);
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text);
  transition:
    border-color var(--bm-dauer-kurz) var(--bm-ease-linear),
    background-color var(--bm-dauer-kurz) var(--bm-ease-linear),
    box-shadow var(--bm-dauer-kurz) var(--bm-ease-linear);
}
.bm-neu.bm-neu .bm-formular textarea.bm-formular-eingabe { min-height: 9rem; resize: vertical; }
.bm-neu.bm-neu .bm-formular select.bm-formular-eingabe { padding-right: 3rem; }
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe:hover { border-color: var(--bm-text-tag); }
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe:focus {
  outline: none;
  background-color: var(--bm-bg);
  border-color: var(--bm-text);
  box-shadow: inset 0 0 0 1px var(--bm-text);
}
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe:focus-visible {
  outline: var(--bm-fokus-breite) solid var(--bm-fokus);
  outline-offset: var(--bm-fokus-versatz, 2px);
}
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe[aria-invalid='true'],
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe[aria-invalid='true']:hover {
  background-color: var(--bm-bg);
  border-color: var(--bm-fehler);
  box-shadow: inset 0 0 0 1px var(--bm-fehler);
}
.bm-neu.bm-neu .bm-formular .bm-formular-eingabe[aria-invalid='true']:focus-visible { outline-color: var(--bm-fehler); }
.bm-neu .bm-formular-fehler {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.5rem;
  font-size: var(--bm-t-klein);
  font-weight: var(--bm-g-mittel);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-fehler);
}
.bm-neu .bm-formular-fehler::before {
  content: '!';
  content: '!' / '';
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.0625rem;
  border-radius: var(--bm-radius-pille);
  background: var(--bm-fehler);
  color: var(--bm-text-invers);
  font-size: var(--bm-t-mini);
  line-height: 1;
}
.bm-neu.bm-neu .bm-formular .bm-formular-haken {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text);
  cursor: pointer;
}
.bm-neu.bm-neu .bm-formular .bm-formular-haken input {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.1875rem;
  accent-color: var(--bm-flaeche-dunkel);
}
.bm-neu.bm-neu .bm-formular .bm-formular-haken input:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 3px); }
.bm-neu.bm-neu .bm-formular .bm-formular-haken input[aria-invalid='true'] { outline: 2px solid var(--bm-fehler); outline-offset: 2px; }
.bm-neu .bm-person { display: flex; flex-direction: column; gap: 1.25rem; }
.bm-neu .bm-person--quer { flex-direction: row; align-items: center; }
.bm-neu .bm-person-bild {
  flex: none;
  width: 7.5rem;
  aspect-ratio: 1;
  max-width: 100%;
  border-radius: var(--bm-radius-pille);
  overflow: hidden;
  background: var(--bm-kachel);
}
.bm-neu .bm-person--quer .bm-person-bild { width: 5.5rem; }
.bm-neu .bm-person-bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bm-neu.bm-neu .bm-person .bm-person-name {
  font-family: var(--bm-font);
  font-size: var(--bm-t-h4);
  font-weight: var(--bm-g-titel);
  line-height: var(--bm-zh-titel);
  letter-spacing: var(--bm-sp-titel);
  color: var(--bm-text);
}
.bm-neu.bm-neu .bm-person .bm-person-rolle {
  margin-top: 0.375rem;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text-leise);
}
.bm-neu .bm-person-wege { margin-top: 0.75rem; display: grid; gap: 0.25rem; font-size: var(--bm-t-klein); }
.bm-neu.bm-neu .bm-person .bm-person-wege a { color: var(--bm-text); }
.bm-neu.bm-neu .bm-flaeche-dunkel .bm-person .bm-person-name { color: var(--bm-text-invers); }
.bm-neu.bm-neu .bm-flaeche-dunkel .bm-person .bm-person-rolle { color: var(--bm-text-invers-ruhig); }
.bm-neu.bm-neu .bm-flaeche-dunkel .bm-person .bm-person-wege a { color: var(--bm-text-invers); }
.bm-neu.bm-neu .bm-person .bm-person-wege a:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 3px); }
@media (prefers-reduced-motion: reduce) {
  .bm-neu.bm-neu .bm-formular .bm-formular-eingabe { transition: none; }
}
.bm-neu .bm-funnel {
  --bm-fokus: var(--bm-fokus-auf-hell);
  --bm-fokus-gegen: var(--bm-fokus-auf-dunkel);
  display: grid;
  gap: 1.5rem;
  min-width: 0;
}
.bm-neu .bm-funnel > * { min-width: 0; }
.bm-seite main#inhalt .bm-funnel :is(.bm-funnel__titel, .bm-funnel__meldung, input, select, textarea) {
  scroll-margin-top: calc(var(--bm-kopf-h) + 4rem);
}
.bm-neu.bm-neu .bm-m-hero + section.section:has(> .wrap > .bm-formular-box) { padding-top: var(--bm-sektion-halb); }
.bm-neu.bm-neu .bm-funnel.bm-formular :is(input, select).bm-formular-eingabe { height: 3rem; }
.bm-neu .bm-funnel__stand { display: grid; gap: 0.625rem; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__zaehler {
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-kompakt);
  color: var(--bm-text-leise);
}
.bm-neu .bm-funnel__spur {
  height: 0.25rem;
  border-radius: var(--bm-radius-pille);
  background: var(--bm-linie-zart);
  overflow: hidden;
}
.bm-neu .bm-funnel__spur > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bm-signal-verlauf);
  transition: inline-size var(--bm-dauer) var(--bm-ease);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__titel {
  font-family: var(--bm-font-titel);
  font-size: var(--bm-t-h3);
  font-weight: var(--bm-g-titel);
  line-height: var(--bm-zh-snug);
  letter-spacing: var(--bm-sp-titel);
  color: var(--bm-text);
  text-wrap: balance;
}
.bm-neu .bm-funnel__titel:focus { outline: none; }
.bm-neu .bm-funnel__titel:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 4px); }
.bm-neu .bm-funnel__gruppe {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
@media (min-width: 640px) {
  .bm-neu .bm-funnel__gruppe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bm-neu .bm-funnel__gruppe > .bm-formular-fehler { grid-column: 1 / -1; }
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__option {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3.5rem;
  padding: 0.75rem 1.125rem;
  border: 1px solid var(--bm-linie-feld);
  border-radius: var(--bm-radius-feld);
  background: var(--bm-bg);
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-mittel);
  letter-spacing: 0;
  color: var(--bm-text);
  cursor: pointer;
  transition:
    border-color var(--bm-dauer-kurz) var(--bm-ease-linear),
    background-color var(--bm-dauer-kurz) var(--bm-ease-linear);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__option input {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  accent-color: var(--bm-zweit);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__option:hover { border-color: var(--bm-text); }
.bm-neu.bm-neu .bm-funnel .bm-funnel__option:has(input:checked) {
  border-color: var(--bm-zweit);
  background: var(--bm-bg-kuehl);
  box-shadow: inset 0 0 0 1px var(--bm-zweit);
  font-weight: var(--bm-g-mittel);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__option:has(input:focus-visible) {
  outline: var(--bm-fokus-breite) solid var(--bm-fokus);
  outline-offset: var(--bm-fokus-versatz, 2px);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__option input:focus-visible { outline: none; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__gruppe[aria-invalid='true'] .bm-funnel__option {
  border-color: var(--bm-fehler);
  box-shadow: inset 0 0 0 1px var(--bm-fehler);
}
.bm-neu.bm-neu .bm-funnel.bm-formular .bm-formular-eingabe:hover { border-color: var(--bm-text); }
.bm-neu.bm-neu .bm-funnel.bm-formular .bm-formular-eingabe[aria-invalid='true']:hover { border-color: var(--bm-fehler); }
.bm-neu.bm-neu .bm-funnel .bm-formular-fehler {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  color: var(--bm-fehler);
  font-weight: var(--bm-g-mittel);
}
.bm-neu.bm-neu .bm-funnel .bm-formular-fehler::before,
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--fehler .bm-funnel__meldung-titel::before {
  content: '!';
  content: '!' / '';
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.0625rem;
  border-radius: var(--bm-radius-pille);
  background: var(--bm-fehler);
  color: var(--bm-text-invers);
  font-size: var(--bm-t-mini);
  font-weight: var(--bm-g-mittel);
  line-height: 1;
}
.bm-neu .bm-funnel__angaben {
  display: grid;
  margin: 0;
  border-top: 1px solid var(--bm-linie-zart);
}
.bm-neu .bm-funnel__angabe {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.25rem 1rem;
  padding-block: 0.875rem;
  border-bottom: 1px solid var(--bm-linie-zart);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__angabe dt {
  grid-column: 1;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text-leise);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__angabe dd {
  grid-column: 1;
  margin: 0;
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text);
  overflow-wrap: anywhere;
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__angabe .bm-funnel__aendern {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__link {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--bm-t-klein);
  color: var(--bm-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  cursor: pointer;
}
.bm-neu.bm-neu .bm-funnel .bm-formular-kleingedrucktes .bm-funnel__link { font-size: inherit; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__link:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 3px); }
.bm-neu.bm-neu .bm-funnel .bm-funnel__pflicht {
  margin-bottom: -0.5rem;
  font-size: var(--bm-t-klein);
  line-height: var(--bm-zh-kompakt);
  color: var(--bm-text-leise);
}
.bm-neu.bm-neu .bm-funnel .bm-formular-kleingedrucktes { margin-top: 0; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung {
  display: grid;
  gap: 0.375rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--bm-linie-feld);
  border-radius: var(--bm-radius-feld);
  background: var(--bm-bg);
  font-size: var(--bm-t-body);
  line-height: var(--bm-zh-mittel);
  color: var(--bm-text);
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--fehler { border-color: var(--bm-fehler); box-shadow: inset 0 0 0 1px var(--bm-fehler); }
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--erfolg { padding: 0; border: 0; }
.bm-neu .bm-funnel__meldung:focus { outline: none; }
.bm-neu .bm-funnel__meldung:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 3px); }
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung-titel { font-weight: var(--bm-g-mittel); }
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--fehler .bm-funnel__meldung-titel {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--fehler .bm-funnel__meldung-titel::before { margin-top: 0.1875rem; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__meldung--erfolg .bm-funnel__meldung-titel {
  font-family: var(--bm-font-titel);
  font-size: var(--bm-t-h3);
  font-weight: var(--bm-g-titel);
  line-height: var(--bm-zh-snug);
}
.bm-neu .bm-funnel__wege { display: grid; gap: 0.25rem; margin: 0.25rem 0 0; padding: 0; list-style: none; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__fehlerliste ul { display: grid; gap: 0.25rem; margin: 0; padding-left: 1.25rem; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__fehlerliste .bm-funnel__link { font-size: inherit; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__mehr { margin: 0; }
.bm-neu .bm-funnel__fuss {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.bm-neu .bm-funnel__fuss > .bm-funnel__weiter { margin-left: auto; }
.bm-neu.bm-neu .bm-funnel .bm-funnel__zurueck {
  min-height: 44px;
  padding: 0 0.25rem;
  border: 0;
  background: none;
  font-family: var(--bm-font);
  font-size: var(--bm-t-knopf);
  color: var(--bm-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  cursor: pointer;
}
.bm-neu.bm-neu .bm-funnel .bm-funnel__zurueck:focus-visible { outline: var(--bm-fokus-breite) solid var(--bm-fokus); outline-offset: var(--bm-fokus-versatz, 3px); }
.bm-neu .bm-funnel__weiter[aria-disabled='true'] { opacity: 0.6; cursor: progress; }
@media (max-width: 479px) {
  .bm-neu .bm-funnel__fuss > .bm-funnel__weiter { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .bm-neu .bm-funnel__spur > span,
  .bm-neu.bm-neu .bm-funnel .bm-funnel__option { transition: none; }
}
.bm-funnel__falle {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  inset-inline-start: -10000px;
}

/* W5-C: im Abschluss person trägt das Kleingedruckte wie im Original den Abstand der Formularkarte. */
.bm-neu.bm-neu .bb-m-abschluss--person .bm-funnel .bm-formular-kleingedrucktes { margin-top: 1.25rem; }
