/* ══ THE TRADE'S PAGES ═══════════════════════════════════════════ 13 Oct 2026 (rp124), v1 ══
   Sir, 13 Oct: the polishing pass, tab by tab, to 9.8; the trade's pages are the last group. They
   keep their own frames. What they share now is carried here: the masthead's search for jobs where
   the old nav sat (its words ran into the logotype on three pages), the site's footer, and the parts
   each page gained in this pass (the board's cards without photographs, the date the homeowner's
   time to check ends, a dispute that is already open). Tokens are each page's own :root. */

/* ── the masthead: the logotype keeps its own room on every page ── */
.topbar .brand { flex: none; }
.topbar .brand + .nav { margin-left: clamp(28px, 3vw, 48px); }

/* ══ THE BOARD: A JOB WITH NO PHOTOGRAPHS SHOWS ITS OWN WORDS ══ */
.is-nopix.has-words { display: block; }
.is-nopix.has-words::after { content: none; }
.np-words { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; gap: 14px;
  padding: 60px clamp(20px, 2vw, 30px) clamp(20px, 2vw, 28px); }
/* the trade at the head, their words in the middle of the frame, what there is to look at at the foot */
.np-words .np-q { margin: auto 0; }
.np-k { font-family: var(--sans); font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-soft); }
.np-q { font-family: var(--serif-display, var(--serif)); font-size: clamp(21px, 1.9vw, 28px); line-height: 1.3; color: var(--cream);
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.np-f { padding-top: 12px; border-top: 1px solid rgba(250, 248, 243, .16); font-family: var(--sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(250, 248, 243, .66); }
.feat-img .np-words { padding-top: 56px; }
.feat-img .np-q { -webkit-line-clamp: 4; }
.tc:hover .np-q { text-decoration: underline; text-decoration-color: rgba(250, 248, 243, .35); text-underline-offset: 4px; }
/* what was asked, and the way back to the whole board */
.results-count .rc-clear, .board-empty .be-clear { margin-left: 10px; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.board-empty .be-clear { display: inline-block; margin: 14px 0 0; font-family: var(--sans); font-size: 13px; }
@media (max-width: 600px) { .np-q { font-size: 18px; -webkit-line-clamp: 5; } .np-words { padding-top: 56px; } }
@media (forced-colors: active) { .np-words { border: 1px solid CanvasText; } }

/* ══ INSPECT: THE DAY THE TIME TO CHECK ENDS ══ */
.review-window .rw-date { display: block; margin-top: 6px; font-family: var(--serif-display, Georgia, serif); font-size: 19px; line-height: 1.25; color: var(--navy); font-weight: 400; }
.review-window .rw-fine { display: block; margin-top: 6px; color: var(--muted); }

/* ══ A DISPUTE ALREADY OPEN ══ */
.hy-open-dispute { margin: 0 0 24px; padding: clamp(22px, 2.4vw, 30px) clamp(22px, 2.6vw, 32px); background: #fff; border: 1px solid var(--line, rgba(10,22,40,.12));
  border-left: 3px solid #A2342B; border-radius: 12px; }
.hy-open-dispute h2 { margin: 0 0 8px; font-family: var(--serif-display, Georgia, serif); font-weight: 400; font-size: clamp(22px, 2vw, 28px); line-height: 1.2; color: var(--navy); }
.hy-open-dispute p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.65; color: var(--ink, #1A2433); max-width: 66ch; }
.hy-open-dispute ol { margin: 14px 0 16px; padding: 0; list-style: none; display: grid; gap: 10px; counter-reset: od; }
.hy-open-dispute li { counter-increment: od; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; font-size: 14px; line-height: 1.6; color: var(--ink, #1A2433); }
.hy-open-dispute li::before { content: counter(od); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--navy);
  font-family: var(--serif-display, Georgia, serif); font-size: 13px; color: var(--navy); }
.hy-open-dispute .od-acts { display: flex; flex-wrap: wrap; gap: 10px 14px; margin-top: 6px; }
.hy-open-dispute .od-acts a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 10px; font-size: 14px; font-weight: 600; text-decoration: none; }
.hy-open-dispute .od-go { background: var(--navy); color: #fff; }
.hy-open-dispute .od-alt { border: 1px solid var(--line-2, rgba(10,22,40,.2)); color: var(--navy); }
.hy-open-dispute a:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

/* the board's bookmark: seen when kept, and when reached by key */
.result-fav.active, .result-fav:focus-visible { opacity: 1; }
.result-fav:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; border-radius: 6px; }

/* ══ SAVED: THE TRADE AND THE PLACE WHERE A STOCK PHOTOGRAPH WAS ══ */
.result-img.sv-tile { display: flex; flex-direction: column; justify-content: center; gap: 8px; min-height: 200px; padding: 52px 26px 48px;
  background: var(--navy); color: var(--cream); }
.sv-tile .sv-tile-k { font-family: var(--serif-display, Georgia, serif); font-size: clamp(24px, 2.2vw, 30px); line-height: 1.1; color: var(--cream); }
.sv-tile .sv-tile-p { font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-soft); }
.sv-tile .avail-badge { text-shadow: none; color: rgba(250, 248, 243, .8); font-weight: 500; }
.result-card.is-gone { opacity: .62; }
.result-card.is-gone .sv-tile { background: color-mix(in srgb, var(--navy) 70%, var(--cream)); }
.saved-ago { white-space: nowrap; }

/* the brand mark fixed to the window's corner at 3 per cent drifted over the cards beside it
   (inspect, dispute, review); the masthead and the footer carry the mark */
.page-wrap::after { content: none; }

/* the job page's "no photographs yet" mark drew nothing: its stroke named a token the page does not define */
.np-mark svg { stroke: var(--gold-ink, #7A5A1E); }

/* the review page's policy link was the browser's own blue */
.submit-fine-print a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

/* the payment-protection line on a phone: the sentence takes the width, the link goes under it */
@media (max-width: 600px) {
  .protect-explainer { flex-wrap: wrap; align-items: flex-start; row-gap: 6px; }
  .protect-explainer > span { flex: 1 1 calc(100% - 64px); }
  .protect-explainer > a { order: 3; margin-left: 30px; }
}

/* ── the gate's findings on these pages (rp124) ── */
/* the skip link's -1px margin put it a pixel past the page's left edge */
a.skip { margin: 0; left: 0; top: 0; }
/* the saved page's breadcrumb mark was the rule colour (1.55 to 1) */
.page-header-bar .breadcrumb span { color: var(--muted); }
/* the review's "Earned" was gold at 60 per cent on navy (3.68), its note gold on cream (2.07) */
.job-done-amount .amt-label { color: var(--gold-soft); }
.review-heading .social-proof { color: #6E5418; }
.review-heading .social-proof svg { fill: var(--gold-soft); }
/* the night thread's notice heading: the lamp's gold, as the rest of the notice (an older !important kept it at the day gold, 3.46 on the night) */
html body .thread .trust-notice strong { color: var(--lamp, #D4A943) !important; }
/* the board's masthead balance over the hero photograph: measured 4.15 to 1 in the gold; a lighter gold reads 5.2 */
.topbar.hy-glass-dark .hy-bal-k, .topbar.hy-glass-dark .hy-bal-v { color: #E6C46A; }
/* inspect: "Homeowner" under the name on the hero's green (4.17), and the label on a photograph still loading */
.ir-hero-certs { color: rgba(250, 248, 243, .74); }
.ev-photo .ph-inner span { color: #4A5160; opacity: 1; }
