/* =============================================================================
   Exactitude · Components (Rebuild v2)
   Every class prefixed .ex-* and scoped inside .ex-scope.
   Depends on design-system.css tokens.
   ============================================================================= */

/* =============================================================================
   0. PAGE SHELL — kills legacy white body gutters + themes scrollbar.
   Scoped to body.ex-scope so pages NOT on the new system are unaffected.
   ============================================================================= */
html:has(body.ex-scope),
body.ex-scope {
  background: var(--ds-paper) !important;
  min-height: 100%;
}
/* Belt-and-braces: also target html when a rebuilt page loads,
   in case :has() isn't supported by an older browser. */
body.ex-scope { margin: 0; padding: 0; }

/* Main page scrollbar — hidden on rebuilt surfaces for editorial minimalism.
   The page still scrolls with wheel / keyboard / touch, just no visible bar.
   Inner scrollable panels (blog sidebar, TOC, etc.) keep their own thin
   themed scrollbars because they use their own selectors. */
html:has(body.ex-scope) { scrollbar-width: none; -ms-overflow-style: none; }
html:has(body.ex-scope)::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none; }
body.ex-scope { scrollbar-width: none; -ms-overflow-style: none; }
body.ex-scope::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none; }

/* =============================================================================
   1. BUTTONS
   ============================================================================= */
.ex-scope .ex-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid transparent;
  border-radius: var(--ds-radius-sm);
  font-family: var(--ds-font-body);
  font-size: 0.9375rem;
  font-weight: 550;
  line-height: 1;
  letter-spacing: -0.005em;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--ds-dur-fast) var(--ds-ease-out),
              border-color var(--ds-dur-fast) var(--ds-ease-out),
              color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
  white-space: nowrap;
}

.ex-scope .ex-btn:hover {
  transform: translateY(-1px);
}

.ex-scope .ex-btn--primary {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-btn--primary:hover {
  background: #000;
  border-color: #000;
  color: var(--ds-paper);
}

.ex-scope .ex-btn--secondary {
  background: transparent;
  color: var(--ds-ink);
  border-color: var(--ds-ink);
}
.ex-scope .ex-btn--secondary:hover {
  background: var(--ds-ink);
  color: var(--ds-paper);
}

.ex-scope .ex-btn--ghost {
  background: transparent;
  color: var(--ds-ink);
  border-color: var(--ds-hairline);
}
.ex-scope .ex-btn--ghost:hover {
  border-color: var(--ds-ink);
  color: var(--ds-ink);
}

/* Ghost variant for use on dark backgrounds (ink hero cards, dark bands) */
.ex-scope .ex-btn--ghost-dark,
.ex-scope [class*="ex-hero__"] .ex-btn--ghost,
.ex-scope .ex-industries__featured-left .ex-btn--ghost,
.ex-scope .ex-press__media .ex-btn--ghost,
.ex-scope .ex-industries__head--compact .ex-btn--ghost {
  background: transparent;
  color: var(--ds-paper);
  border-color: rgba(241, 235, 221, 0.35);
}
.ex-scope .ex-btn--ghost-dark:hover,
.ex-scope [class*="ex-hero__"] .ex-btn--ghost:hover,
.ex-scope .ex-industries__featured-left .ex-btn--ghost:hover,
.ex-scope .ex-press__media .ex-btn--ghost:hover,
.ex-scope .ex-industries__head--compact .ex-btn--ghost:hover {
  border-color: var(--ds-paper);
  color: var(--ds-paper);
}

.ex-scope .ex-btn--sm {
  min-height: 36px;
  padding: 6px 14px;
  font-size: 0.85rem;
}

.ex-scope .ex-btn--link {
  padding: 0;
  min-height: auto;
  background: transparent;
  color: var(--ds-ink);
  border: 0;
  border-bottom: 1px solid var(--ds-hairline-strong);
  border-radius: 0;
  font-weight: 550;
}
.ex-scope .ex-btn--link:hover {
  border-bottom-color: var(--ds-ink);
  transform: none;
}

/* =============================================================================
   2. SEARCH
   ============================================================================= */
.ex-scope .ex-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 0;
  border-bottom: 2px solid var(--ds-ink);
  padding: 12px 0;
  background: transparent;
}

.ex-scope .ex-search__input {
  flex: 1;
  border: 0;
  background: transparent;
  font-family: var(--ds-font-display);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  color: var(--ds-ink);
  outline: none;
  padding: 0;
  min-width: 0;
}
.ex-scope .ex-search__input::placeholder {
  color: var(--ds-muted);
  font-style: italic;
}

.ex-scope .ex-search__btn {
  flex: 0 0 auto;
  background: var(--ds-ink);
  color: var(--ds-paper);
  border: 0;
  padding: 8px 20px;
  font-size: 0.85rem;
  font-weight: 550;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-search__btn:hover { background: #000; }

.ex-scope .ex-search__icon {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  color: var(--ds-muted);
}

/* =============================================================================
   3. CARDS
   ============================================================================= */
.ex-scope .ex-card {
  display: flex;
  flex-direction: column;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 24px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-card:hover {
  border-color: var(--ds-hairline-strong);
  transform: translateY(-2px);
}

.ex-scope .ex-card--flat {
  background: transparent;
  padding: 0;
}
.ex-scope .ex-card--flat:hover {
  transform: none;
}

/* =============================================================================
   4. REPORT CARD (used on homepage featured + store listing)
   ============================================================================= */
.ex-scope .ex-report-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 24px;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
  height: 100%;
}
.ex-scope .ex-report-card:hover {
  border-color: var(--ds-ink);
  transform: translateY(-2px);
  color: inherit;
}
.ex-scope a.ex-report-card {
  border-bottom-color: var(--ds-hairline);
}

.ex-scope .ex-report-card__eyebrow {
  font-family: var(--ds-font-body);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
}

.ex-scope .ex-report-card__title {
  font-family: var(--ds-font-display);
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ex-scope .ex-report-card__desc {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ex-scope .ex-report-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--ds-hairline);
  font-size: 0.8rem;
  color: var(--ds-muted);
}
.ex-scope .ex-report-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ex-scope .ex-report-card__price {
  margin-left: auto;
  font-family: var(--ds-font-mono);
  font-weight: 600;
  color: var(--ds-ink);
}

/* =============================================================================
   5. STAT (big-number display)
   ============================================================================= */
.ex-scope .ex-stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ex-scope .ex-stat__value {
  font-family: var(--ds-font-mono);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  font-feature-settings: "tnum" 1;
}
.ex-scope .ex-stat__label {
  font-size: 0.85rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
}

/* =============================================================================
   6. CALLOUT GRID (report detail hero stats)
   ============================================================================= */
.ex-scope .ex-callout-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
  background: var(--ds-paper-cool);
}
.ex-scope .ex-callout-grid__cell {
  padding: 24px 20px;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-callout-grid__cell:last-child { border-right: 0; }
.ex-scope .ex-callout-grid__label {
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 8px;
}
.ex-scope .ex-callout-grid__value {
  font-family: var(--ds-font-mono);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 500;
  color: var(--ds-ink);
  line-height: 1;
}
.ex-scope .ex-callout-grid__unit {
  font-size: 0.85rem;
  color: var(--ds-muted);
  margin-left: 4px;
}
@media (max-width: 720px) {
  .ex-scope .ex-callout-grid {
    grid-template-columns: 1fr;
  }
  .ex-scope .ex-callout-grid__cell {
    border-right: 0;
    border-bottom: 1px solid var(--ds-hairline);
  }
  .ex-scope .ex-callout-grid__cell:last-child { border-bottom: 0; }
}

/* =============================================================================
   7. STICKY TOC (report detail)
   ============================================================================= */
.ex-scope .ex-toc-sticky {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(241, 235, 221, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--ds-hairline);
  transform: translateY(-100%);
  transition: transform var(--ds-dur-mid) var(--ds-ease-out);
}
.ex-scope .ex-toc-sticky.is-visible {
  transform: translateY(0);
}

.ex-scope .ex-toc-sticky__list {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 12px 0;
  margin: 0;
  list-style: none;
}
.ex-scope .ex-toc-sticky__list::-webkit-scrollbar { display: none; }

.ex-scope .ex-toc-sticky__item {
  flex: 0 0 auto;
}

.ex-scope .ex-tab-pill {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-muted);
  text-decoration: none;
  transition: all var(--ds-dur-fast) var(--ds-ease-out);
  white-space: nowrap;
}
.ex-scope .ex-tab-pill:hover {
  color: var(--ds-ink);
  border-color: var(--ds-hairline);
}
.ex-scope .ex-tab-pill.is-active {
  color: var(--ds-paper);
  background: var(--ds-ink);
  border-color: var(--ds-ink);
}

/* =============================================================================
   8. IMPACT TABLE (Mordor-style drivers/restraints)
   ============================================================================= */
.ex-scope .ex-impact-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--ds-hairline);
  font-size: 0.9rem;
}
.ex-scope .ex-impact-table thead th {
  background: var(--ds-paper-cool);
  padding: 12px 16px;
  text-align: left;
  font-family: var(--ds-font-body);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-impact-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--ds-hairline);
  vertical-align: top;
  color: var(--ds-body);
}
.ex-scope .ex-impact-table tbody tr:last-child td {
  border-bottom: 0;
}
.ex-scope .ex-impact-table .ex-impact-table__driver {
  font-weight: 500;
  color: var(--ds-ink);
  width: 40%;
}
.ex-scope .ex-impact-table .ex-impact-table__percent {
  font-family: var(--ds-font-mono);
  font-weight: 600;
  white-space: nowrap;
  width: 15%;
}
.ex-scope .ex-impact-table .ex-impact-table__percent--up  { color: var(--ds-growth); }
.ex-scope .ex-impact-table .ex-impact-table__percent--down { color: var(--ds-decline); }
.ex-scope .ex-impact-table .ex-impact-table__geo,
.ex-scope .ex-impact-table .ex-impact-table__timeline {
  font-size: 0.85rem;
  color: var(--ds-muted);
  width: 22.5%;
}

/* =============================================================================
   9. BUY BOX (license tiers)
   ============================================================================= */
.ex-scope .ex-buy-box {
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  background: var(--ds-paper-warm);
  padding: 24px;
}
.ex-scope .ex-buy-box__title {
  font-family: var(--ds-font-display);
  font-size: 1.25rem;
  margin: 0 0 16px;
}
.ex-scope .ex-buy-tier {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  margin-bottom: 12px;
  cursor: pointer;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              background var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-buy-tier:hover {
  border-color: var(--ds-ink);
}
.ex-scope .ex-buy-tier.is-selected {
  border-color: var(--ds-ink);
  background: var(--ds-paper-cool);
}
.ex-scope .ex-buy-tier__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.ex-scope .ex-buy-tier__name {
  font-weight: 600;
  color: var(--ds-ink);
}
.ex-scope .ex-buy-tier__price {
  font-family: var(--ds-font-mono);
  font-weight: 600;
  color: var(--ds-ink);
}
.ex-scope .ex-buy-tier__desc {
  font-size: 0.85rem;
  color: var(--ds-muted);
  margin: 0;
}

/* =============================================================================
   10. LOGOS STRIP (Fortune 500 trust row)
   ============================================================================= */
.ex-scope .ex-logos-strip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  padding-block: 56px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-logos-strip__label {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-logos-strip__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(28px, 4.5vw, 64px);
  max-width: 1000px;
}
.ex-scope .ex-logos-strip__item {
  max-height: 40px;
  width: auto;
  opacity: 1;
}
.ex-scope .ex-logos-strip__wordmark {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(0.95rem, 1.4vw, 1.15rem);
  color: var(--ds-muted);
  letter-spacing: 0.02em;
  opacity: 0.7;
}

/* =============================================================================
   11. RELATED REPORTS (bottom of report detail)
   ============================================================================= */
.ex-scope .ex-related-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-related-list__item {
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-related-list__link {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  padding: 20px 0;
  color: var(--ds-ink);
  transition: padding var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-related-list__link:hover {
  padding-inline-start: 8px;
  border-bottom-color: transparent;
}
.ex-scope .ex-related-list__title {
  font-family: var(--ds-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  flex: 1;
}
.ex-scope .ex-related-list__meta {
  font-size: 0.8rem;
  color: var(--ds-muted);
  white-space: nowrap;
}

/* =============================================================================
   12. CHART CONTAINERS + commentary blocks
   ============================================================================= */
.ex-scope .ex-chart {
  width: 100%;
  padding: 24px;
  background: var(--ds-paper-cool);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}
.ex-scope .ex-chart__title {
  font-family: var(--ds-font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-ink);
  margin-bottom: 4px;
}
.ex-scope .ex-chart__subtitle {
  font-size: 0.75rem;
  color: var(--ds-muted);
  margin-bottom: 16px;
  font-family: var(--ds-font-mono);
  letter-spacing: 0.02em;
}
.ex-scope .ex-chart__disclaimer {
  font-size: 0.72rem;
  color: var(--ds-muted-soft);
  font-style: italic;
  margin-top: 12px;
  margin-bottom: 0;
  padding-top: 10px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-chart svg { width: 100%; height: auto; display: block; }

/* Analyst commentary block that sits below a chart */
.ex-scope .ex-chart-commentary {
  margin-top: 12px;
  padding: 16px 18px;
  background: var(--ds-paper-warm);
  border-left: 2px solid var(--ds-ink);
  border-radius: 2px;
}
.ex-scope .ex-chart-commentary__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 6px;
}
.ex-scope .ex-chart-commentary__text {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-chart-commentary__text strong {
  color: var(--ds-ink);
  font-weight: 600;
}

/* Legend for donuts with lots of segments */
.ex-scope .ex-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--ds-hairline);
  font-size: 0.8rem;
  color: var(--ds-body);
}
.ex-scope .ex-chart-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ex-scope .ex-chart-legend__swatch {
  width: 10px;
  height: 10px;
  border-radius: 1px;
  flex: 0 0 auto;
}

/* NEW donut layout: SVG on left + HTML legend on right */
.ex-scope .ex-chart-donut-wrap {
  display: flex;
  gap: 32px;
  align-items: center;
  flex-wrap: wrap;
}
.ex-scope .ex-chart-donut-legend {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1;
  min-width: 240px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ex-scope .ex-chart-donut-legend__item {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) 68px;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--ds-hairline);
  font-size: 0.9rem;
}
.ex-scope .ex-chart-donut-legend__item:last-child { border-bottom: 0; }
.ex-scope .ex-chart-donut-legend__swatch {
  width: 12px;
  height: 12px;
  border-radius: 2px;
}
.ex-scope .ex-chart-donut-legend__label {
  color: var(--ds-ink);
  font-weight: 500;
  line-height: 1.35;
  word-break: break-word;
}
.ex-scope .ex-chart-donut-legend__value {
  font-family: var(--ds-font-mono);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ds-ink);
  white-space: nowrap;
  padding: 2px 0;
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: 2px;
  text-align: center;
  justify-self: end;
  min-width: 60px;
}

/* =============================================================================
   12b. SNAPSHOT CARD — horizontal: info LEFT + chart RIGHT (full-width band)
   ============================================================================= */
.ex-scope .ex-snapshot {
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 28px;
  position: relative;
  margin-block: 24px 0;
}
.ex-scope .ex-snapshot::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--ds-ink);
  border-radius: var(--ds-radius-md) var(--ds-radius-md) 0 0;
}
/* 2026-08-25 Market Snapshot redesign — head row + 2-col (metrics+chart) grid.
   Removes wasted whitespace, aligns metric grid height with chart height,
   consolidates duplicate data (Study Period was shown twice). */
.ex-scope .ex-snapshot__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ds-hairline);
  flex-wrap: wrap;
}
.ex-scope .ex-snapshot__head-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.ex-scope .ex-snapshot__badge-pill {
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  font-family: var(--ds-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ds-body);
  letter-spacing: 0.2px;
}

