/* Blacktop Experts — additions layered on top of the untouched Webflow CSS.
   Covers: contact form (ALTCHA theme + success box), area search, gallery
   filter, card hover, and off-platform mobile fixes. Brand accent: #f85405. */

:root { --bte-accent: #f85405; }

/* ---------- honeypot (must stay invisible & unfocusable) ---------- */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  opacity: 0; pointer-events: none;
}

/* ---------- ALTCHA widget: self-contained light theme so the
   "I'm not a robot" label stays legible on dark hero/footer forms ---------- */
altcha-widget {
  display: block; margin: 0 0 16px; max-width: 280px;
  --altcha-color-base: #ffffff;
  --altcha-color-text: #1a1a1a;
  --altcha-color-border: #cbd2d9;
  --altcha-color-border-focus: var(--bte-accent);
  --altcha-color-active: var(--bte-accent);
  --altcha-color-error-text: #b42318;
  --altcha-color-footer-bg: #f4f6f8;
  --altcha-border-radius: 10px;
}
altcha-widget, .quote__form altcha-widget { color: #1a1a1a; }

/* ---------- form success / error states ---------- */
.quote__form-success.w-form-done, .w-form-done {
  display: none;
  background: #e7f7ec; border: 1.5px solid #1a7f37; color: #0f5132;
  border-radius: 12px; padding: 24px 22px; text-align: center; font-weight: 600;
}
.quote__form-error.w-form-fail, .w-form-fail {
  border-radius: 12px; padding: 18px 20px; text-align: center;
}

/* ---------- service card / area link hover ---------- */
.service-boxes__title-link { transition: color .2s ease; }
.service-link-block:hover .service-boxes__title-link { color: var(--bte-accent); }
.service-area__text { transition: color .2s ease; }
.service-area-item:hover .service-area__text { color: var(--bte-accent); }

/* ---------- area search box ---------- */
.area-search { max-width: 520px; margin: 0 auto 2rem; }
.area-search__input {
  width: 100%; box-sizing: border-box; padding: 0.85rem 1.1rem;
  font-size: 1rem; border: 1px solid #d9d9d9; border-radius: 8px; outline: none;
  background: #fff; color: #111;
}
.area-search__input:focus { border-color: var(--bte-accent); }
.area-search__empty { text-align: center; margin-top: 1rem; color: #fff; opacity: .85; }
.area-search__q { font-weight: 700; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- navbar must sit above hero/video/overlays on scroll ---------- */
.header, .navbar-menu-container { z-index: 1000; }

/* ---------- mobile fixes (off-platform) ---------- */
@media screen and (max-width: 767px) {
  /* iOS: prevent input auto-zoom (needs >=16px) */
  .quote__form-input, .area-search__input { font-size: 16px; }
}

/* mobile nav hamburger <-> close icon determinism (IX2 sometimes fails to init) */
.menu-button.w--open .hamburger-icon { display: none; }
