@font-face {
  font-family: "Schibsted Grotesk";
  src: url("../fonts/schibsted-grotesk-var.woff2") format("woff2");
  font-weight: 400 900;
  font-display: swap;
}
@font-face {
  font-family: "Space Mono";
  src: url("../fonts/space-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Space Mono";
  src: url("../fonts/space-mono-700.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}

:root {
  /* Indigo Paper brand — adopted 2026-06-06 (design/landing prototype) */
  --bg: #faf9f6;                /* warm paper */
  --surface: #ffffff;
  --surface-muted: #f4f2eb;     /* warm fill */
  --surface-raise: #fffdfa;     /* NEW */
  --border: #e8e4dc;            /* warm line */
  --border-soft: #f1eee8;       /* NEW */
  --text: #1b1a17;              /* warm ink */
  --muted: #56534c;             /* ink2 */
  --muted-2: #8b877d;           /* NEW ink3 */
  --muted-3: #b6b1a6;           /* NEW ink4 */
  --accent: oklch(0.52 0.15 266);          /* indigo */
  --accent-strong: oklch(0.43 0.15 266);   /* indigo dark */
  --accent-soft: oklch(0.96 0.022 266);    /* NEW */
  --accent-line: oklch(0.88 0.05 266);     /* NEW */
  --verified: oklch(0.52 0.09 158);        /* green, warm-tuned */
  --verified-soft: oklch(0.955 0.025 158); /* NEW */
  --warning: oklch(0.56 0.12 55);          /* amber */
  --warning-strong: oklch(0.48 0.12 55);   /* amber dark — WCAG AA text on soft bg */
  --warning-soft: oklch(0.955 0.04 70);    /* NEW */
  --shadow-sm: 0 1px 2px rgb(28 26 22 / 5%);                                 /* NEW */
  --shadow: 0 4px 18px -6px rgb(28 26 22 / 12%), 0 1px 3px rgb(28 26 22 / 5%); /* md, keeps name */
  --shadow-lg: 0 18px 50px -12px rgb(28 26 22 / 22%), 0 4px 12px rgb(28 26 22 / 8%); /* NEW */
  --shadow-accent: 0 6px 18px -6px oklch(0.52 0.15 266 / 45%);               /* NEW */
  --r-card: 16px;   /* NEW */
  --r-btn: 11px;    /* NEW */
  /* Spacing scale (premium rhythm pass) — 4px base, used for the vertical rhythm
     stack so pills/titles/leads breathe consistently across surfaces. */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --font-ui: "Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

* {
  box-sizing: border-box;
}

html {
  color: var(--text);
  background: var(--bg);
  font-family: var(--font-ui);
  line-height: 1.5;
}

body {
  margin: 0;
  background: var(--bg);
}

a {
  color: var(--accent);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--accent-strong);
  text-decoration: underline;
}

:focus-visible {
  outline: 3px solid oklch(0.52 0.15 266 / 35%);
  outline-offset: 3px;
}

::selection {
  background: var(--accent-soft);
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  padding: 10px 16px;
  background: var(--surface);
  color: var(--accent-strong);
  font-weight: 600;
  border-radius: 0 0 8px;
  box-shadow: var(--shadow);
}

.skip-link:focus {
  left: 8px;
  top: 8px;
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  text-decoration: none;
}

.shell {
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid var(--border);
  background: rgb(255 255 255 / 94%);
  backdrop-filter: blur(10px);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--text);
}

.brand-mark:hover,
.brand-mark:focus {
  text-decoration: none;
}

.brand-mark__symbol {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  flex: 0 0 auto;
  overflow: hidden;
}

.brand-mark__symbol-image {
  display: block;
  width: 100%;
  height: 100%;
}

.brand-mark__name,
.brand-mark__tagline {
  display: block;
}

.brand-mark__name {
  font-weight: 760;
}

.brand-mark__tagline {
  color: var(--muted);
  font-size: 0.82rem;
}

.top-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px 16px;
  font-size: 0.93rem;
}

.top-nav a,
.top-nav__button {
  color: var(--muted);
}

.top-nav__form {
  margin: 0;
}

.top-nav__button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  padding: 0;
}

.top-nav__button:hover,
.top-nav__button:focus {
  color: var(--accent-strong);
  text-decoration: underline;
}

.page-band {
  padding: var(--space-6) 0 var(--space-7);
}

