/* Self-hosted, unmodified Google Fonts Montserrat v31 Latin variable font.
   See fonts/OFL.txt and fonts/SOURCE.txt for license, provenance and metrics.
   Optional display prevents a late font arrival from moving an already drawn
   page. A first visit on a slow connection may retain the adjusted fallback. */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 900;
  font-display: optional;
  src: url('/fonts/montserrat-latin-wght-v31.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;
}

/* Align x-height and line metrics with regular and bold Montserrat faces.
   This reduces fallback differences; individual glyph widths still differ. */
@font-face {
  font-family: 'Montserrat Fallback';
  src: local('Arial'), local('ArialMT');
  font-style: normal;
  font-weight: 400 500;
  size-adjust: 101.24294%;
  ascent-override: 95.61161%;
  descent-override: 24.79185%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Montserrat Fallback';
  src: local('Arial Bold'), local('Arial-BoldMT');
  font-style: normal;
  font-weight: 600 900;
  size-adjust: 103.74991%;
  ascent-override: 93.30129%;
  descent-override: 24.19279%;
  line-gap-override: 0%;
}

body,
.hero h1,
.hero-form-card input,
.hero-form-card select,
.mobile-form-card input,
.mobile-form-card select,
.ty-confirm-actions button {
  font-family: 'Montserrat', 'Montserrat Fallback', Arial, Helvetica, sans-serif;
}

/* White text clears 4.5:1 at both endpoints, including small button labels. */
.btn-orange,
.btn {
  background: linear-gradient(135deg, #b53c1f, #a83218);
  color: #fff;
}
.btn-gold,
.sticky-cta .sticky-btn {
  background: linear-gradient(135deg, #745725, #6b4f20);
  color: #fff;
}
.sticky-cta .sticky-btn-sms {
  background: none;
  color: #dba75a;
}

/* Recurring sheen can wash out text and cause paint work without interaction. */
.btn-orange::before,
.btn-gold::before,
.sticky-cta .sticky-btn::before {
  content: none;
  animation: none;
}

@media (max-width: 900px) {
  body:has(.sticky-cta) {
    padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
  .sticky-cta {
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .js-rv .rv {
    opacity: 1 !important;
    transform: none !important;
    will-change: auto;
  }
}
