/* Donor experience: warm neutral surfaces, clear steps, comfortable touch targets. */
.reg-section{background:#f2f7fa;padding:76px 0 96px;scroll-margin-top:110px}
.reg-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}
.reg-aside{position:sticky;top:125px;padding-top:24px}
.reg-aside h2{font-size:clamp(32px,3.7vw,52px);line-height:1.15;letter-spacing:-.035em;max-width:520px}
.reg-aside .lead{font-size:18px;line-height:1.85}
.reg-card{background:#fff;border:1px solid #e0e7e4;border-radius:24px;padding:36px;box-shadow:0 20px 65px #163e3010;min-width:0}
.reg-form-head h3{font-size:25px;line-height:1.35;margin:10px 0}
.reg-form-head p{font-size:15px;color:#596960;line-height:1.7;margin-bottom:24px}
.reg-progress{display:flex;list-style:none;gap:12px;padding:0;margin:0 0 30px;border-bottom:1px solid #e5ebe7;padding-bottom:24px}
.reg-progress li{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#64746b}
.reg-progress li>span{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;background:#edf1ee;border-radius:50%}
.reg-progress li.active{color:#0a6a9c}.reg-progress li.active>span,.reg-progress li.complete>span{background:#0a6a9c;color:white}
.reg-step{border:0;padding:0;margin:0}.reg-step legend{font-size:20px;margin-bottom:24px}.reg-step legend:focus{outline:none}
.reg-field input,.reg-field select,.reg-field textarea{font-size:16px!important;min-height:50px;border-radius:10px;border:1px solid #cad6cf;background:#fff}
.reg-field input:focus,.reg-field select:focus,.reg-field textarea:focus{outline:3px solid #d4e9f4;outline-offset:1px;border-color:#0a6a9c}
.reg-chips{gap:8px}.reg-chips button{min-height:44px;border-radius:9px}.reg-chips button.on{background:#0a6a9c;color:#fff;border-color:#0a6a9c}
.reg-navigation{display:flex;align-items:center;gap:12px;margin-top:28px}.reg-navigation .reg-next{margin-inline-start:auto}
.reg-back{background:#eef3ef!important;color:#0b2536!important;border:1px solid #d4e1d9!important}
.reg-step-status{color:#6a776f;font-size:13px;white-space:nowrap}
.reg-submit{margin-top:18px;width:100%;min-height:54px}.reg-submit:disabled{opacity:.6;cursor:wait}
.reg-methods label{border-radius:12px;padding:16px}.reg-check-row{font-size:14px;line-height:1.65}.reg-check-row input{width:18px;height:18px;flex-shrink:0;accent-color:#0a6a9c}
.reg-note{font-size:12px!important;line-height:1.8;color:#65746b}
.reg-success{text-align:start}.reg-ref{border-radius:14px;background:#f0f6f2;padding:24px}.reg-bank dd{overflow-wrap:anywhere}
.reg-card [hidden],.reg-progress[hidden]{display:none!important}
@media(max-width:900px){.reg-grid{grid-template-columns:1fr;gap:28px}.reg-aside{position:static;padding-top:0}.reg-section{padding:40px 0 60px}.reg-aside h2{max-width:none}.reg-card{padding:26px}}
@media(max-width:480px){.reg-card{padding:22px 18px;border-radius:18px}.reg-progress{gap:5px}.reg-progress li{flex-direction:column;text-align:center;font-size:11px}.reg-two{grid-template-columns:1fr}.reg-chips{display:grid;grid-template-columns:repeat(3,1fr)}.reg-form-head h3{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{transition:none!important;transform:none!important;opacity:1!important}}
.mj-campaign-banner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-block:70px;padding:40px;background:#f2f7fa;border:1px solid #dde7ec;border-radius:24px}
.mj-campaign-banner h2{font-size:clamp(30px,3vw,44px);line-height:1.15;margin:16px 0}.mj-campaign-banner p{font-size:17px;line-height:1.8}.mj-campaign-banner figure{margin:0}.mj-campaign-banner img{width:100%;height:auto;border-radius:18px;display:block}.mj-campaign-banner figcaption{font-size:11px;color:#4f6573;line-height:1.5;margin-top:9px}
.mj-campaign-dialog{padding:0;border:0;border-radius:22px;max-width:850px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;background:#fff;color:#13303f;box-shadow:0 30px 100px #0005}.mj-campaign-dialog::backdrop{background:#071c2bba;backdrop-filter:blur(5px)}.mj-campaign-dialog>img{width:100%;height:290px;object-fit:cover;object-position:center 35%;display:block}.mj-dialog-copy{padding:32px 40px}.mj-dialog-copy h2{font-size:32px;margin:12px 0;line-height:1.2}.mj-dialog-copy p{line-height:1.75}.mj-dialog-copy small{display:block;font-size:11px;color:#4f6573;margin-top:18px}.mj-dialog-close{position:absolute;inset-inline-end:14px;top:14px;background:white;color:#0b2536;width:44px;height:44px;border:0;border-radius:50%;font-size:28px;cursor:pointer}.mj-dialog-close:focus-visible{outline:3px solid #0a6a9c;outline-offset:3px}.mj-modal-open{overflow:hidden}
@media(max-width:700px){.mj-campaign-banner{grid-template-columns:1fr;padding:24px;gap:24px;margin-block:40px}.mj-campaign-dialog>img{height:210px}.mj-dialog-copy{padding:24px}.mj-dialog-copy h2{font-size:27px}}

/* Keep the bilingual banner and payment details visible at every viewport. */
.mj-campaign-dialog>img{height:auto;object-fit:contain;object-position:center}.mj-campaign-dialog{max-width:760px}.mj-campaign-banner img{height:auto;object-fit:contain}

/* Registration stays visible even with delayed/blocked reveal scripts. */
.js .reg-aside,.js .reg-card{opacity:1!important;transform:none!important;visibility:visible!important}
.mj-registration-entry{margin-block:48px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px;background:#f2f7fa;border:1px solid #dde7ec;border-radius:20px}
.mj-registration-entry h2{font-size:28px;line-height:1.25;margin:12px 0}.mj-registration-entry p{max-width:650px}.mj-registration-entry .button{flex-shrink:0}
#main-nav .mj-register-link{color:#0a6a9c;font-weight:800}
@media(max-width:1150px){.header-inner{flex-wrap:wrap}#main-nav{flex-wrap:wrap}}
@media(max-width:700px){.mj-registration-entry{flex-direction:column;align-items:stretch;padding:24px}.mj-registration-entry .button{text-align:center}}