.page-band--intro {
  padding-top: var(--space-7);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.page-band--detail {
  padding-top: 28px;
}

.intro-grid,
.content-grid,
.detail-grid {
  display: grid;
  gap: 28px;
  align-items: start;
}

.intro-grid {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: end;
}

.content-grid {
  grid-template-columns: 300px minmax(0, 1fr);
}

.detail-grid,
.dashboard-grid,
.profile-grid,
.auth-shell {
  grid-template-columns: minmax(0, 1fr) 340px;
}

.detail-main,
.detail-rail,
.rail-panel,
.form-panel,
.workspace-card,
.settlement-card,
.task-card,
.legal-main {
  min-width: 0;
}

.dashboard-grid,
.profile-grid,
.auth-shell {
  display: grid;
  gap: 28px;
  align-items: start;
}

.eyebrow {
  margin: 0 0 10px;
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 760;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  max-width: 820px;
  margin-bottom: 16px;
  font-size: clamp(2rem, 5vw, 3.7rem);
  line-height: 1.05;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

/* Page-title: the dedicated type scale for detail/collection/list/legal page
   headings — calmer than the global h1 clamp so titles read as a record header,
   not a marketing hero (the home hero keeps its own larger .home-hero__h1). */
.page-title {
  font-size: clamp(1.75rem, 2.6vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
  max-width: 26ch;
}

h2 {
  margin-bottom: 12px;
  font-size: 1.25rem;
  line-height: 1.2;
}

h3 {
  margin-bottom: 10px;
  font-size: 1.1rem;
}

h2,
h3,
.breadcrumb,
.detail-summary,
.intro-copy {
  overflow-wrap: anywhere;
}

.intro-copy,
.detail-summary {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.05rem;
}

/* Detail header rhythm: title sits 12px above the lead, the lead 24px above the
   action bar. The lead itself is a calmer reading measure than .intro-copy. */
.detail-main h1 {
  margin-bottom: var(--space-3);
}

.detail-summary {
  margin-bottom: var(--space-5);
  max-width: 65ch;
  font-size: 1.0625rem;
  line-height: 1.6;
}

/* Quiet beta notice: a compact muted aside, not a loud accent band — it informs
   without competing with the title/lead for attention. */
.beta-notice {
  max-width: 760px;
  border-left: 3px solid var(--accent-line);
  background: transparent;
  color: var(--muted);
  padding: var(--space-1) 0 var(--space-1) var(--space-3);
  font-size: 0.85rem;
}

.detail-back {
  margin: var(--space-3) 0 0;
}

/* Plain text link (e.g. "Back to directory") — accent, underline on hover. */
.text-link {
  color: var(--accent);
  font-weight: 660;
}

.text-link:hover,
.text-link:focus {
  color: var(--accent-strong);
  text-decoration: underline;
}

.trust-panel,
.filter-panel,
.settlement-card,
.task-card,
.workspace-card,
.empty-state,
.rail-panel,
.form-panel,
.field-panel {
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.trust-panel {
  display: grid;
  gap: 1px;
  overflow: hidden;
  background: var(--border);
}

.trust-panel > div,
.trust-panel > a {
  padding: 18px;
  background: var(--surface);
}

.metric-tile {
  color: var(--text);
}

.metric-tile:hover,
.metric-tile:focus {
  color: var(--accent-strong);
  text-decoration: none;
}

.metric-tile:hover .metric-label,
.metric-tile:focus .metric-label {
  color: var(--accent-strong);
}

.metric-value,
.metric-label {
  display: block;
}

.metric-value {
  font-weight: 780;
}

.metric-label {
  color: var(--muted);
  font-size: 0.9rem;
}

.filter-panel,
.detail-rail {
  position: sticky;
  top: 92px;
}

.filter-panel {
  padding: 18px;
}

.filter-panel form,
.settlement-list,
.task-list,
.rail-facts,
.source-links,
.steps-list,
.source-list,
.workspace-column,
.form-panel,
.compact-list {
  display: grid;
  gap: 14px;
}

.change-log {
  display: grid;
  gap: 10px;
  list-style: none;
  color: var(--muted);
  font-size: 0.92rem;
}

.auth-provider-button {
  justify-content: center;
  width: 100%;
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 650;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  height: 1px;
  flex: 1 1 auto;
  background: var(--border);
}

label {
  display: grid;
  gap: 6px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 650;
}

input,
select,
textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-btn);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  padding: 9px 10px;
}

textarea {
  resize: vertical;
}

.checkbox-row,
.filter-actions,
.action-bar,
.settlement-card__actions,
.badge-row,
.section-heading,
.source-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Badge-row rhythm: pills get 16px of air before the title that follows them. */
.badge-row {
  margin: 0 0 var(--space-4);
}

.checkbox-row {
  align-items: center;
}

.checkbox-row input {
  width: 18px;
  min-height: 18px;
}

.radio-list ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.radio-list li {
  margin: 0;
}

.radio-list label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  color: var(--text);
  font-weight: 620;
}

.radio-list input[type="radio"] {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: var(--r-btn);
  padding: 9px 14px;
  font-weight: 720;
  text-align: center;
}

.button:hover,
.button:focus {
  text-decoration: none;
}

.button--primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #ffffff;
  box-shadow: var(--shadow-accent);
}

.button--primary:hover,
.button--primary:focus {
  background: var(--accent-strong);
  color: #ffffff;
}

.button--secondary {
  border-color: var(--border);
  background: var(--surface);
  color: var(--accent-strong);
}

.button--disabled {
  border-color: var(--border);
  background: var(--surface-muted);
  color: var(--muted);
}

/* Micro-interactions (Indigo Paper craft pass) — all new motion is opt-in via
   prefers-reduced-motion: no-preference so reduced-motion users get none of it. */
