/* Mobile layout: shared widths, reading rhythm and touch navigation. */
@media (max-width: 767px) {
  html, body { width: 100%; max-width: 100%; overflow-x: clip; }
  body { font-size: 15px; }
  .container, .container-wide, .container-narrow { width: 100%; max-width: 100%; min-width: 0; padding-inline: 20px; }
  main, section, footer, .axorium-wp-content { max-width: 100%; }
  img, video, iframe, svg { max-width: 100%; }
  h1, h2, h3, p { overflow-wrap: break-word; }
  h1 { font-size: clamp(2rem, 8.8vw, 3.1rem); line-height: 1.12; }
  h2 { font-size: clamp(1.65rem, 7vw, 2.3rem); line-height: 1.18; }
  .section, .section-sm, .detail-section { padding-block: 52px; }
  .page-hero, .listing-page .page-hero { padding: 116px 0 52px; }
  .page-hero h1 { font-size: clamp(2rem, 8.8vw, 3.2rem); }
  .page-hero p { max-width: 38ch; margin-inline: auto; font-size: 1rem !important; }
  .nav { width: 100%; }
  .nav-inner, .nav.scrolled .nav-inner { max-width: 100%; padding: 14px 20px; gap: 12px; }
  .nav-logo { min-width: 0; }
  .nav-cta .btn { display: none !important; }
  .mob-toggle { display: flex; flex: 0 0 44px; width: 44px; height: 44px; }
  .mob-menu { width: 100%; max-width: 100%; padding: 20px max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); overscroll-behavior: contain; }
  .mob-menu.open { z-index: 1100; }
  .mobile-service-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 12px; padding: 18px 14px 0; }
  .mobile-service-links span { grid-column: 1/-1; }
  .mobile-service-links a { font-size: .85rem; line-height: 1.35; }
  .float-cta { bottom: max(14px,env(safe-area-inset-bottom)); right: max(14px,env(safe-area-inset-right)); padding: 10px 15px; font-size: .76rem; }
  .hero { min-height: 0; padding: 120px 0 64px; }
  .hero > .container-wide { width: 100%; min-width: 0; }
  .hero-content { grid-template-columns: minmax(0,1fr); gap: 0; }
  .hero-content > div:first-child { min-width: 0; }
  .hero-visual { display: none; }
  .hero-h1 { font-size: clamp(2.15rem, 9vw, 3.6rem); line-height: 1.08; }
  .hero-desc { max-width: 100%; font-size: 1rem; line-height: 1.65; }
  .hero-badge { display: flex; width: fit-content; max-width: 100%; }
  .hero-badge-txt { min-width: 0; line-height: 1.3; }
  .hero-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
  .hero-actions .btn { width: 100%; max-width: 100%; min-height: 48px; justify-content: center; text-align: center; white-space: normal; }
  .stats-bar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 38px; }
  .stat-cell { min-width: 0; padding: 18px 8px; }
  .stat-value { font-size: clamp(1.35rem, 6vw, 2rem); line-height: 1.15; overflow-wrap: anywhere; }
  .stat-label { font-size: .7rem; line-height: 1.4; }
  .ind-grid, .svc-grid, .tgrid, .case-grid, .post-grid, .sol-hero-grid, .ind-hero-grid, .outcomes-grid, .presence-grid, .process-row, .why-mini-row, .story-path, .story-path.case-path, .feature-grid, .related-grid, .listing-page .services-full-grid, .listing-page .case-grid { grid-template-columns: minmax(0,1fr) !important; }
  .why-layout, .detail-grid, .sol-layout, .industry-layout, .blog-layout, .post-featured { grid-template-columns: minmax(0,1fr) !important; }
  .ind-grid > *, .svc-grid > *, .tgrid > *, .case-grid > *, .post-grid > *, .story-path > *, .listing-page .services-full-grid > *, .listing-page .case-grid > * { min-width: 0; }
  .listing-intro { display: block; }
  .listing-intro > p { margin-top: 12px; }
  .listing-page .filter-tabs, .filter-tabs { display: flex; flex-wrap: wrap; overflow: visible; gap: 8px; }
  .filter-tab, .ftab { min-height: 42px; }
  .story-map { padding: 52px 0; }
  .story-node, .listing-page .service-full-card, .listing-page .case-card-full { min-height: 0; }
  .detail-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .detail-actions .btn { width: 100%; justify-content: center; }
  .footer-grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
  /* An animation should not hide content on a phone or in a full-page capture. */
  .reveal, .service-full-card { opacity: 1 !important; transform: none !important; transition-delay: 0s !important; }
}
@media (max-width: 360px) {
  .container, .container-wide, .container-narrow { padding-inline: 16px; }
  .nav-inner, .nav.scrolled .nav-inner { padding-inline: 16px; }
  .mobile-service-links { grid-template-columns: minmax(0,1fr); }
  .hero-h1 { font-size: 2rem; }
}
