/* LION Smart BaaS Projektdatenabfrage. Alle Regeln sind auf .lsf begrenzt. */
.lsf{
  --red:#C3141A;
  --slate:#4E5462;
  --ink:#262A33;
  --muted:#6B7180;
  --mist:#F1F2F4;
  --line:#D9DCE1;
  --ok:#12A23C;
  max-width:880px;
  margin:0 auto;
  color:var(--ink);
  font-size:17px;
  line-height:1.55;
}
.lsf *,.lsf *::before,.lsf *::after{box-sizing:border-box}
.lsf [hidden]{display:none!important}
.lsf a{color:var(--red)}
.lsf p{margin:0}

/* Fortschritt */
.lsf .lsf-progress{list-style:none;margin:0 0 32px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:none}
.lsf .lsf-progress li{position:relative;padding-top:14px;border-top:3px solid var(--line);color:var(--muted);font-size:.9rem;display:flex;gap:8px;align-items:baseline;margin:0}
.lsf .lsf-progress li+li{margin-left:6px}
.lsf .lsf-progress li.is-done{border-top-color:var(--slate);color:var(--slate)}
.lsf .lsf-progress li.is-current{border-top-color:var(--red);color:var(--ink);font-weight:650}
.lsf .lsf-progress-num{font-weight:700}
@media (max-width:560px){.lsf .lsf-progress-label{display:none}.lsf .lsf-progress li.is-current .lsf-progress-label{display:inline}}

.lsf .lsf-intro{color:var(--slate);margin-bottom:28px;max-width:62ch}
.lsf .lsf-req{color:var(--red)}

/* Schritte */
.lsf .lsf-step{border:0;margin:0 0 48px;padding:0;min-width:0}
.lsf .lsf-step legend{font-size:clamp(1.35rem,2.6vw,1.8rem);font-weight:740;line-height:1.2;padding:0;margin:0 0 24px;color:var(--ink);display:flex;gap:12px;align-items:baseline}
.lsf .lsf-step-num{color:var(--red)}
.lsf.is-enhanced .lsf-intro{margin-bottom:28px}
.lsf.is-enhanced .lsf-step{display:none;margin-bottom:0}
.lsf.is-enhanced .lsf-step.is-active{display:block}

