/* Firefox/mobile compatibility, version 20261017.1 */
html { -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (max-width: 1100px) {
  .nav-container { gap: 12px; padding-inline: 16px; }
  .nav-container .logo { min-width: 0; flex: 1 1 auto; }
  .nav-container .logo img { display: block; max-width: 100%; width: 290px; height: auto; }
  .hamburger { flex: 0 0 44px; min-width: 44px; min-height: 44px; line-height: 1; font-size: 28px; padding: 8px; }
  .nav-menu { max-width: 100vw; max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
  .nav-menu:not(.active) { visibility: hidden; pointer-events: none; }
  .nav-menu.active { visibility: visible; pointer-events: auto; }
  .nav-menu > li > a { font-size: 16px; line-height: 1.5; min-height: 44px; padding: 10px 16px; }
}
@media (max-width: 767px) {
  main { min-width: 0; overflow-wrap: normal; word-break: normal; hyphens: none; }
  main img { max-width: 100%; height: auto; }
}

@media (max-width: 1100px) { .hamburger { position: relative; z-index: 1001; } }
@media (max-width: 640px) { .steps-grid { grid-template-columns: minmax(0, 1fr); } .info-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Compact phone typography; words wrap at spaces, not arbitrary letters. */
@media (max-width: 767px) {
  main h1 { font-size: clamp(24px, 7vw, 30px) !important; line-height: 1.2 !important; }
  main h1[style*="font-size"] { font-size: clamp(20px, 6vw, 26px) !important; }
  main h2 { font-size: clamp(21px, 5.6vw, 25px) !important; line-height: 1.3 !important; }
  main h3 { font-size: 19px !important; line-height: 1.35 !important; }
  main p, main li { font-size: 16px !important; line-height: 1.6 !important; }
  main h1, main h2, main h3, main p, main li { word-break: normal; overflow-wrap: normal; hyphens: none; }
  main a[href^="http"], main a[href^="mailto:"] { overflow-wrap: break-word; }
}
