/* Copano Concrete — post-migration overrides (form UX, ALTCHA theme, mobile fixes).
   Loaded after copano-concrete.css. Bump ?v= in build.js (ASSET_V) when changed. */

/* ---------- ALTCHA widget (readable on light AND dark hero 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: #f0751c;
  --altcha-color-active: #f0751c;
  --altcha-color-error-text: #b42318;
  --altcha-color-footer-bg: #f4f6f8;
  --altcha-border-radius: 10px;
}
altcha-widget,
.quote__form altcha-widget {
  color: #1a1a1a;
}

/* ---------- form success box (real green, replaces the washed-out mint) ---------- */
.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;
}

/* ---------- navbar above hero overlays / sliders on scroll ---------- */
.navbar {
  z-index: 1000;
}

/* ---------- service-card + area link hover ---------- */
.service-boxes__title,
.service-boxes__title-link {
  color: var(--white);
  text-decoration: none;
  transition: color 0.2s ease;
}
.service-boxes__title:hover,
.service-boxes__title-link:hover {
  color: var(--color--secondary);
}
.service-area__text {
  transition: color 0.2s ease;
}
.service-area__text:hover {
  color: var(--color--secondary);
}
.s-area-item h4 {
  transition: color 0.2s ease;
}
.s-area-item:hover h4 a {
  color: var(--color--secondary);
}

/* ---------- service-areas hub 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: 16px; /* 16px min: prevents iOS Safari zoom */
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  outline: none;
}
.area-search__input:focus {
  border-color: #f0751c; /* border-only focus (no spread ring → no iOS horizontal scroll) */
}
.area-search__empty {
  text-align: center;
  margin-top: 1rem;
  opacity: 0.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;
}

/* ---------- gallery service-filter tabs ---------- */
.gallery__filter-item {
  cursor: pointer;
}
.gallery__filter-item.is-active .gallery__filter-radio-label,
.gallery__filter-radio-label:hover {
  color: var(--color--secondary);
}
.gallery__filter-item.is-active .gallery__filter-radio-label {
  border-bottom: 2px solid var(--color--secondary);
}
.gallery-page-item[hidden] {
  display: none !important;
}

/* ---------- Elfsight reviews page: give the widget room + style Load More ---------- */
.reviews__wrap .elfsight-app-eccece8d-3a89-4a9c-bdb3-1db235b177d2 {
  min-height: 480px;
}
.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: "DM Sans", "Barlow Condensed", 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;
}
.carousel-reviews__wrap > .button {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- iOS: inputs at 16px so Safari doesn't auto-zoom ---------- */
@media screen and (max-width: 767px) {
  .quote__form-input,
  .w-input,
  .w-select,
  textarea.w-input {
    font-size: 16px;
  }
}

/* ---------- mobile hamburger <-> close icon (deterministic, keyed on .w--open) ---------- */
.menu-button .close-icon-wrap {
  display: none;
}
.menu-button.w--open .hamburger-icon {
  display: none !important;
}
.menu-button.w--open .close-icon-wrap {
  display: flex !important;
}

/* ---------- mobile: stack the full-location map below the info (detail pages) ---------- */
@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;
  }
}

/* ---------- mobile: secondary-page service cards icon-left, content-right ---------- */
@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;
  }
}
