/* SPJ 3.303 — campos públicos: somente a BORDA INFERIOR já existente usa a primária no foco.
 * REGRA GLOBAL EXTERNA:
 * - repouso: preserva o desenho/borda original do componente;
 * - hover: não muda a borda e não cria outline/sombra;
 * - focus/focus-visible: SOMENTE a cor da borda INFERIOR que já existe muda para a primária do portal;
 * - não cria underline/borda inferior extra, não muda espessura, radius, altura, padding ou background;
 * - buscas públicas continuam sendo exceção e permanecem visualmente estáticas.
 */

:root{
  --spb-public-field-focus:var(--spb-primary,var(--cor-primaria,var(--primary,#2563eb)));
}

/* Formulários públicos comuns. Não altera a borda no hover. */
html body.pc form:not(.spb-header-search) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="search"]):not([name="busca"]):not([name="q"]):not([name="s"]):not([class*="search"]):not([class*="busca"]):hover,
html body.pc form:not(.spb-header-search) select:hover,
html body.pc form:not(.spb-header-search) textarea:hover{
  box-shadow:none!important;
  outline:none!important;
}

/* Clique/foco: colore SOMENTE a borda inferior já existente com a primária, sem criar nova linha. */
html body.pc form:not(.spb-header-search) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="search"]):not([name="busca"]):not([name="q"]):not([name="s"]):not([class*="search"]):not([class*="busca"]):focus,
html body.pc form:not(.spb-header-search) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="search"]):not([name="busca"]):not([name="q"]):not([name="s"]):not([class*="search"]):not([class*="busca"]):focus-visible,
html body.pc form:not(.spb-header-search) select:focus,
html body.pc form:not(.spb-header-search) select:focus-visible,
html body.pc form:not(.spb-header-search) textarea:focus,
html body.pc form:not(.spb-header-search) textarea:focus-visible{
  border-bottom-color:var(--spb-public-field-focus)!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Formulários de autenticação/conta: mesma regra de primária. */
.spb-account-auth .spb-account-field input:hover,
.spb-account-auth .spb-account-field select:hover,
.spb-account-auth .spb-account-field textarea:hover{
  box-shadow:none!important;
  outline:none!important;
}
.spb-account-auth .spb-account-field input:focus,
.spb-account-auth .spb-account-field input:focus-visible,
.spb-account-auth .spb-account-field select:focus,
.spb-account-auth .spb-account-field select:focus-visible,
.spb-account-auth .spb-account-field textarea:focus,
.spb-account-auth .spb-account-field textarea:focus-visible{
  border-bottom-color:var(--spb-public-field-focus)!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Reforço nos formulários públicos que possuem regras locais antigas com secundária/azul. */
html body.pc .spb-contact-form input:focus,
html body.pc .spb-contact-form input:focus-visible,
html body.pc .spb-contact-form select:focus,
html body.pc .spb-contact-form select:focus-visible,
html body.pc .spb-contact-form textarea:focus,
html body.pc .spb-contact-form textarea:focus-visible,
html body.pc .spb-agenda-public-form input:focus,
html body.pc .spb-agenda-public-form input:focus-visible,
html body.pc .spb-agenda-public-form select:focus,
html body.pc .spb-agenda-public-form select:focus-visible,
html body.pc .spb-agenda-public-form textarea:focus,
html body.pc .spb-agenda-public-form textarea:focus-visible,
html body.pc .spb-guide-company-page .spb-company-contact-box input:focus,
html body.pc .spb-guide-company-page .spb-company-contact-box input:focus-visible,
html body.pc .spb-guide-company-page .spb-company-contact-box textarea:focus,
html body.pc .spb-guide-company-page .spb-company-contact-box textarea:focus-visible,
html body.pc .spb-guide-company-page .spb-company-contact-card input:focus,
html body.pc .spb-guide-company-page .spb-company-contact-card input:focus-visible,
html body.pc .spb-guide-company-page .spb-company-contact-card textarea:focus,
html body.pc .spb-guide-company-page .spb-company-contact-card textarea:focus-visible,
html body.pc .spb-property-contact-field input:focus,
html body.pc .spb-property-contact-field input:focus-visible,
html body.pc .spb-property-contact-field textarea:focus,
html body.pc .spb-property-contact-field textarea:focus-visible,
html body.pc .spb-property-whatsapp-field input:focus,
html body.pc .spb-property-whatsapp-field input:focus-visible,
html body.pc #spbPropertyContactForm input:focus,
html body.pc #spbPropertyContactForm input:focus-visible,
html body.pc #spbPropertyContactForm textarea:focus,
html body.pc #spbPropertyContactForm textarea:focus-visible,
html body.pc .spb-property-contact-dialog input:focus,
html body.pc .spb-property-contact-dialog input:focus-visible,
html body.pc .spb-property-contact-dialog textarea:focus,
html body.pc .spb-property-contact-dialog textarea:focus-visible,
html body.pc .spb-job-modal input:focus,
html body.pc .spb-job-modal input:focus-visible,
html body.pc .spb-job-modal select:focus,
html body.pc .spb-job-modal select:focus-visible,
html body.pc .spb-job-modal textarea:focus,
html body.pc .spb-job-modal textarea:focus-visible,
html body.pc .spb-mobile-city-select-control select:focus,
html body.pc .spb-mobile-city-select-control select:focus-visible{
  border-bottom-color:var(--spb-public-field-focus)!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Editor rico público: muda somente a cor da borda que já existe no wrapper. */
html body.pc .spb-agenda-rich-field .spb-basic-editor:focus-within{
  border-bottom-color:var(--spb-public-field-focus)!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Veículos: os controles de BUSCA/FILTRO continuam fora desta regra de formulário.
 * A aparência estática das buscas é tratada abaixo pela regra 3.292. */

/* SPJ 3.292 — buscas públicas: aparência de repouso é imutável.
 * IMPORTANTE: busca é exceção ao underline dos formulários.
 * O CSS aqui só neutraliza anéis/sombras. A restauração EXATA das bordas de repouso
 * é feita por spb-public-search-static.js, que memoriza a borda antes da interação.
 */
html body.pc .spb-header-search,
html body.pc .spb-header-search-input,
html body.pc .spb-mobile-search-input,
html body.pc .search-home,
html body.pc .search-home form,
html body.pc .search-home input,
html body.pc .spb-guide-search-row form,
html body.pc .spb-guide-search-row input,
html body.pc .guide form,
html body.pc .guide form input,
html body.pc .spb-vehicle-simple-input,
html body.pc .spb-vehicle-simple-input input,
html body.pc input[type="search"]{
  outline:none!important;
  outline-offset:0!important;
  box-shadow:none!important;
}

html body.pc .spb-header-search:hover,
html body.pc .spb-header-search:focus,
html body.pc .spb-header-search:focus-visible,
html body.pc .spb-header-search:focus-within,
html body.pc .spb-header-search:active,
html body.pc .spb-header-search-input:hover,
html body.pc .spb-header-search-input:focus,
html body.pc .spb-header-search-input:focus-visible,
html body.pc .spb-header-search-input:active,
html body.pc .spb-mobile-search-input:hover,
html body.pc .spb-mobile-search-input:focus,
html body.pc .spb-mobile-search-input:focus-visible,
html body.pc .spb-mobile-search-input:active,
html body.pc .search-home:hover,
html body.pc .search-home:focus,
html body.pc .search-home:focus-visible,
html body.pc .search-home:focus-within,
html body.pc .search-home:active,
html body.pc .search-home input:hover,
html body.pc .search-home input:focus,
html body.pc .search-home input:focus-visible,
html body.pc .search-home input:active,
html body.pc .spb-guide-search-row form:hover,
html body.pc .spb-guide-search-row form:focus,
html body.pc .spb-guide-search-row form:focus-within,
html body.pc .spb-guide-search-row form:active,
html body.pc .spb-guide-search-row input:hover,
html body.pc .spb-guide-search-row input:focus,
html body.pc .spb-guide-search-row input:focus-visible,
html body.pc .spb-guide-search-row input:active,
html body.pc .guide form:hover,
html body.pc .guide form:focus,
html body.pc .guide form:focus-within,
html body.pc .guide form:active,
html body.pc .guide form input:hover,
html body.pc .guide form input:focus,
html body.pc .guide form input:focus-visible,
html body.pc .guide form input:active,
html body.pc .spb-vehicle-simple-input:hover,
html body.pc .spb-vehicle-simple-input:focus,
html body.pc .spb-vehicle-simple-input:focus-visible,
html body.pc .spb-vehicle-simple-input:focus-within,
html body.pc .spb-vehicle-simple-input:active,
html body.pc .spb-vehicle-simple-input input:hover,
html body.pc .spb-vehicle-simple-input input:focus,
html body.pc .spb-vehicle-simple-input input:focus-visible,
html body.pc .spb-vehicle-simple-input input:active,
html body.pc input[type="search"]:hover,
html body.pc input[type="search"]:focus,
html body.pc input[type="search"]:focus-visible,
html body.pc input[type="search"]:active{
  outline:none!important;
  outline-offset:0!important;
  box-shadow:none!important;
  filter:none!important;
}

/* Lupa/botão de busca também não ganha estado visual no mouse/foco. */
html body.pc .spb-header-search-button:hover,
html body.pc .spb-header-search-button:focus,
html body.pc .spb-header-search-button:focus-visible,
html body.pc .spb-header-search-button:active,
html body.pc .search-home button:hover,
html body.pc .search-home button:focus,
html body.pc .search-home button:focus-visible,
html body.pc .search-home button:active,
html body.pc .spb-vehicle-simple-submit:hover,
html body.pc .spb-vehicle-simple-submit:focus,
html body.pc .spb-vehicle-simple-submit:focus-visible,
html body.pc .spb-vehicle-simple-submit:active{
  outline:none!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
}
