/* ---- Stoneforge free tools: fillable, ungated, print-friendly one-pagers ---- */

.tool-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px;}
.print-only{display:none;}

/* The worksheet grid (used by the pipeline tool; other tools reuse tg-* pieces) */
.tool-sheet{overflow-x:auto;}
.tool-grid{display:grid;grid-template-columns:1fr 1.4fr 1.4fr .85fr;min-width:660px;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;background:var(--card,#fff);}
.tool-grid .tg-head,.tool-grid .tg-row{display:contents;}
.tool-grid .tg-head span{padding:12px 14px;font-family:var(--sans);font-size:12px;line-height:1.4;letter-spacing:.02em;font-weight:600;color:var(--ink);background:rgba(28,36,32,.05);border-bottom:1px solid var(--line-strong);}
.tool-grid .tg-head span em{display:block;font-style:normal;font-weight:400;font-size:11px;color:var(--ink-dim);margin-top:3px;}
.tool-grid .tg-head span b{color:var(--acc-deep,#245c28);font-weight:600;}
.tool-grid input{border:none;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:transparent;font-family:var(--sans);font-size:15px;color:var(--ink);padding:13px 14px;width:100%;box-sizing:border-box;min-height:52px;}
.tool-grid input:focus{outline:none;background:rgba(46,125,50,.06);}
.tool-grid .tg-verdict{border-right:none;}
.tool-grid .tg-head span.tg-verdict{background:rgba(28,36,32,.05);}

.tool-printhead{font-family:var(--sans);font-size:12px;color:var(--ink-dim);margin-bottom:12px;}

/* Tools hub cards */
.tool-card{display:flex;flex-direction:column;}
.tool-card h3{margin:8px 0 6px;}
a.tool-card{text-decoration:none;transition:transform .12s;}
a.tool-card:hover{transform:translateY(-2px);}
.tool-card .tool-go{margin-top:14px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--acc-deep,#245c28);letter-spacing:.01em;}
a.tool-card:hover .tool-go{text-decoration:underline;}
.tool-card.is-soon{opacity:.62;}
.tool-card .tool-soon{margin-top:14px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);}

@media (max-width:600px){
  .tool-grid input{font-size:14px;min-height:48px;padding:11px 12px;}
}

/* ---- Print: strip the site chrome, leave a clean sheet ---- */
@media print{
  :root{--card:#fff;}
  .no-print{display:none !important;}
  .print-only{display:block !important;}
  .site-head,.site-foot,.tool-actions,.crumb,.sc-strip,.onramp,.skip{display:none !important;}
  body{background:#fff;color:#000;}
  .wrap{max-width:none;width:100%;padding:0;}
  .hero{margin:0 0 14px;}
  .hero .eyebrow{color:#245c28;}
  h1.lead{font-size:24px;line-height:1.15;}
  .standfirst{font-size:13px;line-height:1.5;color:#222;}
  .tool-sheet{overflow:visible;}
  .tool-grid{min-width:0;border-color:#999;page-break-inside:avoid;}
  .tool-grid .tg-head span{background:#f2f2f2;color:#000;border-color:#999;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .tool-grid input{border-color:#bbb;min-height:46px;color:#000;}
  section.reveal{opacity:1 !important;transform:none !important;}
  .sec-eyebrow,.sec,.prose{color:#000;}
  @page{margin:14mm;}
}

/* ---- Guide-sheets: editorial reference handouts (read + print), no inputs ---- */

/* At-a-glance journey map */
.guide-map{display:flex;align-items:flex-start;gap:0;margin:2px 0 30px;overflow-x:auto;padding-bottom:4px;}
.guide-map-step{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1 1 0;min-width:84px;position:relative;}
.guide-map-step::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:2px;background:var(--line-strong);z-index:0;}
.guide-map-step:first-child::before{display:none;}
.guide-map-dot{width:36px;height:36px;border-radius:50%;background:var(--acc-deep,#245c28);color:#fff;font-family:'Newsreader',Georgia,serif;font-size:17px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;}
.guide-map-lbl{margin-top:8px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--ink);line-height:1.3;}

/* The rule lead – soft card, no bar */
.guide-lead{padding:16px 20px;background:rgba(46,125,50,.05);border-radius:12px;margin:0 0 6px;font-size:15px;line-height:1.62;}

/* The five stages as a vertical journey with a connecting spine */
.guide-journey{position:relative;margin-top:28px;}
.guide-stage{display:grid;grid-template-columns:58px 1fr;column-gap:20px;position:relative;padding-bottom:40px;}
.guide-stage:not(:last-child)::before{content:"";position:absolute;left:28px;top:58px;bottom:2px;width:1px;background:var(--line);}
.guide-num{width:56px;height:56px;border-radius:50%;border:2px solid var(--acc-deep,#245c28);background:var(--card,#fff);color:var(--acc-deep,#245c28);font-family:'Newsreader',Georgia,serif;font-size:26px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;}
.guide-name{font-family:'Newsreader',Georgia,serif;font-size:25px;line-height:1.15;margin:9px 0 3px;color:var(--ink);}
.guide-purpose{font-style:italic;color:var(--ink-dim);margin:0 0 16px;font-size:15px;}
.guide-q{font-family:'Newsreader',Georgia,serif;font-size:21px;line-height:1.4;color:var(--acc-deep,#245c28);margin:0 0 17px;}
.guide-points{margin:0 0 18px;padding-left:20px;}
.guide-points li{margin-bottom:7px;line-height:1.5;color:var(--ink);}
.guide-notes{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.guide-note{border-radius:10px;padding:13px 15px;}
.guide-trap{background:rgba(28,36,32,.045);}
.guide-gate{background:rgba(46,125,50,.06);}
.guide-lbl{display:block;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;}
.guide-trap .guide-lbl{color:var(--ink-dim);}
.guide-gate .guide-lbl{color:var(--acc-deep,#245c28);}
.guide-note p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink);}

.guide-close{margin-top:6px;border-top:1px solid var(--line);padding-top:24px;font-size:15.5px;line-height:1.62;}
.guide-close strong{color:var(--acc-deep,#245c28);}

@media (max-width:640px){
  .guide-stage{grid-template-columns:42px 1fr;column-gap:14px;}
  .guide-stage:not(:last-child)::before{left:20px;top:46px;}
  .guide-num{width:42px;height:42px;font-size:20px;}
  .guide-name{font-size:22px;}
  .guide-q{font-size:19px;}
  .guide-notes{grid-template-columns:1fr;}
  .guide-map-lbl{font-size:10px;}
  .guide-map-step{min-width:72px;}
}

@media print{
  .guide-stage:not(:last-child)::before{background:#ccc;}
  .guide-num{border-color:#245c28;color:#245c28;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .guide-lead{background:#f4f7f4;border-color:#245c28;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .guide-q{color:#000 !important;border-color:#245c28;}
  .guide-trap{background:#f4f4f2;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .guide-gate{background:#f0f5f0;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .guide-stage{page-break-inside:avoid;}
}

/* ---- Interactive self-assessment (tick what's true of your deal) ---- */
.deal-co{margin:8px 0 6px;}
.deal-co label{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.deal-co input{font-family:var(--sans);font-size:15px;padding:9px 13px;border:1px solid var(--line-strong);border-radius:9px;min-width:240px;max-width:100%;background:var(--card,#fff);color:var(--ink);}
.deal-co input:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.deal-co-note{display:block;font-size:11.5px;color:var(--ink-dim);margin-top:6px;}
.guide-check{margin:0 0 16px;display:flex;flex-direction:column;gap:1px;}
.guide-item{display:flex;gap:11px;align-items:flex-start;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .12s;}
.guide-item:hover{background:rgba(46,125,50,.05);}
.guide-item input{margin:2px 0 0;width:19px;height:19px;flex:0 0 auto;accent-color:var(--acc-deep,#245c28);cursor:pointer;}
.guide-item span{font-size:14.5px;line-height:1.5;color:var(--ink);}
.guide-item input:checked ~ span{color:var(--ink-dim);}
.guide-stage.stage-cleared .guide-num{background:var(--acc-deep,#245c28);color:#fff;}
.guide-stage.stage-stuck .guide-num{box-shadow:0 0 0 4px rgba(28,36,32,.09);}

/* Live result panel */
.deal-result{margin:10px 0 24px;padding:18px 20px;border-radius:12px;background:rgba(28,36,32,.04);}
.deal-result-lbl{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;}
.deal-result-body{margin:0;font-size:15.5px;line-height:1.55;color:var(--ink);}
.deal-result.is-stuck{background:rgba(46,125,50,.07);}
.deal-result.is-done{background:rgba(46,125,50,.11);}
.deal-missing-lbl{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);margin:12px 0 4px;}
.deal-missing{margin:0;padding-left:20px;}
.deal-missing li{font-size:14px;line-height:1.45;margin-bottom:4px;color:var(--ink);}

/* ---- Before-you-hire sort: empty your week -> sort each job -> a decision ---- */
/* author display rules below (flex/inline-block) would otherwise defeat the [hidden] attribute */
.pile [hidden],.pile-tag[hidden],.pile-counts[hidden]{display:none !important;}
.pile-opt{font-weight:400;color:var(--ink-dim);text-transform:none;letter-spacing:0;}
.pile{margin:20px 0 6px;}
.pile-nojs{font-size:14px;color:var(--ink-dim);padding:8px 0;}
.pile-job{border:1px solid var(--line-strong);border-radius:12px;padding:14px 15px;margin-bottom:12px;background:var(--card,#fff);}
.pile-job-top{display:flex;gap:10px;align-items:center;margin-bottom:11px;}
.pile-job-name{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:15.5px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);}
.pile-job-name:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.pile-job-del{flex:0 0 auto;width:32px;height:32px;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--ink-dim);font-size:19px;line-height:1;cursor:pointer;transition:all .12s;}
.pile-job-del:hover{border-color:#a33;color:#a33;}
.pile-seg{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px;}
.pile-seg:last-child{margin-bottom:0;}
.pile-seg button{font-family:var(--sans);font-size:13px;padding:8px 13px;border:1px solid var(--line-strong);border-radius:20px;background:transparent;color:var(--ink);cursor:pointer;transition:all .12s;}
.pile-seg button:hover{border-color:var(--acc-deep,#245c28);}
.pile-seg button.on{background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}
.pile-seg-sub{margin-left:2px;}
.pile-split-note{font-size:13px;line-height:1.5;color:var(--ink-dim);background:rgba(28,36,32,.045);border-radius:8px;padding:10px 12px;margin-top:2px;}
.pile-define-note{font-size:12.5px;line-height:1.5;color:var(--acc-deep,#245c28);background:rgba(46,125,50,.07);border-radius:8px;padding:9px 12px;margin-top:8px;}

/* "Not sure - help me place it" guided sieve */
.pile-help{display:inline-block;margin:-3px 0 9px;padding:0;background:none;border:none;font-family:var(--sans);font-size:12.5px;color:var(--acc-deep,#245c28);cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.pile-help:hover{color:var(--ink);}
.pile-quiz{margin:0 0 10px;padding:14px 15px;background:rgba(46,125,50,.05);border:1px solid rgba(46,125,50,.18);border-radius:10px;}
.pile-quiz-q{margin:0 0 11px;font-family:'Newsreader',Georgia,serif;font-size:17px;line-height:1.35;color:var(--acc-deep,#245c28);}
.pile-quiz-opts{display:flex;flex-direction:column;gap:7px;align-items:flex-start;}
.pile-quiz-a{font-family:var(--sans);font-size:13.5px;text-align:left;padding:9px 14px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card,#fff);color:var(--ink);cursor:pointer;transition:all .12s;width:100%;}
.pile-quiz-a:hover{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.05);}

/* Walk-only placement: the "place it" button, the walk, the resolved tag + redo */
.pile-place{margin:2px 0 0;}
.pile-place-start{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--acc-deep,#245c28);background:transparent;border:1px dashed var(--line-strong);border-radius:9px;padding:10px 15px;cursor:pointer;transition:all .12s;}
.pile-place-start:hover{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.04);}
.pile-place .pile-tag{margin-top:0;}
.pile-redo{margin-left:9px;font-family:var(--sans);font-size:12px;color:var(--ink-dim);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.pile-redo:hover{color:var(--acc-deep,#245c28);}
.pile-tag-split{background:rgba(28,36,32,.08);color:var(--ink);}

/* Your-decision emphasis (no bars – tint + label weight + the Save action) */
.deal-decision.is-stuck,.deal-decision.is-done{background:rgba(46,125,50,.09);}
.deal-decision .deal-result-lbl{color:var(--acc-deep,#245c28);}
.pile-decide-actions{margin-top:15px;}
.pile-decide-actions .btn{min-width:0;}

/* Builder guidance */
.pile-hint{font-size:13px;line-height:1.55;color:var(--ink-dim);margin:0 0 14px;}
.pile-hint b{color:var(--ink);font-weight:600;}

/* The vertical 1-2-3 flow (reuses .guide-stage spine + numbered circle) */
.step-journey{margin-top:22px;}
.step-journey .guide-name{margin-bottom:3px;}
.step-journey .guide-purpose{margin-bottom:16px;}
.step-journey .deal-co{margin:0;}
.step-journey .pile{margin-top:0;}
.step-journey[data-step] , .step-journey .guide-stage{padding-bottom:34px;}
.pile-rate-flag{margin:10px 0 0;font-size:12.5px;font-weight:600;color:var(--acc-deep,#245c28);}
.pile-rate-flag[hidden]{display:none;}
.tool-watch{margin:14px 0 0;font-family:var(--sans);font-size:13.5px;}
.tool-watch a{color:var(--acc-deep,#245c28);font-weight:600;text-decoration:none;}
.tool-watch a:hover{text-decoration:underline;}

/* The walk shows its progress: a breadcrumb of answers, and each question fades in */
@keyframes pileFade{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}
.pile-quiz{animation:pileFade .18s ease;}
.pile-trail{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:11px;}
.pile-trail-chip{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--acc-deep,#245c28);background:rgba(46,125,50,.1);border-radius:20px;padding:3px 9px;}
.pile-trail-sep{color:var(--ink-dim);font-size:12px;}

/* ---- Real-Aim ladder: name the number -> climb down -> a decision ---- */
.aim-ladder{margin:2px 0 14px;}
.aim-rung{padding:11px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--card,#fff);}
.aim-rung-down{display:block;text-align:center;color:var(--ink-dim);font-size:15px;line-height:1;margin:-4px 0 7px;}
.aim-rung-lead{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:3px;}
.aim-rung-val{font-family:'Newsreader',Georgia,serif;font-size:19px;line-height:1.3;color:var(--ink);}
.aim-rung.is-bottom{background:rgba(46,125,50,.09);border-color:rgba(46,125,50,.3);}
.aim-rung.is-bottom .aim-rung-val{color:var(--acc-deep,#245c28);}
.aim-rung-tag{display:inline-block;margin-top:7px;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
.aim-quiz-card{margin-top:4px;}
.aim-more{display:flex;gap:8px;margin-top:11px;}
.aim-more input{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:14px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card,#fff);color:var(--ink);}
.aim-more input:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.aim-more button{flex:0 0 auto;font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;background:var(--acc-deep,#245c28);border:none;border-radius:9px;padding:0 16px;cursor:pointer;}
.aim-bottom-btn{margin-top:11px;width:100%;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--acc-deep,#245c28);background:transparent;border:1px dashed var(--line-strong);border-radius:9px;padding:10px 14px;cursor:pointer;transition:all .12s;}
.aim-bottom-btn:hover{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.05);}
.aim-deep-note{margin:0 0 10px;font-size:12.5px;line-height:1.5;color:var(--ink-dim);font-style:italic;}
.aim-nojs{font-size:14px;color:var(--ink-dim);padding:8px 0;line-height:1.55;}
.aim-nojs[hidden]{display:none !important;}

/* the two-question test that turns the real aim into a decision */
.aim-test{margin:0 0 8px;padding:16px 18px;border-radius:12px;background:rgba(28,36,32,.04);}
.aim-test-q{margin-bottom:16px;}
.aim-test-q:last-child{margin-bottom:0;}
.aim-test-prompt{margin:0 0 10px;font-family:'Newsreader',Georgia,serif;font-size:16px;line-height:1.4;color:var(--ink);}
.aim-test-opts{display:flex;flex-wrap:wrap;gap:8px;}
.aim-test-opts .pile-quiz-a{width:auto;}
.pile-quiz-a.is-on{background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}

/* the decision + the truer target the owner keeps */
.aim-verdict{margin-top:14px;}
.aim-verdict #aimReadBox{margin-bottom:16px;}
.aim-truer{margin:4px 0 2px;}
.aim-truer-l{display:block;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:14px;}
.aim-truer-l textarea{display:block;width:100%;box-sizing:border-box;margin-top:7px;font-family:var(--sans);font-size:14.5px;font-weight:400;line-height:1.5;padding:10px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card,#fff);color:var(--ink);resize:vertical;}
.aim-truer-l textarea:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.aim-verdict[hidden],.aim-test[hidden]{display:none !important;}

/* Real-Aim step 1: a select, not a 736px stack of thirteen buttons */
.aim-select{width:100%;box-sizing:border-box;font-family:var(--sans);font-size:15px;padding:12px 13px;min-height:46px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card,#fff);color:var(--ink);cursor:pointer;}
.aim-select:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.aim-opt-tag{display:inline-block;vertical-align:middle;margin-left:8px;font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line-strong);border-radius:20px;padding:3px 8px;}
.aim-mask-hint{margin:9px 0 0;font-size:12.5px;color:var(--ink-dim);font-style:italic;}

/* Gated steps: nothing removed, just shut until there's a number to work on.
   The heading stays visible so the shape of the journey is still legible. */
.guide-stage.is-locked .deal-co,
.guide-stage.is-locked .aim-stands,
.guide-stage.is-locked .deal-result,
.guide-stage.is-locked .aim-verdict,
.guide-stage.is-locked .aim-deeper,
.guide-stage.is-locked .aim-check{display:none !important;}
.guide-stage.is-locked .guide-num{border-color:var(--line-strong);color:var(--ink-dim);}
.guide-stage.is-locked .guide-name,
.guide-stage.is-locked .guide-purpose{color:var(--ink-dim);opacity:.72;}
.aim-locked-note{display:none;margin:0 0 4px;font-size:13px;color:var(--acc-deep,#245c28);font-weight:600;}
.guide-stage.is-locked .aim-locked-note{display:block;}
.guide-stage[data-step="against"].is-locked .aim-locked-note,
.guide-stage[data-step="stands"].is-locked .aim-locked-note,
.guide-stage[data-step="decision"].is-locked .aim-locked-note{display:none;}
.aim-live-prog{opacity:.85;font-weight:600;letter-spacing:.04em;}
.aim-onramp-line{margin:0 0 14px;font-size:15px;line-height:1.6;color:var(--ink);}
.aim-onramp-line[hidden]{display:none !important;}
.aim-restart{margin-left:4px;}

/* The live bar: the verdict sits screens below the last control, so say when it lands */
.aim-live{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:12px;
  padding:11px 16px calc(11px + env(safe-area-inset-bottom,0px));background:var(--acc-deep,#245c28);color:#fff;
  box-shadow:0 -2px 14px rgba(0,0,0,.16);}
.aim-live[hidden]{display:none !important;}
.aim-live-lbl{font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.75;flex:0 0 auto;}
.aim-live-val{font-family:'Newsreader',Georgia,serif;font-size:15px;line-height:1.25;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.aim-live-go{flex:0 0 auto;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--acc-deep,#245c28);background:#fff;border:none;border-radius:20px;padding:9px 14px;min-height:44px;cursor:pointer;}
@media (max-width:520px){
  .aim-live{flex-wrap:wrap;gap:4px 10px;}
  .aim-live-lbl{flex:1 1 100%;}
  .aim-live-val{font-size:14px;}
}
@media print{.aim-live{display:none !important;}}
.aim-l2{margin-top:16px;}
.aim-since{margin-top:16px;}
.aim-q-l{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;}
.aim-chips{display:flex;flex-wrap:wrap;gap:8px;}
/* 44px minimum touch target - the old 34px chips failed on mobile */
.aim-chip{font-family:var(--sans);font-size:13.5px;padding:11px 16px;min-height:44px;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:22px;background:var(--card,#fff);color:var(--ink);cursor:pointer;transition:all .12s;}
.aim-chip:hover{border-color:var(--acc-deep,#245c28);}
.aim-chip.is-on{background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}

/* Real-Aim step 2: the outside read – what a number like this stands in for */
.aim-mask-opts{display:flex;flex-direction:column;gap:9px;margin:0 0 4px;}
.aim-mask{display:block;text-align:left;padding:13px 15px;border:1px solid var(--line-strong);border-radius:11px;background:var(--card,#fff);color:var(--ink);cursor:pointer;transition:all .12s;width:100%;}
.aim-mask:hover{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.04);}
.aim-mask.is-on{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.08);}
.aim-mask-pick{display:block;font-family:var(--sans);font-size:14px;font-weight:700;color:var(--acc-deep,#245c28);margin-bottom:4px;}
.aim-mask-line{display:block;font-size:13.5px;line-height:1.5;color:var(--ink);}
.aim-mask-line em{font-style:italic;}

/* Real-Aim step 2: the three quick tests (frames beyond the mask) */
.aim-tests{margin-top:18px;padding:16px 18px;border-radius:12px;background:rgba(28,36,32,.035);}
.aim-tests[hidden]{display:none !important;}
.aim-tests-h{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
.aim-tests-note{margin:5px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-dim);font-style:italic;}
.aim-tests .aim-since:first-of-type{margin-top:14px;}

/* Real-Aim: the extra rung, shown only when the named aim is itself an outward one */
.aim-deeper{margin:0 0 16px;padding:16px 18px;border-radius:12px;background:rgba(28,36,32,.05);}
.aim-deeper[hidden]{display:none !important;}
.aim-deeper .deal-result-lbl{color:var(--acc-deep,#245c28);}
.aim-deeper-lead{margin:0 0 12px;font-size:15px;line-height:1.6;color:var(--ink);}
.aim-deeper .aim-more{margin-top:11px;}

/* Real-Aim step 3: where the tests agree, then the shorter road */
.aim-signals{margin:0 0 16px;padding:16px 18px;border-radius:12px;background:rgba(46,125,50,.09);}
.aim-signals[hidden]{display:none !important;}
.aim-signals .deal-result-lbl{color:var(--acc-deep,#245c28);}
.aim-signals-body{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink);}
.aim-warn{display:block;margin-top:10px;font-size:14px;line-height:1.55;color:var(--ink-dim);}

/* Real-Aim: the competing-aim tension, and the dated check that replaces the old re-typing boxes */
.aim-tension{margin-top:14px;padding:14px 16px;border-radius:11px;background:rgba(28,36,32,.05);}
.aim-tension[hidden]{display:none !important;}
.aim-tension-body{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink);}
.aim-tension .aim-since{margin-top:14px;}
.aim-check{margin:0 0 4px;padding:16px 18px;border-radius:12px;background:var(--card,#fff);border:1px solid rgba(46,125,50,.28);}
.aim-check[hidden]{display:none !important;}
.aim-check .deal-result-lbl{color:var(--acc-deep,#245c28);}
.aim-check-body{margin:0;font-size:15px;line-height:1.6;color:var(--ink);}

/* Real-Aim step 3: the shorter road */
.aim-road{margin:0 0 16px;padding:16px 18px;border-radius:12px;background:rgba(46,125,50,.09);}
.aim-road .deal-result-lbl{color:var(--acc-deep,#245c28);}
.aim-road-body{margin:0;font-size:15px;line-height:1.6;color:var(--ink);}

/* The seat(s) to define – auto-built from the placed skilled jobs */
.seat-card{background:var(--card,#fff);border:1px solid rgba(46,125,50,.2);border-radius:10px;padding:15px 16px;margin-bottom:12px;}
.seat-role-h{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--acc-deep,#245c28);margin-bottom:10px;}
.seat-jobs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;}
.seat-job-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12.5px;color:var(--ink);background:rgba(28,36,32,.05);border-radius:20px;padding:5px 12px;}
.seat-move{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--acc-deep,#245c28);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;}
.seat-move:hover{color:var(--ink);}
.seat-none{font-size:12.5px;color:var(--ink-dim);font-style:italic;}
.seat-card label{display:block;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink);margin-bottom:11px;}
.seat-card label:last-of-type{margin-bottom:0;}
.seat-card label input{display:block;width:100%;box-sizing:border-box;margin-top:6px;font-family:var(--sans);font-size:14px;font-weight:400;padding:8px 11px;border:1px solid var(--line-strong);border-radius:7px;background:transparent;color:var(--ink);}
.seat-card label input:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.seat-l-pay input{max-width:190px;}
.seat-cost{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--ink);background:rgba(46,125,50,.06);border-radius:8px;padding:10px 12px;}
.pile-seat-add{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--acc-deep,#245c28);background:transparent;border:1px dashed var(--line-strong);border-radius:9px;padding:9px 14px;cursor:pointer;}
.pile-seat-add:hover{border-color:var(--acc-deep,#245c28);}
.pile-seat-add[hidden],.pile-decide-actions[hidden],.seat-cost[hidden]{display:none !important;}
.pile-tag{display:inline-block;margin-top:4px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:20px;}
.pile-tag-automate,.pile-tag-delegate{background:rgba(28,36,32,.07);color:var(--ink);}
.pile-tag-keep{background:rgba(46,125,50,.12);color:var(--acc-deep,#245c28);}
.pile-tag-hire{background:var(--acc-deep,#245c28);color:#fff;}
.pile-role{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
.pile-role label{display:block;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.pile-role-good{width:100%;box-sizing:border-box;font-family:var(--sans);font-size:14.5px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--ink);}
.pile-role-good:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.pile-add{width:100%;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--acc-deep,#245c28);background:transparent;border:1px dashed var(--line-strong);border-radius:10px;padding:12px 16px;cursor:pointer;transition:all .12s;}
.pile-add:hover{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.04);}
.pile-counts{display:flex;flex-wrap:wrap;gap:14px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);}
.pile-count{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-dim);}
.pile-count b{color:var(--acc-deep,#245c28);font-size:14px;margin-left:2px;}
.pile-gap{display:block;height:10px;}

/* Hours field + ladder select on each job row */
.pile-job-hrs{flex:0 0 78px;width:78px;font-family:var(--sans);font-size:14px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);text-align:center;}
.pile-job-hrs:focus{outline:none;border-color:var(--acc-deep,#245c28);}
/* per-job cadence: hours + a day/week/month, with a live weekly-equivalent */
.pile-job-freq{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 11px;font-family:var(--sans);font-size:13.5px;color:var(--ink-dim);}
.pile-job-freq .pile-job-hrs{flex:0 0 56px;width:56px;padding:8px;}
.pile-job-per{font-family:var(--sans);font-size:13.5px;padding:8px 9px;border:1px solid var(--line-strong);border-radius:7px;background:var(--card,#fff);color:var(--ink);cursor:pointer;}
.pile-job-per:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.pile-job-eq{font-size:12.5px;font-weight:600;color:var(--acc-deep,#245c28);}
.pile-ladder{width:100%;font-family:var(--sans);font-size:14.5px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--card,#fff);color:var(--ink);margin-bottom:9px;cursor:pointer;appearance:auto;}
.pile-ladder:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.pile-skill{margin-bottom:0;}

/* Effective-hourly-rate helper */
.pile-opt{font-weight:400;color:var(--ink-dim);text-transform:none;letter-spacing:0;}
.pile-helper{margin-top:8px;}
.pile-helper summary{font-family:var(--sans);font-size:12.5px;color:var(--acc-deep,#245c28);cursor:pointer;width:max-content;}
.pile-helper-body{margin-top:10px;padding:12px 14px;background:rgba(46,125,50,.05);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
.pile-helper-body label{font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--ink);display:flex;flex-direction:column;gap:5px;}
.pile-helper-body input{font-family:var(--sans);font-size:14px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:7px;background:var(--card,#fff);color:var(--ink);width:150px;max-width:100%;}
.pile-helper-body button{font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;background:var(--acc-deep,#245c28);border:none;border-radius:7px;padding:9px 15px;cursor:pointer;}
.pile-helper-note{flex:1 1 100%;font-size:11.5px;color:var(--ink-dim);}

/* The seat to define */
.pile-seat{margin:0 0 22px;padding:18px 20px;border-radius:12px;background:rgba(46,125,50,.07);border:1px solid rgba(46,125,50,.22);}
.pile-seat-intro{margin:0 0 14px;font-size:14.5px;line-height:1.55;color:var(--ink);}
.pile-seat-l{display:block;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:12px;}
.pile-seat-l input{display:block;width:100%;box-sizing:border-box;margin-top:6px;font-family:var(--sans);font-size:14.5px;font-weight:400;padding:9px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--card,#fff);color:var(--ink);}
.pile-seat-l input:focus{outline:none;border-color:var(--acc-deep,#245c28);}
.pile-seat-cost{margin:2px 0 0;font-size:14px;line-height:1.55;color:var(--ink);background:var(--card,#fff);border-radius:9px;padding:12px 14px;}

/* Four-rung reference: one collapsed panel, hairline rows – not four blocks */
.rung-ref{border:1px solid var(--line);border-radius:12px;margin:18px 0 4px;background:transparent;}
.rung-ref>summary{list-style:none;cursor:pointer;font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--acc-deep,#245c28);padding:15px 18px;display:flex;align-items:center;justify-content:space-between;}
.rung-ref>summary::-webkit-details-marker{display:none;}
.rung-ref>summary::after{content:"+";font-size:19px;line-height:1;color:var(--ink-dim);font-weight:400;}
.rung-ref[open]>summary::after{content:"–";}
.rung-ref[open]>summary{border-bottom:1px solid var(--line);color:var(--ink);}
.rung-ref-body{padding:2px 18px 8px;}
.rung-ref-item{display:grid;grid-template-columns:24px 1fr;gap:13px;padding:15px 0;border-top:1px solid var(--line);align-items:start;}
.rung-ref-item:first-child{border-top:none;}
.rung-ref-n{font-family:'Newsreader',Georgia,serif;font-size:22px;line-height:1.1;color:var(--acc-deep,#245c28);}
.rung-ref-item>div{font-size:14px;line-height:1.62;color:var(--ink);}
.rung-ref-move{color:var(--ink-dim);}

/* Method-attribution line */
.guide-method{margin:22px 0 0;font-size:13px;line-height:1.6;color:var(--ink-dim);}
.guide-method em{font-style:italic;}

/* FAQ (reuses site .faq-item; GEO/AEO citable prose) */
.tool-faq{padding-top:8px;}
.tool-faq .hire-verdicts-lbl{margin-bottom:2px;}
.tool-faq .faq-item summary h2{max-width:34ch;}
@media print{.tool-faq{display:none !important;}}

/* The four piles, shown in full (also the no-JS fallback) */
.hire-verdicts{margin:8px 0 6px;}
.hire-verdicts-lbl{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:12px;}
.hire-verdict{padding:14px 16px;border-radius:11px;background:rgba(28,36,32,.035);margin-bottom:10px;border:1px solid transparent;transition:background .15s,border-color .15s;}
.hire-verdict-tag{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--acc-deep,#245c28);margin-bottom:6px;}
.hire-verdict p{margin:0;font-size:14.5px;line-height:1.58;color:var(--ink);}
.hire-verdict.is-reached{background:rgba(46,125,50,.1);border-color:rgba(46,125,50,.34);}

@media print{
  .hire-verdict{background:#f4f4f2;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* ---- On-demand assessment PDF (only #dealPrintDoc / #hirePrintDoc prints) ---- */
@media print{
  html,body{margin:0 !important;padding:0 !important;background:#fff;color:#000;}
  main,.wrap{margin:0 !important;padding:0 !important;}
  .site-head,.site-foot,.skip{display:none !important;}
  main .wrap > *:not(#dealPrintDoc):not(#hirePrintDoc):not(#aimPrintDoc):not(#ccPrintDoc):not(#hcPrintDoc):not(#anPrintDoc){display:none !important;}
  #dealPrintDoc,#hirePrintDoc,#aimPrintDoc,#ccPrintDoc,#hcPrintDoc,#anPrintDoc{display:block !important;margin:0;color:#000;font-family:Montserrat,system-ui,sans-serif;}
  #dealPrintDoc .pd-logo,#hirePrintDoc .pd-logo,#aimPrintDoc .pd-logo,#ccPrintDoc .pd-logo,#hcPrintDoc .pd-logo,#anPrintDoc .pd-logo{display:block;height:26px;width:auto;margin:0 0 12px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #dealPrintDoc .pd-head,#hirePrintDoc .pd-head,#aimPrintDoc .pd-head,#ccPrintDoc .pd-head,#hcPrintDoc .pd-head,#anPrintDoc .pd-head{font-family:Newsreader,Georgia,serif;font-size:21px;font-weight:600;margin:0 0 2px;}
  #dealPrintDoc .pd-sub,#hirePrintDoc .pd-sub,#aimPrintDoc .pd-sub,#ccPrintDoc .pd-sub,#hcPrintDoc .pd-sub,#anPrintDoc .pd-sub{font-family:Montserrat,system-ui,sans-serif;font-size:12px;font-weight:600;color:#245c28;margin:0 0 6px;}
  #dealPrintDoc .pd-intro,#hirePrintDoc .pd-intro,#aimPrintDoc .pd-intro,#ccPrintDoc .pd-intro,#hcPrintDoc .pd-intro,#anPrintDoc .pd-intro{font-size:11px;color:#333;line-height:1.45;margin:0 0 8px;}
  /* Real-aim: fits one page. The doc grew to three tinted panels plus the ladder, which
     overran Letter by ~320px and broke mid-panel - so this tightens type and padding for
     THIS doc only, and forbids a break inside any block. */
  #aimPrintDoc > *{page-break-inside:avoid;break-inside:avoid;}
  #aimPrintDoc p,#aimPrintDoc div{orphans:3;widows:3;}
  #aimPrintDoc .pd-logo{height:22px;margin:0 0 8px;}
  #aimPrintDoc .pd-head{font-size:19px;margin:0 0 1px;}
  #aimPrintDoc .pd-intro{font-size:10px;line-height:1.35;margin:0 0 7px;}
  #aimPrintDoc .pd-leak{font-size:10px;line-height:1.36;padding:6px 9px;margin:0 0 6px;}
  #aimPrintDoc .pd-verdict{font-size:11.5px;line-height:1.38;padding:7px 10px;margin:0 0 6px;}
  #aimPrintDoc .aim-pd-truer{font-size:10px;line-height:1.36;padding:6px 9px;margin:0 0 6px;}
  #aimPrintDoc .aim-pd-ladder{margin:0 0 7px;}
  #aimPrintDoc .aim-pd-rung{font-size:11px;line-height:1.35;padding:4px 0;}
  #aimPrintDoc .pd-contact{font-size:10px;line-height:1.4;margin-top:8px;}
  #aimPrintDoc .pd-foot{font-size:9px;margin-top:6px;padding-top:4px;}
  /* The commitment card doc: same one-page discipline as the aim doc. */
  #ccPrintDoc > *{page-break-inside:avoid;break-inside:avoid;}
  #ccPrintDoc p,#ccPrintDoc div{orphans:3;widows:3;}
  #ccPrintDoc .pd-logo{height:22px;margin:0 0 8px;}
  #ccPrintDoc .pd-head{font-size:19px;margin:0 0 1px;}
  #ccPrintDoc .pd-intro{font-size:9.4px;line-height:1.32;margin:0 0 6px;}
  #ccPrintDoc .pd-leak{font-size:9.4px;line-height:1.33;padding:5px 8px;margin:0 0 5px;}
  #ccPrintDoc .pd-verdict{font-size:10.6px;line-height:1.34;padding:6px 9px;margin:0 0 5px;}
  #ccPrintDoc .aim-pd-truer{font-size:9.4px;line-height:1.33;padding:5px 8px;margin:0 0 5px;}
  #ccPrintDoc .aim-pd-ladder{margin:0 0 6px;}
  #ccPrintDoc .aim-pd-rung{font-size:10.2px;line-height:1.32;padding:3px 0;}
  #ccPrintDoc .pd-contact{font-size:9.4px;line-height:1.36;margin-top:7px;}
  #ccPrintDoc .pd-foot{font-size:9px;margin-top:6px;padding-top:4px;}

  /* Holding the client's aim: three account rows plus the cycle. Same one-page
     discipline; re-measured against 877px in the maximal state. */
  #hcPrintDoc > *{page-break-inside:avoid;break-inside:avoid;}
  #hcPrintDoc p,#hcPrintDoc div{orphans:3;widows:3;}
  #hcPrintDoc .pd-logo{height:22px;margin:0 0 8px;}
  #hcPrintDoc .pd-head{font-size:19px;margin:0 0 1px;}
  #hcPrintDoc .pd-intro{font-size:9.2px;line-height:1.3;margin:0 0 6px;}
  #hcPrintDoc .pd-leak{font-size:9.2px;line-height:1.31;padding:5px 8px;margin:0 0 5px;}
  #hcPrintDoc .pd-verdict{font-size:10.2px;line-height:1.32;padding:6px 9px;margin:0 0 5px;}
  #hcPrintDoc .aim-pd-truer{font-size:9.2px;line-height:1.31;padding:5px 8px;margin:0 0 5px;}
  #hcPrintDoc .aim-pd-ladder{margin:0 0 6px;}
  #hcPrintDoc .aim-pd-rung{font-size:9.8px;line-height:1.3;padding:3px 0;}
  #hcPrintDoc .pd-contact{font-size:9.2px;line-height:1.34;margin-top:7px;}
  #hcPrintDoc .pd-foot{font-size:9px;margin-top:6px;padding-top:4px;}
  #hcPrintDoc .pd-part{font-family:Montserrat,system-ui,sans-serif;font-size:8.4px;font-weight:700;
    letter-spacing:.13em;text-transform:uppercase;color:#245c28;margin:7px 0 4px;}

  /* Real-aim: the descent ladder + the truer target */
  .aim-pd-ladder{margin:0 0 10px;}
  .aim-pd-rung{font-size:12px;line-height:1.45;padding:5px 0;border-bottom:1px solid #eee;}
  .aim-pd-rung .aim-pd-lead{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#666;margin-right:6px;}
  .aim-pd-real{color:#000;font-weight:700;}
  .aim-pd-real .aim-pd-lead{color:#245c28;}
  .aim-pd-truer{font-size:11.5px;line-height:1.5;color:#000;background:#f0f5f0;border-radius:7px;padding:8px 11px;margin:0 0 9px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-verdict{font-family:Newsreader,Georgia,serif;font-size:14px;color:#000;background:#f0f5f0;border-radius:8px;padding:9px 12px;margin:0 0 10px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-stage{margin-bottom:7px;page-break-inside:avoid;}
  .pd-stage-h{font-size:12.5px;font-weight:700;margin-bottom:3px;}
  .pd-stage-tag{font-weight:600;color:#245c28;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;}
  .pd-items{list-style:none;margin:0;padding:0;}
  .pd-items li{position:relative;padding-left:20px;font-size:10.5px;line-height:1.38;margin-bottom:1.5px;}
  .pd-items li::before{content:"";position:absolute;left:0;top:1.5px;width:11px;height:11px;border:1.5px solid #999;border-radius:3px;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-items .pd-yes::before{background:#245c28;border-color:#245c28;}
  .pd-items .pd-yes::after{content:"";position:absolute;left:3px;top:3px;width:4.5px;height:2.5px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg);}
  .pd-items .pd-no{color:#777;}
  /* Before-you-hire: verdict paragraph + the path taken */
  #hirePrintDoc .pd-verdict{font-family:Newsreader,Georgia,serif;font-size:12.5px;line-height:1.5;}
  .pd-steps-h{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#666;margin:12px 0 5px;}
  .pd-steps{list-style:none;margin:0;padding:0;}
  .pd-steps li{font-size:11px;line-height:1.4;margin-bottom:4px;padding-left:12px;position:relative;}
  .pd-steps li::before{content:"";position:absolute;left:0;top:5px;width:5px;height:5px;border-radius:50%;background:#245c28;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-step-q{font-weight:700;color:#000;}
  .pd-step-a{color:#333;}
  /* Before-you-hire sort: the piles + the seat(s) to define */
  .pd-group{margin:9px 0 2px;page-break-inside:avoid;}
  .pd-group-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#245c28;margin:0 0 2px;}
  .pd-group-move{font-size:10px;color:#666;margin:0 0 4px;}
  .pd-joblist{list-style:none;margin:0;padding:0;}
  .pd-joblist li{font-size:11px;line-height:1.4;padding-left:12px;position:relative;margin-bottom:2px;}
  .pd-joblist li::before{content:"";position:absolute;left:0;top:5px;width:5px;height:5px;border-radius:50%;background:#245c28;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-leak{font-size:11px;line-height:1.45;color:#222;background:#f4f7f4;border-radius:7px;padding:8px 11px;margin:0 0 9px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pd-hrs{color:#666;font-size:10px;}
  .pd-roles-h{font-size:12.5px;font-weight:700;margin:12px 0 4px;border-top:1px solid #ccc;padding-top:9px;}
  .pd-role{margin-bottom:7px;page-break-inside:avoid;}
  .pd-role-name{font-size:12px;font-weight:700;color:#000;}
  .pd-role-good{font-size:11px;line-height:1.4;color:#222;}
  .pd-role-out{font-size:10.5px;line-height:1.4;color:#555;margin-top:1px;}
  #dealPrintDoc .pd-contact,#hirePrintDoc .pd-contact{font-size:11px;color:#222;margin-top:12px;}
  #dealPrintDoc .pd-foot,#hirePrintDoc .pd-foot{font-size:10px;color:#666;margin-top:8px;border-top:1px solid #ccc;padding-top:5px;}
  @page{margin:11mm 14mm;}
}

/* ---- The commitment card ---- */
/* labels are display:block, which would otherwise defeat the [hidden] attribute */
.aim-q-l[hidden],.aim-select[hidden]{display:none !important;}
.cc-fam{display:block;margin-top:11px;font-size:14.5px;line-height:1.6;color:var(--ink-dim);}
/* the free-text inputs must meet the same 44px target as every other control */
#ccLieOwn,#ccOther{min-height:46px;box-sizing:border-box;}
/* An answered step folds down to the answer itself, so the page shows the walk so far
   rather than every control at once. Nothing is removed - the line reopens the step. */
.cc-sum{display:none;width:100%;box-sizing:border-box;text-align:left;background:none;border:0;
  padding:4px 0 2px;margin:0;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);
  cursor:pointer;align-items:baseline;gap:12px;min-height:44px;}
.cc-sum:hover .cc-sum-edit{text-decoration:underline;}
.cc-sum-val{flex:1 1 auto;min-width:0;color:var(--ink);}
.cc-sum-edit{flex:0 0 auto;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--acc-deep,#245c28);}
.guide-stage.is-done .cc-sum{display:flex;}
.guide-stage.is-done .guide-purpose,.guide-stage.is-done .deal-co{display:none !important;}
.guide-stage.is-done .guide-name{margin-bottom:2px;}


/* ---- /tools/ hub: icon-led rows, not stacked boxes ----
   Six bordered cards read as blocks and the page carried no drawn element at all.
   Each tool now leads with a hairline mark of its own mechanic, separated by rules
   rather than boxed - the editorial treatment used everywhere else on the site. */
.thub{display:grid;grid-template-columns:1fr;gap:0;}
@media (min-width:820px){.thub{grid-template-columns:1fr 1fr;column-gap:52px;}}
/* A section holding one card keeps a single column, so its hairline rules span the
   full measure like every other section's do - a lone card in the left column would
   leave a half-width rule and read as a broken row. The copy is capped instead, or
   the line length runs to the full wrap. */
@media (min-width:820px){
  .thub-solo{grid-template-columns:1fr;}
  .thub-solo .tcard p,.thub-solo .tcard h3{max-width:52ch;}
}
.tcard{display:grid;grid-template-columns:64px 1fr;column-gap:20px;align-items:start;
  padding:30px 0 28px;border-top:1px solid var(--line);text-decoration:none;color:inherit;}
.tcard:last-child{border-bottom:1px solid var(--line);}
@media (min-width:820px){
  .thub > .tcard:nth-last-child(-n+2){border-bottom:1px solid var(--line);}
}
.tcard-ico{width:64px;height:64px;}
.tcard-ico svg{display:block;width:100%;height:auto;}
.tcard-ico .s{fill:none;stroke:var(--ink);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.55;}
.tcard-ico .a{fill:none;stroke:var(--acc-deep,#245c28);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.tcard-ico .af{fill:var(--acc-deep,#245c28);stroke:none;}
.tcard:hover .tcard-ico .s{opacity:.8;}
.tcard-eyebrow{display:block;font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-dim);margin:2px 0 7px;}
.tcard h3{font-family:'Newsreader',Georgia,serif;font-size:22px;line-height:1.2;font-weight:500;margin:0 0 7px;color:var(--ink);}
.tcard p{margin:0 0 11px;font-size:14.5px;line-height:1.6;color:var(--ink-dim);}
.tcard-go{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--acc-deep,#245c28);}
.tcard:hover .tcard-go{text-decoration:underline;}
@media (max-width:420px){
  .tcard{grid-template-columns:50px 1fr;column-gap:15px;padding:24px 0 22px;}
  .tcard-ico{width:50px;height:50px;}
  .tcard h3{font-size:19px;}
}


/* ---- Holding the client's aim ----
   Client rows, per-client read panels, and the field: two axes with the four
   regions named as territory rather than drawn as boxes. No numbers on the
   axes - the position is a picture of the answers, not a measurement. */
.hc-clients{margin-top:6px;}
.hc-client{padding:14px 0 4px;border-top:1px solid var(--line);}
.hc-client:first-child{border-top:0;padding-top:2px;}
.hc-name{width:100%;box-sizing:border-box;min-height:46px;}
.hc-facts{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px;}
/* the [hidden] trap: an author display rule beats the attribute's UA display:none */
.hc-facts[hidden],.hc-prow[hidden]{display:none !important;}
@media (min-width:700px){.hc-facts{grid-template-columns:1fr 1fr 1.2fr;gap:14px;}}
.hc-mini{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.02em;
  color:var(--ink-dim);margin-bottom:5px;}
.hc-facts input{width:100%;box-sizing:border-box;min-height:46px;min-width:0;}
.hc-facts .aim-select{width:100%;}
.hc-add{margin-top:12px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--acc-deep,#245c28);
  background:transparent;border:1px dashed var(--line-strong);border-radius:9px;padding:11px 16px;
  cursor:pointer;transition:all .12s;min-height:44px;}
.hc-add:hover{border-style:solid;background:rgba(46,125,50,.05);}

.hc-read{border-top:1px solid var(--line);}
.hc-read:first-child{border-top:0;}
.hc-read-h{display:flex;width:100%;box-sizing:border-box;align-items:baseline;gap:12px;text-align:left;
  background:none;border:0;padding:14px 0;margin:0;cursor:pointer;min-height:52px;font-family:var(--sans);}
.hc-read-n{flex:1 1 auto;min-width:0;font-size:15.5px;font-weight:600;color:var(--ink);}
.hc-read-s{flex:0 0 auto;font-size:12px;color:var(--ink-dim);}
.hc-read.is-full .hc-read-s{color:var(--acc-deep,#245c28);font-weight:600;}
.hc-read-h:hover .hc-read-n{text-decoration:underline;text-underline-offset:3px;}
.hc-read-b{padding:0 0 18px;}

.hc-plotwrap{margin:18px 0 4px;}
.hc-plot{max-width:560px;margin:0 auto;}
.hc-plot svg{display:block;width:100%;height:auto;overflow:visible;}
.hc-frame{fill:none;stroke:var(--line-strong);stroke-width:1.1;}
.hc-mid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 5;}
.hc-rlbl{font-family:var(--sans);font-size:8.6px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;fill:var(--ink-dim);opacity:.9;}
.hc-axl{font-family:var(--sans);font-size:9px;font-style:italic;fill:var(--ink-dim);opacity:.85;}
.hc-axt{font-family:var(--sans);font-size:8.4px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;fill:var(--ink-dim);opacity:.6;}
.hc-dot{fill:var(--acc-deep,#245c28);}
.hc-dot-soft{opacity:.42;}
.hc-ring{fill:none;stroke-width:1.1;stroke-dasharray:2.5 3;opacity:.7;}
.hc-dlbl{font-family:var(--sans);font-size:10.5px;font-weight:600;fill:var(--ink);}
.hc-drift-l{stroke-width:1.4;opacity:.5;}
.hc-arrowhead{fill:var(--ink-dim);opacity:.6;}
.hc-plot-note{font-size:12.5px;line-height:1.55;color:var(--ink-dim);margin:12px auto 0;max-width:460px;text-align:center;}

.hc-acct{padding:16px 0;border-top:1px solid var(--line);}
.hc-acct-h{display:block;font-family:var(--sans);font-size:15px;color:var(--ink);margin-bottom:7px;}
.hc-acct-r{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-left:8px;}
.hc-strength .hc-acct-r,.hc-underserved .hc-acct-r{color:var(--acc-deep,#245c28);}
.hc-acct-b{margin:0;font-size:15px;line-height:1.6;color:var(--ink);}
.hc-acct-m{margin:9px 0 0;font-size:14.5px;line-height:1.58;color:var(--ink);}
.hc-acct-ml{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-dim);margin-bottom:4px;}
.hc-why,.hc-drift{color:var(--ink-dim);}
.hc-clock{color:var(--ink);}
.hc-skip{margin:14px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-dim);
  background:rgba(28,36,32,.045);border-radius:8px;padding:11px 13px;}
#hcCkind[hidden]{display:none !important;}

.hc-portion{display:block;width:100%;box-sizing:border-box;min-height:46px;margin-bottom:9px;}
.hc-test{margin:10px 0 0;font-size:14px;line-height:1.55;color:var(--ink);
  background:rgba(28,36,32,.045);border-radius:8px;padding:11px 13px;}
@media print{.hc-plotwrap,.hc-read,.hc-client{display:none !important;}}


/* Holding the client's aim - journey map, part labels, dated portions */
.hc-journey{margin:22px 0 6px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:rgba(28,36,32,.028);}
.hc-journey-lbl{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px;}
.hc-journey-list{margin:0;padding-left:20px;}
.hc-journey-list li{margin-bottom:8px;font-size:15px;line-height:1.55;color:var(--ink);}
.hc-journey-end{margin:10px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-dim);}
.hc-part{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);margin:2px 0 4px;}
.guide-stage.is-done .hc-part{display:none;}
.hc-handoff{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.6;color:var(--ink-dim);}
.hc-handoff b{color:var(--ink);}
.hc-hint{margin:0 0 12px;font-size:13.5px;line-height:1.55;color:var(--ink-dim);}
.hc-hint b{color:var(--ink);font-weight:600;}
.hc-echo{margin:0 0 16px;padding:12px 14px;border-radius:9px;background:rgba(46,125,50,.06);
  font-size:14.5px;line-height:1.55;color:var(--ink);}
.hc-echo-l{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);margin-bottom:4px;}
.hc-echo-c{color:var(--ink-dim);}
.hc-prow{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px;}
@media (min-width:640px){.hc-prow{grid-template-columns:1fr 205px;gap:10px;}}
.hc-prow input,.hc-prow select{width:100%;box-sizing:border-box;min-height:46px;min-width:0;}
.hc-del{margin-left:8px;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.02em;
  color:var(--ink-dim);background:none;border:0;padding:4px 6px;cursor:pointer;text-decoration:underline;
  text-underline-offset:2px;}
.hc-del:hover{color:var(--ink);}
.hc-cap{margin:10px 0 0;font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink-dim);}
.hc-privacy{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-dim);}
@media print{.hc-journey,.hc-handoff,.hc-echo,.hc-prow{display:none !important;}}


/* ---- The Anatomy of a Well-Run Business ----
   The flagship whole-business assessment. Eleven areas rated twice, an
   eleven-axis spider, a gap-ranked focus list, and an optional explanation
   under every statement. Structural only where it can be - the color it
   does carry is the locked palette, same as every other tools.css block.
   Every element toggled with [hidden] carries an explicit override, because an
   author display rule beats the attribute's UA display:none (the third-time
   trap in the build notes). */

/* Hero: nothing above the first tappable control but the H1, the one-sentence
   standfirst and two fine-print lines - the whole hero is sized so the first chip
   is on the first screen at 320px. */
.an-crumb{padding-top:16px;}
.an-hero{padding:16px 0 14px;}
.an-hero .eyebrow{margin-bottom:14px;}
.an-hero .standfirst{margin-top:14px;}
.an-privacy{margin:11px 0 0;max-width:58ch;font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink-dim);}
.an-book{margin:6px 0 0;max-width:58ch;font-size:13px;line-height:1.6;color:var(--ink-dim);}
.an-book em{font-style:italic;}

/* Load, at the top of the instrument and nowhere else - the first thing a
   returning visitor meets. One quiet line, so the block-of-text rule survives it
   and the first statement is still five seconds away. */
.an-loadbar{margin:4px 0 14px;}
.an-loadlink{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:6px 0;
  font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-dim);cursor:pointer;
  text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;transition:color .13s;}
.an-loadlink:hover,.an-loadlink:focus-within{color:var(--acc-deep,#245c28);text-decoration-style:solid;}
.an-loadlink input{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.an-loadlink input:focus-visible{outline:2px solid var(--acc,#2E7D32);outline-offset:3px;border-radius:6px;}

/* Step zero: the one question that changes what good client service looks like. */
.an-disc{margin:2px 0 0;padding:18px 20px;border-radius:14px;background:rgba(46,125,50,.06);}
.an-disc-lbl{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);margin-bottom:9px;}
.an-disc-q{margin:0 0 13px;font-family:'Newsreader',Georgia,serif;font-size:20px;line-height:1.32;color:var(--ink);}
.an-disc-opts{display:grid;grid-template-columns:1fr;gap:9px;}
.an-opt{position:relative;display:flex;align-items:center;min-height:52px;padding:12px 16px;
  border:1px solid var(--line-strong);border-radius:11px;background:var(--card,#fff);
  font-family:var(--sans);font-size:14.5px;line-height:1.45;color:var(--ink);cursor:pointer;
  transition:border-color .13s,background .13s;}
.an-opt input{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;}
.an-opt:hover{border-color:var(--acc-deep,#245c28);}
.an-opt.is-on{border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.11);font-weight:600;}
/* Belt and braces on the selection affordance. The radio is opacity:0, so the
   selected look is entirely a class the script paints - and when a repaint was
   missed, a real pointer click set the state and looked like nothing happened.
   This says the same thing straight from :checked, and MUST stay its own rule:
   folded into the .is-on selector list, a browser without :has() would drop both. */
.an-opt:has(input:checked){border-color:var(--acc-deep,#245c28);background:rgba(46,125,50,.11);font-weight:600;}
.an-opt input:focus-visible{outline:2px solid var(--acc,#2E7D32);outline-offset:3px;border-radius:11px;}
.an-disc-note{margin:13px 0 0;font-size:13.5px;line-height:1.55;color:var(--acc-deep,#245c28);}
.an-disc-note[hidden]{display:none !important;}

.an-intro{margin:24px 0 0;font-size:15px;line-height:1.6;color:var(--ink-dim);font-style:italic;}
.an-journey{margin-top:14px;}

/* The two rating rows, now per specific rather than per area. Tap chips, real
   radios underneath - keyboard operable, announced as a radiogroup, and never
   under 44px tall.
   These deliberately do NOT sit in .deal-co: that block's `label{display:block}`
   and `input{min-width:240px}` flatten the chips and blow the hidden radio out to
   240px, which is what pushed controls past the right edge at 320px. */
.an-rate-q{display:block;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:8px;}
.an-chips{display:flex;gap:6px;}
.an-chip{position:relative;flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;
  min-height:46px;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:10px;
  background:var(--card,#fff);font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink-dim);
  cursor:pointer;transition:background .13s,border-color .13s,color .13s;}
.an-chip input{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;}
.an-chip:hover{border-color:var(--acc-deep,#245c28);color:var(--ink);}
.an-chip.is-on{background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}
/* Same belt-and-braces as .an-opt, and for the same reason. Separate rule on
   purpose: a browser without :has() must still get the .is-on rule above. */
.an-chip:has(input:checked){background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}
.an-chip input:focus-visible{outline:2px solid var(--acc,#2E7D32);outline-offset:3px;border-radius:10px;}
/* Three captions map onto the five chips, not onto thirds of the row: the chip row
   is five equal flex columns with a 6px gap, so the mid caption is placed on the
   same grid and lands under the 3 it names rather than 30px off it. */
.an-ends-3{display:grid !important;grid-template-columns:repeat(5,1fr);gap:0 6px;}
.an-ends-3>span:nth-child(1){grid-column:1;text-align:left;}
.an-ends-3>span.an-end-mid{grid-column:3;text-align:center;}
.an-ends-3>span:nth-child(3){grid-column:5;text-align:right;}
@media (max-width:400px){
  /* at phone width the two end captions need the room; the mid one drops out
     rather than squeezing all three into 320px */
  .an-ends-3>span.an-end-mid{display:none;}
  .an-ends-3{grid-template-columns:1fr 1fr;}
  .an-ends-3>span:nth-child(1){grid-column:1;}
  .an-ends-3>span:nth-child(3){grid-column:2;}
}
.an-ends{display:flex;justify-content:space-between;gap:10px;margin-top:6px;
  font-family:var(--sans);font-size:11.5px;letter-spacing:.02em;color:var(--ink-dim);}

/* Each 1-5 cluster is its own contained group. A fieldset carries UA
   min-inline-size:min-content, which is exactly the property that blew a grid
   track out to 710px last pass - min-width:0 is not optional here. */
.an-scale{min-width:0;margin:0;border:1px solid var(--line);border-radius:10px;padding:11px 13px 12px;}
.an-scale legend.an-rate-q{margin:0 0 8px;padding:0 5px;width:auto;max-width:100%;}
/* Two scales, told apart by containment and by what they select in: deep green
   for how it runs, ink for how much it matters. Same size, same spacing, so the
   difference is never layout noise. Each color needs BOTH the class rule and the
   :has() rule, kept separate so a browser without :has() still gets the class. */
.an-scale-p .an-chip.is-on{background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}
.an-scale-p .an-chip:has(input:checked){background:var(--acc-deep,#245c28);border-color:var(--acc-deep,#245c28);color:#fff;}
.an-scale-i .an-chip.is-on{background:#1c2420;border-color:#1c2420;color:#f7f4ee;}
.an-scale-i .an-chip:has(input:checked){background:#1c2420;border-color:#1c2420;color:#f7f4ee;}
.an-scale-i .an-chip:hover{border-color:#1c2420;color:var(--ink);}

/* One compact card per specific. The two scales sit side by side on desktop and
   stack on a phone; marking it not relevant folds the whole card to one line. */
.an-items{margin:2px 0 0;}
.an-item{padding:16px 0;border-top:1px solid var(--line);}
.an-item:first-child{border-top:0;padding-top:2px;}
.an-item-s{margin:0 0 13px;font-size:15px;line-height:1.55;color:var(--ink);max-width:66ch;}
.an-item-scales{display:grid;grid-template-columns:1fr;gap:16px;}
@media (min-width:760px){.an-item-scales{grid-template-columns:1fr 1fr;gap:24px;}}
.an-scale{min-width:0;}
.an-item-x{display:flex;flex-wrap:wrap;align-items:center;gap:2px 20px;margin-top:6px;}
.an-rel{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--sans);
  font-size:13px;color:var(--ink-dim);cursor:pointer;}
.an-rel input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--acc-deep,#245c28);cursor:pointer;}
.an-rel:hover{color:var(--ink);}
.an-inote{display:block;width:100%;max-width:66ch;box-sizing:border-box;margin-top:4px;min-height:44px;
  font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px;background:var(--card,#fff);color:var(--ink);}
.an-inote:focus{outline:none;border-color:var(--acc-deep,#245c28);}
/* Folded: statement on one line, the way back on the same line, nothing else.
   The one line is a line-clamp, NOT white-space:nowrap. Nowrap gives the
   statement a min-content width of the whole sentence, which blows the section's
   1fr grid track out to ~710px - and because body carries overflow-x:hidden,
   nothing scrolls and the damage is simply clipped off the right of a 320px
   screen. Clamping wraps normally and truncates at one line instead. */
.an-item.is-off{display:flex;align-items:center;gap:6px 14px;padding:7px 0;}
.an-item.is-off .an-item-s{flex:1 1 auto;min-width:0;margin:0;font-size:14px;color:var(--ink-dim);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;}
.an-item.is-off .an-item-scales,.an-item.is-off .an-inote{display:none !important;}
.an-item.is-off .an-item-x{flex:0 0 auto;margin:0;}
.an-item.is-off .an-rel{min-height:34px;}
/* On a phone the un-tick control eats most of the row, leaving about 65px of
   statement - unreadable. Below 560 the statement takes its own full-width line
   and the way back sits under it: two short lines instead of a folded card. */
@media (max-width:560px){
  .an-item.is-off{flex-wrap:wrap;gap:0;}
  .an-item.is-off .an-item-s{flex:1 1 100%;}
}

/* The area saying its own score back, and the save that repeats at every section. */
.an-secfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line);}
.an-secsum{margin:0;flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:12.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
/* The complete-but-unscored state is a sentence, not a status token - "2 rated,
   3 not relevant - not enough to score this area. Rate one more, or leave it
   out deliberately." Under the uppercase letterspaced treatment above it ran to
   four lines on a 320px screen and read as damage. In that one state, both
   places the line is said drop to the quiet fine-line idiom the rest of the
   page uses for its asides: same family, normal case, no tracking, no accent -
   nothing was scored, so nothing here is an achievement. */
.an-secsum.an-st-long,.an-secst.an-st-long{text-transform:none;letter-spacing:normal;
  font-size:11.5px;font-weight:600;line-height:1.5;color:var(--ink-dim);}
.an-sechead-txt .an-secst.an-st-long{flex:1 1 100%;}
.an-secsave{flex:0 0 auto;font-size:12px !important;padding:11px 16px !important;}
.an-live-save{flex:0 0 auto;font-family:var(--sans);font-size:12.5px;font-weight:600;color:#fff;
  background:transparent;border:1px solid rgba(255,255,255,.55);border-radius:20px;padding:9px 14px;
  min-height:44px;cursor:pointer;}
.an-live-save:hover{background:rgba(255,255,255,.14);}

/* The ten-axis spider. Hairline rings, quiet labels, two polygons: a green
   filled one for how it runs and an ink dashed outline for how much it matters.
   An unrated area gets a hollow dot and breaks the line rather than being drawn
   at zero, which would be a finding nobody entered. */
.an-out[hidden]{display:none !important;}
.an-spiderwrap{margin:24px 0 6px;}
.an-spiderwrap[hidden]{display:none !important;}
.an-spider{max-width:520px;margin:0 auto;}
.an-spider svg{display:block;width:100%;height:auto;overflow:visible;}
.an-ring{fill:none;stroke:var(--line);stroke-width:1;}
.an-ring-out{stroke:var(--line-strong);}
.an-spoke{stroke:var(--line);stroke-width:1;}
.an-perf{fill:none;stroke:#245c28;stroke-width:1.6;stroke-linecap:round;}
.an-perf-fill{fill:rgba(46,125,50,.16);stroke:#245c28;stroke-width:1.6;stroke-linejoin:round;}
.an-imp{fill:none;stroke:#1c2420;stroke-width:1.2;stroke-dasharray:4 3;}
.an-imp-fill{fill:none;stroke:#1c2420;stroke-width:1.2;stroke-dasharray:4 3;stroke-linejoin:round;}
.an-dot{fill:#245c28;}
.an-dot-off{fill:none;stroke:var(--line-strong);stroke-width:1.2;}
.an-axl{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.01em;fill:var(--ink-dim);}
.an-spider-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;
  margin:12px auto 0;font-family:var(--sans);font-size:12px;color:var(--ink-dim);}
.an-key-item{display:inline-flex;align-items:center;white-space:nowrap;}
.an-key{display:inline-block;flex:0 0 auto;width:22px;height:0;margin-right:7px;vertical-align:middle;border-top:2px solid #245c28;}
.an-key-i{border-top:2px dashed #1c2420;}
.an-key-sep{opacity:.6;}
/* the separator only earns its place when both keys sit on one line */
@media screen and (max-width:560px){.an-spider-legend .an-key-sep{display:none;}}
.an-spider-nums{display:grid;grid-template-columns:1fr 1fr;gap:1px 14px;margin:12px 0 0;padding-left:22px;
  font-family:var(--sans);font-size:11.5px;color:var(--ink-dim);}
.an-spider-nums li{line-height:1.55;}
.an-spider-nums[hidden]{display:none !important;}

/* Results */
.an-results{margin-top:26px;}
.an-results[hidden]{display:none !important;}
.an-res-h{font-family:'Newsreader',Georgia,serif;font-size:clamp(26px,3.6vw,34px);line-height:1.15;
  font-weight:400;color:var(--ink);margin:0 0 10px;}
.an-res-intro{margin:0 0 18px;font-size:15px;line-height:1.6;color:var(--ink-dim);font-style:italic;}
.an-res-intro[hidden]{display:none !important;}
.an-ns{margin:0 0 16px;font-size:14.5px;line-height:1.65;color:var(--ink-dim);}
.an-ns[hidden]{display:none !important;}
.an-note{margin:18px 0;padding:16px 18px;border-radius:12px;background:rgba(28,36,32,.045);}
.an-note[hidden]{display:none !important;}
.an-note-b{margin:0 0 10px;font-size:15px;line-height:1.62;color:var(--ink);}
.an-note-b:last-child{margin-bottom:0;}
.an-degen{background:rgba(46,125,50,.09);}
.an-block{margin:20px 0;padding:16px 18px;border-radius:12px;background:rgba(28,36,32,.045);}
.an-block[hidden]{display:none !important;}
.an-strength{background:rgba(46,125,50,.09);}
.an-strength .deal-result-lbl{color:var(--acc-deep,#245c28);}
.an-quarterly{margin:24px 0 0;padding-top:18px;border-top:1px solid var(--line);
  font-size:15px;line-height:1.65;color:var(--ink-dim);}

.an-focus{display:grid;grid-template-columns:34px 1fr;column-gap:15px;padding:20px 0;border-top:1px solid var(--line);}
.an-focus:first-child{border-top:0;padding-top:2px;}
.an-focus-n{width:30px;height:30px;border-radius:50%;background:var(--acc-deep,#245c28);color:#fff;
  font-family:'Newsreader',Georgia,serif;font-size:16px;display:flex;align-items:center;justify-content:center;margin-top:3px;}
.an-focus-h{font-family:'Newsreader',Georgia,serif;font-size:23px;line-height:1.2;font-weight:500;
  color:var(--ink);margin:0 0 5px;}
.an-focus-gap{margin:0 0 11px;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);}
/* Every scored area renders, not three of them. The ranked ones come first with
   their guidance open; the rest follow as quiet hairline rows carrying the same
   guidance one click away. The static weak-and-move pair that used to sit here
   is gone: guidance is severity-aware now, so an area running well is no longer
   handed copy written for an area running badly. */
.an-cmp{margin:0 0 14px;font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink-dim);}
.an-cmp[hidden]{display:none !important;}
.an-last{margin:0 0 4px;font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--ink-dim);
  font-style:italic;}
.an-cover{margin:0 0 12px;font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--ink-dim);}

/* The guidance itself: four labelled fields, and above them the statements that
   pulled the area down - the severe copy says "the statements you rated lowest",
   so they have to be on the page directly above it or the sentence points at
   nothing. */
.an-guide{margin:2px 0 0;}
.an-area.is-guide-closed .an-guide{display:none;}
.an-g-f{margin:0 0 13px;}
.an-g-f:last-child{margin-bottom:0;}
.an-g-lbl{display:block;margin:0 0 5px;font-family:var(--sans);font-size:10.5px;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
.an-g-t{margin:0;font-size:15px;line-height:1.62;color:var(--ink);}
.an-g-pull{margin:0 0 16px;padding:13px 15px;border-radius:10px;background:rgba(46,125,50,.08);}
.an-g-pull .an-g-lbl{margin-bottom:8px;}
.an-pulls{list-style:none;margin:0;padding:0;}
.an-pull{margin:0 0 10px;}
.an-pull:last-child{margin-bottom:0;}
.an-pull-s{display:block;font-size:14.5px;line-height:1.55;color:var(--ink);}
.an-pull-w{display:block;margin-top:2px;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
/* The same clarifier the statement carried while it was being answered. It was
   written once, read once, and then thrown away at the results - which is why a
   named statement here used to arrive with no more meaning than its own wording.
   Printed plainly rather than behind a disclosure: at the results the reader is
   reading, not scanning to answer, and another click is another thing to miss. */
.an-pull-x{display:block;margin-top:5px;font-size:13px;line-height:1.55;
  color:var(--ink-dim);max-width:66ch;}

/* The statements furthest behind, across every area. Ranked on their own so a
   sharp single finding is not averaged away inside its area's mean. Each row
   carries the statement, the area it came from, and the two words for it. */
/* The composed ask - one sentence at the result moment, the reader's own finding
   plus the door. Quiet weight: a left rule, not a box. */
.tool-ask,.an-ask{margin:18px 0 0;padding:10px 0 10px 16px;border-left:3px solid var(--acc-deep,#245c28);
  font-size:15px;line-height:1.6;color:var(--ink);}
.tool-ask[hidden],.an-ask[hidden]{display:none !important;}
@media print{.tool-ask,.an-ask{display:none !important;}}

.an-topgaps{background:rgba(46,125,50,.07);}
.an-topgaps .deal-result-lbl{color:var(--acc-deep,#245c28);}
.an-top-intro{margin:0 0 14px;font-size:14px;line-height:1.6;color:var(--ink-dim);}
.an-tops{list-style:none;margin:0;padding:0;}
.an-top{margin:0 0 13px;padding-bottom:13px;border-bottom:1px solid rgba(28,36,32,.1);}
.an-top:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0;}
.an-top-s{display:block;font-size:15px;line-height:1.55;color:var(--ink);}
.an-top-m{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;font-family:var(--sans);
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.an-top-a{color:var(--ink-dim);}
.an-top-w{color:var(--acc-deep,#245c28);}

/* The areas that did not rank: one hairline row each, the same accordion idiom
   the checklist above uses, so nothing new has to be learned to open one. An
   area running 4-5 has no guidance and therefore no toggle - there would be
   nothing behind it. */
.an-rest{border-top:1px solid var(--line);padding:16px 0 6px;}
.an-rest-h{margin:0;font-weight:400;}
.an-guidetog{display:flex;align-items:center;gap:6px 14px;width:100%;box-sizing:border-box;text-align:left;
  background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;min-height:44px;}
.an-rest-txt{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:1px 14px;}
.an-rest-n{font-family:'Newsreader',Georgia,serif;font-size:19px;line-height:1.3;font-weight:500;color:var(--ink);}
.an-rest .an-focus-gap{margin:0;flex:0 1 auto;min-width:0;}
.an-rest-h > .an-rest-txt{padding:9px 0;}
.an-guidetog .faq-chev{flex:0 0 auto;width:30px;height:30px;}
.an-area:not(.is-guide-closed) .an-guidetog .faq-chev{transform:rotate(180deg);}
.an-guidetog:hover .an-rest-n{text-decoration:underline;text-underline-offset:3px;}
.an-guidetog:hover .faq-chev{border-color:var(--acc-deep,#245c28);}
.an-rest .an-last,.an-rest .an-cover{margin-top:5px;}

/* The optional name, beside the takeaway buttons. Quiet - it is not a question,
   and nothing downstream waits on it. */
.an-namefield{margin:24px 0 0;max-width:62ch;}
.an-namefield label{display:block;font-family:var(--sans);font-size:13px;line-height:1.5;
  color:var(--ink-dim);margin-bottom:7px;}
.an-namefield input{font-family:var(--sans);font-size:15px;padding:10px 13px;box-sizing:border-box;
  border:1px solid var(--line-strong);border-radius:9px;min-height:46px;width:100%;max-width:340px;
  background:var(--card,#fff);color:var(--ink);}
.an-namefield input:focus{outline:none;border-color:var(--acc-deep,#245c28);}

/* Saving: a file on their device, never on ours. Load lives at the top only. */
.an-file{margin:26px 0 0;}
.an-file-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.an-file-fine{margin:11px 0 0;font-size:12.5px;line-height:1.55;color:var(--ink-dim);}
.an-file-err{margin:9px 0 0;font-size:13.5px;line-height:1.55;color:#8a3226;font-weight:600;}
.an-file-err[hidden]{display:none !important;}
.an-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px;}

/* The full checklist: served HTML, so it is crawlable and works with JavaScript
   off. Hidden the moment the interactive assessment is running. */
.an-checklist[hidden]{display:none !important;}
.an-cl-item{padding:22px 0;border-top:1px solid var(--line);}
.an-cl-item h3{font-family:'Newsreader',Georgia,serif;font-size:22px;line-height:1.2;font-weight:500;
  color:var(--ink);margin:0 0 6px;}
.an-cl-why{margin:0 0 9px;font-size:15px;line-height:1.6;font-style:italic;color:var(--ink-dim);}
.an-cl-weak,.an-cl-move{margin:0 0 11px;font-size:14.5px;line-height:1.62;color:var(--ink-soft);}
.an-cl-weak b,.an-cl-move b{color:var(--ink);font-weight:600;}
.an-cl-sub{margin:13px 0 5px;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);}
.an-cl-list{margin:0 0 11px;padding-left:20px;}
.an-cl-list li{margin-bottom:5px;font-size:14.5px;line-height:1.58;color:var(--ink);}
.an-plain-h{max-width:22ch;}

@media (max-width:400px){
  .an-journey .guide-stage{grid-template-columns:34px 1fr;column-gap:11px;}
  .an-journey .guide-stage:not(:last-child)::before{left:17px;top:38px;}
  .an-journey .guide-num{width:34px;height:34px;font-size:17px;}
  .an-chips{gap:5px;}
  .an-chip{font-size:14px;}
  .an-disc{padding-left:16px;padding-right:16px;}
  .an-focus{grid-template-columns:26px 1fr;column-gap:11px;}
  .an-focus-n{width:26px;height:26px;font-size:14px;}
  .an-spider-nums{grid-template-columns:1fr;}
  .an-secfoot{gap:8px 12px;}
  .an-secsum{flex:1 1 100%;}
  /* the area name and the line it says back stack rather than competing for a
     320px row, same as the checklist headers above */
  .an-rest-n,.an-rest .an-focus-gap{flex:1 1 100%;}
  .an-g-pull{padding:11px 12px;}
}

/* Desktop measure. Without these the five chips stretch to a thousand pixels and
   stop reading as a scale, and the result prose runs to a 140-character line. */
.an-rate-q,.an-chips,.an-ends{max-width:340px;}
.an-focus-b,.an-quarterly{max-width:68ch;}
.an-rest,.an-cmp{max-width:68ch;}
.an-g-t,.an-pull-s{max-width:66ch;}
.an-note,.an-block,.an-disc{max-width:74ch;}
.an-res-intro,.an-ns,.an-intro,.an-file-fine{max-width:62ch;}
.an-item-scales,.an-secfoot{max-width:74ch;}
.an-cl-list,.an-cl-why,.an-cl-weak,.an-cl-move{max-width:70ch;}
.an-disc-q{max-width:34ch;}

/* ---- The printed report: a document, one page per area, same order every run ----
   The one-page budget is retired. It was what pushed this sheet's type down to
   7.6px, dropped every statement the owner actually answered, and keyed the notes
   to coordinates rather than to their statements. A report that gets read a
   quarter later is worth more than a sheet that fits. */
@media print{
  /* The running head is IN FLOW, emitted once per section by the builder. The
     fixed-position version sat at the top of every sheet - including the sheets
     an overflowing section flowed onto, where it printed straight over the first
     row of content (James's 31 Jul report, pages 2, 6 and 8). In flow, every
     deliberate page starts with its own head and an overflow page starts clean. */
  #anPrintDoc .an-rp-run{font-family:Montserrat,system-ui,sans-serif;
    font-size:9.5px;line-height:1.3;letter-spacing:.04em;color:#666;
    border-bottom:1px solid #ddd;padding-bottom:3px;margin:0 0 10px;}
  /* No heading ends a page on its own. */
  #anPrintDoc h1,#anPrintDoc h2,#anPrintDoc h3{break-after:avoid;page-break-after:avoid;}
  #anPrintDoc p,#anPrintDoc li{orphans:3;widows:3;}

  /* ---- cover ---- */
  #anPrintDoc .pd-logo{height:24px;margin:0 0 10px;}
  #anPrintDoc .pd-head{font-size:22px;margin:0 0 2px;}
  #anPrintDoc .pd-sub{font-size:11px;margin:0 0 8px;}
  #anPrintDoc .an-rp-ns,#anPrintDoc .an-rp-line{font-size:10px;line-height:1.45;color:#333;margin:0 0 6px;}
  #anPrintDoc .an-rp-name{font-family:Newsreader,Georgia,serif;font-size:13px;line-height:1.4;
    color:#000;margin:0 0 8px;}
  #anPrintDoc .an-rp-verdict{font-family:Newsreader,Georgia,serif;font-size:12.5px;line-height:1.5;
    color:#000;background:#f0f5f0;border-radius:8px;padding:9px 12px;margin:0 0 9px;
    break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #anPrintDoc .an-rp-sec{font-family:Montserrat,system-ui,sans-serif;font-size:9.5px;font-weight:700;
    letter-spacing:.13em;text-transform:uppercase;color:#245c28;margin:10px 0 4px;}
  /* How to read this, on the printed sheet. Quiet - it is orientation, not a
     finding - and it sits above the order it explains. Kept off the first page
     break so it cannot strand its own heading. */
  #anPrintDoc .an-rp-howto{margin:0 0 14px;padding:9px 11px;border:1px solid #ddd;border-radius:4px;
    background:#fbfbf9;break-inside:avoid;}
  #anPrintDoc .an-rp-howto h2{margin:0 0 5px;}
  #anPrintDoc .an-rp-howto p{margin:0 0 5px;font-size:10.5px;line-height:1.5;color:#333;}
  #anPrintDoc .an-rp-howto p:last-child{margin-bottom:0;}
  #anPrintDoc .an-rp-gloss{color:#555;border-top:1px solid #eee;padding-top:5px;}
  #anPrintDoc .an-rp-order{list-style:none;margin:0 0 9px;padding:0;}
  #anPrintDoc .an-rp-ord{font-size:11px;line-height:1.45;padding:2.5px 0;border-bottom:1px solid #eee;color:#444;}
  #anPrintDoc .an-rp-ord.is-ranked{color:#000;font-weight:700;}
  #anPrintDoc .an-rp-ordn{display:inline-block;min-width:17px;font-weight:700;color:#245c28;}

  /* The statements furthest behind, across every area - one line each, the
     statement left and where it came from right, same shape as the area sheets. */
  #anPrintDoc .an-rp-tops{list-style:none;margin:0 0 9px;padding:0;}
  #anPrintDoc .an-rp-tops li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;
    padding:3px 0;border-bottom:1px solid #eee;break-inside:avoid;page-break-inside:avoid;}
  #anPrintDoc .an-rp-tops-s{flex:1 1 58%;min-width:0;font-size:10px;line-height:1.45;color:#000;}
  #anPrintDoc .an-rp-tops-m{flex:0 0 auto;margin-left:auto;text-align:right;
    font-family:Montserrat,system-ui,sans-serif;font-size:9px;font-weight:700;
    letter-spacing:.04em;color:#245c28;white-space:nowrap;}

  /* The chart has its own sheet. It shared the cover until the 31 Jul report,
     where a run carrying several optional lines pushed the legend alone onto the
     next page - a page break should not depend on how many findings there were.
     On its own sheet it also prints as an exhibit rather than a thumbnail. */
  #anPrintDoc .an-rp-chart{break-before:page;page-break-before:always;}
  #anPrintDoc .an-rp-spiderwrap{break-inside:avoid;page-break-inside:avoid;}
  #anPrintDoc .an-rp-spider{margin:10px 0 0;break-inside:avoid;page-break-inside:avoid;}
  #anPrintDoc .an-rp-spider svg{display:block;height:360px;width:auto;max-width:100%;margin:0 auto;
    overflow:visible;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #anPrintDoc .an-rp-chartnote{font-size:10.5px;line-height:1.5;color:#333;margin:12px 0 0;
    break-inside:avoid;page-break-inside:avoid;}
  /* the chart renders at about three quarters of its viewBox, so the axis labels
     are sized in user units to come out legible on paper */
  #anPrintDoc .an-spider-print .an-axl{font-size:15px;}
  #anPrintDoc .an-ring,#anPrintDoc .an-spoke{stroke:#ddd;}
  #anPrintDoc .an-ring-out{stroke:#bbb;}
  #anPrintDoc .an-perf,#anPrintDoc .an-perf-fill{stroke:#245c28;}
  #anPrintDoc .an-perf-fill{fill:rgba(46,125,50,.16);}
  #anPrintDoc .an-imp,#anPrintDoc .an-imp-fill{stroke:#1c2420;}
  #anPrintDoc .an-dot{fill:#245c28;}
  #anPrintDoc .an-dot-off{fill:none;stroke:#bbb;}
  #anPrintDoc .an-axl{fill:#555;}
  #anPrintDoc .an-rp-legend{text-align:center;font-size:9.5px;line-height:1.35;color:#666;margin:4px 0 8px;}

  /* ---- one page per area ---- */
  #anPrintDoc .an-rp-area{break-before:page;page-break-before:always;}
  #anPrintDoc .an-rp-ah{font-family:Newsreader,Georgia,serif;font-size:17px;font-weight:600;
    line-height:1.2;color:#000;margin:0 0 5px;}
  #anPrintDoc .an-rp-words{font-family:Montserrat,system-ui,sans-serif;font-size:11px;line-height:1.4;
    font-weight:700;color:#245c28;margin:0 0 4px;}
  /* an area that could not score explains itself in prose, so it is not shouted */
  #anPrintDoc .an-rp-unscored{font-weight:400;color:#333;line-height:1.5;}
  #anPrintDoc .an-rp-cov,#anPrintDoc .an-rp-last{font-size:9.5px;line-height:1.4;color:#555;margin:0 0 3px;}
  #anPrintDoc .an-rp-lbl{font-family:Montserrat,system-ui,sans-serif;font-size:9.5px;font-weight:700;
    letter-spacing:.11em;text-transform:uppercase;color:#245c28;margin:9px 0 3px;}
  #anPrintDoc .an-rp-pull{background:#f0f5f0;border-radius:8px;padding:8px 11px;margin:9px 0;
    break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #anPrintDoc .an-rp-pull .an-rp-lbl{margin-top:0;}
  #anPrintDoc .an-rp-pulls{list-style:none;margin:0;padding:0;}
  #anPrintDoc .an-rp-pulls li{margin:0 0 5px;}
  #anPrintDoc .an-rp-pulls li:last-child{margin-bottom:0;}
  #anPrintDoc .an-rp-ps{display:block;font-size:10px;line-height:1.45;color:#000;}
  #anPrintDoc .an-rp-pw{display:block;font-family:Montserrat,system-ui,sans-serif;font-size:9.5px;
    font-weight:700;letter-spacing:.04em;color:#245c28;}
  #anPrintDoc .an-rp-px{display:block;margin-top:2px;font-size:9.5px;line-height:1.42;color:#444;}
  #anPrintDoc .an-rp-g{margin:0 0 6px;break-inside:avoid;page-break-inside:avoid;}
  #anPrintDoc .an-rp-gt{font-size:10.5px;line-height:1.5;color:#000;margin:0;}

  /* every statement the area asked, with its two ratings in words and the note
     beside the statement it belongs to */
  /* Tightened a notch (3.5px rows, 12px list margin before): the ten-statement
     areas overflowed a Letter page by exactly one row. */
  /* Statement and its two ratings on ONE line - statement left, ratings right.
     Stacked, each of an area's ten rows cost two lines and the ten-statement
     areas overflowed their sheet by a single row, which is what printed as a
     near-empty page. Side by side the row is also easier to scan down. */
  #anPrintDoc .an-rp-items{list-style:none;margin:9px 0 0;padding:7px 0 0;border-top:1px solid #ccc;}
  #anPrintDoc .an-rp-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;
    padding:2.5px 0;border-bottom:1px solid #eee;break-inside:avoid;page-break-inside:avoid;}
  #anPrintDoc .an-rp-is{flex:1 1 60%;min-width:0;font-size:10px;line-height:1.45;color:#000;}
  #anPrintDoc .an-rp-iv{flex:0 0 auto;margin-left:auto;text-align:right;
    font-family:Montserrat,system-ui,sans-serif;font-size:9.5px;
    font-weight:700;letter-spacing:.04em;color:#245c28;white-space:nowrap;}
  #anPrintDoc .an-rp-in{flex:1 1 100%;font-size:9.8px;line-height:1.45;font-style:italic;color:#333;
    margin-top:1px;}

  /* ---- close ---- */
  /* Its own page, deliberately: it now opens with the in-flow run line, which
     would otherwise print mid-sheet after the last area. */
  #anPrintDoc .an-rp-close{break-before:page;page-break-before:always;}
  #anPrintDoc .an-rp-proto{font-size:10.5px;line-height:1.5;color:#000;background:#f0f5f0;
    border-radius:7px;padding:8px 11px;margin:14px 0 9px;break-inside:avoid;page-break-inside:avoid;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #anPrintDoc .pd-contact{font-size:10.5px;line-height:1.45;margin-top:8px;}
  #anPrintDoc .pd-foot{font-size:9.5px;line-height:1.4;color:#666;margin-top:8px;
    border-top:1px solid #ccc;padding-top:5px;}
}

/* ---- Anatomy: the eleven sections as an accordion, one open at a time ----
   Same feel as the sales scorecard's areas (.sc-area/.sc-head): a hairline row
   per area carrying the number, the name and the line the area says back, and
   one body open. Fully expanded this instrument is a ~26,000px scroll at phone
   width, which nobody finishes.
   The spine the .guide-journey pattern draws between numbers is switched off
   here: it is sized for tall cards and degenerates into disconnected stubs
   between short collapsed rows. The hairline borders carry the sequence instead. */
.an-journey .guide-stage:not(:last-child)::before{display:none;}
.an-cat{border-top:1px solid var(--line);padding-top:16px;padding-bottom:30px;}
.an-cat:first-child{border-top:0;padding-top:0;}
.an-cat.is-collapsed{padding-bottom:16px;}
.an-sech3{margin:0;font-weight:400;}
.an-sechead{display:flex;align-items:center;gap:6px 14px;width:100%;box-sizing:border-box;
  text-align:left;background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;
  min-height:44px;}
/* name and status share one shrinkable box, so the status wraps under the name
   at 320px instead of shoving the chevron off the right edge */
.an-sechead-txt{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:1px 14px;}
.an-sechead .guide-name{display:block;margin:0;}
.an-secst{flex:0 1 auto;min-width:0;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--acc-deep,#245c28);}
.an-sechead .faq-chev{flex:0 0 auto;width:30px;height:30px;}
.an-cat:not(.is-collapsed) .an-sechead .faq-chev{transform:rotate(180deg);}
.an-sechead:hover .guide-name{text-decoration:underline;text-underline-offset:3px;}
.an-sechead:hover .faq-chev{border-color:var(--acc-deep,#245c28);}
.an-secbody{padding-top:10px;}
/* a class, not [hidden] - the items carry their own display rules */
.an-cat.is-collapsed .an-secbody{display:none !important;}

/* ---- Anatomy: per-section (i) guidance ---- */
.an-name-row{display:flex;align-items:baseline;gap:9px;margin:0 0 14px;flex-wrap:wrap;}
.an-name-row .guide-purpose{flex:0 1 auto;min-width:0;margin:0;}
/* Green at rest, not ink. James, 10 August 2026: "should the (i) be in the normal
   green colour so it's not lost on the page?" It was - a ring at 10% ink opacity
   and a grey glyph, on warm paper. An affordance nobody notices does nothing, and
   the calibration behind it may as well not exist. It is also the odd one out:
   .gt, the site's other "there is more here" cue, already carries a dotted green
   underline. Rest is the accent, hover/open goes deeper and gains a faint fill, so
   there is still a state change to read. */
.an-ihint{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid rgba(46,125,50,.42);
  background:transparent;color:var(--acc,#2E7D32);font-family:Newsreader,Georgia,serif;font-style:italic;
  font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  transform:translateY(-2px);transition:border-color .15s,color .15s,background .15s;}
.an-ihint:hover,.an-ihint[aria-expanded="true"]{border-color:var(--acc-deep,#245c28);color:var(--acc-deep,#245c28);
  background:rgba(46,125,50,.10);}
.an-hint{display:none;font-size:13.5px;line-height:1.55;color:var(--ink-dim);
  background:rgba(46,125,50,.06);border-radius:6px;padding:10px 14px;margin:2px 0 12px;}
.an-hint b{color:var(--ink);font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-right:6px;}
.an-hint.is-open{display:block;}
/* The cost scale's (i). Its band is toggled by the [hidden] ATTRIBUTE rather than
   .is-open, because the Markdown-for-Agents middleware strips [hidden] and this is
   one string sitting on seventy-five items - CSS-hidden, it would land in an
   agent's copy of the page seventy-five times over. That means .an-hint's
   display:none has to be beaten explicitly here; :not([hidden]) does it without
   !important, and keeps the attribute as the single source of open/closed. */
.an-scalex:not([hidden]){display:block;margin:10px 0 0;}
.an-scaleb{width:19px;height:19px;font-size:12px;margin-left:7px;transform:none;}

/* "How to read this" - closed at rest, straight under the results heading. It
   explains the one thing a reader cannot infer from the page: that the ORDER is
   the distance between their two answers, not the low scores. Reuses the existing
   details/summary disclosure rather than inventing a new one. */
.an-howto{margin:0 0 22px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);}
.an-howto>summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:13px 16px;list-style:none;}
.an-howto>summary::-webkit-details-marker{display:none;}
.an-howto>summary h3{margin:0;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--acc-deep,#245c28);}
.an-howto>summary .faq-chev{margin-left:auto;}
.an-howto-b{padding:0 16px 15px;}
.an-howto-b p{margin:0 0 11px;font-size:14px;line-height:1.6;color:var(--ink-soft);max-width:74ch;}
.an-howto-b p:last-child{margin-bottom:0;}
.an-howto-b b{color:var(--ink);font-weight:600;}
.an-howto-b em{font-style:italic;color:var(--ink);}
/* Per-statement explanation: the same band, but the explanation IS the content -
   no uppercase label in front of it. */
.an-ix{margin:0 0 13px;}
/* The (i) is inline INSIDE its paragraph everywhere now, bound to the last word by a
   non-breaking space. As a flex sibling of the text it had nowhere to go once the
   paragraph took the full width, so all twelve area buttons dropped to a line of
   their own - a lone circle under a sentence. */
.an-ixb{margin-left:4px;vertical-align:middle;transform:none;}
/* the last word and its (i) travel as one run, so the icon never lands alone */
.an-nb{white-space:nowrap;}
/* Hover-to-peek must be scoped to the band that (i) actually controls. Scoped to
   .guide-body it would open the section's guidance and all sixty-five statement
   explanations from any one hover. */
@media (hover:hover){
  .an-name-row:has(.an-ihint:hover) + .an-hint{display:block;}
  .an-item-s:has(.an-ixb:hover) + .an-ix{display:block;}
}
/* Marked not relevant folds the card to one line, so the explanation and its
   button go with the rest. !important, because .an-hint.is-open sets display. */
.an-item.is-off .an-ix,.an-item.is-off .an-ixb{display:none !important;}
@media print{ .an-ihint,.an-hint{display:none !important;} }

/* Master control, right of the intro line: opens every statement's explanation.
   Quiet - a checkbox and a label, no accent bar. */
.an-introrow{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:6px 20px;margin:24px 0 0;}
.an-introrow .an-intro{margin:0;flex:1 1 30ch;min-width:0;}
.an-explain{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;
  font-family:var(--sans);font-size:13px;color:var(--ink-dim);cursor:pointer;}
.an-explain:hover{color:var(--acc-deep,#245c28);}
.an-explain input{width:17px;height:17px;flex:0 0 auto;accent-color:var(--acc-deep,#245c28);cursor:pointer;}

/* The full checklist with JS off: each statement's explanation as plain prose. */
.an-cl-x{margin:4px 0 9px;font-size:13.5px;line-height:1.55;color:var(--ink-dim);max-width:66ch;}

/* ---- Tools hub: flagship panel ---- */
.tflag{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center;
  border:1px solid var(--line);border-radius:10px;padding:34px 38px;margin-bottom:40px;
  background:linear-gradient(135deg,rgba(46,125,50,.045),rgba(46,125,50,0) 55%);}
.tflag-eyebrow{display:block;font-family:var(--sans);font-size:11.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--acc-deep,#245c28);margin-bottom:10px;}
.tflag h2{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:clamp(26px,3.4vw,34px);
  line-height:1.12;margin:0 0 12px;}
.tflag h2 em{font-style:italic;color:var(--acc-deep,#245c28);}
.tflag p{margin:0 0 18px;max-width:56ch;}
.tflag .fine{margin:12px 0 0;}
.tflag-mark{justify-self:center;}
.tflag-mark svg{display:block;width:min(240px,100%);height:auto;}
.tflag-mark .rg{stroke:var(--line);fill:none;stroke-width:1;}
.tflag-mark .pf{fill:rgba(46,125,50,.14);stroke:#245c28;stroke-width:1.6;}
.tflag-mark .pi{fill:none;stroke:var(--ink);stroke-width:1.1;stroke-dasharray:4 3;opacity:.75;}
@media (max-width:720px){ .tflag{grid-template-columns:1fr;padding:26px 22px;} .tflag-mark{order:-1;} .tflag-mark svg{width:170px;} }

/* Step zero: pending until answered (green attention, never an error red) */
.an-disc.is-pending{box-shadow:inset 0 0 0 1.5px var(--acc-deep,#245c28);}
/* The label reads "One question first"; this appends the pointer ONLY while the
   question is unanswered, and disappears once it is. It used to append "start here"
   to a label that already ended in "before you start", so the word landed twice. */
.an-disc.is-pending .an-disc-lbl::after{content:" · start here";color:var(--acc-deep,#245c28);}
.an-disc .an-name-row{margin:0 0 12px;}
.an-disc .an-disc-q{margin:0;}
