/* home-diagnostics.css — report, finder, and mention styling.
 * Extracted from nrlc-functional.css so the editorial stylesheet keeps
 * ownership of global typography and resets. Do not add element-level
 * (h1/p/body) rules here; they fight nrlc-editorial-system.css.
 */

/* Legacy orb/glow elements that the editorial hero does not use. The aurora
 * backdrop (.home-hero__backdrop*) is deliberately NOT in this list: it is owned
 * by home-landing.css, and suppressing it here erased the hero artwork.
 *
 * .editorial-card::before is re-suppressed separately below rather than hidden
 * here, because home-editorial.css gives every card a blue+magenta radial wash
 * that reads as decorative clutter on an otherwise flat, washed surface. */
.nrlc-hero::before, .nrlc-final-cta__orb, .home-cta-card__orb, .home-orb-dot, .nrlc-hero-orb, .nrlc-orb-accent {
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  display: none !important;
}

.nrlc-container, .home-container, .home-market-layer__shell, .site-footer__content {
  width: min(100% - (var(--gutter) * 2), var(--container));
  max-width: var(--container);
  margin-inline: auto;
  box-sizing: border-box;
}

.nrlc-section, .home-act, .home-market-layer, .home-below-fold {
  padding-block: var(--section-y);
  background: transparent;
}

.nrlc-section-header, .home-section__header, .nrlc-section > header {
  max-width: 46rem;
  /* Gap to the content below. Was 3rem (51px), which left a section heading
     drifting away from the cards it introduces. */
  margin-bottom: var(--space-6);
}

/* `.home-hero__copy` is excluded: home-landing.css owns the hero copy scale
 * (18px, 760px measure). The lead size here is for the legacy/other shells. */
.nrlc-lede, .home-section__body, .nrlc-hero__lede, .home-kb-card__body, .home-market-layer__intro, .home-market-layer__summary {
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--c-ink-soft);
  max-width: 46rem;
}

.nrlc-eyebrow, .home-eyebrow, .home-card__pill, .home-market-chip__label, .cea-evidence__title, .nrlc-hero__eyebrow, .home-hero__eyebrow {
  display: none !important;
}

/* Flat card surfaces. home-editorial.css layers a blue+magenta radial wash on
 * every .editorial-card via ::before; on a washed, near-white surface that reads
 * as decoration. Suppressed here so cards sit flat, matching the washed system. */
.editorial-card::before {
  display: none !important;
}

.nrlc-card, .editorial-card, .home-kb-card, .home-market-card, .home-market-chip, .home-term-card, .nrlc-compare__col, .home-compare__col, .home-faq__item, .nrlc-faq details, .cea-evidence {
  background: var(--c-surface);
  background-image: none;
  /* Was `1px solid var(--c-line)` at `--radius-lg` (24px). Homepage sections render
     29 of these boxes; the hairline + heavy corner on every one read as clutter.
     Surface contrast alone separates the card from the page, so the outline is
     dropped and the corner squared down to the small step. */
  border: 0;
  border-radius: var(--radius-sm);
  /* Flat surfaces: no resting elevation. */
  box-shadow: none;
  padding: clamp(1.5rem, 2.5vw, 2rem);
}

.nrlc-card:hover, .editorial-card:hover, .home-market-card:hover, .home-kb-card:hover, .home-term-card:hover, .home-faq__item:hover, .nrlc-faq details:hover {
  transform: none;
  box-shadow: none;
}

.nrlc-card__body, .home-card__body, .home-kb-card__body {
  margin: 0;
  color: var(--c-muted);
  font-size: var(--fs-sm);
}

