/* TreyTech — touch & tablet layer. Loaded last so it wins over page-level rules.
   Covers iPhone (≤600), large phones/small tablets (≤820), and iPad portrait (700–1023). */

/* ── iPad portrait: card grids that collapse to one column get two ── */
@media (min-width:700px) and (max-width:1023px){
  .tt-disc-grid,.cx2-cards,.who,.xp-cards-grid,.pt-facts,.cmp,.team-grid,.plat-grid,.h3-beliefs,
  .tt-em-flow,.tt-hww-reach,.dx-grid,.jr-pipe-grid,.ap-stills,.st-grid,.pr-grid,.cm-grid{
    grid-template-columns:repeat(2,1fr)!important;
  }
  section.exec-dark .ten-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .ap-stills .ap-still:nth-child(even){transform:none!important}
}

/* ── Touch targets: every standalone link/button reaches 44px ── */
@media (max-width:1023px){
  /* Vertical-only scrolling. `clip` (not `hidden`) so no horizontal scroll port
     is created at all, touch-action pins the gesture axis, and overscroll kills
     the rubber-band that reads as a side-to-side shake on iOS. */
  html,body{overflow-x:clip;max-width:100%;overscroll-behavior-x:none}
  body{touch-action:pan-y;position:relative}
  /* anything that can outgrow the viewport gets reined in */
  img,svg,video,iframe,canvas,table,pre{max-width:100%}
  a,button{-webkit-tap-highlight-color:rgba(94,233,255,.18)}
  nav a,footer a,.tt-foot-root ul a,.tt-foot-legal a,ul li>a:only-child{
    min-height:44px;display:inline-flex;align-items:center;
  }
  button,input[type=submit],input[type=button],.btn,.btn-primary,.cta,[class*="-btn"],[class*="-cta"]{
    min-height:44px;
  }
  /* small back-links, card links and inline CTAs get a real hit area */
  .back,.pr-back,.cx2-link,.wordmark,.lk,.ar-title,.os-back{
    padding-top:11px;padding-bottom:11px;display:inline-flex;align-items:center;
  }
  /* chips and pills stay pill-shaped, just taller */
  .platform-chip,.ap-studio,.jr-chips span,.chip,[class*="-chip"]{min-height:36px;display:inline-flex;align-items:center}
}

/* ── iPhone ── */
@media (max-width:600px){
  /* no iOS zoom-on-focus */
  input,select,textarea{font-size:16px!important}
  /* micro-labels never drop below 11px on a phone */
  .t-role-eb,.jr-k,.mp-claim-k,.cmp-k,.sp-eb,.dx-eb,.exec-sub,.seat-s,.dx-card .k,.plat-card .pk,.k{
    font-size:11px!important;letter-spacing:.16em!important;
  }
  /* stacked share/action rows never run off the edge */
  .fc-share{flex-direction:column!important;justify-self:start!important;align-self:start!important}
  .fc-share a,.dx-row a,.hero-cta a,.hero-cta button{width:100%;justify-content:center}
  /* horizontal chip rails scroll instead of wrapping into a wall — these opt
     back into the horizontal gesture that body pins off */
  .vl-nav-in,.ap-studios,.os-platforms{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain}
  .vl-nav-in::-webkit-scrollbar,.ap-studios::-webkit-scrollbar,.os-platforms::-webkit-scrollbar{display:none}
  /* home-indicator clearance for anything pinned to the bottom */
  #tt-contact-fab{bottom:calc(22px + env(safe-area-inset-bottom))!important}
  .tt-foot-copybar{padding-bottom:calc(32px + env(safe-area-inset-bottom))!important}
}

/* ── Landscape phone: reclaim vertical space in tall heroes ── */
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  section[class*="hero"]{padding-top:96px!important;padding-bottom:56px!important}
}
