/* ===== Security self-assessment (.sa-*) ===== */
.sa-reassure-row { display:flex; flex-wrap:wrap; gap:18px; justify-content:center; margin-top:18px; }
.sa-reassure { display:inline-flex; align-items:center; gap:7px; font-size:16px; color:var(--text-dim); }
.sa-reassure svg { color:var(--royal); flex-shrink:0; }
.sa-gate-form-wrap { max-width:520px; margin:0 auto; }
.sa-gate-form-wrap .buttons, .sa-gate-form-wrap button[type="submit"] { width:100%; }
.sa-gate-form-wrap button[type="submit"] { justify-content:center; }
.sa-hero { background: var(--bg-soft); border-bottom: 1px solid var(--line); padding: 56px 0 40px; }
.sa-hero .eyebrow { color: var(--royal); }
.sa-section { padding: 48px 0 64px; }
.sa-wrap { max-width: 760px; margin: 0 auto; }
.sa-card { background:#fff; border:1px solid var(--line-2); border-radius: var(--radius-lg); box-shadow: 0 18px 48px rgba(20,16,40,.08); overflow:hidden; }
.sa-pbar { height: 8px; background: var(--line); }
.sa-pbar-fill { height:100%; width:0; background: var(--grad); transition: width .35s ease; }
.sa-pad { padding: 34px 38px 38px; }
@media (max-width:560px){ .sa-pad{ padding:24px 20px 28px; } }
.sa-step-meta { display:flex; justify-content:space-between; align-items:center; font-family:var(--mono); font-size:16px; color:var(--text-dim); letter-spacing:.03em; margin-bottom:14px; }
@media (max-width:560px){ .sa-step-meta{ flex-direction:column; align-items:flex-start; gap:4px; } }
.sa-cat { color: var(--royal); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:16px; }
.sa-q { font-family:'Sora',sans-serif; font-weight:700; font-size:24px; line-height:1.3; color:var(--ink); margin: 4px 0 26px; }
@media (max-width:560px){ .sa-q{ font-size:21px; } }
.sa-opts { display:grid; gap:12px; }
.sa-opt { display:flex; align-items:center; gap:14px; width:100%; text-align:left; cursor:pointer;
  font-size:18px; font-weight:600; color:var(--ink); background:#fff; border:2px solid var(--line-2);
  border-radius:14px; padding:16px 18px; transition: all .15s ease; }
.sa-opt:hover { border-color: var(--royal); background: var(--grad-soft); transform: translateY(-1px); }
.sa-opt .sa-dot { width:22px; height:22px; border-radius:50%; border:2px solid var(--line-2); flex-shrink:0; display:grid; place-items:center; }
.sa-opt.is-sel { border-color: transparent; background: var(--grad); color:#fff; }
.sa-opt.is-sel .sa-dot { border-color:#fff; }
.sa-opt-na { font-size:16px; color:var(--text-dim); }
.sa-nav { display:flex; justify-content:space-between; align-items:center; margin-top:24px; }
@media (max-width:560px){ .sa-nav{ flex-direction:column-reverse; align-items:flex-start; gap:10px; } }
.sa-back { background:none; border:none; cursor:pointer; color:var(--text-dim); font-size:16px; font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.sa-back:hover { color:var(--royal); }
.sa-back[disabled]{ opacity:.4; cursor:default; }
.sa-help { font-size:16px; color:var(--text-dim); }
/* gate (lead capture before results) */
.sa-gate-pre .sa-gate-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .sa-gate-pre .sa-gate-row{ grid-template-columns:1fr; } }
.sa-gate-pre .field { margin-bottom:14px; }
/* results */
.sa-results { display:none; }
.sa-results.show { display:block; }
.sa-quiz.hide { display:none; }
.sa-score-head { text-align:center; padding: 8px 0 6px; }
.sa-gauge { position:relative; width:188px; height:188px; margin: 6px auto 14px; }
.sa-gauge svg { transform: rotate(-90deg); }
.sa-gauge-num { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.sa-gauge-num b { font-family:'Sora',sans-serif; font-size:46px; line-height:1; color:var(--ink); }
.sa-gauge-num span { font-size:16px; color:var(--text-dim); }
.sa-tier { font-family:'Sora',sans-serif; font-weight:700; font-size:24px; }
.sa-tier-sub { font-size:17px; color:var(--text-dim); max-width:520px; margin: 8px auto 0; }
.sa-bars { margin: 30px 0 6px; display:grid; gap:16px; }
.sa-bar-top { display:flex; justify-content:space-between; font-size:16px; font-weight:600; color:var(--ink); margin-bottom:7px; }
.sa-bar-top .sa-bar-pct { color:var(--text-dim); font-family:var(--mono); }
.sa-bar-track { height:12px; background:var(--line); border-radius:99px; overflow:hidden; }
.sa-bar-fill { height:100%; border-radius:99px; transition: width .6s ease; }
.sa-bar-cap { font-size:16px; color:var(--text-dim); margin-top:6px; line-height:1.5; }
.sa-recs { margin-top:30px; border-top:1px solid var(--line); padding-top:26px; }
.sa-recs h3 { font-size:20px; margin-bottom:14px; }
.sa-rec { display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px dashed var(--line-2); }
.sa-rec:last-child{ border-bottom:none; }
.sa-rec-ic { width:38px;height:38px;flex-shrink:0;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--grad); }
.sa-rec-b strong { display:block; font-size:17px; color:var(--ink); }
.sa-rec-b span { font-size:16px; color:var(--text-dim); }
.sa-rec-b a { font-size:16px; font-weight:600; }
/* why-this-score explainer */
.sa-explain { background:var(--bg-soft); border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin-top:6px; }
.sa-explain p { font-size:16px; color:var(--text-dim); margin:0; }
.sa-explain strong { color:var(--ink); }
/* schedule-a-call CTA in results */
.sa-callcta { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:30px; background:var(--grad); border-radius:var(--radius-lg); padding:26px 28px; }
.sa-callcta-ic { width:54px; height:54px; flex-shrink:0; border-radius:14px; display:grid; place-items:center; background:rgba(255,255,255,.16); color:#fff; }
.sa-callcta-body { flex:1; min-width:240px; }
.sa-callcta-body h3 { color:#fff; font-size:21px; margin:0 0 4px; }
.sa-callcta-body p { color:rgba(255,255,255,.88); font-size:16px; margin:0; }
.sa-callcta .btn { background:#fff; color:#5b2bd6; border-color:#fff; }
.sa-callcta .btn:hover { background:#f3f0ff; }

@media (max-width:560px){
  .sa-callcta{ flex-direction:column; align-items:stretch; text-align:center; }
  .sa-callcta .btn{ width:100%; justify-content:center; }
}