.ex-scope .ex-snapshot__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: 24px;
  align-items: stretch;         /* metric grid + chart same height */
}
@media (max-width: 900px) {
  .ex-scope .ex-snapshot__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.ex-scope .ex-snapshot__title {
  font-family: var(--ds-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0 0 4px;
}
.ex-scope .ex-snapshot__subtitle {
  font-size: 0.72rem;
  color: var(--ds-muted);
  font-family: var(--ds-font-mono);
  letter-spacing: 0.06em;
  margin: 0;
}

/* Metrics — 6 cells in 3-col × 2-row grid, each with tight label/value pair.
   No bg on cells — inherits parent paper so it doesn't feel like "boxed cards".
   Hairlines only, minimal chrome. */
.ex-scope .ex-snapshot__metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 0;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  overflow: hidden;
}
@media (max-width: 640px) {
  .ex-scope .ex-snapshot__metrics { grid-template-columns: repeat(2, 1fr); }
}
.ex-scope .ex-snapshot__metric {
  background: transparent;                       /* was --ds-paper-cool (too white); inherit parent */
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: space-between;
  min-height: 88px;
  border-right: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
/* Kill outer-edge borders (the wrapping border handles those) */
.ex-scope .ex-snapshot__metric:nth-child(3n) { border-right: none; }
.ex-scope .ex-snapshot__metric:nth-last-child(-n+3) { border-bottom: none; }
@media (max-width: 640px) {
  .ex-scope .ex-snapshot__metric:nth-child(3n) { border-right: 1px solid var(--ds-hairline); }
  .ex-scope .ex-snapshot__metric:nth-child(2n) { border-right: none; }
  .ex-scope .ex-snapshot__metric:nth-last-child(-n+3) { border-bottom: 1px solid var(--ds-hairline); }
  .ex-scope .ex-snapshot__metric:nth-last-child(-n+2) { border-bottom: none; }
}
.ex-scope .ex-snapshot__metric-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
}
.ex-scope .ex-snapshot__metric-value {
  font-family: var(--ds-font-display);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ds-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0;
}
.ex-scope .ex-snapshot__metric-value--sm {
  font-size: 1.05rem;
}
.ex-scope .ex-snapshot__metric-unit {
  font-family: var(--ds-font-body);
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-left: 4px;
}
.ex-scope .ex-snapshot__metric--growth .ex-snapshot__metric-value { color: var(--ds-growth); }
.ex-scope .ex-snapshot__metric--growth .ex-snapshot__metric-unit  { color: var(--ds-growth); }

/* Snapshot chart on the right — matches metric grid: hairline frame, no fill */
.ex-scope .ex-snapshot__chart {
  background: transparent;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 18px;
}
.ex-scope .ex-snapshot__chart svg {
  width: 100%;
  height: auto;
  display: block;
}
.ex-scope .ex-snapshot__chart-title {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 8px;
}

/* Players strip below the snapshot grid */
.ex-scope .ex-snapshot__players {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-snapshot__players-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 12px;
}
.ex-scope .ex-snapshot__players-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  border-top: 1px solid var(--ds-hairline);
}
@media (max-width: 640px) {
  .ex-scope .ex-snapshot__players-list { grid-template-columns: 1fr; }
}
.ex-scope .ex-snapshot__player {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-snapshot__player-num {
  font-family: var(--ds-font-mono);
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-snapshot__player-name {
  font-family: var(--ds-font-display);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ds-ink);
  line-height: 1.35;
  letter-spacing: -0.005em;
  word-break: break-word;
}
.ex-scope .ex-snapshot__player--more {
  grid-column: 1 / -1;
  padding-top: 14px;
  padding-bottom: 4px;
  border-bottom: 0;
}
.ex-scope .ex-snapshot__player--more .ex-snapshot__player-num { color: var(--ds-ink); }
.ex-scope .ex-snapshot__player--more .ex-snapshot__player-name {
  font-family: var(--ds-font-body);
  font-style: italic;
  color: var(--ds-muted);
  font-size: 0.85rem;
  font-weight: 400;
}

/* =============================================================================
   12c. LEFT-SIDEBAR TOC — "About This Report" navigation
   Height bounded by viewport so License Options always fit on screen.
   Inner scroll on the list; CTA pinned to the bottom of the sticky sidebar.
   ============================================================================= */
.ex-scope .ex-detail-toc {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
}
@media (max-width: 960px) {
  .ex-scope .ex-detail-toc {
    height: auto;
    flex: none;
  }
}
.ex-scope .ex-detail-toc__title {
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  padding: 0 12px 10px;
  border-bottom: 1px solid var(--ds-hairline);
  margin: 0 0 4px;
  flex: 0 0 auto;
}

/* Scrollable list with clipped max-height */
.ex-scope .ex-detail-toc__list {
  list-style: none;
  padding: 2px 0;
  margin: 0;
  overflow-y: auto;
  min-height: 0;
  flex: 1 1 auto;
  /* Fade edge cue so users know it scrolls */
  mask-image: linear-gradient(to bottom, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
  scrollbar-width: thin;
  scrollbar-color: var(--ds-hairline-strong) transparent;
}
.ex-scope .ex-detail-toc__list::-webkit-scrollbar { width: 4px; }
.ex-scope .ex-detail-toc__list::-webkit-scrollbar-track { background: transparent; }
.ex-scope .ex-detail-toc__list::-webkit-scrollbar-thumb {
  background: var(--ds-hairline-strong);
  border-radius: 2px;
}
.ex-scope .ex-detail-toc__list::-webkit-scrollbar-thumb:hover { background: var(--ds-muted); }

.ex-scope .ex-detail-toc__link {
  display: block;
  padding: 7px 12px;                  /* was 10px — tighter */
  border-left: 2px solid transparent;
  color: var(--ds-body);
  font-size: 0.88rem;                 /* was 0.9rem */
  border-bottom: 0;
  transition: color var(--ds-dur-fast) var(--ds-ease-out),
              border-color var(--ds-dur-fast) var(--ds-ease-out),
              background var(--ds-dur-fast) var(--ds-ease-out);
  line-height: 1.3;
}
.ex-scope .ex-detail-toc__link:hover {
  color: var(--ds-ink);
  background: var(--ds-paper-warm);
  border-bottom: 0;
}
.ex-scope .ex-detail-toc__link.is-active {
  border-left-color: var(--ds-ink);
  color: var(--ds-ink);
  font-weight: 600;
  background: var(--ds-paper-warm);
}

/* CTA block below list — never scrolls, always visible */
.ex-scope .ex-detail-toc__cta {
  flex: 0 0 auto;
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--ds-hairline);
}

/* Standardized section padding — every section same top/bottom */
.ex-scope .ex-detail-section {
  padding-block: 48px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-detail-section:first-child {
  border-top: 0;
  padding-top: 0;
}
.ex-scope .ex-detail-section:last-child {
  padding-bottom: 0;
}

/* Key takeaways bullets */
.ex-scope .ex-takeaways {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 32px;
}
@media (max-width: 720px) {
  .ex-scope .ex-takeaways { grid-template-columns: 1fr; }
}
.ex-scope .ex-takeaways__item {
  padding: 16px 0 16px 20px;
  border-top: 1px solid var(--ds-hairline);
  position: relative;
}
.ex-scope .ex-takeaways__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  width: 8px;
  height: 8px;
  background: var(--ds-ink);
  border-radius: 50%;
}
.ex-scope .ex-takeaways__title {
  font-family: var(--ds-font-display);
  font-size: 1rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0 0 6px;
}
.ex-scope .ex-takeaways__body {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-takeaways__body strong {
  color: var(--ds-ink);
  font-weight: 600;
}

/* =============================================================================
   12d. KEY HIGHLIGHTS — 2-column bullet cards with numbers highlighted
   ============================================================================= */
.ex-scope .ex-highlights {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 720px) {
  .ex-scope .ex-highlights { grid-template-columns: 1fr; }
}
.ex-scope .ex-highlights__item {
  padding: 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ds-body);
  position: relative;
  padding-left: 44px;
}
.ex-scope .ex-highlights__num {
  position: absolute;
  left: 16px;
  top: 20px;
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-highlights__item strong {
  color: var(--ds-ink);
  font-weight: 600;
}

/* =============================================================================
   12d-b. SEGMENTS 2-COL LAYOUT — intro LEFT + By type RIGHT (visible divider)
   Only used for the first axis (By type). Other axes render full-width below.
   ============================================================================= */
.ex-scope .ex-segments-layout {
  display: grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  padding-bottom: 8px;
}
@media (max-width: 900px) {
  .ex-scope .ex-segments-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.ex-scope .ex-segments-layout__intro {
  align-self: start;
  padding-right: 40px;
  border-right: 1px solid var(--ds-hairline);
  min-height: 240px;
}
@media (max-width: 900px) {
  .ex-scope .ex-segments-layout__intro {
    padding-right: 0;
    border-right: 0;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--ds-hairline);
    min-height: 0;
  }
}
.ex-scope .ex-segments-layout__intro .ex-h2 {
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.15;
  margin-bottom: 16px;
}
.ex-scope .ex-segments-layout__axes {
  min-width: 0;
}

/* =============================================================================
   12e. SUB-SEGMENT CARDS — full-width vertical stack (numbered)
   Each card spans full row so name + performance + significance breathe.
   ============================================================================= */
/* PHASE C1+ (2026-08-25): switched from vertical stack to responsive grid.
   Simple "Name (X%)" cards fit 3-4 per row on desktop; rich cards with
   Performance + Significance prose expand to full width via .has-body. */
.ex-scope .ex-subseg-grid {
  list-style: none;
  counter-reset: subseg-item;
  padding: 0;
  margin: 20px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.ex-scope .ex-subseg {
  counter-increment: subseg-item;
  padding: 16px 16px 16px 60px;
  border: 1px solid var(--ds-hairline);
  border-radius: 4px;
  background: var(--ds-paper, #faf7f0);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 68px;
}
/* Rich cards (with Performance/Significance) span full width */
.ex-scope .ex-subseg.has-body {
  grid-column: 1 / -1;
  padding: 20px 20px 20px 60px;
}
.ex-scope .ex-subseg::before {
  content: counter(subseg-item, decimal-leading-zero);
  position: absolute;
  left: 12px;
  top: 18px;
  width: 36px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-ink);
  border: 1px solid var(--ds-ink);
  border-radius: 2px;
  line-height: 1;
}
/* Full-page single-column stack under 640px */
@media (max-width: 640px) {
  .ex-scope .ex-subseg-grid { grid-template-columns: 1fr; }
}
.ex-scope .ex-subseg__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
}
.ex-scope .ex-subseg__name {
  font-family: var(--ds-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
  line-height: 1.25;
}
.ex-scope .ex-subseg__share {
  font-family: var(--ds-font-mono);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ds-growth);
  white-space: nowrap;
  padding: 2px 10px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: 2px;
}
/* Performance + Significance rows — 2 cols side-by-side within a single sub-segment card */
.ex-scope .ex-subseg__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 32px;
}
@media (max-width: 720px) {
  .ex-scope .ex-subseg__body { grid-template-columns: 1fr; }
}
.ex-scope .ex-subseg__row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ex-scope .ex-subseg__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-subseg__value {
  color: var(--ds-body);
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0;
}

/* Simple text bullet variant when only names are known (no perf/share) */
.ex-scope .ex-segment-list {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 8px 20px;
}
.ex-scope .ex-segment-list li {
  padding: 10px 14px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  font-size: 0.9rem;
  color: var(--ds-body);
}

/* =============================================================================
   12f. MARKET DYNAMICS prose — driver/restraint prose blocks
   ============================================================================= */
.ex-scope .ex-dynamics {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 20px;
}
.ex-scope .ex-dynamics__col {
  padding: 22px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  border-top: 2px solid;
}
.ex-scope .ex-dynamics__col--drivers { border-top-color: var(--ds-growth); }
.ex-scope .ex-dynamics__col--restraints { border-top-color: var(--ds-decline); }
.ex-scope .ex-dynamics__col--opportunities { border-top-color: var(--ds-warn); }
.ex-scope .ex-dynamics__col--trends { border-top-color: var(--ds-link); }

.ex-scope .ex-dynamics__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 8px;
}
.ex-scope .ex-dynamics__title {
  font-family: var(--ds-font-display);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0 0 16px;
}
/* Bullet list inside a dynamics column — full-width vertical stack (numbered) */
.ex-scope .ex-dynamics__list {
  list-style: none;
  counter-reset: dyn-bullet;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.ex-scope .ex-dynamics__list li {
  counter-increment: dyn-bullet;
  position: relative;
  padding: 16px 0 16px 52px;
  border-bottom: 1px solid var(--ds-hairline);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ds-body);
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.ex-scope .ex-dynamics__list li:first-child { padding-top: 4px; }
.ex-scope .ex-dynamics__list li:last-child { border-bottom: 0; padding-bottom: 4px; }

/* 2026-08-25 — title + body split inside each numbered bullet */
.ex-scope .ex-dynamics__item-title {
  display: block;
  font-weight: 700;
  color: var(--ds-ink);
  font-family: var(--ds-font-body);
  font-size: 0.98rem;
  line-height: 1.35;
  margin-bottom: 6px;
  text-align: left;                /* headline stays left, not justified */
  hyphens: manual;
}
.ex-scope .ex-dynamics__item-body {
  display: block;
  color: var(--ds-body);
  font-size: 0.92rem;
  line-height: 1.6;
  padding-left: 14px;              /* indent like a sub-bullet under the title */
  border-left: 2px solid var(--ds-hairline);
}
.ex-scope .ex-dynamics__list li::before {
  content: counter(dyn-bullet, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 14px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ds-font-mono);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ds-muted);
  background: transparent;
  border: 1px solid var(--ds-hairline);
  border-radius: 50%;
}
.ex-scope .ex-dynamics__list li:first-child::before { top: 2px; }
.ex-scope .ex-dynamics__col--drivers .ex-dynamics__list li::before {
  color: var(--ds-growth);
  border-color: var(--ds-growth);
}
.ex-scope .ex-dynamics__col--restraints .ex-dynamics__list li::before {
  color: var(--ds-decline);
  border-color: var(--ds-decline);
}
.ex-scope .ex-dynamics__col--opportunities .ex-dynamics__list li::before {
  color: var(--ds-warn);
  border-color: var(--ds-warn);
}
.ex-scope .ex-dynamics__col--trends .ex-dynamics__list li::before {
  color: var(--ds-link);
  border-color: var(--ds-link);
}

/* =============================================================================
   12g. FAQ ACCORDION
   ============================================================================= */
.ex-scope .ex-faq {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-faq__item {
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-faq details {
  padding: 0;
}
.ex-scope .ex-faq summary {
  cursor: pointer;
  padding: 18px 40px 18px 0;
  font-family: var(--ds-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--ds-ink);
  list-style: none;
  position: relative;
  line-height: 1.4;
}
.ex-scope .ex-faq summary::-webkit-details-marker { display: none; }
.ex-scope .ex-faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 16px;
  font-family: var(--ds-font-mono);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--ds-muted);
  transition: transform 200ms ease;
  width: 24px;
  height: 24px;
  text-align: center;
  line-height: 22px;
}
.ex-scope .ex-faq details[open] summary::after {
  content: "−";
}
.ex-scope .ex-faq__answer {
  padding: 0 0 18px;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ds-body);
}
.ex-scope .ex-faq__answer p {
  margin: 0 0 10px;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;
}
.ex-scope .ex-faq__answer p:last-child { margin: 0; }

/* =============================================================================
   12h. SCOPE / WHAT'S INCLUDED — numbered question list (2-col grid)
   ============================================================================= */
.ex-scope .ex-scope-list {
  list-style: none;
  counter-reset: scope-q;
  padding: 0;
  margin: 20px 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 32px;
}
@media (max-width: 720px) {
  .ex-scope .ex-scope-list { grid-template-columns: 1fr; }
}
.ex-scope .ex-scope-list li {
  counter-increment: scope-q;
  padding: 18px 0 18px 52px;
  border-top: 1px solid var(--ds-hairline);
  position: relative;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ds-body);
  font-family: var(--ds-font-display);
  font-weight: 400;
}
.ex-scope .ex-scope-list li::before {
  content: "Q" counter(scope-q, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 16px;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-ink);
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border: 1px solid var(--ds-ink);
  border-radius: 2px;
  line-height: 1;
}

/* =============================================================================
   12i-a. REGIONS STACK — full-width numbered rows for Regulatory Landscape
   ============================================================================= */
.ex-scope .ex-regions {
  list-style: none;
  counter-reset: region-item;
  padding: 0;
  margin: 20px 0 0;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-region {
  counter-increment: region-item;
  padding: 24px 0 24px 60px;
  border-bottom: 1px solid var(--ds-hairline);
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: 20px 40px;
  align-items: start;
}
@media (max-width: 720px) {
  .ex-scope .ex-region {
    grid-template-columns: 1fr;
    gap: 8px 0;
  }
}
.ex-scope .ex-region::before {
  content: counter(region-item, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 26px;
  width: 40px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ds-ink);
  border: 1px solid var(--ds-ink);
  border-radius: 2px;
  line-height: 1;
}
.ex-scope .ex-region__name {
  font-family: var(--ds-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
  line-height: 1.25;
}
.ex-scope .ex-region__meta {
  font-family: var(--ds-font-body);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 6px 0 0;
}
.ex-scope .ex-region__body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
}

/* =============================================================================
   12i. TIMELINE (recent industry developments)
   ============================================================================= */
.ex-scope .ex-timeline {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  position: relative;
}
.ex-scope .ex-timeline::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--ds-hairline);
}
.ex-scope .ex-timeline__item {
  padding: 12px 0 12px 40px;
  position: relative;
}
.ex-scope .ex-timeline__item::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 20px;
  width: 11px;
  height: 11px;
  background: var(--ds-paper);
  border: 2px solid var(--ds-ink);
  border-radius: 50%;
}
.ex-scope .ex-timeline__date {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.ex-scope .ex-timeline__body {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-timeline__body strong {
  color: var(--ds-ink);
  font-weight: 600;
}

/* =============================================================================
   12i-c. INDUSTRIES LANDING — editorial cards + stats row
   ============================================================================= */
.ex-scope .ex-industries {
  background: var(--ds-paper);
  padding-block: clamp(40px, 6vw, 72px);
}
.ex-scope .ex-industries__crumb {
  font-size: 0.8rem;
  color: var(--ds-muted);
  margin-bottom: 20px;
}
.ex-scope .ex-industries__crumb a {
  color: var(--ds-muted);
  border-bottom: 0;
}
.ex-scope .ex-industries__crumb a:hover { color: var(--ds-ink); }
.ex-scope .ex-industries__crumb .sep { margin-inline: 8px; color: var(--ds-hairline-strong); }

.ex-scope .ex-industries__head {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 48px;
  align-items: end;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 40px;
}
@media (max-width: 900px) {
  .ex-scope .ex-industries__head {
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
  }
}
.ex-scope .ex-industries__eyebrow {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 16px;
}
.ex-scope .ex-industries__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  margin: 0 0 16px;
  max-width: 40ch;
}
.ex-scope .ex-industries__sub {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  max-width: 52ch;
}

/* Stats row inside header */
.ex-scope .ex-industries__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 20px 4px;
  position: relative;
}
.ex-scope .ex-industries__stats::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--ds-ink);
  border-radius: var(--ds-radius-md) var(--ds-radius-md) 0 0;
}
.ex-scope .ex-industries__stat {
  padding: 4px 16px;
  border-right: 1px solid var(--ds-hairline);
  text-align: center;
}
.ex-scope .ex-industries__stat:last-child { border-right: 0; }
.ex-scope .ex-industries__stat-value {
  font-family: var(--ds-font-mono);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 600;
  color: var(--ds-ink);
  display: block;
  line-height: 1;
  margin-bottom: 6px;
}
.ex-scope .ex-industries__stat-label {
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
  display: block;
}

/* Featured industry hero card — sits above the 13-card grid */
.ex-scope .ex-industries__featured {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 0;
  margin-bottom: 40px;
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-radius: var(--ds-radius-md);
  overflow: hidden;
  border-bottom: 0;
}
@media (max-width: 900px) {
  .ex-scope .ex-industries__featured {
    grid-template-columns: 1fr;
  }
}
.ex-scope .ex-industries__featured-left {
  padding: 32px;
  background: var(--ds-ink);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  min-height: 260px;
}
.ex-scope .ex-industries__featured-eyebrow {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(241, 235, 221, 0.55);
  margin: 0 0 12px;
}
.ex-scope .ex-industries__featured-name {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ds-paper);
  margin: 0 0 12px;
}
.ex-scope .ex-industries__featured-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(241, 235, 221, 0.75);
  margin: 0;
  max-width: 40ch;
}
.ex-scope .ex-industries__featured-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  font-weight: 550;
  color: var(--ds-paper);
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(241, 235, 221, 0.35);
  align-self: flex-start;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
  width: auto;
}
.ex-scope .ex-industries__featured-cta svg { width: 16px; height: 16px; flex-shrink: 0; }
.ex-scope .ex-industries__featured-cta:hover {
  border-bottom-color: var(--ds-paper);
  color: var(--ds-paper); /* lock color; overrides generic .ex-scope a:hover teal */
}

