:root{
  --ink:#1d1d1f; --slate:#6e6e73; --line:#d2d2d7; --bg:#fbfbfd; --card:#ffffff;
  --blue:#004990; --blue-dark:#00356b; --soft:#f5f5f7; --gold:#caa53d; --gold-soft:#fff6da;
  --green:#1d8a4e; --amber:#b25e00; --red:#c8102e; --shadow:0 1px 3px rgba(0,0,0,.06),0 8px 28px rgba(0,0,0,.06);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--blue) 64%,var(--gold))}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5;font-size:16px}
a{color:var(--blue);text-decoration:none}
.muted{color:var(--slate)}
.brandlogo{height:34px;width:auto;display:block;flex-shrink:0}
.center{text-align:center}
button{font-family:inherit;font-size:16px;cursor:pointer;border:none}
.btn{background:var(--blue);color:#fff;border-radius:980px;padding:13px 26px;font-weight:500;transition:.15s}
.btn:hover{background:var(--blue-dark)}
.btn:disabled{opacity:.4;cursor:default}
.btn-ghost{background:transparent;color:var(--blue);border:1px solid var(--line);border-radius:980px;padding:12px 24px}
.btn-ghost:hover{background:var(--soft)}
.btn-sm{padding:8px 16px;font-size:14px}
/* Keyboard users get a visible ring on everything interactive; mouse clicks don't. */
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ---------- public form ---------- */
.public-wrap{max-width:660px;margin:0 auto;padding:0 24px 80px}
.topbar{display:flex;align-items:center;gap:14px;padding:24px 0 16px;margin-bottom:18px;border-bottom:1px solid var(--line);color:var(--slate);font-size:14px}
.topbar > span{padding-left:14px;border-left:1px solid var(--line);color:var(--ink);font-weight:600}
.topbar .dot{width:26px;height:26px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.progress{height:4px;background:var(--soft);border-radius:99px;overflow:hidden;margin:8px 0 40px}
.progress > i{display:block;height:100%;width:100%;background:var(--blue);border-radius:99px;transform-origin:left;transition:transform .35s ease}
.step{animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.eyebrow{color:var(--blue);font-weight:600;font-size:14px;letter-spacing:.02em;margin-bottom:10px}
h1.q{font-size:34px;line-height:1.15;font-weight:700;margin:0 0 12px;letter-spacing:-.02em}
.sub{color:var(--slate);font-size:18px;margin:0 0 32px}
label.fl{display:block;font-weight:600;font-size:15px;margin:18px 0 7px}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;font-size:16px;font-family:inherit;background:#fff;transition:.15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,73,144,.14)}
/* headings receive programmatic focus on step change for screen readers — no visible ring */
[tabindex="-1"]:focus{outline:none}
textarea{min-height:120px;resize:vertical}
.choice{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:18px 20px;margin-bottom:12px;font-size:17px;font-weight:500;transition:.15s}
.choice:hover{border-color:var(--blue);background:#fbfdff}
.choice.sel{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,73,144,.16)}
.choice small{display:block;color:var(--slate);font-weight:400;font-size:14px;margin-top:3px}
.nav{display:flex;justify-content:space-between;align-items:center;margin-top:40px}
.notice{background:#fff7ed;border:1px solid #fde0b8;color:#7a4a00;padding:18px 20px;border-radius:16px;margin:8px 0 24px}
.notice.blue{background:#eef6ff;border-color:#cfe5ff;color:#0a4a8a}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.refbox{font-size:30px;font-weight:700;letter-spacing:.01em;background:var(--soft);border-radius:16px;padding:18px;text-align:center;margin:10px 0}
.passbox{font-size:22px;font-weight:700;letter-spacing:.08em;text-align:center;color:var(--blue)}
.check{width:64px;height:64px;border-radius:50%;background:var(--green);display:grid;place-items:center;margin:0 auto 18px}
.check svg{width:32px;height:32px}
.inline-link{background:none;color:var(--blue);padding:0;font-size:15px;text-decoration:underline}
.hidden{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:540px){.row2{grid-template-columns:1fr}h1.q{font-size:27px}}
.foot{margin-top:60px;padding-top:22px;border-top:1px solid var(--line);color:var(--slate);font-size:13px}
