/* =============================================================
   CFL Cleaners — Decision Desk product layer
   Loaded after assets/styles.css on the public Desk route only.
   Phone-first: every rule below starts at the small screen and
   widens with min-width queries. One question per screen, large
   targets, no card wall.
   ============================================================= */

.desk-body{
  --warn:#b45309;
  --warn-bg:#fffaf0;
  --stop:#b42318;
  --stop-bg:#fff5f4;
  --go:#0f766e;
  --rail:#cbd5e1;
  background-image:none;
  background:var(--paper);
}
.desk-body main{display:block}
.desk-body ::selection{background:#dbeafe}

/* keep long unbroken tokens (URLs, $ ranges) inside the phone frame */
.desk-body p,.desk-body li,.desk-body h1,.desk-body h2,.desk-body h3,.desk-body h4,
.desk-body a,.desk-body span,.desk-body b{overflow-wrap:anywhere}
.desk-body :focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.desk-body .run-input input:focus-visible{outline:0}

/* ---------- 1. first screen ---------- */
.desk-first{
  background:var(--night);
  background-image:
    radial-gradient(760px 380px at 8% -10%, rgba(37,99,235,.35), transparent 62%),
    var(--tile);
  color:var(--paper);
  padding:clamp(28px,7vw,68px) var(--gutter) clamp(26px,5vw,48px);
}
.desk-first .desk-kicker{
  margin:0 0 14px;
  font-size:.66rem;font-weight:750;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sun);
}
.desk-first h1{
  margin:0;
  color:#fff;
  font-size:clamp(2.05rem,8.4vw,3.6rem);
  line-height:1.05;
  letter-spacing:-.025em;
  max-width:16ch;
}
.desk-first .desk-lead{
  margin:16px 0 0;
  max-width:52ch;
  color:rgba(245,247,251,.82);
  font-size:1.02rem;
}
.desk-hero-intro{display:grid;gap:24px;align-items:center}
.desk-hero-copy{min-width:0}
.desk-hero-brand{display:flex;justify-content:center;align-items:center}
.desk-hero-logo{display:block;width:min(62vw,260px);height:auto;filter:drop-shadow(0 18px 28px rgba(0,0,0,.24))}
.desk-first .desk-rule{
  margin:24px 0 0;height:1px;border:0;
  background:linear-gradient(90deg,rgba(147,197,253,.85),rgba(147,197,253,0));
}

/* the situation list — rows, not a card grid */
.desk-situations{
  display:grid;gap:10px;
  margin:22px 0 0;
}
.situation{
  display:grid;
  grid-template-columns:44px 1fr auto;
  align-items:start;
  gap:14px;
  min-height:64px;
  padding:16px 16px 16px 14px;
  border:1px solid rgba(147,197,253,.24);
  border-radius:12px;
  background:rgba(255,255,255,.045);
  color:var(--paper);
  text-decoration:none!important;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.situation:hover,.situation:focus-visible{
  background:rgba(255,255,255,.10);
  border-color:var(--sun);
  transform:translateY(-1px);
  text-decoration:none;
}
.situation-mark{
  display:grid;place-items:center;
  width:44px;height:44px;
  border-radius:10px;
  background:rgba(147,197,253,.14);
  border:1px solid rgba(147,197,253,.30);
}
.desk-glyph{width:22px;height:22px;fill:none;stroke:var(--sun);stroke-width:1.5;stroke-linecap:round}
.situation-body{display:grid;gap:4px;min-width:0}
.situation-title{
  font-family:"Fraunces",Georgia,serif;
  font-weight:640;font-size:1.14rem;line-height:1.22;letter-spacing:-.01em;
  color:#fff;
}
.situation-cue{font-size:.9rem;color:rgba(245,247,251,.72);line-height:1.45}
.situation-outcome{
  font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--sun);margin-top:2px;
}
.situation-go{display:grid;justify-items:end;gap:6px;align-self:center}
.situation-min{font-size:.7rem;font-weight:700;letter-spacing:.09em;color:rgba(245,247,251,.55)}
.situation-arrow{font-size:1.2rem;color:var(--sun);line-height:1}
.desk-first-foot{
  margin:20px 0 0;
  font-size:.82rem;color:rgba(245,247,251,.6);max-width:60ch;
}

