/* The Energized CEO Score, assessment styles
   Brand: deep navy #1B2A4A, gold #C9A84C, white. Montserrat only, per Book-Cover-Brief.
   Hierarchy comes from weight and size, never from a second family. */

:root{
  --navy:#1B2A4A;
  --navy-2:#2C3F66;
  --navy-3:#5A6A8A;
  --gold:#C9A84C;
  --gold-deep:#A5862F;
  --gold-wash:#FAF4E4;

  --ground:#FBFAF8;
  --panel:#FFFFFF;
  --panel-2:#F3F2EE;
  --rule:#E2E0D9;
  --rule-2:#EEEDE8;

  --ink:#1B2A4A;
  --ink-2:#4C5A78;
  --ink-3:#7D8AA3;

  /* semantic band scale, state, not identity */
  --band-1:#A33A35;
  --band-2:#C4703A;
  --band-3:#C9A84C;
  --band-4:#2F7A62;

  --focus:#C9A84C;
  --lift:0 1px 2px rgba(27,42,74,.06), 0 12px 32px -16px rgba(27,42,74,.28);

  --f:"Montserrat","Segoe UI",Helvetica,Arial,sans-serif;
  --col:620px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --navy:#E8EDF6;
    --navy-2:#B9C6DE;
    --navy-3:#8595B4;
    --gold:#D9BB68;
    --gold-deep:#C9A84C;
    --gold-wash:#241E10;

    --ground:#101725;
    --panel:#18202F;
    --panel-2:#212B3D;
    --rule:#2E3950;
    --rule-2:#232D3F;

    --ink:#E8EDF6;
    --ink-2:#AEBBD2;
    --ink-3:#7F8DA8;

    --band-1:#CB5E58;
    --band-2:#D98B52;
    --band-3:#D9BB68;
    --band-4:#4CA184;

    --lift:0 1px 2px rgba(0,0,0,.4), 0 12px 32px -16px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --navy:#E8EDF6; --navy-2:#B9C6DE; --navy-3:#8595B4;
  --gold:#D9BB68; --gold-deep:#C9A84C; --gold-wash:#241E10;
  --ground:#101725; --panel:#18202F; --panel-2:#212B3D;
  --rule:#2E3950; --rule-2:#232D3F;
  --ink:#E8EDF6; --ink-2:#AEBBD2; --ink-3:#7F8DA8;
  --band-1:#CB5E58; --band-2:#D98B52; --band-3:#D9BB68; --band-4:#4CA184;
  --lift:0 1px 2px rgba(0,0,0,.4), 0 12px 32px -16px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--f);font-size:15px;line-height:1.55;
  padding-block:0 0;padding-left:18px;padding-right:18px;
  -webkit-font-smoothing:antialiased;
}
.shell{max-width:var(--col);margin:0 auto;padding-block:28px 64px}
.shell.wide{max-width:940px}

h1,h2,h3{margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-weight:800;font-size:clamp(27px,5.4vw,40px);line-height:1.08}
h2{font-weight:800;font-size:clamp(20px,3.4vw,26px);line-height:1.15}
h3{font-weight:700;font-size:15px;line-height:1.3}
p{margin:0}

.eyebrow{
  font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--gold-deep);
}
.sub{color:var(--ink-2);font-size:15.5px;line-height:1.6}
.fine{color:var(--ink-3);font-size:12.5px}

