/* Beyond Corporate Cards – Formular im RS2-Design */
/* Schriften lokal (assets/css/fonts/, OFL) – keine Anfragen an Google Fonts (DSGVO). */
@import url('fonts.css');

.bcc-wrap {
	--bcc-primary: #3C32FA;
	--bcc-primary-dark: #2a23c9;
	--bcc-heading: #14141f;
	--bcc-body: #333333;
	--bcc-bg-section: #F5F5F5;
	--bcc-border: #e3e3ec;
	--bcc-error: #d63638;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--bcc-body);
	max-width: 820px;
	margin: 0 auto;
}

/* ---------- Fortschritt ---------- */
.bcc-progress {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	counter-reset: step;
}
.bcc-progress-item {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex: 1 1 auto;
	padding: .5rem .35rem;
	cursor: pointer;
	border-bottom: 3px solid var(--bcc-border);
	transition: border-color .2s;
}
.bcc-progress-item.is-active { border-bottom-color: var(--bcc-primary); }
.bcc-progress-item.is-done { border-bottom-color: var(--bcc-primary-dark); }
.bcc-progress-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--bcc-border);
	color: #fff;
	font-weight: 700;
	font-size: .85rem;
	flex: 0 0 auto;
}
.bcc-progress-item.is-active .bcc-progress-dot,
.bcc-progress-item.is-done .bcc-progress-dot { background: var(--bcc-primary); }
.bcc-progress-label { font-size: .8rem; font-weight: 500; color: var(--bcc-heading); }
@media (max-width: 640px) { .bcc-progress-label { display: none; } }

/* ---------- Schritte / Sektionen ---------- */
.bcc-step {
	background: var(--bcc-bg-section);
	border: 1px solid var(--bcc-border);
	border-radius: 12px;
	padding: 1.75rem;
	margin-bottom: 1.5rem;
}
.bcc-step h3 {
	margin: 0 0 1.25rem;
	font-weight: 800;
	font-size: 1.25rem;
	color: var(--bcc-heading);
	padding-bottom: .65rem;
	border-bottom: 2px solid var(--bcc-primary);
}
.bcc-step h4 {
	margin: .25rem 0 .9rem;
	font-weight: 700;
	font-size: 1rem;
	color: var(--bcc-primary);
}
.bcc-hint, .bcc-field-hint {
	font-size: .82rem;
	color: #6b6b78;
	margin: 0 0 1rem;
}
.bcc-field-hint { margin: .25rem 0 0; }