@media(min-width:820px){
  .desk-hero-intro{grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);gap:clamp(32px,6vw,82px)}
  .desk-hero-brand{justify-content:flex-end}
  .desk-hero-logo{width:min(100%,390px)}
  .desk-situations{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .desk-first h1{max-width:18ch}
}

/* ---------- 2. below the fold: short ---------- */
.desk-band{padding:clamp(30px,5vw,54px) var(--gutter);border-top:1px solid var(--line)}
.desk-band h2{margin:0 0 6px;font-size:clamp(1.3rem,4.4vw,1.75rem)}
.desk-band .band-lead{margin:0 0 20px;color:var(--ink-2);max-width:62ch}
.desk-band-eyebrow{
  display:block;margin:0 0 8px;
  font-size:.66rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase;color:var(--gulf);
}
.desk-how{display:grid;gap:14px}
.how-item{border-left:2px solid var(--gulf);padding:2px 0 2px 14px}
.how-item h3{margin:2px 0 4px;font-size:1.02rem}
.how-item p{margin:0;color:var(--ink-2);font-size:.93rem}
.how-n{
  margin:0;font-size:.7rem;font-weight:800;letter-spacing:.1em;color:var(--gulf);
}
@media(min-width:760px){.desk-how{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}}

.continue-box{
  border:1px solid var(--line);border-left:3px solid var(--gulf);
  border-radius:12px;background:var(--card);
  padding:16px;
}
.continue-kicker{margin:0;font-size:.68rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.continue-box h3{margin:4px 0 2px;font-size:1.08rem}
.continue-where{margin:0 0 12px;font-size:.86rem;color:var(--ink-2)}
.continue-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.continue-note{margin:12px 0 0;font-size:.78rem;color:var(--muted)}

/* ---------- 3. the run ---------- */
.run-main{padding:0 var(--gutter) 56px;background:var(--paper)}
.run-shell{max-width:660px;margin:0 auto}
/* Advancing a step scrolls the run back to the top. The site header is
   sticky, so without this the crumb and the progress meter land underneath
   it and the reader loses their place. */
.run-shell{scroll-margin-top:88px}
.run-crumb{
  display:inline-block;margin:18px 0 12px;
  font-size:.84rem;font-weight:650;color:var(--ink-2);
}
.run-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 16px 16px;
  box-shadow:var(--shadow-sm);
}
.run-head{margin:0 0 16px}
.run-meter{height:4px;border-radius:99px;background:var(--paper-3);overflow:hidden}
.run-meter-fill{display:block;height:100%;background:var(--gulf);transition:width .2s ease}
.run-step-label{
  margin:8px 0 0;font-size:.7rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}
.run-run-name{
  margin:0 0 6px;font-size:.74rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--gulf);
}
.run-question{
  margin:0;font-size:clamp(1.5rem,6.2vw,2rem);line-height:1.14;letter-spacing:-.02em;
}
.run-hint{margin:10px 0 0;color:var(--ink-2);font-size:.93rem}