@media (prefers-reduced-motion: no-preference) {
  .button {
    transition: transform 0.12s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.15s,
      box-shadow 0.15s, filter 0.15s;
  }

  .button:active {
    transform: translateY(1px);
  }

  .button--primary:hover,
  .button--primary:focus {
    filter: brightness(1.07);
  }

  .settlement-card,
  .task-card,
  .promo-card {
    transition: transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s,
      border-color 0.16s;
  }

  .settlement-card:hover,
  .task-card:hover,
  .promo-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
    border-color: var(--accent-line);
  }
}

/* Homepage certificate-artifact motion (opt-in only). The initial hidden state lives
   INSIDE this gate via the keyframe's 0% + `both`, so reduced-motion users (and the
   no-preference gate failing) see fully visible, static content — no flash-of-invisible. */
@media (prefers-reduced-motion: no-preference) {
  /* One-time page-load orchestration: copy → card → tiles rise in sequence. */
  @keyframes rise {
    from {
      opacity: 0;
      transform: translateY(12px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .rise {
    animation: rise 0.5s ease-out both;
  }

  .rise--copy {
    animation-delay: 0.05s;
  }

  .rise--card {
    animation-delay: 0.15s;
  }

  .rise--tiles {
    animation-delay: 0.25s;
  }

  /* Live pulse: the re-checked green dot emits a soft fading ring. */
  @keyframes home-pill-pulse {
    0% {
      box-shadow: 0 0 0 0 rgb(19 111 70 / 35%);
    }
    100% {
      box-shadow: 0 0 0 6px rgb(19 111 70 / 0%);
    }
  }

  .home-receipt__row .home-pill__dot {
    animation: home-pill-pulse 2.4s ease-out infinite;
  }
}

.section-heading {
  align-items: end;
  justify-content: space-between;
}

.section-heading p {
  margin-bottom: 12px;
  color: var(--muted);
}

.section-heading__lead {
  min-width: 0;
}

.section-heading__lead .page-title,
.section-heading__lead .section-heading__title {
  margin-bottom: 0;
}

/* Result count: muted mono, right-aligned, baseline-matched with the heading. */
.section-heading__count {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 0.9rem;
  text-align: right;
  white-space: nowrap;
}

.settlement-card,
.task-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
  padding: 20px;
}

/* Settlement-card internal rhythm (premium pass): roomier padding, and a tuned
   stack — pills 12px above the title, title 8px above the description, the
   description 12px above the provenance line, the fact-grid 16px below it. */
.settlement-card {
  padding: var(--space-5);
}

.settlement-card .badge-row {
  margin-bottom: var(--space-3);
}

.settlement-card__main h3 {
  margin-bottom: var(--space-2);
}

.settlement-card__main h3 + p {
  margin-bottom: var(--space-3);
}

.settlement-card .card-provenance {
  margin-top: 0;
}

.settlement-list,
.task-list,
.settlement-card__main,
.task-card__main,
.task-card__actions {
  min-width: 0;
}

.settlement-card p,
.task-card p,
.workspace-card p {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.workspace-card__note {
  margin: 14px 0 0;
  font-size: 0.94rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border: 1px solid oklch(0.52 0.15 266 / 20%);
  border-radius: 999px;
  background: oklch(0.52 0.15 266 / 8%);
  color: var(--accent-strong);
  padding: 3px 12px;
  font-size: 0.78rem;
  font-weight: 760;
}

.badge--neutral {
  border-color: var(--border);
  background: var(--surface-muted);
  color: var(--text);
}

.badge--verified {
  border-color: rgb(19 111 70 / 25%);
  background: rgb(19 111 70 / 10%);
  color: var(--verified);
}

.badge--warning {
  border-color: rgb(138 90 0 / 28%);
  background: rgb(138 90 0 / 10%);
  color: var(--warning-strong);
}

.fact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: var(--space-4) 0 0;
}

.fact-grid--wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  text-transform: uppercase;
}

dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
  font-weight: 650;
}

/* Mono-numerics (Indigo Paper "receipt" aesthetic): SHORT figures only —
   dates, amounts, case numbers, counts. Sentences stay in the UI font, so the
   mono class is applied per-cell in the templates (e.g. the deadline/last-checked
   values) rather than blanket-matching every `dd`. Value cells at body size get a
   0.94em compensation (the wider mono face then visually matches surrounding UI
   text); the large display figures keep their own explicit size. */
.mono,
.metric-value,
.home-metrics__line strong {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  font-size: 0.94em;
}

.settlement-card__actions,
.task-card__actions {
  align-content: start;
}

.settlement-card__actions form,
.settlement-card__actions .button,
.task-card__actions form,
.task-card__actions .button,
.action-bar form {
  width: 100%;
}

.task-card__actions {
  display: grid;
  gap: 10px;
}

.empty-state,
.rail-panel,
.form-panel,
.field-panel,
.workspace-card {
  padding: 22px;
}

.form-panel--wide {
  max-width: 720px;
}

.field-panel {
  display: grid;
  gap: 10px;
  margin: 0;
}

.field-panel legend {
  padding: 0 6px;
  color: var(--text);
  font-weight: 760;
}

.message-stack {
  display: grid;
  gap: 8px;
  padding-top: 16px;
}

/* Branded error pages (404): recovery links for users and crawlers. */
.error-page {
  max-width: 640px;
}

