/* Phone proportions. Loaded last so every public page uses the same scale.
   Rem sizes retain browser zoom and the A+/A++ settings; desktop is unchanged. */
.mobile-table-label { display:none; }
@media (max-width: 700px) {
  body { font-size:1.0625rem; line-height:1.6; }
  .wrap { padding-left:16px; padding-right:16px; }
  main.wrap { padding-top:28px !important; padding-bottom:36px !important; }
  .hero,.pg-hero,.campaign .hero { padding-top:28px; padding-bottom:12px; }
  section,.home section,.campaign section,.pg-sec { padding-top:28px; padding-bottom:28px; }
  main h1.display,.home h1.display,.campaign .hero h1,
  .pg-hero h1.display,.join-head h1.display,.thanks-head h1.display,
  main:not(.campaign) > .wrap.hero h1.display,main.wrap > h1.display {
    font-size:2rem; line-height:1.12; max-width:24ch;
  }
  main h2.display,.campaign h2.display,.pg-sec h2.display,
  .hv-head h2.display,.hv-who-grid h2.display,.jbanner h2.display {
    font-size:1.5rem; line-height:1.2; max-width:28ch;
  }
  .lead-in { font-size:1.0625rem; line-height:1.4; }
  .stand,.sub,.h-sub,.hero .lead,.pg-hero .lead,
  .hv-head p,.prose p,.prose li,.demand p,.capacity p,.mshort-r p,.jbanner p {
    font-size:1.0625rem; line-height:1.6;
  }
  .h-sub,.hero .lead,.pg-hero .lead { margin-top:16px; }
  .eyebrow { letter-spacing:.08em; margin-bottom:12px; }
  .kicker { padding:6px 12px; margin-bottom:18px; max-width:100%; }
  .kicker .mono { font-size:.8125rem; }
  .sec-head,.hv-head { margin-bottom:20px; }
  .hbtns,.now-btns { gap:10px 16px; margin-top:20px; }
  .hbtn,.campaign-card .hbtn,.action-card__cta,.b-primary,.b-ghost,
  .btn,.status .btn,.campaign .status .btn {
    font-size:1rem; line-height:1.4; min-height:48px; padding:10px 16px;
    max-width:100%; justify-content:center; text-align:center;
  }
  .hv-row,.hbtns { align-items:center; }
  .hv-hero { padding-top:28px; gap:22px; }
  .hv-graphic,.hv-urgent,.hv-qa,.hv-trow,.hv-stat,.hv-press,.hv-panel,
  .path-panel,.action-card,.action-pathway,.campaign-card__content,
  .card,.contact-card,.mp-card,.ucard,.contribution,
  .campaign-page .status,.campaign-page .campaign-next,
  .campaign-page .glance,.stance-in,.promo,.fig,.q,.rf,.jbanner {
    padding:18px; min-width:0;
  }
  .card,.stance-in,.promo { box-shadow:3px 3px 0 var(--rule-2); }
  .hv-urgent,.action-card,.campaign-card__content,.hv-panel,.path-panel { gap:12px; }
  .hv-qa h3,.hv-trow h3,.hv-outlet,.hv-panel h2,.hv-panel h3,
  .path-panel h3,.action-card__title,.action-pathway h3,
  .campaign-card__title,.ucard h3,.acard h3,.contribution h3,
  .campaign-next h3,.status h2,.join-aside h2,.thanks-now h2,.thanks-next h2 {
    font-size:1.25rem; line-height:1.25;
  }
  .hv-graphic .c-day,.hv-sit .c-day,.status .n,.prog-n { font-size:2rem; line-height:1.15; }
  .hv-stat strong,.fig .n { font-size:1.75rem; line-height:1.15; }
  .hv-g-sub,.hv-sub2,.question,.mshort-r .question { font-size:1.25rem; line-height:1.3; }
  .campaign-card__ask,.action-card__description,.campaign-page .ask,
  .hv-urgent p,.hv-panel p,.path-panel p { font-size:1rem; line-height:1.6; }
  .campaign-card__target,.campaign-card__stage,.action-card__meta,
  .campaign .chip,.campaign .stamp,.campaign .askrow b,
  .campaign-page .glance dt,.cp-steps li,.hv-steps li { font-size:.8125rem; }
  .action-card__type { font-size:.875rem; }
  .cp-steps,.hv-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
  .campaign-card__status,.campaign-card__metric,.campaign-card__secondary,
  .action-card__campaign,.action-card__status,.action-card__deadline,
  .action-card__guide,.action-card__why,.action-card__details summary,
  .action-card__alternative-content,.action-card__context,.action-card__share-note,
  .action-card__share-link,.action-card__platform { font-size:.9375rem; }
  .action-grid,.campaign-grid,.contribution-grid { gap:16px; margin-top:20px; }
  .action-group { margin-top:28px; }
  .action-group__title,.action-pathways h2 { font-size:1.375rem; }
  .action-pathways { margin-top:28px; padding-top:24px; }
  .campaign-page .glance { margin-top:18px; }
  .campaign-page .glance dl { gap:12px; }
  .campaign-page .glance dd { font-size:1rem; }
  .campaign-page .row { padding:20px 0; }
  .campaign .back { margin-bottom:12px; }
  .campaign-page .jumpbar .campaign-jumps { padding-left:16px; padding-right:16px; }
  .drafts-fold>summary { padding:12px 16px; min-height:48px; }
  .drafts-fold .draft-block { padding:20px 16px; }
  .ask-table { display:block; min-width:0; }
  .ask-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .ask-table tbody,.ask-table tr,.ask-table td { display:block; width:100%; }
  .ask-table td { padding:14px 18px; border:0; }
  .ask-table td:first-child { width:100%; padding-bottom:4px; font-weight:400; }
  .ask-table tbody tr+tr { border-top:1px solid var(--rule-2); }
  .mobile-table-label { display:block; font-size:.875rem; font-weight:700; color:var(--ink); margin-bottom:4px; }
  .two,.join-page .two,.profile-page .two { grid-template-columns:minmax(0,1fr); gap:16px; }
  .join-page .join-grid { margin-top:20px; }
  .join-page .join-form,.profile-page .card { padding:18px 16px; }
  .join-page .frow,.profile-page .frow,.frow { margin-bottom:18px; }
  form label.mono,form legend.mono,.join-page form label.mono,
  .profile-page form label.mono,.join-page .roles legend,.profile-page .roles legend {
    font-family:"Public Sans",system-ui,sans-serif; font-size:1rem; font-weight:600;
    line-height:1.5; letter-spacing:normal; text-transform:none; color:var(--ink);
  }
  input,select,textarea { font-size:1rem; padding:12px; min-width:0; }
  .opt,.join-page .opt,.profile-page .opt { font-size:1rem; padding:12px; min-height:48px; }
  .join-page .join-more>summary { font-size:1rem; padding:12px 0; }
  .fine,.why,.join-fine { font-size:.9375rem; letter-spacing:normal; }
  .acard { grid-template-columns:40px minmax(0,1fr); gap:12px; padding:18px; }
  .ibadge { width:40px; height:40px; }
  .ibadge svg { width:22px; height:22px; }
  .site-footer { padding:28px 0 36px; }
  .site-footer .foot { grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:20px; }
  .site-footer .foot>div:first-child { grid-column:1/-1; }
  .site-footer .foot nav a { font-family:"Public Sans",system-ui,sans-serif; font-size:.9375rem; text-transform:none; letter-spacing:normal; }
  .site-footer .foot h2 { font-size:.8125rem; }
  .top-in,html[data-size] .top-in { gap:8px; min-height:64px; }
  nav.links { gap:6px; }
  .ctrl button,#mtoggle { min-width:44px; min-height:44px; }
  .ctrl button { padding:9px; }
  nav.links a.cta { min-height:44px; display:inline-flex; align-items:center; padding:10px 12px; }
  .mnav a { font-size:1rem; padding:12px 16px; min-height:48px; }
}
@media (max-width:360px) {
  header.top .wrap { padding-left:12px; padding-right:12px; }
  nav.links { gap:4px; }
  .brand { gap:6px; }
}
