/* ====================================================================
   N.D.A. — Responsive overrides
   Layered AFTER each page's inline <style> block so these rules win.
   Two breakpoints:
     • Tablet  ≤1024px   — collapse 3-col grids → 2-col, stack hero asides
     • Mobile  ≤640px    — collapse to single column, shrink type, hide center nav
   Intent: stack, not redesign. Preserve the industrial-terminal feel.
   ==================================================================== */


/* ====================================================================
   TABLET — ≤1024px
   ==================================================================== */
@media (max-width: 1024px) {

  /* Section padding tightens */
  section { padding: 60px 20px; }
  nav.top { padding: 12px 20px; gap: 14px; }
  /* Hide center nav links on tablet — they wrap and look cramped. Footer + breadcrumbs handle navigation. */
  nav.top .links { display: none; }
  nav.top .status { gap: 10px; }
  nav.top .status > span:nth-child(2) { display: none; }  /* hide timestamp */
  .sec-head { gap: 18px; }
  .sec-head h2 { font-size: 28px; }

  /* ===== HOME — hero ===== */
  .hero { padding: 24px 20px 0; }
  .crumbs { grid-template-columns: repeat(3, 1fr); }
  .crumbs > div { border-bottom: 1px solid var(--line); }
  .crumbs > div:nth-child(3n) { border-right: none; }
  .crumbs > div:nth-last-child(-n+3) { border-bottom: none; }

  .hero-main { grid-template-columns: 1fr; min-height: 0; }
  .hero-side { border-right: none; border-bottom: 1px solid var(--line); padding: 20px 22px; }
  .hero-side.right { border-left: none; border-bottom: none; }
  .hero-center { padding: 28px 24px; min-height: 380px; }
  .hero-title { font-size: 56px; }

  /* ===== HOME — capabilities 3-col → 2-col ===== */
  .caps-grid .module { grid-column: span 6; }
  .caps-grid .module:nth-child(3n) { border-right: 1px solid var(--line); }
  .caps-grid .module:nth-child(2n) { border-right: none; }
  .caps-grid .module:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }
  .caps-grid .module:nth-last-child(-n+2) { border-bottom: none; }

  /* ===== HOME — process 5 → 2 ===== */
  .process { grid-template-columns: 1fr 1fr; }
  .pstep { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 240px; }
  .pstep:nth-child(2n) { border-right: none; }
  .pstep:nth-last-child(-n+2) { border-bottom: none; }
  .pstep:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: none; }
  .pstep .pnum .arrow { display: none; }

  /* ===== HOME — verticals (drop description column) ===== */
  .vrow { grid-template-columns: 50px 200px 1fr 100px 60px; padding: 12px 20px; }

  /* ===== HOME — case study ===== */
  .casebox { grid-template-columns: 1fr; min-height: 0; }
  .case-left { border-right: none; border-bottom: 1px solid var(--line); padding: 30px 24px; }
  .case-left h3 { font-size: 42px; }
  .case-numbers .cn { font-size: 60px; }
  .case-numbers > div { min-height: 160px; padding: 20px; }

  /* ===== HOME — partners 5 → 3 ===== */
  .partner-grid { grid-template-columns: repeat(3, 1fr); }
  .partner { border-right: 1px solid var(--line); }
  .partner:nth-child(3n) { border-right: none; }
  .partner:nth-child(n+4) { border-top: 1px solid var(--line); }

  /* ===== HOME — dispatch 2-col → stacked ===== */
  .dispatch { grid-template-columns: 1fr; }
  .dpanel { border-right: none; border-bottom: 1px solid var(--line); }
  .dpanel:last-child { border-bottom: none; }
  .metrics { height: auto; }
  .metric { min-height: 160px; }

  /* ===== HOME — metrics-band 4 → 2 ===== */
  .metrics-band { grid-template-columns: 1fr 1fr; }
  .mb-cell { border-right: 1px solid var(--line); }
  .mb-cell:nth-child(2n) { border-right: none; }
  .mb-cell:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .mb-cell .mbn { font-size: 64px; }

  /* ===== HOME — routing keeps fluid ===== */
  .routing { height: 360px; }

  /* ===== HOME — contact stack ===== */
  .contact { grid-template-columns: 1fr; }
  .c-left { border-right: none; border-bottom: 1px solid var(--line); padding: 30px 24px; }
  .c-left h2 { font-size: 40px; }

  /* ===== HOME — footer ===== */
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 22px; }
  .foot-lock { flex-direction: column; align-items: flex-start; gap: 18px; }
  .foot-lock .big { font-size: 96px; }
  .foot-lock .meta { text-align: left; }

  /* ===== ROSTER ===== */
  .rh-top { grid-template-columns: 1fr; gap: 22px; align-items: start; }
  .rh-top h1 { font-size: 64px; }
  .rh-metrics { grid-template-columns: repeat(3, 1fr); }
  .rh-metrics > div { border-right: 1px solid var(--line); }
  .rh-metrics > div:nth-child(3n) { border-right: none; }
  .rh-metrics > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .roster { grid-template-columns: repeat(2, 1fr); }
  .rcard { border-right: 1px solid var(--line); }
  .rcard:nth-child(2n) { border-right: none; }
  .cta { grid-template-columns: 1fr; gap: 24px; margin: 0 20px 28px; }

  /* ===== MODULE PAGES ===== */
  .mhero { padding: 40px 20px 0; }
  .module-card { grid-template-columns: 1fr; min-height: 0; }
  .mh-main { border-right: none; border-bottom: 1px solid var(--line); padding: 32px 24px; }
  .mh-title { font-size: 64px; }
  .mh-meta { grid-template-columns: 1fr 1fr; gap: 18px; }
  .mh-stats > div { padding: 20px; }
  .mh-stats .n { font-size: 44px; }
  .drow { grid-template-columns: 50px 220px 1fr 130px 80px; padding: 16px 20px; }
  .wf { padding: 22px; overflow-x: auto; }
  .stack { grid-template-columns: 1fr 1fr; }
  .stack-cell { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .stack-cell:nth-child(2n) { border-right: none; }
  .stack-cell:nth-last-child(-n+2) { border-bottom: none; }
  .engs { grid-template-columns: 1fr; }
  .eng { border-right: none; border-bottom: 1px solid var(--line); min-height: 0; padding: 24px; }
  .eng:last-child { border-bottom: none; }
  .other-modules { grid-template-columns: 1fr 1fr; }
  .omod { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .omod:nth-child(2n) { border-right: none; }
  .omod:nth-last-child(-n+2) { border-bottom: none; }
  .omod:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .module-card + section .cta { grid-template-columns: 1fr; gap: 24px; }
}


/* ====================================================================
   MOBILE — ≤640px
   ==================================================================== */
@media (max-width: 640px) {

  /* Type baseline */
  body { font-size: 13px; }

  /* Section padding tighter still */
  section { padding: 44px 14px; }

  /* ===== NAV — hide center links, keep mark + status ===== */
  nav.top { padding: 10px 14px; gap: 10px; grid-template-columns: auto 1fr; }
  nav.top .links { display: none; }
  nav.top .status { font-size: 10px; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
  nav.top .status > span:nth-child(2) { display: none; }   /* hide the timestamp */
  nav.top .status .btn.solid { padding: 7px 10px !important; font-size: 10px; }

  .sec-head { grid-template-columns: 1fr; gap: 8px; margin-bottom: 24px; }
  .sec-head h2 { font-size: 24px; }
  .sec-head .meta { font-size: 10px; }

  /* ===== HOME — hero ===== */
  .hero { padding: 18px 14px 0; }
  .crumbs { grid-template-columns: 1fr 1fr; }
  .crumbs > div { padding: 10px 12px; }
  .crumbs > div:nth-child(2n) { border-right: none; }
  .crumbs > div:not(:nth-last-child(-n+2)) { border-bottom: 1px solid var(--line); }

  .hero-center { padding: 24px 16px; min-height: 320px; }
  .h-kicker { flex-wrap: wrap; gap: 8px 12px; font-size: 10px; }
  .hero-title { font-size: 40px; margin-top: 22px; }
  .h-actions { flex-direction: column; align-items: stretch; gap: 10px; }
  .h-actions .btn { justify-content: center; padding: 12px 16px; }
  .console { font-size: 10px; padding: 12px 14px; margin-top: 22px; }
  .hero-side { padding: 18px 16px; font-size: 11px; }

  /* ===== HOME — capabilities → 1-col ===== */
  .caps-grid .module { grid-column: span 12; border-right: none; min-height: 0; padding: 22px 18px; }
  .caps-grid .module:not(:last-child) { border-bottom: 1px solid var(--line); }
  .module h3 { font-size: 22px; }

  /* ===== HOME — process 5 → 1 ===== */
  .process { grid-template-columns: 1fr; }
  .pstep { border-right: none; border-bottom: 1px solid var(--line); min-height: 0; padding: 22px 18px; }
  .pstep:last-child { border-bottom: none; }
  .pstep:last-child:nth-child(odd) { grid-column: auto; }

  /* ===== HOME — verticals: 2-col compact ===== */
  .vrow { grid-template-columns: 1fr auto; gap: 6px 14px; padding: 14px 16px; row-gap: 4px; }
  .vrow:hover { padding-left: 16px; }
  .vrow .v-id { font-size: 10px; grid-column: 1 / -1; }
  .vrow .v-desc { grid-column: 1 / -1; font-size: 10px; }
  .vrow .v-name { font-size: 22px; grid-column: 1; grid-row: 2; }
  .vrow .v-status { grid-column: 2; grid-row: 2; font-size: 10px; }
  .vrow .v-count { grid-column: 1 / -1; text-align: left; font-size: 10px; }

  /* ===== HOME — case study ===== */
  .case-left { padding: 24px 16px; }
  .case-left h3 { font-size: 28px; }
  .case-left .lede { font-size: 14px; }
  .case-meta { grid-template-columns: 1fr 1fr; gap: 14px; }
  .case-bar { padding: 10px 16px; font-size: 10px; }
  .case-numbers { grid-template-columns: 1fr 1fr; }
  .case-numbers > div { border-right: 1px solid var(--line); min-height: 130px; padding: 16px 14px; }
  .case-numbers > div:nth-child(2n) { border-right: none; }
  .case-numbers > div:nth-last-child(-n+2) { border-bottom: none; }
  .case-numbers .cn { font-size: 44px; }

  /* ===== HOME — partners → 1-col ===== */
  .partner-grid { grid-template-columns: 1fr; }
  .partner { border-right: none; border-top: 1px solid var(--line) !important; min-height: 0; padding: 22px 18px; }
  .partner:first-child { border-top: none !important; }

  /* ===== HOME — dispatch ===== */
  .log { height: 280px; padding: 12px 14px; font-size: 11px; line-height: 1.7; }
  .log .ent { grid-template-columns: 56px 44px 1fr; gap: 8px; }
  .log .ent .lvl { font-size: 10px; }
  .dpanel .dh { padding: 10px 14px; font-size: 10px; }
  .metrics { grid-template-rows: auto; }
  .metric { padding: 18px 14px; min-height: 140px; }
  .metric .mn { font-size: 44px; }
  .metric .mn .unit { font-size: 14px; }

  /* ===== HOME — metrics-band → 1 ===== */
  .metrics-band { grid-template-columns: 1fr; }
  .mb-cell { border-right: none; border-bottom: 1px solid var(--line); min-height: 0; padding: 22px 18px; }
  .mb-cell:last-child { border-bottom: none; }
  .mb-cell .mbn { font-size: 52px; }

  /* ===== HOME — routing diagram ===== */
  .routing { height: 240px; padding: 14px; }
  .routing .rh { font-size: 9px; gap: 8px; flex-wrap: wrap; }

  /* ===== HOME — contact ===== */
  .c-left { padding: 24px 16px; }
  .c-left h2 { font-size: 30px; }
  .c-right { padding: 16px; }
  .infogrid { grid-template-columns: 1fr; gap: 14px; }
  .form-row { grid-template-columns: 1fr; padding: 4px 0; gap: 0; }
  .form-row label { padding: 12px 0 2px; font-size: 9px; }
  .form-row input,
  .form-row select,
  .form-row textarea { padding: 4px 0 14px; font-size: 14px; }

  /* ===== HOME — ticker slow ===== */
  .ticker-row { animation-duration: 60s; font-size: 10px; gap: 22px; }

  /* ===== HOME — footer ===== */
  footer { padding: 22px 14px 26px; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 14px 22px; padding-top: 16px; font-size: 10px; }
  .foot-grid > div:first-child { grid-column: 1 / -1; }
  .foot-lock { gap: 14px; padding-top: 18px; }
  .foot-lock .big { font-size: 56px; line-height: 0.9; }
  .foot-lock .meta { font-size: 9px; }

  /* ===== ROSTER ===== */
  .rhero { padding: 32px 14px 22px; }
  .rh-top h1 { font-size: 44px; }
  .rh-top .lede { font-size: 14px; }
  .rh-metrics { grid-template-columns: 1fr 1fr; }
  .rh-metrics > div { padding: 14px 16px; min-height: 90px; }
  .rh-metrics > div { border-right: 1px solid var(--line); }
  .rh-metrics > div:nth-child(2n) { border-right: none; }
  .rh-metrics > div:not(:nth-last-child(-n+2)) { border-bottom: 1px solid var(--line); }
  .rh-metrics .n { font-size: 30px; }
  .filter-bar { padding: 12px 14px; flex-direction: column; align-items: stretch; gap: 14px; }
  .filters { gap: 6px; }
  .chip { font-size: 10px; padding: 7px 12px; }
  .toolbar { flex-direction: column; align-items: stretch; gap: 10px; }
  .search-input { width: 100%; }
  .view-toggle { align-self: flex-start; }
  .roster-section { padding: 22px 14px 40px; }
  .roster { grid-template-columns: 1fr; }
  .rcard { border-right: none; min-height: 0; padding: 20px 18px; }
  .rcard .name { font-size: 24px; }
  .cta { padding: 28px 18px; margin: 0 14px 24px; gap: 18px; }
  .cta h2 { font-size: 30px; }

  /* ===== MODULE PAGES ===== */
  .breadbar { padding: 12px 14px; flex-direction: column; align-items: flex-start; gap: 6px; font-size: 9px; }
  .breadbar .seg { padding: 0 6px; }
  .mhero { padding: 28px 14px 0; }
  .mh-main { padding: 26px 18px; }
  .mh-title { font-size: 40px; }
  .mh-lede { font-size: 14px; }
  .mh-meta { grid-template-columns: 1fr 1fr; gap: 14px; }
  .mh-side .head { padding: 10px 16px; font-size: 10px; }
  .mh-stats > div { padding: 16px 18px; }
  .mh-stats .n { font-size: 36px; }
  .mh-stats .n .u { font-size: 14px; }

  /* Deliverables → single-col stacked card */
  .drow {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 16px 16px;
    align-items: start;
  }
  .drow:hover { padding-left: 16px; }
  .drow .did { font-size: 10px; opacity: 0.55; }
  .drow .dname { font-size: 17px; }
  .drow .ddesc { font-size: 12px; }
  .drow .dwhen { font-size: 10px; padding-top: 4px; }
  .drow .dstatus { font-size: 10px; }

  /* Workflow svg keeps natural aspect via overflow scroll */
  .wf { padding: 18px 14px; overflow-x: auto; }

  /* Stack 4 → 1 */
  .stack { grid-template-columns: 1fr; }
  .stack-cell { border-right: none; border-bottom: 1px solid var(--line); min-height: 0; padding: 20px 18px; }
  .stack-cell:last-child { border-bottom: none; }

  /* Engagements */
  .eng { padding: 22px 18px; }
  .eng h3 { font-size: 24px; }
  .eng .ent { flex-wrap: wrap; gap: 10px 14px; font-size: 10px; }

  /* Other modules — single col */
  .other-modules { grid-template-columns: 1fr; }
  .omod { border-right: none; border-bottom: 1px solid var(--line); padding: 18px 18px; }
  .omod:last-child { border-bottom: none; }
  .omod:last-child:nth-child(odd) { grid-column: auto; }

  /* CTA on module pages */
  .cta { grid-template-columns: 1fr; padding: 32px 18px; gap: 22px; }
  .cta h2 { font-size: 30px; line-height: 1; }
  .cta .actions { gap: 10px; }

  /* Footer (subpages) */
  footer { flex-direction: column; gap: 8px; align-items: flex-start; padding: 20px 14px 24px; }
}


/* ====================================================================
   Small phone — ≤380px (tighten further so things don't crowd)
   ==================================================================== */
@media (max-width: 380px) {
  .hero-title { font-size: 34px; }
  .rh-top h1 { font-size: 38px; }
  .mh-title { font-size: 34px; }
  .case-left h3 { font-size: 24px; }
  .c-left h2 { font-size: 26px; }
  .foot-lock .big { font-size: 48px; }
  .mh-meta { grid-template-columns: 1fr; }
  .case-meta { grid-template-columns: 1fr; }
  .h-kicker > span { display: block; }
}
