/* Phone scale, modelled on tesla.com and weforum.org at 390px:
   hero title ~32px, section title ~24px, body 15-16px, buttons 44px tall with 14px labels. */
@media (max-width: 640px) {
  /* type */
  .h-xl { font-size: 2rem; line-height: 1.08; letter-spacing: -.018em; }
  .h-l { font-size: 1.6rem; line-height: 1.12; letter-spacing: -.014em; }
  .h-m { font-size: 1.25rem; line-height: 1.2; }
  .h-s { font-size: 1.05rem; line-height: 1.25; }
  .p-hero .rrs-t { font-size: 2rem; }
  .lede { font-size: .95rem; line-height: 1.5; }
  .eyebrow { font-size: .68rem; letter-spacing: .14em; }
  .sec { padding: 56px 0; }
  .sec-head { margin-bottom: 28px; align-items: flex-start; gap: 16px; }
  .sec-head .link { margin-bottom: 0; font-size: .86rem; }

  /* services: number, title and line read as one block */
  .svc-row { grid-template-columns: 28px minmax(0, 1fr) 18px; gap: 6px 14px; padding: 20px 0; }
  .svc-row .n { grid-row: 1 / 3; font-size: .72rem; line-height: 1.9; }
  .svc-row h4 { font-size: 1.12rem; grid-column: 2; }
  .svc-row p { grid-column: 2; font-size: .86rem; line-height: 1.5; color: var(--muted); }
  .svc-row .arr { grid-column: 3; grid-row: 1; margin-top: 3px; width: 16px; height: 16px; }
  .sec-head .h-l, .sec-head .h-m { margin-top: 10px; }

  /* buttons: one height everywhere, label at 14px */
  .btn { height: 44px; padding: 0 18px; font-size: .875rem; gap: 8px; }
  .btn svg { width: 14px; height: 14px; }

  /* home hero: content sits low, one quiet row of cities */
  .hero { min-height: 560px; }
  .hero-c { padding-bottom: 76px; }
  .hero-c .h-xl { max-width: 12ch; margin: 0 0 14px; }
  .hero-c .lede { max-width: none; color: rgba(255, 255, 255, .8); }
  .hero-cta { margin-top: 22px; gap: 10px; flex-wrap: nowrap; }
  .hero-cta .btn { flex: 1 1 0; min-width: 0; padding: 0 12px; }
  .hero-foot.hero-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 12px; row-gap: 0; margin-top: 28px; }
  .hero-tabs button, .hero-tabs button + button { padding: 0; gap: 3px; }
  .hero-tabs button + button::before { display: none; }
  .hero-tabs .bar { margin-bottom: 10px; }
  .hero-tabs b { font-size: .85rem; }
  .hero-tabs span { font-size: .7rem; }

  /* page heroes share the same rhythm */
  .p-hero .h-xl, .xg-hero .h-xl { margin: 0 0 14px; }
  .p-hero .hero-cta, .xg-hero .hero-cta { margin-top: 22px; }

  /* split sections: the heading leads, the statement follows */
  .split { gap: 22px; }
  .split .h-m { font-size: 1.6rem; line-height: 1.12; }
  .prose p:first-child { font-size: 1.08rem; line-height: 1.5; }
  .prose p { font-size: .95rem; }
  .sec-t { padding-top: 8px; }

  /* pillars: number beside a compact title and line */
  .pillars > div, .pillars > div + div { padding: 20px 0 22px; }
  .pillars > div:has(> .eyebrow) { display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; }
  .pillars .eyebrow { grid-row: 1 / 3; padding-top: 4px; }
  .pillars h4 { margin: 0 0 6px; font-size: 1.1rem; }
  .pillars p { font-size: .88rem; line-height: 1.5; }

  .xg-steps > div, .steps > div, .xg-what > div { padding-bottom: 22px; }

  /* Ask GEH launcher: smaller, clear of the content */
  .ask-l { width: 44px; height: 44px; right: 12px; }
  .ask-l .orb { width: 30px; height: 30px; }
}
@media (max-width: 360px) {
  .h-xl, .p-hero .rrs-t { font-size: 1.8rem; }
  .hero-cta .btn { font-size: .8rem; padding: 0 8px; }
}
