
:root{--navy:#052a4d;--blue:#0a67a3;--cyan:#43b9e8;--ink:#15364d;--muted:#678092;--line:#dce7ef;--bg:#f4f8fb;--green:#16845b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.shell{width:min(1120px,calc(100% - 30px));margin:auto}.top{background:#fff;border-bottom:1px solid var(--line)}.top-inner{height:78px;display:flex;align-items:center;justify-content:space-between}.top img{width:140px;max-height:58px;object-fit:contain}.top span{font-size:13px;font-weight:800;color:var(--navy)}
main{padding:48px 0 70px}.hidden{display:none!important}.portal-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 18px 50px rgba(5,42,77,.07)}
#loadingCard,#errorCard{text-align:center;max-width:650px;margin:80px auto}.loader{width:44px;height:44px;border:4px solid #d9e8f1;border-top-color:var(--blue);border-radius:50%;margin:0 auto 20px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.quote-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--blue);margin:0 0 8px}.quote-head h1{margin:0;color:var(--navy);font-size:34px}.quote-head p{margin:7px 0 0;color:var(--muted)}
.secure-pill{background:#e9f6fb;color:#11648b;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800}.layout{display:grid;grid-template-columns:1.35fr .65fr;gap:24px;align-items:start}
.client-block small,.package-title small{color:var(--muted);font-weight:800}.client-block h2,.package-title h2{color:var(--navy);margin:4px 0}.client-block p{margin:0;color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.package-title{display:flex;justify-content:space-between;gap:18px;align-items:center}.package-title>strong{font-size:30px;color:var(--navy);white-space:nowrap}.scope-list{display:grid;gap:10px;margin:24px 0}.scope-item{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.scope-item:before{content:"✓";color:var(--green);font-weight:900;margin-right:10px}
.terms{background:#f7fafc;border-radius:16px;padding:18px;margin-top:22px}.terms h3,.notes h3{margin:0 0 12px;color:var(--navy)}.term-grid{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:14px}.term-grid span{color:var(--muted)}
.notes{margin-top:22px}.notes p{white-space:pre-wrap;color:#506b7d;line-height:1.6}.checkout{position:sticky;top:24px}.checkout h2{color:var(--navy);font-size:28px;margin:5px 0 10px}.checkout>p{line-height:1.6;color:var(--muted)}
.accept-row{display:flex;gap:11px;font-size:13px;line-height:1.5;margin:20px 0}.accept-row input{width:19px;height:19px;flex:0 0 19px}
.primary-btn,.secondary-btn,.payfast-btn{width:100%;border:0;border-radius:13px;padding:14px 16px;font:inherit;font-weight:900;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center}.primary-btn{background:var(--blue);color:#fff}.secondary-btn{background:#edf4f8;color:var(--navy);max-width:230px;margin:18px auto 0}.payfast-btn{margin-top:12px;background:#fff;border:2px solid #1d3d71;color:#1d3d71;flex-direction:column;gap:1px}.payfast-btn span{font-size:11px;font-weight:700}.payfast-btn strong{font-size:20px}
.primary-btn:disabled{opacity:.5;cursor:not-allowed}.pending-box{margin-top:14px;padding:14px;border-radius:12px;background:#fff4dd;color:#74540c;font-size:13px;line-height:1.5}.small{font-size:11px!important;text-align:center}.status-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;font-size:26px;font-weight:900}.status-icon.error{background:#ffe8e8;color:#b32323}
footer{background:var(--navy);color:#d7e6f0;padding:24px 0;font-size:12px;text-align:center}
@media(max-width:820px){main{padding-top:28px}.layout{grid-template-columns:1fr}.checkout{position:static}.quote-head{align-items:start;flex-direction:column}.package-title{align-items:start;flex-direction:column}.package-title>strong{font-size:28px}.portal-card{padding:20px;border-radius:18px}.top-inner{height:68px}.top img{width:122px}.top span{font-size:11px}.quote-head h1{font-size:28px}}