.nrlc-card-grid, .home-terminology__grid, .home-kb-grid, .home-markets-grid, .home-compare, .nrlc-compare {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.nrlc-card-grid, .home-terminology__grid, .home-kb-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.home-compare, .nrlc-compare {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

@media (min-width: 768px) {
.home-landing .nrlc-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Legacy hero shells. `.home-hero` is intentionally excluded: home-landing.css
 * owns it as a full-viewport flex column, and this rule (loading later) was
 * overriding it with display:block / min-height:0 / block padding, which collapsed
 * the hero, hid the aurora backdrop, and broke the absolutely positioned cards. */
.nrlc-hero, .nrlc-market-hero {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
  padding: clamp(7rem, 15vh, 11rem) 0 clamp(6rem, 12vh, 10rem);
  background: var(--c-bg);
}

.nrlc-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(0, 0, 0, 0.13) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 34%, #000 0%, transparent 78%);
  mask-image: radial-gradient(ellipse 70% 60% at 50% 34%, #000 0%, transparent 78%);
  pointer-events: none;
  z-index: 0;
}

.nrlc-hero .nrlc-container, .nrlc-hero__content, .nrlc-market-hero .nrlc-container {
  position: relative;
  z-index: 2;
  width: min(100% - (var(--gutter) * 2), 760px);
  max-width: 760px;
  margin-inline: auto;
  padding: 0;
  display: block;
  text-align: center;
}

/* Typography for the hero title and copy is owned by home-landing.css (serif
 * display face, clamp() scale). Only the legacy `.nrlc-hero-title` shell keeps
 * a size here; the `!important` overrides that flattened the serif are gone. */
.nrlc-hero-title {
  font-size: var(--fs-h1) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.028em !important;
  font-weight: 500 !important;
  max-width: 22ch;
  margin-inline: auto;
  color: var(--c-ink);
}

.nrlc-hero-title em {
  font-style: normal;
  color: var(--c-ink);
  background: none;
  -webkit-text-fill-color: currentColor;
}

.nrlc-hero__lede {
  margin-top: var(--space-4);
  max-width: 36rem;
  margin-inline: auto;
  font-size: var(--fs-body);
  color: var(--c-muted);
  line-height: 1.6;
}

.home-hero__eyebrow, .nrlc-hero__eyebrow {
  justify-content: center;
  margin-inline: auto;
  color: var(--c-muted);
}

.home-hero__finder {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: min(100%, 640px);
  margin: clamp(1.75rem, 3vw, 2.25rem) auto 0;
  padding: 0.4rem 0.4rem 0.4rem 1.25rem;
  background: var(--c-surface);
  /* Hairline carries a faint tint of the sphere's violet, not neutral gray. */
  border: 1px solid rgba(193, 27, 226, 0.2);
  border-radius: var(--radius-pill);
  box-shadow:
    0 1px 2px rgba(15, 15, 20, 0.04),
    0 8px 28px -12px rgba(15, 15, 20, 0.16);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}

.home-hero__finder:focus-within {
  border-color: rgba(193, 27, 226, 0.45);
  box-shadow:
    0 0 0 4px rgba(193, 27, 226, 0.12),
    0 8px 28px -12px rgba(15, 15, 20, 0.18);
}

.home-hero__finder-note {
  margin: 0.75rem auto 0;
  max-width: 34rem;
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--c-faint);
  text-align: center;
}

.home-hero__finder input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--c-ink);
  padding: 0;
}

.home-hero__finder input::placeholder { color: var(--c-faint); }

.home-hero__finder input:focus { outline: none; }

.home-hero__finder-btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  height: 40px;
  padding: 0 1.15rem;
  /* The washed fill is near-white and this button sits inside a white field,
     so the hairline is what makes it read as a button at all. */
  border: 1px solid var(--c-wash-edge);
  border-radius: var(--radius-pill);
  background: var(--c-brand-violet-wash);
  color: var(--c-on-violet-wash);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(95, 74, 98, 0.06);
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
}

.home-hero__finder-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  /* Plum-tinted gleam, not white — a white sweep vanishes on a pale fill. */
  background: linear-gradient(
    115deg,
    transparent 34%,
    rgba(95, 74, 98, 0.14) 50%,
    transparent 66%
  );
  transform: translateX(-140%);
  pointer-events: none;
}

.home-hero__finder-btn:hover::after {
  transform: translateX(140%);
  transition: transform 0.7s var(--ease);
}