/* Right side of featured: stats grid on beige-paper */
.ex-scope .ex-industries__featured-right {
  background: var(--ds-paper-warm);
  color: var(--ds-ink);
  padding: 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 20px;
  align-content: center;
}
.ex-scope .ex-industries__featured-stat {
  padding: 12px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__featured-stat:nth-last-child(-n+2) { border-bottom: 0; }
.ex-scope .ex-industries__featured-stat-value {
  font-family: var(--ds-font-mono);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--ds-ink);
  display: block;
  line-height: 1;
  margin-bottom: 6px;
}
.ex-scope .ex-industries__featured-stat-label {
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
  display: block;
}
.ex-scope .ex-industries__featured-latest {
  grid-column: 1 / -1;
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--ds-hairline);
  display: block;
  color: var(--ds-ink);
  border-bottom: 0;
  transition: opacity var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-industries__featured-latest:hover { opacity: 0.75; }
.ex-scope .ex-industries__featured-latest-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-industries__featured-latest-date svg { width: 12px; height: 12px; }
.ex-scope .ex-industries__featured-latest-label {
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 6px;
  display: block;
}
.ex-scope .ex-industries__featured-latest-title {
  font-family: var(--ds-font-display);
  font-size: 1rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
}

/* State of the Desks — analyst Q&A block */
.ex-scope .ex-industries__pulse {
  margin-bottom: 40px;
  padding: 40px 0 32px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__pulse-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin-bottom: 32px;
  max-width: 720px;
}
.ex-scope .ex-industries__pulse-eyebrow {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 4px;
}
.ex-scope .ex-industries__pulse-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-industries__pulse-sub {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ds-muted);
  margin: 6px 0 0;
  max-width: 90ch;
}
.ex-scope .ex-industries__pulse-list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: none;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__pulse-item {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 40px;
  padding: 24px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__pulse-item:last-child { border-bottom: 0; }
@media (max-width: 720px) {
  .ex-scope .ex-industries__pulse-item {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.ex-scope .ex-industries__pulse-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ex-scope .ex-industries__pulse-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-industries__pulse-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-body);
  padding: 4px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
}
.ex-scope .ex-industries__pulse-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ex-scope .ex-industries__pulse-q {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.35;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
}
.ex-scope .ex-industries__pulse-a {
  font-size: 0.94rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: none;
}
.ex-scope .ex-industries__pulse-foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__pulse-foot-note {
  font-size: 0.78rem;
  color: var(--ds-muted);
  font-style: italic;
}
.ex-scope .ex-industries__pulse-foot-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-industries__pulse-foot-cta svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.ex-scope .ex-industries__pulse-foot-cta:hover {
  border-bottom-color: var(--ds-ink);
}

/* Recent industry moves band */
.ex-scope .ex-industries__moves {
  margin-bottom: 40px;
  padding: 32px 0 20px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__moves-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 20px;
  gap: 20px;
  flex-wrap: wrap;
}
.ex-scope .ex-industries__moves-title {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-industries__moves-link {
  font-size: 0.82rem;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 2px;
}
.ex-scope .ex-industries__moves-link svg { width: 14px; height: 14px; flex-shrink: 0; }
.ex-scope .ex-industries__moves-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-industries__move {
  padding: 22px 24px 24px 20px;
  border-right: 1px solid var(--ds-hairline);
  transition: background var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-industries__move:first-child { padding-left: 0; }
.ex-scope .ex-industries__move:last-child { border-right: 0; padding-right: 0; }
@media (max-width: 720px) {
  .ex-scope .ex-industries__move {
    border-right: 0;
    border-bottom: 1px solid var(--ds-hairline);
    padding: 20px 0;
  }
  .ex-scope .ex-industries__move:last-child { border-bottom: 0; }
}
.ex-scope .ex-industries__move a {
  color: var(--ds-ink);
  border-bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-industries__move a:hover .ex-industries__move-title {
  border-bottom-color: var(--ds-ink);
}
.ex-scope .ex-industries__move-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ds-font-mono);
  font-size: 0.7rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-industries__move-meta-tag {
  padding: 2px 8px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  color: var(--ds-body);
  white-space: nowrap;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ex-scope .ex-industries__move-title {
  font-family: var(--ds-font-display);
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
  line-height: 1.35;
  padding-bottom: 1px;
  border-bottom: 1px solid transparent;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Grid of industry cards */
.ex-scope .ex-industries__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.ex-scope .ex-industries__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  color: inherit;
  text-decoration: none;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out),
              background var(--ds-dur-fast) var(--ds-ease-out);
  border-bottom: 1px solid var(--ds-hairline);
  min-height: 180px;
}
.ex-scope .ex-industries__card:hover {
  border-color: var(--ds-ink);
  transform: translateY(-2px);
  background: var(--ds-paper-cool);
  border-bottom-color: var(--ds-ink);
}
.ex-scope .ex-industries__card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.ex-scope .ex-industries__card-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-ink);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  background: var(--ds-paper);
  flex: 0 0 auto;
}
.ex-scope .ex-industries__card-icon svg { width: 22px; height: 22px; }
.ex-scope .ex-industries__card-count {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  color: var(--ds-muted);
  padding: 4px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  background: var(--ds-paper);
  white-space: nowrap;
  text-transform: uppercase;
}
.ex-scope .ex-industries__card-name {
  font-family: var(--ds-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
  line-height: 1.2;
}
.ex-scope .ex-industries__card-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  align-self: flex-start;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-industries__card:hover .ex-industries__card-cta {
  border-bottom-color: var(--ds-ink);
}
.ex-scope .ex-industries__card-cta svg {
  width: 14px;
  height: 14px;
  transition: transform var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-industries__card:hover .ex-industries__card-cta svg {
  transform: translateX(3px);
}

/* Utility card variant — sits alongside industry cards to fill grid rows.
   Inverted colour (black background) so it reads as a callout, not another industry. */
.ex-scope .ex-industries__card--utility {
  background: var(--ds-ink);
  border-color: var(--ds-ink);
  color: var(--ds-paper);
}
.ex-scope .ex-industries__card--utility:hover {
  background: #000;
  border-color: #000;
  transform: translateY(-2px);
}
.ex-scope .ex-industries__card--utility .ex-industries__card-icon {
  color: var(--ds-paper);
  background: transparent;
  border-color: rgba(241, 235, 221, 0.25);
}
.ex-scope .ex-industries__card--utility .ex-industries__card-count {
  color: rgba(241, 235, 221, 0.7);
  background: transparent;
  border-color: rgba(241, 235, 221, 0.25);
}
.ex-scope .ex-industries__card--utility .ex-industries__card-name {
  color: var(--ds-paper);
}
.ex-scope .ex-industries__card--utility .ex-industries__card-cta {
  color: var(--ds-paper);
}
.ex-scope .ex-industries__card--utility:hover .ex-industries__card-cta {
  border-bottom-color: var(--ds-paper);
}

/* Empty state */
.ex-scope .ex-industries__empty {
  grid-column: 1 / -1;
  padding: 64px 24px;
  background: var(--ds-paper-warm);
  border: 1px dashed var(--ds-hairline-strong);
  border-radius: var(--ds-radius-md);
  text-align: center;
}
.ex-scope .ex-industries__empty h3 {
  font-family: var(--ds-font-display);
  font-size: 1.4rem;
  color: var(--ds-ink);
  margin: 0 0 8px;
}
.ex-scope .ex-industries__empty p {
  font-size: 0.9rem;
  color: var(--ds-muted);
  margin: 0;
}

/* =============================================================================
   12i-c. SERVICES LANDING — process steps + service cards
   Consumes shared industry classes (crumb, head, featured, pulse) and adds
   only the differentials: 4-step process row and 3-col service cards.
   ============================================================================= */

.ex-scope .ex-services {
  padding: 32px 0 64px;
}

/* 4-step "How we work" process band */
.ex-scope .ex-services__process {
  margin-bottom: 48px;
}
.ex-scope .ex-services__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) {
  .ex-scope .ex-services__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .ex-scope .ex-services__steps { grid-template-columns: 1fr; }
}
.ex-scope .ex-services__step {
  padding: 28px 28px 28px 0;
  border-right: 1px solid var(--ds-hairline);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-services__step:first-child { padding-left: 0; }
.ex-scope .ex-services__step:not(:first-child) { padding-left: 28px; }
.ex-scope .ex-services__step:last-child { border-right: 0; }
@media (max-width: 900px) {
  .ex-scope .ex-services__step:nth-child(2n) { border-right: 0; }
  .ex-scope .ex-services__step:nth-child(n+3) { border-top: 1px solid var(--ds-hairline); }
}
@media (max-width: 560px) {
  .ex-scope .ex-services__step { border-right: 0; padding-left: 0 !important; padding-right: 0; }
  .ex-scope .ex-services__step:not(:first-child) { border-top: 1px solid var(--ds-hairline); }
}
.ex-scope .ex-services__step-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-services__step-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-services__step-desc {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}

/* Services grid wrapper — head + grid */
.ex-scope .ex-services__grid-wrap {
  margin-bottom: 48px;
}
.ex-scope .ex-services__grid-head {
  max-width: 720px;
  margin-bottom: 24px;
}
.ex-scope .ex-services__grid-head .ex-industries__pulse-title { margin-bottom: 8px; }
.ex-scope .ex-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}
.ex-scope .ex-services__card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  color: var(--ds-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--ds-hairline);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
  min-height: 280px;
  height: 100%;
}
.ex-scope .ex-services__card:hover {
  border-color: var(--ds-ink);
  transform: translateY(-2px);
}
.ex-scope .ex-services__card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ex-scope .ex-services__card-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-ink);
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
}
.ex-scope .ex-services__card-icon svg { width: 22px; height: 22px; }
.ex-scope .ex-services__card-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-services__card-name {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-services__card-desc {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  flex: 1;
}
.ex-scope .ex-services__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  align-self: flex-start;
  padding-bottom: 2px;
  margin-top: auto;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-services__card-cta svg { width: 14px; height: 14px; flex-shrink: 0; }
.ex-scope .ex-services__card:hover .ex-services__card-cta { border-bottom-color: var(--ds-ink); }

/* Utility card (bespoke engagement) — inverted */
.ex-scope .ex-services__card--utility {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-services__card--utility:hover {
  background: var(--ds-ink);
  border-color: var(--ds-ink);
}
.ex-scope .ex-services__card--utility .ex-services__card-icon {
  background: transparent;
  border-color: rgba(241, 235, 221, 0.35);
  color: var(--ds-paper);
}
.ex-scope .ex-services__card--utility .ex-services__card-num { color: rgba(241, 235, 221, 0.55); }
.ex-scope .ex-services__card--utility .ex-services__card-name { color: var(--ds-paper); }
.ex-scope .ex-services__card--utility .ex-services__card-desc { color: rgba(241, 235, 221, 0.75); }
.ex-scope .ex-services__card--utility .ex-services__card-cta {
  color: var(--ds-paper);
  border-bottom-color: rgba(241, 235, 221, 0.35);
}
.ex-scope .ex-services__card--utility:hover .ex-services__card-cta { border-bottom-color: var(--ds-paper); }

/* Always-visible extended overview block — structured editorial layout */
.ex-scope .ex-services__overview {
  margin: 48px 0 24px;
  padding: 40px 0 32px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-services__overview-head {
  max-width: 720px;
  margin-bottom: 40px;
}
.ex-scope .ex-services__overview-head .ex-industries__pulse-title { margin-bottom: 8px; }

/* Each parsed section = 2-col: left heading col (num + title) / right body */
.ex-scope .ex-services__ov-block {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 56px;
  padding: 32px 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-services__ov-block:first-of-type { border-top: 0; padding-top: 0; }
@media (max-width: 900px) {
  .ex-scope .ex-services__ov-block {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.ex-scope .ex-services__ov-heading-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: sticky;
  top: 100px;
  align-self: start;
}
@media (max-width: 900px) {
  .ex-scope .ex-services__ov-heading-col { position: static; }
}
.ex-scope .ex-services__ov-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--ds-muted);
}
.ex-scope .ex-services__ov-heading {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-services__ov-intro {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ds-muted);
  margin-top: 4px;
}
.ex-scope .ex-services__ov-intro p { margin: 0 0 8px; }

/* Prose column (non-list sections) */
.ex-scope .ex-services__ov-prose {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ds-body);
  max-width: 66ch;
}
.ex-scope .ex-services__ov-prose p { margin: 0 0 16px; }
.ex-scope .ex-services__ov-prose p:last-child { margin-bottom: 0; }
.ex-scope .ex-services__ov-prose b,
.ex-scope .ex-services__ov-prose strong { color: var(--ds-ink); font-weight: 600; }
.ex-scope .ex-services__ov-prose a { color: var(--ds-link); border-bottom: 1px solid var(--ds-hairline); }

/* Card grid — the delivery-value <ul> block becomes a 2x2 grid */
.ex-scope .ex-services__ov-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 720px) {
  .ex-scope .ex-services__ov-cards { grid-template-columns: 1fr; }
}
.ex-scope .ex-services__ov-card {
  padding: 20px 22px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-services__ov-card:hover { border-color: var(--ds-ink); }
.ex-scope .ex-services__ov-card-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
}
.ex-scope .ex-services__ov-card-body {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-services__ov-card-body b,
.ex-scope .ex-services__ov-card-body strong { color: var(--ds-ink); font-weight: 600; }

/* =============================================================================
   12i-d. BLOG LANDING — sidebar filter + stacked editorial rows + pagination
   ============================================================================= */

.ex-scope .ex-blog { padding: 32px 0 64px; }

/* Body: 2-col — sidebar + main */
.ex-scope .ex-blog__body {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 48px;
  margin-top: 40px;
}
@media (max-width: 900px) {
  .ex-scope .ex-blog__body { grid-template-columns: 1fr; gap: 32px; }
}

/* Sidebar — sticky wrapper contains scrollable category list + year chips + CTA */
.ex-scope .ex-blog__sidebar {
  position: sticky;
  top: 100px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-height: calc(100vh - 120px);
  overflow: hidden;
}
@media (max-width: 900px) {
  .ex-scope .ex-blog__sidebar {
    position: static;
    max-height: none;
    overflow: visible;
  }
}
.ex-scope .ex-blog__sidebar-section {
  border-top: 1px solid var(--ds-hairline);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ex-scope .ex-blog__sidebar-eyebrow {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 12px;
  flex-shrink: 0;
}

/* Scrollable category container — themed thin scrollbar */
.ex-scope .ex-blog__cat-scroll {
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 340px;
  padding-right: 8px;
  scrollbar-width: thin;
  scrollbar-color: var(--ds-hairline-strong) transparent;
  mask-image: linear-gradient(to bottom, black calc(100% - 24px), transparent);
  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 24px), transparent);
}
@media (max-width: 900px) {
  .ex-scope .ex-blog__cat-scroll {
    max-height: none;
    mask-image: none;
    -webkit-mask-image: none;
    padding-right: 0;
  }
}
.ex-scope .ex-blog__cat-scroll::-webkit-scrollbar { width: 4px; }
.ex-scope .ex-blog__cat-scroll::-webkit-scrollbar-track { background: transparent; }
.ex-scope .ex-blog__cat-scroll::-webkit-scrollbar-thumb {
  background: var(--ds-hairline-strong);
  border-radius: 2px;
}
.ex-scope .ex-blog__cat-scroll::-webkit-scrollbar-thumb:hover { background: var(--ds-muted); }

.ex-scope .ex-blog__cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ex-scope .ex-blog__cat-list li { border-bottom: 1px solid var(--ds-hairline); }
.ex-scope .ex-blog__cat-list li:last-child { border-bottom: 0; }
.ex-scope .ex-blog__cat-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  gap: 8px;
  align-items: center;
  padding: 10px 4px 10px 12px;
  color: var(--ds-body);
  font-size: 0.87rem;
  border-bottom: 0;
  border-left: 2px solid transparent;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-blog__cat-link > span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ex-scope .ex-blog__cat-link:hover {
  color: var(--ds-ink);
  border-left-color: var(--ds-hairline-strong);
}
.ex-scope .ex-blog__cat-link.is-active {
  color: var(--ds-ink);
  font-weight: 600;
  border-left-color: var(--ds-ink);
}
.ex-scope .ex-blog__cat-count {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  padding-left: 8px;
  border-left: 1px solid var(--ds-hairline);
  text-align: right;
}

/* Year chips section */
.ex-scope .ex-blog__year-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ex-scope .ex-blog__year-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 5px 10px;
  font-family: var(--ds-font-mono);
  font-size: 0.76rem;
  color: var(--ds-body);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  border-bottom: 1px solid var(--ds-hairline);
  transition: all var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-blog__year-chip:hover { border-color: var(--ds-ink); color: var(--ds-ink); }
.ex-scope .ex-blog__year-chip.is-active {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-blog__year-chip-count {
  font-size: 0.66rem;
  opacity: 0.6;
}

/* Sidebar CTA at the bottom */
.ex-scope .ex-blog__sidebar-cta {
  padding: 16px 14px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__sidebar-cta-eyebrow {
  font-size: 0.75rem;
  color: var(--ds-muted);
  margin: 0 0 8px;
}
.ex-scope .ex-blog__sidebar-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-blog__sidebar-cta-link svg { width: 13px; height: 13px; }
.ex-scope .ex-blog__sidebar-cta-link:hover { border-bottom-color: var(--ds-ink); }

/* Pinned editorial picks */
.ex-scope .ex-blog__pinned {
  margin-top: 40px;
  padding: 32px 0 24px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__pinned-head {
  max-width: 720px;
  margin-bottom: 24px;
}
.ex-scope .ex-blog__pinned-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 8px 0 0;
}
.ex-scope .ex-blog__pinned-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) { .ex-scope .ex-blog__pinned-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-blog__pinned-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 24px 20px 0;
  border-right: 1px solid var(--ds-hairline);
  color: var(--ds-ink);
  border-bottom: 0;
}
.ex-scope .ex-blog__pinned-card:first-child { padding-left: 0; }
.ex-scope .ex-blog__pinned-card:not(:first-child) { padding-left: 24px; }
.ex-scope .ex-blog__pinned-card:last-child { border-right: 0; padding-right: 0; }
@media (max-width: 900px) {
  .ex-scope .ex-blog__pinned-card {
    border-right: 0;
    border-bottom: 1px solid var(--ds-hairline);
    padding: 18px 0 !important;
  }
  .ex-scope .ex-blog__pinned-card:last-child { border-bottom: 0; }
}
.ex-scope .ex-blog__pinned-cat {
  font-family: var(--ds-font-body);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-blog__pinned-card-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: text-decoration-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-blog__pinned-card:hover .ex-blog__pinned-card-title { text-decoration-color: var(--ds-ink); }
.ex-scope .ex-blog__pinned-card-desc {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  flex: 1;
}
.ex-scope .ex-blog__pinned-card-read {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
  margin-top: 4px;
}

/* About this archive */
.ex-scope .ex-blog__about {
  margin-top: 40px;
  padding: 32px 0 8px;
}
.ex-scope .ex-blog__about-head {
  max-width: 720px;
  margin-bottom: 24px;
}
.ex-scope .ex-blog__about-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 8px 0 0;
}
.ex-scope .ex-blog__about-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
}
@media (max-width: 900px) { .ex-scope .ex-blog__about-grid { grid-template-columns: 1fr; gap: 24px; } }
.ex-scope .ex-blog__about-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ex-scope .ex-blog__about-num {
  font-family: var(--ds-font-mono);
  font-size: 0.75rem;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-blog__about-item-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-blog__about-item-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
}

/* Reading paths */
.ex-scope .ex-blog__paths {
  margin-top: 40px;
  padding: 32px 0 24px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__paths-head {
  max-width: 720px;
  margin-bottom: 24px;
}
.ex-scope .ex-blog__paths-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 8px 0 6px;
}
.ex-scope .ex-blog__paths-sub {
  font-size: 0.94rem;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-blog__paths-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 1100px) { .ex-scope .ex-blog__paths-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .ex-scope .ex-blog__paths-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-blog__path-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  color: var(--ds-ink);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
  border-bottom: 1px solid var(--ds-hairline);
  min-height: 180px;
}
.ex-scope .ex-blog__path-card:hover {
  border-color: var(--ds-ink);
  transform: translateY(-2px);
}
.ex-scope .ex-blog__path-card-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-blog__path-card-desc {
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  flex: 1;
}
.ex-scope .ex-blog__path-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  align-self: flex-start;
  padding-bottom: 2px;
}
.ex-scope .ex-blog__path-card-cta svg { width: 12px; height: 12px; }

