/* Member portal: sign-up form, selfie camera, payments, tracker, reviews, testimonials */
.err-list { margin:6px 0 0; padding-left:1.2rem; }
.progress-steps { list-style:none; display:flex; gap:6px; padding:0; margin:0 0 16px; overflow-x:auto; }
.progress-steps li { flex:1 0 auto; text-align:center; font:600 .8rem var(--body); padding:7px 12px; border-radius:99px; background:var(--soft); color:var(--muted); white-space:nowrap; }
.progress-steps li.on { background:var(--navy); color:#fff; }
.join-form { display:grid; gap:18px; margin-bottom:10px; }
.fs { background:var(--card); border:0; border-radius:var(--radius); padding:22px 24px; box-shadow:var(--shadow); margin:0; min-width:0; }
.fs legend { font:700 1.15rem var(--head); color:var(--navy); padding:0 8px; margin-left:-8px; }
.fgrid { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,1fr)); gap:16px; }
.fgrid .wide { grid-column:1 / -1; }
.hint { font-weight:400; color:var(--muted); } .hint.ok { color:var(--green-d); font-weight:600; } .hint.bad { color:var(--bad); font-weight:600; }
input.invalid { border-color:var(--bad); }
.check { display:flex; gap:12px; align-items:flex-start; font-weight:400; color:var(--ink); margin-top:12px; }
.check input { width:22px; height:22px; flex:none; min-height:0; margin-top:3px; accent-color:var(--green-d); }
.form-actions { display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
input[type=file] { padding:9px; background:#f2f5f1; }
.file-note { font-size:.82rem; color:var(--muted); }

.selfie { display:grid; gap:14px; justify-items:center; }
.selfie-stage { width:min(100%, 340px); aspect-ratio:3/4; border-radius:20px; overflow:hidden; background:#0e3a52; position:relative; box-shadow:var(--shadow); display:grid; place-items:center; }
.selfie-stage video, .selfie-stage img { width:100%; height:100%; object-fit:cover; transform:scaleX(-1); } .selfie-stage img { transform:none; }
.selfie-stage [hidden] { display:none; }
.selfie-empty { color:#9fc3d6; text-align:center; font-size:3rem; } .selfie-empty span { display:block; font-size:.9rem; }
.selfie-stage::after { content:""; position:absolute; inset:12% 18%; border:3px dashed rgba(255,255,255,.55); border-radius:50%; pointer-events:none; }
.selfie-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; align-items:center; }
.file-fallback { font-weight:500; font-size:.88rem; }

.duo > div > h2:first-child { margin-top:.4rem; }
.bank dl { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0 0 10px; } .bank dt { color:var(--muted); } .bank dd { margin:0; font-weight:600; }
.methods { list-style:none; padding:0; display:grid; gap:8px; }
.methods li { display:flex; align-items:center; gap:10px; background:var(--card); padding:10px 16px; border-radius:12px; box-shadow:var(--shadow); }
.methods li span { margin-left:auto; font:600 .75rem var(--body); padding:2px 10px; border-radius:99px; background:#d4ecd0; color:#1d5a1a; }
.methods li.off { opacity:.65; } .methods li.off span { background:#e8eef1; color:var(--muted); }
fieldset.radio-row { border:0; padding:0; margin:0; display:flex; gap:10px 18px; flex-wrap:wrap; } fieldset.radio-row legend { font-weight:600; color:var(--navy); padding:0; margin-bottom:6px; }
label.radio { display:flex; gap:8px; align-items:center; font-weight:500; background:var(--soft); padding:8px 14px; border-radius:99px; cursor:pointer; }
label.radio input { width:18px; height:18px; min-height:0; accent-color:var(--green-d); } label.radio.disabled { opacity:.5; cursor:not-allowed; }
form.stack .check { margin-top:0; }

.status-track li { padding-top:12px; padding-bottom:12px; opacity:.55; } .status-track li span { display:block; font-size:.85rem; }
.status-track li.done, .status-track li.now, .status-track li.bad { opacity:1; }
.status-track li.done::before { content:"✓"; background:var(--green-d); } .status-track li.now::before { background:var(--orange); } .status-track li.bad::before { content:"✕"; background:var(--bad); }
.status-track li.now { box-shadow:0 0 0 3px rgba(228,138,42,.35), var(--shadow); }
.doc-list { display:flex; flex-wrap:wrap; gap:10px; }
.doc { background:var(--card); border-radius:12px; padding:10px 16px; box-shadow:var(--shadow); text-decoration:none; color:var(--navy); font-weight:600; display:grid; }
.doc small { color:var(--muted); font-weight:400; }
.app-card { display:grid; gap:4px; text-decoration:none; color:var(--ink); border-top-color:var(--green); } .app-card:hover { transform:translateY(-2px); }
.doc-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:12px; }
.docfig { margin:0; background:var(--card); border-radius:12px; padding:8px; box-shadow:var(--shadow); text-align:center; }
.docfig img { width:100%; height:170px; object-fit:cover; border-radius:8px; } .docfig figcaption { font-size:.82rem; color:var(--muted); margin-top:4px; }
.docfig .pdf { display:grid; place-items:center; height:170px; background:var(--soft); border-radius:8px; text-decoration:none; font-weight:600; }

.stars { color:#e48a2a; letter-spacing:2px; font-size:1.2rem; margin:0 0 6px; } .stars.big { font-size:1.6rem; }
.star-input { display:inline-flex; flex-direction:row-reverse; gap:4px; }
.star-input input { position:absolute; opacity:0; width:1px; height:1px; }
.star-input label { font-size:2.2rem; line-height:1; color:#b9c4c4; cursor:pointer; padding:0 2px; transition:color .15s, transform .15s; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color:var(--orange); }
.star-input input:focus-visible + label { outline:3px solid var(--blue); border-radius:6px; }
.rating-summary { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:center; text-align:center; }
.quote { margin:0; } .quote blockquote { margin:0 0 10px; font:italic 1.05rem/1.55 var(--head); color:var(--navy); } .quote figcaption { font-weight:600; }
.badge.pending { background:#fff1dc; color:#8a5200; } .badge.rejected { background:#fbe3e0; color:#9a1d15; }
code { background:var(--soft); padding:1px 6px; border-radius:6px; }
.testi-home { margin-top:10px; }
@media (max-width:640px) { .fs { padding:16px; } .selfie-actions .btn { width:100%; justify-content:center; } }

/* ---------- registration wizard ---------- */
.wiz-steps, .wiz-bar, .wiz-count { display:none; }
.wiz-nav { display:flex; gap:12px; align-items:center; padding:10px 0; }
.js-wizard .wiz-steps { display:flex; gap:8px; list-style:none; padding:0; margin:0 0 10px; }
.js-wizard .wiz-bar { display:block; height:6px; background:var(--line); border-radius:99px; overflow:hidden; margin-bottom:8px; }
.wiz-bar span { display:block; height:100%; width:20%; background:linear-gradient(90deg,var(--blue),var(--green)); border-radius:99px; transition:width .4s ease; }
.js-wizard .wiz-count { display:block; margin:0 0 14px; color:var(--muted); font-size:.9rem; }
.js-wizard .wiz-nav { display:flex; gap:12px; align-items:center; position:sticky; bottom:0; background:linear-gradient(transparent, var(--paper) 30%); padding:18px 0 10px; z-index:5; }
.wiz-nav .spacer { flex:1; }
.wiz-nav .btn { min-width:130px; justify-content:center; }
.wiz-steps li { flex:1 1 0; min-width:0; }
.wiz-steps button { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:9px 10px; border-radius:14px; background:var(--card); color:var(--muted); box-shadow:var(--shadow); font-size:.86rem; border:2px solid transparent; }
.wiz-steps button:hover:not(:disabled) { background:var(--soft); transform:none; box-shadow:var(--shadow); }
.wiz-steps button:disabled { opacity:.55; cursor:not-allowed; }
.wiz-steps .num { width:26px; height:26px; border-radius:50%; background:var(--soft); color:var(--navy); display:grid; place-items:center; font-weight:700; flex:none; }
.wiz-steps button.on { color:var(--navy); border-color:var(--orange); } .wiz-steps button.on .num { background:var(--orange); color:#fff; }
.wiz-steps button.done .num { background:var(--green-d); color:#fff; font-size:0; } .wiz-steps button.done .num::before { content:"✓"; font-size:.9rem; }
.wstep[hidden] { display:none; }
.js-wizard .wstep { animation:stepin .35s ease; }
@keyframes stepin { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:none; } }
.review { background:var(--soft); border-radius:14px; padding:14px 18px; margin:16px 0 0; } .review h3 { margin-bottom:8px; }
.review dl { display:grid; grid-template-columns:auto 1fr; gap:4px 16px; margin:0; } .review dt { color:var(--muted); } .review dd { margin:0; font-weight:600; word-break:break-word; }
@media (max-width:640px) {
  .wiz-steps .lbl { display:none; } .wiz-steps .on .lbl { display:inline; font-weight:700; } .wiz-steps li:has(.on) { flex:3 1 0; }
  .js-wizard .wiz-nav { margin:0 -4px; } .wiz-nav .btn { min-width:0; flex:1; }
  .wiz-nav .spacer { display:none; }
}
@media (prefers-reduced-motion: reduce) { .js-wizard .wstep { animation:none; } }

.fs legend { float:left; width:100%; padding:0; margin:0 0 14px; }
.fs legend + * { clear:both; }

/* details read from the ID number */
.id-info { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; background:#e1efd8; border:1px solid #b6d9a0; border-radius:14px; padding:12px 14px; animation:stepin .3s ease; }
.id-info div span { display:block; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--green-d); }
.id-info div b { font-size:1.05rem; color:var(--navy); }
.id-info small { grid-column:1 / -1; color:var(--muted); }
@media (max-width:640px) { .id-info { grid-template-columns:1fr 1fr; } .id-info div:first-child { grid-column:1 / -1; } }

/* contact us */
.top-contact a { margin-left:14px; }
.contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:26px; align-items:start; margin-bottom:10px; }
.contact-cards { display:grid; gap:14px; }
.ccard { display:flex; gap:16px; align-items:center; background:var(--card); border-radius:var(--radius); padding:16px 18px; box-shadow:var(--shadow); text-decoration:none; color:var(--ink); border-left:5px solid var(--blue); transition:transform .15s; }
a.ccard:hover { transform:translateY(-2px); }
.ccard:nth-child(2) { border-left-color:var(--green); } .ccard:nth-child(3) { border-left-color:var(--orange); }
.ccard .icon { margin:0; flex:none; } .ccard small { color:var(--muted); display:block; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
.ccard b { display:block; font-size:.98rem; color:var(--navy); overflow-wrap:anywhere; } .ccard em { font-style:normal; color:var(--muted); font-size:.88rem; }
.contact-logo { width:150px; height:150px; border-radius:50%; background:var(--paper); box-shadow:0 0 0 4px var(--gold); justify-self:center; margin-top:8px; }
.contact-cards .slogan { justify-self:center; text-align:center; color:var(--navy); background:rgba(14,58,82,.08); border-left-color:var(--orange); }
.contact-form { max-width:none; margin:0; } .contact-form h2 { margin-top:0; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-list { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
@media (max-width:860px) { .contact-grid { grid-template-columns:1fr; } .top-contact a { margin:0 10px 0 0; } }

/* legal documents */
.legal-doc { max-width:820px; } .legal-doc h2 { margin-top:2rem; font-size:1.3rem; } .legal-doc .ticks { margin-bottom:1rem; }
.legal-doc .table-wrap { margin:12px 0; }
