/* ==========================================================/* ============================================================
   SIGNALS OVER NOISE — seo SUSTAINABLE
   aimeejurenka.com — Custom CSS (CONSOLIDATED v3)
   Paste into: Appearance → Customize → Additional CSS

   v3 CONSOLIDATION NOTES:
   All fixes previously appended as a separate "PATCH v3" block
   (WCAG contrast, dark-section visibility, step-number colors,
   framework nav layout, body text sizing) have been folded into
   their original rules below. There is no longer a separate
   patch section — if you need to change a value, there is now
   exactly one declaration per selector to edit.

   >>> TABLE OF CONTENTS:
   ------------------------------------------------------------
   # Brand Tokens
   # Base (reset, body defaults)
   # Layout Utilities (shared full-bleed margin rule)
   # Layout (.son-page, .son-inner)
   # Breadcrumb
   # Stage Badge
   # Typography (headline, subhead, label, prose)
   # Sections (.son-section variants)
   # Hero (homepage)
   # Homepage: Shift / Callout / Strategy Grid / Framework / Tools / About
   # Signals Over Noise page
   # Framework Hub + child-page nav
   # Entity Grid (Define page)
   # Reinforce page (link rules, schema table, tool row)
   # Measure page
   # About page
   # Buttons
   # Covers list / Prob banner / Unlocks / Connect grid / Hub box
   # Page types / Invite / Research post grid
   # Responsive
   ------------------------------------------------------------ */

/* ─── BRAND TOKENS ─────────────────────────────────────────── */
:root {
  --orange:        #de660c;
  --orange-dark:   #8c3d08;
  --orange-pale:   #fdf0e6;
  --crimson:       #b1352f;
  --burgundy:      #83362b;
  --teal:          #06bc8f;
  --teal-dark:     #047a5e;
  --mint:          #dfedef;
  --charcoal:      #1e1c1a;
  --charcoal-mid:  #272421;
  --charcoal-light:#302d2a;
  --white:         #ffffff;
  --off:           #f5f4f1;
  --off-warm:      #ede9e3;
  --ink:           #1a1714;
  --ink-mid:       #302d2a;
  --ink-muted:     #5a5650;
  --rule:          #d8d4ce;
  --rule-strong:   #b8b3ab;
  --rule-dark:     #3a3633;  /* Phase 3: was repeated as a literal hex in ~4 dark-context divider grids */

  /* ─── SPACING SCALE (Phase 3) ────────────────────────────────
     Tokenizes the values that were ALREADY the de-facto scale
     (e.g. margin-top: 2rem appeared 21 separate times). Values
     with no clear repeated pattern are left as literals rather
     than forced onto this scale. */
  --space-2xs: 0.5rem;
  --space-xs:  0.75rem;
  --space-sm:  1rem;
  --space-md:  1.5rem;
  --space-lg:  1.75rem;
  --space-xl:  2rem;
  --space-2xl: 2.5rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;
  --space-section-y: 3.5rem; /* vertical padding on .son-section variants */

  /* FIXED: on-dark values increased for WCAG AA compliance */
  --on-dark:       #f0ece6;   /* was #e8e4de — boosted for contrast */
  --on-dark-muted: #c8bfb6;   /* was #a09890 — boosted for contrast */
  --on-dark-faint: #9c9088;   /* was #786e66 — boosted for contrast */

  --s1: #de660c;
  --s2: #b1352f;
  --s3: #83362b;
  --s4: #047a5e;
  --mono: 'Space Mono', monospace;
  --sans: 'Josefin Sans', sans-serif;
  --slab: 'Josefin Slab', serif;

  /* ─── SHARED TYPE SCALE (Phase 2) ───────────────────────────
     Consumed by both this file and the Dara theme's style.css
     (style.css references these via var(--token, fallback-px)
     so it still renders sensibly if Additional CSS is ever
     cleared). Not applied to headings — see Phase 2 notes on
     why heading scales stay separate per type system. */
  --type-body-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem); /* ~17px mobile -> ~19px desktop */
  --type-body-line-height: 1.7;
  --type-nav-size: 1rem;          /* 16px */
  --type-button-size: 1rem;       /* 16px */
  --type-label-size: 0.9375rem;   /* 15px */
  --type-content-width: 42.5rem;  /* 680px */
}

/* ─── BASE ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box !important; }
html { scroll-behavior: smooth !important; }
body {
  font-family: var(--sans) !important;
  background: var(--white) !important;
  color: var(--ink) !important;
  line-height: 1.7 !important;
  font-size: 16px !important;
  -webkit-font-smoothing: antialiased !important;
}

/* ─── LAYOUT UTILITIES ──────────────────────────────────────── */
/* Was 9 separate copies of this same margin pair, one per full-bleed
   section (.son-section--dark/off/mint, .son-hero, .son-about,
   .son-sustainable, .son-prob-banner, .son-invite, .son-stage-strip).
   Consolidated here; each section rule below now only sets its own
   background/padding. */
.son-section--dark,
.son-section--off,
.son-section--mint,
.son-hero,
.son-about,
.son-sustainable,
.son-prob-banner,
.son-invite,
.son-stage-strip {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
}

/* ─── LAYOUT ────────────────────────────────────────────────── */
.son-page { font-family: var(--sans) !important; }
.son-inner { max-width: 1100px !important; margin: 0 auto !important; }

/* ─── BREADCRUMB ────────────────────────────────────────────── */
.son-breadcrumb {
  font-family: var(--mono) !important; font-size: 13px !important;
  color: var(--ink-muted) !important; margin: 0 0 2rem !important;
  display: flex !important; align-items: center !important;
  gap: var(--space-2xs) !important; flex-wrap: wrap !important;
}
.son-breadcrumb a { color: var(--orange-dark) !important; text-decoration: none !important; }
.son-breadcrumb a:hover { text-decoration: underline !important; }
.son-breadcrumb__sep { color: var(--rule-strong) !important; }

/* ─── STAGE BADGE ───────────────────────────────────────────── */
.son-stage-badge {
  display: inline-flex !important; align-items: center !important;
  gap: var(--space-xs) !important; margin-bottom: 1.5rem !important;
}
.son-stage-badge__num {
  font-family: var(--mono) !important; font-size: 13px !important;
  font-weight: 700 !important; color: var(--white) !important; padding: 4px 12px !important;
}
.son-stage-badge__name {
  font-family: var(--mono) !important; font-size: 13px !important;
  font-weight: 700 !important; letter-spacing: 0.16em !important; text-transform: uppercase !important;
}
.son-stage-badge--s1 .son-stage-badge__num { background: var(--s1) !important; }
.son-stage-badge--s1 .son-stage-badge__name { color: var(--s1) !important; }
.son-stage-badge--s2 .son-stage-badge__num { background: var(--s2) !important; }
.son-stage-badge--s2 .son-stage-badge__name { color: var(--s2) !important; }
.son-stage-badge--s3 .son-stage-badge__num { background: var(--s3) !important; }
.son-stage-badge--s3 .son-stage-badge__name { color: var(--s3) !important; }
.son-stage-badge--s4 .son-stage-badge__num { background: var(--s4) !important; }
.son-stage-badge--s4 .son-stage-badge__name { color: var(--s4) !important; }

/* ─── TYPOGRAPHY ────────────────────────────────────────────── */
.son-headline {
  font-family: var(--slab) !important; font-size: clamp(1.9rem,4vw,3rem) !important;
  font-weight: 600 !important; line-height: 1.1 !important;
  color: var(--ink) !important; margin: 0 0 0.6rem !important;
}
.son-headline--light { color: var(--on-dark) !important; }
.son-headline--orange em { font-style: italic !important; color: var(--orange) !important; }

.son-section-headline {
  font-family: var(--slab) !important; font-size: clamp(1.5rem,3vw,2.2rem) !important;
  font-weight: 600 !important; line-height: 1.15 !important;
  color: var(--ink) !important; margin: 0 0 1.25rem !important;
}
.son-section-headline--light { color: var(--on-dark) !important; }

.son-subhead {
  font-family: var(--mono) !important; font-size: var(--type-label-size) !important;
  color: var(--ink-muted) !important; font-style: italic !important;
  line-height: 1.6 !important; margin: 0 0 2.5rem !important;
  border-left: 4px solid var(--orange) !important; padding-left: 1rem !important;
}
.son-subhead--s1 { border-left-color: var(--s1) !important; }
.son-subhead--s2 { border-left-color: var(--s2) !important; }
.son-subhead--s3 { border-left-color: var(--s3) !important; }
.son-subhead--s4 { border-left-color: var(--s4) !important; }