/* Row meta chips: date + tag + read-time */
.ex-scope .ex-blog__row-date {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-blog__row-read {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}

/* Main column */
.ex-scope .ex-blog__main { min-width: 0; }
.ex-scope .ex-blog__main-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__main-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-blog__main-count {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  color: var(--ds-muted);
  margin: 0;
  letter-spacing: 0.04em;
}

/* Stacked list */
.ex-scope .ex-blog__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ex-scope .ex-blog__row {
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__row-link {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 0;
  color: var(--ds-ink);
  border-bottom: 0;
}
.ex-scope .ex-blog__row-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-blog__row-date { color: var(--ds-muted); }
.ex-scope .ex-blog__row-tag {
  padding: 2px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  color: var(--ds-body);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
}
.ex-scope .ex-blog__row-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 4px 0 6px;
  transition: text-decoration-color var(--ds-dur-fast) var(--ds-ease-out);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
}
.ex-scope .ex-blog__row-link:hover .ex-blog__row-title {
  text-decoration-color: var(--ds-ink);
}
.ex-scope .ex-blog__row-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
  max-width: 70ch;
}
.ex-scope .ex-blog__row-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  align-self: flex-start;
  padding-bottom: 2px;
  margin-top: 4px;
}
.ex-scope .ex-blog__row-cta svg { width: 14px; height: 14px; flex-shrink: 0; }

.ex-scope .ex-blog__empty {
  padding: 48px 24px;
  text-align: center;
  border: 1px dashed var(--ds-hairline-strong);
  border-radius: var(--ds-radius-md);
  color: var(--ds-muted);
}
.ex-scope .ex-blog__empty h3 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0 0 8px;
}
.ex-scope .ex-blog__empty a { color: var(--ds-link); border-bottom: 1px solid var(--ds-hairline); }

/* Pagination */
.ex-scope .ex-blog__pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__page {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ds-font-body);
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  padding: 8px 14px;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  background: var(--ds-paper-warm);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-blog__page:hover { border-color: var(--ds-ink); }
.ex-scope .ex-blog__page svg { width: 14px; height: 14px; }
.ex-scope .ex-blog__page--disabled {
  color: var(--ds-muted);
  border-color: transparent;
  background: transparent;
  pointer-events: none;
}
.ex-scope .ex-blog__page-info {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}

/* =============================================================================
   12i-e. PRESS RELEASES — newsroom stacked list + year filter + media block
   ============================================================================= */

.ex-scope .ex-press { padding: 32px 0 64px; }

/* Year filter chips */
.ex-scope .ex-press__filter {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 32px 0 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-press__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ds-body);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  background: transparent;
  border-bottom: 1px solid var(--ds-hairline);
  transition: all var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-press__chip:hover {
  color: var(--ds-ink);
  border-color: var(--ds-ink);
}
.ex-scope .ex-press__chip.is-active {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-press__chip-count {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  opacity: 0.7;
}

/* Main + list header */
.ex-scope .ex-press__main { min-width: 0; }
.ex-scope .ex-press__main-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.ex-scope .ex-press__main-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  line-height: 1.2;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-press__main-count {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  color: var(--ds-muted);
  margin: 0;
  letter-spacing: 0.04em;
}

/* Newsroom stacked list */
.ex-scope .ex-press__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  border-top: 1px solid var(--ds-hairline);
  counter-reset: none;
}
.ex-scope .ex-press__row { border-bottom: 1px solid var(--ds-hairline); }
.ex-scope .ex-press__row-link {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 32px;
  padding: 28px 0;
  color: var(--ds-ink);
  border-bottom: 0;
  align-items: start;
  transition: background var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-press__row-link:hover { background: rgba(0, 0, 0, 0.015); }
@media (max-width: 640px) {
  .ex-scope .ex-press__row-link { grid-template-columns: 1fr; gap: 8px; }
}
.ex-scope .ex-press__row-date {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--ds-font-mono);
  color: var(--ds-ink);
  border-left: 2px solid var(--ds-hairline-strong);
  padding-left: 14px;
  line-height: 1;
}
.ex-scope .ex-press__row-date-day {
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.ex-scope .ex-press__row-date-mon {
  font-size: 0.7rem;
  color: var(--ds-muted);
  letter-spacing: 0.12em;
  margin-top: 4px;
}
.ex-scope .ex-press__row-date-yr {
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
@media (max-width: 640px) {
  .ex-scope .ex-press__row-date { flex-direction: row; align-items: baseline; gap: 8px; border-left: 0; padding-left: 0; }
  .ex-scope .ex-press__row-date-day { font-size: 1rem; }
  .ex-scope .ex-press__row-date-mon { margin-top: 0; }
}
.ex-scope .ex-press__row-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ex-scope .ex-press__row-meta {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.ex-scope .ex-press__row-kicker {
  font-family: var(--ds-font-body);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-press__row-tag {
  font-size: 0.7rem;
  padding: 2px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  color: var(--ds-body);
  letter-spacing: 0.04em;
}
.ex-scope .ex-press__row-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
  transition: text-decoration-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-press__row-link:hover .ex-press__row-title { text-decoration-color: var(--ds-ink); }
.ex-scope .ex-press__row-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
  max-width: 70ch;
}
.ex-scope .ex-press__row-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  align-self: flex-start;
  padding-bottom: 2px;
}
.ex-scope .ex-press__row-cta svg { width: 13px; height: 13px; flex-shrink: 0; }

/* Row footer — flex row with cta on left, referenced-report on right */
.ex-scope .ex-press__row-footer {
  display: flex;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.ex-scope .ex-press__row-report {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--ds-muted);
  flex-wrap: wrap;
}
.ex-scope .ex-press__row-report-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-press__row-report-title {
  color: var(--ds-body);
  font-style: italic;
}

/* Editorial monthly headlines band */
.ex-scope .ex-press__headlines {
  margin-top: 40px;
  padding: 32px 0 24px;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-press__headlines-head {
  max-width: 720px;
  margin-bottom: 24px;
}
.ex-scope .ex-press__headlines-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 8px 0 0;
}
.ex-scope .ex-press__headlines-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-press__headlines-item {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-press__headlines-item:last-child { border-bottom: 0; }
@media (max-width: 720px) {
  .ex-scope .ex-press__headlines-item {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.ex-scope .ex-press__headlines-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-press__headlines-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ex-scope .ex-press__headlines-tag {
  display: inline-block;
  align-self: flex-start;
  padding: 3px 10px;
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-body);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
}
.ex-scope .ex-press__headlines-text {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: 70ch;
}

.ex-scope .ex-press__empty {
  padding: 48px 24px;
  text-align: center;
  border: 1px dashed var(--ds-hairline-strong);
  border-radius: var(--ds-radius-md);
  color: var(--ds-muted);
}
.ex-scope .ex-press__empty h3 {
  font-family: var(--ds-font-display);
  color: var(--ds-ink);
  margin: 0 0 8px;
  font-weight: 500;
}
.ex-scope .ex-press__empty a { color: var(--ds-link); border-bottom: 1px solid var(--ds-hairline); }

/* Media enquiries footer band */
.ex-scope .ex-press__media {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  margin-top: 48px;
  padding: 40px;
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-radius: var(--ds-radius-md);
}
@media (max-width: 720px) {
  .ex-scope .ex-press__media { grid-template-columns: 1fr; padding: 28px; }
}
.ex-scope .ex-press__media .ex-industries__pulse-eyebrow {
  color: rgba(241, 235, 221, 0.55);
  margin-bottom: 10px;
}
.ex-scope .ex-press__media-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-paper);
  margin: 0 0 10px;
  max-width: 30ch;
}
.ex-scope .ex-press__media-sub {
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(241, 235, 221, 0.75);
  margin: 0;
  max-width: 60ch;
}
.ex-scope .ex-press__media-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  min-width: 200px;
}
.ex-scope .ex-press__media-actions .ex-btn--ghost {
  color: var(--ds-paper);
  border: 1px solid rgba(241, 235, 221, 0.35);
  background: transparent;
}
.ex-scope .ex-press__media-actions .ex-btn--ghost:hover {
  border-color: var(--ds-paper);
}

/* =============================================================================
   12i-m. CASE STUDIES — listing (chips + card grid) + detail (5-part story)
   ============================================================================= */

.ex-scope .ex-cases { padding: 32px 0 64px; }

/* Filter chips */
.ex-scope .ex-cases__filter {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 32px 0 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cases__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ds-body);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  background: transparent;
  border-bottom: 1px solid var(--ds-hairline);
  transition: all var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-cases__chip:hover { color: var(--ds-ink); border-color: var(--ds-ink); }
.ex-scope .ex-cases__chip.is-active {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-cases__chip-count {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  opacity: 0.7;
}

/* Grid head */
.ex-scope .ex-cases__grid-wrap { margin-top: 8px; }
.ex-scope .ex-cases__grid-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cases__grid-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-cases__grid-count {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  color: var(--ds-muted);
  margin: 0;
  letter-spacing: 0.04em;
}

/* Card grid — 2 columns, editorial cards */
.ex-scope .ex-cases__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 720px) { .ex-scope .ex-cases__grid { grid-template-columns: 1fr; } }
.ex-scope .ex-cases__card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  color: var(--ds-ink);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              transform var(--ds-dur-fast) var(--ds-ease-out);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cases__card:hover {
  border-color: var(--ds-ink);
  transform: translateY(-2px);
}
.ex-scope .ex-cases__card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
}
.ex-scope .ex-cases__card-industry {
  padding: 3px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  color: var(--ds-body);
  text-transform: uppercase;
  font-weight: 650;
  letter-spacing: 0.1em;
  font-size: 0.62rem;
}
.ex-scope .ex-cases__card-duration {
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ex-scope .ex-cases__card-headline {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.6vw, 1.3rem);
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-cases__card-dek {
  font-size: 0.94rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
  flex: 1;
}
.ex-scope .ex-cases__card-foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cases__card-client {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
  font-style: italic;
}
.ex-scope .ex-cases__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-cases__card-cta svg { width: 13px; height: 13px; flex-shrink: 0; }

.ex-scope .ex-cases__empty {
  padding: 48px 24px;
  text-align: center;
  border: 1px dashed var(--ds-hairline-strong);
  border-radius: var(--ds-radius-md);
  color: var(--ds-muted);
}
.ex-scope .ex-cases__empty h3 {
  font-family: var(--ds-font-display);
  color: var(--ds-ink);
  margin: 0 0 8px;
  font-weight: 500;
}
.ex-scope .ex-cases__empty a { color: var(--ds-link); border-bottom: 1px solid var(--ds-hairline); }

/* -------- CASE DETAIL PAGE -------- */
.ex-scope .ex-casedetail { padding: 32px 0 64px; }

/* Article header */
.ex-scope .ex-casedetail__head {
  max-width: 900px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 48px;
}
.ex-scope .ex-casedetail__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.6vw, 2.75rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  margin: 12px 0 18px;
  max-width: 38ch;
}
.ex-scope .ex-casedetail__lede {
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0 0 24px;
  max-width: 62ch;
}
.ex-scope .ex-casedetail__meta {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 16px;
}
.ex-scope .ex-casedetail__meta-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 28px;
  margin-right: 28px;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-casedetail__meta-item:last-child { border-right: 0; padding-right: 0; margin-right: 0; }
.ex-scope .ex-casedetail__meta-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-casedetail__meta-value {
  font-size: 0.92rem;
  color: var(--ds-ink);
  font-weight: 500;
}

/* Story — 4 numbered blocks */
.ex-scope .ex-casedetail__story {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-casedetail__step {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 48px;
  padding: 32px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-casedetail__step { grid-template-columns: 1fr; gap: 12px; }
}
.ex-scope .ex-casedetail__step-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: sticky;
  top: 100px;
  align-self: start;
}
@media (max-width: 720px) { .ex-scope .ex-casedetail__step-meta { position: static; } }
.ex-scope .ex-casedetail__step-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-casedetail__step-label {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.6vw, 1.35rem);
  line-height: 1.25;
  color: var(--ds-ink);
  letter-spacing: -0.01em;
}
.ex-scope .ex-casedetail__step-body p {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ds-body);
  margin: 0;
  max-width: 68ch;
}

.ex-scope .ex-casedetail__note {
  margin: 24px 0 0;
  padding: 16px 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--ds-muted);
  font-style: italic;
  max-width: 78ch;
}
.ex-scope .ex-casedetail__note a { color: var(--ds-ink); border-bottom: 1px solid var(--ds-hairline); font-style: normal; }

.ex-scope .ex-casedetail__related {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--ds-hairline);
}

/* =============================================================================
   12i-l. METHODOLOGY PAGE — narrative intro + report anatomy list
   ============================================================================= */

.ex-scope .ex-method { padding: 32px 0 64px; }

/* Lead prose (parsed from DB) */
.ex-scope .ex-method__intro { margin-top: 24px; }
.ex-scope .ex-method__prose {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ds-body);
  max-width: 74ch;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-method__prose p { margin: 0 0 16px; }
.ex-scope .ex-method__prose p:last-child { margin-bottom: 0; }
.ex-scope .ex-method__prose b,
.ex-scope .ex-method__prose strong { color: var(--ds-ink); font-weight: 600; }

/* Report anatomy — 2-col numbered list */
.ex-scope .ex-method__anatomy { margin-top: 48px; }
.ex-scope .ex-method__anatomy-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 48px;
  border-top: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-method__anatomy-list { grid-template-columns: 1fr; }
}
.ex-scope .ex-method__anatomy-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-method__anatomy-num {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-method__anatomy-text {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.02rem;
  line-height: 1.4;
  color: var(--ds-ink);
  letter-spacing: -0.005em;
}

/* =============================================================================
   12i-h. CATEGORY DETAIL — taxonomy labels + recent reports + CTA
   ============================================================================= */

.ex-scope .ex-catdetail { padding: 32px 0 24px; }
.ex-scope .ex-catdetail__body { padding: 0 0 64px; }

.ex-scope .ex-catdetail__cta-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}

/* Taxonomy — numbered nested label list */
.ex-scope .ex-catdetail__taxonomy { margin-top: 48px; }
.ex-scope .ex-catdetail__label-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-catdetail__label-item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 32px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-catdetail__label-item { grid-template-columns: 1fr; gap: 12px; }
}
.ex-scope .ex-catdetail__label-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-catdetail__label-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.2rem, 1.8vw, 1.5rem);
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
.ex-scope .ex-catdetail__label-desc {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0 0 16px;
  max-width: 68ch;
}
.ex-scope .ex-catdetail__sublabel-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ex-scope .ex-catdetail__sublabel {
  padding: 16px 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
}
.ex-scope .ex-catdetail__sublabel-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--ds-ink);
  margin: 0 0 6px;
  letter-spacing: -0.005em;
}
.ex-scope .ex-catdetail__sublabel-desc {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0 0 10px;
}
.ex-scope .ex-catdetail__subsub-list {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ex-scope .ex-catdetail__subsub-list li {
  padding-left: 16px;
  position: relative;
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--ds-body);
}
.ex-scope .ex-catdetail__subsub-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 10px;
  height: 1px;
  background: var(--ds-hairline-strong);
}
.ex-scope .ex-catdetail__subsub-list li strong { color: var(--ds-ink); font-weight: 600; }

/* Recent reports grid */
.ex-scope .ex-catdetail__reports { margin-top: 48px; }
.ex-scope .ex-catdetail__report-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
}
@media (max-width: 720px) { .ex-scope .ex-catdetail__report-list { grid-template-columns: 1fr; } }
.ex-scope .ex-catdetail__report {
  padding: 20px 22px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-catdetail__report:hover { border-color: var(--ds-ink); }
.ex-scope .ex-catdetail__report-link {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: var(--ds-ink);
  border-bottom: 0;
}
.ex-scope .ex-catdetail__report-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  font-family: var(--ds-font-mono);
  font-size: 0.7rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}
.ex-scope .ex-catdetail__report-pages {
  padding: 2px 8px;
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  color: var(--ds-body);
}
.ex-scope .ex-catdetail__report-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ex-scope .ex-catdetail__report-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
  align-self: flex-start;
  margin-top: 4px;
}
.ex-scope .ex-catdetail__report-cta svg { width: 13px; height: 13px; }
.ex-scope .ex-catdetail__reports-foot {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
}
.ex-scope .ex-catdetail__reports-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-catdetail__reports-more svg { width: 14px; height: 14px; }
.ex-scope .ex-catdetail__reports-more:hover { border-bottom-color: var(--ds-ink); }

/* =============================================================================
   12i-k. ENQUIRY FORM PAGES — request-sample / speak-to-analyst /
   inquiry / request-customization / check-discount (shared template)
   ============================================================================= */

.ex-scope .ex-formpage { padding: 32px 0 64px; }

/* Report-context strip below header */
.ex-scope .ex-formpage__report-strip {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 16px 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  margin-bottom: 32px;
}
.ex-scope .ex-formpage__report-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-formpage__report-back svg { width: 13px; height: 13px; }
.ex-scope .ex-formpage__report-back:hover { border-bottom-color: var(--ds-ink); }
.ex-scope .ex-formpage__report-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 240px;
}
.ex-scope .ex-formpage__report-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 0.98rem;
  color: var(--ds-ink);
  line-height: 1.3;
}
.ex-scope .ex-formpage__report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
}