.error-page__links {
  margin-top: 24px;
}

.error-page__links ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.error-page__links a {
  font-weight: 640;
}

.message {
  margin: 0;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
  padding: 10px 12px;
}

.message--success {
  border-color: rgb(19 111 70 / 25%);
  background: rgb(19 111 70 / 9%);
  color: var(--verified);
}

.message--error {
  border-color: rgb(159 45 32 / 25%);
  background: rgb(159 45 32 / 9%);
  color: #9f2d20;
}

.workspace-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
}

.workspace-card__actions {
  display: grid;
  align-content: start;
  gap: 10px;
}

.compact-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.compact-list li {
  display: grid;
  gap: 4px;
  min-width: 0;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}

.compact-list a,
.compact-list span,
.compact-list strong,
.source-links a {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.compact-list span {
  color: var(--muted);
  font-size: 0.9rem;
}

.compact-list strong {
  color: var(--text);
  font-size: 0.92rem;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: var(--space-4);
  color: var(--muted);
  font-size: 0.9rem;
}

.breadcrumb > * {
  max-width: 100%;
}

.detail-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.detail-section--disclaimer,
.notice-copy,
.action-context {
  color: var(--muted);
}

.notice-copy,
.action-context {
  font-size: 0.94rem;
}

.action-context {
  max-width: 760px;
  margin: 12px 0 0;
}

.action-context--no_public_claim,
.action-context--automatic_refund {
  border-left: 4px solid var(--verified);
  border-radius: 6px;
  background: rgb(19 111 70 / 8%);
  color: #0f5f3d;
  padding: 10px 12px;
}

.caveat--pending-approval {
  max-width: 760px;
  margin: 12px 0 0;
  padding: 12px 14px;
  border-left: 4px solid var(--warning);
  border-radius: 6px;
  background: rgb(138 90 0 / 8%);
  color: var(--warning-strong);
  font-size: 0.94rem;
  font-weight: 600;
}

.steps-list {
  padding-left: 22px;
}

.source-list {
  padding: 0;
  list-style: none;
}

.source-list li {
  min-width: 0;
  justify-content: space-between;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
  padding: 12px;
}

.source-list a {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* Verified-source cards (ADR-088): premium per-field provenance. Named authority +
   date + a confidence bar + the source quote -- never our internal evidence URL. */
.verified-source-list {
  display: grid;
  gap: 14px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.verified-source {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  padding: 16px 18px;
  box-shadow: var(--shadow-sm);
}

.verified-source__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
}

.verified-source__label {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 760;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.verified-source__value {
  margin: 0;
  color: var(--text);
  overflow-wrap: anywhere;
  font-size: 1.02rem;
  font-weight: 660;
}

.verified-source__prov {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.verified-source__shield {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgb(19 111 70 / 12%);
  color: var(--verified);
  font-size: 0.72rem;
  font-weight: 800;
}

.confidence-bar {
  position: relative;
  height: 6px;
  margin: 12px 0 0;
  border-radius: 999px;
  background: var(--surface-muted);
  overflow: hidden;
}

.confidence-bar__fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--verified);
}

.verified-source__quote {
  margin: 12px 0 0;
  border-left: 3px solid rgb(19 111 70 / 35%);
  color: var(--muted);
  padding-left: 12px;
  font-size: 0.9rem;
  font-style: italic;
  overflow-wrap: anywhere;
}

/* The verified tier badge: the green verified variant carrying the tier word. */
.badge--tier {
  gap: 5px;
  letter-spacing: 0.01em;
}

/* Compact provenance-density line on catalog cards (Task 6).
   Muted, small, with a tiny green check accent — never links to evidence URLs. */
.card-provenance {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.card-provenance__check {
  color: var(--verified);
  font-weight: 760;
  font-size: 0.78rem;
  margin-right: 2px;
}

.card-provenance a {
  color: var(--accent-strong);
  text-decoration: none;
  font-weight: 660;
}

.card-provenance a:hover {
  text-decoration: underline;
}

/* Internal-linking blocks for the programmatic collection pages: the catalog
   "Browse by category" footer and the detail-rail "Browse more" panel. */
.browse-collections {
  margin-top: 28px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface-muted);
}

.browse-collections h2 {
  margin: 0 0 12px;
  font-size: 1rem;
  color: var(--accent-strong);
}

.browse-collections__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.browse-collections__list a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--accent-strong);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
}

.browse-collections__list a:hover {
  border-color: var(--accent);
}

.browse-collections__count {
  color: var(--muted);
  font-weight: 600;
  font-size: 0.78rem;
}

.rail-browse {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}

.rail-browse a {
  color: var(--accent-strong);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
}

.rail-browse a:hover {
  text-decoration: underline;
}

/* "Where to act" -- the destination block, visually distinct from the evidence
   section. Accent-tinted surface so it reads as "where you go", not "how we checked". */
.detail-act {
  margin-top: 24px;
  border: 1px solid oklch(0.52 0.15 266 / 22%);
  border-radius: 10px;
  background: oklch(0.52 0.15 266 / 5%);
  padding: 22px 24px;
}

.detail-act h2 {
  margin-top: 0;
}