.home-hero__finder-btn:hover {
  background: var(--c-brand-violet-wash-deep);
  border-color: var(--c-wash-edge-strong);
  box-shadow: 0 6px 16px -6px var(--c-violet-wash-shadow);
}

.home-hero__finder-btn:focus-visible {
  outline: 2px solid var(--c-brand-violet);
  outline-offset: 2px;
}

/* Submit signifier. Pressing Enter reloads the page with the report below the
   fold, which previously looked like nothing had happened; this gives immediate
   feedback while the request is in flight. */
.home-hero__finder-btn.is-busy {
  cursor: progress;
}

.home-hero__finder-btn.is-busy::before {
  content: "";
  flex: 0 0 auto;
  width: 0.85em;
  height: 0.85em;
  border: 1.5px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: home-finder-spin 0.7s linear infinite;
}

.home-hero__finder-btn:disabled {
  cursor: progress;
  opacity: 0.85;
}

@keyframes home-finder-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__finder-btn.is-busy::before { animation-duration: 1.6s; }
}

.home-report {
  /* The finder submits to /#home-report; the section must clear the top edge
     when the browser jumps to it after the reload. */
  scroll-margin-top: var(--space-6, 2rem);
}

.home-report__intro {
  max-width: 46rem;
  margin-bottom: var(--space-6, 2.5rem);
}

.home-report__headline {
  margin: 0.5rem 0 0;
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--c-ink);
}

.home-report__lede {
  margin-top: var(--space-4);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--c-muted);
}

.home-report__tally {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin: var(--space-5) 0 0;
  padding: 0;
  list-style: none;
}

.home-report__tally-item {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  font-size: var(--fs-sm);
  color: var(--c-muted);
}

.home-report__tally-item strong {
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.home-report__tally-item--pass strong { color: #16734a; }

.home-report__tally-item--review strong { color: #b7791f; }

.home-report__tally-item--fail strong { color: #b42318; }

.home-report__block {
  margin-top: var(--space-7, 3rem);
}

.home-report__block-title {
  margin: 0 0 var(--space-4);
  font-size: var(--fs-h3);
  letter-spacing: -0.015em;
  color: var(--c-ink);
}

.home-report__fixes {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.home-report__fix {
  display: grid;
  gap: 0.15rem;
  padding: 0.9rem 1.1rem;
  /* Amber comes through as a surface tint, not a 3px left rule. */
  background: var(--c-status-review-tint);
  border: 0;
  border-radius: var(--radius-sm);
}

.home-report__fix-group {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-faint);
}

.home-report__fix-text {
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--c-ink);
}

.home-report__groups {
  display: grid;
  gap: 1.75rem;
}

.home-report__group-title {
  margin: 0 0 0.6rem;
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--c-ink);
}

.home-report__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.4rem;
}

.home-report__check {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.9rem;
  align-items: baseline;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--c-muted);
}

.home-report__check-badge {
  justify-self: start;
  padding: 0.15rem 0.5rem;
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  font-weight: 500;
  white-space: nowrap;
  border: 1px solid currentColor;
}

.home-report__check--pass .home-report__check-badge { color: #16734a; }

.home-report__check--review .home-report__check-badge { color: #b7791f; }

.home-report__check--fail .home-report__check-badge { color: #b42318; }

.home-report__check--pass .home-report__check-text { color: var(--c-muted); }

.home-report__check--fail .home-report__check-text { color: var(--c-ink); }

.home-report__mention-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.home-report__sample-flag {
  padding: 0.2rem 0.6rem;
  border: 1px solid rgba(193, 27, 226, 0.35);
  border-radius: var(--radius-pill);
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-muted);
}

.home-report__mention-intro {
  margin: 0 0 1rem;
  max-width: 46rem;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--c-muted);
}

.home-report__mentions {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.5rem;
}

.home-report__mention {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 1.1rem;
  background: var(--c-surface);
  border: 0;
  border-radius: var(--radius-sm);
}

.home-report__mention--yes { background: var(--c-status-pass-tint); }

.home-report__mention--no { background: var(--c-status-fail-tint); }

.home-report__mention-q {
  font-size: var(--fs-sm);
  color: var(--c-ink);
}

.home-report__mention-a {
  font-size: var(--fs-sm);
  line-height: 1.5;
  /* --c-muted only reaches ~3.7:1 on the status tints; --c-ink-soft keeps the
     answer readable (≈8:1) now that the cards carry a tint instead of a rule. */
  color: var(--c-ink-soft);
}

.home-report__mention-note, .home-report__disclaimer {
  margin: 0.85rem 0 0;
  max-width: 46rem;
  font-size: var(--fs-xs);
  line-height: 1.6;
  color: var(--c-faint);
}

.home-report__mention-live {
  min-height: 1.5rem;
}

.home-report__mention-topic {
  margin: 0 0 0.35rem;
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-faint);
}

