/* Krienke Formulare (passt zum Krienke-Design: dunkel/grau, Poppins + Open Sans) */
.kb-wrap{--kb-dark:#141414;--kb-grey:#9d9d9c;--kb-line:#d9d9d9;--kb-text:#333;--kb-muted:#777;--kb-err:#c62828;max-width:100%;margin:0 auto;color:var(--kb-text)}
.kb-wrap *{box-sizing:border-box}
.kb-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Schrittanzeige */
.kb-steps{display:flex;gap:0;margin:0 0 28px!important;padding:0!important;list-style:none!important;border-bottom:1px solid var(--kb-line)}
.kb-step-label{flex:1;display:flex;align-items:center;gap:10px;margin:0!important;padding:0 0 14px!important;font:600 14px/1.2 Poppins,sans-serif;color:var(--kb-muted);letter-spacing:.3px;border-bottom:2px solid transparent;margin-bottom:-1px!important;list-style:none!important}
.kb-step-label:before{display:none!important}
.kb-step-no{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--kb-line);font-size:13px;color:var(--kb-muted);background:#fff;flex:none}
.kb-step-label.is-active{color:var(--kb-dark);border-bottom-color:var(--kb-dark)}
.kb-step-label.is-active .kb-step-no{background:var(--kb-dark);border-color:var(--kb-dark);color:#fff}
.kb-step-label.is-done .kb-step-no{background:var(--kb-grey);border-color:var(--kb-grey);color:#fff}

/* Raster */
.kb-step{border:0!important;margin:0!important;padding:0!important;min-width:0}
.kb-grid{display:flex;flex-wrap:wrap;gap:18px 20px}
.kb-field{flex:1 1 100%;min-width:0}
.kb-w-half{flex:1 1 calc(50% - 10px)}
.kb-w-third{flex:1 1 calc(33.333% - 14px)}
.kb-w-twothirds{flex:1 1 calc(66.666% - 7px)}
.kb-field[hidden]{display:none!important}

/* Felder */
.kb-field label{display:block;margin:0 0 6px;font:600 13px/1.3 'Open Sans',sans-serif;color:var(--kb-dark);letter-spacing:.2px}
.kb-req{color:var(--kb-err);font-weight:600}
.kb-field input[type=text],.kb-field input[type=email],.kb-field input[type=tel],.kb-field input[type=number],.kb-field input[type=date],.kb-field select,.kb-field textarea{
	display:block;width:100%!important;max-width:100%;margin:0!important;padding:12px 14px!important;border:1px solid var(--kb-line)!important;border-radius:0!important;background:#fff!important;
	font:400 15px/1.4 'Open Sans',sans-serif!important;color:var(--kb-dark)!important;box-shadow:none!important;transition:border-color .15s;-webkit-appearance:none;appearance:none;height:auto!important}
.kb-field select{padding-right:38px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23141414' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center!important;cursor:pointer}
.kb-field textarea{resize:vertical;min-height:110px}
.kb-field input[type=date]{min-height:47px}
.kb-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.kb-help{display:block;margin-top:6px;font:400 12.5px/1.45 'Open Sans',sans-serif;color:var(--kb-muted)}
.kb-field input:focus,.kb-field select:focus,.kb-field textarea:focus{outline:none!important;border-color:var(--kb-dark)!important}
.kb-field input[type=number]::-webkit-inner-spin-button{opacity:.4}
.kb-field.has-error input,.kb-field.has-error select,.kb-field.has-error textarea{border-color:var(--kb-err)!important}
.kb-error{display:block;min-height:0;margin-top:5px;font:400 12.5px/1.3 'Open Sans',sans-serif;color:var(--kb-err)}
.kb-error:empty{display:none}

/* Datei-Upload */
.kb-file{position:relative;display:flex;align-items:center;gap:14px;padding:14px;border:1px dashed var(--kb-line);background:#fff;cursor:pointer}
.kb-file:hover,.kb-file:focus-within{border-color:var(--kb-dark)}
.kb-file input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}
.kb-file-btn{flex:none;padding:10px 16px;background:var(--kb-dark);color:#fff;font:600 12px/1 Poppins,sans-serif;letter-spacing:1px;text-transform:uppercase}
.kb-file-names{min-width:0;font:400 13.5px/1.4 'Open Sans',sans-serif;color:var(--kb-muted);overflow-wrap:anywhere}
.kb-field.has-error .kb-file{border-color:var(--kb-err)}

/* Checkbox Datenschutz */
.kb-check{display:flex!important;gap:12px;align-items:flex-start;font:400 14px/1.55 'Open Sans',sans-serif!important;color:var(--kb-text)!important;cursor:pointer}
.kb-check input{flex:none;width:18px;height:18px;margin:2px 0 0!important;accent-color:var(--kb-dark);cursor:pointer}
.kb-check a{color:var(--kb-dark);text-decoration:underline}

/* Buttons */
.kb-actions{display:flex;justify-content:space-between;gap:14px;margin-top:30px}
.kb-actions .kb-next,.kb-actions .kb-submit{margin-left:auto}
.kb-btn{display:inline-block;padding:17px 30px!important;border:1px solid var(--kb-dark)!important;border-radius:0!important;background:var(--kb-dark)!important;color:#fff!important;font:600 13px/1 Poppins,sans-serif!important;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s;box-shadow:none!important}
.kb-btn:hover,.kb-btn:focus-visible{background:var(--kb-grey)!important;border-color:var(--kb-grey)!important;color:#fff!important}
.kb-btn-ghost{background:transparent!important;color:var(--kb-dark)!important}
.kb-btn-ghost:hover{background:var(--kb-dark)!important;border-color:var(--kb-dark)!important;color:#fff!important}
.kb-btn[disabled]{opacity:.6;cursor:wait}
.kb-btn.is-loading:after{content:'';display:inline-block;width:12px;height:12px;margin-left:10px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:kbspin .8s linear infinite}
@keyframes kbspin{to{transform:rotate(360deg)}}

.kb-hint{margin:18px 0 0!important;font:400 12.5px 'Open Sans',sans-serif;color:var(--kb-muted)}
.kb-message{margin-top:14px;font:400 14px/1.5 'Open Sans',sans-serif}
.kb-message.is-error{padding:12px 14px;border-left:3px solid var(--kb-err);background:#fdecea;color:var(--kb-err)}

/* Honeypot */
.kb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Erfolg */
.kb-success{text-align:center;padding:40px 10px}
.kb-success-icon{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:var(--kb-dark);color:#fff;font:600 26px/56px Poppins,sans-serif}
.kb-success h3{margin:0 0 10px!important;font:600 24px/1.3 Poppins,sans-serif!important;color:var(--kb-dark)!important}
.kb-success p{margin:0 auto 8px!important;max-width:520px;font:400 15px/1.6 'Open Sans',sans-serif}
.kb-success-sub{color:var(--kb-muted)}

@media (max-width:640px){
	.kb-w-half,.kb-w-third,.kb-w-twothirds{flex:1 1 100%}
	.kb-w-third.kb-type-select{flex:1 1 calc(50% - 10px)}
	.kb-step-label{font-size:12.5px;gap:8px}
	.kb-steps-3 .kb-step-label:not(.is-active) .kb-step-title,.kb-steps-4 .kb-step-label:not(.is-active) .kb-step-title{display:none}
	.kb-steps-3 .kb-step-label,.kb-steps-4 .kb-step-label{flex:0 0 auto;padding-right:14px!important}
	.kb-steps-3 .kb-step-label.is-active,.kb-steps-4 .kb-step-label.is-active{flex:1 1 auto}
	.kb-file{flex-direction:column;align-items:flex-start}
	.kb-actions{flex-direction:column-reverse}
	.kb-btn{width:100%;text-align:center}
	.kb-actions .kb-next,.kb-actions .kb-submit{margin-left:0}
}

/* ---------- Einstufig (Kontakt) ---------- */
.kb-single .kb-actions{justify-content:flex-start;margin-top:22px}
.kb-single .kb-actions .kb-submit{margin-left:0}

/* ---------- Dunkles Design (Kontaktbereich Startseite) ---------- */
.kb-theme-dark{--kb-dark:#fff;--kb-line:#c1c0c0;--kb-text:#c1c0c0;--kb-muted:#9d9d9c;--kb-err:#ff8a80}
.kb-theme-dark .kb-grid{gap:22px 20px}
.kb-theme-dark .kb-field input[type=text],.kb-theme-dark .kb-field input[type=email],.kb-theme-dark .kb-field input[type=tel],.kb-theme-dark .kb-field textarea{
	background:transparent!important;border:0!important;border-bottom:1px solid var(--kb-line)!important;padding:10px 8px!important;color:#fff!important;font-size:14px!important}
.kb-theme-dark .kb-field textarea{min-height:120px}
.kb-theme-dark .kb-field input::placeholder,.kb-theme-dark .kb-field textarea::placeholder{color:#c1c0c0;opacity:1}
.kb-theme-dark .kb-field input:focus,.kb-theme-dark .kb-field textarea:focus{border-bottom-color:#fff!important}
.kb-theme-dark .kb-field.has-error input,.kb-theme-dark .kb-field.has-error textarea{border-bottom-color:var(--kb-err)!important}
.kb-theme-dark .kb-field input:-webkit-autofill{-webkit-text-fill-color:#fff;-webkit-box-shadow:0 0 0 40px #101010 inset!important;transition:background-color 9999s}
.kb-theme-dark .kb-check{color:#fff!important;font-size:13px!important}
.kb-theme-dark .kb-check a{color:#fff}
.kb-theme-dark .kb-check input{accent-color:#fff}
.kb-theme-dark .kb-btn{background:#222323!important;border-color:#222323!important;color:#fff!important}
.kb-theme-dark .kb-btn:hover,.kb-theme-dark .kb-btn:focus-visible{background:#fff!important;border-color:#fff!important;color:#141414!important}
.kb-theme-dark .kb-btn.is-loading:after{border-color:rgba(20,20,20,.4);border-top-color:#141414}
.kb-theme-dark .kb-hint{color:#9d9d9c}
.kb-theme-dark .kb-message.is-error{background:rgba(255,138,128,.1);color:var(--kb-err)}
.kb-theme-dark .kb-success{padding:30px 0;text-align:left}
.kb-theme-dark .kb-success-icon{margin:0 0 16px;background:#fff;color:#141414}
.kb-theme-dark .kb-success h3{color:#fff!important}
.kb-theme-dark .kb-success p{margin-left:0!important;color:#c1c0c0}
@media (max-width:640px){
	.kb-single .kb-actions{flex-direction:column}
}
