/* Vinicius Barbieri — site público */
:root {
  /* Cor da marca: #0B1B33 (azul-marinho). O dourado vem do seu banner. */
  --mata: #0B1B33;
  --mata-2: #1A2E50;
  --cal: #F4F6F9;
  --branco: #FFFFFF;
  --salvia: #DFE5EE;
  --linha: #CBD3DF;
  --grafite: #1C2330;
  --suave: #556070;
  --terra: #8A6212;
  --terra-2: #6E4E0E;
  --ouro: #D9A93F;
  --ouro-2: #C4932C;
  --ok: #2E6B57;
  --erro: #A23B2A;
  --serif: "Young Serif", Georgia, "Times New Roman", serif;
  --sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --larg: 1180px;
  --gut: clamp(16px, 4vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; background: var(--cal); color: var(--grafite); font: 400 1.0625rem/1.6 var(--sans); }
img { max-width: 100%; display: block; }
a { color: var(--mata); text-underline-offset: 3px; }
a:hover { color: var(--terra); }
:focus-visible { outline: 3px solid var(--terra); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.12; letter-spacing: -0.01em; margin: 0 0 .5em; color: var(--mata); }
h1 { font-size: clamp(2.3rem, 5.2vw, 4.1rem); }
h2 { font-size: clamp(1.75rem, 3.3vw, 2.6rem); }
h3 { font-size: 1.32rem; line-height: 1.25; }
p { margin: 0 0 1em; }
.lead { font-size: 1.2rem; color: var(--suave); max-width: 34em; }
.wrap { max-width: var(--larg); margin: 0 auto; padding: 0 var(--gut); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: -999px; top: 8px; background: var(--mata); color: #fff; padding: 8px 14px; z-index: 50; }
.pular:focus { left: 8px; }

/* Régua de medição: o elemento marcante */
.regua {
  height: 16px;
  background:
    repeating-linear-gradient(90deg, currentColor 0 1px, transparent 1px 40px) top left / 100% 16px no-repeat,
    repeating-linear-gradient(90deg, currentColor 0 1px, transparent 1px 8px) top left / 100% 7px no-repeat;
  color: var(--mata);
  opacity: .55;
}
.regua--clara { color: var(--salvia); opacity: .5; }

/* Botões */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font: 600 1rem/1 var(--sans); padding: 15px 22px; border-radius: 3px; border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.btn-terra { background: var(--ouro); color: var(--mata); }
.btn-terra:hover { background: var(--ouro-2); color: var(--mata); }
.btn-linha { border-color: var(--mata); color: var(--mata); background: transparent; }
.btn-linha:hover { background: var(--mata); color: #fff; }
.btn-clara { border-color: var(--salvia); color: #fff; background: transparent; }
.btn-clara:hover { background: var(--salvia); color: var(--mata); }
.btn svg { width: 18px; height: 18px; flex: none; }

/* Cabeçalho */
.topo { background: var(--cal); position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--linha); }
.topo .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 72px; }
.marca { text-decoration: none; color: var(--mata); display: flex; flex-direction: column; line-height: 1.1; }
.marca strong { font: 400 1.35rem var(--serif); }
.marca span { font-size: .8rem; color: var(--suave); margin-top: 3px; }
.menu { display: flex; align-items: center; gap: 28px; }
.menu a { text-decoration: none; color: var(--grafite); font-weight: 500; }
.menu a:hover, .menu a[aria-current="page"] { color: var(--terra); }
.menu .btn { padding: 11px 16px; }
.menu-botao { display: none; background: none; border: 1.5px solid var(--mata); border-radius: 3px; padding: 8px 12px; font: 600 .95rem var(--sans); color: var(--mata); }
@media (max-width: 860px) {
  .menu-botao { display: block; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--cal); flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gut) 20px; border-bottom: 1px solid var(--linha); }
  .menu.aberto { display: flex; }
  .menu a { padding: 14px 0; border-bottom: 1px solid var(--linha); }
  .menu .btn { margin-top: 14px; border: 0; }
}

