/* Addicted 2 Asphalt — post-migration overrides (loaded after the Webflow CSS).
   Brand accent: #e02b1d (red). Keep this file the home for anything not in the
   original Webflow stylesheet so re-exports stay clean. */

/* ----------------------------------------------------- form success / error */
.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;
}
.altcha-widget,
altcha-widget { display: block; margin: 0 0 16px; }

/* --------------------------------------------- WCAG AA text-contrast fixes
   Brand red #e02b1d is ~4.3:1 on light backgrounds (fails AA). Darken to
   #c8210f (~5.7:1) for red TEXT on light surfaces only — leaves white-on-dark
   eyebrows (.text-white) and white-on-red buttons untouched. */
.service-boxes__link,
.footer_menu-title,
.text-highlighted:not(.text-white) { color: #c8210f; }

/* ----------------------------------------------------------- card hover fx */
.service-boxes__title-link { color: inherit; text-decoration: none; transition: color .2s ease; }
.service-boxes__title-link:hover { color: #e02b1d; }
.service-area__text { transition: color .2s ease; }
.service-area__item:hover .service-area__text { color: #e02b1d; }
.s-area-item .flex-link:hover .underline { color: #e02b1d; }
.s-area-name-link { color: inherit; text-decoration: none; transition: color .2s ease; }
.s-area-name-link:hover { color: #c8210f; }

/* ------------------------------------------------------- service-area search */
.area-search { max-width: 520px; margin: 0 auto 2rem; }
.area-search__input {
  width: 100%; box-sizing: border-box; padding: .85rem 1.1rem;
  font-size: 16px; border: 1px solid #d9d9d9; border-radius: 8px; outline: none;
  font-family: inherit;
}
.area-search__input:focus { border-color: #e02b1d; } /* border (not box-shadow) — no iOS overflow */
.area-search__empty { text-align: center; margin-top: 1rem; opacity: .85; }
.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 z */
.navbar.w-nav { z-index: 1000; }

/* ----------------------------------------------- mobile hamburger / close icon
   Driven deterministically off the reliable .w--open class (core Webflow nav
   toggles it) so the icon is correct even if IX2 is slow to init. */
.navbar__close-icon-wrap { display: none; }
.navbar__menu-button.w--open .navbar__hamburguer-icon { display: none; }
.navbar__menu-button.w--open .navbar__close-icon-wrap { display: block; }

/* ------------------------------------------------------------- FAQ accordion
   Deterministic open/close (does not rely on Webflow IX2). build.js strips the
   inline display:none / data-w-id from FAQ items so this controls them. */
.faqs__item .faq__answer-wrap {
  display: block !important; overflow: hidden;
  transition: opacity .3s ease;
}
.faqs__item:not(.is-open) .faq__answer-wrap {
  height: 0 !important; opacity: 0 !important;
  padding-top: 0 !important; padding-bottom: 0 !important;
}
.faqs__item.is-open .faq__answer-wrap { height: auto !important; opacity: 1 !important; }
.faq__question-wrap { cursor: pointer; }
.faq__icon-vertical { transition: opacity .2s ease, transform .2s ease; }
.faqs__item.is-open .faq__icon-vertical { opacity: 0; }

/* --------------------------------------------------- mobile layout fixes */
@media screen and (max-width: 991px) {
  /* Location map: position:absolute on desktop right half overlapped on mobile.
     Stack info first, map below. */
  .location.full-location > .w-layout-blockcontainer.container,
  .location.full-location > .container,
  .location.full-location .map-wrap {
    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; }
}

/* iOS: 16px min on inputs prevents auto-zoom + horizontal scroll */
.quote__form-input.w-input, .quote__form-input { font-size: 16px; }
