/* MCA Exposure Self-Assessment (page-mca-exposure-assessment.php), ported from learn.delanceyst.com.
   Loaded only on that page. There is deliberately no .ds-assess padding/background rule: on
   learn that rule never applied, and this file reproduces the page as it renders there. */

/* ===========================================================================
   TCPA consent checkbox (.ds-form__consent)

   Replaces .ds-form__consent-note, which was passive microcopy under a
   hardcoded consent=1. This is a real required checkbox — the legal text IS
   the label, so it must stay visually associated with the box and must not be
   shrunk into unreadability. 12px against the old note's 11px, and normal
   contrast rather than --ds-muted, deliberately: consent language a visitor
   cannot comfortably read is the first thing challenged.

   Language approved by Lauren 2026-09-03; wording lives in ds_consent_field().
   =========================================================================== */

.ds-form__consent {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 6px;
  margin-top: 16px;
  text-align: left;
}

.ds-form__consent-box {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--ds-cyan);
  cursor: pointer;
}

/* The element selector matters. `.ds-form label` above is (0,1,1) and this
   block was (0,1,0), so for as long as both existed the consent text rendered
   with the FIELD LABEL style — 11px, weight 800, UPPERCASE, 0.10em tracking.
   That, not the font size, is what "too bold and big" was describing. Qualify
   with `.ds-form label` so this actually wins; do not drop back to a bare
   class selector. */
.ds-form label.ds-form__consent-text {
  /* 9px at Rodrigo's request, 2026-10-06, to match the approved mock.
     Recorded because it is below the floor the note at the top of this block
     argues for: the wording was approved by Lauren on 3 Sept and consent a
     visitor cannot comfortably read is the first thing challenged. Raising it
     is a one-number change. */
  font-size: 9px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.5;
  color: var(--ds-ink-3);
  display: block;
  margin-bottom: 0;
  cursor: pointer;
  /* Full width of the form rather than the old 70ch cap. */
  max-width: none;
}

.ds-form__consent { width: 100%; }

.ds-form__consent-text a {
  color: inherit;
  text-decoration: underline;
}

.ds-form__consent-text a:hover { color: var(--ds-cyan-text); }

/* Keyboard focus must be obvious on a required legal control. */
.ds-form__consent-box:focus-visible {
  outline: 2px solid var(--ds-cyan);
  outline-offset: 2px;
}

/* Dark form surfaces (final CTA on the MCA pages) invert the text colour. */
.ds-mca-final-cta__form .ds-form__consent-text { color: rgba(255, 255, 255, 0.82); }

/* ===========================================================================
   MCA Exposure Self-Assessment  (page-mca-exposure-assessment.php)

   Everything else on that page reuses existing classes — .ds-inner-hero--forms,
   .ds-apply__form-card / __form-head / __form-h / __form-sub, .ds-apply__progress,
   .ds-apply-fields / -field, .ds-apply-back, .ds-apply__benefits*, .ds-cta,
   .ds-form__consent-note. This block is only what had no equivalent: the section
   grid, the radio option rows, step visibility, inline errors and the results panel.

   .ds-assess-opt matches .ds-apply-option visually but wraps a real
   <input type="radio">. The theme's version is a <button> plus a hidden input
   driven by the apply-wizard JS, which would never reach FormData and would not
   work with JS disabled. The wizard JS is scoped to [data-apply-wizard], which
   the assessment form deliberately does not set, so the two never collide.
   =========================================================================== */
.ds-assess__inner{max-width:var(--ds-page-max);margin:0 auto;display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:start}
@media(max-width:1000px){.ds-assess__inner{grid-template-columns:1fr}}

.ds-assess-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.ds-assess-chip{display:inline-flex;align-items:center;gap:8px;background:var(--ds-cyan-soft);border:1px solid rgba(0,184,240,.35);color:var(--ds-cyan-text);padding:8px 14px;border-radius:var(--ds-radius-pill);font-size:12px;font-weight:800;letter-spacing:.04em}
.ds-assess-chip svg{flex:none;color:var(--ds-cyan-deep)}

/* Stepping is opt-in via .is-stepped, added by the script. With JS disabled
   both panels stay visible and the form still works as one long form — same
   no-JS convention as .ds-apply-wizard. */
.ds-assess-step{display:block}
.is-stepped .ds-assess-step{display:none}
.is-stepped .ds-assess-step.is-active{display:block}

.ds-assess-card{padding:26px 0;border-top:1px solid var(--ds-line-soft)}
.ds-assess-card:first-of-type{border-top:0;padding-top:2px}
.ds-assess-num{display:block;font-size:11px;font-weight:800;letter-spacing:var(--ds-tracking-eyebrow);text-transform:uppercase;color:var(--ds-cyan-text);margin-bottom:8px}
.ds-assess-q{font-size:20px;font-weight:800;color:var(--ds-ink);letter-spacing:var(--ds-tracking-snug);line-height:1.3;margin:0 0 6px}
.ds-assess-card.is-bad .ds-assess-q{color:var(--ds-danger)}
.ds-assess-help{font-size:14px;color:var(--ds-ink-3);font-weight:500;margin:0 0 16px}