/* Hero */
.hero { padding: clamp(40px, 7vw, 88px) 0 clamp(48px, 7vw, 96px); overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.hero h1 { max-width: 11em; }
.hero .acoes { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 36px; }
.credenciais { display: flex; flex-wrap: wrap; gap: 14px 32px; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--linha); }
.credenciais div { min-width: 0; }
.credenciais dt { font-size: .8rem; color: var(--suave); }
.credenciais dd { margin: 0; font-weight: 600; color: var(--mata); }
.hero-foto { position: relative; margin-right: calc(-1 * var(--gut)); }
.hero-foto .regua { position: absolute; left: 0; right: 0; top: -22px; }
.hero-foto img { width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: 2px 0 0 2px; }
.hero-foto figcaption {
  position: absolute; left: -28px; bottom: 28px; background: var(--cal); padding: 16px 20px; max-width: 320px;
  border-left: 3px solid var(--ouro); box-shadow: 0 10px 30px rgba(11, 27, 51, .18);
}
.hero-foto figcaption a { text-decoration: none; color: var(--mata); font: 400 1.1rem/1.25 var(--serif); display: block; }
.hero-foto figcaption span { display: block; font-size: .9rem; color: var(--suave); margin-top: 4px; }
@media (min-width: 1400px) { .hero-foto { margin-right: calc((var(--larg) - 100vw) / 2 - var(--gut)); } }
@media (max-width: 860px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .hero-foto { margin: 12px calc(-1 * var(--gut)) 0; }
  .hero-foto img { border-radius: 0; }
  .hero-foto figcaption { left: var(--gut); right: var(--gut); bottom: -28px; max-width: none; }
  .hero { padding-bottom: 72px; }
}

/* Seções */
.secao { padding: clamp(56px, 8vw, 104px) 0; }
.secao-cab { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.secao-cab p { margin: 0; color: var(--suave); max-width: 32em; }
.secao--branca { background: var(--branco); }

/* Imóveis */
.grade-imoveis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
.grade-imoveis--home .imovel:first-child { grid-column: span 2; grid-row: span 2; }
.grade-imoveis--home .imovel:first-child .imovel-foto img { aspect-ratio: 16 / 11.4; }
.grade-imoveis--home .imovel:first-child h3 { font-size: 1.65rem; }
.imovel { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.imovel-foto { position: relative; overflow: hidden; border-radius: 2px; background: var(--salvia); }
.imovel-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.imovel:hover .imovel-foto img { transform: scale(1.03); }
.selo { position: absolute; left: 12px; top: 12px; background: var(--mata); color: #fff; font-size: .82rem; font-weight: 600; padding: 5px 10px; border-radius: 2px; }
.selo--vendido { background: var(--ouro); color: var(--mata); }
.imovel-txt { padding-top: 16px; }
.imovel h3 { margin-bottom: .3em; }
.imovel:hover h3 { color: var(--terra); }
.imovel-local { font-size: .92rem; color: var(--suave); margin: 0 0 8px; }
.ficha { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; list-style: none; font-size: .95rem; }
.ficha li + li { position: relative; }
.imovel-preco { font-weight: 700; color: var(--mata); margin-top: 10px; }
.vazio { padding: 48px; text-align: center; background: var(--branco); border: 1px dashed var(--linha); }
@media (max-width: 960px) { .grade-imoveis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  .grade-imoveis { grid-template-columns: 1fr; }
  .grade-imoveis--home .imovel:first-child { grid-column: auto; grid-row: auto; }
}

/* Filtros */
.filtros { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; align-items: end; }
.filtros label { display: flex; flex-direction: column; font-size: .85rem; color: var(--suave); gap: 4px; }
.filtros select { min-width: 180px; }

/* Formulários */
.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.campo > span, .grupo legend { font-weight: 600; font-size: .95rem; color: var(--grafite); }
input[type=text], input[type=tel], input[type=email], input[type=number], select, textarea {
  width: 100%; font: 400 1rem var(--sans); color: var(--grafite); background: var(--branco);
  border: 1.5px solid var(--linha); border-radius: 4px; padding: 13px 14px;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--mata); box-shadow: 0 0 0 3px rgba(11, 27, 51, .15); }
textarea { min-height: 110px; resize: vertical; }
.duas { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 560px) { .duas { grid-template-columns: 1fr; } }
.grupo { border: 0; padding: 0; margin: 0 0 20px; }
.grupo legend { margin-bottom: 10px; padding: 0; }
.opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.opcao { position: relative; }
.opcao input { position: absolute; opacity: 0; inset: 0; }
.opcao span {
  display: block; padding: 14px 16px; border: 1.5px solid var(--linha); border-radius: 4px; background: var(--branco);
  cursor: pointer; font-weight: 500; transition: border-color .12s, background .12s;
}
.opcao input:checked + span { border-color: var(--mata); background: var(--salvia); color: var(--mata); }
.opcao input:focus-visible + span { outline: 3px solid var(--terra); outline-offset: 2px; }
.aceite { display: flex; gap: 10px; align-items: flex-start; font-size: .88rem; color: var(--suave); margin: 6px 0 18px; }
.aceite input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--mata); }
.hp { position: absolute; left: -5000px; }
.form-erro { color: var(--erro); font-weight: 600; min-height: 1.4em; margin: 0 0 10px; }

