/* Page-scoped B2C flow. Existing brand tokens and bundled styles stay authoritative. */
.b2c-checkout .header-inner { max-width: 1000px; min-height: 76px; }
.b2c-checkout .co-support { margin-left: auto; color: var(--blau); font-size: .9rem; font-weight: 600; text-underline-offset: 4px; }
.b2c-checkout .hero { padding: 32px 0 56px; }
.b2c-checkout .hero::before, .b2c-checkout .hero::after { display: none; }
.b2c-checkout .section-head { max-width: 720px; margin: 0 auto 24px; }
.b2c-checkout .section-head h1 { max-width: none; font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.15; margin: 0 0 12px; }
.b2c-checkout .hero-sub { font-size: 1rem; line-height: 1.55; margin: 0; max-width: 640px; }
.co-eyebrow { color: var(--blau); font-size: .8rem; font-weight: 700; margin: 0 0 12px; }
.b2c-checkout .checkout { max-width: 720px; padding: 32px; box-shadow: none; border-radius: 8px; scroll-margin-top: 92px; }
.b2c-checkout [hidden] { display: none !important; }
.b2c-checkout .co-fortschritt { margin-bottom: 22px; }
.b2c-checkout .co-fortschritt-text { font-family: var(--font-body); font-size: .85rem; letter-spacing: 0; }
.b2c-checkout .checkout h2 { font-size: clamp(1.3rem, 3vw, 1.6rem); line-height: 1.25; margin-bottom: 16px; }
.b2c-checkout .checkout h2:focus { outline: none; }
.b2c-checkout .checkout input:not([type=radio]):not([type=checkbox]):not([type=hidden]), .b2c-checkout .checkout select { min-height: 48px; font-size: 16px; }
.b2c-checkout .checkout :focus-visible, .b2c-checkout .co-support:focus-visible { outline: 3px solid var(--blau); outline-offset: 3px; }
.b2c-checkout .checkout button[type=submit] { width: 100%; min-height: 52px; margin-top: 20px; white-space: normal; }
.b2c-checkout .checkout .btn:disabled { cursor: not-allowed; }
.co-auftragsblick { display: grid; grid-template-columns: 1fr auto; gap: 16px; background: #f2f6fc; padding: 16px; margin: 0 0 24px; border: 1px solid #cedcee; border-radius: 6px; }
.co-auftragsblick > div { min-width: 0; }
.co-auftragsblick strong { display: block; font-size: 1rem; line-height: 1.4; }
.co-auftragsblick .co-auftragsbetrag { text-align: right; max-width: 200px; }
.co-auftragsblick .co-auftragsbetrag strong { color: var(--blau); font-family: var(--font-display); font-size: 1.65rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.co-small { display: block; font-size: .75rem; color: var(--ink-soft); line-height: 1.4; }
.co-textbutton { display: inline-block; background: none; border: 0; padding: 10px 0; min-height: 44px; color: var(--blau); font: 600 .875rem var(--font-body); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.co-textbutton:disabled { color: var(--ink-soft); cursor: default; text-decoration: none; }
.co-entwurf { margin: 0 0 20px; padding: 20px; border: 1px solid var(--blau); background: #f2f6fc; border-radius: 6px; }
.co-entwurf .btn, .co-entwurf .co-textbutton { display: block; width: 100%; }
.co-save { font-size: .8rem; color: var(--ink-soft); margin: 0 0 20px; }
.co-save[data-kind=error], .co-save[data-kind=conflict] { color: var(--rot, #B3261E); }
.co-save[data-kind=saved], .b2c-checkout .co-meldung-ok { color: var(--gruen); }
.b2c-checkout .co-zusammenfassung li { display: grid; grid-template-columns: 100px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 10px 0; }
.b2c-checkout .co-zusammenfassung li span:nth-child(2) { overflow-wrap: anywhere; }
.b2c-checkout .co-zusammenfassung .co-textbutton { padding-top: 0; padding-bottom: 0; min-height: 28px; text-align: right; }
.b2c-checkout .co-ocr { margin: 20px 0; }
.b2c-checkout .co-unterlagen li { padding-block: 4px; }
.b2c-checkout .co-unterlagen li::before { top: .65em; }
.b2c-checkout .co-hinweis { line-height: 1.55; }
.b2c-checkout .trust-wrap { display: none; }
.b2c-checkout .footer-inner { display: block; max-width: 720px; }
.b2c-checkout .footer-brand > :not(.footer-privat):not(.footer-contact), .b2c-checkout .footer-col { display: none; }
.b2c-checkout .footer-privat { max-width: none; }
.b2c-checkout .site-footer { padding-top: 24px; }
.b2c-checkout .co-balken span { transition: width 160ms ease; }
@media (max-width: 600px) {
  .b2c-checkout .hero { padding-top: 22px; }
  .b2c-checkout .header-inner { min-height: 64px; padding-inline: 16px; }
  .b2c-checkout .logo-word { font-size: .78rem; }
  .b2c-checkout .logo-plate { font-size: .75rem; }
  .b2c-checkout .co-support { font-size: .75rem; max-width: 82px; }
  .b2c-checkout .hero > .container { padding-inline: 12px; }
  .b2c-checkout .section-head { padding-inline: 6px; margin-bottom: 20px; }
  .b2c-checkout .checkout { padding: 20px 16px; scroll-margin-top: 74px; }
  .co-auftragsblick { padding: 12px; gap: 12px; grid-template-columns: minmax(0, 1fr) 120px; }
  .co-auftragsblick strong { font-size: .9rem; }
  .co-auftragsblick .co-auftragsbetrag strong { font-size: 1.4rem; }
  .b2c-checkout .co-zeile { grid-template-columns: 1fr; }
  .b2c-checkout .co-zusammenfassung li { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
  .b2c-checkout .co-zusammenfassung li .co-zf-key { grid-column: 1; font-size: .8rem; }
  .b2c-checkout .co-zusammenfassung li span:nth-child(2) { grid-column: 1; }
  .b2c-checkout .co-zusammenfassung li .co-textbutton { grid-column: 2; grid-row: span 2; min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .b2c-checkout .co-balken span { transition: none; } }

.b2c-checkout .footer-col[aria-label="Rechtliches"] { display: block; margin-top: 20px; }
.b2c-checkout .footer-col[aria-label="Rechtliches"] h2 { display: none; }
.b2c-checkout .footer-col[aria-label="Rechtliches"] ul { display: flex; gap: 16px; flex-wrap: wrap; }

.b2c-checkout [data-schritt="1"] form:has([data-vorgang-guide]:not([hidden])) > h2 { display: none; }

.b2c-checkout [data-werbecode] { min-width: 0; width: auto; }
.b2c-checkout [data-werbecode-pruefen] { width: auto; flex: none; }
@media (max-width: 600px) {
  .b2c-checkout .co-feld > div:has([data-werbecode]) { flex-direction: column; align-items: stretch !important; }
  .b2c-checkout [data-werbecode], .b2c-checkout [data-werbecode-pruefen] { width: 100%; }
}

/* 28.09.2026: B -- Unterfragen der Vorgangsauswahl ohne eigenes „Schritt N“ (Teil-Anzeige steht oben). */
.b2c-checkout .checkout .finder-schritt { display: none; }
/* 28.09.2026: A -- „Unterlagen gerade nicht zur Hand?“ unter der Checkliste (vorhandene Tokens). */
.b2c-checkout .co-spaeter { margin: 28px 0 0; padding: 20px; border: 1px solid var(--line); background: var(--paper); border-radius: 6px; }
.b2c-checkout .co-spaeter-titel { margin: 0 0 4px; font-size: 1rem; }
.b2c-checkout .co-spaeter .btn { display: block; width: 100%; min-height: 48px; margin-top: 16px; white-space: normal; }
.b2c-checkout .co-spaeter-meldung { margin-top: 12px; font-size: .9rem; }
@media (max-width: 600px) { .b2c-checkout .co-spaeter { padding: 16px 14px; } }

/* Abbruch-Frage (29.09.2026) — nur vorhandene Tokens; Backdrop/Schatten = --ink mit Deckkraft wie im Kopf-Menü */
.co-abbruch { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); box-shadow: 0 16px 32px rgba(26, 26, 46, .18); }
.co-abbruch::backdrop { background: rgba(26, 26, 46, .55); }
.co-abbruch h2 { margin: 0 0 6px; font-size: 1.35rem; }
.co-abbruch h2:focus { outline: none; }
.co-abbruch p { margin: 0 0 10px; }
.co-abbruch-gruende { display: grid; gap: 8px; margin: 16px 0 4px; }
.co-abbruch-grund { display: block; width: 100%; min-height: 48px; padding: 12px 14px; text-align: left; font: 500 1rem/1.35 var(--font-body); color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 6px; cursor: pointer; }
.co-abbruch-grund:hover { border-color: var(--blau); }
.co-abbruch-grund:focus-visible { outline: 3px solid var(--blau); outline-offset: 2px; }
.co-abbruch-aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 16px; }
.co-abbruch-aktionen .btn { min-height: 48px; }
@media (max-width: 600px) { .co-abbruch { padding: 18px 14px; } .co-abbruch-aktionen .btn { width: 100%; justify-content: center; } }