/* Visual parity with .ds-apply-option, but built on a real <input type="radio">
   so the answer reaches FormData and the group still works without JS. */
.ds-assess-opts{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.ds-assess-opt{display:flex;align-items:center;gap:14px;padding:16px 20px;border:1.5px solid var(--ds-line);border-radius:var(--ds-radius-button);background:#fff;cursor:pointer;font-size:16px;font-weight:700;color:var(--ds-ink);transition:border-color 160ms ease,background 160ms ease}
.ds-assess-opt:hover{border-color:var(--ds-cyan);background:var(--ds-paper-2)}
.ds-assess-opt.is-selected{border-color:var(--ds-cyan);background:var(--ds-paper-2)}
.ds-assess-opt:has(input:checked){border-color:var(--ds-cyan);background:var(--ds-paper-2)}
.ds-assess-opt:has(input:focus-visible){outline:2px solid var(--ds-cyan);outline-offset:2px}
.ds-assess-opt input{accent-color:var(--ds-cyan-deep);width:18px;height:18px;flex:none;margin:0}

.ds-assess-nums{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
@media(max-width:560px){.ds-assess-nums{grid-template-columns:1fr}}
.ds-assess-note{font-size:12px;color:var(--ds-muted);font-weight:500;margin-top:6px}

.ds-assess-err{color:var(--ds-danger);font-size:13px;font-weight:700;margin:12px 0 0}
.ds-assess-err[hidden]{display:none}
.ds-apply-field input.is-bad{border-color:var(--ds-danger)}

.ds-assess-nav{display:flex;align-items:center;gap:18px;margin-top:30px;flex-wrap:wrap}
.ds-assess-consent{margin-top:18px}

/* --- results --- */
.ds-assess-band{border-radius:18px;padding:28px;border:1px solid;margin-bottom:18px}
.ds-assess-band h2{font-size:28px;font-weight:900;letter-spacing:-.015em;line-height:1.15;margin:0 0 10px}
.ds-assess-band p{margin:0;font-size:15px;line-height:1.65;color:var(--ds-ink-3);font-weight:500}
.ds-assess-band--low{background:#EAF7F1;border-color:#BFE6D4}      .ds-assess-band--low h2{color:var(--ds-success)}
.ds-assess-band--moderate{background:#FDF6E7;border-color:#F0DFB4} .ds-assess-band--moderate h2{color:#A8791B}
.ds-assess-band--elevated{background:#FBEFE3;border-color:#EFD4B5} .ds-assess-band--elevated h2{color:#BD661F}
.ds-assess-band--high{background:#FBECEC;border-color:#F0C9C9}     .ds-assess-band--high h2{color:var(--ds-danger)}

.ds-assess-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
@media(max-width:560px){.ds-assess-stats{grid-template-columns:1fr}}
.ds-assess-stat{background:#fff;border:1px solid var(--ds-line);border-radius:14px;padding:18px 20px}
.ds-assess-stat .n{font-size:30px;font-weight:900;letter-spacing:-.02em;line-height:1.1;color:var(--ds-ink)}
.ds-assess-stat .l{font-size:12px;color:var(--ds-muted);font-weight:600;margin-top:4px}

.ds-assess-panel{background:#fff;border:1px solid var(--ds-line);border-radius:18px;padding:28px;margin-bottom:18px}
.ds-assess-panel h3{font-size:18px;font-weight:800;color:var(--ds-ink);letter-spacing:var(--ds-tracking-snug);margin:0 0 16px}
.ds-assess-flag{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--ds-line-soft);font-size:14.5px;line-height:1.6;color:var(--ds-ink-3);font-weight:500}
.ds-assess-flag:first-of-type{border-top:0;padding-top:0}
.ds-assess-flag .dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:8px}
.ds-assess-flag b{color:var(--ds-ink);font-weight:800}
.ds-assess-steps{margin:0;padding-left:22px;font-size:14.5px;line-height:1.65;color:var(--ds-ink-3);font-weight:500}
.ds-assess-steps li{margin-bottom:12px}
.ds-assess-cta-p{font-size:15px;line-height:1.65;color:var(--ds-ink-3);font-weight:500;margin:0 0 22px}
.ds-assess-cta-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ds-assess-tel{font-size:22px;font-weight:900;color:var(--ds-ink);letter-spacing:var(--ds-tracking-snug);text-decoration:none;line-height:1.1}
.ds-assess-tel:hover{color:var(--ds-cyan)}
.ds-assess-restart{background:none;border:0;color:var(--ds-ink-3);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:10px 0}
.ds-assess-restart:hover{color:var(--ds-cyan)}

.ds-assess-legal{max-width:var(--ds-page-max);margin:0 auto;padding:8px var(--ds-page-pad-x) 72px;font-size:12px;line-height:1.7;color:var(--ds-muted);font-weight:500}
