/* ============================================================
   mobile.css — small-screen hardening (load LAST)
   Prevents edge bleed / cut-off cards on 320–430px screens.
   ============================================================ */

/* --- global safety --- */
img,video,canvas{max-width:100%;height:auto}
/* NOTE: never apply height:auto to inline <svg> — it destroys icon sizing */

@media (max-width:900px){
  /* mission photo: wide frame, never stretched past the column */
  .misn .misn__media{display:block}
  body .misn .misn__media image-slot{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/10!important;flex:none!important;display:block}
}

@media (max-width:640px){
  html,body{overflow-x:hidden}

  /* button rows: wrap and shrink instead of overhanging */
  .hero__ctas,.cm-hero__ctas,.tc-cta__btns,.howit__cta,.hs-cta__btns,.cm-partner__btns{flex-wrap:wrap;row-gap:12px}
  .hero__ctas .btn,.cm-hero__ctas .btn,.tc-cta__btns .btn,.howit__cta .btn,.closing .btn{padding:13px 20px;font-size:14px;white-space:normal;text-align:center}

  /* floating photo callouts: keep inside the frame */
  .cm-pop{position:static!important;max-width:100%!important;margin:12px 0 0!important;animation:none!important;box-shadow:0 8px 22px rgba(15,25,55,.12)}
  .cm-photo-frame{overflow:visible}

  /* hero floating widgets on the homepage */
  .hero__fw{max-width:min(200px,58vw)!important}
  .hero__fw--score{left:6px}
  .hero__fw--note{right:6px}

  /* decorative marquees / sliders must clip */
  .slider,.news-marquee,.hero__media,.hero__stagecard{overflow:hidden}
  .hero__grain{overflow:hidden;pointer-events:none}

  /* team cards */
  .oexperts__grid{grid-template-columns:1fr;max-width:360px}
  .oexpert__photo{height:260px}

  /* target-conditions comparison table scrolls instead of squashing */
  .tc-row__panel{padding-left:12px;padding-right:12px}
  .tc-cmp{grid-template-columns:96px 1fr 1fr}
  .tc-cmp__label{padding:12px 8px;font-size:9.5px}
  .tc-cmp__cell{padding:12px 10px;font-size:12.5px}

  /* dashboard mock on join-our-network */
  .pvart{padding:14px!important}
  .pv{padding:10px 10px!important}
  .pv-main{grid-template-columns:1fr!important}
  .pv-tabs{display:none!important}

  /* mission diagram nodes */
  .mission__diagram{padding:0 2px}
  .mission__col--in .mnode,.mission__col--out .mnode{max-width:100%}

  /* news + press cards */
  .pgrid,.hnews__grid{grid-template-columns:1fr}
  .news-awards{grid-template-columns:1fr}

  /* generic: no fixed-width children poking out */
  .wrap>*{max-width:100%}
}

@media (max-width:400px){
  .hero__ctas .btn,.cm-hero__ctas .btn{width:100%}
  .tc-cmp{grid-template-columns:1fr 1fr;font-size:12px}
  .tc-cmp__label,.tc-cmp__spacer{display:none}
}
