/* Accessibility-first readability sizing for real-phone reading and low-vision use. */
.trust-grid p { font-size: .95rem; line-height: 1.58; }

/* Global content floor: secondary labels may be visually quiet, but meaningful text stays readable. */
.eyebrow,
.mini-label,
.hero-note,
.proof-strip strong,
.proof-strip small,
.journey-node span,
.journey-node strong,
.preview-number,
.route-person small,
.preview-footer,
.role-card a,
.window-bar small,
.work-row,
.request-actions span,
.trust-grid span,
.footer-links div,
.footer-links a,
.footer-bottom,
.footer-bottom a,
.site-footer a,
.route-card .state { font-size: .875rem; }

/* Interactive/navigation text gets a stronger floor than decorative metadata. */
.desktop-nav,
.desktop-nav a,
.nav-cta,
.button,
.site-footer a { font-size: 1rem; }

/* Keep the state badge floor authoritative because public-enhancements.css also styles it. */
.route-card .state { font-size: .875rem !important; }

@media (max-width: 700px) {
  body { font-size: 18px; line-height: 1.6; }
  .desktop-nav { display: none; }
  .brand { font-size: 1.2rem; }
  .menu-btn { font-size: 1rem; padding: 10px 14px; min-height: 44px; }
  .mobile-nav a { font-size: 1.05rem; padding: 15px 4px; min-height: 44px; }
  .hero h1 { font-size: clamp(2.35rem, 11vw, 3rem); line-height: 1.08; letter-spacing: -.02em; }
  .hero-lead { font-size: 1.12rem; line-height: 1.58; }
  .hero-note { font-size: .95rem; line-height: 1.5; }
  .eyebrow, .mini-label { font-size: .875rem; letter-spacing: .05em; }
  .button, .nav-cta { font-size: 1.05rem; min-height: 48px; }
  .text-link { font-size: 1rem; }
  .proof-strip strong { font-size: 1rem; }
  .proof-strip small { font-size: .9rem; line-height: 1.45; }
  .section-intro h2, .problem h2, .feature-copy h2, .trust h2, .sahara-copy h2, .cta h2 { font-size: clamp(2rem, 9vw, 2.5rem); line-height: 1.12; letter-spacing: -.015em; }
  .section-intro p:not(.eyebrow), .problem-copy p, .feature-copy p:not(.eyebrow), .sahara-copy p:not(.eyebrow) { font-size: 1.08rem; line-height: 1.62; }
  .experience-side h3 { font-size: 1.75rem; line-height: 1.2; }
  .experience-side > p:not(.mini-label) { font-size: 1.08rem; line-height: 1.58; }
  .step { font-size: 1rem; padding: 10px 13px; min-height: 44px; }
  .preview-top { font-size: 1rem; }
  .preview-route { font-size: 1rem; }
  .route-person small { font-size: .9rem; }
  .preview-footer { font-size: .9rem; line-height: 1.45; }
  .role-card h3 { font-size: 1.65rem; line-height: 1.2; }
  .role-card p:not(.mini-label) { font-size: 1.05rem; line-height: 1.58; }
  .role-card a { font-size: 1rem; }
  .workspace-body h3 { font-size: 1.35rem; }
  .work-row { font-size: .95rem; line-height: 1.45; }
  .request-line { font-size: .98rem; line-height: 1.45; }
  .request-actions button { font-size: 1rem; min-height: 48px; }
  .request-actions span { font-size: .9rem; }
  .trust-grid h3 { font-size: 1.25rem; }
  .trust-grid p { font-size: .98rem; line-height: 1.58; }
  .footer-main p { font-size: 1rem; }
  .footer-links div, .footer-links a { font-size: .95rem; }
  .footer-bottom, .footer-bottom a { font-size: .9rem; }
}
@media (max-width: 360px) {
  body { font-size: 17px; }
  .hero h1 { font-size: 2.25rem; }
  .hero-lead { font-size: 1.08rem; }
  .section-intro h2, .problem h2, .feature-copy h2, .trust h2, .sahara-copy h2, .cta h2 { font-size: 2rem; }
  .proof-strip strong { font-size: .96rem; }
  .proof-strip small { font-size: .86rem; }
  .role-card h3 { font-size: 1.55rem; }
}

/* Tablet readability: keep visible navigation and footer links above the APV minimum. */
@media (min-width: 701px) and (max-width: 1100px) {
  .desktop-nav a,
  .site-footer a { font-size: 1rem; }
  .desktop-nav { gap: 18px; }
  .nav-wrap { gap: 20px; }
}

/* Keep same-page section targets visible below the sticky header. */
#top,
#experience,
#how,
#trust { scroll-margin-top: clamp(96px, 16vh, 180px); }

/* At extreme text scaling, prevent flex/grid items from retaining intrinsic minimum widths. */
@media (max-width: 700px) {
  * { min-width: 0; }
  img, svg, video, canvas { max-width: 100%; }
  .footer-main { display: grid; gap: 30px; }
  .footer-links { gap: 32px; }
  .footer-bottom { display: grid; gap: 7px; margin-top: 30px; }
}