/* Marketing self-evaluation (/eval/). Three inputs and a readout, organized around the
   four jobs of marketing. Without the script every step shows in order as one long page. */

.eval-page{--eval-red:#c72d23;--eval-blue:#2448c5;--eval-wash:#f7f7f4;--eval-soft:#555;--eval-rule:#ccc}

/* Hero: one column of copy. */
.eval-hero-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}
.eval-hero-title{padding:clamp(48px,5vw,80px) var(--gutter);border-right:var(--line);display:flex;flex-direction:column;justify-content:center;gap:24px;min-width:0}
.eval-hero-body{padding:clamp(48px,5vw,80px) var(--gutter);display:flex;flex-direction:column;justify-content:center;gap:20px;min-width:0}
.eval-hero-copy h1{font-size:clamp(56px,5.6vw,96px);line-height:.98;margin:0;text-wrap:balance}
.eval-hero-copy p{font-size:var(--type-body);line-height:1.6;max-width:620px;margin:0}
.eval-hero-copy .eval-hero-lead{font-size:var(--type-lead);line-height:1.45}
.eval-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:8px}
.eval-hero-time{font-size:16px;color:var(--eval-soft)}

/* Progress: one segment per step, filled up to the current one. */
.eval-progress{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px var(--gutter);border-bottom:var(--line)}
.eval-progress p{margin:0;font-size:15px;font-weight:600}
.eval-progress ol{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.eval-progress li{width:clamp(28px,4vw,56px);height:6px;background:var(--eval-rule)}
.eval-progress li.is-done{background:var(--ink)}
.eval-app:not(.eval-js) .eval-progress{display:none}

/* Steps. The script shows one at a time. */
.eval-js .eval-step:not(.is-active){display:none}
.eval-step:focus{outline:0}
.eval-app:not(.eval-js) .eval-step+.eval-step{border-top:var(--line)}
.eval-step-head{display:grid;grid-template-columns:var(--grid-wide);gap:24px 6vw;align-items:end;padding:clamp(48px,5vw,80px) var(--gutter);border-bottom:var(--line)}
.eval-step-head h2{font-size:clamp(48px,5.4vw,88px);line-height:1;margin:0;text-wrap:balance}
.eval-step-head p{font-size:var(--type-body);line-height:1.6;margin:0;max-width:520px}

/* A group is one row: the job on the left, its questions on the right. */
.eval-group{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);border-bottom:var(--line)}
.eval-group[hidden]{display:none}
.eval-group-name{padding:36px var(--gutter);border-right:var(--line);min-width:0}
.eval-group-name h3{font-size:clamp(30px,2.6vw,42px);line-height:1.02;margin:0;text-wrap:balance}
.eval-group-count{font-size:15px;line-height:1.5;margin:12px 0 0;color:var(--eval-soft);max-width:320px}
.eval-list{list-style:none;margin:0;padding:0;min-width:0}
.eval-list>li+li{border-top:1px solid var(--eval-rule)}

/* Input 1: a written standard and a three-way rating. */
.eval-rate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 28px;align-items:center;padding:20px var(--gutter)}
.eval-rate-text{font-size:18px;line-height:1.45;margin:0}

