/* Shared responsive overrides for both Laravel and standalone public templates. */
.wrap > *, .footer-grid > *, .cta-band > *,
.svc-hero-wrap > *, .svc-hero-copy, .svc-hero-card,
.qfl-hero-copy, .qfl-hero-form, .qfl-video-grid > *,
.hq-field, .hq-phone-input, .field-row > *, .feat > * {
  min-width: 0;
}
main input, main select, main textarea, main video, main iframe,
main img, .quote-modal input, .quote-modal select { max-width: 100%; }
.site-footer { overflow-wrap: anywhere; }
main .breadcrumb, main .svc-breadcrumb { flex-wrap: wrap; }
main .btn, main .svc-cta { max-width: 100%; }

@media (max-width: 1100px) {
  .site-header .nav-links { display: none; }
  .site-header .nav-toggle { display: inline-flex; flex-shrink: 0; }
  .mobile-menu { max-height: calc(100dvh - 160px); overflow-y: auto; }
}

@media (max-width: 1000px) {
  .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  main .cta-band, main .svc-hero-wrap, main .qfl-hero-grid,
  main .page-hero .wrap > [style*="grid-template-columns"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  main .cta-band-actions, main .cta-actions { min-width: 0; }
  main .feat-grid, main .svc-grid, main .blog-grid,
  main .carrier-grid, main .intent-grid, main .city-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .site-header .nav { gap: 8px; padding-inline: 12px; }
  .site-header .brand { flex: 1 1 auto; min-width: 0; }
  .site-header .brand-logo-card { width: 100%; min-width: 0; }
  .site-header .brand-logo-svg, .site-header .brand-logo-image {
    width: 100%; max-width: 230px; height: auto;
  }
  .site-header .nav-cta { flex: 0 0 auto; gap: 8px; }
  .site-header .nav-cta .btn-call {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 12px; white-space: nowrap; font-size: 13px;
  }
  .site-header .nav-cta .btn-call span.full { display: inline; }
  .site-header .nav-toggle { width: 44px; height: 44px; flex: 0 0 44px; }
  .site-header .nav-toggle svg { width: 22px; height: 22px; flex: none; }

  main .feat-grid, main .svc-grid, main .blog-grid, main .carrier-grid,
  main .intent-grid, main .city-grid, main .why-grid, main .steps,
  main .cov-grid, main .world-grid, main .promo-band, main .regions,
  main .field-row, main .hq-grid, main .dest-pop-grid, main .dest-directory,
  main [style*="grid-template-columns"], .site-footer .footer-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  main .feat-grid > *, main .svc-grid > *, main .blog-grid > *,
  main .intent-grid > *, main .city-grid > *, main .field-row > *,
  main [style*="grid-template-columns"] > * { min-width: 0; }
  main .quote-card, main .prose, main .article { min-width: 0; overflow-wrap: anywhere; }
  main .quote-card input, main .quote-card select, main .quote-card textarea {
    min-width: 0; width: 100%;
  }
  main .cta-band { padding: 24px 18px; }
  main .cta-actions .btn, main .cta-band-actions .btn,
  main .svc-cta, main .cta-phone { white-space: normal; overflow-wrap: anywhere; }
  main .cta-phone { font-size: clamp(20px, 5.6vw, 26px); }
  main .cta-phone svg { flex-shrink: 0; }
  main .step::after { display: none; }
  .site-footer { padding-bottom: 100px !important; }
  .mobile-bar { gap: 10px; padding-inline: 12px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .mobile-bar .btn { flex: 1 1 0; min-width: 0; min-height: 44px; padding-inline: 10px; font-size: 14px; }
  .mobile-bar .btn svg { flex: none; }

  /* Keep each homepage group in a compact horizontal row. */
  .qfl-hero .qfl-offers {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
  }
  .qfl-hero .qfl-offers > span {
    display: block; min-width: 0; padding: 10px 8px;
    font-size: 11px; line-height: 1.45;
  }
  .qfl-hero .qfl-offers strong { display: block; }
  .qfl-hero .qfl-actions {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
  }
  .qfl-hero .qfl-actions .btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 0; min-height: 48px; padding: 12px 8px;
    font-size: clamp(11px, 3.2vw, 14px); gap: 4px; white-space: nowrap;
  }
  .qfl-hero .qfl-proof-carriers {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
  }
  .qfl-hero .qfl-proof-carriers .qfl-pc-label {
    grid-column: 1 / -1; font-size: 10px; letter-spacing: .06em;
  }
  .qfl-hero .qfl-proof-carriers b {
    min-width: 0; padding: 10px 5px; text-align: center; font-size: 13px;
  }
  .qfl-hero .qfl-carrier-bar { flex-wrap: wrap; padding-block: 8px; }
}
