/* SITW mobile/tablet usability pass — 2026-09-18 */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%}
button,a,input{touch-action:manipulation}

@media (max-width:980px){
  header{position:sticky}
  .nav{width:100%;min-height:0;padding:10px 4vw 0;display:block}
  .brand{min-height:52px}
  .brand-mark{width:40px;height:40px;flex:0 0 40px}
  .brand strong{font-size:17px;line-height:1.1}
  .brand small{font-size:10px;letter-spacing:.8px}
  .navlinks{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin:8px 0 0;padding:0 0 10px;overflow:visible}
    .navlinks a{flex:0 0 auto;padding:9px 11px;border:1px solid #ffffff22;border-radius:999px;background:#ffffff0b;font-size:11px;line-height:1;white-space:nowrap}
  .navlinks a:active{background:#ffffff1a;color:var(--gold)}
  .hero-grid{width:min(92vw,760px);gap:28px;padding:46px 0 54px}
  .hero h1{font-size:clamp(46px,11vw,70px)}
  .hero p{font-size:18px}
  .hero-art{min-height:430px;width:min(100%,620px);margin:auto}
  .rootsbar{max-width:100%}
  section{padding:64px 0}
  .section-head{align-items:start}
  .career-grid,.airport-grid,.route-master-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:640px){
  .wrap,.quickgrid{width:92vw}
  section{padding:48px 0}
  .section-head{margin-bottom:24px}
  .section-head h2{font-size:clamp(34px,11vw,48px);letter-spacing:-1.4px}
  .section-head p{font-size:16px}
  .hero-grid{width:92vw;padding:36px 0 42px}
  .hero h1{font-size:clamp(42px,13vw,58px);letter-spacing:-1.8px;margin:10px 0 18px}
  .hero p{font-size:17px;line-height:1.5}
  .tag{font-size:11px}
  .actions{display:grid;grid-template-columns:1fr;gap:10px}
  .btn{width:100%;min-height:46px}
  .hero-art{min-height:330px}
  .photo-slot{inset:4px 12px 38px 0;box-shadow:12px 12px 0 #311943;border-width:4px}
  .route-sign{width:118px;right:0;bottom:0}
  .shield strong{font-size:27px}
  .quickgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick{padding:18px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .quick:nth-child(2n){border-right:0}
  .quick strong{font-size:21px}
  .card,.career-card,.rail-card,.extra{padding:20px}
  .world-card{padding:22px;min-height:270px}
  .world-card h3{font-size:31px}
  .iconbig{font-size:50px;top:20px;right:20px}
  .roadtop{padding:22px 18px}
  .roadtop h3{font-size:26px}
  .road-controls{padding:14px;gap:7px}
  .road-filter{flex:1 1 auto;min-height:42px}
  .road-search,.airport-toolbar input{min-width:0;width:100%;font-size:16px;min-height:46px}
  .route-master-grid{padding:14px;gap:12px}
  .route-master-card{min-height:0;padding:15px}
  .route-shield-row{gap:10px}
  .route-shield{width:58px;height:58px;flex-basis:58px}
  .airport-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .airport-toolbar input{grid-column:1/-1}
  .filterbtn{min-height:44px}
  .airport{padding:17px}
  #career .career-photo-grid figcaption{min-height:0!important}
  .lego-feature{padding:24px;min-height:240px}
  .lego-feature h3{font-size:34px}
  #lego .lego-stack .lego-card{padding:18px}
  .dog .dogbody{padding:16px}
  .footer-grid{display:block}
  .footer-grid>*+*{margin-top:10px}
}

@media (max-width:380px){
  .nav{padding-left:3.5vw;padding-right:3.5vw}
  .navlinks{padding-left:0;padding-right:0}
  .brand strong{font-size:15px}
  .brand small{font-size:9px}
  .hero h1{font-size:40px}
  .quickgrid{grid-template-columns:1fr}
  .quick{border-right:0}
}