.eval-choice{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0;min-width:0}
.eval-choice legend{font-size:19px;font-weight:600;line-height:1.4;margin:0 0 14px;padding:0}
.eval-choice label{position:relative;display:block}
.eval-choice input{position:absolute;opacity:0;width:1px;height:1px}
.eval-choice span{display:block;padding:10px 16px;border:1px solid var(--ink);font-size:15px;line-height:1.2;cursor:pointer;background:#fff;white-space:nowrap;transition:background .15s,color .15s}
.eval-choice label:hover span{background:var(--eval-wash)}
.eval-choice input:checked+span{background:var(--ink);color:#fff}
.eval-choice input:focus-visible+span{outline:2px solid var(--eval-blue);outline-offset:3px}

/* Input 2: four questions. */
.eval-question{padding:32px var(--gutter);border-bottom:var(--line)}
.eval-question .eval-choice span{white-space:normal}

/* Input 3: checkboxes with the item, what it is and why it matters. */
.eval-want{display:flex;gap:18px;align-items:flex-start;padding:22px var(--gutter);cursor:pointer}
.eval-want input{appearance:none;-webkit-appearance:none;flex:none;width:26px;height:26px;margin:2px 0 0;border:1.5px solid var(--ink);border-radius:0;background:#fff;display:grid;place-content:center;cursor:pointer}
.eval-want input::after{content:"";width:12px;height:7px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:translateY(-2px) rotate(-45deg);opacity:0}
.eval-want input:checked{background:var(--ink)}
.eval-want input:checked::after{opacity:1}
.eval-want input:focus-visible{outline:2px solid var(--eval-blue);outline-offset:3px}
.eval-want-text{font-size:18px;line-height:1.5;min-width:0}
.eval-want-text>b{font-weight:600}
.eval-want-text small{display:block;font-size:15px;line-height:1.5;margin-top:6px;color:var(--eval-soft)}
.eval-want-text small b{font-weight:600;color:var(--ink)}

/* Step navigation. */
.eval-nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:28px var(--gutter)}
.eval-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.eval-back{background:none;border:0;padding:12px 0;font-size:16px;text-decoration:underline;text-underline-offset:5px}
.eval-back:hover{text-decoration-thickness:2px}
.eval-app:not(.eval-js) .eval-nav,.eval-app:not(.eval-js) .eval-results{display:none}

/* Readout: one row per part, in the order a prospect meets the firm. */
.eval-scorecard{border-bottom:var(--line)}
.eval-score{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,3fr) minmax(0,3fr);gap:8px 24px;align-items:center;padding:16px var(--gutter);min-width:0}
.eval-score+.eval-score{border-top:1px solid var(--eval-rule)}
.eval-score-name{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-width:0}
.eval-score-name b{font:800 clamp(24px,2vw,30px)/1 var(--display);letter-spacing:-.01em}
.eval-score-status{font-size:16px;font-weight:600}
.eval-score>span[data-score-text]{font-size:15px;color:var(--eval-soft)}
.eval-score.is-weakest{background:var(--eval-wash)}
.eval-score.is-weakest .eval-score-status{color:var(--eval-red)}
.eval-score.is-weakest .eval-score-bar span{background:var(--eval-red)}
.eval-score-flag{font-size:12px;font-weight:600;line-height:1;padding:5px 8px;background:var(--eval-red);color:#fff}
.eval-score-flag[hidden]{display:none}
.eval-score-bar{display:block;height:8px;background:var(--eval-rule)}
.eval-score-bar span{display:block;height:100%;width:0;background:var(--ink);transition:width .4s ease}

.eval-results-section{padding:40px var(--gutter);border-bottom:var(--line)}
.eval-results-section h3{font-size:clamp(32px,3vw,48px);line-height:1.02;margin:0 0 16px}
.eval-results-section>p{font-size:17px;line-height:1.55;max-width:720px;margin:0}
.eval-results-section[hidden]{display:none}

.eval-steps-list{list-style:none;counter-reset:step;margin:24px 0 0;padding:0;display:flex;flex-direction:column}
.eval-steps-list li{counter-increment:step;display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;padding:16px 0;border-top:1px solid var(--eval-rule)}
.eval-steps-list li::before{content:counter(step);grid-row:span 2;font:800 40px/1 var(--display);color:var(--eval-red)}
.eval-steps-list b{font-size:19px;line-height:1.4;font-weight:600}
.eval-steps-list small{font-size:15px;line-height:1.5;color:var(--eval-soft)}

.eval-split{display:grid;grid-template-columns:var(--grid-half);padding:0}
.eval-split>div{padding:40px var(--gutter);min-width:0}
.eval-split>div+div{border-left:var(--line);background:var(--eval-wash)}
.eval-ai-advice{display:flex;flex-direction:column;gap:12px}
.eval-ai-advice p{font-size:17px;line-height:1.55;margin:0}
.eval-ai-advice p[hidden]{display:none}
.eval-ai-advice .eval-principle{font-size:19px;line-height:1.5;font-weight:600}
.eval-choose-key{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}
.eval-choose-key b{font:800 22px/1.05 var(--display);letter-spacing:-.01em}
.eval-choose-key p{font-size:15px;line-height:1.5;margin:6px 0 0}

/* Readout per job, bottom of the funnel first. */
.eval-job-body{min-width:0}
.eval-job-gaps,.eval-job-wants{padding:32px var(--gutter);min-width:0}
.eval-job-wants{border-top:var(--line);background:var(--eval-wash);display:flex;flex-direction:column;gap:28px}
.eval-job-wants[hidden]{display:none}
.eval-job-gaps h4,.eval-job-wants>h4{font:800 26px/1.05 var(--display);letter-spacing:-.01em;margin:0 0 4px}
.eval-plan{list-style:none;margin:12px 0 0;padding:0}
.eval-plan li{padding:14px 0;border-bottom:1px solid var(--eval-rule);font-size:17px;line-height:1.5}
.eval-plan li b{font-weight:600}
.eval-plan li small{display:block;font-size:15px;color:var(--eval-soft);margin-top:4px}
.eval-plan li small b{color:var(--ink)}
.eval-plan-note{font-size:16px;color:var(--eval-soft);margin:12px 0 0}
.eval-tag{display:inline-block;font-size:12px;font-weight:600;line-height:1;padding:4px 7px;border:1px solid var(--ink);vertical-align:2px;margin-left:6px}

.eval-want-result{display:flex;flex-direction:column;gap:16px;padding-top:24px;border-top:1px solid var(--eval-rule)}
.eval-want-result[hidden]{display:none}
.eval-want-title{font:800 clamp(28px,2.4vw,36px)/1.02 var(--display);letter-spacing:-.01em;margin:0}
.eval-fit-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.eval-fit-cols>div{padding:18px 20px;min-width:0;border:1px solid var(--eval-rule);background:#fff}
.eval-want-result h5{font:800 22px/1.05 var(--display);letter-spacing:-.01em;margin:0 0 12px}
.eval-fit-cols>div:first-child h5{color:var(--eval-blue)}
.eval-takes{font-size:16px;line-height:1.55;margin:0;max-width:760px}
.eval-takes b{font-weight:600}
.eval-want-result .eval-subhead{margin:4px 0 -4px}
.eval-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.eval-option{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid var(--ink);background:#fff;font-size:15px;line-height:1.45;min-width:0}
.eval-option>b{font:800 22px/1 var(--display);letter-spacing:-.01em}
.eval-choose-if{font-size:14px;font-weight:600;line-height:1.45}
.eval-pc{font-size:14px;line-height:1.45;padding-top:8px;border-top:1px solid var(--eval-rule)}
.eval-pc+.eval-pc{border-top:0;padding-top:0}
.eval-pc strong{font-weight:600}
.eval-good{padding:18px 20px;background:#fff;border:1px solid var(--eval-rule)}

.eval-bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.eval-bullets li{position:relative;padding-left:20px;font-size:16px;line-height:1.5}
.eval-bullets li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:currentColor}

.eval-empty{margin:0;padding:48px var(--gutter);font-size:19px;border-bottom:var(--line)}
.eval-privacy,.eval-copy-status{margin:0;padding:0 var(--gutter) 28px;font-size:14px;color:var(--eval-soft)}
.eval-copy-status:empty{display:none}

/* Screen-reader-only labels (this page doesn't load journal-layout.css, where the shared rule lives). */
.eval-page .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media(prefers-reduced-motion:reduce){.eval-choice span,.eval-score-bar span{transition:none}}

@media(max-width:1100px){
 .eval-rate{grid-template-columns:1fr}
 .eval-options{grid-template-columns:1fr}
}
@media(max-width:900px){
 .eval-hero-copy{grid-template-columns:1fr}
 .eval-hero-title{border-right:0;border-bottom:var(--line)}
 .eval-step-head{grid-template-columns:1fr}

 .eval-split{grid-template-columns:1fr}
 .eval-split>div+div{border-left:0;border-top:var(--line)}
}
@media(max-width:700px){
 .eval-hero-title,.eval-hero-body{padding:40px 26px}
 .eval-hero-copy h1{font-size:clamp(48px,13vw,76px)}
 .eval-progress{padding:16px 26px}
 .eval-step-head{padding:40px 26px}
 .eval-step-head h2{font-size:clamp(40px,11vw,60px)}
 .eval-group{grid-template-columns:1fr}
 .eval-group-name{border-right:0;border-bottom:1px solid var(--eval-rule);padding:26px 26px 18px}
 .eval-rate,.eval-want{padding:18px 26px}
 .eval-rate-text,.eval-want-text{font-size:17px}
 .eval-choice span{padding:10px 12px;font-size:14px}
 .eval-question{padding:26px}
 .eval-score{grid-template-columns:1fr 1fr;padding:16px 26px}
 .eval-results-section,.eval-split>div{padding:32px 26px}
 .eval-job-gaps,.eval-job-wants{padding:26px}
 .eval-fit-cols,.eval-choose-key{grid-template-columns:1fr}
 .eval-empty{padding:22px 26px;font-size:17px}
 .eval-nav{padding:22px 26px}
 .eval-privacy,.eval-copy-status{padding:0 26px 24px}
}
