/* ==========================================================================
   chinaevexport.net — WAP base
   Anti-error baseline for mobile. Business styles live in wap.css, not here.
   Everything except the .wap-only default-hide rule is scoped to
   @media(max-width:768px) so it cannot affect desktop rendering.
   ========================================================================== */

/* Default-hide switch for any "mobile-only" markup added to shared templates.
   Applies at ALL widths so new markup is invisible on desktop even before
   the mobile media query below re-shows it — no !important needed. */
.wap-only{display:none}

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

  /* iOS Safari 100vh includes the address bar — prefer dvh, fall back safely */
  .wap-vh-full{height:100vh;height:100dvh}
  @supports (-webkit-touch-callout:none){
    .wap-vh-full{height:-webkit-fill-available}
  }

  /* Retina hairlines rendered too thick at 1px */
  .wap-hairline{border-bottom:1px solid var(--border);transform-origin:bottom;transform:scaleY(.5)}

  /* Prevent iOS auto-zoom on focus: inputs must be >=16px */
  input,select,textarea{font-size:16px}

  /* Fixed bottom elements must clear the iOS home-indicator / gesture bar */
  .wap-fixed-bottom{padding-bottom:calc(12px + var(--wap-safe-b))}

  /* Tap/selection ergonomics — chrome only, never body copy */
  a,button,.btn,.nav-toggle,.wap-stickybar{-webkit-tap-highlight-color:transparent}
  .site-head,.nav,.wap-stickybar,.nav-toggle{-webkit-user-select:none;user-select:none}

  body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
}
