/* Anfrageformular und neue Abschnitte */
.contact-box{padding:28px}
.f-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:560px){
  .f-grid{grid-template-columns:1fr 1fr}
  .f-grid .field{grid-column:1 / -1}
  .f-grid .field:nth-child(1),.f-grid .field:nth-child(2){grid-column:auto}
}
.field{min-width:0}
.f-label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px;color:var(--ink)}
.f-label .req,.f-check .req{color:#B42318}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=url],.field input[type=number],.field select,.field textarea{
  width:100%;font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:8px;min-height:46px;color:var(--ink);background:#fff}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--sky);outline-offset:1px;border-color:var(--sky)}
.f-group{border:0;padding:0;margin:0;display:grid;gap:8px}
.f-group legend{padding:0;margin-bottom:8px}
.f-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;cursor:pointer;font-size:.95rem;background:#fff}
.f-choice:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:var(--mist)}
.f-choice input{accent-color:var(--blue);width:18px;height:18px;margin:0;flex:none}
.f-check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;cursor:pointer}
.f-check input{accent-color:var(--blue);width:18px;height:18px;margin:3px 0 0;flex:none}
.field-file input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.f-filebtn{display:inline-block;font-weight:600;color:var(--blue);border:1px dashed var(--blue);border-radius:8px;padding:12px 18px;cursor:pointer;background:#fff;width:100%;text-align:center}
.field-file:focus-within .f-filebtn{outline:2px solid var(--sky);outline-offset:2px}
.f-files{list-style:none;margin:8px 0 0;padding:0;font-size:.88rem;color:var(--muted)}
.f-files li::before{content:"✓ ";color:var(--blue);font-weight:700}
.f-hint{font-size:.82rem;color:var(--muted);margin:6px 0 0}
.f-error{font-size:.85rem;color:#B42318;margin:6px 0 0;min-height:0}
.f-error:empty{display:none}
.has-error input,.has-error textarea,.has-error select,.has-error .f-filebtn{border-color:#B42318}
.f-form-error{margin:16px 0 0}
.f-submit{width:100%;margin-top:20px;font-size:1.02rem;padding:15px 22px}
.f-submit[disabled]{opacity:.7;cursor:wait}
.f-note{margin:12px 0 0}
.f-success{padding:8px 0;outline:none}
.f-success h3{font-size:1.3rem;margin-bottom:10px;color:var(--blue)}
.f-success .btn{margin-top:14px;width:100%}
.f-skeleton{display:grid;gap:14px}
.f-skeleton span{display:block;height:46px;border-radius:8px;background:linear-gradient(90deg,var(--mist),#f7f9fc,var(--mist));background-size:200% 100%;animation:sbpShimmer 1.4s infinite}
.f-skeleton .tall{height:110px}
@keyframes sbpShimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.f-skeleton span{animation:none}}
.packages{display:grid;gap:10px;margin:22px 0 18px}
.package{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.package-rec{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.package-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px}
.package-head span{font-weight:700;color:var(--blue);white-space:nowrap}
.package p{margin:0;color:var(--muted);font-size:.92rem}
.contact-tel{display:block;text-align:center;margin:4px 0 0}
.deadline-cta{display:block;width:100%;margin-top:12px}
