/* Strategic Labs — V002-M3 §14/§15 mobile information density.

   Every reduction here is measured, not guessed: `_V002_EVIDENCE/scripts/
   m3_probe.mjs home-mobile` reports per-section heights before and after.
   No approved content is removed, truncated or hidden behind a control that
   is not obviously a control. */

@media (max-width: 599px) {
  /* ---- §14 global rhythm ----
     Section padding is the single largest line item on a 15-section page:
     15 sections x 2 x 48px = 1,440px of pure spacing. A tighter mobile beat
     keeps the chapter rhythm while returning ~350px. */
  :root {
    --sec: 2.5rem;         /* 48 -> 40 */
    --sec-tight: 1.9rem;   /* 36 -> 30 */
    --lh-body: 1.74;       /* Arabic stays comfortable; 1.85 was generous */
  }

  /* §12 arc reserve scales with the (smaller) mobile arc so the safe area is
     kept without paying desktop-sized padding on a phone */
  .section--dark:has(> .sl-arc-top), .cta:has(> .sl-arc-top) { padding-block-start: calc(var(--sec) + 34px); }
  .section--dark:has(> .sl-arc-bottom) { padding-block-end: calc(var(--sec) + 34px); }
  .home-hero:has(> .sl-arc-bottom) { padding-block-end: calc(var(--s7) + 34px); }

  /* ---- hero: the practice index is a second copy of the gateway pathway.
     It stays (nothing is removed) but as a compact two-up index instead of
     five full-width rows. ---- */
  .home-practice-index { padding: var(--s4); }
  .home-practice-index__label { margin-bottom: var(--s2); padding-bottom: var(--s2); }
  .home-practice-index__item {
    display: grid; grid-template-columns: auto minmax(0,1fr); gap: var(--s2);
    padding: .45rem .4rem; margin-inline: -.4rem; min-height: 44px; align-items: center;
  }
  .home-practice-index__item span[aria-hidden] { display: none; }
  .home-practice-index__item strong { font-size: .88rem; line-height: 1.35; }
  .home-practice-index__item + .home-practice-index__item { border-block-start: 1px solid var(--line-dark); }

  /* ---- metrics: still the strongest proof moment, in less space ---- */
  .home-proof__band { gap: var(--s3); }
  .home-proof__metric { padding: var(--s5) var(--s5) var(--s4); }
  .home-proof__metric b { font-size: 3.1rem; }
  .home-proof__note { margin-top: var(--s5); }

  /* ---- bound copy pairs: tighter, still connected ---- */
  .sl-intro { margin-bottom: var(--s6); }
  .sec-head { margin-bottom: var(--s6); }
  .pm-copy-grid { gap: var(--s4); }

  /* ---- why-us traits ---- */
  .home-why__traits { margin-bottom: var(--s6); gap: var(--s4) var(--s3); }
  .home-why__trait h3 { margin-bottom: var(--s2); font-size: .94rem; }
  .home-why__trait p { font-size: .88rem; line-height: 1.7; }

  /* ---- clients wall: two columns, optically balanced, much shorter ---- */
  .clients-wall .trustwall__grid, main[data-page="clients"] .trustwall__grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s3); }
  .trustwall__cell { min-block-size: 0; padding: var(--s4) var(--s3); }
  .trustwall__cell img { max-block-size: 34px; }
  .trustwall__cell figcaption { font-size: .74rem; line-height: 1.4; }

  /* ---- §15 snap rails: obvious, peeking, keyboard-reachable ----
     Cards peek by 22%, the rail fades at its scroll edge so there is a visible
     signal that more exists, and rails whose cards are not focusable get a
     keyboard-scrollable group (see PublicNavigationClient). */
  [data-rail], .home-gateway__grid { position: relative; scroll-padding-inline: var(--gutter-side); }
  [data-rail]:focus-visible { outline: 3px solid var(--brand-2); outline-offset: 2px; }
  .section--dark [data-rail]:focus-visible { outline-color: var(--mint); }
  .home-method__flow > li, .home-why__reasons > * { padding: var(--s5); }
  .home-method__stage h3 { font-size: .98rem; }
  .home-method__stage > p { font-size: .88rem; line-height: 1.7; }
  .home-why__reason h3 { font-size: .98rem; }
  .home-why__reason p { font-size: .88rem; }
  .home-deep__rail > li { font-size: .88rem; padding: var(--s3) var(--s4); }
  /* five composed practice records become a peeking snap rail like the others */
  .home-deep__records {
    display: flex; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory; gap: var(--s3); margin-block-start: var(--s6);
    margin-inline: calc(var(--gutter-side) * -1); padding-inline: var(--gutter-side); padding-block-end: var(--s4);
    grid-template-columns: none; scrollbar-width: thin;
  }
  .home-deep__records > li { flex: 0 0 78%; min-inline-size: 78%; scroll-snap-align: start; padding: var(--s4); }
  .home-deep__body { font-size: .82rem; }

  /* ---- gateway / capability previews ---- */
  .home-gateway__card { min-block-size: 150px; }
  .home-gateway__card h3 { font-size: .98rem; }
  .home-gateway__inventory, .m1-authority-copy { margin-top: var(--s5); }
  .pm-cap-preview .sl-card { padding: var(--s4) var(--s5); }

  /* ---- institutional note / team ---- */
  .home-team__inner .sl-note { padding: var(--s4); }
  .home-team__inner .sl-note p { font-size: .88rem; line-height: 1.75; }

  /* ---- closing CTA ---- */
  .cta__inner { gap: var(--s5); }
  .cta h2 { max-width: none; }
  .pm-cta .cta__actions .btn { inline-size: 100%; }
}

/* 360 / 320: the same system, one notch tighter — never a different design */
@media (max-width: 360px) {
  :root { --sec: 2.25rem; }
  .home-proof__metric b { font-size: 2.85rem; }
  .home-practice-index__item strong { font-size: .85rem; }
  .trustwall__cell img { max-block-size: 30px; }
}