/* Busca qualificada (passo a passo) */
.busca { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.busca-txt ul { padding-left: 1.1em; color: var(--suave); }
.busca-txt li { margin-bottom: 6px; }
.passos-form { background: var(--branco); border: 1px solid var(--linha); padding: clamp(20px, 3.5vw, 36px); border-radius: 4px; }
.progresso { height: 4px; background: var(--salvia); margin-bottom: 24px; border-radius: 2px; overflow: hidden; }
.progresso i { display: block; height: 100%; width: 25%; background: var(--mata); transition: width .3s ease; }
.passo { display: none; }
.passo.ativo { display: block; }
.passo h3 { margin-bottom: 18px; }
.passo-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; }
.passo-nav .voltar { background: none; border: 0; color: var(--suave); font: 600 1rem var(--sans); cursor: pointer; padding: 12px 0; }
.passo-nav .voltar:hover { color: var(--mata); }
.resultado { text-align: left; }
.resultado h3 { color: var(--ok); }
@media (max-width: 860px) { .busca { grid-template-columns: 1fr; } }

/* Faixa de avaliação */
.faixa-avaliacao { background: var(--mata); color: #E6EBF3; position: relative; }
.faixa-avaliacao .regua { position: absolute; top: 0; left: 0; right: 0; }
.faixa-avaliacao h2, .faixa-avaliacao h3 { color: #fff; }
.faixa-avaliacao .lead { color: #C3CDDC; }
.faixa-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); }
.usos { list-style: none; padding: 0; margin: 24px 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.usos li { padding-left: 18px; position: relative; }
.usos li::before { content: ""; position: absolute; left: 0; top: .65em; width: 8px; height: 1.5px; background: var(--salvia); }
.etapas { list-style: none; margin: 0; padding: 0; counter-reset: etapa; }
.etapas li { counter-increment: etapa; display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid rgba(221, 228, 218, .25); }
.etapas li:last-child { border-bottom: 1px solid rgba(221, 228, 218, .25); }
.etapas li::before { content: counter(etapa); font: 400 2rem/1 var(--serif); color: var(--salvia); }
.etapas h3 { font-size: 1.15rem; margin-bottom: 4px; }
.etapas p { margin: 0; color: #C3CDDC; font-size: .98rem; }
.etapas--claras li { border-color: var(--linha); }
.etapas--claras li::before { color: var(--terra); }
.etapas--claras h3 { color: var(--mata); }
.etapas--claras p { color: var(--suave); }
@media (max-width: 860px) { .faixa-grid { grid-template-columns: 1fr; } .usos { grid-template-columns: 1fr; } }

/* Sobre */
.sobre { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.sobre img { width: 100%; border-radius: 2px; }
@media (max-width: 860px) { .sobre { grid-template-columns: 1fr; } }

/* Página do imóvel */
.galeria { display: grid; grid-template-columns: 3fr 1fr; gap: 8px; margin-bottom: 36px; }
.galeria-principal img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 2px; }
.galeria-mini { display: grid; gap: 8px; grid-auto-rows: 1fr; max-height: 100%; overflow: auto; }
.galeria-mini button { padding: 0; border: 2px solid transparent; background: none; cursor: pointer; border-radius: 2px; }
.galeria-mini button[aria-current="true"] { border-color: var(--terra); }
.galeria-mini img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 720px) { .galeria { grid-template-columns: 1fr; } .galeria-mini { grid-auto-flow: column; grid-auto-columns: 30%; grid-auto-rows: auto; overflow-x: auto; } }
.imovel-pagina { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); margin: 24px 0 32px; }
.numeros div { padding: 16px 12px 16px 0; }
.numeros dt { font-size: .85rem; color: var(--suave); }
.numeros dd { margin: 2px 0 0; font: 400 1.4rem var(--serif); color: var(--mata); }
.descricao p { max-width: 38em; }
.lista-carac { columns: 2; padding-left: 1.1em; color: var(--grafite); }
.lista-carac li { break-inside: avoid; margin-bottom: 6px; }
.caixa-contato { background: var(--branco); border: 1px solid var(--linha); padding: 24px; border-radius: 4px; position: sticky; top: 96px; }
.caixa-contato .preco { font: 400 1.8rem var(--serif); color: var(--mata); margin-bottom: 4px; }
.caixa-contato .ref { font-size: .85rem; color: var(--suave); margin-bottom: 18px; }
.caixa-contato .btn { width: 100%; margin-bottom: 10px; }
@media (max-width: 860px) { .imovel-pagina { grid-template-columns: 1fr; } .caixa-contato { position: static; } .lista-carac { columns: 1; } }
.migalhas { font-size: .9rem; color: var(--suave); margin: 28px 0 18px; }
.migalhas a { color: var(--suave); }

/* Avaliação (página) */
.pag-hero { padding: clamp(44px, 7vw, 88px) 0 clamp(36px, 5vw, 64px); }
.pag-hero .regua { margin-bottom: 36px; }
.pag-hero h1 { max-width: 14em; }
.colunas-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.colunas-3 h3 { font-size: 1.2rem; }
.colunas-3 p { color: var(--suave); margin: 0; }
@media (max-width: 860px) { .colunas-3 { grid-template-columns: 1fr; gap: 24px; } }
.recebe { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); }
.recebe ul { list-style: none; padding: 0; margin: 0; }
.recebe li { padding: 14px 0; border-top: 1px solid var(--linha); }
.recebe li strong { display: block; color: var(--mata); }
.recebe li span { color: var(--suave); }
@media (max-width: 860px) { .recebe { grid-template-columns: 1fr; } }
.perguntas details { border-top: 1px solid var(--linha); padding: 18px 0; }
.perguntas details:last-child { border-bottom: 1px solid var(--linha); }
.perguntas summary { cursor: pointer; font: 400 1.18rem var(--serif); color: var(--mata); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.perguntas summary::after { content: "+"; font-family: var(--sans); font-size: 1.4rem; line-height: 1; color: var(--terra); }
.perguntas details[open] summary::after { content: "−"; }
.perguntas details p { margin: 12px 0 0; color: var(--suave); max-width: 44em; }
.form-avaliacao { background: var(--branco); border: 1px solid var(--linha); padding: clamp(20px, 3.5vw, 36px); border-radius: 4px; }
.nota { font-size: .9rem; color: var(--suave); }

/* Rodapé */
.rodape { background: var(--grafite); color: #C9CFCB; padding: 56px 0 28px; font-size: .95rem; }
.rodape a { color: #fff; }
.rodape a:hover { color: var(--salvia); }
.rodape-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; }
.rodape h2 { color: #fff; font-size: 1.3rem; }
.rodape h3 { color: #fff; font: 600 .95rem var(--sans); margin-bottom: 10px; }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: 6px; }
.rodape-base { border-top: 1px solid #3B3F40; margin-top: 36px; padding-top: 20px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .85rem; }
@media (max-width: 760px) { .rodape-grid { grid-template-columns: 1fr; } }

/* Botão flutuante de WhatsApp */
.whats-flutuante {
  position: fixed; right: 18px; bottom: 18px; z-index: 30; width: 58px; height: 58px; border-radius: 50%;
  background: #1F7A4C; color: #fff; display: grid; place-items: center; box-shadow: 0 8px 22px rgba(0,0,0,.25);
}
.whats-flutuante:hover { background: #18643D; color: #fff; }
.whats-flutuante svg { width: 30px; height: 30px; }

/* Texto corrido (privacidade) */
.texto { max-width: 44em; }
.texto h2 { font-size: 1.5rem; margin-top: 1.6em; }

/* ================= Portal: busca na página inicial ================= */
.hero-portal { position: relative; background: var(--mata); color: #fff; padding: clamp(48px, 8vw, 104px) 0 clamp(36px, 5vw, 56px); overflow: hidden; isolation: isolate; }
.hero-fundo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-portal::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(11, 27, 51, .94) 0%, rgba(11, 27, 51, .80) 48%, rgba(11, 27, 51, .38) 100%); }
.hero-portal h1 { color: #fff; max-width: 13em; margin-bottom: .35em; }
.hero-sub { font-size: 1.2rem; color: #CFD8E6; max-width: 32em; margin-bottom: 32px; }
.busca-portal { position: relative; background: var(--cal); color: var(--grafite); border-radius: 4px; padding: 26px 22px 16px; max-width: 1000px; box-shadow: 0 18px 50px rgba(0, 0, 0, .28); }
.busca-portal .regua { position: absolute; top: 0; left: 0; right: 0; height: 12px; opacity: .45; }
.busca-abas { display: inline-flex; gap: 4px; margin-bottom: 14px; }
.busca-abas label { position: relative; }
.busca-abas input { position: absolute; opacity: 0; inset: 0; }
.busca-abas span { display: block; padding: 8px 18px; border-radius: 3px; font-weight: 600; cursor: pointer; color: var(--suave); }
.busca-abas input:checked + span { background: var(--mata); color: #fff; }
.busca-abas input:focus-visible + span { outline: 3px solid var(--terra); outline-offset: 2px; }
.busca-campos { display: grid; grid-template-columns: 1fr 1.35fr 1fr auto; gap: 10px; align-items: end; }
.busca-campos label { display: flex; flex-direction: column; gap: 5px; }
.busca-campos label > span { font-size: .85rem; font-weight: 600; color: var(--suave); }
.bc-botao { height: 50px; padding: 0 26px; }
.busca-rodape { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; font-size: .95rem; }
.busca-rodape > a { font-weight: 600; }
.busca-codigo { display: flex; align-items: center; gap: 8px; color: var(--suave); }
.busca-codigo input { width: 150px; padding: 8px 10px; font-size: .95rem; }
button.link { background: none; border: 0; padding: 4px; font: 600 .95rem var(--sans); color: var(--mata); text-decoration: underline; cursor: pointer; }
button.link:hover { color: var(--terra); }
.credenciais--claras { border-top-color: rgba(221, 228, 218, .28); margin-top: 36px; max-width: 640px; }
.credenciais--claras dt { color: #AEBBD0; }
.credenciais--claras dd { color: #fff; }
@media (max-width: 860px) {
  .busca-campos { grid-template-columns: 1fr 1fr; }
  .bc-local { grid-column: 1 / -1; order: -1; }
  .bc-botao { grid-column: 1 / -1; }
}
@media (max-width: 480px) { .busca-campos { grid-template-columns: 1fr; } .busca-codigo input { width: 120px; } }

.atalhos-tipo { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; margin-top: -1px; border-bottom: 1px solid var(--linha); }
.atalhos-tipo a { padding: 20px 18px; text-decoration: none; border-right: 1px solid var(--linha); display: flex; flex-direction: column; gap: 2px; }
.atalhos-tipo a:last-child { border-right: 0; }
.atalhos-tipo strong { font: 400 1.15rem var(--serif); color: var(--mata); }
.atalhos-tipo span { font-size: .88rem; color: var(--suave); }
.atalhos-tipo a:hover strong { color: var(--terra); }
@media (max-width: 620px) { .atalhos-tipo { grid-template-columns: 1fr 1fr; } .atalhos-tipo a { border-bottom: 1px solid var(--linha); } }

/* Cartão: preço em destaque e código */
.imovel-txt .imovel-preco { margin: 0 0 4px; font-size: 1.12rem; }
.imovel-ref { font-size: .8rem; color: var(--suave); margin: 8px 0 0; }

/* ================= Portal: página de resultados ================= */
.resultados-cab { padding: 8px 0 24px; }
.resultados-cab h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); margin-bottom: .2em; }
.resultados-cab .lead { margin: 0; }
.alerta-site { background: #F6EEDC; color: var(--terra); border-left: 3px solid var(--terra); padding: 12px 14px; margin-top: 14px; max-width: 44em; }
.resultados { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 36px; align-items: start; }
.filtros-painel { background: var(--branco); border: 1px solid var(--linha); border-radius: 4px; padding: 6px 20px 20px; position: sticky; top: 88px; max-height: calc(100vh - 104px); overflow-y: auto; }
.filtros-topo { display: flex; justify-content: space-between; align-items: center; padding: 14px 0 4px; }
.filtros-topo h2 { font-size: 1.35rem; margin: 0; }
.filtros-fechar { display: none; background: none; border: 1.5px solid var(--linha); border-radius: 3px; padding: 6px 12px; font: 600 .9rem var(--sans); color: var(--mata); cursor: pointer; }
.fgrupo { border: 0; border-top: 1px solid var(--linha); margin: 0; padding: 16px 0 14px; }
.fgrupo legend { float: left; width: 100%; font-weight: 700; font-size: .95rem; color: var(--mata); margin-bottom: 10px; padding: 0; }
.fgrupo legend + * { clear: both; }
.fcheck { display: flex; align-items: center; gap: 10px; padding: 5px 0; cursor: pointer; font-size: .97rem; }
.fcheck input { width: 18px; height: 18px; accent-color: var(--mata); flex: none; margin: 0; }
.fcheck span { flex: 1; }
.fcheck small { color: var(--suave); font-size: .82rem; }
.fcampo { display: flex; flex-direction: column; gap: 4px; }
.fcampo > span { font-size: .82rem; color: var(--suave); }
.fcampo input, .fcampo select { padding: 10px 11px; font-size: .95rem; }
.fpar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.segmentos { display: flex; border: 1.5px solid var(--linha); border-radius: 4px; overflow: hidden; }
.segmentos label { flex: 1; position: relative; }
.segmentos label + label { border-left: 1px solid var(--linha); }
.segmentos input { position: absolute; opacity: 0; inset: 0; }
.segmentos span { display: block; text-align: center; padding: 8px 4px; font-size: .9rem; font-weight: 600; cursor: pointer; color: var(--grafite); }
.segmentos input:checked + span { background: var(--mata); color: #fff; }
.segmentos input:focus-visible + span { outline: 3px solid var(--terra); outline-offset: -3px; }
.filtros-acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid var(--linha); }
.filtros-acoes .btn { flex: 1; }
@media (min-width: 961px) { .filtros-acoes .btn { display: none; } .filtros-acoes { justify-content: flex-start; } }

.barra-resultados { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-bottom: 14px; }
.abrir-filtros { display: none; padding: 11px 16px; }
.ordenar label { display: flex; align-items: center; gap: 8px; font-size: .92rem; color: var(--suave); white-space: nowrap; }
.ordenar select { width: auto; padding: 9px 12px; font-size: .95rem; }
.chips { list-style: none; padding: 0; margin: 0 0 22px; display: flex; flex-wrap: wrap; gap: 8px; }
.chips a { display: inline-flex; align-items: center; gap: 8px; background: var(--salvia); color: var(--mata); text-decoration: none; padding: 6px 10px 6px 12px; border-radius: 3px; font-size: .9rem; font-weight: 600; }
.chips a span { font-size: 1.1rem; line-height: 1; }
.chips a:hover { background: var(--mata); color: #fff; }
.chips .chips-limpar { background: none; text-decoration: underline; padding-left: 4px; }
.chips .chips-limpar:hover { background: none; color: var(--terra); }
.grade-imoveis--busca { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; }
.grade-imoveis--busca h3 { font-size: 1.15rem; }
.paginas { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin: 40px 0 0; }
.paginas a, .paginas span { min-width: 42px; padding: 9px 12px; text-align: center; border: 1.5px solid var(--linha); border-radius: 3px; text-decoration: none; font-weight: 600; background: var(--branco); }
.paginas span[aria-current] { background: var(--mata); border-color: var(--mata); color: #fff; }
.paginas .reticencias { border: 0; background: none; min-width: 0; }
.sem-resultado { background: var(--branco); border: 1px dashed var(--linha); padding: 32px; border-radius: 4px; }
.sem-resultado h2 { font-size: 1.5rem; }
.sem-resultado p { color: var(--suave); max-width: 38em; margin: 0; }
.alerta-busca { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; align-items: center; background: var(--mata); color: #CFD8E6; border-radius: 4px; padding: 28px; margin-top: 48px; }
.alerta-busca h2 { color: #fff; font-size: 1.45rem; }
.alerta-busca p { margin: 0; }
.alerta-busca .campo > span { color: #fff; }
.alerta-busca .aceite { color: #C3CDDC; }
.alerta-busca .aceite a { color: #fff; }
.alerta-busca .form-erro { color: #F6C9BE; }
.alerta-busca .resultado h3 { color: #fff; }
.form-alerta { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.form-alerta .aceite, .form-alerta .form-erro, .form-alerta .btn, .form-alerta .resultado { grid-column: 1 / -1; }
.form-alerta .resultado p { color: #CFD8E6; }

@media (max-width: 1180px) { .grade-imoveis--busca { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) {
  .resultados { grid-template-columns: 1fr; }
  .abrir-filtros { display: inline-flex; margin-right: auto; }
  .filtros-painel { display: none; position: fixed; inset: 0; z-index: 60; max-height: none; border-radius: 0; border: 0; padding-bottom: 96px; top: 0; }
  .filtros-painel.aberto { display: block; }
  .filtros-fechar { display: block; }
  .filtros-acoes { position: fixed; left: 0; right: 0; bottom: 0; background: var(--branco); padding: 14px var(--gut); box-shadow: 0 -6px 20px rgba(0, 0, 0, .1); }
  body.sem-rolagem { overflow: hidden; }
  body.sem-rolagem .whats-flutuante { display: none; }
  .alerta-busca { grid-template-columns: 1fr; }
}
@media (max-width: 620px) { .grade-imoveis--busca { grid-template-columns: 1fr; } .form-alerta { grid-template-columns: 1fr; } }

/* Imóveis semelhantes */
.semelhantes { border-top: 1px solid var(--linha); margin-top: 64px; padding-top: 48px; }
.galeria--unica { grid-template-columns: 1fr; }
.galeria--unica .galeria-principal img { aspect-ratio: 21 / 9; }
@media (max-width: 720px) { .galeria--unica .galeria-principal img { aspect-ratio: 4 / 3; } }

/* Topo sem foto: azul da marca com a régua dourada */
.hero-portal:not(:has(.hero-fundo))::before { background: linear-gradient(160deg, #0B1B33 0%, #0B1B33 55%, #132A4D 100%); }
.hero-portal .busca-portal .regua { color: var(--ouro); opacity: .9; }
.faixa-avaliacao .regua--clara { color: var(--ouro); opacity: .55; }
.credenciais--claras dd { color: var(--ouro); }
.chips a:hover { background: var(--mata); color: #fff; }