.son-label {
  font-family: var(--mono) !important; font-size: var(--type-label-size) !important;
  letter-spacing: 0.22em !important; text-transform: uppercase !important;
  color: var(--orange-dark) !important; margin: 0 0 0.85rem !important; display: block !important;
}
.son-label--teal      { color: var(--teal) !important; }
.son-label--teal-dark { color: var(--teal-dark) !important; }
.son-label--s2 { color: var(--s2) !important; }
.son-label--s3 { color: var(--s3) !important; }
.son-label--s4 { color: var(--s4) !important; }
.son-label--faint { color: var(--on-dark-faint) !important; }

.son-prose {
  font-size: var(--type-body-size) !important; color: var(--ink-mid) !important;
  line-height: var(--type-body-line-height) !important; max-width: var(--type-content-width) !important;
}
.son-prose p { margin: 0 0 1rem !important; font-family: var(--sans) !important; }
.son-prose p:last-child { margin-bottom: 0 !important; }
.son-prose em { font-style: normal !important; color: var(--ink) !important; font-weight: 700 !important; }
.son-prose--light { color: var(--on-dark-muted) !important; }
.son-prose--light em { color: var(--on-dark) !important; }
.son-prose--full { max-width: none !important; }

/* ─── SECTIONS ──────────────────────────────────────────────── */
.son-section { padding: 3.5rem 0 !important; border-bottom: 1px solid var(--rule) !important; }
.son-section:last-of-type { border-bottom: none !important; }

.son-section--dark {
  background: var(--charcoal) !important; border-bottom: none !important;
  padding: var(--space-section-y) var(--space-xl) !important;
}
.son-section--off {
  background: var(--off) !important;
  padding: var(--space-section-y) var(--space-xl) !important;
}
.son-section--mint {
  background: var(--mint) !important;
  padding: var(--space-section-y) var(--space-xl) !important;
}
.son-section--dark .son-label  { color: var(--teal) !important; }
.son-section--dark .son-section-headline { color: var(--on-dark) !important; }
.son-section--dark .son-prose  { color: var(--on-dark-muted) !important; }
.son-section--dark .son-prose em { color: var(--on-dark) !important; }
.son-section--dark h2,
.son-section--dark h3,
.son-section--dark .son-headline,
.son-section--dark .son-callout__new { color: var(--on-dark) !important; }
.son-section--dark em { color: var(--on-dark) !important; font-style: italic !important; }
.son-section--mint .son-label  { color: var(--teal-dark) !important; }

/* ─── HERO (homepage) ───────────────────────────────────────── */
.son-hero {
  background: var(--charcoal) !important;
  border-bottom: 4px solid var(--orange) !important;
  padding: 5.5rem 2rem 4.5rem !important;
  position: relative !important; overflow: hidden !important;
}
.son-hero::before {
  content: '' !important; position: absolute !important; inset: 0 !important;
  background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px) !important;
  background-size: 28px 28px !important; pointer-events: none !important;
}
.son-hero__inner { position: relative !important; z-index: 1 !important; max-width: 1100px !important; margin: 0 auto !important; }
.son-hero__kicker {
  font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.22em !important;
  text-transform: uppercase !important; color: var(--on-dark-muted) !important;
  margin-bottom: 1.5rem !important; display: flex !important; align-items: center !important; gap: var(--space-xs) !important;
}
.son-hero__kicker::before { content: '▸' !important; color: var(--orange) !important; }
.son-hero__headline {
  font-family: var(--slab) !important; font-size: clamp(3rem,7vw,5.4rem) !important;
  font-weight: 600 !important; line-height: 1.05 !important;
  color: var(--on-dark) !important; margin: 0 0 0.65rem !important;
}
.son-hero__headline em { font-style: italic !important; color: var(--orange) !important; }
.son-hero__subhead {
  font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.18em !important;
  text-transform: uppercase !important; color: var(--on-dark-muted) !important;
  margin: 0 0 2.75rem !important; border-left: 4px solid var(--orange) !important; padding-left: 1rem !important;
}
.son-hero__body { max-width: 640px !important; }
/* FIXED: hero body text size increased */
.son-hero__body p {
  font-size: var(--type-body-size) !important; color: var(--on-dark-muted) !important;
  margin: 0 0 1.1rem !important; line-height: var(--type-body-line-height) !important; font-family: var(--sans) !important;
}
.son-hero__body p em { font-style: normal !important; color: var(--on-dark) !important; font-weight: 700 !important; }
.son-hero__body p:last-child { margin-bottom: 0 !important; }
.son-hero__cta { margin-top: 2.75rem !important; display: flex !important; gap: var(--space-sm) !important; flex-wrap: wrap !important; }
.son-hero__publisher { margin-top: var(--space-3xl) !important; display: flex !important; align-items: center !important; gap: 0.85rem !important; }
.son-hero__publisher-line { height: 1px !important; width: 36px !important; background: #4a4540 !important; flex-shrink: 0 !important; }
.son-hero__publisher-text {
  font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.2em !important;
  text-transform: uppercase !important; color: var(--on-dark-faint) !important;
}

/* ─── HOMEPAGE: SHIFT SECTION ───────────────────────────────── */
.son-shift-layout {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: var(--space-3xl) !important; align-items: start !important; margin-top: var(--space-2xl) !important;
}
.son-shift-layout > * { min-width: 0 !important; }

/* FIXED: question items — contrast + size */
.son-questions,
.son-noise-list,
.son-pillars {
  background: var(--rule-dark) !important;
  border: 1px solid var(--rule-dark) !important;
  gap: 1px !important;
}

.son-questions { display: grid !important; }
.son-question {
  background: #272421 !important; padding: 1.4rem 1.75rem !important;
  font-family: var(--slab) !important; font-size: 1.2rem !important;
  color: var(--on-dark) !important; line-height: 1.6 !important;
  display: flex !important; align-items: flex-start !important; gap: var(--space-sm) !important;
}
.son-question::before {
  content: '?' !important; font-family: var(--mono) !important; font-size: 13px !important;
  font-weight: 700 !important; color: var(--teal) !important; margin-top: 4px !important; flex-shrink: 0 !important;
}

/* FIXED: callout box — all text now visible */
.son-callout { border: 1px solid #4a4540 !important; padding: var(--space-xl) !important; }
.son-callout__label {
  font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.2em !important;
  text-transform: uppercase !important; color: var(--teal) !important; margin: 0 0 1rem !important; display: block !important;
}
/* FIXED: was --on-dark-faint (#786e66) which was invisible on dark bg */
.son-callout__old {
  font-family: var(--slab) !important; font-size: 1.1rem !important;
  color: var(--on-dark-muted) !important; text-decoration: line-through !important;
  text-decoration-color: var(--crimson) !important; opacity: 1 !important;
  margin: 0 0 0.5rem !important; display: block !important;
}
.son-callout__arrow { font-family: var(--mono) !important; font-size: 20px !important; color: var(--orange) !important; margin: 0.5rem 0 !important; display: block !important; }
.son-callout__new { font-family: var(--slab) !important; font-size: 1.7rem !important; font-weight: 600 !important; color: var(--on-dark) !important; line-height: 1.2 !important; margin: 0 !important; }
.son-callout__new em { font-style: italic !important; color: var(--orange) !important; }
/* FIXED: callout note — size and contrast */
.son-callout__note { margin-top: 1.25rem !important; font-family: var(--mono) !important; font-size: 14px !important; line-height: 1.75 !important; color: var(--on-dark-muted) !important; }

/* ─── HOMEPAGE: STRATEGY GRID ───────────────────────────────── */
/* DEMO of item 4: .son-strategy-grid / .son-fails-grid / .son-can-grid
   are three of ~11 "hairline-divider grid" components in this file.
   Verified byte-identical on background/border across these three, so
   that shared pair is grouped once below; each keeps its own columns/
   spacing. NOTE: several of the other ~8 similar grids use a different
   token (var(--rule) instead of var(--rule-strong)) or a different gap
   width — those are NOT merged here since the values genuinely differ
   and forcing them together would change rendered output. A full survey
   of which grids truly share values vs. only look similar is recommended
   before extending this pattern further. */
.son-strategy-grid,
.son-fails-grid,
.son-can-grid {
  background: var(--rule-strong) !important;
  border: 2px solid var(--rule-strong) !important;
}
.son-strategy-grid {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: 2px !important; margin-top: var(--space-2xl) !important;
}
.son-strategy-cell { background: var(--white) !important; padding: var(--space-xl) !important; }
.son-strategy-cell--featured { background: var(--orange-pale) !important; }
.son-cell-label {
  font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.18em !important;
  text-transform: uppercase !important; color: var(--ink-muted) !important;
  margin: 0 0 0.6rem !important; display: block !important;
}
/* FIXED: cell content text larger */
.son-cell-content { font-family: var(--slab) !important; font-size: 1.3rem !important; color: var(--ink) !important; line-height: 1.5 !important; margin: 0 !important; }
.son-strategy-cell--featured .son-cell-content { color: var(--orange-dark) !important; font-size: 1.4rem !important; font-weight: 700 !important; }

/* ─── HOMEPAGE: FRAMEWORK STAGES ───────────────────────────── */
.son-framework { display: grid !important; grid-template-columns: repeat(4,1fr) !important; border: 1px solid var(--rule) !important; margin-top: var(--space-2xl) !important; }
.son-stage { padding: 1.75rem 1.25rem !important; border-right: 1px solid var(--rule) !important; }
.son-stage:last-child { border-right: none !important; }
.son-stage:nth-child(1) { border-top: 5px solid var(--s1) !important; }
.son-stage:nth-child(2) { border-top: 5px solid var(--s2) !important; }
.son-stage:nth-child(3) { border-top: 5px solid var(--s3) !important; }
.son-stage:nth-child(4) { border-top: 5px solid var(--s4) !important; }
.son-stage__num { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; margin: 0 0 0.5rem !important; display: block !important; }
.son-stage:nth-child(1) .son-stage__num { color: var(--s1) !important; }
.son-stage:nth-child(2) .son-stage__num { color: var(--s2) !important; }
.son-stage:nth-child(3) .son-stage__num { color: var(--s3) !important; }
.son-stage:nth-child(4) .son-stage__num { color: var(--s4) !important; }
.son-stage__name { font-family: var(--slab) !important; font-size: 1.35rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.6rem !important; }
.son-stage__q { font-family: var(--mono) !important; font-size: 13px !important; font-style: italic !important; line-height: 1.5 !important; margin: 0 0 1rem !important; }
.son-stage:nth-child(1) .son-stage__q { color: var(--s1) !important; }
.son-stage:nth-child(2) .son-stage__q { color: var(--s2) !important; }
.son-stage:nth-child(3) .son-stage__q { color: var(--s3) !important; }
.son-stage:nth-child(4) .son-stage__q { color: var(--s4) !important; }
.son-stage__list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
/* FIXED: stage list items — size increased */
.son-stage__list li { font-size: 15px !important; color: var(--ink-muted) !important; padding: 0.2rem 0 0.2rem 1rem !important; position: relative !important; font-family: var(--sans) !important; }
.son-stage:nth-child(1) .son-stage__list li::before { content: '·' !important; position: absolute !important; left: 0 !important; color: var(--s1) !important; font-size: 18px !important; line-height: 1.1 !important; }
.son-stage:nth-child(2) .son-stage__list li::before { content: '·' !important; position: absolute !important; left: 0 !important; color: var(--s2) !important; font-size: 18px !important; line-height: 1.1 !important; }
.son-stage:nth-child(3) .son-stage__list li::before { content: '·' !important; position: absolute !important; left: 0 !important; color: var(--s3) !important; font-size: 18px !important; line-height: 1.1 !important; }
.son-stage:nth-child(4) .son-stage__list li::before { content: '·' !important; position: absolute !important; left: 0 !important; color: var(--s4) !important; font-size: 18px !important; line-height: 1.1 !important; }

/* ─── HOMEPAGE: TOOLS GRID ──────────────────────────────────── */
/* DEMO of item 6 (!important reduction): none of these .son-tool*
   classes exist anywhere in style.css/blocks.css, so there is no
   cascade fight for !important to win — it was only ever needed to
   beat *other rules in this same file*, which the dedup above already
   fixed. Dropping it here is a preview of the same mechanical change
   proposed for the rest of the file's .son-* component rules (see
   summary). Behavior is identical; only specificity headroom changes. */
.son-tools-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2rem; }
.son-tool {
  background: var(--white); border: 1px solid var(--rule);
  border-left: 5px solid var(--orange); padding: 2rem;
  text-decoration: none; color: inherit; display: block; transition: border-left-color 0.2s;
}
.son-tool:nth-child(2) { border-left-color: var(--teal-dark); }
.son-tool:hover { border-left-color: var(--crimson); }
.son-tool__badge { display: inline-block; font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; background: var(--orange); color: var(--white); padding: 3px 10px; margin-bottom: 1rem; }
.son-tool:nth-child(2) .son-tool__badge { background: var(--teal-dark); }
.son-tool__name { font-family: var(--slab); font-size: 1.4rem; font-weight: 600; color: var(--ink); margin: 0 0 0.5rem; }
.son-tool__desc { font-size: 16px; color: var(--ink-mid); line-height: 1.65; margin: 0; font-family: var(--sans); }
.son-tool__link { display: inline-block; margin-top: 1.25rem; font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange-dark); border-bottom: 2px solid var(--orange-dark); padding-bottom: 2px; text-decoration: none; }
.son-tool:nth-child(2) .son-tool__link { color: var(--teal-dark); border-bottom-color: var(--teal-dark); }