/* 2-col: form + sidebar */
.ex-scope .ex-formpage__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
@media (max-width: 900px) { .ex-scope .ex-formpage__grid { grid-template-columns: 1fr; } }

.ex-scope .ex-formpage__form-wrap {
  padding: 28px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}

/* Captcha */
.ex-scope .ex-formpage__captcha {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ex-scope .ex-formpage__captcha-code {
  font-family: var(--ds-font-mono);
  font-size: 1.1rem;
  font-weight: 700;
  padding: 8px 16px;
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-radius: var(--ds-radius-sm);
  letter-spacing: 0.1em;
  user-select: none;
}
.ex-scope .ex-formpage__captcha-input { max-width: 220px; }

/* Handler-echoed alerts */
.ex-scope .ex-cf__alert {
  padding: 12px 16px;
  margin: 0 0 16px;
  background: rgba(138, 42, 31, 0.08);
  border: 1px solid var(--ds-decline);
  border-radius: var(--ds-radius-sm);
  color: var(--ds-decline);
  font-size: 0.9rem;
}
.ex-scope .ex-cf__alert i { margin-right: 6px; }

/* Sidebar blocks */
.ex-scope .ex-formpage__side {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: sticky;
  top: 100px;
  align-self: start;
}
@media (max-width: 900px) { .ex-scope .ex-formpage__side { position: static; } }
.ex-scope .ex-formpage__side-block {
  padding: 20px 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}
.ex-scope .ex-formpage__side-block .ex-industries__pulse-eyebrow { margin-bottom: 14px; }
.ex-scope .ex-formpage__side-block--dark {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-formpage__side-eyebrow {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(241, 235, 221, 0.55);
  margin: 0 0 10px;
}
.ex-scope .ex-formpage__side-note {
  font-size: 0.88rem;
  line-height: 1.55;
  color: rgba(241, 235, 221, 0.75);
  margin: 0 0 12px;
}
.ex-scope .ex-formpage__side-cta {
  display: block;
  font-family: var(--ds-font-mono);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ds-paper);
  border-bottom: 1px solid rgba(241, 235, 221, 0.35);
  padding-bottom: 3px;
  margin-bottom: 8px;
}
.ex-scope .ex-formpage__side-cta:last-child { margin-bottom: 0; }
.ex-scope .ex-formpage__side-cta:hover { border-bottom-color: var(--ds-paper); }

/* =============================================================================
   12i-j. PRESS RELEASE DETAIL — editorial article + sidebar widgets
   ============================================================================= */

.ex-scope .ex-prdetail { padding: 32px 0 64px; }

.ex-scope .ex-prdetail__head {
  max-width: none;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 40px;
}
.ex-scope .ex-prdetail__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.6vw, 2.75rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  margin: 12px 0 16px;
}
.ex-scope .ex-prdetail__lede {
  font-size: 1.15rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0 0 24px;
  max-width: 60ch;
}
.ex-scope .ex-prdetail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 16px;
}
.ex-scope .ex-prdetail__meta-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 0 24px 0 0;
  margin-right: 24px;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-prdetail__meta-item:last-child { border-right: 0; padding-right: 0; margin-right: 0; }
.ex-scope .ex-prdetail__meta-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-prdetail__meta-value {
  font-size: 0.9rem;
  color: var(--ds-ink);
  font-weight: 500;
}

/* Body: article full-width, sidebar stacked below (2026-09-04 layout update) */
.ex-scope .ex-prdetail__body {
  display: flex;
  flex-direction: column;
  gap: 64px;
}

/* Article prose */
.ex-scope .ex-prdetail__prose {
  font-family: var(--ds-font-body);
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--ds-body);
  max-width: none;
  text-align: justify;
  text-justify: inter-word;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.ex-scope .ex-prdetail__prose p { text-align: justify; text-justify: inter-word; hyphens: manual; }
.ex-scope .ex-prdetail__prose h2,
.ex-scope .ex-prdetail__prose h3,
.ex-scope .ex-prdetail__prose h4 { text-align: left; }
.ex-scope .ex-prdetail__prose h2,
.ex-scope .ex-prdetail__prose h3 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  color: var(--ds-ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 32px 0 12px;
}
.ex-scope .ex-prdetail__prose h2 { font-size: clamp(1.35rem, 2vw, 1.7rem); }
.ex-scope .ex-prdetail__prose h3 { font-size: 1.2rem; }
.ex-scope .ex-prdetail__prose h4 {
  font-family: var(--ds-font-body);
  font-weight: 600;
  color: var(--ds-ink);
  font-size: 1rem;
  margin: 24px 0 8px;
}
.ex-scope .ex-prdetail__prose p { margin: 0 0 16px; }
.ex-scope .ex-prdetail__prose b,
.ex-scope .ex-prdetail__prose strong { color: var(--ds-ink); font-weight: 600; }
.ex-scope .ex-prdetail__prose a { color: var(--ds-link); border-bottom: 1px solid var(--ds-hairline); }
.ex-scope .ex-prdetail__prose ul,
.ex-scope .ex-prdetail__prose ol {
  margin: 0 0 16px 0;
  padding: 0;
  list-style: none;
}
.ex-scope .ex-prdetail__prose ul li,
.ex-scope .ex-prdetail__prose ol li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 8px;
  line-height: 1.6;
}
.ex-scope .ex-prdetail__prose ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 12px;
  height: 1px;
  background: var(--ds-hairline-strong);
}
.ex-scope .ex-prdetail__prose ol { counter-reset: prdetail-ol; }
.ex-scope .ex-prdetail__prose ol li { counter-increment: prdetail-ol; }
.ex-scope .ex-prdetail__prose ol li::before {
  content: counter(prdetail-ol, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
}
.ex-scope .ex-prdetail__prose img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  margin: 16px 0;
}
.ex-scope .ex-prdetail__prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 0.9rem;
}
.ex-scope .ex-prdetail__prose th,
.ex-scope .ex-prdetail__prose td {
  padding: 10px 12px;
  border: 1px solid var(--ds-hairline);
  text-align: left;
}
.ex-scope .ex-prdetail__prose th {
  background: var(--ds-paper-warm);
  font-weight: 600;
  color: var(--ds-ink);
  font-family: var(--ds-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ex-scope .ex-prdetail__article-foot {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
}

/* Sidebar widgets */
.ex-scope .ex-prdetail__aside {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 40px;
  border-top: 1px solid var(--ds-hairline);
}

/* Split card: left col = Contact stacked over Connect, right col = Related */
.ex-scope .ex-prdetail__widget--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  padding: 28px 32px;
}
.ex-scope .ex-prdetail__split-left {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-right: 32px;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-prdetail__split-left .ex-prdetail__split-block + .ex-prdetail__split-block {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-prdetail__split-right {
  min-width: 0;
}
.ex-scope .ex-prdetail__split-block .ex-prdetail__widget-label {
  margin-bottom: 12px;
}
@media (max-width: 720px) {
  .ex-scope .ex-prdetail__widget--split {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .ex-scope .ex-prdetail__split-left {
    padding-right: 0;
    border-right: 0;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--ds-hairline);
  }
}
.ex-scope .ex-prdetail__widget {
  padding: 18px 20px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}
.ex-scope .ex-prdetail__widget--dark {
  background: var(--ds-ink);
  border-color: var(--ds-ink);
  color: var(--ds-paper);
}
.ex-scope .ex-prdetail__widget-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 10px;
}
.ex-scope .ex-prdetail__widget--dark .ex-prdetail__widget-label { color: rgba(241, 235, 221, 0.55); }
.ex-scope .ex-prdetail__widget-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 0.98rem;
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0 0 14px;
}
.ex-scope .ex-prdetail__widget--dark .ex-prdetail__widget-title { color: var(--ds-paper); }
/* Contain legacy widget internals so they don't blow out the theme */
.ex-scope .ex-prdetail__widget * { max-width: 100%; }
.ex-scope .ex-prdetail__widget iframe { max-width: 100%; }

/* Widget body — muted intro copy */
.ex-scope .ex-prdetail__widget-note {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0 0 14px;
}
.ex-scope .ex-prdetail__widget--dark .ex-prdetail__widget-note {
  color: rgba(241, 235, 221, 0.75);
}

/* Widget CTA — small full-width action button */
.ex-scope .ex-prdetail__widget-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-prdetail__widget-cta svg { width: 13px; height: 13px; }
.ex-scope .ex-prdetail__widget-cta:hover { border-bottom-color: var(--ds-ink); }
.ex-scope .ex-prdetail__widget--dark .ex-prdetail__widget-cta {
  color: var(--ds-paper);
  border-bottom-color: rgba(241, 235, 221, 0.35);
}
.ex-scope .ex-prdetail__widget--dark .ex-prdetail__widget-cta:hover { border-bottom-color: var(--ds-paper); }

/* Connect widget: email + phone lines */
.ex-scope .ex-prdetail__widget-lines {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-prdetail__widget-lines li {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--ds-hairline);
  align-items: baseline;
}
.ex-scope .ex-prdetail__widget-lines li:last-child { border-bottom: 0; }
.ex-scope .ex-prdetail__widget-line-label {
  font-family: var(--ds-font-mono);
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-prdetail__widget-line-value {
  font-size: 0.82rem;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline);
  padding-bottom: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ex-scope .ex-prdetail__widget-line-value:hover { border-bottom-color: var(--ds-ink); }

/* Related releases list */
.ex-scope .ex-prdetail__related-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-prdetail__related-item { border-bottom: 1px solid var(--ds-hairline); }
.ex-scope .ex-prdetail__related-item:last-child { border-bottom: 0; }
.ex-scope .ex-prdetail__related-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 0;
  color: var(--ds-ink);
  border-bottom: 0;
  transition: opacity var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-prdetail__related-link:hover { opacity: 0.7; }
.ex-scope .ex-prdetail__related-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--ds-ink);
  letter-spacing: -0.005em;
}
.ex-scope .ex-prdetail__related-date {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
}

/* Share this release — editorial row inside article footer */
.ex-scope .ex-prdetail__share {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-prdetail__share-label {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-prdetail__share-btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.ex-scope .ex-prdetail__share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ds-ink);
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  border-bottom: 1px solid var(--ds-hairline);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              background var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-prdetail__share-btn svg { width: 14px; height: 14px; }
.ex-scope .ex-prdetail__share-btn:hover {
  border-color: var(--ds-ink);
  background: var(--ds-paper-warm);
}

/* =============================================================================
   12i-i. SERVICE DETAIL — capabilities + case studies
   ============================================================================= */

.ex-scope .ex-svcdetail { padding: 32px 0 24px; }
.ex-scope .ex-svcdetail__body { padding: 0 0 64px; }

/* Strategic capabilities — numbered rows */
.ex-scope .ex-svcdetail__capabilities { margin-top: 48px; }
.ex-scope .ex-svcdetail__cap-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-svcdetail__cap-item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 32px;
  padding: 24px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-svcdetail__cap-item { grid-template-columns: 1fr; gap: 8px; }
}
.ex-scope .ex-svcdetail__cap-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-svcdetail__cap-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.6vw, 1.35rem);
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.ex-scope .ex-svcdetail__cap-desc {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: 68ch;
}

