/* ============================================================
   LFT v3 — Mobile hardening
   Loaded LAST so it overrides. Covers phones (<=640) and small
   phones (<=460). Tablet breakpoints live in the other sheets.
   ============================================================ */

@media (max-width: 640px) {
  .wrap { padding: 0 20px; }

  /* type scale down */
  h1 { font-size: calc(40px * var(--scale)); }
  h2 { font-size: calc(29px * var(--scale)); }
  h3 { font-size: calc(19px * var(--scale)); }

  /* nav: keep brand + CTA from colliding */
  .nav-inner { gap: 14px; height: 62px; }
  .brand { font-size: 19px; }
  .btn-sm { padding: 12px 18px; min-height: 44px; }

  /* hero */
  .hero-inner { padding: 60px 0 52px 0; }
  .hero .sub { font-size: calc(20px * var(--scale)); margin-top: 22px; }
  .hero .value { font-size: calc(17px * var(--scale)); }
  .hero-cta { gap: 16px; margin-top: 30px; width: 100%; }
  .hero-cta .btn { width: 100%; justify-content: center; }
  .hero-boot { font-size: calc(12px * var(--scale)); word-break: break-word; }

  /* section rhythm */
  .sec-head { margin-bottom: 32px; }
  .sec-head p { font-size: calc(17px * var(--scale)); }

  /* cards */
  .card { padding: 24px 22px; }

  /* challenge */
  .challenge-grid { gap: 24px; }
  .voices-col .voice { padding: 20px 22px 16px 22px; }
  .voices-col .qt { font-size: calc(17px * var(--scale)); }

  /* engines: shared viz shrink */
  .viz { height: 168px; gap: 12px; padding: 12px; }

  /* engine 1 — CRM panel: was overflowing (chip + dash + 168px panel) */
  .viz-crm { gap: 10px; }
  .viz-crm .flow-dash { width: 26px; }
  .viz-crm .mini-panel { min-width: 0; padding: 12px 14px; }
  .viz-crm .mp-row .bar { width: 84px; }

  /* engine 3 — outreach pipeline: go VERTICAL so labels are readable
     (the 5-across horizontal layout forced 7.5px labels on phones) */
  .viz-reach {
    flex-direction: column;
    height: auto;
    align-items: stretch;
    justify-content: flex-start;
    gap: 13px;
    padding: 20px 22px;
  }
  .viz-reach .reach-track {
    left: 40px;
    right: auto;
    top: 30px;
    bottom: 30px;
    width: 1px;
    height: auto;
  }
  .viz-reach .reach-runner { left: 36.5px; top: 30px; }
  .viz-reach .stage {
    flex-direction: row;
    width: 100%;
    align-items: center;
    gap: 15px;
  }
  .viz-reach .s-ic { width: 40px; height: 40px; flex-shrink: 0; font-size: 13px; }
  .viz-reach .stage span {
    font-size: 13px;
    max-width: none;
    text-align: left;
    white-space: normal;
    letter-spacing: 0.06em;
  }
  html[data-motion="full"] .viz-reach .reach-runner { animation: vzrunV 5s linear infinite; }

  /* engine 5 — funnel */
  .viz-funnel { gap: 16px; }

  /* governance console: stack the bar nicely */
  .console-bar { padding: 12px 16px; font-size: calc(11px * var(--scale)); }
  .console-feed { padding: 14px 16px; min-height: 200px; }

  /* stats */
  .stat { padding: 32px 26px; }
  .stat .v { font-size: calc(44px * var(--scale)); }

  /* pilot */
  .pilot-grid { margin-bottom: 40px; }

  /* founders */
  .founders { margin-top: 36px; gap: 18px; }

  /* faq */
  .faq-list summary { font-size: calc(18px * var(--scale)); padding: 22px 40px 22px 0; }

  /* final cta */
  .final { padding: 60px 0; }
  .final h2 { font-size: calc(32px * var(--scale)); }
  .final p { font-size: calc(17px * var(--scale)); }

  /* footer */
  .foot-inner { flex-direction: column; gap: 24px; }
}

@media (max-width: 460px) {
  .wrap { padding: 0 16px; }

  h1 { font-size: calc(33px * var(--scale)); }
  h2 { font-size: calc(25px * var(--scale)); }

  .nav-inner { gap: 10px; }
  .brand { font-size: 18px; }
  .btn-sm { padding: 9px 13px; font-size: calc(12px * var(--scale)); }

  .hero .sub { font-size: calc(18px * var(--scale)); }

  /* continuum delivery stack tighten */
  .dphase { grid-template-columns: 44px 1fr; gap: 14px; }
  .dnode { width: 44px; height: 44px; }

  .stat .v { font-size: calc(40px * var(--scale)); }
}

@keyframes vzrunV {
  0% { top: 8%; opacity: 0; }
  6% { opacity: 1; }
  94% { opacity: 1; }
  100% { top: 92%; opacity: 0; }
}