/* ─── HOMEPAGE: ABOUT STRIP ─────────────────────────────────── */
.son-about { background: var(--charcoal) !important; padding: 5rem 2rem !important; }
.son-about__inner { max-width: 1100px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: 240px 1fr !important; gap: var(--space-4xl) !important; align-items: center !important; }
.son-about__photo-wrap { position: relative !important; }
.son-about__photo-wrap::before { content: '' !important; position: absolute !important; top: -10px !important; left: -10px !important; right: 10px !important; bottom: 10px !important; border: 2px solid var(--orange) !important; pointer-events: none !important; z-index: 0 !important; }
.son-about__photo { width: 100% !important; aspect-ratio: 3/4 !important; object-fit: cover !important; object-position: top center !important; display: block !important; position: relative !important; z-index: 1 !important; border: 1px solid #3a3633 !important; }
.son-about__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; color: var(--on-dark-faint) !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-about__name { font-family: var(--slab) !important; font-size: 2.2rem !important; font-weight: 600 !important; color: var(--on-dark) !important; margin: 0 0 0.3rem !important; line-height: 1.1 !important; }
.son-about__role { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--orange) !important; margin: 0 0 1.75rem !important; display: block !important; }
/* FIXED: about bio size and contrast */
.son-about__bio { font-size: 17px !important; color: var(--on-dark-muted) !important; line-height: 1.85 !important; font-family: var(--sans) !important; }
.son-about__bio p { margin: 0 0 0.9rem !important; }
.son-about a,
.son-about__bio a { color: var(--on-dark-muted) !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
.son-about a:hover,
.son-about__bio a:hover { color: var(--on-dark) !important; }

/* ─── SIGNALS OVER NOISE PAGE ───────────────────────────────── */
.son-prob-cols { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: var(--space-3xl) !important; margin-top: var(--space-xl) !important; }
.son-prob-cols > * { min-width: 0 !important; }
.son-noise-box { border: 1px solid #4a4540 !important; padding: var(--space-xl) !important; }
.son-noise-box__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--teal) !important; margin: 0 0 1.25rem !important; display: block !important; }
.son-noise-list { list-style: none !important; display: grid !important; margin: 0 0 1.5rem !important; padding: 0 !important; }
/* FIXED: noise list items contrast + size */
.son-noise-list li { background: var(--charcoal-mid) !important; padding: 0.9rem 1.25rem !important; font-family: var(--slab) !important; font-size: 1.1rem !important; color: var(--on-dark) !important; display: flex !important; align-items: center !important; gap: var(--space-xs) !important; }
.son-noise-list li::before { content: '✗' !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--crimson) !important; flex-shrink: 0 !important; }
/* FIXED: noise verdict contrast */
.son-noise-verdict { font-family: var(--mono) !important; font-size: 14px !important; line-height: 1.7 !important; color: var(--on-dark-muted) !important; border-left: 3px solid var(--crimson) !important; padding-left: 1rem !important; }