.home-report__mention-summary {
  margin: 0 0 1rem;
  max-width: 46rem;
  font-size: var(--fs-body);
  line-height: 1.55;
  color: var(--c-ink);
}

.home-report__mention-instead {
  margin: 0.85rem 0 0;
  max-width: 46rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--c-ink);
}

.home-report__disclaimer {
  margin-top: var(--space-6, 2.5rem);
}

.home-report__actions {
  margin-top: var(--space-5);
}

@media (max-width: 640px) {
.home-report__check {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

.home-hero__actions, .nrlc-cta-row, .nrlc-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
  justify-content: center;
  align-items: center;
}

.home-hero__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-6);
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--c-line);
}

.home-hero__meta-item {
  font-size: var(--fs-xs);
  color: var(--c-muted);
  letter-spacing: 0.02em;
  text-align: center;
}

.home-hero__meta-item strong {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--c-ink);
  letter-spacing: -0.01em;
  margin-bottom: 2px;
}

.home-compare__col--highlight, .nrlc-compare__col--accent {
  background: var(--c-surface);
  border-color: rgba(124, 58, 237, 0.28);
  box-shadow: none;
}

.home-compare__list, .nrlc-card__bullets {
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-compare__list li, .nrlc-card__bullets li {
  position: relative;
  padding-left: 1.15rem;
  margin-bottom: 0.5rem;
  color: var(--c-ink-soft);
  font-size: var(--fs-sm);
  line-height: 1.5;
}

.home-compare__list li:last-child, .nrlc-card__bullets li:last-child {
  margin-bottom: 0;
}

/* The 0.9rem marker rendered as a chunky 14.4px disc next to 15px text — the
   later highlight rule recoloured it but never shrank it. A 4px dot anchored to
   the first line carries the same list signal without the weight. */
.home-compare__list li::before, .nrlc-card__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-faint);
  box-shadow: none;
}

.home-compare__col--highlight .home-compare__list li::before, .nrlc-compare__col--accent .nrlc-card__bullets li::before {
  background: var(--c-on-violet-wash);
}

.nrlc-compare .nrlc-compare__col {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.nrlc-compare .nrlc-compare__col .nrlc-card__title {
  font-size: 1.0625rem !important;
  line-height: 1.2 !important;
  letter-spacing: -0.005em !important;
  /* Two-line slot. The title block (text + its own padding) is held at a fixed
     height so both column rules land on the same y even when only one title
     wraps — the two headings have very different lengths. */
  min-height: calc(2.4em + 0.55rem);
  margin: 0 0 1.15rem;
  /* The rule belongs to the heading, so it hugs the text. Previously it sat
     1rem below the text block with 1.5rem of margin under it, which left the
     line floating in the middle of the gap, attached to neither the heading
     above nor the list below. */
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--c-line-strong);
  color: var(--c-muted);
}

.nrlc-compare .nrlc-compare__col--accent .nrlc-card__title {
  border-bottom: 2px solid rgba(193, 27, 226, 0.85);
  color: var(--c-ink);
}

.nrlc-compare .nrlc-card__bullets li {
  padding-left: 1.4rem;
  margin-bottom: 0.7rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--c-ink-soft);
}

.nrlc-compare .nrlc-card__bullets li:last-child { margin-bottom: 0; }

.nrlc-compare .nrlc-card__bullets li::before {
  top: 0.55em;
  width: 5px;
  height: 5px;
  background: var(--c-faint);
  box-shadow: none;
}