.detail-act__lead {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
}

.detail-act__cta {
  margin-top: 16px;
}

.detail-act__message {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.detail-act__site {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.source-links__listed {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.legal-hero {
  display: grid;
  gap: 8px;
}

.legal-updated {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.legal-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.legal-toc {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  padding: 12px;
  box-shadow: var(--shadow);
}

.legal-toc a {
  border-radius: 6px;
  color: var(--muted);
  padding: 8px 10px;
  font-size: 0.92rem;
}

.legal-toc a:hover,
.legal-toc a:focus {
  background: var(--surface-muted);
  color: var(--accent-strong);
  text-decoration: none;
}

.legal-main {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.legal-section {
  padding: 28px;
}

.legal-section + .legal-section {
  border-top: 1px solid var(--border);
}

.legal-section p {
  max-width: 820px;
  color: var(--muted);
}

.legal-section p:last-child,
.legal-list {
  margin-bottom: 0;
}

.legal-list {
  display: grid;
  gap: 10px;
  color: var(--muted);
  padding-left: 22px;
}

.detail-rail {
  display: grid;
  gap: 16px;
}

.rail-facts {
  margin: 0;
}

.source-links {
  margin-top: 18px;
}

.source-links a {
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px;
}

.site-footer {
  border-top: 1px solid var(--border);
  padding: 28px 0;
  color: var(--muted);
  background: var(--surface);
  font-size: 0.92rem;
}

.site-footer__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px 24px;
  align-items: flex-start;
}

.site-footer p {
  max-width: 760px;
  margin: 0;
}

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 16px;
  min-width: 220px;
}

.site-footer__nav a {
  color: var(--muted);
}

.footer-citation {
  flex-basis: 100%;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.8rem;
  opacity: 0.8;
}

@media (max-width: 1024px) {
  .intro-grid,
  .content-grid,
  .detail-grid,
  .dashboard-grid,
  .profile-grid,
  .auth-shell,
  .legal-layout,
  .settlement-card,
  .task-card,
  .workspace-card {
    grid-template-columns: 1fr;
  }

  .filter-panel,
  .detail-rail,
  .legal-toc {
    position: static;
  }

  .settlement-card__actions .button,
  .task-card__actions .button {
    width: auto;
  }
}

@media (max-width: 640px) {
  .shell {
    width: min(100% - 24px, 1180px);
  }

  .site-header__inner {
    align-items: flex-start;
    flex-direction: column;
    padding: 14px 0;
  }

  .top-nav {
    justify-content: flex-start;
  }

  .legal-section {
    padding: 20px;
  }

  .site-footer__inner {
    flex-direction: column;
  }

  .site-footer__nav {
    justify-content: flex-start;
    min-width: 0;
  }

  h1 {
    font-size: 2rem;
  }

  .fact-grid,
  .fact-grid--wide {
    grid-template-columns: 1fr;
  }

  .section-heading,
  .source-list li,
  .verified-source__head {
    align-items: flex-start;
    flex-direction: column;
  }

  .button,
  .action-bar .button,
  .filter-actions .button,
  .task-card__actions .button,
  .settlement-card__actions .button {
    width: 100%;
  }
}

/* ===================================================================
   Landing page (home.html) — Task 9. The design/landing prototype is a
   COMPOSITION reference only; this is rendered entirely in the live teal
   tokens above (no indigo, no Google Fonts). Components are namespaced
   `home-*` and reuse .button/.badge/.shell/.eyebrow/.settlement-card.
   =================================================================== */

.home {
  padding-bottom: 8px;
}

.home-band {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.home-section {
  padding: 72px 0;
}

.home-section__head {
  max-width: 680px;
  margin: 0 0 36px;
}

.home-section__head--row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  max-width: none;
}

.home-h2 {
  margin: 0;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  line-height: 1.12;
  letter-spacing: -0.01em;
}

/* ── pill (eyebrow chip) ─────────────────────────────────────────── */
.home-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 24px;
  border: 1px solid rgb(19 111 70 / 25%);
  border-radius: 999px;
  background: rgb(19 111 70 / 8%);
  color: var(--verified);
  padding: 6px 13px;
  font-size: 0.82rem;
  font-weight: 720;
}

.home-pill__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--verified);
  flex-shrink: 0;
}

/* ── hero ────────────────────────────────────────────────────────── */
.home-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
  padding-top: 64px;
  padding-bottom: 64px;
}

/* Faint ledger grid atmosphere on a behind-content layer — masked to fade at the
   edges so it never reads as a hard box, and kept subtler than the hero content. */
.home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(0deg, rgb(28 26 22 / 2.5%) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(90deg, rgb(28 26 22 / 2.5%) 0 1px, transparent 1px 28px);
  -webkit-mask-image: radial-gradient(ellipse 80% 90% at 50% 40%, black 50%, transparent 95%);
  mask-image: radial-gradient(ellipse 80% 90% at 50% 40%, black 50%, transparent 95%);
}

/* Hero content sits above the ledger grid. */
.home-hero > * {
  position: relative;
  z-index: 1;
}

.home-hero__copy {
  min-width: 0;
}