.son-fails-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 2px !important; margin-top: var(--space-xl) !important; }
.son-fail { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-fail__icon { font-family: var(--mono) !important; font-size: 22px !important; color: var(--crimson) !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-fail__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
.son-fail__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }

/* FIXED: steps — step detail column now included in layout */
.son-steps { display: grid !important; gap: 2px !important; background: var(--rule) !important; border: 2px solid var(--rule) !important; margin-top: var(--space-xl) !important; }
.son-step { background: var(--white) !important; display: grid !important; grid-template-columns: 80px 1fr 1fr !important; }
.son-step__num { background: var(--charcoal) !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; padding: 2rem 1rem !important; gap: 0.4rem !important; }
.son-step__digit { font-family: var(--mono) !important; font-size: 22px !important; font-weight: 700 !important; color: var(--on-dark) !important; line-height: 1 !important; }
.son-step__name { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--orange) !important; }
.son-step__body { padding: var(--space-lg) var(--space-xl) !important; border-left: 1px solid var(--rule) !important; border-right: 1px solid var(--rule) !important; }
.son-step__title { font-family: var(--slab) !important; font-size: 1.25rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.6rem !important; }
.son-step__desc { font-size: 16px !important; color: var(--ink-mid) !important; line-height: 1.7 !important; font-family: var(--sans) !important; }
.son-step__detail { padding: var(--space-lg) var(--space-xl) !important; }
.son-step__detail-label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--ink-muted) !important; margin: 0 0 0.75rem !important; display: block !important; }

.son-tiers,
.son-hub-reqs {
  background: var(--rule) !important;
  border: 1px solid var(--rule) !important;
  gap: 1px !important;
}

.son-tiers { list-style: none !important; display: grid !important; margin: 0.5rem 0 0 !important; padding: 0 !important; }
.son-tier { background: var(--white) !important; padding: 0.65rem 1rem !important; display: grid !important; grid-template-columns: auto 1fr !important; gap: var(--space-sm) !important; align-items: center !important; }
.son-tier__data { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--orange-dark) !important; white-space: nowrap !important; }
.son-tier__label { font-size: 15px !important; color: var(--ink-muted) !important; font-family: var(--sans) !important; }

.son-tool-callout { background: var(--charcoal) !important; border-top: 4px solid var(--teal-dark) !important; padding: 3rem !important; margin-top: var(--space-3xl) !important; display: grid !important; grid-template-columns: 1fr auto !important; gap: var(--space-xl) !important; align-items: center !important; }
.son-tool-callout__badge { display: inline-block !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; background: var(--teal-dark) !important; color: var(--white) !important; padding: 3px 10px !important; margin-bottom: 0.85rem !important; }
.son-tool-callout__name { font-family: var(--slab) !important; font-size: 1.6rem !important; font-weight: 600 !important; color: var(--on-dark) !important; margin: 0 0 0.5rem !important; }
/* FIXED: tool callout description contrast */
.son-tool-callout__desc { font-size: 16px !important; color: var(--on-dark-muted) !important; line-height: 1.7 !important; margin: 0 0 1.5rem !important; font-family: var(--sans) !important; }
.son-tool-callout__features { list-style: none !important; display: grid !important; gap: var(--space-2xs) !important; padding: 0 !important; margin: 0 !important; }
/* FIXED: feature list items contrast + size */
.son-tool-callout__features li { font-size: 15px !important; color: var(--on-dark-muted) !important; padding-left: 1.25rem !important; position: relative !important; line-height: 1.5 !important; font-family: var(--sans) !important; }
.son-tool-callout__features li::before { content: '→' !important; position: absolute !important; left: 0 !important; color: var(--teal) !important; font-family: var(--mono) !important; }
.son-tool-coming { margin-top: var(--space-md) !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--on-dark-muted) !important; line-height: 1.6 !important; }

/* ─── NOT/IS LISTS (Signals Over Noise) ─────────────────────── */
.son-not-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: var(--space-3xl) !important; margin-top: var(--space-xl) !important; }
.son-not-grid > * { min-width: 0 !important; }
.son-col-heading { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; margin: 0 0 1rem !important; display: block !important; }
.son-col-heading--no  { color: var(--crimson) !important; }
.son-col-heading--yes { color: var(--teal-dark) !important; }
.son-not-list,
.son-is-list,
.son-question-blocks {
  background: var(--rule-strong) !important;
  border: 2px solid var(--rule-strong) !important;
  gap: 1px !important;
}

.son-not-list, .son-is-list { list-style: none !important; display: grid !important; padding: 0 !important; margin: 0 !important; }
/* FIXED: list items — size */
.son-not-list li, .son-is-list li { background: var(--white) !important; padding: 1.1rem 1.5rem !important; font-family: var(--slab) !important; font-size: 1.1rem !important; color: var(--ink) !important; display: flex !important; align-items: center !important; gap: 0.85rem !important; }
.son-not-list li::before { content: '✗' !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--crimson) !important; flex-shrink: 0 !important; }
.son-is-list  li::before { content: '✓' !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--teal-dark) !important; flex-shrink: 0 !important; }

/* ─── FRAMEWORK HUB PAGE ────────────────────────────────────── */

/* FIXED: stage strip — text was invisible on dark bg */
.son-stage-strip {
  display: grid !important; grid-template-columns: repeat(4,1fr) !important;
  border-bottom: 1px solid var(--rule) !important;
}
.son-strip-item {
  padding: 1.5rem !important; border-right: 1px solid var(--rule) !important;
  text-decoration: none !important; color: inherit !important; display: block !important; transition: background 0.15s !important;
}
.son-strip-item:last-child { border-right: none !important; }
.son-strip-item:hover { background: var(--off) !important; }
.son-strip-item:nth-child(1) { border-top: 5px solid var(--s1) !important; }
.son-strip-item:nth-child(2) { border-top: 5px solid var(--s2) !important; }
.son-strip-item:nth-child(3) { border-top: 5px solid var(--s3) !important; }
.son-strip-item:nth-child(4) { border-top: 5px solid var(--s4) !important; }
.son-strip-num { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; margin: 0 0 0.4rem !important; display: block !important; }
.son-strip-item:nth-child(1) .son-strip-num { color: var(--s1) !important; }
.son-strip-item:nth-child(2) .son-strip-num { color: var(--s2) !important; }
.son-strip-item:nth-child(3) .son-strip-num { color: var(--s3) !important; }
.son-strip-item:nth-child(4) .son-strip-num { color: var(--s4) !important; }
.son-strip-name { font-family: var(--slab) !important; font-size: 1.3rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.35rem !important; }
.son-strip-q { font-family: var(--mono) !important; font-size: 13px !important; color: var(--ink-muted) !important; font-style: italic !important; line-height: 1.5 !important; }

