/* AI Systems Finder parts the scorecard page (ai-systems-score.html) never uses, kept out of finder.css, which it
   shares, and loaded after results.css on the finder's own pages (scripts/library/shells.ts finderShell). */

/* The so-far box (rework, 22 Oct 2026): hours only, Charcoal, at the foot of the desktop rail (back there 23 Oct 2026,
   Kristian). Each figure leads its line, the figures in one column and their words in the next. Phones never show it:
   the rail is hidden there (finder.css). */
.fd-tally {
  margin: auto 0 0; padding: 18px 20px; border-radius: 14px; background: var(--bla-charcoal); color: var(--bla-off-white);
  display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 12px; align-items: baseline;
}
.fd-tally[hidden] { display: none; }
.fd-tally > p { margin: 0; }
.fd-tally-h { grid-column: 1 / -1; font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--bla-light-blue); }
.fd-tally-l { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: baseline; font-size: 14px; line-height: 1.35; color: var(--bla-soft-stone); }
.fd-tally-l[hidden] { display: none; }
.fd-tally-note { grid-column: 1 / -1; font-size: 13px; line-height: 1.45; color: var(--bla-soft-stone); }
.fd-tally-note[hidden] { display: none; }
.fd-tally-n { justify-self: end; font-family: var(--font-mono); font-weight: 500; font-size: 26px; line-height: 1; color: var(--bla-off-white); font-variant-numeric: tabular-nums; }

/* The estimate, step 6 (23 Oct 2026, fixes item 4): the intro and the steps rail go and the results take the full
   width; the wordmark stays. The h1 stays for screen readers, hidden from view. On a wide screen the pick cards sit
   two to a row, so the page is shorter. The page by link keeps its own intro and gets the same wide results. */
