/* Magno Imóveis e Negócios — tokens derivados do logo (#6E363B amostrado de bg_logo.png) */
:root {
  --vinho: #6E363B;          /* cor do logo: marca, títulos de destaque */
  --vinho-esc: #56272B;      /* hover */
  --acao: #9B2C35;           /* botões e selos (contraste 7,4:1 com branco) */
  --acao-esc: #7E222A;
  --vinho-claro: #F6EEEE;    /* fundos suaves */
  --preto: #151515;
  --grafite: #2A2A2A;
  --texto: #2A2A2A;
  --texto-2: #5C5C5C;        /* 6,4:1 no branco */
  --fundo: #FFFFFF;
  --fundo-2: #F5F5F3;
  --borda: #E5E5E5;
  --wa: #128C4A;             /* verde WhatsApp escurecido p/ contraste com texto branco (4,9:1) */
  --wa-esc: #0E6F3A;
  --ok: #1B7A3E; --erro: #B3261E;
  --raio: 12px; --raio-sm: 8px;
  --sombra: 0 1px 2px rgba(21,21,21,.06), 0 4px 16px rgba(21,21,21,.06);
  --sombra-2: 0 2px 4px rgba(21,21,21,.08), 0 12px 32px rgba(21,21,21,.10);
  --fonte: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fonte-tit: "Manrope", var(--fonte);
  --largura: 1200px;
  --topo-h: 72px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo-h) + 16px); }