/* FIXED: "How it fits together" dark section — was a blank void */
/* The son-stage-strip inside a dark section needs light text */
.son-section--dark .son-stage-strip { border-bottom-color: #3a3633 !important; }
.son-section--dark .son-strip-item { border-right-color: #3a3633 !important; border-top-color: transparent !important; }
.son-section--dark .son-strip-item:hover { background: #272421 !important; }
.son-section--dark .son-strip-name { color: var(--on-dark) !important; }
.son-section--dark .son-strip-q { color: var(--on-dark-muted) !important; }

/* Covers inline framework summaries that use raw markup instead of
   .son-* component classes — anything inside a dark section gets the
   muted on-dark color by default; the excluded classes keep their own
   explicit color (labels, callout accents, stage/strip numbers). */
.son-section--dark *:not(.son-label):not(.son-callout__label):not(.son-callout__arrow):not(.son-callout__new em):not(.son-stage__num):not(.son-strip-num) {
  color: var(--on-dark-muted) !important;
}
.son-section--dark strong { color: var(--on-dark) !important; }
.son-section--dark .son-stage__name { color: var(--on-dark) !important; }
.son-section--dark .son-stage__q    { color: var(--on-dark-muted) !important; }
.son-section--dark .son-stage__list li { color: var(--on-dark-muted) !important; }

/* ─── FRAMEWORK CHILD-PAGE NAV ──────────────────────────────── */
/* FIXED: completely broken layout on Define/Structure/Reinforce/Measure pages */
.son-fw-nav {
  display: grid !important; grid-template-columns: repeat(4,1fr) !important;
  gap: 1px !important; background: var(--rule) !important;
  border: 2px solid var(--rule) !important; margin-top: var(--space-xl) !important;
}
.son-fw-nav__item {
  background: var(--white) !important; padding: 1.25rem !important;
  text-decoration: none !important; color: inherit !important;
  display: block !important; transition: background 0.15s !important;
}
.son-fw-nav__item:hover { background: var(--off) !important; }
.son-fw-nav__item--current { background: var(--off) !important; }
.son-fw-nav__item--s1.son-fw-nav__item--current { border-top: 3px solid var(--s1) !important; }
.son-fw-nav__item--s2.son-fw-nav__item--current { border-top: 3px solid var(--s2) !important; }
.son-fw-nav__item--s3.son-fw-nav__item--current { border-top: 3px solid var(--s3) !important; }
.son-fw-nav__item--s4.son-fw-nav__item--current { border-top: 3px solid var(--s4) !important; }
.son-fw-nav__num { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--orange-dark) !important; margin: 0 0 0.35rem !important; display: block !important; }
.son-fw-nav__item--s1.son-fw-nav__item--current .son-fw-nav__num { color: var(--s1) !important; }
.son-fw-nav__item--s2.son-fw-nav__item--current .son-fw-nav__num { color: var(--s2) !important; }
.son-fw-nav__item--s3.son-fw-nav__item--current .son-fw-nav__num { color: var(--s3) !important; }
.son-fw-nav__item--s4.son-fw-nav__item--current .son-fw-nav__num { color: var(--s4) !important; }
.son-fw-nav__name { font-family: var(--slab) !important; font-size: 1.05rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.2rem !important; }
.son-fw-nav__q { font-family: var(--mono) !important; font-size: 13px !important; color: var(--ink-muted) !important; font-style: italic !important; line-height: 1.4 !important; }
.son-fw-nav__status { font-family: var(--mono) !important; font-size: 11px !important; margin-top: 0.5rem !important; display: block !important; font-weight: 700 !important; }
.son-fw-nav__item--s1.son-fw-nav__item--current .son-fw-nav__status { color: var(--s1) !important; }
.son-fw-nav__item--s2.son-fw-nav__item--current .son-fw-nav__status { color: var(--s2) !important; }
.son-fw-nav__item--s3.son-fw-nav__item--current .son-fw-nav__status { color: var(--s3) !important; }
.son-fw-nav__item--s4.son-fw-nav__item--current .son-fw-nav__status { color: var(--s4) !important; }

.son-page-nav { display: flex !important; justify-content: space-between !important; margin-top: var(--space-2xl) !important; }

/* ─── RAW CONTENT TABLES (framework grid pasted as plain WP <table>) ── */
/* Some child-page content is a raw table, not .son-* markup — style it
   directly so it isn't left in the theme's default (illegible) table look. */
.entry-content table td,
.entry-content table th {
  color: var(--ink) !important;
  font-size: 15px !important;
}
/* Cells with an inline background (e.g. charcoal) need on-dark text */
.entry-content table td[style*="background"] {
  color: var(--on-dark) !important;
}

/* ─── FRAMEWORK CHILD PAGES — PROCESS STEPS ─────────────────── */
.son-fw-steps,
.son-entity-grid,
.son-link-rules,
.son-studies,
.son-nk-grid,
.son-sampling-tiers,
.son-beliefs,
.son-work-grid,
.son-unlocks,
.son-page-types,
.son-post-grid {
  background: var(--rule) !important;
  border: 2px solid var(--rule) !important;
  gap: 2px !important;
}

.son-fw-steps { display: grid !important; margin-top: var(--space-xl) !important; }
.son-fw-step { background: var(--white) !important; display: grid !important; grid-template-columns: 60px 1fr !important; }

/* FIXED: step number blocks were rendering solid black */
.son-fw-step__num,
.son-fw-step__num * {
  color: var(--white) !important;
}
.son-fw-step__num {
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-family: var(--mono) !important; font-size: 18px !important; font-weight: 700 !important;
  padding: 1.5rem 0 !important;
  min-height: 80px !important;
}
.son-fw-step--s1 .son-fw-step__num,
.son-fw-step--s1 .son-fw-step__num * { background: var(--s1) !important; color: var(--white) !important; }
.son-fw-step--s2 .son-fw-step__num,
.son-fw-step--s2 .son-fw-step__num * { background: var(--s2) !important; color: var(--white) !important; }
.son-fw-step--s3 .son-fw-step__num,
.son-fw-step--s3 .son-fw-step__num * { background: var(--s3) !important; color: var(--white) !important; }
.son-fw-step--s4 .son-fw-step__num,
.son-fw-step--s4 .son-fw-step__num * { background: var(--s4) !important; color: var(--white) !important; }

.son-fw-step__body { padding: var(--space-lg) var(--space-xl) !important; }
.son-fw-step__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
/* FIXED: step description size */
.son-fw-step__desc { font-size: 16px !important; color: var(--ink-mid) !important; line-height: 1.7 !important; font-family: var(--sans) !important; margin: 0 !important; }
.son-fw-step__note { font-family: var(--mono) !important; font-size: 13px !important; margin-top: 0.75rem !important; font-style: italic !important; }
.son-fw-step--s1 .son-fw-step__note { color: var(--s1) !important; }
.son-fw-step--s2 .son-fw-step__note { color: var(--s2) !important; }
.son-fw-step--s3 .son-fw-step__note { color: var(--s3) !important; }
.son-fw-step--s4 .son-fw-step__note { color: var(--s4) !important; }

/* ─── ENTITY GRID (Define page) ─────────────────────────────── */
.son-entity-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; margin-top: var(--space-xl) !important; }
.son-entity-card { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-entity-card__type { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--orange-dark) !important; margin: 0 0 0.6rem !important; display: block !important; }
.son-entity-card__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.4rem !important; }
/* FIXED: entity card description size */
.son-entity-card__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }

/* Question blocks */
.son-question-blocks { display: grid !important; margin-top: var(--space-xl) !important; }
.son-question-block { background: var(--white) !important; padding: var(--space-xl) !important; }
.son-question-block__q { font-family: var(--slab) !important; font-size: 1.25rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.75rem !important; line-height: 1.3 !important; }
/* FIXED: question block answer size */
.son-question-block__a { font-size: 16px !important; color: var(--ink-mid) !important; line-height: 1.75 !important; font-family: var(--sans) !important; margin: 0 !important; }

/* ─── REINFORCE PAGE ─────────────────────────────────────────── */
.son-link-rules { display: grid !important; margin-top: var(--space-md) !important; }
.son-link-rule { background: var(--white) !important; padding: var(--space-md) var(--space-lg) !important; display: flex !important; align-items: flex-start !important; gap: var(--space-sm) !important; }
.son-link-rule__marker { font-family: var(--mono) !important; font-size: 18px !important; font-weight: 700 !important; margin-top: 2px !important; flex-shrink: 0 !important; line-height: 1 !important; }
.son-link-rule--do .son-link-rule__marker   { color: var(--teal-dark) !important; }
.son-link-rule--dont .son-link-rule__marker { color: var(--crimson) !important; }
.son-link-rule__content { flex: 1 !important; min-width: 0 !important; }
.son-link-rule__title { font-family: var(--slab) !important; font-size: 1rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.3rem !important; }
/* FIXED: link rule description size */
.son-link-rule__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.6 !important; font-family: var(--sans) !important; margin: 0 !important; }

/* Schema table */
.son-schema-table { width: 100% !important; border-collapse: collapse !important; margin-top: var(--space-md) !important; font-size: 15px !important; }
.son-schema-table th { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--s3) !important; padding: 0.75rem 1rem !important; text-align: left !important; border-bottom: 2px solid var(--rule-strong) !important; background: var(--off) !important; }
.son-schema-table td { padding: 0.9rem 1rem !important; border-bottom: 1px solid var(--rule) !important; color: var(--ink-mid) !important; font-family: var(--sans) !important; vertical-align: top !important; line-height: 1.55 !important; }
.son-schema-table td:first-child { font-family: var(--mono) !important; font-size: 13px !important; color: var(--s3) !important; white-space: nowrap !important; }
.son-schema-table tr:last-child td { border-bottom: none !important; }
.son-schema-table tr:nth-child(even) td { background: var(--off) !important; }

