/* GART • Localizador compartilhado (WP Store Locator)
   Evite inserir estilos do plugin em templates individuais.
   Escopo: somente .gart-localizador-compartilhado. */
.gart-localizador-compartilhado {
  --gart-loc-fundo: #231f20;
  --gart-loc-painel: #353032;
  --gart-loc-laranja: #f15a24;
  --gart-loc-laranja-hover: #d94c1a;
  --gart-loc-texto: #282425;
  --gart-loc-borda: #e8e3e1;
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  background: var(--gart-loc-fundo);
  color: #fff;
  padding: clamp(40px, 4.5vw, 72px) clamp(20px, 3vw, 48px);
  box-sizing: border-box;
  display: block;
}
.gart-localizador-compartilhado .gart-localizador-compartilhado__inner {
  width: 100%;
  min-width: 0;
  max-width: 1320px;
  margin: 0 auto;
}
.gart-localizador-compartilhado,
.gart-localizador-compartilhado #wpsl-wrap,
.gart-localizador-compartilhado #wpsl-search-wrap,
.gart-localizador-compartilhado #wpsl-search-wrap input,
.gart-localizador-compartilhado #wpsl-search-wrap select,
.gart-localizador-compartilhado #wpsl-result-list {
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
}

/* Título recuperado do componente original OndeComprar.vue. */
.gart-localizador-chamada {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 0 0 32px;
  color: #fff;
}
.gart-localizador-chamada__icone {
  display: block;
  flex: 0 0 38px;
  width: 38px;
  height: auto;
  margin-top: 4px;
  object-fit: contain;
}
.gart-localizador-chamada__texto {
  min-width: 0;
}
.gart-localizador-chamada h2 {
  padding: 0 !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  font-size: clamp(19px, 2vw, 28px);
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: -.42px;
  text-transform: uppercase;
  white-space: nowrap !important;
}
.gart-localizador-chamada p {
  padding: 0 !important;
  margin: 18px 0 0 !important;
  color: #fff !important;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 300;
}

/* FORMULARIO WP STORE LOCATOR — 2026-11-13
   Os dropdowns nativos são habilitados via functions.php para não criar
   os elementos falsos que se sobrepunham ao botão Pesquisar.
   Estrutura real: form > .wpsl-input, .wpsl-select-wrap, .wpsl-search-btn-wrap.
*/
.gart-localizador-compartilhado #wpsl-wrap,
.gart-localizador-compartilhado #wpsl-wrap .wpsl-search {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  color: #fff;
  background: transparent !important;
}
.gart-localizador-compartilhado #wpsl-wrap .wpsl-search {
  margin: 0 0 14px !important;
  padding: 0 !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 18px !important;
  box-sizing: border-box !important;
  background: var(--gart-loc-painel) !important;
  border-top: 3px solid var(--gart-loc-laranja);
  border-radius: 2px;
}
.gart-localizador-compartilhado #wpsl-search-wrap form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-rows: auto;
  gap: 14px !important;
  align-items: start !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-input,
.gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-select-wrap,
.gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-search-btn-wrap {
  float: none !important;
  clear: both !important;
  position: static !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transform: none !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap .wpsl-input > div {
  display: block !important;
  float: none !important;
  width: 100% !important;
  margin: 0 0 7px !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-select-wrap {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: start !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap #wpsl-radius,
.gart-localizador-compartilhado #wpsl-search-wrap #wpsl-results {
  display: block !important;
  position: static !important;
  float: none !important;
  clear: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap label {
  display: block !important;
  float: none !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
  min-height: 18px;
  margin: 0 0 7px !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: .01em;
  opacity: 1 !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap input[type="text"],
.gart-localizador-compartilhado #wpsl-search-wrap select {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  color: var(--gart-loc-texto) !important;
  background-color: #fff !important;
  border: 1px solid #ded9d6 !important;
  border-radius: 2px !important;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: normal !important;
  box-shadow: none !important;
  transform: none !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap select {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  background-image: none !important;
  cursor: pointer;
}
.gart-localizador-compartilhado #wpsl-search-wrap input::placeholder {
  color: #746d6b !important;
  opacity: 1;
}
.gart-localizador-compartilhado #wpsl-search-wrap input:focus,
.gart-localizador-compartilhado #wpsl-search-wrap select:focus {
  outline: 2px solid var(--gart-loc-laranja) !important;
  outline-offset: 2px;
}
.gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-search-btn-wrap {
  display: block !important;
  position: static !important;
  z-index: auto !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  overflow: visible !important;
}
.gart-localizador-compartilhado #wpsl-search-wrap #wpsl-search-btn {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  border: 1px solid var(--gart-loc-laranja) !important;
  border-radius: 2px !important;
  background: var(--gart-loc-laranja) !important;
  color: #fff !important;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: normal !important;
  letter-spacing: .02em;
  text-align: center;
  text-shadow: none !important;
  box-shadow: none !important;
  transform: none !important;
  cursor: pointer;
}
.gart-localizador-compartilhado #wpsl-search-wrap #wpsl-search-btn:hover,
.gart-localizador-compartilhado #wpsl-search-wrap #wpsl-search-btn:focus {
  background: var(--gart-loc-laranja-hover) !important;
  border-color: var(--gart-loc-laranja-hover) !important;
}

