.reg-hero{
  background:linear-gradient(165deg, var(--purple-deep), var(--purple-mid));
  color:var(--parchment); padding:48px 0 40px;
}
.reg-hero h1{ color:var(--parchment); font-size:clamp(1.6rem,2.6vw,2.2rem); margin-top:.3em; }
.reg-hero p{ max-width:640px; opacity:.9; }
.reg-hero .already{ font-family:var(--font-mono); font-size:.85rem; margin-top:16px; }
.reg-hero .already a{ color:var(--gold-soft); }

.reg-section{ padding:48px 0 80px; }
.wrap-narrow{ max-width:820px; }

.form-block{ background:#fff; border:1px solid var(--wall-line); border-radius:6px; padding:26px; margin-bottom:22px; }
.form-block h2{ font-size:1.1rem; margin-bottom:18px; color:var(--purple-deep); }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
@media (max-width:640px){ .grid-2{ grid-template-columns:1fr; } }
.field-wide{ grid-column:1 / -1; }

.field label{ display:block; font-size:.85rem; font-weight:600; margin-bottom:6px; color:var(--ink); }
.field small{ display:block; margin-top:4px; font-size:.75rem; color:#7a7086; }
.field input, .field select{
  width:100%; padding:.65em .7em; border:1.5px solid var(--wall-line); border-radius:4px;
  font-family:var(--font-body); font-size:.95rem; background:#fff; color:var(--ink);
}
.field input:focus, .field select:focus{ border-color:var(--purple-mid); }

.pay-box{
  background:var(--purple-deep); color:var(--parchment); border-radius:6px; padding:18px 20px; margin-top:16px;
}
.pay-box dl{ font-family:var(--font-mono); margin:8px 0 0; }
.pay-box dt{ font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; opacity:.7; margin-top:8px; }
.pay-box dd{ margin:2px 0 0; font-weight:700; }
.amount-line{ margin-top:12px; font-family:var(--font-mono); font-size:1.1rem; }

.consent{ margin:18px 0; font-size:.88rem; }
.consent label{ display:flex; gap:8px; align-items:flex-start; }

.form-error{
  background:#fbe7e7; border:1px solid #d98686; color:#7a1f1f; padding:12px 16px; border-radius:4px; margin-bottom:16px; font-size:.9rem;
}

#submit-btn{ width:100%; font-size:1rem; padding:1em; }
#submit-btn[disabled]{ opacity:.6; cursor:not-allowed; }

.success-panel{
  background:#fff; border:1px solid var(--wall-line); border-radius:6px; padding:40px; text-align:center;
}
.success-panel h2{ color:var(--purple-deep); }
