/* A-Team Chip Seal and Paving — migration overrides (loaded after the Webflow CSS).
   Off-platform fixes: deterministic mobile menu, accessibility landmark, contact-form
   hardening, area-search box, gallery filter, reviews widget polish, mobile layout. */

main { display: block; }

/* Honeypot — visually removed, kept in the accessibility tree out of the way */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden; opacity: 0;
}

/* Keep the sticky navbar above hero overlays / background video */
.navbar { z-index: 1000; }

/* Deterministic hamburger <-> close-X (Webflow toggles .w--open on the button) */
.navbar__close-icon-wrap { display: none; }
.navbar__menu-button.w--open .navbar__hamburguer-icon { display: none !important; }
.navbar__menu-button.w--open .navbar__close-icon-wrap { display: flex !important; }

/* Service-card + service-area hover affordance */
.service-boxes__title-link { color: inherit; text-decoration: none; transition: color .2s ease; }
.service-boxes__title-link:hover { color: var(--color--secondary); }
.service-area__text { transition: color .2s ease; }
.service-area__item:hover .service-area__text { color: var(--color--secondary); }
.s-area-item h3, .s-area-item h4 { transition: color .2s ease; }
.s-area-item:hover h3, .s-area-item:hover h4 { color: var(--color--secondary); }

/* iOS: 16px inputs prevent auto-zoom; border-color focus (no box-shadow spread) */
.quote__form-input, .area-search__input { font-size: 16px; }
.quote__form-input:focus { border-color: var(--color--secondary); outline: none; }

/* ALTCHA widget spacing inside the form */
altcha-widget.altcha-widget { display: block; margin: 0 0 14px; max-width: 280px; }

/* ---- Service-areas hub: instant search box ---- */
.area-search { max-width: 560px; margin: 0 auto 2rem; }
.area-search__input {
  width: 100%; box-sizing: border-box; padding: 0.9rem 1.1rem;
  font-size: 1rem; border: 1px solid #d9d9d9; border-radius: 10px; outline: none;
  transition: border-color .2s ease;
}
.area-search__input:focus { border-color: var(--color--secondary); }
.area-search__empty {
  max-width: 520px; margin: 1rem auto 0; padding: 12px 18px; border-radius: 10px;
  background: var(--color--secondary); color: #fff; font-weight: 600;
  text-align: center; line-height: 1.45;
}
.area-search__empty a, .area-search__phone { color: #fff; font-weight: 800; text-decoration: underline; }
.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;
}

/* ---- Area mini-list pagination controls (home / reviews / quote) ---- */
.area-paginate { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 28px; }
.area-paginate__btn {
  font-family: inherit; cursor: pointer; border: 2px solid var(--color--secondary);
  background: var(--color--secondary); color: #fff; padding: 10px 22px; border-radius: 10px;
  font-weight: 700; font-size: 15px; transition: background .2s ease, color .2s ease;
}
.area-paginate__btn:hover:not(:disabled) { background: transparent; color: var(--color--secondary); }
.area-paginate__btn:disabled { opacity: .4; cursor: default; }
/* "Page X of Y" as a chip — area sections vary between dark navy and light bg,
   so the chip stays legible on either (navy fill + white text + faint outline). */
.area-paginate__info {
  font-weight: 700; font-size: 1rem; line-height: 1; letter-spacing: .02em; white-space: nowrap;
  color: #fff; background: var(--color--primary); border: 1px solid rgba(255, 255, 255, .3);
  padding: 11px 18px; border-radius: 999px; text-align: center;
}

/* ---- Gallery service-filter tabs ---- */
.gallery__filter-list {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
  max-width: 900px; margin: 0 auto 2.5rem;
}
.gallery__filter-tab {
  font-family: inherit; cursor: pointer; border: 1px solid #d9d9d9; background: #fff;
  color: var(--color--primary); padding: 9px 18px; border-radius: 999px; font-weight: 600;
  font-size: 14px; transition: all .2s ease;
}
.gallery__filter-tab:hover { border-color: var(--color--secondary); color: var(--color--secondary); }
.gallery__filter-tab.is-active { background: var(--color--secondary); border-color: var(--color--secondary); color: #fff; }

/* ---- Elfsight reviews ---- */
/* Full reviews page: reserve height so the widget area doesn't collapse before load */
.reviews__grid-code { min-height: 480px; }
/* "Load more" on the reviews page (Elfsight ships padding:0 + a font it rarely loads) */
.reviews__wrap .es-load-more-button-container { margin-top: 40px !important; display: flex !important; justify-content: center !important; }
.reviews__wrap .es-load-more-button.es-button-base-container {
  font-family: "Oswald","Lato",sans-serif !important; padding: 14px 30px !important;
  min-height: 0 !important; height: auto !important; border-radius: 10px !important;
  font-weight: 700 !important; font-size: 16px !important;
}
/* Center the home carousel "See more Reviews" button */
.carousel-reviews__wrap > .button { display: block; width: max-content; max-width: 100%; margin-left: auto; margin-right: auto; }

/* ---- Mobile layout fixes ---- */
@media screen and (max-width: 991px) {
  .location.full-location > .w-layout-blockcontainer.container,
  .location.full-location > .container { display: flex; flex-direction: column; }
  .location.full-location .map-absolute {
    position: relative; width: 100%; margin-left: 0; height: 320px; margin-top: 24px;
    border-radius: 12px; overflow: hidden; order: 2;
  }
  .location.full-location .map-absolute iframe { width: 100%; height: 100%; border: 0; }
  .location.full-location .location__wrap.reverse { grid-template-columns: 1fr; order: 1; }
}
@media screen and (max-width: 767px) {
  .service-boxes__inner.one-column {
    grid-template-columns: auto 1fr; grid-column-gap: 16px; align-items: start; padding: 20px;
  }
  .service-boxes__inner.one-column .service-boxes__icon-wrap { width: 48px; height: 54px; flex: none; }
  .service-boxes__inner.one-column .service-boxes__content-wrap { min-width: 0; }
}