/* Case studies — 2-col card grid */
.ex-scope .ex-svcdetail__cases { margin-top: 48px; }
.ex-scope .ex-svcdetail__case-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
  counter-reset: none;
}
@media (max-width: 720px) { .ex-scope .ex-svcdetail__case-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-svcdetail__case {
  padding: 22px 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-svcdetail__case:hover { border-color: var(--ds-ink); }
.ex-scope .ex-svcdetail__case-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-svcdetail__case-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
}
.ex-scope .ex-svcdetail__case-desc {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
}

/* =============================================================================
   12i-g. CONTACT — offices grid, channel router, form, FAQ, map
   ============================================================================= */

.ex-scope .ex-contact { padding: 32px 0 64px; }

/* Three-office grid */
.ex-scope .ex-contact__office-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
}
@media (max-width: 900px) { .ex-scope .ex-contact__office-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-contact__office {
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-contact__office:hover { border-color: var(--ds-ink); }
.ex-scope .ex-contact__office-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ex-scope .ex-contact__office-marker {
  display: inline-flex;
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  color: var(--ds-ink);
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
}
.ex-scope .ex-contact__office-marker svg { width: 16px; height: 16px; }
.ex-scope .ex-contact__office-name {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.2rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-contact__office-addr {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  min-height: 3.1em;
}
.ex-scope .ex-contact__office-lines {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: auto;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__office-line {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--ds-hairline);
  color: var(--ds-ink);
  align-items: baseline;
  border-radius: 0;
}
.ex-scope .ex-contact__office-line:last-child { border-bottom: 0; }
.ex-scope .ex-contact__office-line:hover .ex-contact__office-line-value { color: var(--ds-ink); text-decoration: underline; text-underline-offset: 3px; }
.ex-scope .ex-contact__office-line-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-contact__office-line-value {
  font-size: 0.82rem;
  color: var(--ds-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Channel router */
.ex-scope .ex-contact__channel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) { .ex-scope .ex-contact__channel-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-contact__channel {
  padding: 24px 24px 24px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__channel:first-child { padding-left: 0; }
.ex-scope .ex-contact__channel:not(:first-child) { padding-left: 24px; }
.ex-scope .ex-contact__channel:last-child { border-right: 0; }
@media (max-width: 900px) {
  .ex-scope .ex-contact__channel {
    border-right: 0;
    border-bottom: 1px solid var(--ds-hairline);
    padding: 20px 0 !important;
  }
  .ex-scope .ex-contact__channel:last-child { border-bottom: 0; }
}
.ex-scope .ex-contact__channel-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-contact__channel-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-contact__channel-body {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
  flex: 1;
}
.ex-scope .ex-contact__channel-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
  align-self: flex-start;
  margin-top: 4px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-contact__channel-link:hover { border-bottom-color: var(--ds-ink); }

/* Form band — 2-col grid: form (wider) + What-happens sidebar */
.ex-scope .ex-contact__form-band { margin-top: 40px; }
.ex-scope .ex-contact__form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
@media (max-width: 900px) { .ex-scope .ex-contact__form-grid { grid-template-columns: 1fr; gap: 24px; } }
.ex-scope .ex-contact__form-wrap {
  padding: 28px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}

/* Editorial form */
.ex-scope .ex-cf {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ex-scope .ex-cf__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 640px) { .ex-scope .ex-cf__row { grid-template-columns: 1fr; } }
.ex-scope .ex-cf__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ex-scope .ex-cf__field--full { grid-column: 1 / -1; }
.ex-scope .ex-cf__label {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-cf__req { color: var(--ds-decline); }
.ex-scope .ex-cf__input {
  font-family: var(--ds-font-body);
  font-size: 0.95rem;
  color: var(--ds-ink);
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  padding: 10px 12px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
  width: 100%;
  box-sizing: border-box;
  line-height: 1.4;
}
.ex-scope .ex-cf__input::placeholder { color: var(--ds-muted); }
.ex-scope .ex-cf__input:hover { border-color: var(--ds-hairline-strong); }
.ex-scope .ex-cf__input:focus {
  outline: none;
  border-color: var(--ds-ink);
  box-shadow: 0 0 0 3px rgba(10, 10, 11, 0.08);
}
.ex-scope .ex-cf__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B655A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}
.ex-scope .ex-cf__textarea {
  min-height: 120px;
  font-family: var(--ds-font-body);
  resize: vertical;
}
.ex-scope .ex-cf__hint {
  font-size: 0.78rem;
  color: var(--ds-muted);
  margin: 4px 0 0;
  line-height: 1.5;
}
.ex-scope .ex-cf__actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cf__submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  font-family: var(--ds-font-body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ds-paper);
  background: var(--ds-ink);
  border: 1px solid var(--ds-ink);
  border-radius: var(--ds-radius-sm);
  cursor: pointer;
  transition: transform var(--ds-dur-fast) var(--ds-ease-out),
              opacity var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-cf__submit svg { width: 14px; height: 14px; }
.ex-scope .ex-cf__submit:hover { transform: translateY(-1px); opacity: 0.92; }
.ex-scope .ex-cf__legal {
  font-size: 0.78rem;
  color: var(--ds-muted);
  margin: 0;
  flex: 1;
  min-width: 200px;
}
.ex-scope .ex-cf__legal a { color: var(--ds-ink); border-bottom: 1px solid var(--ds-hairline); }

/* Form sidebar: "What happens next" steps */
.ex-scope .ex-contact__form-side { padding-top: 4px; }
.ex-scope .ex-contact__form-side .ex-industries__pulse-eyebrow { margin-bottom: 16px; }
.ex-scope .ex-contact__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__step {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  padding: 18px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__step:last-child { border-bottom: 0; }
.ex-scope .ex-contact__step-num {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-contact__step-body { display: flex; flex-direction: column; gap: 4px; }
.ex-scope .ex-contact__step-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
}
.ex-scope .ex-contact__step-desc {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-contact__form-side-cta {
  margin-top: 16px;
  padding: 16px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ex-scope .ex-contact__form-side-cta-note {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 4px;
}
.ex-scope .ex-contact__form-side-cta-link {
  font-family: var(--ds-font-mono);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline);
  padding-bottom: 2px;
  align-self: flex-start;
}
.ex-scope .ex-contact__form-side-cta-link:hover { border-bottom-color: var(--ds-ink); }

/* FAQ */
.ex-scope .ex-contact__faq { margin-top: 48px; }
.ex-scope .ex-contact__faq-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__faq-item {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 32px;
  padding: 24px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-contact__faq-item { grid-template-columns: 1fr; gap: 8px; }
}
.ex-scope .ex-contact__faq-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-contact__faq-body { display: flex; flex-direction: column; gap: 8px; }
.ex-scope .ex-contact__faq-q {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.ex-scope .ex-contact__faq-a {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: 70ch;
}

/* Map — compact 2-col: small map + directions sidebar */
.ex-scope .ex-contact__map { margin-top: 48px; }
.ex-scope .ex-contact__map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 24px;
  align-items: stretch;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
}
@media (max-width: 900px) { .ex-scope .ex-contact__map-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-contact__map-frame {
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  overflow: hidden;
  position: relative;
  min-height: 100%;
  display: flex;
}
.ex-scope .ex-contact__map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
  flex: 1;
  filter: grayscale(60%) contrast(0.92) brightness(1.02);
  transition: filter var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-contact__map-frame:hover iframe {
  filter: grayscale(0%) contrast(1) brightness(1);
}

/* Map right-side directions */
.ex-scope .ex-contact__map-side {
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ex-scope .ex-contact__map-side-eyebrow {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-contact__map-side-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-contact__map-side-list li {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ds-hairline);
  align-items: baseline;
}
.ex-scope .ex-contact__map-side-list li:last-child { border-bottom: 0; }
.ex-scope .ex-contact__map-side-label {
  font-family: var(--ds-font-mono);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-contact__map-side-value {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
}
.ex-scope .ex-contact__map-side-value a { color: var(--ds-ink); border-bottom: 1px solid var(--ds-hairline); }

/* =============================================================================
   12i-f. ABOUT US — principles, desks, methodology steps, client pills, quotes
   ============================================================================= */

.ex-scope .ex-about { padding: 32px 0 64px; }

/* Shared section head across About */
.ex-scope .ex-about__section-head {
  max-width: 720px;
  margin: 48px 0 24px;
}
.ex-scope .ex-about__section-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 8px 0 6px;
}
.ex-scope .ex-about__section-sub {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ds-muted);
  margin: 0;
  max-width: 68ch;
}

/* Compact header modifier — used on About top */
.ex-scope .ex-industries__head--compact {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 32px;
  align-items: end;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 40px;
}
@media (max-width: 900px) {
  .ex-scope .ex-industries__head--compact { grid-template-columns: 1fr; gap: 16px; align-items: start; }
}
.ex-scope .ex-industries__head--compact .ex-industries__title {
  margin-bottom: 0;
  max-width: 32ch;
}

/* Header right-side aside — muted filler copy bound to headline via left hairline */
.ex-scope .ex-about__header-aside {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ds-muted);
  margin: 0 0 8px;
  max-width: 36ch;
  padding-left: 20px;
  border-left: 1px solid var(--ds-hairline-strong);
  font-weight: 400;
  align-self: end;
}
@media (max-width: 900px) {
  .ex-scope .ex-about__header-aside {
    max-width: none;
    padding-left: 16px;
    border-left: 2px solid var(--ds-hairline-strong);
    margin-bottom: 0;
  }
}

/* Closing statement band — mirrors the header but placed at the end */
.ex-scope .ex-about__closer {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  margin: 64px 0 24px;
  padding: 48px 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) {
  .ex-scope .ex-about__closer { grid-template-columns: 1fr; gap: 24px; padding: 32px 0; }
}
.ex-scope .ex-about__closer-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-about__closer-title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  margin: 6px 0 0;
  max-width: 34ch;
}
.ex-scope .ex-about__closer-sub {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: 62ch;
}
.ex-scope .ex-about__closer-stats {
  padding-top: 0;
}

/* Vision & aim — 2x2 panel grid */
.ex-scope .ex-about__vision-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-about__vision-grid { grid-template-columns: 1fr; }
}
.ex-scope .ex-about__vision-panel {
  padding: 28px 32px 28px 0;
  border-bottom: 1px solid var(--ds-hairline);
  border-right: 1px solid var(--ds-hairline);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-about__vision-panel:nth-child(odd) { padding-left: 0; }
.ex-scope .ex-about__vision-panel:nth-child(even) {
  padding-left: 32px;
  border-right: 0;
}
.ex-scope .ex-about__vision-panel:nth-last-child(-n+2) { border-bottom: 0; }
@media (max-width: 720px) {
  .ex-scope .ex-about__vision-panel {
    border-right: 0;
    padding: 20px 0 !important;
  }
  .ex-scope .ex-about__vision-panel:last-child { border-bottom: 0; }
}
.ex-scope .ex-about__vision-meta {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.ex-scope .ex-about__vision-num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-about__vision-kicker {
  font-family: var(--ds-font-body);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-body);
}
.ex-scope .ex-about__vision-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-about__vision-body {
  font-size: 0.94rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
  max-width: 60ch;
}

/* Principles — numbered editorial list, 2-col per row */
.ex-scope .ex-about__principles-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-about__principle {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 48px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-about__principle { grid-template-columns: 1fr; gap: 12px; }
}
.ex-scope .ex-about__principle-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ex-scope .ex-about__principle-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-about__principle-tag {
  display: inline-block;
  align-self: flex-start;
  padding: 3px 10px;
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-body);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
}
.ex-scope .ex-about__principle-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ex-scope .ex-about__principle-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  line-height: 1.3;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-about__principle-desc {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0;
  max-width: 68ch;
}

/* The desks — 3-col card grid */
.ex-scope .ex-about__desks-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  border-top: 1px solid var(--ds-hairline);
  padding-top: 24px;
}
@media (max-width: 900px) { .ex-scope .ex-about__desks-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ex-scope .ex-about__desks-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-about__desk-card {
  padding: 20px 22px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-about__desk-card:hover { border-color: var(--ds-ink); }
.ex-scope .ex-about__desk-head {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.ex-scope .ex-about__desk-coverage {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}

/* Methodology 3-step */
.ex-scope .ex-about__method-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) { .ex-scope .ex-about__method-steps { grid-template-columns: 1fr; } }
.ex-scope .ex-about__method-step {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 24px 28px 0;
  border-right: 1px solid var(--ds-hairline);
}
.ex-scope .ex-about__method-step:first-child { padding-left: 0; }
.ex-scope .ex-about__method-step:not(:first-child) { padding-left: 24px; }
.ex-scope .ex-about__method-step:last-child { border-right: 0; }
@media (max-width: 900px) {
  .ex-scope .ex-about__method-step {
    border-right: 0;
    border-bottom: 1px solid var(--ds-hairline);
    padding: 20px 0 !important;
  }
  .ex-scope .ex-about__method-step:last-child { border-bottom: 0; }
}
.ex-scope .ex-about__method-num {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-about__method-body { display: flex; flex-direction: column; gap: 8px; }
.ex-scope .ex-about__method-kicker {
  font-family: var(--ds-font-body);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-about__method-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.15rem;
  line-height: 1.25;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.ex-scope .ex-about__method-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ds-body);
  margin: 0;
}
.ex-scope .ex-about__method-foot {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
}
.ex-scope .ex-about__method-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
}
.ex-scope .ex-about__method-link svg { width: 14px; height: 14px; }
.ex-scope .ex-about__method-link:hover { border-bottom-color: var(--ds-ink); }

/* Client section — visual separator from Methodology above */
.ex-scope .ex-about__clients {
  margin-top: 32px;
  padding-top: 48px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-about__clients > .ex-about__section-head { margin-top: 0; }

/* Client pills */
.ex-scope .ex-about__client-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-about__client-pill {
  padding: 8px 16px;
  font-size: 0.88rem;
  font-family: var(--ds-font-display);
  font-weight: 500;
  color: var(--ds-ink);
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: 999px;
  letter-spacing: -0.005em;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-about__client-pill:hover { border-color: var(--ds-ink); }

/* Editorial pull-quotes */
.ex-scope .ex-home-quotes {
  padding: 64px 0 72px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-home-quotes .ex-about__section-head { margin-top: 0; }
.ex-scope .ex-about__quotes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
}
@media (max-width: 900px) { .ex-scope .ex-about__quotes-grid { grid-template-columns: 1fr; } }
.ex-scope .ex-about__quote {
  margin: 0;
  padding: 28px 26px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.ex-scope .ex-about__quote::before {
  content: '\201C';
  position: absolute;
  top: 8px;
  left: 20px;
  font-family: var(--ds-font-display);
  font-size: 3.4rem;
  line-height: 1;
  color: var(--ds-hairline-strong);
  pointer-events: none;
}
.ex-scope .ex-about__quote-body {
  margin: 0;
  padding: 0;
  position: relative;
  flex: 1;
}
.ex-scope .ex-about__quote-body p {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--ds-ink);
  margin: 0;
  letter-spacing: -0.005em;
  padding-top: 8px;
}
.ex-scope .ex-about__quote-cite {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-top: 16px;
  border-top: 1px solid var(--ds-hairline);
  margin-top: auto;
}
.ex-scope .ex-about__quote-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-ink);
  line-height: 1.3;
}
.ex-scope .ex-about__quote-role {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =============================================================================
   12i-b. COMPETITIVE LANDSCAPE — concentration snapshot + tier viz + locked rows
   ============================================================================= */

/* Concentration hero band: big number + stacked bar */
.ex-scope .ex-comp-concentration {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 32px;
  align-items: center;
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  margin: 24px 0;
  position: relative;
}
.ex-scope .ex-comp-concentration::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--ds-ink);
  border-radius: var(--ds-radius-md) var(--ds-radius-md) 0 0;
}
@media (max-width: 720px) {
  .ex-scope .ex-comp-concentration { grid-template-columns: 1fr; gap: 20px; }
}
.ex-scope .ex-comp-concentration__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 8px;
}
.ex-scope .ex-comp-concentration__value {
  font-family: var(--ds-font-display);
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 500;
  color: var(--ds-ink);
  line-height: 1.15;
  margin: 0 0 8px;
}
.ex-scope .ex-comp-concentration__value strong {
  font-weight: 500;
  color: var(--ds-growth);
  font-family: var(--ds-font-mono);
}
.ex-scope .ex-comp-concentration__note {
  font-size: 0.85rem;
  color: var(--ds-muted);
  margin: 0;
  line-height: 1.55;
}

/* Stacked bar visual: Top 5 vs rest */
.ex-scope .ex-comp-bar {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ex-scope .ex-comp-bar__track {
  display: flex;
  height: 32px;
  border: 1px solid var(--ds-hairline);
  border-radius: 2px;
  overflow: hidden;
  background: var(--ds-paper);
}
.ex-scope .ex-comp-bar__top {
  background: var(--ds-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-paper);
  font-family: var(--ds-font-mono);
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0 12px;
  white-space: nowrap;
}
.ex-scope .ex-comp-bar__rest {
  background: repeating-linear-gradient(
    135deg,
    var(--ds-paper) 0px, var(--ds-paper) 6px,
    var(--ds-paper-warm) 6px, var(--ds-paper-warm) 12px
  );
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-muted);
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  padding: 0 12px;
  white-space: nowrap;
  flex: 1;
}
.ex-scope .ex-comp-bar__legend {
  display: flex;
  justify-content: space-between;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
}

/* Tier visualization: 3 tiers stacked */
.ex-scope .ex-comp-tiers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 32px 0 24px;
}
@media (max-width: 720px) {
  .ex-scope .ex-comp-tiers { grid-template-columns: 1fr; }
}
.ex-scope .ex-comp-tier {
  padding: 18px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  border-top: 3px solid;
  position: relative;
}
.ex-scope .ex-comp-tier--1 { border-top-color: var(--ds-ink); }
.ex-scope .ex-comp-tier--2 { border-top-color: var(--ds-muted); }
.ex-scope .ex-comp-tier--3 { border-top-color: var(--ds-hairline-strong); }
.ex-scope .ex-comp-tier__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 6px;
}
.ex-scope .ex-comp-tier__name {
  font-family: var(--ds-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0 0 8px;
}
.ex-scope .ex-comp-tier__count {
  font-family: var(--ds-font-mono);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--ds-ink);
  margin: 0 0 4px;
}
.ex-scope .ex-comp-tier__count small {
  font-family: var(--ds-font-body);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--ds-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: 4px;
}
.ex-scope .ex-comp-tier__desc {
  font-size: 0.82rem;
  color: var(--ds-muted);
  line-height: 1.5;
  margin: 0;
}
.ex-scope .ex-comp-tier__blur {
  filter: blur(4px);
  color: var(--ds-ink);
  font-size: 0.8rem;
  margin-top: 8px;
  user-select: none;
  letter-spacing: 0.02em;
}

/* Company row with locked competitive metrics */
.ex-scope .ex-comp-rows {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-comp-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--ds-hairline);
  align-items: center;
}
@media (max-width: 720px) {
  .ex-scope .ex-comp-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.ex-scope .ex-comp-row__name {
  font-family: var(--ds-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-comp-row__meta {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 4px 0 0;
}
.ex-scope .ex-comp-row__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.ex-scope .ex-comp-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;      /* anchor for the "est." caption on Share cell */
}
.ex-scope .ex-comp-cell__label {
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-comp-cell__note {
  /* Positioned absolute so it doesn't push the value cell down and break
     baseline alignment with the other cells (Rank/Revenue/HQ). Sits as a
     small caption in the top-right of the Share cell without taking vertical
     space in the layout. */
  position: absolute;
  top: -2px;
  right: 4px;
  font-size: 0.54rem;
  font-weight: 500;
  color: var(--ds-warn);
  letter-spacing: 0.06em;
  text-transform: lowercase;
  font-style: italic;
  margin: 0;
  pointer-events: none;
}
.ex-scope .ex-comp-cell__value {
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ds-ink);
  padding: 4px 8px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: 2px;
  text-align: center;
  letter-spacing: 0.08em;
}
.ex-scope .ex-comp-cell__value--locked {
  color: var(--ds-muted-soft);
  background: repeating-linear-gradient(
    45deg,
    var(--ds-paper-warm) 0px, var(--ds-paper-warm) 3px,
    var(--ds-paper) 3px, var(--ds-paper) 6px
  );
}

/* Unlock CTA band */
.ex-scope .ex-comp-unlock {
  margin-top: 32px;
  padding: 24px;
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-radius: var(--ds-radius-md);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}
@media (max-width: 720px) {
  .ex-scope .ex-comp-unlock { grid-template-columns: 1fr; gap: 16px; }
}
.ex-scope .ex-comp-unlock__title {
  font-family: var(--ds-font-display);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--ds-paper);
  margin: 0 0 6px;
  line-height: 1.25;
}
.ex-scope .ex-comp-unlock__desc {
  font-size: 0.9rem;
  color: rgba(241, 235, 221, 0.7);
  margin: 0;
  line-height: 1.55;
}
.ex-scope .ex-comp-unlock .ex-btn {
  background: var(--ds-paper);
  color: var(--ds-ink);
  border-color: var(--ds-paper);
  flex: 0 0 auto;
  justify-self: end;
}
.ex-scope .ex-comp-unlock .ex-btn:hover {
  background: #fff;
  border-color: #fff;
}

/* =============================================================================
   12j. PRICING TIERS — 3 tier cards in a row
   ============================================================================= */
.ex-scope .ex-tiers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 20px;
}
@media (max-width: 720px) {
  .ex-scope .ex-tiers { grid-template-columns: 1fr; }
}
.ex-scope .ex-tier {
  padding: 24px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex-scope .ex-tier--featured {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-tier__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.ex-scope .ex-tier--featured .ex-tier__label { color: rgba(241,235,221,0.6); }
.ex-scope .ex-tier__name {
  font-family: var(--ds-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 0;
}
.ex-scope .ex-tier--featured .ex-tier__name { color: var(--ds-paper); }
.ex-scope .ex-tier__price {
  font-family: var(--ds-font-mono);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--ds-ink);
  margin: 8px 0;
}
.ex-scope .ex-tier--featured .ex-tier__price { color: var(--ds-paper); }
.ex-scope .ex-tier__list {
  list-style: none;
  padding: 0;
  margin: 8px 0 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.ex-scope .ex-tier__list li {
  font-size: 0.85rem;
  color: var(--ds-body);
  padding-left: 18px;
  position: relative;
  line-height: 1.5;
}
.ex-scope .ex-tier--featured .ex-tier__list li { color: rgba(241,235,221,0.85); }
.ex-scope .ex-tier__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--ds-growth);
  font-weight: 600;
}
.ex-scope .ex-tier--featured .ex-tier__list li::before { color: #6BC28D; }
.ex-scope .ex-tier__cta {
  margin-top: auto;
}

/* How-buying-works + payment methods trust band under pricing tiers */
.ex-scope .ex-buy-trust {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--ds-hairline);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
@media (max-width: 900px) {
  .ex-scope .ex-buy-trust { grid-template-columns: 1fr; gap: 32px; }
}
.ex-scope .ex-buy-trust__eyebrow {
  font-family: var(--ds-font-mono);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0 0 16px;
}

/* Left col — 3 numbered steps */
.ex-scope .ex-buy-trust__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-buy-trust__steps li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-buy-trust__steps li:last-child { border-bottom: 0; }
.ex-scope .ex-buy-trust__num {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ds-muted);
  letter-spacing: 0.05em;
}
.ex-scope .ex-buy-trust__text {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--ds-body);
}
.ex-scope .ex-buy-trust__text strong {
  color: var(--ds-ink);
  font-weight: 600;
}

/* Right col — payment methods card */
.ex-scope .ex-buy-trust__pay {
  padding: 20px 22px;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
}
.ex-scope .ex-buy-trust__methods {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-buy-trust__method {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-buy-trust__method:last-child { border-bottom: 0; }
.ex-scope .ex-buy-trust__method strong {
  font-family: var(--ds-font-display);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ds-ink);
  letter-spacing: -0.005em;
}
.ex-scope .ex-buy-trust__method span {
  font-family: var(--ds-font-mono);
  font-size: 0.72rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
  text-align: right;
}
.ex-scope .ex-buy-trust__foot {
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--ds-hairline);
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--ds-muted);
  font-style: italic;
}

/* Sidebar mini-tiers (stacked in sticky sidebar) */
.ex-scope .ex-mini-tiers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 12px;
}
.ex-scope .ex-mini-tier {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 8px 10px;
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  font-size: 0.82rem;
}
.ex-scope .ex-mini-tier__name { color: var(--ds-muted); }
.ex-scope .ex-mini-tier__price {
  font-family: var(--ds-font-mono);
  font-weight: 600;
  color: var(--ds-ink);
}

/* =============================================================================
   13. HEADER / CHROME
   ============================================================================= */
.ex-scope .ex-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(241, 235, 221, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-header__inner {
  display: flex;
  align-items: center;
  gap: 32px;
  padding-block: 14px;
}
.ex-scope .ex-header__logo {
  flex: 0 0 auto;
}
.ex-scope .ex-header__logo img {
  max-height: 36px;
  width: auto;
}
.ex-scope .ex-header__nav {
  flex: 1;
  display: flex;
  gap: 24px;
  align-items: center;
}
.ex-scope .ex-header__nav a {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--ds-body);
  border-bottom: 0;
}
.ex-scope .ex-header__nav a:hover {
  color: var(--ds-ink);
}
.ex-scope .ex-header__cta {
  flex: 0 0 auto;
  margin-left: auto;
}
.ex-scope .ex-header__burger {
  display: none;
  background: transparent;
  border: 0;
  padding: 8px;
  color: var(--ds-ink);
}

@media (max-width: 900px) {
  .ex-scope .ex-header__nav { display: none; }
  .ex-scope .ex-header__burger { display: inline-flex; }
}

/* =============================================================================
   14. FOOTER
   ============================================================================= */
