/* Mitgliedsformular – konsistenter Behördenstil */
.member-page{background:#fff}
.member-shell{max-width:1080px;margin-inline:auto}

/* Verfahrenshinweis wie die übrigen offiziellen Hinweisbereiche */
.member-info{
  margin:0 0 38px;
  padding:26px 30px;
  border:1px solid var(--line-strong);
  border-left:6px solid var(--accent);
  background:#fffaf0;
}
.member-info h2{margin:0 0 12px;font-size:1.45rem;line-height:1.25;color:var(--ink)}
.member-info p{margin:0 0 10px;color:var(--ink-soft);line-height:1.65}
.member-info p:last-child{margin-bottom:0}

/* Formular selbst ist kein schwebender Fremdkörper */
.member-form-card{margin:0;padding:0;border:0;background:transparent;box-shadow:none}

.form-section{
  display:grid;
  grid-template-columns:245px minmax(0,1fr);
  gap:24px 42px;
  margin:0 0 28px;
  padding:30px;
  border:1px solid var(--line);
  border-top:4px solid var(--brand);
  background:#fff;
}
.form-section>h2{
  grid-column:1;
  margin:0;
  font-size:1.45rem;
  line-height:1.25;
  color:var(--ink);
}
.form-section-intro,
.form-section>.member-choice-grid,
.form-section>.form-grid,
.form-section>.payment-note,
.form-section>.check-list,
.form-section>.form-group{grid-column:2}
.form-section-intro{margin:0;color:var(--ink-soft);line-height:1.6}

/* Mitgliedschaftsauswahl */
.member-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.member-choice{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr);
  align-items:start;
  gap:12px;
  min-height:0;
  margin:0!important;
  padding:20px;
  border:1px solid var(--line-strong);
  background:var(--bg-soft);
  cursor:pointer;
}
.member-choice:hover{border-color:var(--brand);background:#eef6f4}
.member-choice:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand);background:#e8f3f0}
.member-choice input{width:18px!important;height:18px!important;min-height:0!important;margin:3px 0 0!important;padding:0!important;accent-color:var(--brand)}
.choice-title{display:block;margin-bottom:5px;font-size:1.05rem;font-weight:800;color:var(--ink)}
.choice-price{display:block;margin-bottom:9px;font-weight:800;color:var(--brand-dark)}
.choice-text{display:block;color:var(--ink-soft);line-height:1.5}
.voluntary-amount{margin-top:2px}

/* Eingaben */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px}
.form-group{display:block;margin:0}
.form-group.full{grid-column:1/-1}
.form-group label{display:block;margin:0 0 7px;font-size:.95rem;font-weight:700;color:var(--ink)}
.form-group input,
.member-form-card input[type="text"],
.member-form-card input[type="email"],
.member-form-card input[type="date"]{
  width:100%;
  min-height:50px;
  padding:11px 13px;
  border:1px solid var(--line-strong);
  border-radius:0;
  background:#fff;
  color:var(--ink);
}
.form-group input:hover{border-color:var(--brand)}
.form-group input:focus{outline:3px solid rgba(0,90,99,.16);outline-offset:1px;border-color:var(--brand)}

/* Zahlungsinformation */
.payment-note{
  margin:0;
  padding:20px 22px;
  border-left:5px solid var(--brand);
  background:var(--bg-soft);
  color:var(--ink-soft);
  line-height:1.65;
}
.payment-note p{margin:0 0 12px}.payment-note p:last-child{margin-bottom:0}

/* Erklärungen */
.check-list{display:grid;border-top:1px solid var(--line)}
.check-row{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr);
  align-items:start;
  gap:12px;
  margin:0!important;
  padding:15px 4px;
  border-bottom:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  line-height:1.5;
  cursor:pointer;
}
.check-row:hover,.check-row:has(input:checked){background:var(--bg-soft)}
.check-row input{position:static!important;display:block!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:3px 0 0!important;padding:0!important;accent-color:var(--brand)}
.check-row span{display:block;min-width:0}
.check-row a{font-weight:700;color:var(--brand-dark)}

/* Abschluss */
.member-submit-wrap{
  display:flex;
  align-items:center;
  gap:20px;
  margin-top:30px;
  padding:24px 30px;
  border:1px solid var(--line);
  background:var(--bg-soft);
}
.member-submit-wrap .btn{
  min-height:50px;
  padding:11px 22px;
  border:2px solid var(--brand);
  border-radius:0;
  background:var(--brand);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.member-submit-wrap .btn:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}
.member-submit-wrap .btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.member-submit-wrap .btn:disabled{background:#d7dddc;border-color:#d7dddc;color:#63716e;cursor:not-allowed}
.submit-hint{margin:0;color:var(--ink-soft);font-size:.94rem}

.member-alert{margin:0;padding:25px 28px;border:1px solid var(--line);border-left:6px solid var(--brand);background:#edf6f3}
.member-alert.error{border-left-color:#a12626;background:#fff3f3}
.member-alert h2{margin:0 0 12px}.member-alert p{margin:0 0 10px}.member-alert p:last-child{margin-bottom:0}

@media(max-width:900px){
  .form-section{grid-template-columns:1fr;gap:18px;padding:26px}
  .form-section>h2,
  .form-section-intro,
  .form-section>.member-choice-grid,
  .form-section>.form-grid,
  .form-section>.payment-note,
  .form-section>.check-list,
  .form-section>.form-group{grid-column:1}
}

@media(max-width:680px){
  .member-info{padding:21px 19px;margin-bottom:26px}
  .form-section{padding:22px 18px;margin-bottom:20px}
  .member-choice-grid,.form-grid{grid-template-columns:1fr}
  .member-choice{padding:17px}
  .member-submit-wrap{display:block;padding:20px 18px}
  .member-submit-wrap .btn{width:100%;margin-bottom:12px}
  .submit-hint{text-align:center}
}

/* Minderjährige Mitgliedschaft */
.minor-section[hidden]{display:none!important}
.form-section>.minor-fields{grid-column:2;display:grid;gap:20px}
.minor-fields>.form-section-intro{margin:0}
.guardian-consent{margin-top:2px!important}
@media(max-width:900px){.form-section>.minor-fields{grid-column:1}}