/* Felder */
.lsf .lsf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.lsf .lsf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.lsf .lsf-full{grid-column:1/-1}
@media (max-width:640px){.lsf .lsf-grid{grid-template-columns:1fr}}
.lsf label{font-weight:600;font-size:.95rem;line-height:1.35;color:var(--ink);margin:0}
.lsf input[type=text],.lsf input[type=email],.lsf input[type=tel],.lsf input[type=date],.lsf select,.lsf textarea{
  width:100%!important;max-width:none!important;margin:0!important;padding:12px 14px!important;
  height:auto!important;min-height:48px!important;
  font:inherit;font-size:1rem!important;line-height:1.4!important;font-weight:400!important;
  color:var(--ink)!important;-webkit-text-fill-color:var(--ink);opacity:1!important;
  background-color:#fff!important;border:1px solid #B9BEC7!important;border-radius:4px!important;box-shadow:none!important;
  transition:border-color .15s, box-shadow .15s;
}
.lsf textarea{resize:vertical;min-height:96px!important}
.lsf select{appearance:none;-webkit-appearance:none;padding-right:42px!important;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C3141A' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat!important;background-position:right 16px center!important}
.lsf input:hover,.lsf select:hover,.lsf textarea:hover{border-color:var(--slate)!important}
.lsf input:focus,.lsf select:focus,.lsf textarea:focus{outline:none;border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(195,20,26,.22)!important;background-color:#fff!important}
.lsf ::placeholder{color:#8A909C!important;-webkit-text-fill-color:#8A909C;opacity:1!important}
.lsf .lsf-unit-wrap{display:flex!important;align-items:stretch!important;margin:0!important}
.lsf .lsf-unit-wrap input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;min-width:0;flex:1 1 auto}
.lsf .lsf-unit{display:flex;align-items:center;margin:0;line-height:1;box-sizing:border-box;padding:0 14px;background:var(--mist);border:1px solid #B9BEC7;border-left:0;border-radius:0 4px 4px 0;color:var(--slate);font-size:.9rem;white-space:nowrap}
.lsf .lsf-help{font-size:.86rem;color:var(--muted);line-height:1.4}
.lsf .lsf-field-error{font-size:.88rem;color:var(--red);font-weight:600}
.lsf .is-invalid input,.lsf .is-invalid select,.lsf .is-invalid textarea,.lsf .is-invalid .lsf-unit{border-color:var(--red)!important}

/* Auswahlfelder als Umschalter */
.lsf .lsf-group-label{display:block;font-weight:600;font-size:.95rem;line-height:1.35;color:var(--ink)}
.lsf .lsf-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid #B9BEC7;border-radius:4px;background:#fff;min-height:48px}
.lsf .lsf-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.lsf .lsf-seg label{display:flex!important;align-items:center;justify-content:center;margin:0!important;padding:8px 10px!important;border-radius:3px;cursor:pointer;font-weight:600;font-size:1rem;color:var(--slate)!important;background:transparent!important;transition:background-color .15s,color .15s}
.lsf .lsf-seg label:hover{background:var(--mist)!important;color:var(--ink)!important}
.lsf .lsf-seg input:checked+label{background:var(--ink)!important;color:#fff!important}
.lsf .lsf-seg input:focus-visible+label{outline:3px solid var(--red);outline-offset:2px}
.lsf .is-invalid .lsf-seg{border-color:var(--red)}

/* Nur für Screenreader */
.lsf .lsf-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Bedingte Felder */
.lsf [data-show-if].is-hidden{display:none}

/* Einwilligung */
.lsf .lsf-consent{margin-top:28px;padding:18px 20px;background:var(--mist);border-radius:6px}
.lsf .lsf-check{display:grid;grid-template-columns:22px 1fr;gap:12px;font-weight:400;font-size:.95rem;cursor:pointer}
.lsf .lsf-check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--red)}
.lsf .lsf-consent .lsf-field-error{margin:8px 0 0 34px}

/* Navigation und Buttons */
.lsf .lsf-privacy{flex:1 1 260px;align-self:center;margin:0;font-size:.88rem;line-height:1.5;color:var(--muted)}
.lsf .lsf-privacy a{color:var(--ink)!important;text-decoration:underline}
.lsf .lsf-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.lsf .lsf-nav .lsf-btn-primary{margin-left:auto}
.lsf .lsf-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 28px;border-radius:4px;font:inherit;font-weight:650;font-size:1rem;line-height:1.2;text-decoration:none!important;border:2px solid transparent;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;box-shadow:none;text-transform:none;letter-spacing:normal}
.lsf .lsf-btn-primary{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}
.lsf .lsf-btn-primary:hover,.lsf .lsf-btn-primary:focus-visible{background:#fff!important;border-color:var(--red)!important;color:var(--red)!important}
.lsf .lsf-btn-ghost{background:#fff!important;border-color:var(--ink)!important;color:var(--ink)!important}
.lsf .lsf-btn-ghost:hover,.lsf .lsf-btn-ghost:focus-visible{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}
.lsf .lsf-btn:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.lsf .lsf-btn[disabled]{opacity:.6;cursor:wait}
@media (max-width:480px){.lsf .lsf-nav .lsf-btn{flex:1}}

/* Meldungen */
.lsf .lsf-error{margin-bottom:24px;padding:16px 20px;border-left:4px solid var(--red);background:#FCECEC;color:var(--ink)}
.lsf .lsf-done{padding:32px clamp(20px,4vw,40px);border-left:4px solid var(--ok);background:var(--mist)}
.lsf .lsf-done h2{margin:0 0 10px;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.25;color:var(--ink)}
.lsf .lsf-done p{color:var(--slate)}
.lsf .lsf-done:focus,.lsf .lsf-error:focus{outline:none}

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

@media (prefers-reduced-motion:reduce){.lsf *{transition:none!important}}
