.so-kc{
  /* Aus Elementor/Theme übernommen (u.a. Buttons):
     primary button: #00787D, hover: #CC4C36, light text: #E8E8E8 */
  --so-bg:#ffffff;
  --so-text:#1a1a1a;
  --so-muted:#5d6570;
  --so-border:#d9dde3;
  --so-primary:#00787D;
  --so-primary-hover:#CC4C36;
  --so-primary-contrast:#E8E8E8;
  --so-accent:#CC4C36;
  --so-focus:#00787D;
  max-width:760px;
  margin:24px auto;
  font-family:Inter,Arial,sans-serif;
  color:var(--so-text);
}
.so-kc-card{
  border:1px solid var(--so-border);
  border-radius:14px;
  padding:22px;
  background:var(--so-bg);
  box-shadow:0 8px 30px rgba(21,28,40,.06);
}
.so-kc h2{margin:0 0 8px;color:var(--so-primary)}
.so-kc .muted{color:var(--so-muted)!important;font-size:14px}
.so-kc-progress{height:8px;background:#eef1f5;border-radius:999px;overflow:hidden;margin:16px 0}
#so-kc-progress-bar{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--so-primary),var(--so-primary-hover));transition:width .2s}
.step{display:none}
.step.active{display:block}
.step label{display:block;margin:10px 0 6px;font-weight:600;color:var(--so-text)}
.step input[type=text],.step input[type=email],.step input[type=date],.step select{
  width:100%;padding:11px 12px;border:1px solid var(--so-border);border-radius:10px;background:#fff;color:var(--so-text)
}
.so-kc-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
/* Checkbox-Zeilen im CI-Look */
.step label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;font-weight:600;color:var(--so-text);margin:8px 0}
.step input[type=checkbox]{width:18px;height:18px;accent-color:var(--so-primary)}
.so-kc-consent-label{align-items:flex-start}
.so-kc-consent-label input[type=checkbox]{margin-top:.2em;flex:0 0 auto}
.so-kc-consent-label span{display:block;line-height:1.45}
.so-kc-consent-label a{display:inline}
.step input:focus,.step select:focus{outline:2px solid color-mix(in srgb, var(--so-focus) 45%, transparent);border-color:var(--so-focus)}
.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.actions button{padding:10px 14px;border-radius:10px;border:1px solid var(--so-border);background:#fff;cursor:pointer;font-weight:600;color:var(--so-text)}
#so-kc-prev{border-color:var(--so-border);color:var(--so-text);background:#fff}
#so-kc-prev:hover{border-color:var(--so-primary);color:var(--so-primary)}
#so-kc-next,
button.so-kc-request-btn,
.so-kc-request-btn{border-color:var(--so-primary)!important;color:var(--so-primary)!important;background:#fff!important}
#so-kc-next:hover,
button.so-kc-request-btn:hover,
.so-kc-request-btn:hover,
button.so-kc-request-btn:focus,
.so-kc-request-btn:focus{background:var(--so-primary)!important;color:var(--so-primary-contrast)!important;border-color:var(--so-primary)!important}
#so-kc-submit{background:var(--so-primary);border-color:var(--so-primary);color:var(--so-primary-contrast)}
#so-kc-submit:hover{background:var(--so-primary-hover);border-color:var(--so-primary-hover);filter:none}
button.so-kc-request-btn,
.so-kc-request-btn{
  border-radius:10px;
  padding:10px 14px;
  font-weight:600;
  cursor:pointer;
}
button.so-kc-request-btn:disabled,
.so-kc-request-btn:disabled{
  opacity:.7;
  cursor:not-allowed;
}
.so-kc-result{margin-top:16px;border-top:1px solid #edf0f4;padding-top:14px}
.so-kc-traffic{display:inline-flex;gap:10px;align-items:center;background:#1f2329;padding:10px 14px;border-radius:999px;margin-bottom:12px}
.so-kc-traffic .light{width:18px;height:18px;border-radius:50%;opacity:.18;filter:saturate(.65);transition:all .2s}
.so-kc-traffic .light-red{background:#e53935}
.so-kc-traffic .light-yellow{background:#ffca28}
.so-kc-traffic .light-green{background:#43a047}
.so-kc-traffic .light.on{opacity:1;filter:saturate(1.2);box-shadow:0 0 0 2px rgba(255,255,255,.12),0 0 18px currentColor,0 0 28px currentColor}
.so-kc-nextstep{margin-top:10px}
.so-kc-nextstep-link{display:inline-block;padding:8px 12px;border:1px solid var(--so-primary);border-radius:10px;text-decoration:none;color:var(--so-primary);font-weight:600}
.so-kc-nextstep-link:hover{background:var(--so-primary);color:var(--so-primary-contrast)}
@media (max-width:640px){
  .so-kc-card{padding:16px}
  .actions button{width:100%}
}