.run-options{display:grid;gap:9px;margin:20px 0 0}
.run-option{
  display:grid;gap:3px;
  width:100%;min-height:58px;
  text-align:left;
  padding:14px 15px;
  border:1.5px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  font:inherit;color:var(--ink);
  cursor:pointer;
  transition:border-color .12s ease,background .12s ease,transform .12s ease;
}
.run-option:hover,.run-option:focus-visible{border-color:var(--gulf);background:#fff;transform:translateY(-1px)}
.run-option-label{font-weight:700;font-size:1.02rem;line-height:1.3}
.run-option-note{font-size:.85rem;color:var(--muted);line-height:1.4}
.run-option.tone-warn{border-left:4px solid var(--warn)}
.run-option.tone-stop{border-left:4px solid var(--stop)}

.run-check{
  display:flex;align-items:flex-start;gap:12px;
  min-height:54px;padding:13px 15px;
  border:1.5px solid var(--line);border-radius:12px;background:var(--paper);
  cursor:pointer;font-size:.98rem;line-height:1.35;
}
.run-check input{width:22px;height:22px;margin:0;flex:0 0 auto;accent-color:var(--gulf)}
.run-check.is-on{border-color:var(--gulf);background:#fff;font-weight:650}

.run-fields{display:grid;gap:18px;margin:20px 0 0}
.run-field label{display:block;font-weight:700;font-size:.93rem;margin:0 0 7px}
.run-input{display:flex;align-items:stretch;border:1.5px solid var(--line);border-radius:11px;background:var(--paper);overflow:hidden}
.run-input:focus-within{border-color:var(--gulf);background:#fff}
.run-input input{
  flex:1 1 auto;min-width:0;
  border:0;background:transparent;
  font:inherit;font-size:1.22rem;font-weight:700;
  padding:13px 12px;color:var(--ink);
}
.run-input input:focus{outline:none}
.run-affix{
  display:grid;place-items:center;padding:0 13px;
  background:var(--paper-2);color:var(--ink-2);
  font-weight:750;font-size:1rem;
}
.run-presets{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 0}
.area-unit-toggle{display:inline-flex;gap:3px;margin:0 0 9px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}
.area-unit-option{min-height:38px;padding:7px 11px;border:0;border-radius:7px;background:transparent;color:var(--ink-2);font:inherit;font-size:.82rem;font-weight:750;cursor:pointer}
.area-unit-option.is-active{background:var(--gulf);color:#fff;box-shadow:0 1px 2px rgba(15,23,42,.16)}
.area-unit-option:focus-visible{outline:2px solid var(--sun);outline-offset:2px}
.area-conversion{margin:8px 0 0;font-size:.9rem;font-weight:750;color:var(--gulf);font-variant-numeric:tabular-nums}
.run-preset{
  border:1px solid var(--line);border-radius:99px;background:var(--card);
  font:inherit;font-size:.84rem;font-weight:650;color:var(--ink-2);
  padding:8px 13px;cursor:pointer;min-height:44px;
}
.run-preset:hover{border-color:var(--gulf);color:var(--gulf)}

.run-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0 0}
.run-next{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:14px 26px;
  border:1px solid var(--gulf);border-radius:11px;background:var(--gulf);
  color:#fff!important;font:inherit;font-weight:750;font-size:1rem;
  cursor:pointer;text-decoration:none!important;
  box-shadow:0 2px 0 #1e3a8a;
}
.run-next:hover{background:var(--gulf-2);border-color:var(--gulf-2)}
.run-skip{
  border:0;background:none;font:inherit;font-size:.92rem;font-weight:650;
  color:var(--ink-2);text-decoration:underline;cursor:pointer;min-height:44px;padding:0 4px;
}
.run-skip:hover{color:var(--gulf)}

.run-controls{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  margin:22px 0 0;padding:14px 0 0;border-top:1px solid var(--line);
}
.run-back,.run-restart{
  border:0;background:none;font:inherit;font-size:.9rem;font-weight:700;
  color:var(--ink-2);cursor:pointer;min-height:44px;padding:0 2px;
  text-decoration:none!important;
  display:inline-flex;align-items:center;
}
.run-back:hover,.run-restart:hover{color:var(--gulf)}
.run-restart{margin-left:auto;color:var(--muted)}
.run-local-note{
  max-width:660px;margin:14px auto 0;
  font-size:.76rem;color:var(--muted);
}

/* the two-question separation, as a step */
.run-split{display:grid;gap:12px;margin:20px 0 0}
.run-split-panel{
  border:1.5px solid var(--line);border-radius:12px;padding:14px 15px;background:var(--paper);
}
.run-split-panel h3{margin:0 0 4px;font-size:1.02rem}
.run-split-panel p{margin:0;font-size:.9rem;color:var(--ink-2)}
.run-split-answer{margin-top:8px!important;font-weight:750;font-size:.8rem!important;letter-spacing:.04em;text-transform:uppercase;color:var(--go)!important}
.run-split-panel.tone-stop{border-color:var(--stop);background:var(--stop-bg)}
.run-split-panel.tone-stop .run-split-answer{color:var(--stop)!important}
@media(min-width:760px){.run-split{grid-template-columns:1fr 1fr}}

/* ---------- 4. the result ---------- */
.run-result{
  margin:0;
  border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);
  box-shadow:var(--shadow-sm);
}
.result-head{
  background:var(--night);color:var(--paper);
  padding:22px 16px 20px;
  border-bottom:4px solid var(--gulf);
}
.tone-caution .result-head{border-bottom-color:var(--warn)}
.tone-stop .result-head{border-bottom-color:var(--stop)}
.result-kicker{margin:0 0 10px;font-size:.75rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase;color:var(--sun)}
.result-headline{
  margin:0;color:#fff;
  font-size:clamp(1.7rem,7.4vw,2.6rem);line-height:1.1;letter-spacing:-.025em;
}
.result-headline.is-money{font-variant-numeric:tabular-nums;font-size:clamp(2.1rem,10vw,3.3rem)}
.result-sub{margin:10px 0 0;color:rgba(245,247,251,.78);font-size:.95rem}
.result-tone{
  display:inline-block;margin:14px 0 0;
  padding:6px 11px;border-radius:99px;
  font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(147,197,253,.16);color:var(--sun);border:1px solid rgba(147,197,253,.4);
}
.tone-caution .result-tone{background:rgba(251,191,36,.14);color:#fcd34d;border-color:rgba(252,211,77,.42)}
.tone-stop .result-tone{background:rgba(248,113,113,.16);color:#fca5a5;border-color:rgba(252,165,165,.45)}

.result-figures{display:grid;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.result-figure{background:var(--card);padding:15px 16px}
.figure-label{margin:0;font-size:.8rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.figure-value{
  margin:5px 0 0;font-family:"Fraunces",Georgia,serif;font-weight:650;
  font-size:1.5rem;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.result-figure.is-big .figure-value{font-size:2rem;color:var(--gulf)}
.tone-stop .result-figure.is-big .figure-value{color:var(--stop)}
.tone-caution .result-figure.is-big .figure-value{color:var(--warn)}
.figure-note{margin:6px 0 0;font-size:.83rem;color:var(--ink-2);line-height:1.45}
@media(min-width:700px){.result-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
.result-figure.has-price-spectrum{grid-column:1/-1;padding:18px 16px 20px}
.price-spectrum{margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.price-spectrum-heading{margin:0;font-family:"Archivo",sans-serif;font-size:1.08rem;line-height:1.25;color:var(--ink)}
.price-spectrum-intro{margin:6px 0 16px;max-width:64ch;font-size:.88rem;line-height:1.5;color:var(--ink-2)}
.price-spectrum-track{position:relative;height:18px;margin:30px 8px 12px;border:1px solid rgba(15,23,42,.12);border-radius:99px;background:linear-gradient(90deg,#bfdbfe 0%,#2b5bdd 50%,#172033 100%);box-shadow:inset 0 1px 2px rgba(15,23,42,.16)}
.price-spectrum-marker{position:absolute;top:50%;width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:var(--night);box-shadow:0 1px 5px rgba(15,23,42,.32);transform:translate(-50%,-50%)}
.price-spectrum-marker.marker-0{left:0}
.price-spectrum-marker.marker-1{left:50%}
.price-spectrum-marker.marker-2{left:100%}
.price-spectrum-zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.price-spectrum-zone{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.price-spectrum-price{margin:0 0 4px;font-size:1.05rem;font-weight:850;color:var(--gulf);font-variant-numeric:tabular-nums}
.price-spectrum-zone h3{margin:0;font-size:.9rem;line-height:1.25;color:var(--ink)}
.price-spectrum-body{margin:6px 0 0;font-size:.8rem;line-height:1.45;color:var(--ink-2)}
.price-spectrum-close{margin:14px 0 0;padding:12px 14px;border-left:3px solid var(--gulf);background:#eff6ff;font-size:.86rem;font-weight:650;line-height:1.48;color:var(--ink-2)}
@media(max-width:560px){
  .price-spectrum-track{margin-top:26px}
  .price-spectrum-zones{grid-template-columns:1fr;gap:8px}
  .price-spectrum-zone{display:grid;grid-template-columns:74px 1fr;column-gap:10px}
  .price-spectrum-price{grid-row:1/3;align-self:start}
  .price-spectrum-body{margin-top:3px}
}

.result-block{padding:20px 16px;border-top:1px solid var(--line)}
.result-block h2{
  margin:0 0 12px;
  font-family:"Archivo",sans-serif;font-weight:800;
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}
.result-means{margin:0;padding:0;list-style:none;display:grid;gap:11px}
.result-means li{
  padding-left:18px;position:relative;font-size:.96rem;line-height:1.5;color:var(--ink-2);
}
.result-means li:before{
  content:"";position:absolute;left:0;top:.62em;
  width:7px;height:7px;border-radius:2px;background:var(--gulf);
}
.result-next-title{margin:0 0 10px;font-weight:700}
.result-steps{margin:0;padding-left:1.25em;display:grid;gap:9px}
.result-steps li{font-size:.95rem;line-height:1.5;color:var(--ink-2);padding-left:4px}
.result-steps li::marker{color:var(--gulf);font-weight:800}

.result-warnings{background:var(--warn-bg)}
.warn-box{
  border-left:3px solid var(--warn);
  padding:2px 0 2px 14px;margin:0 0 16px;
}
.warn-box:last-child{margin-bottom:0}
.warn-box h3{margin:0 0 5px;font-size:1.02rem;line-height:1.25}
.warn-box p{margin:0;font-size:.93rem;line-height:1.5;color:var(--ink-2)}
.warn-list{margin:9px 0 0;padding-left:1.1em;display:grid;gap:6px}
.warn-list li{font-size:.9rem;line-height:1.45;color:var(--ink-2)}
.tone-stop .result-warnings{background:var(--stop-bg)}
.tone-stop .warn-box{border-left-color:var(--stop)}

.result-script{background:var(--paper-2)}
.script-label{margin:0 0 9px;font-weight:700;font-size:.93rem}
.script-text{
  margin:0;padding:14px;
  background:var(--card);border:1px dashed var(--line-2);border-radius:10px;
  font-size:.93rem;line-height:1.55;white-space:pre-wrap;color:var(--ink);
}
.desk-copy{
  margin:12px 0 0;min-height:46px;
  border:1.5px solid var(--gulf);border-radius:10px;background:var(--card);
  font:inherit;font-weight:750;font-size:.92rem;color:var(--gulf);
  padding:11px 20px;cursor:pointer;
}
.desk-copy:hover{background:var(--gulf);color:#fff}
.desk-copy[data-copied]{background:var(--go);border-color:var(--go);color:#fff}

.result-consult{padding:22px 16px;border-top:1px solid #bfdbfe;background:#eff6ff}
.result-consult-kicker{margin:0 0 5px;font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gulf)}
.result-consult h2{margin:0;font-size:1.35rem;line-height:1.2;color:var(--ink)}
.result-consult>p:not(.result-consult-kicker){margin:8px 0 0;color:var(--ink-2);line-height:1.5}
.result-consult-link{display:inline-flex;margin-top:15px;min-height:48px;align-items:center;justify-content:center;padding:11px 18px;border-radius:10px;background:var(--gulf);color:#fff;font-weight:800;text-decoration:none}
.result-consult-link:hover{background:var(--night);color:#fff}

.result-sources{padding:20px 16px;border-top:1px solid var(--line);background:var(--card)}
.result-sources h2{
  margin:0 0 10px;font-family:"Archivo",sans-serif;font-weight:800;
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}
.source-list{margin:0;padding:0;list-style:none;display:grid;gap:7px}
.source-list a{font-size:.88rem;color:var(--gulf);font-weight:600}
.source-date{margin:12px 0 0;font-size:.78rem;color:var(--muted);font-weight:650}
.source-guide{display:inline-block;margin:12px 0 0;font-weight:750;font-size:.9rem;color:var(--gulf)}
.run-result .run-controls{margin:0;padding:16px;border-top:1px solid var(--line);background:var(--paper-2)}

/* ---------- 5. functional visuals ---------- */
.viz{margin:0;padding:18px 16px;border-top:1px solid var(--line);background:var(--card)}
.viz figcaption{margin:12px 0 0;font-size:.79rem;color:var(--muted);line-height:1.45}
.viz-bar{display:flex;height:26px;border-radius:7px;overflow:hidden;background:var(--paper-3)}
.viz-seg{display:block;height:100%}
.viz-cost{background:#94a3b8}
.viz-fee{background:#64748b}
.viz-tax{background:#334155}
.viz-keep{background:var(--gulf)}
.viz-key{margin:13px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.viz-key li{display:flex;align-items:center;gap:9px;font-size:.88rem}
.viz-key b{flex:1 1 auto;font-weight:650;color:var(--ink-2)}
.viz-key span{font-weight:750;font-variant-numeric:tabular-nums}
.viz-dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}

.viz-lane,.viz-meter-row{display:grid;grid-template-columns:1fr;gap:5px;margin:0 0 13px}
.viz-lane-label{font-size:.78rem;font-weight:700;color:var(--ink-2)}
.viz-lane-value{font-size:.78rem;font-weight:750;color:var(--muted);font-variant-numeric:tabular-nums}
.viz-track,.viz-meter{position:relative;height:16px;border-radius:5px;background:var(--paper-3);overflow:hidden}
.viz-fill,.viz-meter-fill{display:block;height:100%;border-radius:5px}
.viz-fill.is-window{background:#334155}
.viz-fill.is-planned{background:var(--gulf)}
.viz-fill.is-ref{background:var(--paper-3);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.viz-meter-fill{background:var(--gulf)}
.viz-over{position:absolute;top:0;height:100%;background:repeating-linear-gradient(45deg,var(--stop),var(--stop) 4px,#fff 4px,#fff 8px)}
.viz-flag{
  margin:0 0 12px;font-size:.82rem;font-weight:750;color:var(--stop);
}
.viz-grid{display:grid;gap:4px;margin:14px 0 0}
.viz-grid-row{display:flex;gap:4px;flex-wrap:wrap}
.viz-block{width:14px;height:14px;border-radius:3px;background:var(--gulf);opacity:.85}
.viz-block.is-half{opacity:.35}
.viz-note{margin:8px 0 0;font-size:.76rem;color:var(--muted)}

.viz-flow-steps{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.viz-flow-steps li{
  display:grid;grid-template-columns:26px 1fr;gap:11px;align-items:center;
  padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);
  font-size:.9rem;
}
.viz-flow-steps li b{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--paper-3);color:var(--ink-2);font-size:.76rem;font-weight:800;
}
.viz-flow-steps li.is-active{border-color:var(--gulf);background:#fff;box-shadow:inset 0 0 0 1px var(--gulf)}
.viz-flow-steps li.is-active b{background:var(--gulf);color:#fff}

.viz-split{display:grid;gap:0}
.viz-panel{border:1.5px solid var(--line);border-radius:12px;padding:14px}
.viz-panel-n{margin:0;font-size:.68rem;font-weight:800;letter-spacing:.14em;color:var(--muted)}
.viz-panel h4{margin:4px 0 9px;font-size:1.05rem;line-height:1.2}
.viz-panel-list{margin:0;padding-left:1.05em;display:grid;gap:5px}
.viz-panel-list li{font-size:.87rem;color:var(--ink-2);line-height:1.4}
.viz-panel-verdict{margin:11px 0 0;font-size:.86rem;font-weight:700;line-height:1.4}
.viz-panel.is-answered{border-color:var(--go);background:#f0fdfa}
.viz-panel.is-answered .viz-panel-verdict{color:var(--go)}
.viz-panel.is-open{border-color:var(--stop);background:var(--stop-bg)}
.viz-panel.is-open .viz-panel-verdict{color:var(--stop)}
.viz-barrier{
  display:grid;place-items:center;padding:10px 0;position:relative;
}
.viz-barrier:before{
  content:"";position:absolute;left:50%;top:0;bottom:0;width:0;
  border-left:2px dashed var(--line-2);
}
.viz-barrier span{
  position:relative;background:var(--card);padding:4px 12px;border-radius:99px;
  border:1px solid var(--line);
  font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
@media(min-width:760px){
  .viz-split{grid-template-columns:1fr auto 1fr;align-items:stretch}
  .viz-barrier{padding:0 6px}
  .viz-barrier:before{left:50%;top:0;bottom:0;border-left:2px dashed var(--line-2)}
}

.viz-stage-rail{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:0}
.viz-stage-rail li{
  display:grid;gap:2px;
  padding:12px 0 12px 22px;position:relative;
  border-left:2px solid var(--rail);
}
.viz-stage-rail li:before{
  content:"";position:absolute;left:-7px;top:16px;width:12px;height:12px;border-radius:50%;
  background:var(--card);border:2px solid var(--gulf);
}
.viz-stage-rail li:last-child{border-left-color:transparent}
.viz-stage-rail b{font-size:.93rem;line-height:1.3}
.viz-stage-rail span{font-size:.85rem;color:var(--muted)}

.viz-triage-rows{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.viz-triage-rows li{
  display:grid;grid-template-columns:34px 1fr;gap:13px;align-items:start;
  padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--paper);
}
.viz-triage-rows b{
  display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  background:var(--night);color:var(--sun);font-size:.92rem;font-weight:800;
}
.viz-triage-rows h4{margin:0 0 4px;font-size:1rem}
.viz-triage-rows p{margin:0;font-size:.9rem;line-height:1.45;color:var(--ink-2)}

/* ---------- 6. evidence band reuses the guide cards ---------- */
.desk-body .article-card-grid{display:grid;gap:12px;margin:18px 0 0}
@media(min-width:820px){.desk-body .article-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- 7. community, about, and consultation pages ---------- */
.about-main{padding:0 var(--gutter) 56px}
.about-shell{max-width:920px;margin:0 auto}
.about-shell h1{margin:26px 0 10px;font-size:clamp(1.9rem,7vw,2.7rem);line-height:1.1}
.about-shell h2{margin:32px 0 8px;font-size:1.22rem}
.about-shell p{color:var(--ink-2);line-height:1.6}
.about-shell ul{padding-left:1.1em;display:grid;gap:8px}
.about-shell li{color:var(--ink-2);line-height:1.5}
.about-hero{padding:clamp(24px,6vw,58px) 0 36px;border-bottom:1px solid var(--line)}
.about-hero h1{max-width:13ch;font-size:clamp(2.35rem,7vw,4.8rem);letter-spacing:-.045em}
.about-intro{max-width:62ch;font-size:clamp(1.05rem,2vw,1.24rem)}
.about-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}
.about-actions .button{min-height:46px;display:inline-flex;align-items:center}
.about-section{padding:38px 0;border-bottom:1px solid var(--line)}
.about-section>h2{max-width:27ch;font-size:clamp(1.55rem,4vw,2.35rem);letter-spacing:-.025em}
.about-section>p{max-width:68ch}
.about-service-grid{display:grid;gap:14px;margin-top:24px}
.about-service-grid article{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.about-service-grid h3{margin:0 0 7px;font-size:1.08rem}
.about-service-grid p{margin:0}
.about-consult-box,.consult-status{margin:42px 0 0;padding:clamp(24px,5vw,42px);border-radius:22px;background:var(--night);color:white}
.about-consult-box h2,.consult-status h2{margin:8px 0;font-size:clamp(1.6rem,4vw,2.5rem);color:white}
.about-consult-box p,.consult-status p{max-width:60ch;color:rgba(255,255,255,.78)}
.about-consult-box .desk-band-eyebrow,.consult-status .desk-band-eyebrow{color:var(--sun)}
.consult-expect ol{padding-left:1.3em;display:grid;gap:12px}
.consult-expect li{padding-left:5px;color:var(--ink-2);line-height:1.55}
.about-note{
  border-left:3px solid var(--gulf);padding:4px 0 4px 14px;margin:22px 0;
  background:none;
}
@media(min-width:700px){.about-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- 8. simplified public chrome ---------- */
.desk-body .site-nav a.button{display:inline-flex}
.desk-body .site-footer p{max-width:56ch}

/* ---------- client message result ---------- */
.client-message-result{border-radius:22px;overflow:hidden;box-shadow:0 18px 55px rgba(15,23,42,.12)}
.client-message-result .result-head{padding:28px 24px;background:linear-gradient(145deg,#0f1f38,#143b66);color:#fff}
.client-message-result .result-kicker,.client-message-result .result-sub,.client-message-result .result-tone{color:rgba(255,255,255,.75)}
.client-message-result .result-headline{color:#fff;max-width:20ch}
.client-message-result .result-block{padding:24px}
.client-message-result .result-means{grid-template-columns:1fr 1fr;gap:12px}
.client-message-result .result-means li{padding:14px 16px 14px 34px;border:1px solid var(--line);border-radius:12px;background:#fff}
.client-message-result .result-means li:before{left:16px;top:20px}
.client-message-result .result-script{padding:26px 24px;background:#eaf1ff}
.client-message-result .script-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;color:var(--gulf)}
.client-message-result .script-text{padding:20px;border:0;border-left:4px solid var(--gulf);border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(20,38,68,.08);font-size:1.03rem;line-height:1.7}
.client-message-result .desk-copy{width:100%;background:var(--gulf);color:#fff}
.client-message-result .result-sources{display:none}
@media(max-width:600px){.client-message-result .result-head,.client-message-result .result-block,.client-message-result .result-script{padding:20px 17px}.client-message-result .result-means{grid-template-columns:1fr}}