/* ---------- Felder ---------- */
.bcc-field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0 0 1rem;
}
.bcc-field > label { font-weight: 500; font-size: .9rem; color: var(--bcc-heading); }
.bcc-field input[type="text"],
.bcc-field input[type="email"],
.bcc-field input[type="tel"],
.bcc-field input[type="date"],
.bcc-field input[type="number"],
.bcc-field select,
.bcc-field textarea {
	padding: .6rem .75rem;
	border: 1px solid #c8c8da;
	border-radius: 8px;
	font-size: .95rem;
	font-family: inherit;
	background: #fff;
	color: var(--bcc-body);
}
.bcc-field input:focus,
.bcc-field select:focus,
.bcc-field textarea:focus {
	outline: none;
	border-color: var(--bcc-primary);
	box-shadow: 0 0 0 3px rgba(60, 50, 250, .15);
}
.bcc-multiselect { display: flex; flex-direction: column; gap: .4rem; background:#fff; padding:.75rem; border:1px solid #c8c8da; border-radius:8px; }
.bcc-checkitem, .bcc-check { font-weight: 400 !important; display: flex; align-items: flex-start; gap: .5rem; }
.bcc-check input, .bcc-checkitem input { margin-top: .2rem; }
.bcc-req { color: var(--bcc-error); font-weight: 700; }
.bcc-fixed-value {
	display: inline-block;
	padding: .55rem .9rem;
	background: rgba(60,50,250,.08);
	border: 1px solid rgba(60,50,250,.25);
	border-radius: 8px;
	font-weight: 600;
	color: var(--bcc-primary);
	width: fit-content;
}
.bcc-optional > label .bcc-req { display: none; }

/* ---------- Datei-Upload ---------- */
.bcc-type-file .bcc-file-wrap {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
	background: #fff;
	border: 1px dashed #b9b9cc;
	border-radius: 8px;
	padding: .65rem .75rem;
}
.bcc-type-file input[type="file"] { font-size: .85rem; }
.bcc-file-name { font-size: .82rem; color: #6b6b78; }

/* ---------- Wiederholblöcke / Varianten ---------- */
.bcc-repeat {
	background: #fff;
	border: 1px solid var(--bcc-border);
	border-radius: 10px;
	padding: 1.1rem 1.25rem;
	margin-bottom: 1rem;
}
.bcc-add {
	background: transparent;
	border: 1px dashed var(--bcc-primary);
	color: var(--bcc-primary);
	border-radius: 8px;
	padding: .6rem 1.1rem;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
.bcc-add:hover { background: rgba(60,50,250,.06); }
.bcc-oder { margin-top: .5rem; padding-top: .75rem; border-top: 1px solid var(--bcc-border); }
.bcc-oder-label { font-weight: 700; color: var(--bcc-heading); margin: 0 0 .6rem; }
.bcc-variant-tabs { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.bcc-variant-tab {
	display: flex; align-items: center; gap: .4rem;
	padding: .5rem .9rem; border: 1px solid #c8c8da; border-radius: 8px;
	cursor: pointer; font-size: .9rem; background:#fff;
}

/* ---------- Navigation ---------- */
.bcc-nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.bcc-btn {
	border: none; border-radius: 8px; padding: .75rem 1.75rem;
	font-size: 1rem; font-weight: 600; cursor: pointer; font-family: inherit;
}
.bcc-prev { background: #fff; border: 1px solid #c8c8da; color: var(--bcc-heading); }
.bcc-prev:disabled { opacity: .45; cursor: not-allowed; }
.bcc-primary { background: var(--bcc-primary); color: #fff; }
.bcc-primary:hover { background: var(--bcc-primary-dark); }
.bcc-next { margin-left: auto; }
.bcc-finish { margin-left: auto; }

/* ---------- Hinweise / Fehler ---------- */
.bcc-notice { padding: 1rem 1.25rem; border-radius: 8px; margin-bottom: 1.25rem; }
.bcc-success { background: #e6f7ec; border: 1px solid #46b450; color: #1d643b; }
.bcc-error { background: #fbeaea; border: 1px solid var(--bcc-error); color: #8a1f21; }
.bcc-warning { background: #fff6e5; border: 1px solid #dba617; color: #7a5b00; }
.bcc-has-error input, .bcc-has-error select, .bcc-has-error .bcc-multiselect, .bcc-has-error .bcc-file-wrap {
	border-color: var(--bcc-error) !important;
	box-shadow: 0 0 0 2px rgba(214,54,56,.12);
}
.bcc-error-msg { color: var(--bcc-error); font-size: .78rem; font-weight: 500; }

/* Ohne JS alle Schritte zeigen; Navigation ausblenden. */
.bcc-step { display: block; }
body.bcc-js .bcc-step[hidden] { display: none; }

/* [hidden] muss display der Felder/Wrapper schlagen (z. B. .bcc-field { display:flex }),
   sonst bleiben bedingte Felder immer sichtbar. */
.bcc-wrap [hidden] { display: none !important; }

/* ---------- Guidance / Hilfetexte ---------- */
.bcc-help {
	display: block;
	background: rgba(60,50,250,.06);
	border-left: 3px solid var(--bcc-primary);
	border-radius: 0 6px 6px 0;
	padding: .55rem .75rem;
	font-size: .82rem;
	color: #3a3a52;
	margin-bottom: .25rem;
}

/* ---------- EUR-Feld ---------- */
.bcc-eur { display: flex; align-items: stretch; }
.bcc-eur input { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; flex: 1; }
.bcc-eur-suffix {
	display: inline-flex; align-items: center; padding: 0 .9rem;
	background: #ececf4; border: 1px solid #c8c8da; border-left: none;
	border-radius: 0 8px 8px 0; font-weight: 600; color: var(--bcc-heading); font-size: .9rem;
}

/* ---------- Erfolg: Zusammenfassung herunterladen ---------- */
.bcc-summary-cta {
	background: var(--bcc-bg-section);
	border: 1px solid var(--bcc-border);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin-top: 1rem;
}
.bcc-summary-cta p { margin: 0 0 .75rem; }
.bcc-summary-cta a.bcc-btn { display: inline-block; text-decoration: none; margin: 0 .25rem .25rem 0; }
.bcc-summary-cta a.bcc-primary { color: #fff; }

/* ---------- Adress-Autovervollständigung (OpenStreetMap) ---------- */
/* Adress-Vorschläge entfernt (Audit A6, 01.10.2026). */

/* ---------- Wiederholblock-Kopf + Entfernen ---------- */
.bcc-repeat-head { display: flex; align-items: center; justify-content: space-between; }
.bcc-remove {
	background: transparent; border: 1px solid #d0a; border-color: var(--bcc-error);
	color: var(--bcc-error); border-radius: 6px; padding: .3rem .7rem;
	font-size: .8rem; font-weight: 600; cursor: pointer; font-family: inherit;
}
.bcc-remove:hover { background: rgba(214,54,56,.08); }

/* ---------- Produkt-Kopf ---------- */
.bcc-product-header {
	display: flex; align-items: center; gap: .9rem;
	margin-bottom: 1.25rem; padding-bottom: 1rem;
	border-bottom: 1px solid rgba(0,0,0,.08);
}
.bcc-product-logo { max-height: 56px; max-width: 200px; width: auto; height: auto; }
.bcc-product-name { font-size: 1.15rem; font-weight: 700; color: var(--bcc-body); }

/* ---------- Kartendesign-Auswahl ---------- */
.bcc-card-design-grid {
	display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem;
}
.bcc-card-design {
	display: inline-block; cursor: pointer; border: 2px solid transparent;
	border-radius: 10px; padding: 4px; transition: border-color .15s, box-shadow .15s;
}
.bcc-card-design img {
	display: block; width: 180px; max-width: 46vw; height: auto;
	border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.15);
}
.bcc-card-design input { position: absolute; opacity: 0; pointer-events: none; }
.bcc-card-design:has(input:checked) {
	border-color: var(--bcc-primary, #3C32FA);
	box-shadow: 0 0 0 2px rgba(60,50,250,.25);
}

/* ---------- Start-Übersicht (vor dem Antrag, seit 1.2.0) ---------- */
.bcc-intro {
	background: var(--bcc-bg-section); border: 1px solid var(--bcc-border); border-radius: 12px;
	padding: 1.75rem; margin-bottom: 1.5rem;
}
.bcc-intro-title { margin: 0 0 .5rem; font-weight: 800; font-size: 1.5rem; color: var(--bcc-heading); }
.bcc-intro-lead { margin: 0 0 1.25rem; }
.bcc-intro-steps { display: flex; flex-wrap: wrap; gap: .5rem 1rem; list-style: none; margin: 0 0 1.5rem; padding: 0; font-size: .85rem; color: var(--bcc-heading); }
.bcc-intro-steps li { display: flex; align-items: center; gap: .4rem; }
.bcc-intro-steps .bcc-progress-dot { width: 22px; height: 22px; font-size: .72rem; background: var(--bcc-primary); }
.bcc-intro-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.bcc-intro-card { background: var(--bcc-card-bg, rgba(255,255,255,.6)); border: 1px solid var(--bcc-border); border-radius: 10px; padding: 1rem 1.1rem; }
.bcc-intro-card h3, .bcc-intro-docs h3 { margin: 0 0 .35rem; font-size: 1rem; font-weight: 700; color: var(--bcc-heading); }
.bcc-intro-card ul, .bcc-intro-docs ul { margin: .25rem 0 0; padding-left: 1.1rem; font-size: .88rem; }
.bcc-intro-card li, .bcc-intro-docs li { margin: .15rem 0; }
.bcc-intro-docs { margin-bottom: 1rem; }
.bcc-intro-rf-pick { max-width: 420px; }
.bcc-intro-rf { border-top: 1px solid var(--bcc-border); padding: .75rem 0 .25rem; }
.bcc-intro-rf-name { margin: 0 0 .25rem; font-weight: 700; color: var(--bcc-heading); }
body.bcc-js .bcc-intro-rf { border-top: 0; padding-top: 0; }
body.bcc-js .bcc-intro-rf-name { display: none; } /* mit JS steht die Rechtsform schon in der Auswahl */
.bcc-intro-variant { margin: .5rem 0 0; font-weight: 600; font-size: .85rem; }
.bcc-intro-docs .bcc-oder-label { margin: .9rem 0 .2rem; font-size: .9rem; font-weight: 700; }
.bcc-intro .bcc-hint, .bcc-intro-rf-name { font-size: .88rem; }
.bcc-optional-tag { font-size: .72rem; opacity: .7; }
.bcc-intro-actions { margin: 1.25rem 0 0; text-align: right; }
.bcc-product-docs { margin-bottom: 1rem; }
.bcc-product-docs ul { margin: .25rem 0 0; padding-left: 1.1rem; }

/* ---------- Produkt-Infos: Preise & Dokumente (Shortcode beyond_corporate_card_info) ---------- */
.bcc-info { margin-top: 2rem; }
.bcc-info-section { background: var(--bcc-bg-section); border: 1px solid var(--bcc-border); border-radius: 12px; padding: 1.75rem; margin-bottom: 1.5rem; }
.bcc-info-title { margin: 0 0 1rem; font-weight: 800; font-size: 1.35rem; color: var(--bcc-heading); }
.bcc-price-group { margin-bottom: 1.25rem; }
.bcc-price-group-title { margin: 0 0 .4rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--bcc-primary); }
.bcc-price-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.bcc-price-table th, .bcc-price-table td { padding: .55rem 0; border-bottom: 1px solid var(--bcc-border); vertical-align: top; }
.bcc-price-table th { text-align: left; font-weight: 400; color: var(--bcc-body); padding-right: 1rem; }
.bcc-price-table td { text-align: right; font-weight: 700; color: var(--bcc-heading); white-space: normal; }
.bcc-price-notes { font-size: .78rem; opacity: .8; padding-left: 1.2rem; margin: 1rem 0 0; }
.bcc-price-stand { font-size: .78rem; opacity: .7; margin: .5rem 0 0; }
.bcc-doc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; }
.bcc-doc-card {
	display: flex; flex-direction: column; gap: .25rem; height: 100%; box-sizing: border-box;
	padding: 1rem 1.1rem; border: 1px solid var(--bcc-border); border-radius: 10px; text-decoration: none; color: var(--bcc-heading);
	background: var(--bcc-card-bg, rgba(255,255,255,.6)); transition: border-color .15s;
}
.bcc-doc-card:hover { border-color: var(--bcc-primary); }
.bcc-doc-label { font-weight: 700; font-size: .95rem; line-height: 1.35; }
.bcc-doc-meta { font-size: .75rem; opacity: .7; }
.bcc-doc-action { margin-top: auto; font-size: .8rem; font-weight: 700; color: var(--bcc-primary); }
@media (max-width: 640px) {
	.bcc-price-table th, .bcc-price-table td { display: block; text-align: left; padding: .2rem 0; border: 0; }
	.bcc-price-table tr { display: block; padding: .45rem 0; border-bottom: 1px solid var(--bcc-border); }
}

/* Aufklappbare Stichpunkte + FAQ (Start-Übersicht) */
.bcc-intro-item details summary { cursor: pointer; list-style: none; }
.bcc-intro-item details summary::-webkit-details-marker { display: none; }
.bcc-intro-item details summary::after { content: " +"; font-weight: 700; color: var(--bcc-primary); }
.bcc-intro-item details[open] summary::after { content: " –"; }
.bcc-intro-item-body { margin: .3rem 0 .5rem; padding: .5rem .7rem; border-left: 2px solid var(--bcc-primary); font-size: .82rem; line-height: 1.5; }
.bcc-intro-item-body p { margin: 0 0 .35rem; }
.bcc-intro-item-body p:last-child { margin-bottom: 0; }
.bcc-intro-item-fields { font-weight: 600; }
.bcc-faq { margin: 1.25rem 0 0; }
.bcc-faq h3 { margin: 0 0 .5rem; font-size: 1rem; font-weight: 700; color: var(--bcc-heading); }
.bcc-faq-item { border-top: 1px solid var(--bcc-border); padding: .65rem 0; }
.bcc-faq-item:last-child { border-bottom: 1px solid var(--bcc-border); }
.bcc-faq-item summary { cursor: pointer; font-weight: 600; color: var(--bcc-heading); font-size: .92rem; }
.bcc-faq-item[open] summary { color: var(--bcc-primary); }
.bcc-faq-item p { margin: .45rem 0 0; font-size: .88rem; line-height: 1.6; }

/* Themen-Karten der Start-Übersicht aufklappbar */
.bcc-intro-grid { align-items: start; }
.bcc-intro-card > summary { cursor: pointer; list-style: none; display: flex; flex-direction: column; gap: .3rem; }
.bcc-intro-card > summary::-webkit-details-marker { display: none; }
.bcc-intro-card-title { font-size: 1rem; font-weight: 700; color: var(--bcc-heading); }
.bcc-intro-card > summary .bcc-hint { margin: 0; }
.bcc-intro-card-count { font-size: .78rem; font-weight: 700; color: var(--bcc-primary); }
.bcc-intro-card-count::after { content: " anzeigen +"; }
.bcc-intro-card[open] .bcc-intro-card-count::after { content: " ausblenden –"; }
.bcc-intro-card[open] > ul { margin-top: .6rem; }

/* „Antrag starten“: prominent – oben früher Einstieg, unten Abschluss-Block */
.bcc-intro-actions-top { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; text-align: left; margin: 0 0 1.5rem; }
.bcc-intro-actions-note { font-size: .82rem; opacity: .75; }
.bcc-intro-cta {
	text-align: center; margin: 1.75rem 0 0; padding: 1.75rem 1.25rem; border-radius: 12px;
	border: 1px solid var(--bcc-border); background: var(--bcc-card-bg, rgba(255,255,255,.6));
}
.bcc-intro-cta-title { margin: 0 0 .25rem; font-size: 1.25rem; font-weight: 800; color: var(--bcc-heading); }
.bcc-intro-cta-text { margin: 0 auto 1.1rem; max-width: 520px; font-size: .92rem; }
.bcc-intro-start-main { font-size: 1.15rem; padding: 1.1rem 3rem; min-width: 280px; }
@media (max-width: 640px) { .bcc-intro-start-main { width: 100%; min-width: 0; } }

/* ---------- Magic-Link: unterschriebene Unterlagen hochladen (ab 1.3.0) ---------- */
.bcc-signed-card { max-width: 760px; margin: 2rem auto; padding: 2rem; background: #fff; color: #1d1d27; border-radius: 16px; box-shadow: 0 10px 40px rgba(10, 20, 60, .12); }
.bcc-signed-eyebrow { margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sk-primary, #3c32fa); }
.bcc-signed-title { margin: 0 0 1rem; font-size: 1.6rem; line-height: 1.2; color: #14141f; }
.bcc-signed-lead { margin: 0 0 1.5rem; line-height: 1.6; }
.bcc-signed-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .9rem; }
.bcc-signed-item { display: grid; grid-template-columns: 2.2rem 1fr; gap: .4rem 1rem; align-items: start; padding: 1rem 1.1rem; border: 1px solid #e3e3ec; border-radius: 12px; background: #fafafd; }
.bcc-signed-item.is-done { border-color: color-mix(in srgb, #00a32a 40%, #e3e3ec); background: color-mix(in srgb, #00a32a 5%, #fff); }
.bcc-signed-state { grid-row: span 2; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; background: var(--sk-primary, #3c32fa); }
.bcc-signed-item.is-done .bcc-signed-state { background: #00a32a; }
.bcc-signed-item label { display: block; color: #14141f; }
.bcc-signed-meta { display: block; margin-top: .2rem; font-size: .85rem; color: #666; }
.bcc-signed-item input[type=file] { width: 100%; max-width: 100%; font-size: .9rem; color: #333; }
.bcc-req { display: inline-block; margin-left: .35rem; padding: .05rem .45rem; border-radius: 999px; font-size: .7rem; font-weight: 700; color: #fff; background: var(--sk-primary, #3c32fa); vertical-align: middle; }
.bcc-signed-submit { font-size: 1.05rem; padding: .9rem 1.8rem; }
.bcc-signed-help { margin: 1rem 0 0; font-size: .85rem; color: #666; }
.bcc-sign-callout { padding: 1rem 1.2rem; border-left: 4px solid var(--sk-primary, #3c32fa); background: color-mix(in srgb, var(--sk-primary, #3c32fa) 7%, #fff); color: #14141f; border-radius: 8px; }
@media (max-width: 600px) { .bcc-signed-card { margin: 1rem 0; padding: 1.25rem; border-radius: 12px; } .bcc-signed-title { font-size: 1.3rem; } }
/* Die Upload-Karte ist immer hell – Meldungen darin unabhängig vom Skin dunkel setzen
   (dunkle Skins färben .bcc-error/.bcc-success hell für dunklen Seitenhintergrund). */
.bcc-wrap .bcc-signed-card .bcc-notice.bcc-error { background: #fdecee; border: 1px solid #e0525f; color: #7a1020; }
.bcc-wrap .bcc-signed-card .bcc-notice.bcc-success { background: #e6f7ec; border: 1px solid #46b450; color: #1d643b; }
/* „So geht es weiter“ auf der Upload-Seite. */
.bcc-next-steps { margin: 1.75rem 0 0; padding: 1.25rem 1.4rem; border-radius: 12px; background: color-mix(in srgb, var(--sk-primary, #3c32fa) 6%, #fff); border: 1px solid color-mix(in srgb, var(--sk-primary, #3c32fa) 22%, #fff); }
.bcc-next-steps.is-complete { border-width: 2px; }
.bcc-next-title { margin: 0 0 1rem; font-size: 1.15rem; color: #14141f; }
.bcc-next-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.bcc-next-item { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; align-items: start; color: #1d1d27; }
.bcc-next-item p { margin: .15rem 0 0; font-size: .92rem; line-height: 1.5; color: #555; }
.bcc-next-dot { width: 2rem; height: 2rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; background: var(--sk-primary, #3c32fa); }
.bcc-next-item.is-done .bcc-next-dot { background: #00a32a; }
/* „Neuen Upload-Link anfordern“. */
.bcc-link-request { margin-top: 1rem; }
.bcc-lr-input { width: 100%; max-width: 420px; padding: .75rem .9rem; margin-top: .4rem; border: 1px solid #c9ccd8; border-radius: 8px; font-size: 1rem; color: #14141f; background: #fff; }
.bcc-lr-input:focus { outline: 2px solid var(--sk-primary, #3c32fa); outline-offset: 1px; }
/* Bankname zur IBAN (aus der Bankleitzahlendatei der Bundesbank). */
.bcc-bank-hint { display: block; margin-top: .35rem; font-size: .85rem; color: var(--bcc-body, #555); }

/* Shared application UX; skins retain their brand colours. */
.bcc-field-group { border: 0; padding: 0; margin: 1.5rem 0; min-width: 0; }
.bcc-field-group legend { font-weight: 700; padding: 0 0 .75rem; }
.bcc-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1.25rem; }
.bcc-fields-grid .bcc-field { min-width: 0; }
.bcc-step-link { display: flex; align-items: center; gap: .5rem; width: 100%; background: transparent; border: 0; padding: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.bcc-step-link:focus-visible, .bcc-review-edit:focus-visible { outline: 3px solid var(--bcc-primary); outline-offset: 4px; }
.bcc-step-status { font-weight: 700; margin: 0 0 .5rem; }
.bcc-step-meter { width: 100%; height: .5rem; accent-color: var(--bcc-primary); margin-bottom: 1rem; }
.bcc-error-summary { background: #fff4f4; color: #8b1822; border: 2px solid #b42332; border-radius: 10px; padding: 1rem; margin-bottom: 1rem; scroll-margin-top: 1rem; }
.bcc-error-summary button { background: none; border: 0; padding: .25rem 0; font: inherit; color: inherit; text-align: left; text-decoration: underline; cursor: pointer; }
.bcc-review section { position: relative; padding: 1rem 0; border-bottom: 1px solid var(--bcc-border); }
.bcc-review-edit { background: transparent; color: inherit; border: 1px solid currentColor; border-radius: 6px; padding: .5rem .75rem; cursor: pointer; }
.bcc-review dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: .5rem 1rem; font-size: .9rem; }
.bcc-review dt { font-weight: 600; }
.bcc-review dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) {
 .bcc-fields-grid { grid-template-columns: 1fr; }
 .bcc-wrap .bcc-form .bcc-step { padding: 1.1rem; }
 .bcc-wrap .bcc-form .bcc-repeat { padding: .8rem; }
 .bcc-field input, .bcc-field select, .bcc-field textarea { font-size: 16px !important; min-height: 44px; }
 .bcc-field input[type=checkbox], .bcc-field input[type=radio] { min-height: auto; }
 .bcc-progress { display: none; }
 .bcc-nav { position: sticky; bottom: 0; z-index: 5; background: var(--bcc-bg-section); padding: .75rem; border: 1px solid var(--bcc-border); border-radius: 10px; }
 .bcc-nav .bcc-btn { padding: .75rem; font-size: .9rem; }
 .bcc-review dl { grid-template-columns: 1fr; gap: .2rem; }
 .bcc-review dd { margin-bottom: .65rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .bcc-wrap *, .bcc-hero * { transition: none !important; } }

.bcc-error-summary { font-size: .95rem; line-height: 1.45; }
.bcc-error-summary p { margin: 0 0 .5rem; font-weight: 700; }
.bcc-error-summary ul { margin: 0; padding-left: 1.2rem; }
.bcc-step-link:disabled { cursor: default; opacity: .65; }
.bcc-review-card { display: block; max-width: 200px; width: 100%; height: auto; margin-top: .5rem; }
.bcc-error-summary .bcc-error-more { margin: .5rem 0 0; font-weight: 400; }

/* Firmenlogo des Kunden auf der Programmkarte (Schritt Branding). Position je Programm im Skin. */
.bcc-logo-preview { margin: 0 0 1.5rem; max-width: 420px; }
.bcc-logo-preview-card { position: relative; container-type: inline-size; }
.bcc-logo-preview-card > img { display: block; width: 100%; height: auto; border-radius: 4.5%/7%; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.bcc-logo-slot { position: absolute; top: 7%; width: 25%; height: 16%; display: flex; align-items: center; justify-content: center; border: 2px dashed rgba(255,255,255,.75); border-radius: 6px; color: #fff; font-size: clamp(.55rem, 3.2cqi, .8rem); font-weight: 700; text-align: center; line-height: 1.1; background: rgba(255,255,255,.08); }
.bcc-logo-preview[data-slot="oben_rechts"] .bcc-logo-slot { right: 5.5%; }
.bcc-logo-preview[data-slot="oben_links"] .bcc-logo-slot { left: 5.5%; }
.bcc-logo-slot-img { max-width: 100%; max-height: 100%; object-fit: contain; }
.bcc-logo-preview.has-logo .bcc-logo-slot { border-color: transparent; background: transparent; }
.bcc-logo-preview.has-logo .bcc-logo-slot-text { display: none; }
.bcc-logo-preview.no-logo .bcc-logo-slot { display: none; }
.bcc-logo-preview figcaption { margin-top: .75rem; font-size: .9rem; line-height: 1.45; }