/* Mapa e resultados empilhados na coluna estreita.
   Mantemos os IDs do plugin: filtros, mapa e rotas continuam funcionais. */
.gart-localizador-compartilhado #wpsl-wrap #wpsl-gmap,
.gart-localizador-compartilhado #wpsl-wrap #wpsl-map,
.gart-localizador-compartilhado #wpsl-wrap .wpsl-gmap-wrap {
  display: block;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}
.gart-localizador-compartilhado #wpsl-wrap #wpsl-gmap,
.gart-localizador-compartilhado #wpsl-wrap #wpsl-map {
  height: clamp(270px, 34vh, 400px) !important;
  min-height: 270px;
  background: #eae8e5;
}
.gart-localizador-compartilhado #wpsl-wrap #wpsl-result-list {
  display: block;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  max-width: 100% !important;
  height: clamp(170px, 22vh, 250px) !important;
  max-height: 250px;
  margin: 0 !important;
  background: #fbfaf9 !important;
  color: var(--gart-loc-texto) !important;
  overflow: auto !important;
  box-sizing: border-box;
}
.gart-localizador-compartilhado #wpsl-stores {
  background: #fbfaf9 !important;
  color: var(--gart-loc-texto) !important;
}
.gart-localizador-compartilhado #wpsl-stores ul {
  margin: 0 !important;
  padding: 0 !important;
}
.gart-localizador-compartilhado #wpsl-stores li {
  margin: 0 !important;
  padding: 14px 16px !important;
  background: #fff !important;
  color: var(--gart-loc-texto) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--gart-loc-borda) !important;
  line-height: 1.6 !important;
}
.gart-localizador-compartilhado #wpsl-stores li,
.gart-localizador-compartilhado #wpsl-stores li p,
.gart-localizador-compartilhado #wpsl-stores li span,
.gart-localizador-compartilhado #wpsl-stores li div {
  color: var(--gart-loc-texto) !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
}
.gart-localizador-compartilhado #wpsl-stores li strong,
.gart-localizador-compartilhado #wpsl-stores li .wpsl-store-name,
.gart-localizador-compartilhado #wpsl-stores li .wpsl-store-name * {
  color: var(--gart-loc-texto) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
}
.gart-localizador-compartilhado #wpsl-stores li a,
.gart-localizador-compartilhado #wpsl-direction-details a {
  color: var(--gart-loc-laranja-hover) !important;
  text-decoration: none;
  font-weight: 600 !important;
}
.gart-localizador-compartilhado #wpsl-stores li a:hover,
.gart-localizador-compartilhado #wpsl-direction-details a:hover {
  text-decoration: underline;
}
.gart-localizador-compartilhado #wpsl-gmap .gm-style-iw,
.gart-localizador-compartilhado #wpsl-gmap .gm-style-iw *,
.gart-localizador-compartilhado #wpsl-gmap .wpsl-info-window,
.gart-localizador-compartilhado #wpsl-gmap .wpsl-info-window * {
  color: var(--gart-loc-texto) !important;
  font-family: Montserrat, sans-serif;
  line-height: 1.5;
}
.gart-localizador-compartilhado #wpsl-gmap .gm-style-iw a,
.gart-localizador-compartilhado #wpsl-gmap .wpsl-info-window a {
  color: var(--gart-loc-laranja-hover) !important;
  font-weight: 600;
}

/* Localizador exibido fora da faixa com vídeo. */
.gart-localizador-compartilhado--full {
  min-height: 0;
  padding: 72px 32px;
}
.gart-localizador-compartilhado--full #wpsl-search-wrap form {
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr) minmax(140px, .48fr) !important;
  gap: 14px !important;
  align-items: end !important;
}
.gart-localizador-compartilhado--full #wpsl-wrap #wpsl-gmap {
  height: 430px !important;
}
.gart-localizador-compartilhado--full #wpsl-wrap #wpsl-result-list {
  height: 230px !important;
  max-height: 230px;
}
.gart-localizador-erro {
  color: #fff;
  padding: 12px;
  border: 1px solid var(--gart-loc-laranja);
}

