/* The Modern Analytics: source of truth, lives outside build output. */
:root{
  --paper:#FFFFFF; --tint:#F4F7FD; --surface:#FFFFFF; --surface-2:#EEF3FC;
  --ink:#0B1B3A; --ink-2:#4A5A78; --ink-3:#5F708B;
  --rule:#E2E9F5; --rule-2:#CBD6E9;
  --accent:#0B63F6; --accent-dk:#0A4FC7; --accent-soft:#E4EDFE;
  --lift:#7FB2FF; --warn:#D93A2B; --warn-dk:#C4321F;
  --max:1180px; --r:14px;
  --shadow:0 1px 2px rgba(11,27,58,.05),0 12px 32px -12px rgba(11,27,58,.16);
}
*{box-sizing:border-box}
/* any author display rule beats the browser's [hidden], so state it once and mean it */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:Inter,-apple-system,"Segoe UI",sans-serif;font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.narrow{max-width:760px}

h1,h2,h3{font-family:Inter,sans-serif;font-weight:800;margin:0;text-wrap:balance}
h1{font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.045em}
h2{font-size:clamp(1.85rem,3.8vw,2.9rem);line-height:1.1;letter-spacing:-.035em}
h3{font-size:1.2rem;line-height:1.3;letter-spacing:-.02em;font-weight:700}
.hl{color:var(--accent)}
p{margin:0 0 17px;max-width:66ch}
a{color:var(--accent-dk)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.87em;background:var(--surface-2);padding:1px 5px;border-radius:3px;word-break:break-word}

.lbl,.secnum{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 16px;display:flex;align-items:center;gap:9px}
.secnum b,.lbl-a{color:var(--accent);font-weight:700}

