/* FORM PAGE */
  .form-page-wrap{ max-width:720px; margin:0 auto; }
  .contact-grid{ display:grid; grid-template-columns:1fr .62fr; gap:44px; align-items:start; max-width:1000px; margin:0 auto; }
  @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-side{
    background:var(--tint-2); border:1px solid var(--border); border-radius:20px;
    padding:30px 28px; margin-top:0;
  }
  .contact-side h3{ font-size:1.05rem; margin-bottom:10px; }
  .contact-side p{ color:var(--ink-soft); font-size:.94rem; margin:0 0 18px; }
  .contact-side a.email-link{
    display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--brand);
    text-decoration:none; word-break:break-all;
  }
  .contact-side .ico{
    width:38px; height:38px; border-radius:10px; background:var(--tint); color:var(--brand);
    display:flex; align-items:center; justify-content:center; flex:none; font-size:1.1rem;
  }
  .form-head{ text-align:center; margin-bottom:10px; }
  .form-price-line{ text-align:center; color:var(--ink-soft); margin-bottom:6px; font-size:1.02rem; }
  .form-price-line b{ color:var(--brand); font-family:'Bricolage Grotesque'; }
  .form-price-note{ text-align:center; color:var(--ink-soft); font-size:.9rem; margin-bottom:40px; }

  .request-form{
    background:#fff; border:1px solid var(--border); border-radius:24px;
    padding:40px 40px 36px; box-shadow:var(--shadow-sm);
    position:relative; overflow:hidden;
  }
  .request-form::before{
    content:""; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg, var(--brand), var(--pink));
  }
  @media (max-width:560px){ .request-form{ padding:28px 22px 26px; } }

  fieldset{ border:none; padding:0; margin:0 0 28px; }
  fieldset{ margin:0 0 34px; }
  fieldset legend{
    display:flex; align-items:center; gap:10px;
    font-family:'Bricolage Grotesque'; font-weight:700; color:var(--brand-darker);
    font-size:1.02rem; padding:0 0 14px; margin-bottom:18px; border-bottom:1px solid var(--border); width:100%;
  }
  fieldset legend .step{
    display:flex; align-items:center; justify-content:center; flex:none;
    width:26px; height:26px; border-radius:8px;
    background:var(--tint); color:var(--brand); border:1px solid var(--border);
    font-size:.8rem; font-weight:800;
  }
  .field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
  @media (max-width:640px){ .field-grid{ grid-template-columns:1fr; } }
  .field{ display:flex; flex-direction:column; gap:6px; }
  .field.full{ grid-column:1/-1; }
  label{ font-size:.86rem; font-weight:600; color:var(--brand-darker); }
  label .opt{ font-weight:500; color:var(--ink-soft); }
  input[type=text], input[type=email], input[type=date], select, textarea{
    font: inherit;
    padding:12px 14px;
    border-radius:11px;
    border:1.5px solid var(--border);
    background:var(--tint-2);
    color:var(--ink);
    width:100%;
    transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  }
  input:focus, select:focus, textarea:focus{
    outline:none; border-color:var(--brand); background:#fff;
    box-shadow:0 0 0 3px rgba(63,79,110,.12);
  }
  textarea{ resize:vertical; min-height:100px; }
  select{ appearance:none; -webkit-appearance:none; background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="9"><path d="M1 1l6 6 6-6" stroke="%235c6577" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>'); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }

  /* Mobile: Formular kompakter, weniger Leerraum pro Feld/Abschnitt.
     Schriftgröße bleibt bei 16px (siehe body-Regel oben), damit iOS beim
     Fokussieren eines Feldes nicht automatisch reinzoomt. */
  @media (max-width:640px){
    fieldset{ margin:0 0 22px; }
    fieldset legend{ padding:0 0 10px; margin-bottom:12px; font-size:.96rem; }
    fieldset legend .step{ width:22px; height:22px; }
    .field-grid{ gap:12px 14px; }
    .field{ gap:4px; }
    label{ font-size:.82rem; }
    input[type=text], input[type=email], input[type=date], select, textarea{
      padding:9px 12px;
    }
    textarea{ min-height:76px; }
    .radio-row{ gap:8px; }
    .radio-option{ padding:12px 14px; }
  }

  .radio-row{ display:grid; gap:10px; }
  .radio-option{
    display:flex; align-items:flex-start; gap:12px; padding:15px 17px;
    border:1.5px solid var(--border); border-radius:13px; cursor:pointer; background:var(--tint-2);
    transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  }
  .radio-option:hover{ border-color:var(--brand-soft); }
  .radio-option{ transition:border-color .15s ease, background .15s ease, transform .1s ease; cursor:pointer; }
  .radio-option:active{ transform:scale(.985); }
  .radio-option:has(input:checked){ border-color:var(--brand); background:var(--tint); box-shadow:0 0 0 3px rgba(63,79,110,.08); }
  .radio-option input{ margin-top:3px; accent-color:var(--brand); flex:none; width:17px; height:17px; }
  .radio-option div strong{ display:block; font-size:.93rem; color:var(--brand-darker); }
  .radio-option div span{ font-size:.82rem; color:var(--ink-soft); }

  .form-footnote{ font-size:.82rem; color:var(--ink-soft); margin-top:6px; }
  .honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

  .form-status{
    display:none; margin-top:20px; padding:14px 16px; border-radius:12px; font-size:.92rem; font-weight:600;
  }
  .form-status.show{ display:block; }
  .form-status.success{ background:rgba(31,174,110,.12); color:#146b45; border:1px solid rgba(31,174,110,.3); }
  .form-status.error{ background:rgba(214,69,69,.1); color:var(--danger); border:1px solid rgba(214,69,69,.3); }