/* Tool row (Reinforce) */
.son-tool-row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: var(--space-md) !important; margin-top: var(--space-xl) !important; }
.son-tool-card { background: var(--white) !important; border: 1px solid var(--rule) !important; border-left: 5px solid var(--s3) !important; padding: var(--space-lg) !important; }
.son-tool-card:nth-child(2) { border-left-color: var(--teal-dark) !important; }
.son-tool-card__badge { display: inline-block !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; background: var(--s3) !important; color: var(--white) !important; padding: 3px 10px !important; margin-bottom: 0.85rem !important; }
.son-tool-card:nth-child(2) .son-tool-card__badge { background: var(--teal-dark) !important; }
.son-tool-card__name { font-family: var(--slab) !important; font-size: 1.2rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
.son-tool-card__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; margin: 0 0 1rem !important; }
.son-tool-card__link { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--s3) !important; text-decoration: none !important; border-bottom: 2px solid var(--s3) !important; padding-bottom: 2px !important; }
.son-tool-card:nth-child(2) .son-tool-card__link { color: var(--teal-dark) !important; border-bottom-color: var(--teal-dark) !important; }

/* ─── MEASURE PAGE ───────────────────────────────────────────── */

/* FIXED: shift box — was invisible on dark bg */
.son-shift-box { background: var(--charcoal) !important; padding: var(--space-2xl) !important; margin-top: var(--space-xl) !important; border: 1px solid #4a4540 !important; }
.son-shift-box__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--teal) !important; margin: 0 0 1rem !important; display: block !important; }
.son-shift-old { font-family: var(--slab) !important; font-size: 1.1rem !important; color: var(--on-dark-muted) !important; text-decoration: line-through !important; margin: 0 0 0.5rem !important; display: block !important; }
.son-shift-arrow { font-family: var(--mono) !important; font-size: 18px !important; color: var(--teal) !important; margin: 0.5rem 0 !important; display: block !important; }
.son-shift-new { font-family: var(--slab) !important; font-size: 1.5rem !important; font-weight: 600 !important; color: var(--on-dark) !important; line-height: 1.3 !important; margin: 0 !important; }
.son-shift-new em { font-style: italic !important; color: var(--teal) !important; }

.son-studies { display: grid !important; margin-top: var(--space-xl) !important; }
.son-study { background: var(--white) !important; padding: var(--space-xl) !important; }
.son-study__source { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--s4) !important; margin: 0 0 0.6rem !important; display: block !important; }
.son-study__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.75rem !important; }
.son-study__finding { font-size: 18px !important; font-family: var(--slab) !important; color: var(--s4) !important; font-weight: 600 !important; margin: 0 0 0.75rem !important; line-height: 1.3 !important; }
/* FIXED: study body size */
.son-study__body { font-size: 16px !important; color: var(--ink-mid) !important; line-height: 1.7 !important; font-family: var(--sans) !important; }

.son-nk-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; margin-top: var(--space-xl) !important; }
.son-nk-card { background: var(--white) !important; padding: var(--space-xl) !important; }
.son-nk-card__var { font-family: var(--mono) !important; font-size: 2rem !important; font-weight: 700 !important; color: var(--s4) !important; margin: 0 0 0.4rem !important; display: block !important; }
.son-nk-card__name { font-family: var(--slab) !important; font-size: 1.1rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
/* FIXED: nk card description size */
.son-nk-card__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }

.son-sampling-tiers { display: grid !important; margin-top: var(--space-xl) !important; }
.son-sampling-tier { background: var(--white) !important; padding: 1.5rem 2rem !important; display: grid !important; grid-template-columns: 140px 1fr auto !important; gap: var(--space-md) !important; align-items: start !important; }
.son-sampling-tier__label { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--s4) !important; }
/* FIXED: sampling tier detail size */
.son-sampling-tier__detail { font-size: 15px !important; color: var(--ink-mid) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }
.son-sampling-tier__detail strong { font-weight: 700 !important; color: var(--ink) !important; }
.son-sampling-tier__margin { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--ink-muted) !important; white-space: nowrap !important; }

/* Can/Cannot grid (Measure) */
.son-can-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 2px !important; margin-top: var(--space-xl) !important; }
.son-can-col { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-can-col__heading { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; margin: 0 0 1rem !important; display: block !important; }
.son-can-col--yes .son-can-col__heading { color: var(--s4) !important; }
.son-can-col--no  .son-can-col__heading { color: var(--crimson) !important; }
.son-can-list { list-style: none !important; display: grid !important; gap: var(--space-2xs) !important; padding: 0 !important; margin: 0 !important; }
/* FIXED: can list items size */
.son-can-list li { font-size: 15px !important; color: var(--ink-mid) !important; line-height: 1.5 !important; padding-left: 1.5rem !important; position: relative !important; font-family: var(--sans) !important; }
.son-can-col--yes .son-can-list li::before { content: '✓' !important; position: absolute !important; left: 0 !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--s4) !important; }
.son-can-col--no  .son-can-list li::before { content: '✕' !important; position: absolute !important; left: 0 !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--crimson) !important; }
.son-key-rule { background: var(--off) !important; border: 1px solid var(--rule) !important; border-left: 5px solid var(--s4) !important; padding: var(--space-lg) !important; margin-top: var(--space-xl) !important; font-family: var(--slab) !important; font-size: 1.15rem !important; color: var(--ink) !important; line-height: 1.5 !important; }
.son-key-rule em { font-style: normal !important; color: var(--s4) !important; font-weight: 700 !important; }

/* ─── TOOLS PAGE ─────────────────────────────────────────────── */
/* Round 2: these classes were already used in the Tools page's raw
   HTML but had zero matching CSS anywhere — page was rendering with
   default browser styling. Modeled on .son-tool (homepage cards),
   .son-entity-card (Define page), and .son-link-rule (Reinforce page). */
.son-tool-header { margin-bottom: var(--space-lg) !important; }
.son-tool-badge { display: inline-block !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--white) !important; padding: 3px 10px !important; margin-bottom: var(--space-sm) !important; }
.son-tool-badge--orange { background: var(--orange) !important; }
.son-tool-badge--teal { background: var(--teal-dark) !important; }
.son-tool-name { font-family: var(--slab) !important; font-size: 1.75rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.4rem !important; }
.son-tool-tagline { font-family: var(--mono) !important; font-size: 13px !important; font-style: italic !important; color: var(--ink-muted) !important; margin: 0 !important; }

/* Best for / Output / Method row */
.son-tool-meta { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 2px !important; background: var(--rule) !important; border: 2px solid var(--rule) !important; margin: var(--space-lg) 0 !important; }
.son-tool-meta__item { background: var(--white) !important; padding: var(--space-sm) var(--space-md) !important; }
.son-tool-meta__label { font-family: var(--mono) !important; font-size: 12px !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--ink-muted) !important; margin: 0 0 0.3rem !important; display: block !important; }
.son-tool-meta__value { font-family: var(--sans) !important; font-size: 15px !important; color: var(--ink) !important; font-weight: 600 !important; }

/* Feature list (Mention Rate Tool) */
.son-features { list-style: none !important; padding: 0 !important; display: grid !important; gap: var(--space-sm) !important; margin: 0 0 var(--space-lg) !important; }
.son-feature { display: flex !important; align-items: flex-start !important; gap: var(--space-sm) !important; }
.son-feature__icon { flex-shrink: 0 !important; font-family: var(--mono) !important; font-size: 16px !important; font-weight: 700 !important; margin-top: 2px !important; }
.son-feature--orange .son-feature__icon { color: var(--orange) !important; }
.son-feature__title { font-family: var(--slab) !important; font-size: 1rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.25rem !important; }
.son-feature__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.6 !important; font-family: var(--sans) !important; margin: 0 !important; }

/* "What it generates" two-column layout (Schema Generator) */
.son-schema-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: var(--space-2xl) !important; margin: var(--space-lg) 0 !important; }
.son-schema-types { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid !important; gap: var(--space-sm) !important; }
.son-schema-type__name { font-family: var(--slab) !important; font-size: 1rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.25rem !important; }
.son-schema-type__desc { font-size: 14px !important; color: var(--ink-muted) !important; line-height: 1.6 !important; font-family: var(--sans) !important; margin: 0 !important; }

/* De-emphasized supplementary content (origin notes, moved-down detail) */
.son-origin { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.7 !important; font-family: var(--sans) !important; }
.son-origin p { margin: 0 0 0.85rem !important; }
.son-origin p:last-child { margin-bottom: 0 !important; }

/* Collapsible "more detail" block — native <details>, no JS needed */
.son-tool-details { border: 1px solid var(--rule) !important; padding: var(--space-md) var(--space-lg) !important; margin: var(--space-lg) 0 !important; }
.son-tool-details summary { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--ink-muted) !important; cursor: pointer !important; }
.son-tool-details summary:hover { color: var(--ink) !important; }
.son-tool-details[open] summary { margin-bottom: var(--space-md) !important; }

