:root{--navy:#0e2240;--deep:#091a31;--panel:#182e4d;--panel2:#102744;--gold:#cba835;--gold2:#e0c564;--white:#f8fafc;--muted:#b8c4d2;--line:rgba(255,255,255,.14);--danger:#ffb4ab;--ok:#b7e4c7;--radius:16px;--shadow:0 14px 36px rgba(0,0,0,.2)}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--navy);color:var(--white);font-family:"Segoe UI",Arial,sans-serif;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}.top{position:sticky;top:0;z-index:30;background:rgba(9,26,49,.98);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.topin{max-width:760px;margin:auto;padding:10px 14px 9px}.toprow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px}.title{font-weight:850;font-size:1rem}.stepmini{font-size:.78rem;color:var(--muted);white-space:nowrap}.eventline{font-size:.76rem;color:#d7dee7;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress{height:4px;border-radius:99px;background:rgba(255,255,255,.11);margin-top:8px;overflow:hidden}.progressfill{height:100%;width:20%;background:var(--gold);border-radius:99px;transition:width .12s ease}.wrap{max-width:760px;margin:auto;padding:16px 13px 108px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;box-shadow:var(--shadow)}.step{display:none}.step.active{display:block}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:var(--gold2);font-weight:850;margin-bottom:5px}h1,h2{line-height:1.12}h2{font-size:1.3rem;margin:0 0 6px}.sub{color:var(--muted);margin:0 0 16px;font-size:.9rem}.field{margin-bottom:14px}.field label,.legend{display:block;font-size:.83rem;font-weight:760;margin-bottom:6px}.req{color:var(--gold2)}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],select,textarea{width:100%;min-height:50px;border:1px solid rgba(255,255,255,.17);border-radius:11px;background:var(--panel2);color:var(--white);padding:11px 12px;outline:none}textarea{min-height:105px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(203,168,53,.11)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice,.info{border-radius:12px;padding:12px 13px;font-size:.86rem;margin:12px 0;background:rgba(203,168,53,.07);border:1px solid rgba(203,168,53,.31)}.info{background:rgba(255,255,255,.045);border-color:var(--line)}.info strong{display:block;color:#fff;margin-bottom:2px}.info span{color:var(--muted)}.attendee{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.attendee:first-of-type{border-top:0;padding-top:0;margin-top:2px}.attendee h3{font-size:.98rem;margin:0 0 11px}.choice{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--line);background:#112846;border-radius:12px;padding:13px;margin:9px 0;transition:.15s ease}.choice input[type=radio],.choice input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:21px;height:21px;margin:1px 0 0;border:2px solid #91a2b8;background:transparent;display:grid;place-items:center}.choice input[type=radio]{border-radius:50%}.choice input[type=checkbox]{border-radius:5px}.choice input[type=radio]::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--deep);transform:scale(0)}.choice input[type=checkbox]::after{content:"✓";color:var(--deep);font-size:.82rem;font-weight:900;line-height:1;transform:scale(0)}.choice input:checked{border-color:var(--gold);background:#f2dfa0}.choice input:checked::after{transform:scale(1)}.choice:has(input:checked){border-color:rgba(203,168,53,.58);background:rgba(203,168,53,.08)}.choice strong{display:block;font-size:.94rem}.choice small{display:block;color:var(--muted);margin-top:2px}.food-person,.package-person{border:1px solid var(--line);border-radius:13px;padding:13px;margin:11px 0;background:rgba(0,0,0,.05)}.food-person h3,.package-person h3{font-size:.95rem;margin:0 0 7px}.voucher-line{display:flex;gap:8px}.voucher-line input{flex:1}.smallbtn{min-height:50px;border-radius:10px;border:1px solid var(--gold);background:transparent;color:#fff;padding:0 14px;font-weight:800}.voucher-msg{font-size:.78rem;color:var(--muted);margin-top:6px;min-height:1.2em}.totalbox{display:grid;gap:7px;border:1px solid rgba(203,168,53,.33);background:rgba(203,168,53,.055);padding:14px;border-radius:13px;margin-top:15px}.row{display:flex;justify-content:space-between;gap:12px}.row span:first-child{color:var(--muted)}.row.total{border-top:1px solid rgba(203,168,53,.25);padding-top:9px;margin-top:2px;font-weight:900;font-size:1.08rem}.review{display:grid;gap:11px}.review-block{border-top:1px solid var(--line);padding-top:11px}.review-block:first-child{border-top:0;padding-top:0}.review-block strong{display:block;margin-bottom:2px}.review-block span{color:var(--muted);font-size:.88rem}.food-ack{display:none}.food-ack.show{display:block}.error{padding:11px 13px;border-radius:11px;background:rgba(255,100,90,.08);border:1px solid rgba(255,180,171,.42);color:var(--danger);font-size:.84rem;margin-bottom:12px}.inline-error{color:var(--danger);font-size:.75rem;margin-top:5px;display:none}.bad .inline-error{display:block}.bad input,.bad select,.bad textarea{border-color:var(--danger)}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(9,26,49,.985);border-top:1px solid var(--line);padding:10px 13px max(10px,env(safe-area-inset-bottom))}.bottomin{max-width:760px;margin:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.btntotal{min-width:82px}.btntotal small{display:block;color:var(--muted);font-size:.67rem}.btntotal strong{font-size:.94rem;color:var(--gold2)}.btn{min-height:48px;border-radius:11px;padding:9px 15px;font-weight:850;border:1px solid transparent}.prev{background:transparent;border-color:rgba(255,255,255,.18);color:#fff}.next{background:var(--gold);color:var(--deep)}.prev[hidden]{visibility:hidden}.success{text-align:center}.success-icon{width:54px;height:54px;margin:0 auto 11px;border-radius:50%;display:grid;place-items:center;background:rgba(183,228,199,.11);border:1px solid rgba(183,228,199,.44);color:var(--ok);font-size:1.5rem;font-weight:900}.ref{font-size:1.38rem;color:var(--gold2);font-weight:900;letter-spacing:.035em;margin:11px 0}.muted{color:var(--muted)}.linkbtn{display:inline-block;text-decoration:none;margin-top:10px}.hidden{display:none!important}@media(max-width:620px){.grid{grid-template-columns:1fr;gap:0}.card{padding:17px 14px}.wrap{padding-top:13px}}@media(max-width:385px){.btntotal{display:none}.bottomin{grid-template-columns:auto 1fr}.next{width:100%}}
.public-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:16px}.public-actions .quiet{border-color:rgba(255,255,255,.24);color:#fff}.payment-ref-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}.payment-ref-row code{display:inline-block;margin-top:4px;font-family:Consolas,"Courier New",monospace;font-size:1.05rem;color:var(--gold2);word-break:break-all}.copybtn{min-height:42px;padding:0 12px;white-space:nowrap}.proof-line{margin-top:13px}.proof-line a{color:var(--gold2)}.server-error{margin-bottom:12px}@media(max-width:460px){.payment-ref-row{align-items:flex-start;flex-direction:column}.copybtn{width:100%}.public-actions{flex-direction:column}.public-actions .smallbtn{text-align:center;width:100%}}
/* RC3: persistent bottom error signal for long mobile forms */
.bottomcenter{min-width:0;display:flex;align-items:center;justify-content:center}
.bottom-error{min-height:42px;max-width:100%;border:1px solid rgba(255,180,171,.55);background:rgba(180,35,24,.18);color:#ffd1cc;border-radius:10px;padding:7px 10px;font-weight:800;font-size:.76rem;line-height:1.15;text-align:center}
.bottom-error:hover{background:rgba(180,35,24,.28)}
@media(max-width:385px){.bottomcenter{justify-content:stretch}.bottom-error{width:100%}}

/* RC4 final polish: payment clarity and unmistakable status states */
.payment-alert{margin:10px 0 14px;padding:12px 13px;border-radius:12px;font-size:.84rem;line-height:1.42}
.eft-alert{background:rgba(203,168,53,.10);border:1px solid rgba(224,197,100,.58);color:#f4e8bd}
.payfast-methods{margin:-1px 0 14px 32px;color:var(--muted);font-size:.75rem}
.payment-strip-label{display:block;margin-bottom:6px}
.method-chips{display:flex;gap:6px;flex-wrap:wrap}
.method-chip{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.045);border-radius:999px;color:#dce5ef;font-weight:700}
.eft-review-warning{display:inline-block;margin-top:4px;color:var(--gold2);font-size:.8rem}
.success-icon.warn{background:rgba(203,168,53,.12);border-color:rgba(224,197,100,.52);color:var(--gold2)}
.success-icon.danger{background:rgba(180,35,24,.12);border-color:rgba(255,180,171,.55);color:#ffb4ab}
@media(max-width:460px){.payfast-methods{margin-left:0}}

/* RC5: explicit total/payment decisions */
.amount-confirm{margin-top:12px;border-color:rgba(224,197,100,.48)}
.amount-confirm strong{color:#f4e8bd}
.optional-divider{display:flex;align-items:center;gap:10px;margin:19px 0 14px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.optional-divider:before,.optional-divider:after{content:"";height:1px;flex:1;background:var(--line)}


/* RC6: event message, package shortcut, and clearer optional section */
.registration-message{margin:6px 0 18px;padding:15px 14px;border:1px solid rgba(224,197,100,.58);border-left:4px solid var(--gold);border-radius:12px;background:rgba(203,168,53,.09)}
.registration-message-title{display:block;color:#fff;font-size:1.02rem;line-height:1.25;margin-bottom:7px}
.registration-message-body{color:#e8edf4;font-size:.88rem;line-height:1.5}
.registration-message-scripture{margin-top:9px;padding-top:9px;border-top:1px solid rgba(224,197,100,.28);color:var(--gold2);font-size:.84rem;font-weight:750}
.same-package-control{margin:10px 0 13px;background:rgba(255,255,255,.04)}
.same-package-control small{line-height:1.35}
.optional-section{margin-top:25px;padding-top:4px}
.optional-section .optional-divider{margin-bottom:7px;color:#eef3f8;font-size:.84rem;letter-spacing:.05em}
.optional-helper{margin:0 0 14px;color:var(--muted);font-size:.82rem}
.recovery-choice{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035);text-align:left}
.recovery-choice h3{margin:0 0 5px;font-size:1rem}.recovery-choice p{margin:0 0 10px;color:var(--muted);font-size:.84rem}
.email-wait{margin-top:13px;padding:12px 13px;border-radius:11px;border:1px solid rgba(224,197,100,.42);background:rgba(203,168,53,.07);font-size:.84rem;color:#f0e4b8}