.nrlc-compare .nrlc-compare__col--accent .nrlc-card__bullets li::before {
  background: var(--c-brand-violet);
}

@media (min-width: 680px) {
.nrlc-compare {
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 6vw, 5rem);
  }
.nrlc-compare .nrlc-compare__col + .nrlc-compare__col {
    padding-left: clamp(2rem, 6vw, 5rem);
    border-left: 1px solid var(--c-line);
  }
}

@media (max-width: 679px) {
.nrlc-compare { grid-template-columns: 1fr; }
.nrlc-compare .nrlc-compare__col + .nrlc-compare__col {
    padding-top: var(--space-6);
    border-top: 1px solid var(--c-line);
  }
}

.home-faq, .nrlc-faq {
  max-width: 54rem;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.home-faq__item, .nrlc-faq details { padding: 0; background: var(--c-surface); }

.home-faq__question, .nrlc-faq summary {
  padding: 1.35rem 3.5rem 1.35rem 1.6rem;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--c-ink);
  cursor: pointer;
  list-style: none;
  position: relative;
}

.home-faq__question::-webkit-details-marker, .nrlc-faq summary::-webkit-details-marker { display: none; }

.home-faq__question::after, .nrlc-faq summary::after {
  content: "+";
  position: absolute;
  right: 1.6rem;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 300;
  font-size: 1.6rem;
  line-height: 1;
  color: var(--c-accent);
}

.home-faq__item[open] .home-faq__question::after, .nrlc-faq details[open] summary::after { content: "−"; }

.home-faq__answer, .nrlc-faq details > div, .nrlc-faq details > p { padding: 0 1.6rem 1.5rem; }

.nrlc-final-cta, .home-cta-card {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: clamp(3rem, 6vw, 5rem);
  border-radius: var(--radius-xl);
  background: var(--c-dark);
  background-image: none;
  color: var(--c-dark-ink);
  text-align: left;
  box-shadow: none;
}

.nrlc-final-cta::before, .home-cta-card::before {
  content: none;
}

.nrlc-final-cta__content, .home-cta-card__content { position: relative; z-index: 1; max-width: 44rem; }

.nrlc-final-cta__title, .home-cta-card__title { color: var(--c-dark-ink) !important; margin-bottom: var(--space-4); }

.nrlc-final-cta__body, .home-cta-card__body {
  color: rgba(250, 249, 247, 0.76);
  font-size: var(--fs-lead);
  margin: 0 0 var(--space-5);
}

.nrlc-final-cta__actions, .home-cta-card__actions { justify-content: flex-start; margin-top: var(--space-6); }

.nrlc-final-cta .nrlc-button-primary {
  background: var(--c-surface);
  color: var(--c-ink);
  box-shadow: none;
}

.nrlc-final-cta .nrlc-button-primary:hover { background: #ffffff; color: var(--c-ink); }

.nrlc-final-cta .nrlc-button-secondary {
  background: rgba(255, 255, 255, 0.08);
  color: var(--c-dark-ink);
  border-color: rgba(255, 255, 255, 0.3);
}

.nrlc-final-cta .nrlc-button-secondary:hover {
  background: rgba(255, 255, 255, 0.16);
  color: var(--c-dark-ink);
  border-color: rgba(255, 255, 255, 0.5);
}

.nrlc-link-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.nrlc-link-chips a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.6rem 1.15rem;
  border-radius: var(--radius-pill);
  border: 1px solid var(--c-line-strong);
  background: var(--c-surface);
  text-decoration: none;
  color: var(--c-ink);
  font-size: var(--fs-sm);
  font-weight: 500;
  box-shadow: none;
  transition: border-color 0.2s var(--ease);
}

.nrlc-link-chips a:hover {
  border-color: var(--c-ink);
  box-shadow: none;
}

.nrlc-link-chips a::after { content: "→"; color: var(--c-accent); font-size: 0.9em; }

