/* Pro-Fresh Houston mobile quality pass, 2026-10-24.
   1. Self-hosted Inter and Plus Jakarta Sans (latin subset, same unicode-range Google served), font-display: swap.
   2. Footer phone and email links get a 44 px tap area on touch widths with no layout change
      (padding is cancelled by an equal negative margin; the icon and text stay where they were). */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/inter-400-700-20261024.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-sans-500-800-20261024.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Metric-matched fallbacks: until the web fonts arrive, text is set in Arial scaled to the width of the web font
   (size-adjust measured from Inter / Plus Jakarta Sans advance widths over the site's own copy), so the swap does not
   re-wrap lines or move the layout. If Arial is missing the stack falls through exactly as before. */
@font-face {
  font-family: "Inter Fallback";
  font-weight: 400 500;
  src: local("Arial"), local("ArialMT");
  size-adjust: 107%;
  ascent-override: 90.5%;
  descent-override: 22.5%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  font-weight: 600 700;
  src: local("Arial Bold"), local("Arial-BoldMT");
  size-adjust: 102%;
  ascent-override: 95%;
  descent-override: 23.6%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Plus Jakarta Sans Fallback";
  font-weight: 400 500;
  src: local("Arial"), local("ArialMT");
  size-adjust: 106%;
  ascent-override: 97.9%;
  descent-override: 20.9%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Plus Jakarta Sans Fallback";
  font-weight: 600 800;
  src: local("Arial Bold"), local("Arial-BoldMT");
  size-adjust: 101%;
  ascent-override: 102.8%;
  descent-override: 22%;
  line-gap-override: 0%;
}
html:root {
  --display: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", -apple-system, BlinkMacSystemFont, sans-serif;
  --sans: "Inter", "Inter Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
@media (max-width: 700px) {
  .footer-contact-line a { padding-block: 11px; margin-block: -11px; }
}

/* Hero clipped at the right edge on phones (fix, 2026-10-24).
   Cause: .hero-grid is a one-column grid whose track is 1fr (= minmax(auto, 1fr)), so the track cannot be narrower than the
   widest unbreakable item. The hero CTA is `.btn { white-space: nowrap }` and is about 379 px wide, wider than the 327 px
   content box of a 375 px phone, so the track grew to 379 px and the headline, lede, takeaways, CTA and form card all laid
   out at 379 px inside a .page-hero that has overflow: hidden, cutting off the last ~28 px of every line.
   Fix: let the track and its items shrink (min-width: 0) and let the hero buttons wrap their label. */
@media (max-width: 700px) {
  html .hero-grid { grid-template-columns: minmax(0, 1fr); }
  html .hero-grid > * { min-width: 0; }
  html .hero-grid .btn { white-space: normal; text-align: center; }
}