.ex-scope .ex-footer {
  background: var(--ds-paper-warm);
  border-top: 1px solid var(--ds-hairline);
  padding-block: 56px 24px;
  margin-top: 64px;
}
.ex-scope .ex-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: 40px;
  margin-bottom: 40px;
}
@media (max-width: 720px) {
  .ex-scope .ex-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
@media (max-width: 480px) {
  .ex-scope .ex-footer__grid {
    grid-template-columns: 1fr;
  }
}
.ex-scope .ex-footer__col-title {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 16px;
}
.ex-scope .ex-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ex-scope .ex-footer__list a {
  font-size: 0.9rem;
  color: var(--ds-body);
  border-bottom: 0;
}
.ex-scope .ex-footer__list a:hover {
  color: var(--ds-ink);
  border-bottom: 1px solid currentColor;
}
.ex-scope .ex-footer__brand p {
  font-size: 0.9rem;
  color: var(--ds-body);
  max-width: 32ch;
}
.ex-scope .ex-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  border-top: 1px solid var(--ds-hairline);
  flex-wrap: wrap;
  gap: 16px;
}
.ex-scope .ex-footer__copyright {
  font-size: 0.8rem;
  color: var(--ds-muted);
}
.ex-scope .ex-footer__social {
  display: flex;
  gap: 16px;
}
.ex-scope .ex-footer__social a {
  color: var(--ds-muted);
  transition: color var(--ds-dur-fast) var(--ds-ease-out);
  border: 0;
}
.ex-scope .ex-footer__social a:hover { color: var(--ds-ink); }

/* =============================================================================
   15. HERO (homepage) — 2-column: type left, search card right
   ============================================================================= */
.ex-scope .ex-hero {
  padding-block: clamp(48px, 6vw, 88px) clamp(48px, 6vw, 88px);
  background: var(--ds-paper);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
@media (max-width: 860px) {
  .ex-scope .ex-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
  }
}
.ex-scope .ex-hero__copy {
  min-width: 0;
}
.ex-scope .ex-hero__eyebrow {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 20px;
  display: inline-block;
}
.ex-scope .ex-hero__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--ds-ink);
  margin: 0 0 22px;
  max-width: 30ch;
}
.ex-scope .ex-hero__lead {
  font-size: clamp(1rem, 1.35vw, 1.15rem);
  line-height: 1.55;
  color: var(--ds-body);
  max-width: 44ch;
  margin: 0 0 32px;
}
.ex-scope .ex-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
}

/* Right column: framed search card — earns its side */
.ex-scope .ex-hero__aside {
  min-width: 0;
  padding: 28px;
  border: 1px solid var(--ds-hairline);
  background: var(--ds-paper-warm);
  border-radius: var(--ds-radius-md);
  position: relative;
}
.ex-scope .ex-hero__aside::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--ds-ink);
}
.ex-scope .ex-hero__aside .ex-search {
  border-bottom-width: 1px;
  padding: 10px 0;
}
.ex-scope .ex-hero__aside .ex-search__input {
  font-size: 1rem;
  font-family: var(--ds-font-body);
  font-style: normal;
}
/* Quicklinks wrapper */
.ex-scope .ex-hero__quicklinks {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-hero__quicklinks-label { margin: 0 0 10px !important; display: block !important; }

/* Popular industries — 2-col grid of uniform-width tiles */
.ex-scope .ex-hero__aside-cats {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.ex-scope .ex-hero__aside-cat {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: baseline;
  padding: 8px 10px;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-sm);
  background: var(--ds-paper);
  color: var(--ds-ink);
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              background var(--ds-dur-fast) var(--ds-ease-out);
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-hero__aside-cat:hover {
  border-color: var(--ds-ink);
  background: var(--ds-paper-warm);
}
.ex-scope .ex-hero__aside-cat-name {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ds-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ex-scope .ex-hero__aside-cat-count {
  font-family: var(--ds-font-mono);
  font-size: 0.7rem;
  color: var(--ds-muted);
  letter-spacing: 0.02em;
}
.ex-scope .ex-hero__aside-cat:hover .ex-hero__aside-cat-count { color: var(--ds-ink); }

.ex-scope .ex-hero__quicklinks-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 0.78rem;
  font-weight: 550;
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
  padding-bottom: 2px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-hero__quicklinks-more svg { width: 12px; height: 12px; }
.ex-scope .ex-hero__quicklinks-more:hover { border-bottom-color: var(--ds-ink); }
.ex-scope .ex-hero__eyebrow {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 20px;
  display: inline-block;
}
.ex-scope .ex-hero__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(2.5rem, 6vw, 4.75rem);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ds-ink);
  margin: 0 0 24px;
}
.ex-scope .ex-hero__lead {
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.55;
  color: var(--ds-body);
  max-width: 60ch;
  margin: 0 0 36px;
}
.ex-scope .ex-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}

/* =============================================================================
   16. WHY US (3-column value props)
   ============================================================================= */
.ex-scope .ex-why {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 720px) {
  .ex-scope .ex-why { grid-template-columns: 1fr; gap: 24px; }
}
.ex-scope .ex-why__item {
  border-top: 1px solid var(--ds-hairline);
  padding-top: 20px;
}
.ex-scope .ex-why__num {
  font-family: var(--ds-font-mono);
  font-size: 0.75rem;
  color: var(--ds-muted);
  letter-spacing: 0.08em;
}
.ex-scope .ex-why__title {
  font-family: var(--ds-font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--ds-ink);
  margin: 8px 0 8px;
}
.ex-scope .ex-why__desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ds-body);
  margin: 0;
}

/* =============================================================================
   17. CATEGORY GRID (homepage)
   ============================================================================= */
.ex-scope .ex-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ds-hairline);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  overflow: hidden;
}
@media (max-width: 900px) {
  .ex-scope .ex-cat-grid { grid-template-columns: repeat(2, 1fr); }
}
.ex-scope .ex-cat-tile {
  background: var(--ds-paper-warm);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-decoration: none;
  color: var(--ds-ink);
  transition: background var(--ds-dur-fast) var(--ds-ease-out);
  min-height: 128px;
  border-bottom: 0;
}
.ex-scope .ex-cat-tile:hover {
  background: var(--ds-paper-cool);
  border-bottom: 0;
}
.ex-scope .ex-cat-tile__name {
  font-family: var(--ds-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--ds-ink);
  line-height: 1.2;
}
.ex-scope .ex-cat-tile__count {
  font-family: var(--ds-font-mono);
  font-size: 0.8rem;
  color: var(--ds-muted);
  margin-top: auto;
}

/* =============================================================================
   18. REPORT STORE — 2-col layout + sidebar
   ============================================================================= */
.ex-scope .ex-store {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 900px) {
  .ex-scope .ex-store { grid-template-columns: 1fr; gap: 24px; }
}

.ex-scope .ex-store__sidebar {
  position: sticky;
  top: 88px;
  align-self: start;
}
@media (max-width: 900px) {
  .ex-scope .ex-store__sidebar { position: static; }
}

.ex-scope .ex-store__side-title {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 12px;
}

.ex-scope .ex-cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 60vh;
  overflow-y: auto;
  /* Themed scrollbar matching the report-detail TOC */
  scrollbar-width: thin;
  scrollbar-color: var(--ds-hairline-strong) transparent;
  /* Fade masks on top/bottom so users know it scrolls */
  mask-image: linear-gradient(to bottom, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
}
.ex-scope .ex-cat-list::-webkit-scrollbar { width: 4px; }
.ex-scope .ex-cat-list::-webkit-scrollbar-track { background: transparent; }
.ex-scope .ex-cat-list::-webkit-scrollbar-thumb {
  background: var(--ds-hairline-strong);
  border-radius: 2px;
}
.ex-scope .ex-cat-list::-webkit-scrollbar-thumb:hover { background: var(--ds-muted); }
.ex-scope .ex-cat-list__item {
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-cat-list__link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 60px;
  align-items: center;
  gap: 12px;
  padding: 10px 14px 10px 12px;
  border-left: 2px solid transparent;
  color: var(--ds-body);
  font-size: 0.9rem;
  border-bottom: 0;
  transition: color var(--ds-dur-fast) var(--ds-ease-out),
              border-color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-cat-list__link:hover {
  color: var(--ds-ink);
}
.ex-scope .ex-cat-list__link.is-active {
  border-left-color: var(--ds-ink);
  color: var(--ds-ink);
  font-weight: 600;
}
.ex-scope .ex-cat-list__count {
  font-family: var(--ds-font-mono);
  font-size: 0.78rem;
  color: var(--ds-muted);
  text-align: right;
  padding-left: 12px;
  border-left: 1px solid var(--ds-hairline);
  line-height: 1.4;
}

.ex-scope .ex-store__main {
  min-width: 0;
}

.ex-scope .ex-store__toolbar {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 24px;
}
.ex-scope .ex-store__count {
  font-size: 0.85rem;
  color: var(--ds-muted);
  font-family: var(--ds-font-mono);
}
.ex-scope .ex-store__sort {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: var(--ds-muted);
}
.ex-scope .ex-store__sort select {
  font-family: var(--ds-font-body);
  font-size: 0.9rem;
  color: var(--ds-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ds-hairline);
  padding: 6px 22px 6px 4px;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%230A0A0B' stroke-width='1.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 4px center;
}

.ex-scope .ex-store__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.ex-scope .ex-store__pagination {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-store__pagination a,
.ex-scope .ex-store__pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--ds-radius-sm);
  color: var(--ds-body);
  font-size: 0.9rem;
  font-family: var(--ds-font-mono);
  text-decoration: none;
  transition: border-color var(--ds-dur-fast) var(--ds-ease-out),
              color var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-store__pagination a:hover {
  border-color: var(--ds-hairline-strong);
  color: var(--ds-ink);
}
.ex-scope .ex-store__pagination .is-active {
  background: var(--ds-ink);
  color: var(--ds-paper);
  border-color: var(--ds-ink);
}
.ex-scope .ex-store__pagination .is-disabled {
  color: var(--ds-muted-soft);
  cursor: not-allowed;
}

/* AJAX loading indicator */
.ex-scope .ex-store__loading {
  position: absolute;
  inset: 0;
  background: rgba(241, 235, 221, 0.72);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 80px;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--ds-dur-fast) var(--ds-ease-out);
}
.ex-scope .ex-store__loading.is-active {
  opacity: 1;
  pointer-events: auto;
}
.ex-scope .ex-store__loading::after {
  content: "Loading…";
  font-family: var(--ds-font-mono);
  font-size: 0.85rem;
  color: var(--ds-muted);
}

/* =============================================================================
   19. REPORT DETAIL — hero + body layout
   ============================================================================= */
.ex-scope .ex-detail-breadcrumb {
  padding-block: 20px 4px;
  font-size: 0.8rem;
  color: var(--ds-muted);
}
.ex-scope .ex-detail-breadcrumb a {
  color: var(--ds-muted);
  border-bottom: 0;
}
.ex-scope .ex-detail-breadcrumb a:hover { color: var(--ds-ink); }
.ex-scope .ex-detail-breadcrumb .sep { margin-inline: 8px; color: var(--ds-hairline-strong); }

/* Hero card wrapper — bounded box with border + top rule (matches snapshot) */
.ex-scope .ex-detail-hero {
  padding-block: 24px 0;
}
/* 2026-08-26 hero — ONE outer beige card. Inside it: small top-left
   identity box (title + 2 buttons side-by-side), and a full-width bigger
   box below it holding the analyst prose + scope + trust. No white/cool
   backgrounds inside — both inner boxes inherit the parent paper. */
.ex-scope .ex-detail-hero__card {
  position: relative;
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 32px clamp(24px, 3vw, 40px);
}
.ex-scope .ex-detail-hero__card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--ds-ink);
  border-radius: var(--ds-radius-md) var(--ds-radius-md) 0 0;
}

/* Two rows: header row (title left, buttons right) + content row below,
   separated by a single hairline. Both live inside the outer beige card,
   no inner boxes. */
.ex-scope .ex-detail-hero__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* HEADER row — identity (eyebrow + title) on left · vertical hairline ·
   CTAs on the right. Bottom border separates the header row from the
   content row below. */
.ex-scope .ex-detail-hero__left {
  display: flex;
  align-items: center;
  gap: 28px;
  background: transparent;
  border: 0;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 24px;
}
.ex-scope .ex-detail-hero__identity {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-right: 28px;
  border-right: 1px solid var(--ds-hairline);
}
@media (max-width: 720px) {
  .ex-scope .ex-detail-hero__left {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .ex-scope .ex-detail-hero__identity {
    padding-right: 0;
    border-right: 0;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ds-hairline);
    width: 100%;
  }
}
/* legacy inner wrappers */
.ex-scope .ex-detail-hero__left-top,
.ex-scope .ex-detail-hero__left-bottom { flex: none; margin: 0; }

/* Buttons: side-by-side, tucked to the right */
.ex-scope .ex-detail-hero__left .ex-detail-hero__actions {
  flex: none;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media (max-width: 720px) {
  .ex-scope .ex-detail-hero__left .ex-detail-hero__actions { justify-content: flex-start; }
}

/* CONTENT row — analyst prose + scope + trust, no border, full width */
.ex-scope .ex-detail-hero__right {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: 0;
  padding: 0;
}
.ex-scope .ex-detail-hero__desc {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ds-body);
  margin: 0 0 14px;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;
}
.ex-scope .ex-detail-hero__desc + .ex-detail-hero__desc {
  padding-top: 12px;
  border-top: 1px dashed var(--ds-hairline);
}
.ex-scope .ex-detail-hero__desc:last-of-type {
  margin-bottom: 0;
}
.ex-scope .ex-detail-hero__desc--meta {
  color: var(--ds-muted);
  font-size: 0.9rem;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-detail-hero__eyebrow {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 12px;
  display: inline-block;
}
.ex-scope .ex-detail-hero__title {
  font-family: var(--ds-font-display);
  font-weight: 400;
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--ds-ink);
  margin: 0 0 16px;
  max-width: 30ch;
}
.ex-scope .ex-detail-hero__subtitle {
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ds-body);
  max-width: 60ch;
  margin: 0 0 24px;
}
.ex-scope .ex-detail-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* Report body — LEFT sticky TOC + RIGHT content column */
.ex-scope .ex-detail-body {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 56px;
  padding-block: 32px 64px;
  align-items: start;
}
@media (max-width: 960px) {
  .ex-scope .ex-detail-body {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.ex-scope .ex-detail-body__main { min-width: 0; }
.ex-scope .ex-detail-body__aside {
  position: sticky;
  top: 88px;
  align-self: start;
  height: calc(100vh - 110px);
  max-height: calc(100vh - 110px);
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media (max-width: 960px) {
  .ex-scope .ex-detail-body__aside {
    position: static;
    height: auto;
    max-height: none;
    overflow: visible;
    display: block;
  }
}

.ex-scope .ex-detail-section {
  padding-block: 40px;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-detail-section:first-child {
  border-top: 0;
  padding-top: 0;
}
.ex-scope .ex-detail-section h2 {
  scroll-margin-top: 88px;
}
.ex-scope .ex-detail-section__intro {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ds-body);
  max-width: 65ch;
  margin-bottom: 24px;
}

/* Major players strip */
.ex-scope .ex-players {
  padding: 20px 0;
  border-top: 1px solid var(--ds-hairline);
  border-bottom: 1px solid var(--ds-hairline);
  margin-bottom: 32px;
}
.ex-scope .ex-players__label {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 12px;
}
.ex-scope .ex-players__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.ex-scope .ex-players__item {
  font-family: var(--ds-font-display);
  font-size: 0.95rem;
  color: var(--ds-body);
}
.ex-scope .ex-players__note {
  font-size: 0.75rem;
  color: var(--ds-muted-soft);
  font-style: italic;
  margin-top: 12px;
  margin-bottom: 0;
}

/* =============================================================================
   20. MODAL (buy box, sample request)
   ============================================================================= */
.ex-scope .ex-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.ex-scope .ex-modal.is-open { display: flex; }
.ex-scope .ex-modal__scrim {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 11, 0.55);
  backdrop-filter: blur(4px);
}
.ex-scope .ex-modal__panel {
  position: relative;
  background: var(--ds-paper);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-lg);
  max-width: 480px;
  width: 100%;
  padding: 32px;
  max-height: 90vh;
  overflow-y: auto;
}
.ex-scope .ex-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: transparent;
  border: 0;
  padding: 8px;
  color: var(--ds-muted);
  cursor: pointer;
}
.ex-scope .ex-modal__close:hover { color: var(--ds-ink); }

/* =============================================================================
   21. RECENTLY-VIEWED STRIP (Phase 8 retention, preserved)
   ============================================================================= */
.ex-scope .ex-recent-strip {
  padding: 24px 0;
  border-top: 1px solid var(--ds-hairline);
}
.ex-scope .ex-recent-strip__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.ex-scope .ex-recent-strip__eyebrow {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ds-muted);
  margin: 0;
}
.ex-scope .ex-recent-strip__clear {
  background: transparent;
  border: 0;
  color: var(--ds-muted);
  font-size: 0.8rem;
  cursor: pointer;
}
.ex-scope .ex-recent-strip__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ex-scope .ex-recent-strip__item {
  display: flex;
  gap: 12px;
  align-items: baseline;
  font-size: 0.85rem;
}

/* ============================================================
   2026-08-25 — Priority-1 & Priority-2 refresh-driven sections
   Uses design-system tokens so it fits the beige+ink palette,
   NOT a competing blue theme.
   ============================================================ */

/* P1-B: "What's new in this edition" — vertical stacked blocks with
   timeline-style connecting line for developments, hanging-marker bullets
   for opportunities. Reads top-to-bottom, matches the site's editorial tone. */
.ex-scope .ex-whats-new__block {
  margin: 32px 0 0;
}
.ex-scope .ex-whats-new__title {
  font-family: var(--ds-font-body);
  font-size: 0.72rem;
  margin: 0 0 18px;
  font-weight: 700;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.9px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ds-hairline);
}

/* Timeline for recent developments — vertical line + dot markers */
.ex-scope .ex-whats-new__timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.ex-scope .ex-whats-new__timeline::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--ds-hairline-strong);
}
.ex-scope .ex-whats-new__timeline > li {
  position: relative;
  padding: 0 0 22px 28px;
  display: block;
}
.ex-scope .ex-whats-new__timeline > li:last-child { padding-bottom: 0; }
.ex-scope .ex-whats-new__marker {
  position: absolute;
  left: 0;
  top: 7px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--ds-paper);
  border: 2px solid var(--ds-ink);
}
.ex-scope .ex-whats-new__body {
  display: block;
}
.ex-scope .ex-whats-new__date {
  display: block;
  font-family: var(--ds-font-body);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ds-ink);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.ex-scope .ex-whats-new__event {
  display: block;
  font-size: 0.95rem;
  color: var(--ds-body);
  line-height: 1.6;
}