.son-tool-divider { border: 0 !important; border-top: 2px solid var(--rule) !important; margin: var(--space-2xl) 0 !important; }

/* ─── ABOUT PAGE ─────────────────────────────────────────────── */
.son-about-intro { display: grid !important; grid-template-columns: 260px 1fr !important; gap: var(--space-4xl) !important; align-items: start !important; }
.son-about-intro > * { min-width: 0 !important; }
.son-photo-wrap { position: relative !important; }
.son-photo-wrap::before { content: '' !important; position: absolute !important; top: -10px !important; left: -10px !important; right: 10px !important; bottom: 10px !important; border: 2px solid var(--orange) !important; pointer-events: none !important; z-index: 0 !important; }
.son-photo { width: 100% !important; display: block !important; position: relative !important; z-index: 1 !important; border: 1px solid var(--rule) !important; }
.son-about-name { font-family: var(--slab) !important; font-size: 2.4rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.3rem !important; line-height: 1.05 !important; }
.son-about-role { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--orange-dark) !important; margin: 0 0 2rem !important; display: block !important; }

/* FIXED: beliefs list — contrast and size */
.son-beliefs { display: grid !important; margin-top: var(--space-xl) !important; }
.son-belief { background: var(--white) !important; padding: var(--space-md) var(--space-lg) !important; display: flex !important; align-items: flex-start !important; gap: var(--space-sm) !important; }
.son-belief__marker { font-family: var(--mono) !important; font-size: 14px !important; font-weight: 700 !important; color: var(--orange-dark) !important; flex-shrink: 0 !important; margin-top: 3px !important; }
/* FIXED: belief text was too small and too light */
.son-belief__text { font-family: var(--slab) !important; font-size: 1.15rem !important; color: var(--ink) !important; line-height: 1.6 !important; }

/* seo SUSTAINABLE dark section */
.son-sustainable { background: var(--charcoal) !important; padding: 4rem 2rem !important; }
.son-sustainable__inner { max-width: 1100px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: var(--space-4xl) !important; align-items: start !important; }
.son-sustainable__inner > * { min-width: 0 !important; }
/* FIXED: sustainable prose contrast */
.son-sustainable-prose { font-size: 17px !important; color: var(--on-dark-muted) !important; line-height: 1.85 !important; }
.son-sustainable-prose p { margin: 0 0 1rem !important; font-family: var(--sans) !important; }
.son-sustainable-prose p:last-child { margin-bottom: 0 !important; }
.son-sustainable-prose em { font-style: normal !important; color: var(--on-dark) !important; font-weight: 700 !important; }
.son-pillars { list-style: none !important; display: grid !important; padding: 0 !important; margin: 0 !important; }
.son-pillar { background: var(--charcoal-mid) !important; padding: 1.1rem 1.5rem !important; display: flex !important; align-items: center !important; gap: 0.85rem !important; }
.son-pillar::before { content: '→' !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--orange) !important; flex-shrink: 0 !important; }
/* FIXED: pillar text contrast */
.son-pillar__text { font-family: var(--slab) !important; font-size: 1.05rem !important; color: var(--on-dark) !important; }
/* NOTE: .son-sustainable is its own dark-background block and does not use
   .son-section--dark, so it needs its own copy of the dark-text overrides
   rather than inheriting the shared rule above. If a future pass adds the
   .son-section--dark class to this block's markup, this can be deleted. */
.son-sustainable .son-label { color: var(--on-dark-faint) !important; }
.son-sustainable h2  { color: var(--on-dark) !important; }
.son-sustainable p   { color: var(--on-dark-muted) !important; font-size: 17px !important; }

/* Work grid */
.son-work-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; margin-top: var(--space-xl) !important; }
.son-work-card { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-work-card__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--orange-dark) !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-work-card__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
/* FIXED: work card description size */
.son-work-card__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }
.son-work-card__link { display: inline-block !important; margin-top: 1.1rem !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--orange-dark) !important; border-bottom: 2px solid var(--orange-dark) !important; padding-bottom: 2px !important; text-decoration: none !important; }

/* Connect box */
.son-connect { background: var(--off) !important; border: 1px solid var(--rule) !important; padding: var(--space-2xl) !important; margin-top: var(--space-4xl) !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: var(--space-xl) !important; flex-wrap: wrap !important; }
.son-connect__headline { font-family: var(--slab) !important; font-size: 1.4rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.4rem !important; }
.son-connect__sub { font-size: 15px !important; color: var(--ink-muted) !important; font-family: var(--sans) !important; }

/* ─── BUTTONS ────────────────────────────────────────────────── */
.son-btn {
  font-family: var(--mono) !important; font-size: var(--type-button-size) !important; font-weight: 700 !important;
  letter-spacing: 0.16em !important; text-transform: uppercase !important;
  padding: 0.85rem 1.75rem !important; text-decoration: none !important;
  display: inline-block !important; cursor: pointer !important;
  border: 2px solid transparent !important;
  transition: background 0.15s, color 0.15s, border-color 0.15s !important; line-height: 1 !important;
}
.son-btn--orange  { background: var(--orange) !important;    color: var(--white) !important; border-color: var(--orange) !important; }
.son-btn--orange:hover  { background: var(--orange-dark) !important; border-color: var(--orange-dark) !important; }
.son-btn--teal    { background: var(--teal-dark) !important; color: var(--white) !important; border-color: var(--teal-dark) !important; }
.son-btn--teal:hover    { background: var(--teal) !important; border-color: var(--teal) !important; color: var(--ink) !important; }
.son-btn--crimson { background: var(--s2) !important;        color: var(--white) !important; border-color: var(--s2) !important; }
.son-btn--crimson:hover { background: var(--crimson) !important; border-color: var(--crimson) !important; }
.son-btn--burg    { background: var(--s3) !important;        color: var(--white) !important; border-color: var(--s3) !important; }
.son-btn--burg:hover    { background: var(--burgundy) !important; border-color: var(--burgundy) !important; }
.son-btn--outline { color: var(--ink) !important;            border-color: var(--rule-strong) !important; background: transparent !important; }
.son-btn--outline:hover { background: var(--off) !important; }
.son-btn--ghost   { color: var(--on-dark-muted) !important;  border-color: #4a4540 !important; background: transparent !important; }
.son-btn--ghost:hover   { color: var(--on-dark) !important;  border-color: var(--on-dark-muted) !important; }

/* ─── COVERS LIST ───────────────────────────────────────────── */
.son-covers { list-style: none !important; display: grid !important; gap: 1px !important; background: var(--rule) !important; border: 2px solid var(--rule) !important; margin: 2rem 0 !important; padding: 0 !important; }
.son-cover { background: var(--white) !important; padding: 1.1rem 1.5rem !important; display: flex !important; align-items: center !important; gap: var(--space-xs) !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--orange-dark) !important; }
.son-cover::before { content: '→' !important; flex-shrink: 0 !important; }
.son-cover--s2 { color: var(--s2) !important; }
.son-cover--s3 { color: var(--s3) !important; }
.son-cover--s4 { color: var(--s4) !important; }

/* ─── PROB BANNER ───────────────────────────────────────────── */
.son-prob-banner { background: var(--charcoal) !important; padding: var(--space-section-y) var(--space-xl) !important; }
.son-prob-banner__inner { max-width: 740px !important; }
.son-prob-banner__headline { font-family: var(--slab) !important; font-size: clamp(1.5rem,3vw,2.2rem) !important; font-weight: 600 !important; color: var(--on-dark) !important; margin: 0 0 1rem !important; line-height: 1.2 !important; }
.son-prob-banner__headline em { font-style: italic !important; color: var(--orange) !important; }
/* FIXED: prob banner body size + contrast */
.son-prob-banner__body { font-size: 17px !important; color: var(--on-dark-muted) !important; line-height: 1.8 !important; font-family: var(--sans) !important; }
.son-prob-banner__body p { margin: 0 0 0.9rem !important; }

/* ─── UNLOCKS ───────────────────────────────────────────────── */
.son-unlocks { display: grid !important; grid-template-columns: 1fr 1fr !important; margin-top: var(--space-xl) !important; }
.son-unlock { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-unlock__icon { font-size: 24px !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-unlock__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.4rem !important; }
.son-unlock__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }

