/* ==========================================================================
   Investor Signals — mobile.css
   --------------------------------------------------------------------------
   Small-screen rules that belong nowhere else. Loads after blocks.css.

   This file was originally written for the static build and targeted class
   names like .card-num, .plans, .tt and .ed-sec. The block theme emits core
   block classes and registered style classes instead, so every one of those
   selectors had stopped matching anything — the whole phone layer was dead.
   Rewritten against what the theme actually renders.

   Most responsive behaviour now lives closer to the thing it affects:
   - the fluid type and space ramps in main.css scale continuously, so there is
     nothing to step here;
   - each component's own breakpoints sit beside the component in blocks.css.

   What is left is genuinely global.
   ========================================================================== */


/* --- global hardening ---------------------------------------------------- */

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}

/* clip, not hidden: `hidden` on body kills the sticky header in Chrome/Safari */
html,body{max-width:100%;overflow-x:clip}

/* nothing may push the viewport wider than itself */
img,svg,video,canvas,iframe,table{max-width:100%}
img,video{height:auto}

/* long unbroken strings — emails, tickers, URLs — wrap instead of overflowing */
.is-style-is-mono,
.is-style-is-disclaimer,
.is-style-is-footer p,
.is-style-is-footer a,
.is-style-is-measure a{overflow-wrap:anywhere}

/* anchor targets clear the sticky header */
:where(section,div)[id]{scroll-margin-top:88px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}


/* --- scroll reveals travel less where the viewport is short -------------- */

@media (max-width:640px){
  :root{--reveal-y:10px}
}


/* --- grid and flex children never inherit min-width:auto blowouts -------- */

@media (max-width:1080px){
  .wp-block-group,
  .wp-block-column,
  .wp-block-columns > *{min-width:0}
}


/* --- swipeable regions added at render time ------------------------------ */

.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.table-scroll > table{min-width:100%}

@media (max-width:640px){
  .table-scroll{
    -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);
    mask-image:linear-gradient(90deg,#000 92%,transparent);
  }
}


/* --- landscape phones: a short viewport cannot spend it on a sticky bar --- */

@media (max-height:520px) and (orientation:landscape){
  .is-style-is-site-header{position:relative}
  .wp-block-group.is-style-is-hero-split{padding-block:40px}
  .wp-block-group.is-style-is-section{padding-block:40px}
  .is-style-is-media-split > .wp-block-image img{height:260px}
}


/* --- print: the legal pages get printed for compliance ------------------- */

@media print{
  .is-style-is-site-header,
  .is-style-is-footer,
  .is-style-is-cta-band,
  .wp-block-navigation{display:none}
  .is-style-is-band-deep,
  .is-style-is-hero-band{background:#fff !important;color:#000 !important}
  .is-style-is-band-deep :where(h1,h2,h3,h4,h5,h6,p),
  .is-style-is-hero-band :where(h1,h2,h3,h4,h5,h6,p){color:#000 !important}
  .is-style-is-measure{max-width:none}
  /* an FAQ answer has to print even when its row is closed */
  .wp-block-details{display:block}
  .wp-block-details > *{display:block !important}
}
