/* ===========================================================================
   WHO WE SERVE — page overrides
   Loaded AFTER /css/expertise.css, which still holds the shared base rules for
   .type-grid, .ind-grid, .fit-grid and .reach. Everything here is additive:
   it turns the four-across grids into two-across (2x2 style) cells that carry a
   full paragraph each, per the client correction of 6 Aug 2026.
   Tokens only. No hardcoded colours. Breakpoints: 375 / 768 / 1280.
   =========================================================================== */

/* ---- shared section intro ---- */
.wws-intro {
  max-width: 68ch;
  margin: var(--space-5) 0 var(--space-7);
  font-size: var(--body-sm-size);
  line-height: 1.7;
  font-weight: 300;
  color: var(--text-secondary);
}

/* ---- by client type: two across ---- */
.type-grid--pair {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}
@media (min-width: 760px) {
  .type-grid--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
}
.type-grid--pair .type { gap: var(--space-3); }
.type-grid--pair .type__title { font-size: 19px; margin-bottom: var(--space-1); }
.type-grid--pair .type__text + .type__text { margin-top: var(--space-3); }
.type-grid--pair .type__text { line-height: 1.7; }

/* ---- by industry: two across, with body copy ---- */
.ind-grid--pair {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}
@media (min-width: 760px) {
  .ind-grid--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
}
.ind--rich {
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
}
.ind__body { min-width: 0; display: block; }
.ind--rich .ind__name { display: block; font-size: 16px; }
.ind__text {
  margin: var(--space-3) 0 0;
  font-size: var(--body-sm-size);
  line-height: 1.7;
  font-weight: 300;
  color: var(--text-secondary);
}

/* ---- fit signals: two across, headed statements ---- */
.fit-grid--pair {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}
@media (min-width: 760px) {
  .fit-grid--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
}
.fit-grid--pair .fit__text { display: block; line-height: 1.7; }
.fit__head {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  color: var(--text-primary);
  margin-bottom: var(--space-2);
}

.fit-note__intro {
  margin: 0 0 var(--space-4);
  font-size: var(--body-sm-size);
  line-height: 1.7;
  font-weight: 300;
  color: var(--text-secondary);
}

/* ---- reach copy ---- */
.reach__copy .text-secondary {
  margin: 0 0 var(--space-6);
  font-size: var(--body-sm-size);
  line-height: 1.7;
}

@media (max-width: 480px) {
  .ind--rich { padding: var(--space-5); }
  .type-grid--pair .type__title { font-size: 17px; }
}
