body { background:#f7f5f0; color:#253b36; }
.signup-shell { max-width:1120px; padding:28px 32px 64px; }
.signup-header { display:flex; flex-direction:row-reverse; align-items:center; justify-content:space-between; margin-bottom:36px; }
.signup-header .membership-language { margin:0; font-size:.9rem; }
.signup-header .membership-brand { gap:14px; letter-spacing:.03em; }
.signup-header .membership-brand img { width:72px; height:72px; flex-basis:72px; }
.signup-header a { color:#294f44; }
.signup-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:60px; }
.signup-intro { padding:38px 0; }
.signup-eyebrow { font-size:.72rem; letter-spacing:.16em; font-weight:750; color:#647a68; margin:0 0 18px; }
.signup-intro h1 { font-family:Georgia,"Songti SC",serif; font-weight:500; font-size:clamp(2.5rem,4.2vw,3.6rem); letter-spacing:-.035em; line-height:1.13; margin:0 0 24px; }
.signup-intro > p:not(.signup-eyebrow) { max-width:340px; color:#60716b; }
.signup-progress { list-style:none; margin:38px 0; padding:0; display:grid; gap:20px; }
.signup-progress li { display:flex; align-items:center; gap:14px; color:#798780; font-size:.95rem; }
.signup-progress span { display:grid; place-items:center; width:34px; height:34px; border:1px solid #d1d9ce; border-radius:50%; font-size:.72rem; }
.signup-progress [aria-current] { color:#264f42; font-weight:700; }
.signup-progress [aria-current] span { background:#294f44; color:white; border-color:#294f44; }
.signup-note { border-top:1px solid #d9dfd3; padding-top:24px; font-size:.85rem; }
.signup-card { margin:0; padding:36px; border:1px solid #e2e5dc; border-radius:22px; box-shadow:0 16px 50px #263f3508; }
.signup-card .signup-eyebrow { margin-bottom:8px; }
.signup-title { font-size:1.7rem; letter-spacing:-.03em; line-height:1.3; margin:0 0 8px; }
.signup-card > .muted { margin-bottom:28px; }
.signup-card .membership-form { gap:20px; }
.signup-card label { font-size:.9rem; font-weight:650; }
.signup-card input:not([type="hidden"]) { background:#fff; border-color:#cbd5cb; padding:12px 13px; border-radius:9px; }
.signup-card input:focus { border-color:#426b56; }
.signup-card .primary { display:block; background:#294f44; border-color:#294f44; padding:14px 16px; }
.signup-card .primary:hover { background:#1e3d34; }
.signup-card .muted { font-size:.82rem; color:#6c7972; }
.signup-password-wrap { position:relative; }
.signup-password-wrap input { padding-right:76px !important; }
.signup-password-wrap button { position:absolute; right:5px; top:5px; bottom:5px; padding:4px 10px; border:0; font-size:.8rem; color:#426b56; background:transparent; }
.signup-password-field .muted { margin:7px 0 0; }
.signup-section-heading { border-top:1px solid #e4e8df; padding-top:22px; margin-top:4px; }
.signup-section-heading h3 { margin:0; font-size:1rem; }
.signup-section-heading p { margin:5px 0 0; }
#signup-children { display:grid; gap:18px; }
.signup-child { min-width:0; margin:0; padding:18px; border:1px solid #dce3d7; border-radius:12px; display:grid; gap:14px; background:#f8faf6; }
.signup-child legend { padding:0 7px; font-size:.8rem; font-weight:700; color:#4a6554; }
.remove-child { justify-self:start; padding:3px 0; border:0; font-size:.8rem; color:#8b3333; background:transparent; }
#add-child { border:1px dashed #a6b8a3; color:#355e49; background:#fcfdfb; padding:10px; font-size:.9rem; }
#add-child:hover { background:#eff4eb; }
.signup-edit { margin-top:18px; }
.signup-edit button { width:100%; font-size:.85rem; }
.signup-card .membership-footer { padding-top:22px; border-top:1px solid #e4e8df; margin:26px 0 0; color:#6c7972; }
.signup-card a { color:#294f44; }
.signup-card a.primary { color:white; }
#signup-code { font-size:1.6rem; letter-spacing:.3em; }
@media(max-width:800px) {
 .signup-shell { max-width:580px; padding:20px 20px 40px; }
 .signup-header { margin-bottom:18px; }
 .signup-layout { display:block; }
 .signup-intro { padding:12px 4px 22px; }
 .signup-intro h1 { font-size:2.3rem; margin-bottom:14px; }
 .signup-intro h1 br { display:none; }
 .signup-intro > p:not(.signup-eyebrow) { max-width:none; }
 .signup-intro .signup-eyebrow,.signup-note { display:none; }
 .signup-progress { display:flex; gap:12px; margin:24px 0 0; }
 .signup-progress li { flex:1; align-items:flex-start; font-size:.72rem; gap:7px; }
 .signup-progress span { width:24px; height:24px; flex-shrink:0; font-size:.65rem; }
 .signup-card { padding:26px; }
}
@media(max-width:400px) {
 .signup-shell { padding:16px 14px 32px; }
 .signup-card { padding:22px 18px; }
 .signup-header .membership-brand img { width:56px; height:56px; flex-basis:56px; }
 .signup-progress li { flex-direction:column; }
}
