/* V30: keep horizontal movement inside rails, with native touch ownership. */
@media(max-width:900px){
 html{overflow-x:clip;scroll-behavior:auto}
 body{overflow-x:clip;width:100%;min-width:0}
 main{width:100%;min-width:0}
 main>.section{min-width:0}
 .scroll-stage,.scroll-stage-pin,.package-scroll-stage,.package-scroll-pin{max-width:100%;min-width:0}
 /* V29's overflow:visible must never turn a carousel into page overflow. */
 #solutions .service-grid.mobile-rail,.process .timeline.mobile-rail,#packages #packageRail{
  display:flex;overflow-x:auto;overflow-y:hidden;max-width:100%;min-width:0;
  overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;
  perspective:none;transform:none;transform-style:flat;will-change:auto;
  scroll-behavior:auto;overflow-anchor:none;
 }
 .scroll-stage .mobile-rail{scroll-snap-type:none}
 .scroll-stage .mobile-rail.manual-scroll{scroll-snap-type:x proximity}
 #solutions .mobile-rail>article,.process .mobile-rail>li,#packages #packageRail>.package-card{
  opacity:1!important;visibility:visible!important;clip-path:none!important;
  transform:none!important;translate:none!important;scale:1!important;
  flex-shrink:0;min-width:0;perspective:none;
 }
 #solutions .mobile-rail>article *, .process .mobile-rail>li *, #packages .package-card *{backface-visibility:visible}
 .section:has(.scroll-stage),#packages{overflow:visible;isolation:auto}
 .process .mobile-rail-nav{color:#29f2e4}
 /* Prevent a desktop animation surviving a rotation from hiding mobile content. */
 .hero-content,.reveal,.section h2,.people article,.contact-form,.event-card,.accordions details{
  opacity:1!important;visibility:visible!important;clip-path:none!important;transform:none!important;
 }
}