/* ─── CONNECT GRID ──────────────────────────────────────────── */
.son-connect-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 2px !important; background: var(--rule-dark) !important; border: 2px solid var(--rule-dark) !important; margin-top: var(--space-xl) !important; }
.son-connect-card { background: var(--charcoal-mid) !important; padding: var(--space-xl) !important; text-decoration: none !important; color: inherit !important; display: block !important; transition: background 0.15s !important; }
.son-connect-card:hover { background: var(--charcoal-light) !important; }
.son-connect-card__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--teal) !important; margin: 0 0 0.85rem !important; display: block !important; }
.son-connect-card__title { font-family: var(--slab) !important; font-size: 1.15rem !important; font-weight: 600 !important; color: var(--on-dark) !important; margin: 0 0 0.5rem !important; }
/* FIXED: connect card description contrast */
.son-connect-card__desc { font-size: 15px !important; color: var(--on-dark-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }
.son-connect-card__link { display: inline-block !important; margin-top: 1.25rem !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--teal) !important; text-decoration: none !important; border-bottom: 2px solid var(--teal-dark) !important; padding-bottom: 2px !important; }

/* ─── HUB BOX ───────────────────────────────────────────────── */
.son-hub-box { background: var(--white) !important; border: 2px solid var(--rule-strong) !important; border-top: 5px solid var(--s2) !important; padding: var(--space-xl) !important; margin-top: var(--space-xl) !important; }
.son-hub-box__label { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--s2) !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-hub-box__title { font-family: var(--slab) !important; font-size: 1.35rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 1rem !important; }
.son-hub-reqs { list-style: none !important; display: grid !important; margin: 0 !important; padding: 0 !important; }
.son-hub-req { background: var(--off) !important; padding: 0.85rem 1.25rem !important; display: flex !important; gap: var(--space-xs) !important; align-items: flex-start !important; font-size: 15px !important; color: var(--ink-mid) !important; font-family: var(--sans) !important; }
.son-hub-req::before { content: '→' !important; font-family: var(--mono) !important; font-size: 13px !important; color: var(--s2) !important; flex-shrink: 0 !important; margin-top: 2px !important; }

/* ─── PAGE TYPES ─────────────────────────────────────────────── */
.son-page-types { display: grid !important; grid-template-columns: repeat(3,1fr) !important; margin-top: var(--space-xl) !important; }
.son-page-type { background: var(--white) !important; padding: var(--space-lg) !important; }
.son-page-type__label { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--s2) !important; margin: 0 0 0.6rem !important; display: block !important; }
.son-page-type__title { font-family: var(--slab) !important; font-size: 1.1rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; }
.son-page-type__desc { font-size: 15px !important; color: var(--ink-muted) !important; line-height: 1.65 !important; font-family: var(--sans) !important; }

/* ─── INVITE / SPEAKING ─────────────────────────────────────── */
.son-invite { background: var(--charcoal) !important; padding: 3rem 2rem !important; margin-top: var(--space-4xl) !important; }
.son-invite__inner { max-width: 700px !important; }
.son-invite__headline { font-family: var(--slab) !important; font-size: 1.6rem !important; font-weight: 600 !important; color: var(--on-dark) !important; margin: 0 0 0.75rem !important; line-height: 1.2 !important; }
/* FIXED: invite body contrast */
.son-invite__body { font-size: 16px !important; color: var(--on-dark-muted) !important; line-height: 1.8 !important; margin: 0 0 1.5rem !important; font-family: var(--sans) !important; }

/* ─── RESEARCH / POST GRID ───────────────────────────────────── */
.son-post-grid { display: grid !important; grid-template-columns: repeat(2,1fr) !important; }
.son-post { background: var(--white) !important; text-decoration: none !important; color: inherit !important; display: block !important; transition: background 0.15s !important; overflow: hidden !important; }
.son-post:hover { background: var(--off) !important; }
.son-post--featured { grid-column: 1 / -1 !important; display: grid !important; grid-template-columns: 1fr 1fr !important; }
.son-post__img { width: 100% !important; aspect-ratio: 16/9 !important; object-fit: cover !important; display: block !important; }
.son-post--featured .son-post__img { aspect-ratio: auto !important; height: 100% !important; }
.son-post__body { padding: var(--space-lg) !important; }
.son-post__cat { font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--teal-dark) !important; margin: 0 0 0.75rem !important; display: block !important; }
.son-post__title { font-family: var(--slab) !important; font-size: 1.25rem !important; font-weight: 600 !important; color: var(--ink) !important; margin: 0 0 0.5rem !important; line-height: 1.3 !important; }
.son-post--featured .son-post__title { font-size: 1.5rem !important; }
.son-post__excerpt { font-size: 15px !important; color: var(--ink-mid) !important; line-height: 1.65 !important; margin: 0 !important; font-family: var(--sans) !important; }
.son-post__date { font-family: var(--mono) !important; font-size: 12px !important; color: var(--ink-muted) !important; margin-top: var(--space-sm) !important; display: block !important; }
.son-post__read { display: inline-block !important; margin-top: var(--space-sm) !important; font-family: var(--mono) !important; font-size: 13px !important; font-weight: 700 !important; color: var(--teal-dark) !important; border-bottom: 2px solid var(--teal-dark) !important; padding-bottom: 2px !important; text-decoration: none !important; }

/* ─── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 960px) {
  .son-shift-layout    { grid-template-columns: 1fr !important; }
  .son-framework       { grid-template-columns: 1fr 1fr !important; }
  .son-stage:nth-child(2) { border-right: none !important; }
  .son-stage:nth-child(1),
  .son-stage:nth-child(2) { border-bottom: 1px solid var(--rule) !important; }
  .son-about__inner    { grid-template-columns: 1fr !important; }
  .son-prob-cols       { grid-template-columns: 1fr !important; }
  .son-fails-grid      { grid-template-columns: 1fr !important; }
  .son-step            { grid-template-columns: 70px 1fr !important; }
  .son-step__detail    { grid-column: 2 !important; }
  .son-not-grid        { grid-template-columns: 1fr !important; }
  .son-unlocks         { grid-template-columns: 1fr !important; }
  .son-tool-callout    { grid-template-columns: 1fr !important; }
  .son-connect-grid    { grid-template-columns: 1fr !important; }
  .son-entity-grid     { grid-template-columns: 1fr !important; }
  .son-page-types      { grid-template-columns: 1fr !important; }
  .son-nk-grid         { grid-template-columns: 1fr !important; }
  .son-can-grid        { grid-template-columns: 1fr !important; }
  .son-tool-row        { grid-template-columns: 1fr !important; }
  .son-stage-strip     { grid-template-columns: 1fr 1fr !important; }
  .son-fw-nav          { grid-template-columns: 1fr 1fr !important; }
  .son-post-grid       { grid-template-columns: 1fr !important; }
  .son-post--featured  { grid-template-columns: 1fr !important; }
  .son-sustainable__inner { grid-template-columns: 1fr !important; }
  .son-about-intro     { grid-template-columns: 1fr !important; }
  .son-work-grid       { grid-template-columns: 1fr !important; }
  .son-sampling-tier   { grid-template-columns: 100px 1fr !important; }
  .son-sampling-tier__margin { display: none !important; }
  .son-tools-grid      { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  .son-hero            { padding: 3.5rem 1.5rem 3rem !important; }
  .son-framework       { grid-template-columns: 1fr !important; }
  .son-stage           { border-right: none !important; border-bottom: 1px solid var(--rule) !important; }
  .son-stage:last-child { border-bottom: none !important; }
  .son-strategy-grid   { grid-template-columns: 1fr !important; }
  .son-tools-grid      { grid-template-columns: 1fr !important; }
  .son-step            { grid-template-columns: 1fr !important; }
  .son-step__num       { flex-direction: row !important; justify-content: flex-start !important; padding: 1rem 1.5rem !important; border-bottom: 1px solid #3a3633 !important; }
  .son-step__body      { border-left: none !important; border-right: none !important; }
  .son-step__detail    { grid-column: 1 !important; }
  .son-fw-step         { grid-template-columns: 50px 1fr !important; }
  .son-stage-strip     { grid-template-columns: 1fr !important; }
  .son-strip-item      { border-right: none !important; border-bottom: 1px solid var(--rule) !important; }
  .son-strip-item:last-child { border-bottom: none !important; }
  .son-fw-nav          { grid-template-columns: 1fr !important; }
  .son-about__inner    { gap: var(--space-xl) !important; }
  .son-photo-wrap      { max-width: 200px !important; }
  .son-section--dark .son-strip-item { border-bottom-color: #3a3633 !important; }
}

/* Patch v3 has been fully folded into the rules above — see the
   consolidation notes at the top of this file. */