/* header */
header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--rule)}
header.site .bar{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 0}
.brand{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:1px;line-height:1.12}
.brand-text > b{font-size:1.18rem;font-weight:800;letter-spacing:-.032em;text-transform:none}
.brand-text > span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
nav.main{display:flex;align-items:center;gap:26px}
nav.main a{font-size:14.5px;font-weight:500;text-decoration:none;color:var(--ink-2)}
nav.main a:hover,nav.main a[aria-current]{color:var(--accent)}
nav.main a:focus-visible,.btn:focus-visible,.brand:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.navtoggle{display:none}
header.site.lean{background:#fff}
@media (min-width:861px){
  header.site.lean nav.main{display:flex;position:static;padding:0;border:none;background:none;flex-direction:row}
}

/* buttons */
.btn{display:inline-block;max-width:100%;font-size:14.5px;font-weight:600;padding:12px 22px;text-decoration:none;border:1px solid var(--rule-2);color:var(--ink);background:#fff;border-radius:9px}
.btn.solid{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 6px 16px -6px rgba(11,99,246,.55)}
.btn.solid:hover{background:var(--accent-dk);color:#fff}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;min-width:0}

/* sections */
section{padding:56px 0}
section.alt{background:var(--tint)}
section.hero{padding:74px 0 66px;background:linear-gradient(180deg,var(--tint) 0%,#fff 100%)}
.hero .sub{font-size:1.14rem;line-height:1.55;color:var(--ink-2);max-width:46ch;margin:22px 0 0}
.sechead{margin-bottom:24px}
.sechead p{color:var(--ink-2);font-size:1.05rem;margin-top:10px}

/* hero card */
.hcard{background:#fff;border:1px solid var(--rule);border-radius:24px;padding:30px 30px 26px;box-shadow:var(--shadow)}
.hcard .cap i{width:8px;height:8px;border-radius:50%;background:var(--accent);display:block}
.hcard h3{font-size:1.6rem;line-height:1.16;letter-spacing:-.032em;font-weight:800;margin-bottom:22px}
.glist div{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:14px}
.glist div:last-child{border-bottom:none}
.glist em{font-style:normal;width:25px;height:25px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.glist b{font-weight:600}
.glist span{color:var(--ink-3);margin-left:auto;font-size:12.5px}

/* stats + credentials */
.stats{display:flex;flex-wrap:wrap;gap:32px;margin-top:30px;padding-top:22px;border-top:1px solid var(--rule)}
.stats div{min-width:118px}
.stats b{display:block;font-size:1.5rem;font-weight:800;letter-spacing:-.035em;line-height:1;margin-bottom:6px}
.stats span{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);line-height:1.35;display:block}
.credstrip{padding:20px 0 0;background:#fff}
.creds div{flex:1 1 190px;padding:15px 18px;background:#fff;border:1px solid var(--rule);border-radius:var(--r)}
.creds b{display:block;font-size:13.5px;font-weight:700;margin-bottom:3px;line-height:1.3}
.creds span{font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);display:block}

/* cards */
.gates{display:grid;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:16px;margin-top:26px}
.gate .n{font-size:11px;font-weight:800;color:var(--accent);display:block;margin-bottom:12px;letter-spacing:.06em}
.gate h3{margin-bottom:8px}
.gate p{font-size:14.5px;color:var(--ink-2);margin:0;line-height:1.55}
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:26px}
.offer{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.offer h3{margin-bottom:9px}
.offer .price{font-size:12.5px;font-weight:700;color:var(--accent);margin-bottom:15px;display:block;letter-spacing:.02em}
.offer p{font-size:15px;color:var(--ink-2);margin:0 0 20px;flex:1}
.offer .btn{align-self:flex-start;font-size:13.5px;padding:10px 17px}

.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:start}
.split ul,.prose ul,.prose ol{margin:0 0 17px;padding-left:21px}
.split li,.prose li{margin-bottom:9px;color:var(--ink-2)}
.split li::marker,.prose li::marker{color:var(--accent)}
.split li strong,.prose li strong{color:var(--ink)}
.pos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:start}
.pos .big{font-size:clamp(1.6rem,3.1vw,2.3rem);line-height:1.14;letter-spacing:-.035em;font-weight:800;margin:0}
.pos p{font-size:1.02rem;color:var(--ink-2)}

/* prose */
.prose h2{margin:46px 0 15px}
.prose h3{margin:34px 0 10px}
.prose blockquote{margin:28px 0;padding:22px 26px;background:var(--tint);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0;font-size:1.16rem;line-height:1.45;font-weight:600;letter-spacing:-.02em;color:var(--ink);max-width:60ch}
.prose blockquote p{margin:0}
.prose .lede{font-size:1.22rem;line-height:1.52;color:var(--ink-2);max-width:60ch;margin-bottom:26px}
.callout{background:var(--accent-soft);border:1px solid #C9DDFD;border-radius:var(--r);padding:18px 22px;margin:22px 0;max-width:64ch}
.callout p{margin:0;font-size:15.5px}
.callout p+p{margin-top:11px}

/* process, cases, faq */
.process{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.step{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,220px);gap:22px;padding:18px 22px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);align-items:start}
.step .sn{font-size:12px;font-weight:800;color:var(--accent);padding-top:4px}
.step h3{font-size:1.06rem;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--ink-2);margin:0;line-height:1.55}
.step .out{font-size:12px;color:var(--ink-3);line-height:1.6;padding-top:3px}
.step .out b{display:block;color:var(--accent);font-weight:700;margin-bottom:4px;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px}
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:26px}
.case{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.case .sect{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:12px}
.case h3{font-size:1.05rem;margin-bottom:12px;line-height:1.32}
.case dl{margin:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.case dt{font-size:9.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.case dd{margin:0;color:var(--ink-2);line-height:1.5}
.case .res{border-top:1px solid var(--rule);margin-top:15px;padding-top:14px;font-size:14px;color:var(--ink)}
.case .res b{color:var(--accent)}
.faq{margin-top:30px}
.faq details{background:#fff;border:1px solid var(--rule);border-radius:var(--r);margin-bottom:12px;padding:0 22px}
.faq summary{cursor:pointer;padding:18px 0;font-weight:700;font-size:1.02rem;letter-spacing:-.015em;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.2rem;line-height:1;flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 0 20px;max-width:62ch}
.faq .a p{font-size:15.5px;color:var(--ink-2);margin:0 0 12px}
.faq .a p:last-child{margin-bottom:0}
.trust{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding-top:20px;margin-top:4px;border-top:1px solid var(--rule)}

/* cta bands */
.cta{background:var(--ink)}
.cta h2{color:#fff;max-width:19ch}
.cta p{color:rgba(255,255,255,.76);max-width:52ch;margin-top:15px;font-size:1.06rem}
.cta .btn{border-color:rgba(255,255,255,.3);color:#fff;background:transparent;margin-top:28px}
.cta .btn:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.6)}
.cta .btn.solid{background:var(--accent);color:#fff;border-color:var(--accent)}
.midcta{background:var(--accent-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.midcta .mid{display:flex;flex-wrap:wrap;gap:26px 44px;align-items:center;justify-content:space-between}
.midcta h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:0 0 8px;max-width:20ch}
.midcta p{margin:0;color:var(--ink-2);max-width:46ch;font-size:15.5px}
.midcta .btns{margin-top:0;flex:0 1 auto;min-width:0}

/* footer */
footer.site{background:var(--tint);padding:56px 0 42px;border-top:1px solid var(--rule)}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-bottom:34px;border-bottom:1px solid var(--rule)}
.fgrid h3{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 15px}
.fgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fgrid a{font-size:14.5px;text-decoration:none;color:var(--ink-2)}
.fgrid a:hover{color:var(--accent)}
.fgrid .strap{font-size:1.16rem;font-weight:800;letter-spacing:-.03em;color:var(--accent);margin:10px 0 0}
.legal{padding-top:22px;font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:8px 22px}
.legal p{margin:0;max-width:none}

/* forms */
form.enq{display:flex;flex-direction:column;gap:17px;max-width:520px;margin-top:8px}
.fld{display:flex;flex-direction:column;gap:7px}
.fld label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.fld input,.fld select,.fld textarea{font-family:inherit;font-size:15.5px;color:var(--ink);background:#fff;border:1px solid var(--rule-2);padding:12px 14px;width:100%;border-radius:9px}
.fld textarea{min-height:120px;resize:vertical;line-height:1.55}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.hint{font-size:12.5px;color:var(--ink-3);margin:0}
form.enq button{font-family:inherit;font-size:15px;font-weight:600;padding:13px 26px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:9px;cursor:pointer;align-self:flex-start;box-shadow:0 6px 16px -6px rgba(11,99,246,.55)}
form.enq button:hover{background:var(--accent-dk)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:17px}

/* ---------------- 7D rail ---------------- */
.sixd{margin-top:26px}
.sixd-rail{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:stretch}
.sixd-cap{display:flex;flex-direction:column;justify-content:center;text-align:center;padding:14px 14px;border:1px solid var(--rule);border-radius:var(--r);background:#fff;min-width:92px}
.sixd-cap b{font-size:1.6rem;line-height:1;font-weight:800;letter-spacing:-.04em;display:block;margin-bottom:5px}
.sixd-cap span{font-size:9.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);line-height:1.35}
.sixd-cap.start b{color:var(--ink-3)}
.sixd-cap.end{border-color:var(--accent);background:var(--accent-soft)}
.sixd-cap.end b{color:var(--accent)}
.sixd-gates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--rule);border-radius:var(--r) var(--r) 0 0;background:#fff;overflow:hidden}
.sixd-gates.g7{grid-template-columns:repeat(7,1fr)}
.sixd-gates.g8{grid-template-columns:repeat(8,1fr)}
.sixd-gates.g8 button{padding:13px 6px 11px;gap:6px}
.sixd-gates.g8 b{font-size:12.5px;letter-spacing:-.02em}
.sixd-gates.g8 em{font-size:10px}
.sixd-gates li{border-right:1px solid var(--rule);display:flex}
.sixd-gates li:last-child{border-right:none}
.sixd-gates button{font:inherit;background:none;border:none;cursor:pointer;width:100%;padding:16px 10px 14px;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--ink);border-bottom:3px solid transparent}
.sixd-gates button:hover{background:var(--tint)}
.sixd-gates button[aria-expanded="true"]{border-bottom-color:var(--accent);background:var(--accent-soft)}
.sixd-gates button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.sixd-gates em{font-style:normal;font-size:10.5px;font-weight:800;color:var(--accent)}
.sixd-gates b{font-size:13.5px;font-weight:700;line-height:1.2;text-align:center;letter-spacing:-.015em}
.sixd-panels{border:1px solid var(--rule);border-top:none;border-radius:0 0 var(--r) var(--r);background:#fff}
.sixd-panel{padding:20px 24px}
.js .sixd-panel{display:none}
.js .sixd-panel.on{display:block}
.sixd-panel .q{font-size:1.2rem;line-height:1.32;font-weight:700;letter-spacing:-.025em;color:var(--ink);margin:0 0 14px;max-width:58ch}
.sixd-panel dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.sixd-panel dt{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.sixd-panel dd{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.sixd-panel dd.fail{color:var(--warn)}
.sixd-panel dd.why{color:var(--accent)}
.sixd-hint{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 18px}

/* ---------------- charts ---------------- */
.sankeywrap,.vcwrap{margin-top:24px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:20px 18px 16px;overflow-x:auto}
.sankey{width:100%;min-width:1000px;height:auto;display:block}
.valuechain{width:100%;min-width:1000px;height:auto;display:block}
.sk-in{fill:var(--ink-3);opacity:.30}
.sk-out{fill:var(--accent);opacity:.34}
.sk-band{fill:var(--accent)}
.sk-nin{fill:var(--ink-3)}
.sk-nout{fill:var(--accent)}
.sk-nm{font-size:13px;font-weight:700;fill:var(--ink);letter-spacing:-.015em}
.sk-sb{font-size:10.5px;font-weight:500;fill:var(--ink-3)}
.sk-r{text-anchor:end}
.sk-hd{font-size:9.5px;font-weight:800;fill:var(--ink-3);letter-spacing:.15em}
.sk-bt{font-size:10px;font-weight:800;fill:rgba(255,255,255,.72);letter-spacing:.15em}
.sk-gnum{font-size:11px;font-weight:800;fill:rgba(255,255,255,.6)}
.sk-gname{font-size:15px;font-weight:700;fill:#fff;letter-spacing:-.02em}
.sk-note{font-size:12.5px;color:var(--ink-3);margin:18px 0 0;font-weight:600}
.vc-flow{fill:var(--accent);opacity:.92}
.vc-leak{fill:var(--warn);opacity:.22}
.vc-tick{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:2 3}
.vc-sn{font-size:10px;font-weight:800;fill:var(--accent);letter-spacing:.08em}
.vc-st{font-size:13px;font-weight:700;fill:var(--ink);letter-spacing:-.015em}
.vc-cap{font-size:9.5px;font-weight:700;fill:var(--ink-3);letter-spacing:.12em}
.vc-big{font-size:31px;font-weight:800;fill:var(--ink);letter-spacing:-.04em}
.vc-in{fill:#fff}
.vc-end{text-anchor:end}
.vc-ln{font-size:14px;font-weight:800;fill:var(--warn-dk);letter-spacing:-.02em}
.vc-lw{font-size:11.5px;font-weight:700;fill:var(--ink)}
.vc-ls{font-size:10px;font-weight:500;fill:var(--ink-3)}
.vc-note{font-size:12.5px;color:var(--ink-3);margin:18px 0 0;font-weight:600;max-width:74ch}

/* ---------------- landing page ---------------- */
.lp-hero{background:linear-gradient(170deg,var(--tint) 0%,#fff 66%);padding:48px 0 40px}
.lp-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid #C9DDFD;border-radius:100px;padding:7px 15px;margin-bottom:24px}
.lp-hero h1{font-size:clamp(2.2rem,4.8vw,3.5rem);line-height:1.03;letter-spacing:-.045em;max-width:17ch;margin-bottom:16px}
.lp-sub{font-size:1.12rem;line-height:1.58;color:var(--ink-2);max-width:62ch;margin:0}
.lp-check{padding:44px 0 48px}
.lp-check h2{font-size:clamp(1.7rem,3.2vw,2.2rem);margin-bottom:8px}
.lp-checksub{color:var(--ink-2);margin-bottom:22px;max-width:64ch}
.ck-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ck-q{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:14px 18px;margin:0;
  transition:border-color .12s;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 22px;align-items:center}
.ck-q.done{border-color:#C9DDFD;background:var(--tint)}
.ck-q.hit{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ck-qn{margin:0;font-size:15.5px;font-weight:600;line-height:1.4;color:var(--ink);letter-spacing:-.015em}
.ck-qn span{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-right:9px}
.ck-opts{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.ck-opts button{font:inherit;font-size:14px;font-weight:600;cursor:pointer;background:#fff;color:var(--ink-2);border:1px solid var(--rule-2);border-radius:9px;padding:9px 20px;transition:all .12s}
.ck-opts button:hover{border-color:var(--accent);color:var(--accent)}
.ck-opts button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.ck-opts button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ck-out{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.js .ck-out{display:block}
.ck-out[hidden]{display:none}
.ck-nojs{display:none}
.ck-result{background:var(--ink);color:#fff;border-radius:16px;padding:32px 34px 34px;box-shadow:var(--shadow)}
.js .ck-result{display:none}
.js .ck-result.on{display:block}
.ck-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--lift);border:1px solid rgba(127,178,255,.4);border-radius:100px;padding:5px 12px;margin-bottom:16px}
.ck-badge.ck-ok{color:#6BE3B8;border-color:rgba(107,227,184,.4)}
.ck-result h3{font-size:1.9rem;font-weight:800;letter-spacing:-.04em;color:#fff;margin:0 0 14px}
.ck-why{font-size:16px;line-height:1.6;color:rgba(255,255,255,.78);margin:0 0 26px;max-width:52ch}
.ck-fixh{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lift);margin:0 0 12px}
.ck-fixes{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.ck-fixes li{color:rgba(255,255,255,.86);font-size:15.5px;line-height:1.55;max-width:56ch;margin:0}
.ck-fixes li::marker{color:var(--lift);font-weight:700}
.ck-again{margin:18px 0 0}
.ck-again button{font:inherit;font-size:14px;font-weight:600;background:none;border:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline}
.lp-trust{background:var(--tint);padding:46px 0;border-top:1px solid var(--rule)}
.lp-trust h2{font-size:clamp(1.7rem,3.2vw,2.2rem);margin-bottom:10px}
.lp-lede{font-size:1.06rem;color:var(--ink-2);max-width:60ch;margin-bottom:24px}
.tr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:22px}
.tr{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:20px}
.tr b{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.015em;margin-bottom:9px;line-height:1.4;color:var(--ink)}
.tr p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}
.lp-note{font-size:14px;color:var(--ink-3);line-height:1.65;max-width:70ch;margin:0}
.lp-claim{padding:46px 0}
.lp-claim h2{font-size:clamp(1.7rem,3.2vw,2.2rem);margin-bottom:10px}
.lp-claimsub{color:var(--ink-2);margin-bottom:12px;font-size:1rem;max-width:62ch}
.lp-claimsub strong{color:var(--ink)}
.lp-who{padding:26px 0 34px;border-top:1px solid var(--rule);background:var(--tint)}
.lp-who p{font-size:14px;color:var(--ink-3);line-height:1.65;max-width:72ch;margin:0}

/* ---------------- responsive ---------------- */
@media (max-width:900px){
  .herogrid,.pos{grid-template-columns:1fr;gap:34px}
  .fgrid{grid-template-columns:1fr;gap:30px}
  .row2{grid-template-columns:1fr}
  .step{grid-template-columns:1fr;gap:8px}
  .step .out{padding-top:6px}
  nav.main{display:none}
  nav.main.open{display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;gap:0;padding:8px 28px 20px;border-bottom:1px solid var(--rule)}
  nav.main.open a{padding:12px 0;width:100%;border-bottom:1px solid var(--rule)}
  nav.main.open .btn{margin-top:14px}
  .navtoggle{display:block;background:#fff;border:1px solid var(--rule-2);border-radius:9px;color:var(--ink);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;cursor:pointer}
  header.site .bar{position:relative}
  header.site.lean nav.main{display:none}
  header.site.lean nav.main.open{display:flex}
  section{padding:60px 0}
  .sixd-rail{grid-template-columns:1fr;gap:12px}
  .sixd-cap{flex-direction:row;gap:10px;align-items:baseline;justify-content:flex-start;text-align:left;min-width:0}
  .sixd-cap b{font-size:1.5rem;margin:0}
  .sixd-gates,.sixd-gates.g7{grid-template-columns:1fr;border-radius:var(--r) var(--r) 0 0}
  .sixd-gates li{border-right:none;border-bottom:1px solid var(--rule)}
  .sixd-gates li:last-child{border-bottom:none}
  .sixd-gates button{flex-direction:row;justify-content:flex-start;gap:12px;padding:13px 16px;border-bottom:none;border-left:3px solid transparent}
  .sixd-gates button[aria-expanded="true"]{border-left-color:var(--accent)}
  .sixd-gates b{text-align:left;flex:1}
  .lp-hero{padding:44px 0}
  .ck-q{padding:17px 18px}
  .ck-opts button{flex:1 1 auto;text-align:center}
  .ck-result{padding:26px 22px 28px}
  .ck-result h3{font-size:1.55rem}
}

/* ---------------- deep assessment ---------------- */
.lp-deep{padding:46px 0;border-top:1px solid var(--rule)}
.lp-deep h2{font-size:clamp(1.7rem,3.2vw,2.2rem);margin-bottom:8px}
.dform{display:flex;flex-direction:column;gap:18px;margin-top:28px}
.dg{border:1px solid var(--rule);border-radius:var(--r);background:#fff;padding:8px 22px 20px;margin:0}
.dg legend{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;padding:0 8px;color:var(--ink)}
.dg legend span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.dq{padding:14px 0;border-bottom:1px solid var(--rule)}
.dq:last-child{border-bottom:none}
.dq-stem{margin:0 0 12px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);max-width:58ch}
.dq.answered .dq-stem{color:var(--accent)}
.dq-opts{display:flex;flex-wrap:wrap;gap:8px}
.dq-anchors{flex-direction:column;flex-wrap:nowrap;gap:7px}
.dq-anchors button{text-align:left;padding:11px 15px;font-weight:500;font-size:14px;line-height:1.45;color:var(--ink-2);width:100%}
.dq-anchors button[aria-pressed="true"]{font-weight:600}
.dq-opts button{font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;background:#fff;color:var(--ink-3);
  border:1px solid var(--rule-2);border-radius:8px;padding:7px 17px;transition:all .12s}
.dq-opts button:hover{border-color:var(--accent);color:var(--accent)}
.dq-opts button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.dq-opts button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* the report */
.dreport{margin-top:30px}
.dreport[hidden]{display:none}
.rep-doc{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:34px 36px 30px;box-shadow:var(--shadow)}
.rep-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:22px;border-bottom:2px solid var(--ink)}
.rep-kicker{font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.rep-title{font-size:1.7rem;font-weight:800;letter-spacing:-.035em;margin:0;line-height:1.15}
.rep-score{text-align:right;flex:none}
.rep-score b{display:block;font-size:3rem;font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--accent)}
.rep-score span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.rep-band{margin:22px 0 26px;font-size:15px;line-height:1.6;color:var(--ink-2);max-width:62ch}
.rep-band span{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  background:var(--accent-soft);color:var(--accent-dk);border-radius:100px;padding:5px 13px;margin-right:11px}
.rep-band em{font-style:normal}
.rep-bars{display:flex;flex-direction:column;gap:9px;margin-bottom:28px}
.rb{display:grid;grid-template-columns:150px minmax(0,1fr) 46px;gap:14px;align-items:center}
.rb-n{font-size:12.5px;font-weight:700;color:var(--ink)}
.rb-track{height:9px;background:var(--surface-2);border-radius:100px;overflow:hidden;display:block}
.rb-fill{display:block;height:100%;background:var(--accent);border-radius:100px}
.rb.weak .rb-fill{background:var(--warn)}
.rb.weak .rb-n{color:var(--warn-dk)}
.rb-v{font-size:12px;font-weight:700;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
.rep-actions h4{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}
.rep-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:13px}
.rep-list li{font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0}
.rep-list li[hidden]{display:none}
.rep-list b{display:block;color:var(--ink);font-weight:700;margin-bottom:3px}
.rep-foot{margin-top:28px;padding-top:18px;border-top:1px solid var(--rule)}
.rep-foot p{margin:0;font-size:11.5px;color:var(--ink-3);line-height:1.6}
.rep-save{margin-top:18px}
.rep-save[hidden]{display:none}
.dsave-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:10px}
.dsave-row button{font-family:inherit;font-size:15px;font-weight:600;padding:13px 26px;background:var(--accent);color:#fff;
  border:1px solid var(--accent);border-radius:9px;cursor:pointer;box-shadow:0 6px 16px -6px rgba(11,99,246,.55)}
.dsave-row button:hover{background:var(--accent-dk)}

.rep-doc[hidden]{display:none}

/* ---------------- print ---------------- */
/* ---------- the printed 7D Baseline ---------- */
/* paper size is the reader's choice; only the margins are ours, and the bottom
   one is deep enough to hold the running footer without touching the copy */
@page{margin:14mm 13mm 16mm}

@media print{
  header.site,footer.site,.lp-hero,.lp-check,.lp-trust,.lp-claim,.lp-who,
  .dform,.dnav,.dsteps,.dgate,.d-progress,.rep-save,
  .lp-deep > .wrap > h2,.lp-deep .lp-tag,.lp-deep .lp-checksub{display:none!important}

  html,body{background:#fff!important}
  body{font-size:10.5pt;line-height:1.45;color:#000}
  section,.lp-deep{padding:0!important;border:none!important;background:none!important}
  .wrap{padding:0;max-width:none}
  .dreport{margin:0}
  .rep-doc{border:none;border-radius:0;box-shadow:none;padding:0;max-width:none}

  /* the cover owns page one, the method and the loop own page two */
  .rep-cover{break-after:page;page-break-after:always}
  .rc-method{break-before:page;page-break-before:always}
  .rc-foot{break-before:avoid;page-break-before:avoid}
  .rc-loop svg{max-height:56mm;width:100%;height:auto}

  /* keep-together applies to items, never to a list: a block taller than a page
     that refuses to break gets clipped, and the reader never learns what was lost */
  .rb,.rep-list li,.rc-headline,.rc-summary,.rc-meta,.rep-foot{
    break-inside:avoid;page-break-inside:avoid}
  .rep-actions h4,.rep-strengths h4{break-after:avoid;page-break-after:avoid}
  h2,h3,h4,.rep-head,.rep-band,.rep-howto,.rc-title{break-after:avoid;page-break-after:avoid}
  p,li{orphans:3;widows:3}

  /* readable in black and white, because most people print it that way */
  .rep-head{border-bottom:2px solid #000}
  .rep-score b,.rc-big b{color:#000}
  .rep-band span,.rc-bandname{background:#eee;color:#000;border:1px solid #999}
  .rep-howto,.rc-summary{background:#f5f5f5;border-left:3px solid #000}
  .rb-fill{background:#444!important}
  .rb.weak .rb-fill{background:#000!important}
  .rb-track{background:#e5e5e5}
  .rep-plain li::before{background:#000}
  .rb-fill,.rb-track,.rep-band span,.rc-bandname,.rep-howto,.rc-summary,
  .rep-plain li::before,.rc-loop svg{-webkit-print-color-adjust:exact;print-color-adjust:exact}

  a[href]::after{content:""}
}


/* tables */
.tablewrap{overflow-x:auto;margin:26px 0;border:1px solid var(--rule);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:560px;background:#fff}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.5}
thead th{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);background:var(--tint);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
td{color:var(--ink-2)}
td.nm{font-weight:700;color:var(--ink)}

/* ---------------- writing cards ---------------- */
.arts{display:grid;grid-template-columns:repeat(auto-fit,minmax(276px,1fr));gap:16px;margin-top:26px}
.art{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;
  text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(11,27,58,.04);transition:border-color .12s,box-shadow .12s}
.art:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.art .k{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block}
.art h3{font-size:1.06rem;line-height:1.33;margin:0 0 10px;color:var(--ink)}
.art p{font-size:14.5px;color:var(--ink-2);margin:0 0 18px;flex:1;line-height:1.55;max-width:none}
.art .more{font-size:13.5px;color:var(--accent);font-weight:700;display:block}
.art:hover .more{text-decoration:underline}
.ck,.deep{display:block}
.sk-node{rx:2}

/* ---------------- stage two gate ---------------- */
.dgate{background:var(--ink);color:#fff;border-radius:16px;padding:28px 32px 28px;box-shadow:var(--shadow);margin-top:4px}
.dgate[hidden]{display:none}
.dg-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px}
.dg-tag{font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--lift);
  border:1px solid rgba(127,178,255,.4);border-radius:100px;padding:5px 12px}
.dgate h3{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;letter-spacing:-.035em;color:#fff;margin:0}
.dg-lede{font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.78);margin:0 0 18px;max-width:62ch}
.dg-list{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 24px}
.dg-list li{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.72);margin:0;padding-left:22px;position:relative}
.dg-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--lift)}
.dg-list b{color:#fff;font-weight:700}
.dgate .fld label{color:rgba(255,255,255,.6)}
.dgate .fld input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);color:#fff}
.dgate .fld input:focus{border-color:var(--lift);box-shadow:0 0 0 3px rgba(127,178,255,.2);background:rgba(255,255,255,.1)}
.dgate .fld input::placeholder{color:rgba(255,255,255,.35)}
.dgate form.enq button{background:var(--lift);color:var(--ink);border-color:var(--lift);box-shadow:none;font-weight:700}
.dgate form.enq button:hover{background:#9CC5FF}
.dgate .hint{color:rgba(255,255,255,.5)}
.dbody[hidden]{display:none}
.dg-welcome{font-size:15px;line-height:1.6;color:var(--ink-2);margin:0 0 8px;max-width:60ch;
  background:var(--accent-soft);border-left:3px solid var(--accent);padding:14px 18px;border-radius:0 9px 9px 0}
@media (max-width:880px){.dgate{padding:26px 22px 28px}.dg-list{grid-template-columns:1fr}}

/* two metric row inside a case card */
.metrics2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;padding-top:15px;border-top:1px solid var(--rule)}
.metrics2 div{min-width:0}
.metrics2 b{display:block;font-size:1.35rem;font-weight:800;letter-spacing:-.035em;line-height:1.05;color:var(--accent);margin-bottom:4px}
.metrics2 span{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);line-height:1.35}
.case .res{margin-top:14px}

.formok{background:var(--accent-soft);border:1px solid #C9DDFD;border-radius:var(--r);padding:20px 24px;
  font-size:15.5px;font-weight:600;color:var(--accent-dk);margin:8px 0 0;max-width:520px}
.dgate .formok{background:rgba(127,178,255,.12);border-color:rgba(127,178,255,.35);color:var(--lift)}

/* report additions */
.rep-sub{font-size:13px;color:var(--ink-3);margin:6px 0 0;font-weight:600}
.rep-kicker span{color:var(--ink-3);font-weight:700}
.rep-howto{font-size:13.5px;line-height:1.6;color:var(--ink-2);background:var(--tint);border-left:3px solid var(--accent);
  padding:14px 18px;border-radius:0 8px 8px 0;margin:0 0 26px;max-width:66ch}
.rep-strengths{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule)}
.rep-strengths h4{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}
.rep-strengths[hidden]{display:none}
.rep-plain{list-style:none;padding-left:0}
.rep-plain li{position:relative;padding-left:22px}
.rep-plain li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.rs[hidden]{display:none}
.rep-brand{margin-top:12px!important;font-weight:700;color:var(--ink-2)!important}
.rep-foot p{margin:0 0 8px}
.rep-foot b{color:var(--ink)}


/* ---------------- 7D lifecycle loop ---------------- */
.lcwrap{margin-top:24px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:18px 16px 12px;overflow-x:auto}
.lifecycle{width:100%;min-width:940px;height:auto;display:block}
.lc-track{fill:none;stroke:var(--accent-soft);stroke-width:50;stroke-linecap:round}
.lc-edge{fill:none;stroke:#CFE0FD;stroke-width:52;stroke-linecap:round;opacity:.55}
.lc-flow{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.7;
  stroke-dasharray:9 9;animation:lcmove 26s linear infinite}
@keyframes lcmove{to{stroke-dashoffset:-360}}
@media (prefers-reduced-motion:reduce){.lc-flow{animation:none}}
.lc-arrow{fill:var(--accent)}
.lc-ring{fill:#fff;stroke:var(--accent-soft);stroke-width:3}
.lc-dot{fill:var(--accent)}
.lc-num{font-size:12.5px;font-weight:800;fill:#fff;text-anchor:middle;letter-spacing:.02em}
.lc-name{font-size:15.5px;font-weight:800;fill:var(--ink);letter-spacing:-.02em}
.lc-hint{font-size:11.5px;font-weight:600;fill:var(--ink-3)}
.lc-lobe{font-size:13px;font-weight:800;fill:var(--accent);text-anchor:middle;letter-spacing:.16em}
.lc-lobesub{font-size:11.5px;font-weight:600;fill:var(--ink-3);text-anchor:middle}
.lc-crossplate{fill:#fff}
.lc-cross{font-size:9.5px;font-weight:800;fill:var(--ink-3);text-anchor:middle;letter-spacing:.14em}
.lc-feedback{font-size:12.5px;font-weight:600;fill:var(--ink-2);text-anchor:middle}

/* ---------------- report cover page ---------------- */
.rep-cover{padding-bottom:34px;margin-bottom:34px;border-bottom:1px solid var(--rule)}
.rc-brand{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 30px}
.rc-kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}
.rc-title{font-size:clamp(2rem,4vw,2.9rem);font-weight:800;letter-spacing:-.04em;line-height:1.05;margin:0 0 14px}
.rc-strap{font-size:16px;line-height:1.55;color:var(--ink-2);margin:0 0 30px;max-width:56ch}
.rc-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;margin:0 0 30px;
  padding:22px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rc-meta dt{font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
.rc-meta dd{margin:0;font-size:15px;font-weight:700;color:var(--ink);line-height:1.35;word-break:break-word}
.rc-headline{display:flex;flex-wrap:wrap;gap:28px;align-items:center;margin-bottom:26px}
.rc-big{flex:none;text-align:center;padding-right:28px;border-right:2px solid var(--rule)}
.rc-big b{display:block;font-size:4rem;font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--accent)}
.rc-big span{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rc-band{flex:1 1 260px;min-width:0}
.rc-bandname{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;margin:0 0 7px}
.rc-bandtext{font-size:15px;line-height:1.6;color:var(--ink-2);margin:0;max-width:54ch}
.rc-summary{background:var(--tint);border-radius:var(--r);padding:22px 26px}
.rc-summary h3{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}
.rc-summary p{font-size:15.5px;line-height:1.65;color:var(--ink);margin:0;max-width:64ch}
.rc-foot{font-size:11.5px;color:var(--ink-3);margin:26px 0 0}
.ra[hidden]{display:none}
@media print{
  .rep-cover{break-after:page;border-bottom:none;padding-bottom:0;margin-bottom:0;
    min-height:9in;display:flex;flex-direction:column;justify-content:center}
  .rc-big b{color:#000}
  .rc-summary{background:#f4f4f4;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rc-brand{color:#000}
  .lcwrap{border:none;padding:0}
  .lc-track{stroke:#e8e8e8;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .lc-dot{fill:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------------- brand mark ---------------- */
.brand{flex-direction:row;align-items:center;gap:11px}
.brand-text{display:flex;flex-direction:column;gap:1px;line-height:1.12}
.mark{flex:none;display:block;overflow:visible}
.mk-decide{fill:none;stroke:var(--accent);stroke-width:3.2;stroke-linecap:round;opacity:.45}
.mk-deliver{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round}
.mk-node{fill:var(--accent)}
.fgrid h3 .mark{width:26px;height:21px;vertical-align:-5px;display:inline-block;margin-right:5px}
.fgrid h3{display:flex;align-items:center;gap:2px}
.rc-brand .mark{width:24px;height:19px;vertical-align:-4px;display:inline-block;margin-right:6px}
.rc-brand{display:flex;align-items:center;gap:4px}
@media print{.mk-decide,.mk-deliver{stroke:#000}.mk-node{fill:#000}}

/* ---------------- hero carrying the loop ---------------- */
.herolc{padding:44px 0 40px}
.herolc .wrap + .wrap{margin-top:24px}
.hero-top{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:end}
.hero-top h1{font-size:clamp(2.4rem,5.2vw,4rem);max-width:14ch;margin:0}
.hero-lede{font-size:16.5px;line-height:1.6;color:var(--ink-2);margin:0;max-width:52ch}
.hero-side .btns{margin-top:22px}
.lc-hero{border:none;background:transparent;padding:0;margin-top:0}
.lc-caption{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between;
  padding-top:18px;margin-top:2px;border-top:1px solid var(--rule)}
.lc-caption p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2);max-width:64ch}
.lc-caption b{color:var(--ink);font-weight:700}
.lc-caption .btn{flex:none}
@media (max-width:900px){
  .hero-top{grid-template-columns:1fr;gap:22px;align-items:start}
  .herolc{padding:40px 0 44px}
  .lc-caption{flex-direction:column;align-items:flex-start;gap:16px}
}

/* ---------------- footer ---------------- */
.fgrid{grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:44px}
.fbrand .brand{margin-bottom:16px}
.fbrand .brand-text > span{display:none}
.fstrap{font-size:1.16rem;font-weight:800;letter-spacing:-.03em;color:var(--accent);margin:0 0 12px}
.fblurb{font-size:14.5px;line-height:1.6;color:var(--ink-2);margin:0;max-width:40ch}
.fstart p{font-size:13.5px;line-height:1.55;color:var(--ink-2);margin:0 0 14px;max-width:30ch}
.fstart .btn{font-size:13.5px;padding:10px 18px}
.fmail{margin-top:16px!important}
.fmail a{font-size:13px;color:var(--ink-2);text-decoration:none;word-break:break-all}
.fmail a:hover{color:var(--accent)}
@media (max-width:1000px){.fgrid{grid-template-columns:1fr 1fr;gap:34px}}
@media (max-width:640px){.fgrid{grid-template-columns:1fr}}

/* a section whose only child is its heading should not carry the heading's gap */
.sechead:last-child{margin-bottom:0}
.wrap > .sechead:only-child{margin-bottom:0}

/* the checker reads better wider: one line per question, buttons alongside */
.lp-check .narrow,.lp-deep .narrow{max-width:1000px}
.lp-check .lp-checksub{max-width:66ch}
.ck-q{min-height:0}
@media (max-width:1040px){.lp-check .narrow,.lp-deep .narrow{max-width:760px}}

@media (max-width:880px){
  .ck-q{grid-template-columns:1fr;gap:10px;padding:14px 16px}
  .ck-qn{margin:0}
  .ck-opts{justify-content:flex-start}
  .ck-opts button{flex:1 1 auto;text-align:center}
}

@media (max-width:900px){.sixd-gates.g8{grid-template-columns:1fr}}

/* ---------------- proof band ---------------- */
.proof{border-top:1px solid var(--rule);padding-top:26px;margin-top:28px}
.pf-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-bottom:26px}
.pf-nums div{min-width:0}
.pf-nums b{display:block;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin-bottom:7px;color:var(--ink)}
.pf-nums div:first-child b{color:var(--accent)}
.pf-nums span{display:block;font-size:12.5px;font-weight:600;color:var(--ink-3);line-height:1.4;max-width:24ch}
.pf-prov{margin:0;display:flex;flex-direction:column;gap:11px;padding-top:22px;border-top:1px solid var(--rule)}
.pf-prov > div{display:grid;grid-template-columns:172px minmax(0,1fr);gap:20px;align-items:baseline}
.pf-prov dt{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.pf-prov dd{margin:0;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.55}
.pf-prov i{font-style:normal;color:var(--rule-2);margin:0 3px;font-weight:400}
@media (max-width:900px){
  .pf-nums{grid-template-columns:1fr 1fr;gap:20px}
  .pf-prov > div{grid-template-columns:1fr;gap:4px}
  .proof{padding-top:20px;margin-top:22px}
}

/* an unfilled metric must read as a gap, never as a headline number */
.metrics2 b.needs{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 6px,transparent 6px,transparent 12px);
  border:1px dashed var(--rule-2);border-radius:6px;padding:5px 9px;display:inline-block;margin-bottom:5px}

/* progress through the quick check */
.ck-progress{display:flex;align-items:center;gap:12px;margin:0 0 14px;
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.ck-progress b{color:var(--accent);font-weight:800}
.ck-bar{flex:1;max-width:220px;height:5px;background:var(--surface-2);border-radius:100px;overflow:hidden;display:block}
.ck-bar-fill{display:block;height:100%;background:var(--accent);border-radius:100px;transition:width .2s ease}
@media (prefers-reduced-motion:reduce){.ck-bar-fill{transition:none}}

/* ---------------- the problem, stated and shown ---------------- */
.problem{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.pb-say h2{margin-bottom:18px}
.pb-say p{font-size:1.02rem;color:var(--ink-2);max-width:44ch}
.pb-say p:last-child{color:var(--ink);font-weight:600}
.pb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule-2)}
.pb-list li{margin:0;padding:16px 0 16px 30px;border-bottom:1px solid var(--rule-2);position:relative;
  font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.pb-list li::before{content:"";position:absolute;left:0;top:23px;width:14px;height:1px;background:var(--warn)}
.pb-list b{display:block;font-size:16px;font-weight:700;letter-spacing:-.015em;color:var(--ink);margin-bottom:4px}
@media (max-width:900px){
  .problem{grid-template-columns:1fr;gap:28px}
  .pb-say p{max-width:none}
}

/* ---------------- paginated assessment ---------------- */
.dnav{margin:22px 0 20px}
.dnav[hidden]{display:none}
.dnav-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.dnav-step{font-size:15px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
.dnav-count{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.dnav-bar{display:block;height:5px;background:var(--surface-2);border-radius:100px;overflow:hidden}
.dnav-fill{display:block;height:100%;background:var(--accent);border-radius:100px;transition:width .25s ease}
@media (prefers-reduced-motion:reduce){.dnav-fill{transition:none}}
.dnav-dots li{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;
  color:var(--ink-3);background:#fff;border:1px solid var(--rule);border-radius:100px;padding:4px 11px 4px 5px}
.dnav-dots li span{width:18px;height:18px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);
  display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:800}
.dnav-dots li.did{color:var(--ink);border-color:#C9DDFD}
.dnav-dots li.did span{background:var(--accent-soft);color:var(--accent)}
.dnav-dots li.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dnav-dots li.on span{background:var(--accent);color:#fff}

.dform .dg[hidden]{display:none}
.dsteps{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.dsteps[hidden]{display:none}
.dsteps button{font-family:inherit;font-size:15px;font-weight:600;padding:12px 26px;border-radius:9px;cursor:pointer;
  background:var(--accent);color:#fff;border:1px solid var(--accent);box-shadow:0 6px 16px -6px rgba(11,99,246,.55)}
.dsteps button:hover:not(:disabled){background:var(--accent-dk)}
.dsteps button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.dsteps .dsecondary{background:#fff!important;color:var(--ink-2)!important;border-color:var(--rule-2)!important;box-shadow:none!important}
.dsteps .dsecondary:hover:not(:disabled){border-color:var(--accent)!important;color:var(--accent)!important}
.dsteps-note{margin:0;font-size:13px;color:var(--ink-3)}

/* the method, restated on the report cover */
.rc-method{margin-top:24px;padding-top:22px;border-top:1px solid var(--rule)}
.rc-method h3{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}
.rc-gates li{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink);
  background:var(--tint);border:1px solid var(--rule);border-radius:100px;padding:5px 13px 5px 6px}
.rc-gates b{width:19px;height:19px;border-radius:50%;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:800}
.rc-methodnote{font-size:12.5px;color:var(--ink-3);margin:0;line-height:1.55}
@media print{
  .rc-gates li{background:#f4f4f4;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rc-gates b{background:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media (max-width:880px){.dnav-dots li{font-size:10px;padding:3px 9px 3px 4px}}

/* gate tabs and step controls */
.dnav-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.dnav-tabs button{font:inherit;display:flex;align-items:center;gap:7px;cursor:pointer;
  font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--ink-3);
  background:#fff;border:1px solid var(--rule);border-radius:100px;padding:4px 12px 4px 5px;transition:all .12s}
.dnav-tabs button span{width:19px;height:19px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);
  display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:800}
.dnav-tabs button:disabled{opacity:.45;cursor:not-allowed}
.dnav-tabs button:not(:disabled):hover{border-color:var(--rule-2);color:var(--ink)}
.dnav-tabs button.did{color:var(--ink);border-color:#C9DDFD}
.dnav-tabs button.did span{background:var(--accent-soft);color:var(--accent)}
.dnav-tabs button.did span::after{content:"";}
.dnav-tabs button.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dnav-tabs button.on span{background:var(--accent);color:#fff}
.dnav-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.dsteps{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:22px}
.dsteps button{display:flex;align-items:center;gap:11px;text-align:left}
.dsteps button em{font-style:normal;display:flex;flex-direction:column;line-height:1.2}
.dsteps button b{font-size:14.5px;font-weight:700}
.dsteps button span{font-size:11px;font-weight:600;opacity:.72;letter-spacing:.02em}
.dsteps button i{font-style:normal;font-size:15px;opacity:.7}
.dsteps #dnext em{text-align:right;align-items:flex-end}
.dsteps-note{order:0;flex:1 1 auto;text-align:center}
@media (max-width:640px){
  .dsteps{flex-direction:column;align-items:stretch}
  .dsteps button{justify-content:center}
  .dsteps #dnext em{align-items:center;text-align:center}
  .dsteps-note{order:2}
}

/* the loop, on the report cover */
.rc-methodlead{font-size:14.5px;line-height:1.6;color:var(--ink-2);margin:0 0 16px;max-width:64ch}
.rc-loop{background:var(--tint);border:1px solid var(--rule);border-radius:var(--r);padding:14px 10px 8px;margin-bottom:14px}
.coverloop{width:100%;height:auto;display:block;max-width:620px;margin:0 auto}
.cl-track{fill:none;stroke:var(--accent-soft);stroke-width:26;stroke-linecap:round}
.cl-ring{fill:#fff;stroke:var(--accent-soft);stroke-width:2}
.cl-dot{fill:var(--accent)}
.cl-num{font-size:8.5px;font-weight:800;fill:#fff;text-anchor:middle}
.cl-name{font-size:11px;font-weight:700;fill:var(--ink);letter-spacing:-.01em}
.cl-lobe{font-size:9px;font-weight:800;fill:var(--accent);text-anchor:middle;letter-spacing:.14em}
@media print{
  .rc-loop{background:#f7f7f7;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cl-track{stroke:#e4e4e4}
  .cl-dot{fill:#000}
  .cl-ring{stroke:#e4e4e4}
  .cl-lobe{fill:#000}
}

/* ---------------- grouped services ---------------- */
.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;margin-top:26px}
.svc-card{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:26px 24px 24px;
  box-shadow:0 1px 2px rgba(11,27,58,.04);display:flex;flex-direction:column}
.svc-n{font-size:11px;font-weight:800;color:var(--accent);letter-spacing:.08em;display:block;margin-bottom:14px}
.svc-card h3{font-size:1.25rem;letter-spacing:-.025em;margin-bottom:10px}
.svc-card > p{font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0 0 18px;max-width:none}
.svc-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--rule)}
.svc-card li{margin:0;padding:9px 0 9px 18px;border-bottom:1px solid var(--rule);position:relative;
  font-size:14px;line-height:1.45;color:var(--ink-2)}
.svc-card li:last-child{border-bottom:none}
.svc-card li::before{content:"";position:absolute;left:0;top:16px;width:6px;height:6px;border-radius:50%;background:var(--accent-soft)}
.svc-card li{color:var(--ink);font-weight:600}
.svc-card li a{color:inherit;text-decoration:none}
.svc-card li a:hover{color:var(--accent)}
.svc-card li::before{background:var(--accent)}

/* case studies */
.cs-meta{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:-6px 0 22px}
.cs-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin:22px 0;
  padding:20px 24px;background:var(--tint);border:1px solid var(--rule);border-radius:var(--r)}
.cs-nums b{display:block;font-size:1.7rem;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--accent);margin-bottom:7px}
.cs-nums span{display:block;font-size:12px;font-weight:600;color:var(--ink-2);line-height:1.45}
section.alt .cs-nums{background:#fff}

/* the services detail table */
.svc-table{font-size:13.5px;min-width:820px}
.svc-table thead th{font-size:9.5px;letter-spacing:.13em}
.svc-table tr.grp td{background:var(--ink);color:#fff;font-size:11px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;padding:9px 16px}
.svc-table tr.grp span{display:inline-block;background:rgba(255,255,255,.16);border-radius:100px;
  padding:2px 8px;margin-right:9px;font-size:10px}
.svc-table td.nm{white-space:normal;min-width:150px}
.svc-table td.nm a{color:var(--ink);text-decoration:none;font-weight:700}
.svc-table td.nm a:hover{color:var(--accent)}
.svc-table td.num{white-space:nowrap;font-weight:700;color:var(--accent);font-size:12.5px}
.svc-table tbody tr:not(.grp):hover{background:var(--tint)}
.svc-note{font-size:12.5px;color:var(--ink-3);margin:16px 0 0;line-height:1.6;max-width:78ch}
@media print{.svc-table tr.grp td{background:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ---------- service page chrome: breadcrumb, aligned hero, sibling nav ---------- */
/* the doc hero shares the narrow column with the prose below it, so the h1 and the
   first paragraph start on the same vertical line instead of stepping inward */
section.hero.hero-doc{padding:34px 0 44px}
.crumb{margin:0 0 22px}
.crumb a{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:650;
  letter-spacing:.01em;color:var(--ink-3);text-decoration:none;padding:7px 13px 7px 11px;
  border:1px solid var(--rule);border-radius:999px;background:#fff;transition:.16s}
.crumb a span{font-size:15px;line-height:1;transition:transform .16s}
.crumb a:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}
.crumb a:hover span{transform:translateX(-3px)}
.hero-doc h1{font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.05;letter-spacing:-.038em;margin:0;max-width:16ch}
.hero-doc .lbl{margin-bottom:12px;display:block}

.siblings .secnum{margin:0 0 18px}
.siblings ul{list-style:none;margin:0 0 22px;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(232px,100%),1fr));gap:0 26px;
  border-top:1px solid var(--rule)}
.siblings li{margin:0;border-bottom:1px solid var(--rule)}
.siblings li a{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:13px 2px;font-size:15px;font-weight:600;color:var(--ink);text-decoration:none;transition:.15s}
.siblings li a::after{content:"\2192";color:var(--ink-3);font-weight:400;transition:.15s}
.siblings li a:hover{color:var(--accent);text-decoration:none}
.siblings li a:hover::after{color:var(--accent);transform:translateX(3px)}
@media(max-width:620px){.siblings ul{grid-template-columns:1fr}}

/* ---------- how I work: time cost, fit panel, plain terms ---------- */
.time-table{min-width:680px}
.time-table td:last-child,.time-table th:last-child{text-align:right;white-space:nowrap;width:1%}
.time-table td b{color:var(--ink);font-weight:700}
.hrs{display:block;font-weight:800;font-size:16px;color:var(--accent);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.time-table small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:3px;font-weight:500}
.time-table tfoot td{border-top:2px solid var(--ink);border-bottom:none;background:var(--tint);padding-top:15px;padding-bottom:15px}
.time-table tfoot .hrs{font-size:19px;color:var(--ink)}
.tnote{font-size:13.5px;color:var(--ink-3);margin:0;max-width:74ch;line-height:1.55}

.fitgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}
.fitcard{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:26px 28px 24px}
.fitcard.yes{border-color:var(--accent);box-shadow:0 1px 0 var(--accent) inset,0 0 0 1px var(--accent) inset}
.fh{display:flex;align-items:center;gap:11px;margin-bottom:6px;padding-bottom:16px;border-bottom:1px solid var(--rule)}
.fh h3{margin:0;font-size:1.15rem;letter-spacing:-.022em;font-weight:800}
.fi{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  font-size:14px;font-weight:800;line-height:1}
.fitcard.yes .fi{background:var(--accent);color:#fff}
.fitcard.no .fi{background:var(--tint);color:var(--ink-3);border:1px solid var(--rule)}
.fitcard ul{list-style:none;margin:0;padding:0}
.fitcard li{position:relative;padding:11px 0 11px 20px;margin:0;font-size:14.5px;line-height:1.5;
  color:var(--ink-2);border-bottom:1px solid var(--rule)}
.fitcard li:last-child{border-bottom:none;padding-bottom:2px}
.fitcard li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:1.5px;background:var(--rule)}
.fitcard.yes li::before{background:var(--accent)}
.fitcard li strong{color:var(--ink);font-weight:650}

.terms{list-style:none;margin:0;padding:0;counter-reset:t;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr));gap:0 48px;
  border-top:1px solid var(--rule)}
.terms li{counter-increment:t;position:relative;margin:0;padding:17px 0 17px 42px;
  font-size:14.5px;line-height:1.55;color:var(--ink-2);border-bottom:1px solid var(--rule)}
.terms li::before{content:counter(t,decimal-leading-zero);position:absolute;left:0;top:18px;
  font-size:10.5px;font-weight:800;letter-spacing:.08em;color:var(--accent);
  font-variant-numeric:tabular-nums}
.terms li b{display:block;color:var(--ink);font-weight:700;margin-bottom:3px;font-size:15px;letter-spacing:-.012em}
@media(max-width:620px){.fitcard{padding:22px 20px}}

/* ---------- the three engagement shapes ---------- */
.shapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:18px;margin-bottom:22px}
.shape{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:26px 26px 20px;
  display:flex;flex-direction:column}
.sh-n{font-size:10.5px;font-weight:800;letter-spacing:.14em;color:var(--accent);
  font-variant-numeric:tabular-nums;display:block;margin-bottom:12px}
.shape h3{margin:0 0 10px;font-size:1.25rem;letter-spacing:-.026em;font-weight:800}
.sh-when{margin:0 0 14px;font-size:14px;font-weight:650;color:var(--ink);line-height:1.45;
  padding-bottom:14px;border-bottom:1px solid var(--rule)}
.shape p{font-size:14px;line-height:1.58;color:var(--ink-2);margin:0 0 12px}
.sh-not{font-size:13px;color:var(--ink-3);border-left:2px solid var(--rule);padding-left:12px}
.shape dl{margin:auto 0 0;padding-top:16px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:8px}
.shape dl div{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.shape dt{font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);flex:0 0 auto}
.shape dd{margin:0;font-size:12.5px;font-weight:650;color:var(--ink);text-align:right;line-height:1.4}

/* ---------- project against product ---------- */
/* the right hand column is the recommendation, so it carries the accent ground */
.pvp{min-width:640px;table-layout:fixed}
.pvp th:first-child,.pvp td:first-child{width:22%}
.pvp td.nm{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);vertical-align:middle}
.pvp thead th:nth-child(2){color:var(--ink-3)}
.pvp thead th:last-child{background:var(--accent);color:#fff}
.pvp td:nth-child(2){color:var(--ink-3)}
.pvp td:last-child{background:var(--tint);color:var(--ink);font-weight:600;
  box-shadow:inset 2px 0 0 var(--accent)}
.pvp tbody tr:last-child td:not(.nm){font-weight:800;color:var(--ink)}
.pvp tbody tr:last-child td:nth-child(2){color:var(--ink-3);font-weight:600}

/* ---------- full width figures inside a narrow reading column ---------- */
/* a diagram should not be constrained to the measure of the prose around it */
.bleed{width:min(1180px,calc(100vw - 48px));margin-left:50%;transform:translateX(-50%)}
.figcap{font-size:13px;line-height:1.55;color:var(--ink-3);text-align:center;
  max-width:70ch;margin:14px auto 0}
.figcap b{color:var(--ink);font-weight:700}
.prose > .bleed{margin-top:34px;margin-bottom:34px}
.prose > .bleed + .figcap{margin-top:-20px;margin-bottom:38px}
@media(max-width:760px){.bleed{width:100%;margin-left:0;transform:none}}

/* ---------- report: where the chain breaks, and the gate by gate read ---------- */
.rep-chain{margin-top:30px;padding-top:24px;border-top:1px solid var(--rule)}
.rep-chain h4,.rep-detailh{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 10px}
.rc-chainlead,.rep-detaillead{font-size:13.5px;line-height:1.6;color:var(--ink-2);margin:0 0 14px;max-width:68ch}
.rep-chainline{font-size:15px;line-height:1.55;color:var(--ink-2);margin:0;
  background:var(--tint);border-left:3px solid var(--accent);padding:14px 18px;border-radius:0 8px 8px 0}
.rep-chainline b{color:var(--ink);font-weight:800}
.rep-chainnote{font-size:13px;line-height:1.6;color:var(--ink-3);margin:10px 0 0;max-width:70ch}
.rep-chainnote:empty{display:none}

.rep-detail{margin-top:32px;padding-top:24px;border-top:1px solid var(--rule)}
.gd{border:1px solid var(--rule);border-radius:10px;padding:18px 20px 16px;margin-bottom:12px;background:#fff}
.gd.lvl0{border-left:3px solid var(--accent)}
.gd.lvl1{border-left:3px solid #C9A227}
.gd.lvl2{border-left:3px solid #C0392B}
.gd-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 12px;margin-bottom:6px}
.gd-n{font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);
  font-variant-numeric:tabular-nums}
.gd-head h4{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.022em;color:var(--ink);flex:1 1 auto}
.gd-score{font-size:13px;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.gd-score b{font-size:1.15rem;color:var(--ink);letter-spacing:-.03em}
.gd-band{font-size:9.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  padding:3px 9px;border-radius:100px;white-space:nowrap;border:1px solid var(--rule);color:var(--ink-3)}
.gd-band.lvl0{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.gd-band.lvl1{background:#FBF3DA;color:#8A6D08;border-color:transparent}
.gd-band.lvl2{background:#FBE9E7;color:#A5321F;border-color:transparent}
.gd-q{font-size:13px;line-height:1.5;color:var(--ink-3);margin:0 0 13px;font-style:italic}
.gd-read h5{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 5px}
.gd-read p{font-size:14px;line-height:1.58;color:var(--ink-2);margin:0}
.gd-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px 26px;
  margin:14px 0 0;padding-top:13px;border-top:1px solid var(--rule)}
.gd-cols div{min-width:0}
.gd-cols dt{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:4px}
.gd-cols dd{margin:0;font-size:13.3px;line-height:1.55;color:var(--ink-2)}

/* Gate blocks are proportionate, not uniform. Seven identical panels is what made
   this section stop being read by gate four. A gate that is holding needs no plan,
   so it collapses to its reading and gives its space to the ones that do. */

/* the meter: where this gate sits, readable without reading */
.gd-meter{position:relative;height:5px;border-radius:3px;background:var(--rule);
  margin:0 0 12px;overflow:hidden}
.gd-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:3px;background:var(--ink-3)}
.gd.lvl0 .gd-fill{background:var(--accent)}
.gd.lvl1 .gd-fill{background:#C9A227}
.gd.lvl2 .gd-fill{background:#C0392B}

/* Holding: the reading, and nothing else. There is no first move to offer for a gate
   that is already working, and printing one anyway is padding. */
.gd.lvl0{background:var(--tint,#FAFBFD);padding-top:14px;padding-bottom:13px;margin-bottom:9px}
.gd.lvl0 .gd-q,
.gd.lvl0 .gd-cols{display:none}
.gd.lvl0 .gd-read p{font-size:13px;color:var(--ink-3)}
.gd.lvl0 .gd-head h4{font-size:1rem}

/* Short: the full path, and the weight to match. Two columns rather than four across
   so the lines stay near a readable measure. */
.gd.lvl1,.gd.lvl2{border-left-width:4px}
.gd.lvl2{box-shadow:0 1px 0 var(--rule)}
.gd.lvl1 .gd-cols,.gd.lvl2 .gd-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Mixed needs the move, not the ideal. Only a gate that is genuinely short earns the
   space to describe what good would look like. */
.gd.lvl1 .gd-target{display:none}
/* Effort is four words. It reads as a note against the move, not as a third column. */
.gd-effort dd{font-weight:600;color:var(--ink-3)}
.gd.lvl1 .gd-cols{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}

@media print{
  /* A gate split across a page break loses its header, and a header stranded at the
     foot of a page is worse than a slightly short page. */
  .gd{break-inside:avoid;page-break-inside:avoid;box-shadow:none}
  .gd.lvl0{background:transparent;border-left-color:var(--rule)}
  .gd-meter{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .gd-fill{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

@media (max-width:640px){
  .gd.lvl1 .gd-cols,.gd.lvl2 .gd-cols{grid-template-columns:1fr}
}

@media print{
  /* the gate by gate read is the body of the document, so it starts a page */
  .rep-detail{break-before:page;page-break-before:always;border-top:none;margin-top:0;padding-top:0}
  .gd{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc;margin-bottom:9px;padding:13px 15px 12px}
  .gd.lvl0,.gd.lvl1,.gd.lvl2{border-left:2.5pt solid #000}
  .gd.lvl0{border-left-color:#999}
  .gd.lvl1{border-left-color:#555}
  .gd-band{border:1px solid #999!important;background:#f0f0f0!important;color:#000!important}
  .rep-chain{break-inside:avoid;page-break-inside:avoid}
  .rep-chainline{background:#f5f5f5;border-left:3px solid #000}
  .rep-detailh,.rep-chain h4{break-after:avoid;page-break-after:avoid}
  .rep-chainline,.gd-band,.gd-cols dd{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* the home page names the three groups; the services page owns the full lists */
.svc-more{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding-top:15px;border-top:1px solid var(--rule)}
.svc-more a{font-size:12.5px;font-weight:650;color:var(--accent);text-decoration:none;
  border:1px solid var(--rule);border-radius:100px;padding:5px 12px;transition:.15s}
.svc-more a:hover{border-color:var(--accent);background:var(--accent-soft);text-decoration:none}

/* the three readings share a slot; only the one matching the score is unhidden */
.gd-body{min-width:0}
.gd-r0,.gd-r1,.gd-r2{margin:0}

/* the chain shape is an argument, not a measurement, and says so */
.vc-src{font-size:12.5px;line-height:1.6;color:var(--ink-3);margin:10px 0 0;max-width:82ch}
.vc-src b{color:var(--ink-2);font-weight:700}
/* what a reader is actually left with, per group */
.svc-get{font-size:13px;line-height:1.55;color:var(--ink-2);margin:12px 0 0;padding-top:12px;
  border-top:1px solid var(--rule)}
.svc-get b{display:block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:4px}

/* ---------- operating model: the path a request actually takes ---------- */
.omwrap{background:var(--tint);border:1px solid var(--rule);border-radius:var(--r);
  padding:26px 22px 20px}
.opmodel{display:block;width:100%;height:auto}
.om-box{fill:#fff;stroke:var(--rule-2);stroke-width:1}
.om-n{font-size:10px;font-weight:800;letter-spacing:.14em;fill:var(--accent)}
.om-name{font-size:17px;font-weight:800;letter-spacing:-.02em;fill:var(--ink)}
.om-cap{font-size:11.5px;font-weight:650;fill:var(--ink-2)}
.om-sub{font-size:10.5px;fill:var(--ink-3)}
.om-link{stroke:var(--accent);stroke-width:2;fill:none}
.om-arrow{fill:var(--accent)}
.om-out{stroke:var(--warn);stroke-width:1.6;fill:none;stroke-dasharray:5 4;opacity:.75}
.om-dn{font-size:12px;font-weight:800;letter-spacing:-.01em;fill:var(--warn)}
.om-dw{font-size:10.5px;fill:var(--ink-3)}
.om-loop{stroke:var(--ink-3);stroke-width:1.6;fill:none;stroke-dasharray:6 5;opacity:.7}
.om-loopl{font-size:11px;font-weight:650;fill:var(--ink-3);text-anchor:middle}
.om-note{font-size:13px;line-height:1.6;color:var(--ink-3);margin:14px 0 0;max-width:78ch}
.om-note b{color:var(--ink-2);font-weight:700}
@media(max-width:820px){.omwrap{padding:18px 12px 14px;overflow-x:auto}
  .opmodel{min-width:900px}}
.om-dn,.om-dw{text-anchor:end}
/* grouping wrappers for the stage boxes and the two reject routes */
.om-stage,.om-diverted{pointer-events:none}

/* a failed send says so, rather than showing a thank you that is not true */
.formerr{background:#FDEDEA;border:1px solid #F3C4BB;border-radius:var(--r);padding:14px 18px;
  font-size:14.5px;line-height:1.55;color:#8C2A18;margin:14px 0 0;max-width:520px}
.formerr a{color:#8C2A18;font-weight:700}
.dgate .formerr{background:rgba(217,58,43,.12);border-color:rgba(217,58,43,.35);color:#FFB4A6}
.dgate .formerr a{color:#FFB4A6}

/* ---------- touch targets ---------- */
/* 44px is the size a thumb actually hits. Applies on touch pointers only, so the
   desktop layout keeps its tighter rhythm. */
@media (max-width:860px){
  .navtoggle{min-height:44px;padding-left:16px;padding-right:16px}
  .svc-more a{min-height:44px;display:inline-flex;align-items:center;padding:0 15px}
  .siblings li a{min-height:48px}
  .dq-opts button{min-height:48px}
  .dsteps button,.dnav-tabs button{min-height:44px}
  .art{padding-top:20px;padding-bottom:20px}
}

/* ---------- readable small print on a phone ---------- */
/* 13px is fine on a desktop at arm's length and not on a phone in one hand */
@media (max-width:860px){
  .sk-note,.vc-note,.vc-src,.svc-note,.svc-get,.tnote,.hint,.cs-meta,.figcap,
  .om-note,.rc-chainlead,.rep-detaillead,.dsteps-note,.gd-cols dd,.gd-q{font-size:14px}
  .dq-stem{font-size:15.5px;line-height:1.45}
  .ck-fixh,.rep-chainnote{font-size:13.5px}
}
@media (max-width:860px){
  .fld .hint,form .hint{font-size:14px}
  .shape dl dd{font-size:13.5px}
}
/* honeypot: off screen rather than display:none, which some agents skip filling
   and some screen readers announce. aria-hidden and tabindex keep it out of the way. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- keeping a baseline: opt in, at the point of value ---------- */
.keepbox{margin-top:18px;background:var(--tint);border:1px solid var(--rule);border-radius:var(--r);padding:22px 24px}
.keepbox[hidden]{display:none}
.keepbox h4{margin:0 0 8px;font-size:1.05rem;font-weight:800;letter-spacing:-.02em}
.keepbox p{font-size:14.5px;line-height:1.6;color:var(--ink-2);margin:0 0 14px;max-width:62ch}
.keeplist{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:7px}
.keeplist li{font-size:13.5px;line-height:1.5;color:var(--ink-2);padding-left:16px;position:relative}
.keeplist li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.keeplist b{color:var(--ink);font-weight:700}
.keepopt{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;
  color:var(--ink);margin-bottom:10px;cursor:pointer;max-width:60ch}
.keepopt input{margin-top:2px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}
.keepbox .dsave-row{margin-top:6px}

/* ---------- returning to a saved baseline ---------- */
.blstate[hidden]{display:none}
.blstate code{background:var(--tint);border:1px solid var(--rule);border-radius:6px;
  padding:2px 7px;font-size:13.5px;word-break:break-all}
.blsaved{font-size:13px;color:var(--ink-3);margin:0 0 18px;padding-bottom:14px;
  border-bottom:1px solid var(--rule)}
#blok .dreport{display:block}
/* holds the saved date above a returned baseline */
.blmeta{margin-bottom:4px}

/* ---------- report figures: where you sit, and where it breaks ---------- */
.rep-scale{margin-top:30px;padding-top:24px;border-top:1px solid var(--rule)}
.rep-scale h4,.rep-plan h4{font-size:10px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}
.rep-scalelead,.rep-planlead{font-size:13.5px;line-height:1.6;color:var(--ink-2);
  margin:0 0 16px;max-width:68ch}
.bandscale,.gatechain{display:block;width:100%;height:auto}

.bs-band{fill:var(--tint);stroke:#fff;stroke-width:2}
.bs-atrisk{fill:#E9EFFB}
.bs-workable{fill:#D7E4FA}
.bs-strong{fill:var(--accent-soft)}
.bs-name{font-size:13px;font-weight:700;fill:var(--ink-2);text-anchor:middle}
.bs-range{font-size:11px;fill:var(--ink-3);text-anchor:middle}
.bs-point,.bs-stem{fill:var(--ink)}
.bs-you{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  fill:var(--ink-3);text-anchor:middle}
.bs-pct{font-size:22px;font-weight:800;letter-spacing:-.03em;fill:var(--ink);text-anchor:middle}

.gatechain{margin-top:20px}
.ch-axis{stroke:var(--rule-2);stroke-width:1.5}
.ch-shadow{fill:var(--tint)}
.ch-fill{fill:var(--accent)}
.ch-mid .ch-fill{fill:#7FB2FF}
.ch-low .ch-fill{fill:#C0392B;opacity:.85}
.ch-after .ch-fill{opacity:.42}
.ch-after .ch-shadow{fill:#F7F9FE}
.ch-v{font-size:14px;font-weight:800;fill:var(--ink);text-anchor:middle}
.ch-n{font-size:10px;font-weight:800;letter-spacing:.1em;fill:var(--ink-3);text-anchor:middle}
.ch-l{font-size:11.5px;font-weight:650;fill:var(--ink-2);text-anchor:middle}
.ch-brline{stroke:#C0392B;stroke-width:1.6;stroke-dasharray:5 4}
.ch-brlabel{font-size:11.5px;font-weight:800;fill:#C0392B}
.ch-brsub{font-size:10.5px;fill:var(--ink-3)}

/* ---------- the ninety day plan ---------- */
.rep-plan{margin-top:32px;padding-top:24px;border-top:1px solid var(--rule)}
.rep-plan[hidden]{display:none}
.planlist{list-style:none;margin:0;padding:0;counter-reset:pl}
.pl{border-left:3px solid var(--accent);background:var(--tint);border-radius:0 10px 10px 0;
  padding:16px 20px 14px;margin-bottom:12px}
.pl[hidden]{display:none}
.pl-when{font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:5px}
.pl-when b{color:var(--accent)}
.pl h5{margin:0 0 7px;font-size:1.02rem;font-weight:800;letter-spacing:-.022em;color:var(--ink)}
.pl-do{font-size:14px;line-height:1.55;color:var(--ink-2);margin:0 0 13px}
.pl-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
  gap:12px 24px;margin:0;padding-top:12px;border-top:1px solid var(--rule)}
.pl-meta dt{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:3px}
.pl-meta dd{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2)}
.rep-planfoot{font-size:13px;line-height:1.6;color:var(--ink-3);margin:14px 0 0;max-width:70ch}

@media print{
  .rep-scale,.rep-plan{break-inside:avoid;page-break-inside:avoid}
  .gatechain{break-inside:avoid;page-break-inside:avoid}
  .pl{break-inside:avoid;page-break-inside:avoid;border-left:2.5pt solid #000;background:#f6f6f6}
  .bs-strong,.bs-workable,.bs-atrisk,.bs-band{fill:#e8e8e8}
  .bs-strong{fill:#cfcfcf}
  .ch-fill{fill:#444}
  .ch-low .ch-fill{fill:#000}
  .ch-mid .ch-fill{fill:#777}
  .ch-shadow{fill:#eee}
  .ch-brline{stroke:#000}
  .ch-brlabel{fill:#000}
  .bandscale,.gatechain,.pl{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* the break label sits in its own band above the columns */
.ch-brlabel{font-size:13px;font-weight:800;fill:#C0392B}
.ch-brsub{font-size:11.5px;fill:var(--ink-3)}
.ch-v{font-size:15px}
.ch-l{font-size:12.5px}
/* structural groups and states in the report figures */
.bs-early{fill:var(--tint)}
.bs-marker{pointer-events:none}
.ch-gate,.ch-break{pointer-events:none}
.pl-order{font-variant-numeric:tabular-nums}

/* ---------- contrast: text on the accent tint needs the darker accent ---------- */
/* #0B63F6 on #E4EDFE is 4.32, just under AA. The darker accent clears it comfortably
   and is indistinguishable at these sizes. */
.lp-tag,.gd-band.lvl0,.formok,.dg-welcome b,.pl-when b{color:var(--accent-dk)}
/* the Out cap and the gate numbers both sit on the accent tint */
.sixd-cap.end span,.sixd-cap.end b{color:var(--accent-dk)}
.sixd-gates button[aria-expanded="true"] em{color:var(--accent-dk)}
/* optional is stated on the field, not left for the reader to discover by submitting */
.opt{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin-left:6px}

/* The mark on the report itself. A printed copy travels without the site around it,
   so it has to say whose document it is on its own. */
.rc-brand{display:flex;align-items:center;gap:10px}
.rc-brand .mark{flex:none}
.rep-footmark{margin:0 0 10px}
.rep-footmark .mark{opacity:.75}
@media print{.rc-brand .mark,.rep-footmark .mark{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
