/* Bewerbungs-/Kontaktformulare auf MDB5 (Template „2021 BNI Online iframe“ [17] u. a.)
   Nachfolger von mdb/css/bnionline.css + mdb/css/addons-pro/steppers.css
   Farben nach BNI-Markenrichtlinien (siehe bni-marke.css) */

h1, .h1 {
	display: block;
	margin: 0;
	padding: 0 0 25px 0;
	font-size: 32px;
	line-height: 36px;
	font-weight: 500;
	color: #000;
	break-inside: avoid;
}
h2, .h2 {
	display: block;
	margin: 0;
	padding: 20px 0 15px;
	font-size: 25px;
	line-height: 34px;
	font-weight: 500;
	color: #000;
	break-inside: avoid;
}
.headline:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 15px;
	width: 100px;
	height: 5px;
	background: #cf2030;
}

.textred { color: #cf2030; }
sub { bottom: 0; }
sub, .sub, sup, .sup { font-size: .55em; }
.logo {
	padding: 10px 0;
	height: 80px;
}

.card {
	padding: 25px;
	margin-top: 25px;
	margin-bottom: 15px;
}

.hide { display: none; }

fieldset { margin: 15px 0; }
/* Bootstrap 5 setzt legend auf float/100 % Breite – hier wie bisher als roter Balken */
legend {
	float: none;
	width: auto;
	font-size: 1.1rem;
	background: #cf2030;
	color: #fff;
	padding: 5px 10px;
	margin: 15px 0;
}
strong { font-weight: 700 !important; }

/* Buttons wie bisher: Primär rot gefüllt, Sekundär rot umrandet */
.btn-primary,
.btn-secondary {
	margin: 10px 0 15px 0;
	font-size: 18px;
	border: 1px solid #cf2030;
	box-shadow: none;
	text-transform: none;
}
.btn-primary {
	color: #fff;
	background-color: #cf2030 !important;
}
.btn-primary:hover, .btn-primary:focus {
	color: #cf2030;
	background-color: #fff !important;
	border-color: #cf2030;
}
.btn-secondary {
	color: #cf2030;
	background-color: #fff !important;
}
.btn-secondary:hover, .btn-secondary:focus {
	color: #fff;
	background-color: #cf2030 !important;
	border-color: #cf2030;
}

.zusatzinfo {
	border: 2px solid #cf2030;
	padding: .5rem .5rem 0 .5rem;
	border-radius: .5rem;
}

.ds-check-input {
	position: relative !important;
	pointer-events: none;
	opacity: 1 !important;
}

/** Besucheranmeldung ****/
.required { border-left: 6px solid #cf2030 !important; }
.off { display: none; }

.labelselect {
	display: inline-block;
	margin-bottom: .5rem;
}
.text09 {
	font-size: .9rem;
	font-weight: 300;
}

footer { background: #f2f2f2; color: #000; font-size: 12px; }
footer a { display: inline-block; padding: 15px; color: #000; }

/* Akkordeon „Informationen zum Datenschutz“ */
.md-accordion .card-header {
	background: #f2f2f2;
	color: #000;
}
.md-accordion .card-header a { color: #000; text-decoration: none; }
.md-accordion .rotate-icon { transition: transform .2s; }
.md-accordion .card-header a:not(.collapsed) .rotate-icon { transform: rotate(180deg); }

/* ===== Stepper (vertikal), Markup wie MDB4: ul.stepper > li.step > .step-title + .step-new-content ===== */
ul.stepper {
	counter-reset: section;
	padding: 0;
	margin: 1em 0;
	list-style: none;
}
/* MDB5 setzt .stepper:not(.stepper-vertical) auf display:flex (eigener Stepper) – hier untereinander */
ul.stepper:not(.stepper-vertical) {
	display: block;
}
ul.stepper .step {
	position: relative;
	list-style: none;
}
ul.stepper > li:not(:last-of-type) {
	margin-bottom: .625rem;
	transition: margin-bottom .4s;
}
ul.stepper .step:not(:last-of-type).active { margin-bottom: 2.25rem; }
ul.stepper .step:before {
	position: absolute;
	top: .75rem;
	left: 0;
	counter-increment: section;
	content: counter(section);
	height: 1.75rem;
	width: 1.75rem;
	color: #fff;
	background-color: #c8c8c8;
	border-radius: 100%;
	text-align: center;
	line-height: 1.75rem;
	font-weight: 400;
}
ul.stepper .step.active:before { background-color: #cf2030; }
ul.stepper .step.done:not(.active):before {
	content: '\f00c';
	font-family: 'Font Awesome 5 Free';
	font-size: 1rem;
	font-weight: 900;
	background-color: #64666a;
}
ul.stepper > .step:not(:last-of-type):after {
	content: '';
	position: absolute;
	top: 3.125rem;
	left: .8438rem;
	width: 1px;
	height: calc(100% - 38px);
	background-color: #c8c8c8;
}
ul.stepper .step-title {
	display: block;
	padding: .9688rem 1rem 1rem 3rem;
	cursor: pointer;
	color: #000;
}
ul.stepper .step-title:hover { background-color: #f2f2f2; }
ul.stepper .step.active .step-title { font-weight: 500; }
ul.stepper .step-new-content {
	position: relative;
	display: none;
	overflow: visible;
	margin-left: 41px;
	margin-right: 24px;
}
ul.stepper .step.active .step-new-content { display: block; }
ul.stepper li a { padding: 0; }

@media (max-width: 768px) {
	h2, .h2 { font-size: 1.2em; }
	h3, .h3 { font-size: 1.2em; }
	ul.stepper .step-new-content {
		margin-right: 0;
		margin-left: 31px;
	}
	.form-check {
		position: relative;
		display: block;
	}
	legend { font-size: 1rem; }
}

/* ===== Formularfelder: Beschriftung über dem Feld, Fehlerhinweise ===== */
.bni-bewerbung .form-label {
	font-weight: 500;
	margin-bottom: .25rem;
}
.bni-bewerbung .form-check-label a { text-decoration: underline; }
.bni-bewerbung .step-actions_1 {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1.5rem;
}
.bni-bewerbung .step-actions_1 .btn { margin: 0; }

/* Fehler rot (BNI-Rot), gültige Felder nicht grün einfärben */
.was-validated .form-control:invalid,
.was-validated .form-select:invalid {
	border-color: #cf2030;
	box-shadow: inset 0 0 0 1px #cf2030;
}
.was-validated .form-check-input:invalid { border-color: #cf2030; }
.was-validated .form-check-input:invalid ~ .form-check-label { color: #cf2030; }
.was-validated .form-control:valid,
.was-validated .form-select:valid {
	border-color: #c8c8c8;
	box-shadow: none;
	background-image: none;
	padding-right: .75rem;
}
.was-validated .form-check-input:valid { border-color: #64666a; }
.was-validated .form-check-input:valid:checked { background-color: #cf2030; border-color: #cf2030; }
.was-validated .form-check-input:valid ~ .form-check-label { color: inherit; }
.bni-bewerbung .invalid-feedback {
	color: #cf2030;
	font-size: .875rem;
}

/* Zusammenfassung in Schritt 7 */
#bewerbung-zusammenfassung table th {
	width: 35%;
	color: #64666a;
	font-weight: 500;
	background: transparent;
}

/* ===================== Gestaltung Bewerbungsformular (Stufe 2) ===================== */

/* Breite begrenzen, damit Zeilen nicht zu lang werden */
.bni-bewerbung {
	max-width: 860px;
	margin: 0 auto;
}

/* Karten: mehr Weißraum, leichter Schatten, runde Ecken */
.bni-bewerbung .card {
	border: 0;
	border-radius: .75rem;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .08);
	padding: 2rem;
	margin-top: 1rem;
}
@media (max-width: 576px) {
	.bni-bewerbung .card { padding: 1.25rem; }
}

/* Abschnittsüberschriften statt roter Balken: dunkel mit kurzer roter Linie */
.bni-bewerbung legend {
	float: none;
	width: 100%;
	background: none;
	color: #000;
	font-size: 1.2rem;
	font-weight: 700;
	padding: 0;
	margin: 1.75rem 0 1rem;
}
.bni-bewerbung legend:after {
	content: '';
	display: block;
	width: 60px;
	height: 3px;
	margin-top: .45rem;
	background: #cf2030;
}
.bni-bewerbung fieldset:first-of-type legend { margin-top: .5rem; }
.bni-bewerbung .card > h2 { padding-top: 0; }

/* Fortschrittsanzeige über dem Stepper */
.bni-fortschritt {
	margin: 1.5rem 0 .5rem;
}
.bni-fortschritt-text {
	font-weight: 500;
	color: #64666a;
	margin-bottom: .4rem;
}
.bni-fortschritt-balken {
	height: 6px;
	border-radius: 3px;
	background: #f2f2f2;
	overflow: hidden;
}
.bni-fortschritt-wert {
	height: 100%;
	width: 0;
	background: #cf2030;
	transition: width .3s ease;
}

/* Ergebnis erledigter Schritte im Titel */
ul.stepper .step-ergebnis {
	font-weight: 400;
	color: #64666a;
}
ul.stepper .step:not(.done) .step-ergebnis,
ul.stepper .step.active .step-ergebnis { display: none; }
ul.stepper .step-title {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Auswahlkacheln (Teilnahmedauer, Zahlungsart) */
.bni-kachel {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.25rem 1.25rem 1rem;
	border: 2px solid #c8c8c8;
	border-radius: .75rem;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}
.bni-kachel:hover { border-color: #64666a; }
.bni-kachel .form-check-input {
	position: absolute;
	top: 1rem;
	right: 1rem;
	margin: 0;
}
.bni-kachel:has(.form-check-input:checked) {
	border-color: #cf2030;
	box-shadow: 0 0 0 3px rgba(207, 32, 48, .12);
}
.bni-kachel:has(.form-check-input:focus-visible) { outline: 2px solid #cf2030; outline-offset: 2px; }
.bni-kachel-titel {
	font-size: 1.15rem;
	font-weight: 700;
	color: #000;
	padding-right: 2rem;
}
.bni-kachel-titel i { color: #cf2030; margin-right: .4rem; }
.bni-kachel-preis {
	font-size: 1.6rem;
	font-weight: 700;
	color: #cf2030;
	margin-top: .5rem;
	line-height: 1.2;
}
.bni-kachel-hinweis {
	font-size: .85rem;
	color: #64666a;
}
.bni-kachel-details {
	margin-top: .75rem;
	padding-top: .75rem;
	border-top: 1px solid #f2f2f2;
	font-size: .9rem;
	color: #64666a;
}
.was-validated .bni-kachel:has(.form-check-input:invalid) { border-color: #cf2030; }

/* „Wichtige Antworten“ als Liste mit Schaltern */
.bni-schalterliste .form-switch {
	padding: .75rem 0 .75rem 3.25rem;
	border-bottom: 1px solid #f2f2f2;
	margin: 0;
}
.bni-schalterliste .form-switch:last-child { border-bottom: 0; }
.bni-schalterliste .form-switch .form-check-input { margin-left: -3.25rem; }

/* Absende-Button während des Sendens */
.btn.bni-sendet {
	pointer-events: none;
	opacity: .8;
}

/* Danke-Seite */
.bni-danke {
	max-width: 760px;
	margin: 2rem auto;
}
.bni-danke .card {
	border: 0;
	border-radius: .75rem;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .08);
	padding: 2rem;
}
.bni-danke .lead { color: #64666a; }
.bni-naechste-schritte {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
	counter-reset: schritt;
}
.bni-naechste-schritte li {
	display: flex;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid #f2f2f2;
}
.bni-naechste-schritte li:last-child { border-bottom: 0; }
.bni-schritt-symbol {
	flex: 0 0 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: #cf2030;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}

/* MDB5-Auswahl mit Suche (class="select"): Fehler am sichtbaren Eingabefeld zeigen */
.was-validated .select-wrapper:has(select:invalid) .select-input { color: #cf2030; }
.was-validated .select-wrapper:has(select:invalid) .form-notch-leading,
.was-validated .select-wrapper:has(select:invalid) .form-notch-middle,
.was-validated .select-wrapper:has(select:invalid) .form-notch-trailing {
	border-color: #cf2030 !important;
}

/* MDB5 positioniert .invalid-feedback absolut – Hinweise hier im Textfluss unter dem Feld */
.bni-bewerbung .invalid-feedback.bni-hinweis {
	position: static;
	width: auto;
	margin-top: .25rem;
	line-height: 1.3;
}

/* Akkordeon-Pfeil: MDB5 positioniert .rotate-icon absolut (Seitennavigation) – hier direkt hinter dem Text */
.md-accordion .rotate-icon {
	position: static;
	margin-left: .5rem;
}

/* ===================== Kompaktere Bewerbungsformulare (Stufe 3) ===================== */

/* A1: weniger Abstand in Karten, Abschnitten und Schrittliste */
form.bni-bewerbung .card { padding: 1.25rem 1.5rem; margin-top: .5rem; }
@media (max-width: 576px) {
	form.bni-bewerbung .card { padding: 1rem; }
}
form.bni-bewerbung .card > h2 { font-size: 1.35rem; margin-bottom: .25rem; }
form.bni-bewerbung fieldset { margin: .5rem 0; }
form.bni-bewerbung legend { font-size: 1.05rem; margin: 1.1rem 0 .6rem; }
form.bni-bewerbung legend:after { width: 40px; height: 2px; margin-top: .3rem; }
form.bni-bewerbung fieldset:first-of-type legend { margin-top: .25rem; }
form.bni-bewerbung p { margin-bottom: .6rem; }
form.bni-bewerbung .row.g-3 { --bs-gutter-x: .75rem; --bs-gutter-y: .6rem; }
form.bni-bewerbung .step-actions_1 { margin-top: 1rem; }
form.bni-bewerbung .bni-fortschritt { margin: .75rem 0 .25rem; }
form.bni-bewerbung ul.stepper { margin: .5rem 0; }
form.bni-bewerbung ul.stepper > li:not(:last-of-type) { margin-bottom: .25rem; }
form.bni-bewerbung ul.stepper .step:not(:last-of-type).active { margin-bottom: 1rem; }
form.bni-bewerbung ul.stepper .step-title { padding: .6rem 1rem .6rem 3rem; }
form.bni-bewerbung ul.stepper .step:before { top: .45rem; }
form.bni-bewerbung ul.stepper > .step:not(:last-of-type):after { top: 2.5rem; height: calc(100% - 30px); }

/* A2: „Wichtige Antworten“ am Desktop zweispaltig */
form.bni-bewerbung .bni-schalterliste .form-switch { padding: .5rem 0 .5rem 3.25rem; }
@media (min-width: 768px) {
	form.bni-bewerbung .bni-schalterliste {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 1.5rem;
	}
	form.bni-bewerbung .bni-schalterliste .form-switch { border-bottom: 0; }
}

/* A3: flachere Auswahlkacheln */
form.bni-bewerbung .bni-kachel { padding: .85rem 1rem .75rem; }
form.bni-bewerbung .bni-kachel .form-check-input { top: .8rem; right: .8rem; }
form.bni-bewerbung .bni-kachel-titel { font-size: 1.05rem; }
form.bni-bewerbung .bni-kachel-preis { font-size: 1.3rem; margin-top: .25rem; }
form.bni-bewerbung .bni-kachel-details { margin-top: .5rem; padding-top: .5rem; font-size: .85rem; }

/* A4: Zusammenfassung gut lesbar – einspaltig, kräftiger Kontrast, Zeilen abwechselnd hinterlegt */
form.bni-bewerbung #bewerbung-zusammenfassung table {
	width: 100%;
	margin: .25rem 0 0;
	border: 1px solid #c8c8c8;
	border-radius: .5rem;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	font-size: 1rem;
}
form.bni-bewerbung #bewerbung-zusammenfassung th,
form.bni-bewerbung #bewerbung-zusammenfassung td {
	padding: .55rem .9rem;
	border: 0;
	vertical-align: top;
	color: #000;
	background: transparent;
}
form.bni-bewerbung #bewerbung-zusammenfassung th {
	width: 34%;
	font-weight: 700;
	color: #64666a;
}
form.bni-bewerbung #bewerbung-zusammenfassung td { overflow-wrap: anywhere; }
form.bni-bewerbung #bewerbung-zusammenfassung tr:nth-child(odd) th,
form.bni-bewerbung #bewerbung-zusammenfassung tr:nth-child(odd) td { background: #f2f2f2; }
@media (max-width: 576px) {
	form.bni-bewerbung #bewerbung-zusammenfassung th,
	form.bni-bewerbung #bewerbung-zusammenfassung td { display: block; width: 100%; }
	form.bni-bewerbung #bewerbung-zusammenfassung th { padding-bottom: 0; }
	form.bni-bewerbung #bewerbung-zusammenfassung td { padding-top: .1rem; }
}

/* B6/B7: aufklappbare Abschnitte (Voraussetzungen, Fördertext, Vertragspartner) */
form.bni-bewerbung details.bni-aufklapp > summary,
form.bni-bewerbung details.bni-aufklapp-klein > summary {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	cursor: pointer;
	list-style: none;
	color: #cf2030;
	font-weight: 500;
}
form.bni-bewerbung details.bni-aufklapp-klein > summary { font-size: .85rem; }
form.bni-bewerbung details > summary::-webkit-details-marker { display: none; }
form.bni-bewerbung details > summary:after {
	content: '\f107';
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	transition: transform .2s;
}
form.bni-bewerbung details[open] > summary:after { transform: rotate(180deg); }
form.bni-bewerbung details.bni-aufklapp ol { margin: .5rem 0 0; }

/* C10: Beschriftung im Feld – rutscht bei Eingabe/Fokus nach oben (ohne Script, Texte bleiben per Template änderbar) */
form.bni-bewerbung .bni-schwebe { position: relative; }
form.bni-bewerbung .bni-schwebe > .form-control {
	min-height: 3.1rem;
	padding: 1.35rem .75rem .35rem;
}
form.bni-bewerbung .bni-schwebe > .form-control::placeholder { color: transparent; }
form.bni-bewerbung .bni-schwebe > .form-label {
	position: absolute;
	top: 0;
	left: .75rem;
	right: .75rem;
	margin: 0;
	padding-top: .85rem;
	font-weight: 400;
	color: #64666a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	pointer-events: none;
	transform-origin: 0 0;
	transition: transform .15s ease, color .15s ease;
}
form.bni-bewerbung .bni-schwebe > .form-control:focus ~ .form-label,
form.bni-bewerbung .bni-schwebe > .form-control:not(:placeholder-shown) ~ .form-label,
form.bni-bewerbung .bni-schwebe > .form-control[type="date"] ~ .form-label {
	transform: translateY(-.55rem) scale(.78);
}
form.bni-bewerbung .bni-schwebe > .form-control:focus ~ .form-label { color: #cf2030; }
.was-validated .bni-schwebe > .form-control:invalid ~ .form-label { color: #cf2030; }

/* Vom Template ausgeblendete Felder (z. B. Geburtsdatum/Umsatzsteuer-ID bei „Fragen“): leere Spalte entfernen, Nachbarfeld volle Breite */
form.bni-bewerbung .row > [class*="col-"]:has(> .bni-schwebe > .form-control[style*="display: none"]) { display: none; }
form.bni-bewerbung .row > [class*="col-"]:has(> .bni-schwebe > #field-gebdatum[style*="display: none"]) + [class*="col-"],
form.bni-bewerbung .row > [class*="col-"]:has(+ [class*="col-"] > .bni-schwebe > #field-uid[style*="display: none"]) {
	flex: 0 0 100%;
	max-width: 100%;
}