.home-hero__h1 {
  margin: 0 0 22px;
  max-width: 16ch;
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

/* Brand period — the closing dot of the headline carries the indigo accent. */
.accent-dot {
  color: var(--accent);
}

.home-hero__lead {
  max-width: 50ch;
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 1.12rem;
  line-height: 1.6;
}

.home-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.home-offer {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-offer li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 640;
}

.home-offer__check {
  color: var(--verified);
  font-weight: 800;
}

/* ── verified-cheque hero card (receipt) ─────────────────────────────
   Reading order (AIDA): money → urgency → proof → action. A category pill +
   amber countdown chip sit up top; the payout is the indigo anchor; a dashed
   tear separates the money block from the proof rows and full-width CTA. */
/* Certificate / ledger artifact: warm paper sheen + a crisp ring and layered shadow
   (ring → top light → ambient → contact). The 1px ring replaces the border so the
   radius stays clean; a faint brand watermark sits behind the content (::after). */
.home-receipt {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--r-card);
  background: linear-gradient(180deg, var(--surface-raise), var(--surface));
  padding: 22px;
  box-shadow:
    0 0 0 1px var(--border),
    inset 0 1px 0 rgb(255 255 255 / 85%),
    var(--shadow-lg),
    0 2px 4px rgb(28 26 22 / 6%);
}

/* Ultra-faint certificate watermark, bottom-right, behind all content. */
.home-receipt::after {
  content: "";
  position: absolute;
  right: -14px;
  bottom: -14px;
  width: 120px;
  height: 120px;
  background: url(../img/settlesignal-mark.svg) no-repeat center / contain;
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
}

/* Card content sits above the watermark. */
.home-receipt > * {
  position: relative;
  z-index: 1;
}

.home-receipt__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

/* Amber urgency chip (top-right): warning-soft bg, warning-strong text (WCAG AA). */
.home-receipt__countdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 4px 10px;
  background: var(--warning-soft);
  color: var(--warning-strong);
  font-size: 0.76rem;
  font-weight: 720;
  white-space: nowrap;
}

.home-receipt__title {
  margin: 0 0 16px;
  font-size: 1.32rem;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.home-receipt__klabel {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* THE ANCHOR: the money, in big mono indigo. The qualifier ("UP TO") and the
   "FUND" suffix render small above/after the figure so the dollar amount reads alone. */
.home-receipt__payout {
  margin-top: 3px;
  font-size: clamp(2rem, 5.5vw, 2.6rem);
  font-weight: 760;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--accent-strong);
  overflow-wrap: anywhere;
}

.home-receipt__qualifier {
  display: block;
  margin-bottom: 2px;
  color: var(--muted);
  font-family: var(--font-ui);
  font-feature-settings: normal;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.1;
  text-transform: uppercase;
}

/* The "fund" suffix sits inline-small right after the amount ("$1.6M" + "FUND"). */
.home-receipt__qualifier--suffix {
  display: inline;
  margin: 0 0 0 6px;
}

/* Sentence payout (not a clean amount): drop the mono "receipt" face and shrink —
   mono prose reads as broken; the UI font at a calmer size sits better. */
.home-receipt__payout--text {
  font-family: var(--font-ui);
  font-feature-settings: normal;
  font-variant-numeric: normal;
  font-size: 1.1rem;
  font-weight: 680;
  line-height: 1.3;
  color: var(--text);
}

.home-receipt__closes {
  margin-top: 6px;
  color: var(--muted);
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  font-size: 0.8rem;
  font-weight: 640;
}

/* Dashed receipt tear separating the money block from the proof block. */
.home-receipt__tear {
  margin: 18px 0;
  border-top: 2px dashed var(--border);
}

.home-receipt__verified {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: var(--verified);
  font-size: 0.92rem;
  font-weight: 700;
}

/* Verification seal: the check stamped into a soft 26px disc with a verified ring
   and a slight inner shadow, so the tier reads like a notary mark, not a list bullet. */
.home-receipt__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1.5px solid color-mix(in oklch, var(--verified) 45%, transparent);
  background: var(--verified-soft);
  box-shadow: inset 0 1px 2px rgb(28 26 22 / 8%);
  color: var(--verified);
  font-size: 0.82rem;
  font-weight: 800;
}

/* THE MOAT line: cited-field count + evidence flavor. */
.home-receipt__moat {
  margin: 4px 0 16px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 600;
}

.home-receipt__rows {
  margin: 0 0 18px;
}

/* Ledger rows: dt | dotted leader | dd. The dotted leader (a flex-1 baseline rule)
   carries the visual separation, so the hairline top-borders are dropped. */
.home-receipt__row {
  display: flex;
  align-items: baseline;
  gap: 0;
  padding: 7px 0;
  font-size: 0.82rem;
}

/* Dotted leader aligned to the text baseline (lifted off the bottom of the row). */
.home-receipt__leader {
  flex: 1 1 auto;
  min-width: 24px;
  margin: 0 8px 5px;
  border-bottom: 2px dotted var(--border);
}

