/* ---------- PARTNER-FORMULAR MODAL ---------- */
.form-modal{
  position:fixed; inset:0; z-index:100;
  display:none; align-items:center; justify-content:center;
  padding:20px;
}
.form-modal.open{display:flex;}
.form-modal-backdrop{
  position:absolute; inset:0;
  background:rgba(16,22,15,0.72);
}
.form-modal-card{
  position:relative; z-index:1;
  background:var(--cream); color:var(--ink);
  border-radius:var(--radius);
  width:100%; max-width:560px;
  max-height:90vh; overflow-y:auto;
  padding:40px 36px;
}
@media (max-width:600px){
  .form-modal-card{padding:30px 22px;}
}
.form-modal-close{
  position:absolute; top:18px; right:18px;
  background:none; border:none; font-size:26px; line-height:1;
  color:#6b7a6d; cursor:pointer; padding:4px;
}
.form-modal-close:hover{color:var(--ink);}

/* ---------- PROGRESS ---------- */
.form-progress{margin-bottom:28px;}
.form-progress-label{
  font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--green);
  letter-spacing:.06em; text-transform:uppercase;
}
.form-progress-bar{
  margin-top:10px; height:4px; border-radius:4px;
  background:rgba(8,90,48,0.15); overflow:hidden;
}
.form-progress-fill{
  height:100%; background:var(--green); border-radius:4px;
  transition:width .3s ease;
}

/* ---------- STEPS ---------- */
.form-step h3{
  font-size:24px; text-transform:none; margin-bottom:20px; line-height:1.15;
}
.form-field{margin-bottom:18px;}
.form-field label{
  display:block; font-size:13.5px; font-weight:600; color:#3c4a3e; margin-bottom:7px;
}
.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field textarea{
  width:100%; padding:13px 16px; border-radius:10px;
  border:1.5px solid rgba(8,90,48,0.25); background:#fff;
  font-family:'Work Sans'; font-size:15.5px; color:var(--ink);
}
.form-field textarea{resize:vertical; min-height:96px; line-height:1.5;}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--green);}

.form-choice-grid{display:grid; gap:10px;}
.form-choice{
  display:flex; align-items:center; gap:10px;
  border:1.5px solid rgba(8,90,48,0.2); border-radius:10px;
  padding:13px 16px; cursor:pointer; font-size:15px;
  transition:border-color .2s, background .2s;
}
.form-choice:has(input:checked){
  border-color:var(--green); background:rgba(8,90,48,0.06);
}
.form-choice input{accent-color:var(--green); width:17px; height:17px; flex-shrink:0;}

.form-conditional{margin-top:14px;}
.form-conditional[hidden]{display:none;}

.form-hint{font-size:13px; color:#6b7a6d; margin-top:-8px; margin-bottom:18px;}

.form-nav{display:flex; justify-content:space-between; align-items:center; margin-top:28px; gap:12px;}
.form-nav .btn-ghost{border-color:rgba(8,90,48,0.3); color:var(--ink);}
.form-nav .btn-ghost:hover{border-color:var(--ink);}
.form-nav .btn-ghost[disabled]{opacity:0; pointer-events:none;}
.form-nav button{border:none; font-family:inherit; cursor:pointer;}
.form-nav .btn-primary{padding:13px 26px; font-size:15px;}

.form-error{
  color:#B23B3B; font-size:13.5px; margin-top:10px; display:none;
}
.form-error.show{display:block;}

/* honeypot, muss unsichtbar aber im DOM bleiben */
.form-hidden-field{position:absolute; left:-9999px; top:-9999px;}

/* ---------- SUCCESS / ÜBERGANG ---------- */
.form-success{text-align:center; padding:10px 0;}
.form-success h3{font-size:26px; text-transform:none; margin-bottom:14px;}
.form-success p{font-size:15.5px; color:#3c4a3e; max-width:420px; margin:0 auto 26px;}
.form-success .btn-primary{padding:16px 30px; font-size:15.5px;}