/* ---------- brand bar ---------- */
.brandbar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-block:18px;border-bottom:1px solid var(--rule);margin-bottom:30px;
}
.mark{display:flex;align-items:center;gap:10px;min-width:0}
.mark .wordmark{
  font-weight:800;font-size:14px;letter-spacing:.02em;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mark .rule{width:22px;height:3px;background:var(--gold);flex:none;border-radius:2px}
.placeholder-slot{
  border:1px dashed var(--gold-deep);color:var(--gold-deep);background:var(--gold-wash);
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 8px;border-radius:3px;
}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--f);font-weight:700;font-size:14.5px;letter-spacing:.01em;
  padding:13px 24px;border-radius:3px;border:1.5px solid transparent;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  text-decoration:none;transition:background .14s,color .14s,border-color .14s;
}
.btn-primary{background:var(--navy);color:var(--ground);border-color:var(--navy)}
.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn-gold{background:var(--gold);color:#1B2A4A;border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-deep);border-color:var(--gold-deep)}
.btn-quiet{background:transparent;color:var(--ink-2);border-color:var(--rule)}
.btn-quiet:hover{color:var(--ink);border-color:var(--ink-3)}
.btn:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.btn[disabled]{opacity:.4;cursor:not-allowed}

/* ---------- screens ---------- */
.screen{display:none;flex-direction:column;gap:26px}
.screen.on{display:flex}

/* intro */
.intro-drivers{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;
}
.idrv{background:var(--panel);padding:15px 16px;display:flex;flex-direction:column;gap:4px}
.idrv .n{font-size:11px;font-weight:700;color:var(--gold-deep);letter-spacing:.08em}
.idrv .t{font-weight:700;font-size:14px}
.idrv .d{font-size:12.5px;color:var(--ink-3);line-height:1.4}
.facts{display:flex;flex-wrap:wrap;gap:8px}
.fact{
  background:var(--panel-2);border:1px solid var(--rule-2);border-radius:99px;
  padding:5px 13px;font-size:12.5px;font-weight:600;color:var(--ink-2);
}

/* progress */
.prog{display:flex;flex-direction:column;gap:9px}
.prog-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.prog-meta .lbl{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.prog-meta .cnt{font-size:12.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.prog-track{height:4px;background:var(--rule-2);border-radius:99px;overflow:hidden}
.prog-fill{height:100%;background:var(--gold);border-radius:99px;transition:width .3s ease}
@media (prefers-reduced-motion:reduce){.prog-fill{transition:none}}

/* question */
.qcard{display:flex;flex-direction:column;gap:22px;min-height:340px}
.qtext{font-weight:700;font-size:clamp(19px,3.6vw,24px);line-height:1.3;text-wrap:balance}
.opts{display:flex;flex-direction:column;gap:9px}
.opt{
  display:flex;align-items:flex-start;gap:13px;cursor:pointer;
  padding:15px 17px;border:1.5px solid var(--rule);border-radius:4px;
  background:var(--panel);transition:border-color .12s,background .12s;
}
.opt:hover{border-color:var(--gold)}
.opt input{
  appearance:none;width:17px;height:17px;flex:none;margin:2px 0 0;border-radius:50%;
  border:1.5px solid var(--ink-3);background:transparent;transition:border .12s;
}
.opt input:checked{border:5px solid var(--gold-deep)}
.opt input:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.opt:has(input:checked){border-color:var(--gold-deep);background:var(--gold-wash)}
.opt span{flex:1;font-size:15px;line-height:1.45;font-weight:500}
.qnav{display:flex;gap:10px;align-items:center}

/* gate */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.field input{
  font-family:var(--f);font-size:16px;font-weight:500;padding:13px 14px;
  border:1.5px solid var(--rule);border-radius:4px;background:var(--panel);color:var(--ink);
}
.field input:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-color:var(--gold-deep)}
.field .err{font-size:12.5px;color:var(--band-1);font-weight:600;display:none}
.field.bad input{border-color:var(--band-1)}
.field.bad .err{display:block}

/* ---------- results ---------- */
.report{
  background:var(--panel);border:1px solid var(--rule);border-radius:4px;
  box-shadow:var(--lift);padding:26px 24px;display:flex;flex-direction:column;gap:28px;
}
.gauge-row{display:flex;flex-wrap:wrap;gap:22px;align-items:center}
.gauge-wrap{flex:1 1 290px;min-width:250px;max-width:380px}
.gauge-wrap svg{width:100%;height:auto;display:block}
.overall{flex:1 1 210px;min-width:200px;display:flex;flex-direction:column;gap:2px}
.overall .num{
  font-weight:800;line-height:.88;font-size:clamp(62px,14vw,88px);
  font-variant-numeric:tabular-nums;letter-spacing:-.03em;
}
.overall .band{font-weight:800;font-size:22px;line-height:1.15;margin-top:10px}
.overall .note{color:var(--ink-2);font-size:13.5px;line-height:1.5;max-width:34ch;margin-top:5px}

.drivers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}
@media (max-width:640px){.drivers{grid-template-columns:1fr}}
.drv{display:flex;flex-direction:column;gap:5px}
.drv-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.drv-name{font-weight:700;font-size:14px}
.drv-score{font-weight:800;font-size:20px;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em}
.track-area{position:relative;padding-top:16px;padding-bottom:3px}
.tgt{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:1px}
.tgt span{font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.tgt i{display:block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--ink-3)}
.track{display:flex;gap:2px;height:7px;border-radius:4px;overflow:hidden}
.track b{display:block;height:100%}
.dot{
  position:absolute;bottom:-3.5px;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--panel);border:3px solid var(--ink);
}
.drv-desc{color:var(--ink-3);font-size:12.5px;line-height:1.42;margin-top:5px}

/* CTA blocks, Value Builder page-30 pattern: headline, paragraph, button. No prices. */
.ctas{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.cta{background:var(--panel);padding:24px;display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.cta.primary{background:var(--gold-wash)}
.cta h3{font-size:18px;font-weight:800}
.cta p{color:var(--ink-2);font-size:14.5px;line-height:1.55;max-width:60ch}

.prepared{display:flex;flex-wrap:wrap;gap:26px;border-top:1px solid var(--rule);padding-top:18px}
.prepared div{display:flex;flex-direction:column;gap:2px}
.prepared .k{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.prepared .v{font-weight:700;font-size:15px}

.review-note{
  border-left:3px solid var(--gold);padding:4px 0 4px 15px;color:var(--ink-2);font-size:13.5px;
  display:flex;flex-direction:column;gap:8px;
}