.home-receipt__row dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  /* Uppercase ledger labels — consistent with POTENTIAL PAYMENT / the microline,
     and hyphenated labels ("RE-CHECKED") read correctly in caps. */
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.home-receipt__row dd {
  margin: 0;
  flex: 0 1 auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text);
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Full-width CTA: accent-soft fill (not a ghost button) → accent fill on hover. */
.home-receipt__cta {
  width: 100%;
  border-color: var(--accent-line);
  background: var(--accent-soft);
  color: var(--accent-strong);
}

.home-receipt__cta:hover,
.home-receipt__cta:focus {
  border-color: var(--accent-strong);
  background: var(--accent-strong);
  color: #ffffff;
}

/* Tiny mono microline footer (the "official record stub"). */
.home-receipt__micro {
  margin: 12px 0 0;
  color: var(--muted-3);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  overflow-wrap: anywhere;
}

/* ── industry data (static quiet band) ───────────────────────────── */
.home-industry-band {
  background: var(--surface-muted);
  padding: 40px 0;
}

.home-industry__note {
  margin: 0 0 20px;
  text-align: center;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 720;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.industry-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.industry-stat {
  text-align: center;
}

.industry-stat__num {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: var(--accent-strong);
  font-size: 1.9rem;
  font-weight: 760;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.industry-stat__lbl {
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.industry-stat__src {
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.7;
}

/* ── our trust metrics band (stat tiles) ─────────────────────────── */
.home-metrics {
  padding: 44px 0;
  text-align: center;
}

.home-metrics .eyebrow {
  margin-bottom: 18px;
}

.stat-tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.stat-tile {
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  padding: 20px 16px;
}

.stat-tile__value {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: var(--text);
  font-size: 1.8rem;
  font-weight: 760;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.stat-tile__label {
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 600;
}

/* ── how it works ────────────────────────────────────────────────── */
.home-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.home-step {
  position: relative;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface-muted);
  padding: 26px;
  overflow: hidden;
}

/* Editorial ghost numeral: large hollow figure rendered as its own block ABOVE the
   step heading — never overlapping body copy. Solid soft-indigo fallback; @supports
   upgrades to a transparent-stroke outline. */
.step-num {
  display: block;
  margin: 0 0 var(--space-3);
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  color: var(--accent-soft);
  pointer-events: none;
  user-select: none;
}

@supports (-webkit-text-stroke: 1px black) {
  .step-num {
    color: transparent;
    -webkit-text-stroke: 1.5px var(--accent-line);
  }
}

.home-step h3 {
  margin: 0 0 8px;
  font-size: 1.12rem;
}

.home-step p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* ── featured open settlements (promo cards) ─────────────────────── */
.home-featured {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.promo-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  padding: 22px;
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: inherit;
}

.promo-card:hover,
.promo-card:focus {
  text-decoration: none;
}

.promo-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.promo-card__urgency {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 999px;
  background: var(--warning-soft);
  color: var(--warning-strong);
  padding: 4px 10px;
  font-size: 0.74rem;
  font-weight: 720;
  white-space: nowrap;
}

.promo-card__title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.25;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.promo-card__money {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: var(--accent-strong);
  font-size: 1.35rem;
  font-weight: 760;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.promo-card__money--date {
  font-family: var(--font-ui);
  font-size: 1.05rem;
  font-weight: 700;
}

.promo-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  margin-top: auto;
}

.promo-card__closes {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  font-size: 0.82rem;
}

.promo-card__tier {
  color: var(--verified);
  font-size: 0.82rem;
  font-weight: 680;
}

/* ── trust pillars ───────────────────────────────────────────────── */
.home-pillars {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.home-pillar {
  min-width: 0;
}

.home-pillar h3 {
  margin: 0 0 8px;
  font-size: 1.02rem;
}

.home-pillar p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.6;
}

/* ── FAQ disclosure ──────────────────────────────────────────────── */
.home-faq-section {
  max-width: 880px;
}

.home-faq {
  border-top: 1px solid var(--border);
}

.home-faq__item {
  border-bottom: 1px solid var(--border);
}

.home-faq__item > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 4px;
  cursor: pointer;
  list-style: none;
  font-size: 1.05rem;
  font-weight: 680;
}

.home-faq__item > summary::-webkit-details-marker {
  display: none;
}

.home-faq__chev {
  color: var(--muted);
  font-size: 1.3rem;
  line-height: 1;
  transition: transform 0.18s ease;
}

.home-faq__item[open] .home-faq__chev {
  transform: rotate(90deg);
}

.home-faq__item p {
  margin: 0 4px 16px;
  max-width: 720px;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.62;
}

/* ── guide + detail FAQ disclosures (mirror home FAQ) ────────────── */
.guide-faq,
.detail-faq__list {
  border-top: 1px solid var(--border);
}

.guide-faq__item,
.detail-faq__item {
  border-bottom: 1px solid var(--border);
}

.guide-faq__item > summary,
.detail-faq__item > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 4px;
  cursor: pointer;
  list-style: none;
  font-weight: 660;
}

.guide-faq__item > summary::-webkit-details-marker,
.detail-faq__item > summary::-webkit-details-marker {
  display: none;
}

.guide-faq__chev,
.detail-faq__chev {
  color: var(--muted);
  font-size: 1.25rem;
  line-height: 1;
  transition: transform 0.18s ease;
}

.guide-faq__item[open] .guide-faq__chev,
.detail-faq__item[open] .detail-faq__chev {
  transform: rotate(90deg);
}

.guide-faq__item p,
.detail-faq__item p {
  margin: 0 4px 16px;
  max-width: 720px;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.62;
}

.detail-section__answer {
  font-weight: 600;
}

/* ── final CTA ───────────────────────────────────────────────────── */
.home-cta {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  background: var(--accent-strong);
  padding: 56px 40px;
  text-align: center;
  color: #ffffff;
}

.home-cta__h2 {
  margin: 0 0 12px;
  color: #ffffff;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  line-height: 1.12;
}

.home-cta__p {
  margin: 0 auto 24px;
  max-width: 52ch;
  color: rgb(255 255 255 / 78%);
  font-size: 1.05rem;
  line-height: 1.6;
}

.home-cta .button--primary {
  border-color: #ffffff;
  background: #ffffff;
  color: var(--accent-strong);
}

.home-cta .button--primary:hover,
.home-cta .button--primary:focus {
  background: rgb(255 255 255 / 92%);
  color: var(--accent-strong);
}

/* ── footer category quick-links ─────────────────────────────────── */
.home-quicklinks {
  padding: 8px 0 40px;
}

.home-quicklinks .eyebrow {
  margin-bottom: 12px;
}

@media (max-width: 900px) {
  .stat-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-featured {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .home-hero {
    grid-template-columns: 1fr;
    gap: 36px;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .home-receipt {
    max-width: 460px;
  }

  .home-section {
    padding: 52px 0;
  }

  .home-steps,
  .home-pillars {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .industry-stats {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

@media (max-width: 540px) {
  .home-pillars,
  .stat-tiles {
    grid-template-columns: 1fr;
  }
}

/* ── Partners (B2B data-licensing pitch) ───────────────────────────────── */
.partners-hero__inner {
  max-width: 880px;
}

.partners-hero__title {
  max-width: 18ch;
}

.partners-hero__lead {
  max-width: 60ch;
}

.partners-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.partners-stats {
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.partners-stats__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.partners-stat {
  flex: 1 1 180px;
  padding: 18px 20px;
  border: 1px solid var(--border-soft);
  border-radius: var(--r-card);
  background: var(--surface-raise);
  box-shadow: var(--shadow-sm);
}

.partners-stat__value {
  display: block;
  font-family: var(--font-mono);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--accent-strong);
  font-feature-settings: "tnum" 1;
}

.partners-stat__label {
  display: block;
  margin-top: 6px;
  font-size: 0.85rem;
  color: var(--muted);
}

.partners-section {
  border-bottom: 1px solid var(--border-soft);
}

.partners-section--alt {
  background: var(--surface-muted);
}

.partners-section__title {
  max-width: 28ch;
  margin-bottom: 28px;
}

.partners-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.partners-card {
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.partners-card__title {
  margin-bottom: 10px;
  font-size: 1.1rem;
  color: var(--accent-strong);
}

.partners-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.partners-get-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.partners-get__heading {
  margin-bottom: 12px;
  font-size: 0.8rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--accent);
}

.partners-list {
  margin: 0;
  padding-left: 1.1em;
  color: var(--muted);
}

.partners-list li {
  margin-bottom: 8px;
}

.partners-note {
  max-width: 70ch;
  margin-top: 28px;
  padding: 16px 20px;
  border-left: 4px solid var(--accent);
  border-radius: 0 var(--r-card) var(--r-card) 0;
  background: var(--accent-soft);
  color: var(--muted);
  font-size: 0.95rem;
}

.partners-note strong {
  color: var(--accent-strong);
}

.partners-sample__intro {
  max-width: 70ch;
  color: var(--muted);
}

/* Receipt-style code block: raised surface, soft border, mono numerics. */
.partners-pre {
  margin: 16px 0 0;
  padding: 18px 20px;
  border: 1px solid var(--border-soft);
  border-radius: var(--r-card);
  background: var(--surface-raise);
  box-shadow: var(--shadow-sm);
  overflow-x: auto;
  font-family: var(--font-mono);
  font-size: 0.85em;
  line-height: 1.6;
  color: var(--text);
}

.partners-pre code {
  font-family: inherit;
  background: none;
  padding: 0;
}

.partners-sample__download {
  margin-top: 18px;
}

.partners-endpoints {
  margin: 0;
  padding: 0;
  list-style: none;
}

.partners-endpoints li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-soft);
  color: var(--muted);
  font-size: 0.95rem;
}

.partners-endpoints li:last-child {
  border-bottom: none;
}

.partners-endpoints code {
  font-family: var(--font-mono);
  font-size: 0.88em;
  color: var(--accent-strong);
}

.partners-endpoint__verb {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.partners-cta {
  background: var(--surface);
}

.partners-cta__inner {
  max-width: 640px;
  text-align: center;
}

.partners-cta__lead {
  max-width: 56ch;
  margin: 0 auto 24px;
  color: var(--muted);
}

@media (max-width: 860px) {
  .partners-card-grid {
    grid-template-columns: 1fr;
  }

  .partners-get-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
