/* Nova42 – Mitglied werden: nur Regeln, die NICHT bereits in assets/css/site.css
     stehen (Header/Nav/Footer/Cookie-Banner/Dropdown/Hamburger/AI-Info/.card
     sind dort zentral definiert). */

.card h2{ margin-top:2rem; }
.card h2:first-of-type{ margin-top:0; }

.btn{
  display:inline-block;
  background:var(--cta); color:#fff;
  font-weight:700; font-size:1.05rem;
  padding:.85rem 1.75rem;
  border:none; border-radius:8px;
  text-decoration:none; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(204,2,0,.35); }
.btn:disabled{ background:#999; cursor:not-allowed; transform:none; box-shadow:none; }

#mitgliedForm{ margin-top:1.5rem; }
.form-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr 1fr; }
.form-grid .full{ grid-column:1 / -1; }
.form-grid[hidden]{ display:none; }

/* Abschnitte des Mitgliedsantrags */
fieldset.form-grid{
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:1.25rem 1.25rem 1.5rem;
  margin:0 0 1.5rem;
  min-width:0;
}
fieldset.form-grid legend{
  font-weight:700; color:var(--heading);
  padding:0 .4rem; font-size:1.05rem;
}
.fieldset-hint{ margin:0; font-size:.95rem; opacity:.85; }
@media (max-width:640px){ fieldset.form-grid{ padding:1rem .9rem 1.25rem; } }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }

.form-grid label{ display:block; font-weight:600; margin-bottom:.35rem; font-size:.95rem; }
.required::after{ content:" *"; color:var(--cta); font-weight:700; }

.form-grid input, .form-grid textarea{
  width:100%;
  padding:.75rem .9rem;
  font:inherit; color:var(--text);
  background:var(--bg);
  border:1.5px solid var(--line);
  border-radius:8px;
}
:root[data-theme="dark"] .form-grid input,
:root[data-theme="dark"] .form-grid textarea{ background:#14142a; }
.form-grid input:hover, .form-grid textarea:hover{ border-color:var(--heading); }
.form-grid textarea{ resize:vertical; min-height:90px; }

.consent{
  display:flex; gap:.7rem; align-items:flex-start;
  font-weight:500; font-size:.95rem; cursor:pointer;
}
.consent input{
  width:1.35rem; height:1.35rem; margin-top:.15rem;
  flex:none; accent-color:var(--heading); cursor:pointer;
}

.form-note{ font-size:.9rem; opacity:.75; margin-top:1rem; }

.form-error{
  display:none;
  background:#fdf1f0; border-left:4px solid var(--cta);
  padding:.6rem .9rem; border-radius:0 8px 8px 0;
  font-size:.95rem; margin-top:1.25rem; font-weight:600;
}
:root[data-theme="dark"] .form-error{ background:#3a2426; color:var(--text); }
.form-error.show{ display:block; }

.form-success{
  display:none;
  background:#e8f6ec; border:1.5px solid #2e7d32;
  color:#1b5e20; border-radius:8px;
  padding:1rem 1.25rem; margin-top:1.25rem; font-weight:600;
}
.form-success.show{ display:block; }
.form-success:focus{ outline:none; }

.visually-hidden-field{ position:absolute; left:-9999px; }
