/* join.css */
.join-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:start}
@media(max-width:900px){.join-layout{grid-template-columns:1fr}}
.benefits-list{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.benefits-list li{display:flex;align-items:flex-start;gap:12px;font-size:.92rem;color:var(--text-mid);line-height:1.6}
.benefit-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}
.downloads-callout{background:var(--brown-pale);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--text-mid);margin-top:16px}
.downloads-callout a{color:var(--brown);text-decoration:underline}
.membership-form{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.form-header{background:linear-gradient(135deg,var(--brown-deep),var(--brown));padding:28px 32px}
.form-title{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:4px}
.form-sub{font-size:.78rem;color:rgba(255,255,255,.6)}
.step-indicators{display:flex;align-items:center;padding:20px 32px;border-bottom:1px solid var(--border)}
.step-dot{display:flex;flex-direction:column;align-items:center;gap:4px}
.step-num{width:32px;height:32px;border-radius:50%;background:var(--border);color:var(--text-light);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;transition:all .3s}
.step-dot.active .step-num{background:var(--brown);color:#fff}
.step-dot.done .step-num{background:#22C55E;color:#fff}
.step-lbl{font-size:.68rem;font-weight:600;color:var(--text-light)}
.step-dot.active .step-lbl{color:var(--brown)}
.step-line{flex:1;height:2px;background:var(--border);margin:0 8px 16px;transition:background .3s}
.step-line.done{background:#22C55E}
.form-step{display:none;padding:28px 32px}
.form-step.active{display:block}
.form-nav{display:flex;gap:12px;margin-top:8px}
.form-notification{margin:0 32px;font-size:.85rem;border-radius:var(--radius);overflow:hidden;max-height:0;transition:max-height .3s,padding .3s}
.form-notification.show{max-height:100px;padding:12px 16px}
.form-notification.error{background:#fdecea;color:#c0392b}
.form-notification.success{background:#e8f5e9;color:#1B7B2E}
.consent-box{background:var(--brown-faint);border-radius:var(--radius);padding:18px 20px;border-left:4px solid var(--brown-light);margin-bottom:18px}
.consent-box h4{font-size:.9rem;font-weight:700;color:var(--text);margin-bottom:8px}
.consent-box p,.consent-box li{font-size:.82rem;color:var(--text-mid);line-height:1.55}
.consent-box ul{padding-left:16px}
.consent-checks{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.check-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.85rem;color:var(--text-mid);line-height:1.5}
.check-label input[type="checkbox"]{width:18px;height:18px;flex-shrink:0;margin-top:1px;accent-color:var(--brown);cursor:pointer}
.check-label a{color:var(--brown);text-decoration:underline}
.form-success{padding:40px 32px;text-align:center}
.success-icon{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,#15803D,#22C55E);color:#fff;font-size:2rem;font-weight:900;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.form-success h3{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--text);margin-bottom:10px}
.form-success p{font-size:.92rem;color:var(--text-mid);margin-bottom:6px}
.form-success .success-note{font-size:.78rem;color:var(--text-light);line-height:1.6;margin-top:10px}
.member-id{font-family:monospace;background:var(--brown-pale);color:var(--brown-deep);padding:2px 10px;border-radius:4px;font-size:1rem}
.confirm-box{max-width:600px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px}
.confirm-input-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.confirm-result{margin-top:16px}
.status-found{padding:16px 20px;border-radius:var(--radius);background:#e8f5e9;border-left:4px solid #22C55E;color:#15803D;font-size:.88rem;line-height:1.6;white-space:pre-line}
.status-not-found{padding:16px 20px;border-radius:var(--radius);background:#fdecea;border-left:4px solid #EF4444;color:#991B1B;font-size:.88rem;line-height:1.6}