.nrlc-article-body .content-block, .nrlc-market-prose .content-block, .nrlc-service-prose .content-block {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.nrlc-page input[type="text"], .nrlc-page input[type="email"], .nrlc-page input[type="tel"], .nrlc-page input[type="url"], .nrlc-page input[type="search"], .nrlc-page textarea, .nrlc-form input, .nrlc-form textarea, .cea-diag-form input, .jpc-input input, .jpc-input textarea {
  width: 100%;
  background: var(--c-surface);
  border: 1px solid var(--c-line-strong);
  border-radius: var(--radius-sm);
  padding: 0.8rem 1rem;
  color: var(--c-ink);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}

.nrlc-page input::placeholder, .nrlc-form input::placeholder, .nrlc-page textarea::placeholder { color: var(--c-faint); }

.nrlc-page input:focus, .nrlc-page textarea:focus, .nrlc-form input:focus, .nrlc-form textarea:focus {
  outline: none;
  border-color: var(--c-accent);
  box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.nrlc-page label, .nrlc-form label {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--c-ink);
}

.nrlc-prose, .nrlc-article-body {
  max-width: min(100% - (var(--gutter) * 2), 720px);
  color: var(--c-ink-soft);
  font-size: 1.125rem;
  line-height: 1.75;
}

.nrlc-prose h2, .nrlc-prose h3, .nrlc-article-body h2, .nrlc-article-body h3, .nrlc-market-prose h2, .nrlc-service-prose h2 { font-family: var(--font-display) !important; }

.nrlc-prose p, .nrlc-article-body p, .nrlc-market-prose p, .nrlc-service-prose p { color: var(--c-ink-soft); }

.nrlc-article-body a, .nrlc-market-prose a, .nrlc-service-prose a {
  color: var(--c-accent);
  border-bottom: 1px solid rgba(124, 58, 237, 0.32);
}

.nrlc-article-body blockquote, .nrlc-market-prose blockquote, .nrlc-article-callout {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-accent);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem;
  color: var(--c-ink-soft);
}

.nrlc-article-body th, .nrlc-article-body td { border: 1px solid var(--c-line); padding: 0.7rem 0.9rem; text-align: left; }

.nrlc-article-body th { background: var(--c-bg-2); font-weight: 600; color: var(--c-ink); }

@media (max-width: 767px) {
.nrlc-section__title, .home-section__title, .home-section__title--sm, .nrlc-final-cta__title, .home-cta-card__title {
    font-size: var(--fs-h2) !important;
  }
.nrlc-hero, .nrlc-market-hero { padding-top: 2.5rem; }
.nrlc-hero-title { max-width: 100%; }
}

@media (max-width: 767px) {
.nrlc-cta-row, .nrlc-hero-actions { flex-direction: column; align-items: stretch; }
}

/* ══════════════════════════════════════════════════════════════════════
   Surface normalization — "fewer boxes, no rounded edges, no stacked wash"
   ──────────────────────────────────────────────────────────────────────
   Three problems compounded on the homepage:

   1. Borders everywhere. 45 elements rendered a visible outline (33 of them
      cards). Combined with a 1px outline on the nav, finder, buttons, and
      footer, the page read as a grid of boxes rather than one document.
   2. Rounded edges. Every card sat at 24px and the CTA card at 48px, on a
      design whose own lock doc calls for surfaces that are "flat and washed".
   3. Stacked washes. Colour gradients were layered body → section → card
      (three deep), so no surface had a clean ground to sit on.

   This block is the last thing home-diagnostics.css applies, so it settles
   the cascade without editing every upstream declaration. It normalizes the
   *content* surfaces only — controls (buttons, finder, nav) keep their shape,
   because a pill on a control is a different gesture from a pill on a panel.
   ══════════════════════════════════════════════════════════════════════ */

/* Collapse the body/section washes to one flat ground. The hero keeps its own
   aurora, and cards still read as raised because they are the only white
   surface left on a tinted page. */