/* Em tablet/mobile, a grade original Boxcomponentes já empilha as colunas. */
@media (max-width: 1100px) {
  .gart-localizador-compartilhado {
    padding: 44px 22px;
  }
  .gart-localizador-compartilhado--full #wpsl-search-wrap form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }
  .gart-localizador-compartilhado--full #wpsl-search-wrap form > .wpsl-input,
  .gart-localizador-compartilhado--full #wpsl-search-wrap form > .wpsl-search-btn-wrap {
    grid-column: 1 / -1;
  }
}
@media (max-width: 767px) {
  .gart-localizador-compartilhado {
    min-height: 0;
    padding: 48px 18px;
  }
  .gart-localizador-compartilhado .gart-localizador-chamada {
    gap: 12px;
    margin-bottom: 24px;
  }
  .gart-localizador-compartilhado .gart-localizador-chamada__icone {
    flex-basis: 32px;
    width: 32px;
  }
  .gart-localizador-compartilhado .gart-localizador-chamada h2 {
    font-size: clamp(17px, 4.5vw, 22px);
  }
  .gart-localizador-compartilhado .gart-localizador-chamada p {
    font-size: 13px;
    margin-top: 14px !important;
  }
  .gart-localizador-compartilhado--full #wpsl-search-wrap form {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .gart-localizador-compartilhado--full #wpsl-search-wrap form > .wpsl-input,
  .gart-localizador-compartilhado--full #wpsl-search-wrap form > .wpsl-search-btn-wrap {
    grid-column: auto;
  }
}
@media (max-width: 420px) {
  .gart-localizador-compartilhado {
    padding: 38px 12px;
  }
  .gart-localizador-compartilhado #wpsl-search-wrap {
    padding: 14px !important;
  }
  .gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-select-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .gart-localizador-compartilhado #wpsl-search-wrap form > .wpsl-select-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Somente /onde-comprar/: evita que o menu fixo cubra a chamada do mapa.
   O componente de vídeo à esquerda não recebe nenhuma regra adicional. */
.gart-pagina-onde-comprar-com-mapa .gart-localizador-compartilhado {
  padding-top: 145px;
}
@media (max-width: 767px) {
  /* No mobile o vídeo vem antes do localizador, portanto não há sobreposição. */
  .gart-pagina-onde-comprar-com-mapa .gart-localizador-compartilhado {
    padding-top: 48px;
  }
}

/* ========================================================================
   GART | Correção da barra de pesquisa (layout estável)

   DOM real do WP Store Locator:
     form
       > .wpsl-input
       > .wpsl-select-wrap (#wpsl-radius e #wpsl-results)
       > .wpsl-search-btn-wrap

   Não usar display:contents nos filtros: o navegador/site pode calcular
   a altura da linha sem considerar as labels, fazendo os selects vazarem
   da caixa e o botão ficar mais alto. A coluna de filtros permanece um
   grid-item normal, cujo tamanho participa do cálculo da linha.
   ======================================================================== */
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap {
  container-type: inline-size;
  overflow: visible !important;
  height: auto !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(125px, .35fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas: "local local" "filtros botao" !important;
  gap: 14px 12px !important;
  align-items: end !important;
  align-content: start !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form > .wpsl-input {
  grid-area: local !important;
  position: static !important;
  float: none !important;
  clear: none !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form > .wpsl-select-wrap {
  grid-area: filtros !important;
  position: static !important;
  float: none !important;
  clear: none !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: end !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-radius,
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-results {
  position: static !important;
  float: none !important;
  clear: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: stretch !important;
  align-self: end !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-radius label,
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-results label {
  position: static !important;
  display: block !important;
  flex: 0 0 auto !important;
  float: none !important;
  width: 100% !important;
  min-height: 18px !important;
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  line-height: 18px !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-radius-dropdown,
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-results-dropdown {
  position: static !important;
  float: none !important;
  display: block !important;
  flex: 0 0 46px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  transform: none !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form > .wpsl-search-btn-wrap {
  grid-area: botao !important;
  position: static !important;
  float: none !important;
  clear: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-end !important;
  align-self: end !important;
  justify-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 46px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  transform: none !important;
  box-sizing: border-box !important;
}
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-search-btn {
  position: static !important;
  float: none !important;
  display: block !important;
  flex: 0 0 46px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  transform: none !important;
  box-sizing: border-box !important;
}
/* No espaço reduzido da coluna de vídeo/mapa, o botão ganha uma linha
   própria antes de os campos ficarem estreitos demais. */
@container (max-width: 390px) {
  .gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "local" "filtros" "botao" !important;
    gap: 14px !important;
  }
}
@container (max-width: 305px) {
  .gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap form > .wpsl-select-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* GART | Ajuste fino: subir apenas a caixa de localização.
   O deslocamento é visual: não altera o grid, os filtros ou o botão. */
.gart-localizador-compartilhado:not(.gart-localizador-compartilhado--full) #wpsl-search-wrap #wpsl-search-input {
  transform: translateY(-22px) !important;
}