body { margin: 0; font: 400 16px/1.6 var(--fonte); color: var(--texto); background: var(--fundo); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--acao); text-underline-offset: 3px; }
a:hover { color: var(--acao-esc); }
h1, h2, h3 { font-family: var(--fonte-tit); color: var(--preto); line-height: 1.2; letter-spacing: -.01em; margin: 0 0 .5em; }
h1 { font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem); font-weight: 800; }
h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.8rem); font-weight: 700; }
h3 { font-size: 1.1rem; font-weight: 700; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--acao); outline-offset: 2px; border-radius: 4px; }
.sr, .hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pular { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--preto); color: #fff; padding: 10px 16px; border-radius: var(--raio-sm); }
.pular:focus { top: 8px; }
main:focus { outline: none; }
.dica { color: var(--texto-2); font-size: .9rem; }
.pendente { background: #FFF4C2; border: 1px dashed #B58900; color: #5C4600; padding: 0 .35em; border-radius: 4px; }

/* botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 48px; padding: .7em 1.3em; border-radius: var(--raio-sm);
  font: 600 1rem/1.2 var(--fonte); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.btn-sm { min-height: 40px; padding: .45em .9em; font-size: .92rem; }
.btn-bloco { width: 100%; }
.btn-primario { background: var(--acao); color: #fff; }
.btn-primario:hover { background: var(--acao-esc); color: #fff; }
.btn-wa { background: var(--wa); color: #fff; }
.btn-wa:hover { background: var(--wa-esc); color: #fff; }
.btn-contorno { background: #fff; color: var(--grafite); border-color: var(--borda); }
.btn-contorno:hover { border-color: var(--grafite); color: var(--preto); }
.btn-claro { background: #fff; color: var(--vinho); }
.btn-claro:hover { background: var(--vinho-claro); color: var(--vinho-esc); }
.btn-contorno-claro { color: #fff; border-color: rgba(255,255,255,.7); background: transparent; }
.btn-contorno-claro:hover { background: rgba(255,255,255,.12); color: #fff; }
.btn-txt { background: none; border: 0; padding: .5em .25em; font: 500 .95rem var(--fonte); color: var(--grafite); display: inline-flex; gap: .4em; align-items: center; cursor: pointer; }
.btn-txt:hover { color: var(--acao); }
.link-mais { display: inline-flex; align-items: center; gap: .35em; font-weight: 600; text-decoration: none; white-space: nowrap; }
.link-mais .ico { width: 18px; height: 18px; }

/* topo */
.topo { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--borda); }
.topo-in { max-width: var(--largura); margin: 0 auto; padding: 0 16px; height: var(--topo-h); display: flex; align-items: center; gap: 24px; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--preto); flex: none; }
.marca img { height: 54px; width: auto; }
.marca-txt { display: flex; flex-direction: column; gap: 2px; line-height: 1.15; text-transform: uppercase; white-space: nowrap; }
.marca-txt strong { font: 800 1rem var(--fonte-tit); letter-spacing: .03em; color: var(--preto); }
.marca-txt span { font: 600 .78rem var(--fonte); letter-spacing: .06em; color: var(--texto-2); }
.menu { display: flex; align-items: center; gap: 20px; margin-left: auto; }
.menu ul { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.menu ul a { display: block; padding: 8px 10px; border-radius: 6px; color: var(--grafite); text-decoration: none; font-weight: 500; }
.menu ul a:hover { color: var(--acao); background: var(--vinho-claro); }
.menu ul a[aria-current] { color: var(--vinho); font-weight: 700; box-shadow: inset 0 -2px 0 var(--acao); border-radius: 0; }
.menu-acoes { display: flex; align-items: center; gap: 14px; }
.topo-tel { display: inline-flex; align-items: center; gap: 6px; color: var(--grafite); text-decoration: none; font-weight: 600; white-space: nowrap; }
.menu-btn { display: none; margin-left: auto; align-items: center; gap: 6px; background: none; border: 1px solid var(--borda); border-radius: var(--raio-sm); padding: 8px 12px; font: 600 .95rem var(--fonte); color: var(--grafite); min-height: 44px; }
@media (max-width: 1080px) {
  .menu-btn { display: inline-flex; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: var(--topo-h); background: #fff; border-bottom: 1px solid var(--borda);
    box-shadow: var(--sombra-2); flex-direction: column; align-items: stretch; padding: 8px 16px 20px; gap: 12px; max-height: calc(100dvh - var(--topo-h)); overflow: auto; }
  .menu.aberto { display: flex; }
  .menu ul { flex-direction: column; }
  .menu ul a { padding: 12px 8px; font-size: 1.05rem; }
  .menu ul a[aria-current] { box-shadow: inset 3px 0 0 var(--acao); }
  .menu-acoes { flex-direction: column; align-items: stretch; }
  .menu-acoes .btn { min-height: 48px; }
}

/* estrutura */
.secao, .pagina-cab, .busca-layout, .imovel, .contato-layout, .texto-pagina, .mapa-layout, .jornadas { max-width: var(--largura); margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; }
.secao { padding-top: 56px; padding-bottom: 8px; }
.secao-cinza { background: var(--fundo-2); max-width: none; padding-bottom: 56px; margin-top: 56px; }
.secao-cinza > * { max-width: calc(var(--largura) - 32px); margin-left: auto; margin-right: auto; }
.secao-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.secao-cab h2 { margin: 0; }
.secao-cab p { margin: .3em 0 0; color: var(--texto-2); }
.pagina-cab { padding-top: 24px; padding-bottom: 16px; }
.pagina-cab > p { color: var(--texto-2); max-width: 70ch; }
.migalhas ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: 0 0 16px; font-size: .88rem; color: var(--texto-2); }
.migalhas li + li::before { content: "›"; margin: 0 6px 0 2px; color: #999; }
.migalhas a { color: var(--texto-2); }
.migalhas a:hover { color: var(--acao); }

/* hero */
.hero { position: relative; min-height: min(78vh, 680px); display: flex; align-items: center; isolation: isolate; color: #fff; }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; z-index: -2; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(21,21,21,.86) 0%, rgba(21,21,21,.66) 45%, rgba(21,21,21,.2) 100%); }
.hero-credito { position: absolute; right: 12px; top: 8px; margin: 0; font-size: .72rem; color: rgba(255,255,255,.85); text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.hero-credito a { color: inherit; }
.hero-in { max-width: var(--largura); width: 100%; margin: 0 auto; padding: 56px 16px 64px; }
.hero h1 { color: #fff; max-width: 16ch; font-size: clamp(2rem, 1.3rem + 3vw, 3.4rem); }
.hero-sobre { text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 600; opacity: .9; }
.hero-sub { font-size: clamp(1.05rem, 1rem + .4vw, 1.25rem); max-width: 48ch; opacity: .95; }
.busca-rapida { background: #fff; color: var(--texto); border-radius: var(--raio); padding: 16px; box-shadow: var(--sombra-2); max-width: 860px; margin-top: 28px; }
.busca-campos { display: grid; grid-template-columns: 2fr 1fr auto; gap: 12px; align-items: end; }
.busca-rapida .campo { margin: 0; }
.btn-busca { min-height: 50px; }
.abas { display: flex; gap: 4px; margin-bottom: 12px; }
.abas label { cursor: pointer; }
.abas input { position: absolute; opacity: 0; }
.abas span { display: block; padding: 8px 16px; border-radius: 999px; font-weight: 600; color: var(--texto-2); }
.abas input:checked + span { background: var(--vinho); color: #fff; }
.abas input:focus-visible + span { outline: 3px solid var(--acao); outline-offset: 2px; }
@media (max-width: 760px) { .busca-campos { grid-template-columns: 1fr; } .hero { min-height: 0; } }

/* jornadas */
.jornadas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: -32px; position: relative; z-index: 2; }
.jornada { display: flex; align-items: center; gap: 14px; padding: 20px; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: var(--sombra); text-decoration: none; color: var(--texto); transition: border-color .15s, transform .15s; }
.jornada:hover { border-color: var(--acao); color: var(--texto); }
.jornada > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; }
.jornada strong { font: 700 1.08rem var(--fonte-tit); color: var(--preto); }
.jornada span span { color: var(--texto-2); font-size: .92rem; }
.jornada > .ico { color: var(--acao); }
.jornada-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--vinho-claro); color: var(--vinho); flex: none; }
.jornada-ico .ico { width: 24px; height: 24px; }
.jornada-dono { background: var(--vinho); border-color: var(--vinho); }
.jornada-dono strong, .jornada-dono span span, .jornada-dono > .ico { color: #fff; }
.jornada-dono .jornada-ico { background: rgba(255,255,255,.14); color: #fff; }
.jornada-dono:hover { background: var(--vinho-esc); }
@media (max-width: 860px) { .jornadas { grid-template-columns: 1fr; margin-top: 16px; } }

/* cards */
.grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.card[hidden] { display: none; }
@media (hover: hover) { .card:hover { box-shadow: var(--sombra-2); transform: translateY(-2px); } .card:hover .card-foto img { transform: scale(1.03); } }
.card:focus-within { box-shadow: 0 0 0 3px var(--acao); }
.card-foto { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--fundo-2); }
.card-foto img, .card-foto .sem-foto { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.selos { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.selo { font: 700 .72rem/1 var(--fonte); text-transform: uppercase; letter-spacing: .06em; padding: 6px 9px; border-radius: 4px; background: #fff; color: var(--preto); }
.selo-oportunidade { background: var(--acao); color: #fff; }
.selo-lancamento { background: var(--preto); color: #fff; }
.card-corpo { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 18px; }
.card-tipo { font-size: .82rem; color: var(--texto-2); margin: 0 0 4px; }
.cod { white-space: nowrap; }
.card-titulo { font-size: 1.05rem; margin: 0 0 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.link-card { color: var(--preto); text-decoration: none; }
.link-card::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.link-card:focus-visible { outline: none; }
.card-local { display: flex; align-items: center; gap: 4px; color: var(--texto-2); font-size: .92rem; margin: 0 0 10px; }
.card-local .ico { width: 16px; height: 16px; }
.card-preco { font: 800 1.35rem var(--fonte-tit); color: var(--vinho); margin: 0; }
.card-preco small, .preco-valor small { font-size: .6em; font-weight: 600; color: var(--texto-2); margin-left: 2px; }
.card-custos { font-size: .85rem; color: var(--texto-2); margin: 2px 0 0; }
.attrs { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 12px 0 0; margin: 12px 0 0; border-top: 1px solid var(--borda); font-size: .88rem; color: var(--grafite); }
.attrs li { display: flex; align-items: center; gap: 5px; }
.attrs .ico { width: 17px; height: 17px; color: var(--vinho); }
.card-acoes { margin-top: auto; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; }
.btn-ver { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--acao); font-size: .95rem; }
.btn-ver .ico { width: 18px; height: 18px; }
.btn-wa-ico { position: relative; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--wa); color: #fff; }
.btn-wa-ico:hover { background: var(--wa-esc); color: #fff; }
.sem-foto { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #8A8A8A; background: var(--fundo-2); font-size: .9rem; min-height: 180px; }
.sem-foto .ico { width: 36px; height: 36px; }

/* tipos e regiões */
.tipos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.tipos a { display: flex; flex-direction: column; gap: 4px; padding: 18px; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); text-decoration: none; color: var(--texto); height: 100%; }
.tipos a:hover { border-color: var(--acao); }
.tipos .ico { width: 28px; height: 28px; color: var(--vinho); margin-bottom: 6px; }
.tipos strong { font-family: var(--fonte-tit); color: var(--preto); }
.tipos span { font-size: .88rem; color: var(--texto-2); }
.regioes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.regiao { padding: 22px; border: 1px solid var(--borda); border-radius: var(--raio); background: #fff; }
.regiao h3 { font-size: 1.25rem; margin: 0 0 12px; }
.regiao h3 a { color: var(--preto); text-decoration: none; }
.regiao h3 a:hover { color: var(--acao); }
.regiao > p { color: var(--texto-2); margin: 2px 0 12px; font-size: .92rem; }
.regiao ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; }
.regiao li a { display: inline-block; padding: 5px 11px; border-radius: 999px; background: var(--fundo-2); color: var(--grafite); text-decoration: none; font-size: .88rem; }
.regiao li a:hover { background: var(--vinho-claro); color: var(--vinho); }
.regiao-mapa { display: flex; flex-direction: column; justify-content: center; gap: 4px; text-decoration: none; background: var(--vinho-claro); border-color: transparent; color: var(--vinho); }
.regiao-mapa .ico { width: 32px; height: 32px; }
.regiao-mapa strong { font: 700 1.2rem var(--fonte-tit); }
.regiao-mapa span { color: var(--texto-2); }

/* faixas */
.faixa-dono, .faixa-cta { max-width: calc(var(--largura) - 32px); margin: 64px auto 0; padding: 40px; border-radius: var(--raio); background: var(--vinho); color: #fff; display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.faixa-dono h2, .faixa-cta h2 { color: #fff; }
.faixa-dono p, .faixa-cta p { margin: 0; opacity: .92; max-width: 60ch; }
.faixa-cta { flex-direction: column; align-items: flex-start; }
.faixa-cta-interna { margin: 40px 0 0; max-width: none; }
.faixa-acoes { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 640px) { .faixa-dono, .faixa-cta { margin-left: 16px; margin-right: 16px; padding: 28px 20px; } .faixa-acoes .btn { width: 100%; } }
.sobre-breve { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; padding-bottom: 64px; }
.lema { font: 600 1.1rem/1.5 var(--fonte-tit); color: var(--vinho); border-left: 3px solid var(--acao); padding-left: 14px; }
.contato-cartao { display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--fundo-2); }
@media (max-width: 860px) { .sobre-breve { grid-template-columns: 1fr; } }

/* busca */
.busca-layout { display: grid; grid-template-columns: 290px 1fr; gap: 32px; align-items: start; padding-bottom: 56px; }
.filtros { position: sticky; top: calc(var(--topo-h) + 16px); max-height: calc(100vh - var(--topo-h) - 32px); overflow: auto; border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px; background: #fff; }
.filtros-cab { display: flex; justify-content: space-between; align-items: center; }
.filtros-cab h2 { font-size: 1.1rem; margin: 0 0 8px; }
.fechar { display: none; background: none; border: 0; padding: 10px; cursor: pointer; color: var(--grafite); }
.filtros-acoes { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.filtros-acoes [data-aplicar] { display: none; }
.resultados-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.contador { margin: 0; color: var(--texto-2); }
.contador strong { color: var(--preto); font-size: 1.1rem; }
.barra-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ordem { display: flex; align-items: center; gap: 6px; font-size: .92rem; color: var(--texto-2); }
.ordem select { min-height: 40px; padding: 6px 10px; }
.abrir-filtros { display: none; }
.filtros-ativos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.filtros-ativos:empty { display: none; }
.filtro-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--vinho-claro); color: var(--vinho); border: 0; border-radius: 999px; padding: 6px 10px 6px 12px; font: 500 .85rem var(--fonte); cursor: pointer; }
.filtro-chip .ico { width: 14px; height: 14px; }
.vazio { text-align: center; padding: 48px 16px; border: 1px dashed var(--borda); border-radius: var(--raio); }
.vazio .ico-g { width: 40px; height: 40px; color: var(--vinho); margin: 0 auto 8px; display: block; }
.vazio p { color: var(--texto-2); max-width: 56ch; margin: 0 auto 1em; }
.vazio-acoes { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.paginacao { display: flex; gap: 6px; justify-content: center; margin-top: 32px; flex-wrap: wrap; }
.paginacao a, .paginacao span { min-width: 44px; min-height: 44px; display: grid; place-items: center; border: 1px solid var(--borda); border-radius: var(--raio-sm); text-decoration: none; color: var(--grafite); padding: 0 12px; }
.paginacao [aria-current] { background: var(--vinho); color: #fff; border-color: var(--vinho); }
@media (max-width: 900px) {
  .busca-layout { grid-template-columns: 1fr; }
  .abrir-filtros { display: inline-flex; }
  .filtros { display: none; position: fixed; inset: 0; z-index: 60; max-height: none; border-radius: 0; border: 0; padding: 16px 16px 24px; }
  .filtros.aberto { display: block; }
  .fechar { display: block; }
  .filtros-acoes { position: sticky; bottom: -24px; background: #fff; padding: 12px 0; }
  .filtros-acoes [data-aplicar] { display: inline-flex; }
}

/* formulários */
.campo { margin: 0 0 14px; border: 0; padding: 0; min-width: 0; }
.campo label, .campo legend { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 6px; color: var(--grafite); padding: 0; }
input:not([type=radio]):not([type=checkbox]), select, textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #BDBDBD; border-radius: var(--raio-sm); font: 400 1rem var(--fonte); color: var(--texto); background: #fff; }
textarea { min-height: 110px; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--acao); outline-offset: 0; border-color: var(--acao); }
[aria-invalid="true"] { border-color: var(--erro) !important; }
.erro { color: var(--erro); font-size: .85rem; margin: 4px 0 0; }
.erro:empty { display: none; }
.obr { color: var(--acao); }
.campo-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 480px) { .campo-duplo { grid-template-columns: 1fr; } }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { cursor: pointer; }
.chip input { position: absolute; opacity: 0; }
.chip span { display: inline-block; padding: 7px 12px; border: 1px solid var(--borda); border-radius: 999px; font-size: .88rem; font-weight: 500; }
.chip input:checked + span { background: var(--vinho); border-color: var(--vinho); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--acao); outline-offset: 2px; }
.form-nota { font-size: .82rem; color: var(--texto-2); margin: 0 0 12px; }
.form-status { margin: 12px 0 0; font-weight: 600; }
.form-status.ok { color: var(--ok); }
.form-status.falha { color: var(--erro); }
.form-status:empty { display: none; }

/* imóvel */
.pagina-cab-imovel { padding-bottom: 0; }
.aviso-status { display: flex; gap: 8px; align-items: center; background: #FFF4C2; padding: 12px 16px; border-radius: var(--raio-sm); }
.galeria { margin-bottom: 28px; }
.galeria-palco { position: relative; border-radius: var(--raio); overflow: hidden; background: var(--preto); aspect-ratio: 16 / 9; max-height: 620px; width: 100%; }
.galeria-ampliar { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria-img { width: 100%; height: 100%; object-fit: contain; }
.lupa-zoom { position: absolute; right: 12px; top: 12px; background: rgba(21,21,21,.7); color: #fff; border-radius: 50%; width: 40px; height: 40px; display: grid; place-items: center; }
.galeria-nav { position: absolute; top: 50%; translate: 0 -50%; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--preto); display: grid; place-items: center; cursor: pointer; box-shadow: var(--sombra); }
.galeria-nav:hover { background: #fff; }
.galeria-nav.ant { left: 12px; } .galeria-nav.ant .ico { rotate: 180deg; }
.galeria-nav.prox { right: 12px; }
.galeria-cont { position: absolute; bottom: 12px; right: 12px; margin: 0; background: rgba(21,21,21,.75); color: #fff; font-size: .85rem; padding: 4px 10px; border-radius: 999px; }
.galeria-minis { list-style: none; display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px 4px; margin: 0; scroll-snap-type: x mandatory; }
.galeria-minis button { padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; width: 96px; height: 72px; cursor: pointer; scroll-snap-align: start; background: var(--fundo-2); opacity: .75; }
.galeria-minis button[aria-current] { border-color: var(--acao); opacity: 1; }
.galeria-minis img { width: 100%; height: 100%; object-fit: cover; }
.lightbox { border: 0; padding: 0; max-width: 100vw; max-height: 100dvh; width: 100vw; height: 100dvh; background: rgba(10,10,10,.96); color: #fff; }
.lightbox::backdrop { background: rgba(10,10,10,.9); }
.lightbox img { width: 100%; height: 100%; object-fit: contain; }
.lightbox .galeria-nav, .lightbox .lb-fechar { position: fixed; }
.lb-fechar { top: 12px; right: 12px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); display: grid; place-items: center; cursor: pointer; }
.lightbox .galeria-cont { position: fixed; bottom: 16px; left: 50%; right: auto; translate: -50% 0; }
.imovel-grade { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; }
.imovel-cab h1 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem); margin: 10px 0 8px; }
.selos-inline { position: static; }
.selos-inline .selo-fin { background: var(--fundo-2); }
.imovel-local { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; color: var(--texto-2); }
.imovel-local .ico { width: 18px; height: 18px; margin-right: -8px; }
.imovel-local .cod { background: var(--fundo-2); padding: 2px 10px; border-radius: 999px; font-size: .88rem; font-weight: 600; color: var(--grafite); }
.resumo { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 20px 0 28px; }
.resumo li { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--borda); border-radius: var(--raio-sm); font-weight: 500; }
.resumo .ico { color: var(--vinho); }
.imovel-principal section { margin-bottom: 32px; }
.imovel-principal h2 { font-size: 1.35rem; padding-bottom: 8px; border-bottom: 1px solid var(--borda); }
.descricao { max-width: 72ch; }
.descricao h3 { font-size: 1.05rem; margin-top: 1.2em; }
.descricao ul { padding-left: 1.2em; }
.lista-carac { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px 16px; padding: 0; }
.lista-carac li { display: flex; gap: 8px; align-items: center; }
.lista-carac .ico { color: var(--ok); width: 18px; height: 18px; }
.mapa-mini { height: 320px; border-radius: var(--raio); border: 1px solid var(--borda); background: var(--fundo-2); z-index: 0; }
.imovel-lateral { position: sticky; top: calc(var(--topo-h) + 16px); display: flex; flex-direction: column; gap: 20px; }
.caixa-preco, .caixa-form { border: 1px solid var(--borda); border-radius: var(--raio); padding: 22px; background: #fff; box-shadow: var(--sombra); }
.caixa-preco { display: flex; flex-direction: column; gap: 10px; }
.preco-rotulo { margin: 0; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; font-weight: 700; color: var(--texto-2); }
.preco-valor { margin: 0 0 4px; font: 800 2rem/1.1 var(--fonte-tit); color: var(--vinho); }
.custos { margin: 0 0 6px; border-top: 1px solid var(--borda); padding-top: 8px; }
.custos div { display: flex; justify-content: space-between; padding: 4px 0; font-size: .95rem; }
.custos dt { color: var(--texto-2); } .custos dd { margin: 0; font-weight: 600; }
.custos .total { border-top: 1px solid var(--borda); margin-top: 4px; padding-top: 8px; }
.acoes-sec { display: flex; justify-content: space-around; border-top: 1px solid var(--borda); padding-top: 6px; }
.compartilhar-menu { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; font-size: .92rem; }
.compartilhar-menu[hidden] { display: none; }
.compartilhar-menu a { padding: 6px 10px; border: 1px solid var(--borda); border-radius: 999px; text-decoration: none; color: var(--grafite); }
.caixa-form h2 { font-size: 1.2rem; margin-bottom: 4px; }
.form-ref { font-size: .9rem; color: var(--texto-2); }
.ficha-impressao { display: none; }
@media (max-width: 960px) { .imovel-grade { grid-template-columns: 1fr; } .imovel-lateral { position: static; } .galeria-palco { aspect-ratio: 4 / 3; } }
@media (max-width: 640px) { .galeria { margin-left: -16px; margin-right: -16px; } .galeria-palco { border-radius: 0; } .galeria-minis { padding-left: 16px; } }

/* mapa */
.mapa-layout { display: grid; grid-template-columns: 260px 1fr; gap: 24px; padding-bottom: 32px; }
.mapa-grande { height: min(72vh, 680px); min-height: 420px; border-radius: var(--raio); border: 1px solid var(--borda); background: var(--fundo-2); z-index: 0; }
.mapa-carregando { padding: 24px; color: var(--texto-2); }
.pop-lista { list-style: none; margin: 0; padding: 0; max-height: 260px; overflow: auto; min-width: 220px; }
.pop-lista li + li { border-top: 1px solid var(--borda); }
.pop-lista a { display: flex; gap: 10px; padding: 8px 0; text-decoration: none; color: var(--texto); }
.pop-lista img { width: 72px; height: 54px; object-fit: cover; border-radius: 4px; flex: none; }
.pop-lista strong { display: block; color: var(--vinho); font-family: var(--fonte-tit); }
.pop-titulo { font: 700 .95rem var(--fonte-tit); margin: 0 0 4px; }
.pop-aviso { font-size: .78rem; color: var(--texto-2); margin: 6px 0 0 !important; }
.marcador { background: var(--acao); color: #fff; border: 2px solid #fff; border-radius: 50%; display: grid; place-items: center; font: 700 .85rem var(--fonte); box-shadow: 0 2px 6px rgba(0,0,0,.35); }
@media (max-width: 860px) { .mapa-layout { grid-template-columns: 1fr; } .mapa-filtros { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; } .mapa-grande { height: 60vh; } }

/* páginas de texto e contato */
.texto-pagina { padding-bottom: 64px; }
.texto-pagina > * { max-width: 900px; }
.texto-pagina section { margin-bottom: 36px; }
.sobre-intro { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; align-items: start; }
.sobre-foto { border-radius: var(--raio); min-height: 240px; }
.servicos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.servicos li { padding: 20px; border: 1px solid var(--borda); border-radius: var(--raio); }
.servicos .ico { width: 28px; height: 28px; color: var(--vinho); }
.servicos h3 { margin: 10px 0 4px; }
.servicos p { margin: 0; color: var(--texto-2); font-size: .95rem; }
.passos { padding-left: 1.3em; }
.passos li { margin-bottom: 10px; }
.links-uteis { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.links-uteis a { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border: 1px solid var(--borda); border-radius: var(--raio); text-decoration: none; color: var(--preto); font-weight: 600; }
.links-uteis a:hover { border-color: var(--acao); }
.contato-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: start; padding-bottom: 64px; }
.contato-info h2 { font-size: 1.2rem; }
.contato-lista { margin-bottom: 20px; }
.contato-lista span { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); }
.contato-lista address { font-style: normal; }
@media (max-width: 860px) { .contato-layout, .sobre-intro { grid-template-columns: 1fr; } }
.pagina-404 { text-align: center; padding: 72px 16px; }
.pagina-404 > p { margin-inline: auto; }
.busca-404 { max-width: 480px; margin: 24px auto; text-align: left; }
.busca-404 div { display: flex; gap: 8px; }

/* rodapé */
.rodape { background: var(--preto); color: #D6D6D6; margin-top: 72px; font-size: .95rem; }
.rodape-in { max-width: var(--largura); margin: 0 auto; padding: 48px 16px 32px; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.4fr; gap: 32px; }
.rodape h2 { color: #fff; font-size: 1rem; margin-bottom: 12px; }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: 8px; }
.rodape a { color: #D6D6D6; text-decoration: none; }
.rodape a:hover { color: #fff; text-decoration: underline; }
.rodape-marca { display: flex; gap: 14px; align-items: flex-start; }
.rodape-marca img { width: 64px; flex: none; }
.rodape-nome { color: #fff; font: 800 1rem/1.2 var(--fonte-tit); letter-spacing: .03em; text-transform: uppercase; margin-bottom: 8px; }
.rodape-nome span { display: block; margin-top: 2px; font: 600 .78rem var(--fonte); letter-spacing: .06em; color: #BDBDBD; }
.rodape-contato li { display: flex; gap: 10px; align-items: flex-start; }
.rodape-contato .ico { margin-top: 3px; color: #C98F95; }
.contato-lista .ico { color: var(--vinho); }
.rodape-base { border-top: 1px solid #333; max-width: var(--largura); margin: 0 auto; padding: 16px; font-size: .82rem; color: #A8A8A8; }
@media (max-width: 900px) { .rodape-in { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape-in { grid-template-columns: 1fr; } }

/* Corretor Online */
.chat-botao { position: fixed; right: 16px; bottom: 16px; z-index: 50; display: flex; align-items: center; gap: 8px; padding: 12px 18px 12px 14px; border-radius: 999px; border: 0; background: var(--vinho); color: #fff; font: 600 .95rem var(--fonte); box-shadow: var(--sombra-2); cursor: pointer; }
.chat-botao:hover { background: var(--vinho-esc); }
.chat-painel { position: fixed; right: 16px; bottom: 16px; z-index: 70; width: min(380px, calc(100vw - 32px)); height: min(600px, calc(100dvh - 32px)); background: #fff; border-radius: var(--raio); box-shadow: 0 12px 48px rgba(0,0,0,.25); display: flex; flex-direction: column; overflow: hidden; }
.chat-painel[hidden] { display: none; }
.chat-cab { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: var(--vinho); color: #fff; }
.chat-cab h2 { color: #fff; font-size: 1rem; margin: 0; }
.chat-cab p { margin: 0; font-size: .78rem; opacity: .9; }
.chat-cab button { margin-left: auto; background: none; border: 0; color: #fff; padding: 8px; cursor: pointer; }
.chat-log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--fundo-2); }
.msg { max-width: 88%; padding: 10px 13px; border-radius: 14px; font-size: .93rem; line-height: 1.45; }
.msg p { margin: 0 0 .4em; } .msg p:last-child { margin: 0; }
.msg-bot { background: #fff; border: 1px solid var(--borda); border-bottom-left-radius: 4px; align-self: flex-start; }
.msg-eu { background: var(--vinho); color: #fff; border-bottom-right-radius: 4px; align-self: flex-end; }
.msg-cards { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 8px; }
.msg-cards a { display: flex; gap: 10px; text-decoration: none; color: var(--texto); border: 1px solid var(--borda); border-radius: var(--raio-sm); padding: 6px; }
.msg-cards img { width: 64px; height: 48px; object-fit: cover; border-radius: 4px; flex: none; }
.msg-cards strong { display: block; color: var(--vinho); }
.msg-cards span { font-size: .82rem; color: var(--texto-2); }
.chat-opcoes { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 16px 16px; border-top: 1px solid var(--borda); }
.chat-opcoes button, .chat-opcoes a { border: 1px solid var(--vinho); color: var(--vinho); background: #fff; border-radius: 999px; padding: 8px 13px; font: 600 .88rem var(--fonte); cursor: pointer; text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; gap: 6px; }
.chat-opcoes button:hover, .chat-opcoes a:hover { background: var(--vinho); color: #fff; }
.chat-opcoes .op-wa { border-color: var(--wa); color: var(--wa); }
.chat-opcoes .op-wa:hover { background: var(--wa); color: #fff; }
@media (max-width: 480px) { .chat-painel { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; } .chat-botao span { display: none; } .chat-botao { padding: 14px; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* impressão: ficha do imóvel */
@media print {
  .topo, .rodape, .migalhas, .galeria-minis, .galeria-nav, .galeria-cont, .lupa-zoom, .caixa-form, .acoes-sec, .compartilhar-menu, .btn, .mapa-mini,
  .secao, .faixa-cta, #chat-raiz, .pular, .chat-botao, .chat-painel { display: none !important; }
  body { font-size: 11pt; color: #000; }
  .imovel-grade { display: block; }
  .galeria-palco { aspect-ratio: auto; max-height: 9cm; background: none; }
  .galeria-img { object-fit: contain; max-height: 9cm; width: auto; margin: 0 auto; }
  .caixa-preco { box-shadow: none; border: 1px solid #999; margin: 12px 0; }
  .imovel-lateral { position: static; }
  .ficha-impressao { display: flex !important; gap: 12px; align-items: center; border-top: 1px solid #999; padding-top: 10px; margin-top: 16px; }
  .ficha-impressao img { width: 50px; height: auto; }
  a { color: #000; text-decoration: none; }
  section { break-inside: avoid; }
}