body.page-home,
.home-landing,
.home-page-content,
.home-act,
.home-market-layer,
.home-below-fold {
  background: var(--c-bg-2, #fafafa) !important;
  background-image: none !important;
}

.home-market-layer .home-eyebrow {
  color: var(--c-muted, #797c85);
}

/* Panels: one surface, no outline, corners squared. */
.nrlc-card, .editorial-card, .home-kb-card, .home-market-card, .home-market-chip,
.home-term-card, .nrlc-compare__col, .home-compare__col, .home-faq__item,
.nrlc-faq details, .cea-evidence, .home-research, .home-cta-card,
.nrlc-final-cta {
  border: 0 !important;
  border-radius: var(--radius-sm, 4px) !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* The two big call-to-action panels were dark surfaces with inverse text, then
   inherited a flat white background while keeping `color: #fff`. White on a
   90%-white card is invisible — this is what made those headings disappear. */
.home-cta-card,
.nrlc-final-cta {
  background: var(--c-surface, #fff) !important;
  color: var(--c-ink) !important;
}

.home-cta-card__title,
.nrlc-final-cta__title {
  color: var(--c-ink) !important;
}

.home-cta-card__body,
.nrlc-final-cta__body {
  color: var(--c-ink-soft) !important;
}

/* Links were pale sky (#7dd3fc) and hovered to pure white — both authored for
   the old dark cards. On a white surface they are unreadable, so they take the
   washed-plum ink used by the rest of the system. */
.home-text-link,
.home-arrow-link,
.home-course-strip__link {
  color: var(--c-on-violet-wash, #634C67) !important;
}

.home-arrow-link:hover,
.home-text-link:hover,
.home-course-strip__link:hover {
  color: var(--c-wash-edge-strong, rgba(95, 74, 98, 0.36)) !important;
  background-image: none !important;
}

/* The comparison pair carries meaning — "traditional" vs "NRLC" — so the two
   columns must not read as identical. Previously the difference was a border
   plus a drop shadow; here it is surface tint alone, which needs no lines.
   Recessive neutral for the old model, washed plum for the NRLC column. */
.home-compare__col--muted {
  background: var(--c-bg-2, #fafafa) !important;
}

.home-compare__col--highlight {
  background: var(--c-brand-violet-wash, #F4EEF5) !important;
}

.home-compare__col--highlight .home-card__title {
  color: var(--c-on-violet-wash, #634C67);
}

/* Bullet dots were sky blue; they sit on white now. */
.home-compare__list li::before,
.nrlc-card__bullets li::before {
  background: var(--c-on-violet-wash, #634C67) !important;
}

/* Restore section rhythm without reintroducing lines. Sections alternate by a
   single step of tone so the page reads as sequenced rather than one plane. */
.home-act:nth-of-type(even) {
  background: #F5F5F5 !important;
}

/* The course strip was a bordered sky pill; keep the pill gesture (it is a
   single accent line, not a panel) but drop the outline and the wash. */
.home-course-strip {
  background: var(--c-brand-violet-wash, #F4EEF5) !important;
  border: 0 !important;
  color: var(--c-on-violet-wash, #634C67);
}

/* Hairlines that only survive inside real content: table cell + blockquote
   rules are structure, so they stay. The wrapper outlines go. */
.nrlc-article-body blockquote, .nrlc-market-prose blockquote, .nrlc-article-callout {
  border-radius: var(--radius-sm) !important;
}

/* Buttons: outline removed, corners settled to the small step. `.site-nav__cta`
   is deliberately excluded — the nav pill is the site's primary CTA and keeps
   the pill shape set in site-nav.css. */
.home-btn--primary,
.home-btn--secondary,
.home-btn--cta-secondary {
  border: 0 !important;
  border-radius: var(--radius-sm, 4px) !important;
}

.home-btn--primary {
  background: var(--c-ink, #16171a) !important;
  background-image: none !important;
  color: #fff !important;
}

.home-btn--cta-secondary {
  background: var(--c-brand-violet-wash, #F4EEF5) !important;
  color: var(--c-on-violet-wash, #634C67) !important;
}

.home-btn--primary:hover {
  background: var(--c-ink-soft, #45474d) !important;
}

.home-btn--cta-secondary:hover {
  background: var(--c-brand-violet-wash-deep, #EBDFEE) !important;
}
