/* =========================================================
   V7 Imóveis · busca de imóveis (/imoveis/)
   ========================================================= */

.busca-grade { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; align-items: start; padding-bottom: 96px; }

.filtros { position: sticky; top: calc(var(--topo-h) + 20px); }
.filtros form { display: grid; gap: 4px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 22px; }
.filtros__topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.filtros__topo h2 { font-size: 20px; }
.filtros__fechar { display: none; width: 42px; height: 42px; place-items: center; }
.filtro { border: 0; margin: 0; padding: 16px 0; border-top: 1px solid var(--linha); display: grid; gap: 10px; }
.filtro__titulo { font-size: 14px; font-weight: 600; color: var(--tinta); padding: 0; }
.filtro .chip span { min-height: 36px; padding: 0 13px; font-size: 13.5px; }
.filtro .select select, .filtro .input { min-height: 48px; }
.filtro .input input { height: 44px; font-size: 15px; }
.filtros__pe { display: grid; grid-template-columns: auto 1fr; gap: 8px; padding-top: 16px; border-top: 1px solid var(--linha); }

.resultados__barra { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 22px; }
.resultados__filtrar { display: none; }
.resultados__ordem { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--suave); }
.resultados__ordem .select select { min-height: 44px; width: auto; font-size: 15px; font-weight: 500; }

.faixa-ajuda { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding: 22px 26px; border-radius: var(--raio); background: var(--laranja-claro); }
.faixa-ajuda strong { color: var(--tinta); }

.filtros-fundo { display: none; }

@media (max-width: 1180px) {
	.busca-grade { grid-template-columns: 270px minmax(0, 1fr); gap: 28px; }
	.grade-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	.busca-grade { grid-template-columns: 1fr; padding-bottom: 72px; }
	.resultados__barra { justify-content: space-between; position: sticky; top: var(--topo-h); z-index: 20; background: #fff; padding: 10px 0; margin: -10px 0 12px; }
	.resultados__filtrar { display: inline-flex; }
	.filtros {
		position: fixed; inset: 0 0 0 auto; z-index: 95; width: min(400px, 100%); top: 0;
		background: #fff; overflow-y: auto; transform: translateX(100%); visibility: hidden;
		transition: transform .35s cubic-bezier(.2, .8, .2, 1), visibility .35s;
	}
	.filtros.is-aberto { transform: none; visibility: visible; }
	.filtros form { border: 0; border-radius: 0; min-height: 100%; padding: 18px 18px 0; }
	.filtros__fechar { display: grid; }
	.filtros__pe { position: sticky; bottom: 0; background: #fff; padding: 14px 0 18px; margin-top: auto; }
	.filtros-fundo { position: fixed; inset: 0; z-index: 94; background: rgba(20, 12, 4, .5); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; display: block; }
	.filtros.is-aberto ~ .filtros-fundo, body.filtros-abertos .filtros-fundo { opacity: 1; visibility: visible; }
}
@media (max-width: 640px) {
	.grade-cards--3 { grid-template-columns: 1fr; }
	.resultados__ordem > span:first-child { display: none; }
	.faixa-ajuda { padding: 20px; }
}
