/* Cross-device polish shared by every page: phones, tablets and desktops (iOS, Android, Windows, macOS). */

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-wrap: break-word; padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
img, video, canvas { max-width: 100%; }

/* Touch: no 300ms delay, a soft brand-coloured tap flash, visible keyboard focus */
a, button, select, summary, [role="button"], input[type="submit"] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(93, 63, 211, 0.15);
}
:focus-visible { outline: 2px solid #5D3FD3; outline-offset: 2px; }

/* Respect the OS "reduce motion" setting */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Phones and small tablets */
@media (max-width: 900px) {
  /* 16px stops iOS Safari zooming the page in whenever a field is focused */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
  select, textarea { font-size: 16px !important; }

  /* keep the fixed bar clear of notches in landscape */
  #nav, #siteNav {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }
  /* thumb-sized nav buttons (44px is the platform guideline) */
  .hamburger, #site-nav-root .hamburger {
    min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
  }
  #nav .mobile-locale-trigger, #site-nav-root .mobile-locale-trigger {
    min-width: 40px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
  }
}

/* Any touch screen */
@media (pointer: coarse) {
  #cookieClose { min-width: 44px; min-height: 44px; }
  #cookieGotIt { min-height: 44px; }
  .fit-btn, .ai-generate-btn { min-height: 44px; }
  .wz-btn { min-height: 46px; }
}

/* Small labels were 9-10px - too small to read on a phone */
@media (max-width: 640px) {
  .tag, .eyebrow, .hero-eyebrow, .cta-tag,
  .edtech-launch-side-label, .edtech-launch-footer-note,
  .badge, .ar-live, .ar-for-lbl, .ar-strip-lbl, .hero-dashboard-status, .pc-tier, .scroll-hint, .pw-num { font-size: 11px !important; }
  th { font-size: 10.5px; }
}