.fd:not(.fd-wait)[data-fd-step="estimate"] { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "intro" "main"; }
.fd:not(.fd-wait)[data-fd-step="estimate"] .fd-rail, .fd[data-fd-step="estimate"] .fd-lede { display: none; }
.fd:not(.fd-wait)[data-fd-step="estimate"] .fd-intro { background: none; padding: 36px 56px 0; }
.fd:not(.fd-wait)[data-fd-step="estimate"] #fd-title {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.fd[data-fd-step="estimate"] :is(.fd-slide, .fd-foot) { max-width: none; }
@media (min-width: 1100px) {
  .fd[data-fd-step="estimate"] .fd-est { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd[data-fd-step="estimate"] .fd-est > * { grid-column: 1 / -1; }
  .fd[data-fd-step="estimate"] .fd-est > .fd-ej { grid-column: auto; }
}

@media (max-width: 1020px) {
  .fd:not(.fd-wait)[data-fd-step="estimate"] .fd-intro { padding: 30px 32px 0; }
}

/* The results page by link (rework, 22 Oct 2026): the wait page's card with the estimate under the intro. */
.fd-link .fd-main { padding: 0 56px 44px; }
@media (max-width: 820px) {
  .fd-link .fd-main { padding: 0 16px 24px; }
  /* Step 6 on a phone: no page title above the results, which start under the top bar and its wordmark. */
  .fd:not(.fd-wait)[data-fd-step="estimate"] { grid-template-rows: auto auto 1fr; grid-template-areas: "top" "intro" "main"; }
  .fd:not(.fd-wait)[data-fd-step="estimate"] .fd-intro { padding: 0; }
}

/* The steer's better first step (23 Oct 2026, maths-price.md section 7): its guide line under the title. */
.fd-rel small { display: block; margin-top: 4px; font-weight: 400; font-size: 14px; color: var(--bla-steel-grey); }

/* The pick's title as a plain heading over its questions (23 Oct 2026, item 7): no "Pick 1 of 3" pill. Charcoal in
   the display serif, like the page title (Kristian, 23 Oct 2026), and close to its "You get" box. Sized with the
   taste pass below, under the page's h1. */
h2.fd-counter { padding: 0; border-radius: 0; background: none; color: var(--bla-charcoal); font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; text-wrap: balance; }
.fd-slide > h2.fd-counter + [data-fd-about] { margin-top: -28px; }

/* Thinner sliders (Kristian, 23 Oct 2026): Not sure, the 4P Not sure chip or the switch to the other figure top left,
   the figure top right on the same row, and the two ends tight under the bar. Finder pages only: the scorecard and
   the AI Self-Assessment share controls.css and keep their sliders. */
.fd-slider { padding: 8px 18px 12px; row-gap: 0; align-items: center; }
.fd-slider > :has(+ .fd-slider-v) { grid-column: 1; justify-self: start; }
/* A narrow box (phones): Not sure takes the top line and the figure sits under it on the right, so a growing figure
   never rewraps Not sure while the thumb moves. The slide is the container, not the slider box: a container on the box
   left it blank when 1C's help line hid on the first move (Chrome, 23 Oct 2026). A 560px slide holds a 520px box. */
.fd-slide { container: fd-slide / inline-size; }
@container fd-slide (max-width: 560px) { .fd-slider > :has(+ .fd-slider-v) { grid-column: 1 / -1; } }
.fd-slider > .fd-plain:has(+ .fd-slider-v) { min-height: 44px; }
.fd-slider > .fd-ends { margin-top: -4px; font-size: 13px; }
/* Not sure ticked: the tick box says so, so the figure on its row stays blank rather than say it twice. */
.fd-slider:has(> .fd-unsure input:checked) > .fd-slider-v { visibility: hidden; }
.fd-slider > .fd-rate { margin-top: 8px; }
.fd-slider > .fd-plain:not(:has(+ .fd-slider-v)) { margin-top: 4px; }
.fd-slider .fd-chips { min-width: 0; }
.fd-slider .fd-chip { min-height: 44px; padding: 6px 14px; background: var(--bla-soft-stone); box-shadow: none; }

/* The explainer (23 Oct 2026, fixes item 9): a short pale-blue box under a question a visitor could guess at, under
   the deposit button's lead line and under the estimate's tiles. A tone fill, no rule down its side. */
.fd-explain { margin: 0; padding: 12px 16px; border-radius: 12px; background: var(--fd-lb-45); color: var(--bla-charcoal); font-size: 15px; line-height: 1.5; }
details.fd-explain > summary { display: flex; align-items: center; gap: 8px; min-height: 28px; cursor: pointer; font-weight: 600; list-style: none; }
details.fd-explain > summary::-webkit-details-marker { display: none; }
details.fd-explain > summary::before { content: '\25B6'; font-size: 10px; color: var(--bla-consulting-blue); }
details.fd-explain[open] > summary::before { transform: rotate(90deg); }
details.fd-explain > p { margin: 4px 0 0; }
.fd-next p.fd-explain { max-width: none; }

/* Taste pass stage 3 on the form and the estimate (23 Oct 2026, fixes item 2; the homepage's stage 3 rules, git tag
   homepage-taste-stage-3). Visual only: no words, links, buttons or order change. Bigger headings and prices, more
   space between questions, soft tone fills instead of outlines and side rules, and at most one dark block in the main
   column: the joined-up offer on 5A when it shows, and the totals on the estimate. The so-far box stays Charcoal in
   the rail, beside it. */
#fd-title { font-size: 34px; }
h2.fd-counter { font-size: 30px; line-height: 1.15; }
.fd-legend { font-size: 25px; line-height: 1.2; }
.fd-sec-t { font-size: 19px; }
/* Slide 3: cards, Show more and Something else 20px apart; each section heading sits nearer its own cards than the ones above. */
[data-fd-systems] { display: grid; gap: 20px; }
[data-fd-systems] > .fd-sys-sec ~ .fd-sys-sec { margin-top: 24px; }
.fd-slide { gap: 48px; }
.fd-est h2 { justify-self: start; font-size: clamp(32px, 3.2vw, 42px); }
.fd-est .fd-ej h3 { font-size: 22px; }
.fd-chart h3 { font-size: 21px; }
.fd-totals { padding: 26px 28px; }
.fd-totals dd { font-size: 34px; }
.fd-totals dt { font-size: 15px; }
.fd-figs b { font-size: 18px; }
.fd-bar-v { font-size: 16px; }
.fd-next :is(h3, .fd-next-t) { font-size: 28px; }
.fd-about, .fd-same, .fd-pkcheck, .fd-warn, .fd-gap { border-left: 0; border-radius: 16px; }
.fd-pkoffer { border: 0; background: var(--fd-lb-45); box-shadow: none; }
.fd-next { border: 0; background: var(--fd-lb-45); }
.fd-next .fd-explain { background: var(--bla-off-white); }
:is([data-fd-cal-prev], [data-fd-cal-next]) { border: 0; box-shadow: 0 1px 2px var(--fd-ink-06); }
:is([data-fd-cal-prev], [data-fd-cal-next]):disabled { box-shadow: none; background: transparent; }
@media (max-width: 820px) {
  .fd-slider { padding: 6px 14px 10px; }
  #fd-title { font-size: 28px; }
  h2.fd-counter { font-size: 24px; }
  .fd-legend { font-size: 22px; }
  .fd-slide { gap: 36px; }
  .fd-est h2 { font-size: 28px; }
  .fd-est .fd-ej h3 { font-size: 20px; }
  .fd-totals { padding: 22px; }
  .fd-totals dd { font-size: 28px; }
  .fd-next :is(h3, .fd-next-t) { font-size: 24px; }
  .fd-ans { border: 0; background: var(--bla-soft-stone); }
}

/* Get it built: the call, then the study; side by side on a wide screen, a hairline between (23 Oct 2026). */
.fd-next-col { display: grid; gap: 12px; justify-items: start; align-content: start; min-width: 0; }
@media (min-width: 821px) {
  .fd-next { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; }
  .fd-next-t { grid-column: 1 / -1; }
  .fd-next-study { padding-left: 32px; border-left: 1px solid rgba(35, 42, 49, 0.16); }
}

/* Impeccable review fixes (Kristian's go, 23 Oct 2026; finding numbers from the review page). */
/* 1. A system the picked package already holds: muted, no lift, and its line says why it cannot be ticked. */
.fd-sys:has(input[aria-disabled="true"]) { cursor: default; background: rgba(250, 250, 248, 0.5); box-shadow: none; }
.fd-sys-held { font-size: 14px; font-weight: 600; color: var(--bla-consulting-blue); }
@media (hover: hover) and (pointer: fine) { .fd-sys:has(input[aria-disabled="true"]):hover { box-shadow: none; } }
/* 14. Slide 3's section names are real headings now, at the size they had. */
.fd-sec-t { font-family: var(--font-body); line-height: 1.3; letter-spacing: normal; }
/* 2. Book a call under the totals, and in the phone's fixed bar on the estimate (desktop keeps the one in the rail's place). */
.fd-call-top { margin: 0; }
.fd-foot-call[hidden] { display: none; }
@media (min-width: 821px) { .fd-foot-call { display: none; } }
/* 8. Not sure is a chip everywhere: on a slider top left, under tiles in its own row. */
.fd-unsure.fd-chip { gap: 0; }
.fd-unsure-row { margin-top: 12px; }
/* 9. The estimate's after-the-build bar in Consulting Blue: Light Blue was 1.7 to 1 on the light card. */
.fd-bar-after { background: var(--bla-consulting-blue); }
/* 11. The chosen day keeps a visible focus ring where the ring sits inside it (400px and under). */
@media (max-width: 400px) { .fd-day[aria-pressed="true"]:focus-visible { outline-color: var(--bla-off-white); } }
/* 13. 5B's boxes get a solid Steel Grey edge (was 1.8 to 1); Blue on focus as before. */
.fd-page .fd-field :is(input, select, textarea):not(:focus) { border-color: var(--bla-steel-grey); }
@media (max-width: 820px) {
  /* 3. After step 1 the page title leaves the phone screen, so the question starts near the top. Screen readers keep it. */
  .fd:not(.fd-wait)[data-fd-step]:not([data-fd-step="company"]) #fd-title {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
  .fd:not(.fd-wait)[data-fd-step]:not([data-fd-step="company"]) .fd-intro { padding: 0; }
  /* 15. "What these figures mean" is a 44px tap target. */
  details.fd-explain > summary { min-height: 44px; }
  /* 16. The wordmark link is 44px tall on the estimate page by link too. */
  .fd-mark { min-height: 44px; align-items: center; }
}
/* 10. Windows high contrast: picked tiles, chips, cards and days, and the current step, still show. */
@media (forced-colors: active) {
  :is(.fd-tile, .fd-chip, .fd-sys) { border: 1px solid CanvasText; }
  :is(.fd-tile, .fd-chip, .fd-sys):has(input:checked) { outline: 3px solid Highlight; outline-offset: 2px; }
  :is(.fd-tile, .fd-chip, .fd-sys):has(input:focus-visible) { outline: 3px solid CanvasText; }
  .fd-day[aria-pressed="true"] { forced-color-adjust: none; background: Highlight; color: HighlightText; }
  .fd-step[data-state="current"] .fd-dot { forced-color-adjust: none; border-color: Highlight; background: Highlight; }
  .fd-step[data-state="current"] .fd-step-n { text-decoration: underline; text-underline-offset: 4px; }
  .fd-bar-f { forced-color-adjust: none; background: CanvasText; }
}
/* 18. The finder no longer loads site-taste.css (Impeccable review, 23 Oct 2026): its forced sizes are plain rules
   above, and the two things the finder took from it live here. Same selectors and order, so nothing moves. */
@media (prefers-reduced-motion: no-preference) {
  html body main :is(a[class*="btn"], a[class*="cta"], button) {
    transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 200ms cubic-bezier(0.23, 1, 0.32, 1), color 200ms cubic-bezier(0.23, 1, 0.32, 1);
  }
  html body main :is(a[class*="btn"], a[class*="cta"], button):active { transform: scale(0.97); }
}
@media (max-width: 767px) {
  html body main :is(a[class*="btn"], a[class*="cta"], a[class*="link"], button):not(p a):not(p button) { min-height: 44px; }
  html body main a[class*="link"]:not(p a) { display: inline-flex; align-items: center; }
}
/* The page by link keeps the space under its estimate that the site's section padding gave it. */
.fd-link .fd-est { padding-bottom: clamp(40px, 4.5vw, 64px); }