/* 2026-08-26 — Timeline event title + sub-bullet body */
.ex-scope .ex-whats-new__event-title {
  display: block;
  margin: 6px 0 4px;
  font-family: var(--ds-font-body);
  font-weight: 700;
  color: var(--ds-ink);
  font-size: 0.98rem;
  line-height: 1.4;
}
.ex-scope .ex-whats-new__event-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ex-scope .ex-whats-new__event-list > li {
  position: relative;
  padding-left: 18px;
  font-size: 0.92rem;
  color: var(--ds-body);
  line-height: 1.6;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;
}
.ex-scope .ex-whats-new__event-list > li::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 10px;
  width: 5px;
  height: 5px;
  background: var(--ds-ink);
  border-radius: 50%;
}

/* Opportunities bullets — hanging diamond marker style, no boxes */
.ex-scope .ex-whats-new__bullets {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ex-scope .ex-whats-new__bullets > li {
  position: relative;
  padding: 14px 0 14px 26px;
  border-bottom: 1px solid var(--ds-hairline);
  font-size: 0.95rem;
  color: var(--ds-body);
  line-height: 1.65;
}
.ex-scope .ex-whats-new__bullets > li:last-child { border-bottom: none; }
.ex-scope .ex-whats-new__bullets > li::before {
  content: '';
  position: absolute;
  left: 6px;
  top: 24px;
  width: 6px;
  height: 6px;
  background: var(--ds-ink);           /* small solid ink dot */
  border-radius: 50%;
}
.ex-scope .ex-whats-new__label {
  display: inline;
  font-weight: 700;
  color: var(--ds-ink);
  font-family: var(--ds-font-body);
  margin-right: 4px;
}
.ex-scope .ex-whats-new__bullets .ex-whats-new__label::after {
  content: '';
}

.ex-scope .ex-whats-new__meta {
  margin-top: 28px;
  padding-top: 14px;
  border-top: 1px solid var(--ds-hairline);
  font-size: 0.78rem;
  color: var(--ds-muted);
  font-style: italic;
}
.ex-scope .ex-whats-new__meta code {
  background: var(--ds-paper-warm);
  color: var(--ds-ink);
  padding: 2px 6px;
  border-radius: var(--ds-radius-sm);
  font-family: var(--ds-font-mono);
  font-size: 0.76rem;
  font-style: normal;
}

/* P1-C: Executive Snapshot — 4 quadrants, ONE consistent visual pattern.
   Each card = label · hero · one-line sub · 3 supporting rows. Same rhythm. */
.ex-scope .ex-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 24px;
}
@media (max-width: 720px) {
  .ex-scope .ex-snapshot-grid { grid-template-columns: 1fr; }
}
.ex-scope .ex-snapshot__q {
  background: var(--ds-paper-cool);
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 260px;
}
.ex-scope .ex-snapshot__label {
  font-family: var(--ds-font-body);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.9px;
  color: var(--ds-muted);
  font-weight: 700;
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ds-hairline);
}
.ex-scope .ex-snapshot__hero {
  font-family: var(--ds-font-display);
  font-size: 1.55rem;
  font-weight: 600;
  color: var(--ds-ink);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 6px 0 2px;
  overflow-wrap: anywhere;
}
.ex-scope .ex-snapshot__hero--growth { color: var(--ds-growth); }
.ex-scope .ex-snapshot__hero-sub {
  font-size: 0.82rem;
  color: var(--ds-muted);
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  font-weight: 600;
}

/* Supporting-fact rows — same layout in every quadrant */
.ex-scope .ex-snapshot__rows {
  margin: auto 0 0;                /* push to bottom of card for consistent baseline */
  padding: 12px 0 0;
  border-top: 1px dashed var(--ds-hairline);
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ex-scope .ex-snapshot__rows > div {
  display: grid;
  grid-template-columns: minmax(110px, auto) 1fr;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--ds-hairline);
  align-items: baseline;
}
.ex-scope .ex-snapshot__rows > div:last-child { border-bottom: none; padding-bottom: 0; }
.ex-scope .ex-snapshot__rows dt {
  color: var(--ds-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  font-weight: 600;
  margin: 0;
}
.ex-scope .ex-snapshot__rows dd {
  color: var(--ds-ink);
  font-size: 0.9rem;
  font-weight: 500;
  text-align: right;
  margin: 0;
  overflow-wrap: anywhere;
}
.ex-scope .ex-snapshot__rows dd strong { font-weight: 700; }

/* Inline growth/decline badges (used in Q3 for tailwind/headwind chips) */
.ex-scope .ex-snapshot__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-family: var(--ds-font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: none;
  line-height: 1.5;
}
.ex-scope .ex-snapshot__badge--up {
  color: var(--ds-growth);
  background: color-mix(in oklab, var(--ds-growth) 10%, var(--ds-paper-cool));
}
.ex-scope .ex-snapshot__badge--down {
  color: var(--ds-decline);
  background: color-mix(in oklab, var(--ds-decline) 10%, var(--ds-paper-cool));
}

/* Q4 event body — free-flowing prose under the date hero */
.ex-scope .ex-snapshot__event-body {
  color: var(--ds-body);
  font-size: 0.88rem;
  line-height: 1.55;
  margin: 0 0 auto;                /* push count to bottom */
  padding: 4px 0 12px;
}
.ex-scope .ex-snapshot__event-count {
  margin: auto 0 0;
  padding-top: 12px;
  border-top: 1px dashed var(--ds-hairline);
  font-size: 0.78rem;
  color: var(--ds-muted);
}
.ex-scope .ex-snapshot__event-count strong { color: var(--ds-ink); font-weight: 700; }

/* P2: Segment / Competitive / Regional intro paragraphs — editorial
   pull-quote style. Uses an oversized opening quote mark + wider padding
   to make the refresh-derived narrative feel like analyst commentary, not
   a boxed alert. */
.ex-scope .ex-section-intro-real {
  position: relative;
  background: var(--ds-paper-cool);
  border-left: 3px solid var(--ds-warn);
  padding: 22px 28px 32px 56px;    /* extra bottom padding so "Analyst read" doesn't sit on top of the last line */
  border-radius: var(--ds-radius-md);
  margin: 16px 0 24px;
  font-size: 1.02rem;
  color: var(--ds-body);
  line-height: 1.65;
  font-family: var(--ds-font-body);
  text-align: justify;             /* both edges aligned — cleaner block look for editorial callout */
  text-justify: inter-word;
  hyphens: auto;                   /* let long words hyphenate so justify doesn't create rivers */
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;    /* only hyphenate words with 8+ chars, min 4 before/4 after */
}
.ex-scope .ex-section-intro-real::before {
  content: '\201C';                 /* opening double-quote */
  position: absolute;
  left: 14px;
  top: 6px;
  font-family: var(--ds-font-display);
  font-size: 3.2rem;
  line-height: 1;
  color: var(--ds-warn);
  font-weight: 600;
  opacity: 0.55;
}
.ex-scope .ex-section-intro-real::after {
  content: 'Analyst read';
  position: absolute;
  right: 18px;
  bottom: 8px;
  font-family: var(--ds-font-body);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.9px;
  color: var(--ds-muted);
  font-weight: 600;
  opacity: 0.7;
}
@media (max-width: 620px) {
  .ex-scope .ex-section-intro-real {
    padding: 18px 20px 24px 40px;
    font-size: 0.98rem;
  }
  .ex-scope .ex-section-intro-real::before {
    left: 10px;
    font-size: 2.6rem;
  }
}

/* ============================================================
   2026-08-25 — Justify body prose in numbered-list sections
   (Methodology, Regulatory landscape, Segments sub-cards,
   What's-new opportunity bodies). Applies AFTER earlier rules
   so it overrides ragged-right defaults. Headings/labels stay
   left-aligned; only body copy is justified.
   ============================================================ */
.ex-scope .ex-region__body,
.ex-scope .ex-subseg__value,
.ex-scope .ex-whats-new__event,
.ex-scope .ex-whats-new__bullets > li,
.ex-scope .ex-snapshot__event-body {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;   /* only hyphenate words >= 8 chars, min 4 before/after */
}

/* ============================================================
   2026-08-25 — Hero right-column redesign
   Clean summary + 4-stat anchor grid + trust line.
   Replaces the raw-title-dump + truncated-paragraph blob.
   ============================================================ */
.ex-scope .ex-detail-hero__stats {
  margin: 20px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--ds-hairline);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px 24px;
}
@media (max-width: 540px) {
  .ex-scope .ex-detail-hero__stats { grid-template-columns: 1fr; gap: 14px; }
}
.ex-scope .ex-detail-hero__stats > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ex-scope .ex-detail-hero__stats dt {
  font-size: 0.7rem;
  font-family: var(--ds-font-body);
  font-weight: 700;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.7px;
  margin: 0;
}
.ex-scope .ex-detail-hero__stats dd {
  margin: 0;
  font-family: var(--ds-font-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ds-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.ex-scope .ex-detail-hero__stat-growth {
  color: var(--ds-growth) !important;
}
.ex-scope .ex-detail-hero__trust {
  margin: 20px 0 0;
  padding-top: 14px;
  border-top: 1px dashed var(--ds-hairline);
  font-size: 0.78rem;
  color: var(--ds-muted);
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.ex-scope .ex-detail-hero__trust span[aria-hidden] { opacity: 0.5; }

/* Collapsible SEO meta title — small, muted, doesn't compete with summary.
   Full text is always in the DOM (search engines see it) even when collapsed. */
.ex-scope .ex-detail-hero__meta {
  margin: 12px 0 0;
  padding: 10px 0 0;
  border-top: 1px dashed var(--ds-hairline);
}
.ex-scope .ex-detail-hero__meta > summary {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.ex-scope .ex-detail-hero__meta > summary::-webkit-details-marker { display: none; }
.ex-scope .ex-detail-hero__meta > summary::after {
  content: '▸';
  font-size: 0.7rem;
  transition: transform 150ms ease;
  color: var(--ds-muted);
}
.ex-scope .ex-detail-hero__meta[open] > summary::after { transform: rotate(90deg); }
.ex-scope .ex-detail-hero__meta > summary:hover { color: var(--ds-ink); }
.ex-scope .ex-detail-hero__meta > p {
  margin: 10px 0 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--ds-muted);
  font-style: italic;
}

/* ============================================================
   2026-08-26 — Hero left-column anchor pills
   Fills the empty space below the title with 3 quick-scan
   facts (size trajectory, CAGR, leading region). Sits above
   the Download/Speak-to-analyst buttons.
   ============================================================ */
.ex-scope .ex-detail-hero__pills {
  margin: 28px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ex-scope .ex-detail-hero__pill {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  border-radius: var(--ds-radius-md);
  background: var(--ds-paper-warm);
  border: 1px solid var(--ds-hairline);
  min-width: 0;
}
.ex-scope .ex-detail-hero__pill-lbl {
  font-family: var(--ds-font-body);
  font-size: 0.66rem;
  font-weight: 700;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.7px;
  line-height: 1.2;
}
.ex-scope .ex-detail-hero__pill-val {
  font-family: var(--ds-font-display);
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--ds-ink);
  line-height: 1.25;
  letter-spacing: -0.005em;
}
.ex-scope .ex-detail-hero__pill--growth .ex-detail-hero__pill-val {
  color: var(--ds-growth);
}
@media (max-width: 720px) {
  .ex-scope .ex-detail-hero__pills { gap: 8px; }
  .ex-scope .ex-detail-hero__pill { padding: 8px 12px; }
  .ex-scope .ex-detail-hero__pill-val { font-size: 0.95rem; }
}

/* Editorial drop-cap on the first paragraph of the hero summary */
.ex-scope .ex-detail-hero__right > .ex-detail-hero__desc:first-of-type::first-letter {
  font-family: var(--ds-font-display);
  float: left;
  font-size: 3.1rem;
  line-height: 0.9;
  font-weight: 600;
  color: var(--ds-ink);
  margin: 6px 10px 0 0;
  padding: 0;
}

/* Inline highlights inside the hero paragraph — quiet emphasis so a scanning
   buyer's eye lands on numbers and years without turning the copy into a
   marker-colored mess. Marks have no bg fill, just a subtle underline. */
.ex-scope .ex-hero-mark {
  background: transparent;
  color: inherit;
  padding: 0;
  font-weight: 600;
  white-space: nowrap;
}
.ex-scope .ex-hero-mark--num {
  color: var(--ds-ink);
  border-bottom: 1px solid var(--ds-hairline-strong);
}
.ex-scope .ex-hero-mark--pct {
  color: var(--ds-growth);
  border-bottom: 1px solid color-mix(in oklab, var(--ds-growth) 40%, transparent);
}
.ex-scope .ex-hero-mark--year {
  color: var(--ds-ink);
  font-variant-numeric: tabular-nums;
}

/* Slight leading uplift on hero paragraphs (they're the highest-value read) */
.ex-scope .ex-detail-hero__desc {
  font-size: 1rem;
  line-height: 1.7;
}

/* =============================================================================
   SPARKLINE STAT ROW — 3 hero numbers above the market size chart
   ============================================================================= */
.ex-scope .ex-stat-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-bottom: 20px;
  border: 1px solid var(--ds-hairline);
  border-radius: var(--ds-radius-md);
  overflow: hidden;
  background: var(--ds-paper-warm);
}
.ex-scope .ex-stat-row__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 18px 16px;
  gap: 4px;
  text-align: center;
}
.ex-scope .ex-stat-row__item--accent .ex-stat-row__value {
  color: #16A34A;
}
.ex-scope .ex-stat-row__value {
  font-family: var(--ds-font-mono);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--ds-ink);
  letter-spacing: -0.01em;
  line-height: 1;
}
.ex-scope .ex-stat-row__label {
  font-size: 0.72rem;
  color: var(--ds-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 500;
}
.ex-scope .ex-stat-row__divider {
  width: 1px;
  background: var(--ds-hairline);
  flex-shrink: 0;
}
@media (max-width: 520px) {
  .ex-scope .ex-stat-row { flex-direction: column; }
  .ex-scope .ex-stat-row__divider { width: 100%; height: 1px; }
}

/* =============================================================================
   EXPLODED PIE CHART (variant 0)
   ============================================================================= */
.ex-scope .ex-chart-pie-wrap {
  width: 100%;
  overflow-x: auto;
}
.ex-scope .ex-chart-pie-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  min-width: 420px;
}

/* =============================================================================
   VERTICAL BAR SEGMENT CHART (variant 1)
   ============================================================================= */
.ex-scope .ex-chart-horiz-wrap {
  width: 100%;
  overflow-x: auto;
}
.ex-scope .ex-chart-horiz-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  min-width: 340px;
}

/* =============================================================================
   WAFFLE CHART (variant 2)
   ============================================================================= */
.ex-scope .ex-chart-waffle-wrap {
  width: 100%;
  overflow-x: auto;
}
.ex-scope .ex-chart-waffle-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  min-width: 360px;
}

/* =============================================================================
   DONUT RING (seg variant 3)
   ============================================================================= */
.ex-scope .ex-chart-donut-ring-wrap {
  width: 100%;
  overflow-x: auto;
}
.ex-scope .ex-chart-donut-ring-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  min-width: 340px;
}

/* =============================================================================
   ISOMETRIC 3D PIE (seg variant 4)
   ============================================================================= */
.ex-scope .ex-chart-pie3d-wrap {
  width: 100%;
  overflow-x: auto;
}
.ex-scope .ex-chart-pie3d-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  min-width: 400px;
}


/* =============================================================================
   Newsletter inline form (blog + press sidebars) — 2026-09-04
   Beige input + grey button per user request
   ============================================================================= */
.ex-scope .ex-newsletter-inline {
  font-family: var(--ds-font-body, "Source Sans 3", sans-serif);
}
.ex-scope .ex-newsletter-inline__eyebrow {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ds-muted, #6B655A);
  margin: 0 0 10px;
}
.ex-scope .ex-newsletter-inline__title {
  font-family: var(--ds-font-display, "Source Sans 3", sans-serif);
  font-size: 1.15rem;
  line-height: 1.3;
  color: var(--ds-ink, #0A0A0B);
  margin: 0 0 10px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.ex-scope .ex-newsletter-inline__body {
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--ds-body, #2E2C28);
  margin: 0 0 16px;
}
.ex-scope .ex-newsletter-inline__row {
  display: flex;
  gap: 0;
  align-items: stretch;
  border: 1px solid var(--ds-hairline-strong, #B8AE95);
  border-radius: 2px;
  overflow: hidden;
  background: var(--ds-paper, #F5F0E2);
}
.ex-scope .ex-newsletter-inline__row input[type="email"] {
  flex: 1;
  min-width: 0;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--ds-ink, #0A0A0B);
  background: var(--ds-paper, #F5F0E2);
  border: 0;
  outline: none;
}
.ex-scope .ex-newsletter-inline__row input[type="email"]::placeholder {
  color: var(--ds-muted-soft, #8A8477);
}
.ex-scope .ex-newsletter-inline__row input[type="email"]:focus {
  background: var(--ds-paper-cool, #FAF6EC);
}
.ex-scope .ex-newsletter-inline__row button {
  padding: 0 18px;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-ink, #0A0A0B);
  background: var(--ds-paper-warm, #F0E9D5);
  border: 0;
  border-left: 1px solid var(--ds-hairline-strong, #B8AE95);
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}
.ex-scope .ex-newsletter-inline__row button:hover {
  background: var(--ds-ink, #0A0A0B);
  color: var(--ds-paper, #F5F0E2);
}
.ex-scope .ex-newsletter-inline__status {
  margin: 8px 0 0;
  font-size: 0.78rem;
  color: var(--ds-muted, #6B655A);
  min-height: 1.2em;
}
.ex-scope .ex-newsletter-inline__status.is-success {
  color: var(--ds-growth, #2F6E4E);
}
.ex-scope .ex-newsletter-inline__status.is-error {
  color: var(--ds-decline, #8A2A1F);
}

/* =============================================================================
   About page client roster — logo grid + pills fallback — 2026-09-04
   ============================================================================= */
.ex-scope .ex-about__client-roster {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
  padding-top: 32px;
  border-top: 1px solid var(--ds-hairline, #D8CFB8);
}
.ex-scope .ex-about__client-logo {
  height: 80px;
  width: 100%;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--ds-hairline, #D8CFB8);
  border-radius: 4px;
  object-fit: contain;
  transition: border-color 160ms ease, transform 160ms ease;
}
.ex-scope .ex-about__client-logo:hover {
  border-color: var(--ds-hairline-strong, #B8AE95);
  transform: translateY(-1px);
}

/* Fix About page section-sub paragraph justify gaps — force left-align on this narrow-width intro */
.ex-scope .ex-about__section-sub {
  text-align: left !important;
  hyphens: manual !important;
  word-spacing: normal !important;
}
