/* ==========================================================================
   Site de imóveis — Matheus Ferezin
   Cores, fontes e tamanhos vêm do painel (variáveis aplicadas por dados-api.js).
   ========================================================================== */
@font-face { font-family: 'Gilda Display'; src: url(fontes/gilda-display.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap }
@font-face { font-family: 'Montserrat'; src: url(fontes/montserrat.woff2) format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap }

:root {
  --fundo: #f5f1ea; --papel: #f5f1ea; --cartao: #fff; --texto: #0f1915; --texto-2: #5e6660; --linha: #e0d9cc; --suave: #ece6db;
  --tinta: #0f1915; --tinta-2: #0a100e; --sobre-tinta: #f1ece2; --sobre-tinta-2: #a7aba3; --linha-tinta: #2a3530;
  --destaque: #bf9b5a; --sobre-destaque: #0f1915; --destaque-texto: #9a7736; --destaque-tinta: #cfae70;
  --f-titulo: 'Gilda Display', Georgia, serif; --f-texto: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --fs: 15px; --t-escala: 1; --raio: 0px;
  --max: 1320px; --pad: clamp(20px, 4.4vw, 64px); --topo-h: 88px; --barra-h: 38px;
  --sombra: 0 1px 2px rgba(15,25,21,.05), 0 24px 48px -28px rgba(15,25,21,.35);
  --sombra-forte: 0 2px 4px rgba(15,25,21,.06), 0 40px 70px -30px rgba(15,25,21,.5);
  --ease: cubic-bezier(.22,.7,.2,1);
  --marca-op: .22; --marca-tam: 34%; --marca-pos: center; --marca-rep: no-repeat;
}
*, *::before, *::after { box-sizing: border-box }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 110px }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 400 var(--fs)/1.75 var(--f-texto); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-synthesis: none; font-variant-numeric: lining-nums }
body.carregando header.topo, body.carregando footer.rodape { visibility: hidden }
img { max-width: 100%; display: block }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .25em }
button, input, select, textarea { font: inherit; color: inherit }
button { cursor: pointer }
h1, h2, h3 { font-family: var(--f-titulo); font-weight: 400; line-height: 1.06; letter-spacing: 0; margin: 0; text-wrap: balance }
p { margin: 0 }
:focus-visible { outline: 2px solid var(--destaque); outline-offset: 3px }
.sr, .pular:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }
.pular:focus { position: fixed; top: 10px; left: 10px; z-index: 99; background: var(--tinta); color: var(--sobre-tinta); padding: 10px 16px }
.ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round }
.muted { color: var(--texto-2); font-size: .92em }
.link { background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: .25em; color: var(--texto-2) }

/* Sobretítulo dourado, com fio antes */
.sobre-t { display: flex; align-items: center; gap: 14px; font: 600 11px/1.4 var(--f-texto); letter-spacing: .3em; text-transform: uppercase; color: var(--destaque-texto) }
.sobre-t::before { content: ""; width: 34px; height: 1px; background: currentColor; flex: none }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 14px 30px; border: 1px solid transparent; border-radius: var(--raio); font: 600 11.5px/1.2 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; text-decoration: none; transition: background .35s var(--ease), color .35s var(--ease), border-color .35s, box-shadow .35s; white-space: nowrap; position: relative }
.btn .ico { width: 18px; height: 18px }
.btn-destaque { background: var(--destaque); color: var(--sobre-destaque); --zap-fundo: var(--destaque); box-shadow: 0 12px 28px -14px color-mix(in srgb, var(--destaque) 80%, transparent) }
.btn-destaque:hover { background: color-mix(in srgb, var(--destaque) 86%, #000); color: var(--sobre-destaque) }
.btn-contorno { border-color: color-mix(in srgb, currentColor 45%, transparent); background: transparent }
.btn-contorno:hover { border-color: var(--destaque); background: var(--destaque); color: var(--sobre-destaque); --zap-fundo: var(--destaque) }
.btn-claro { background: rgba(255,255,255,.95); color: #141b18; --zap-fundo: #fff }
.btn-claro:hover { background: #fff }
.btn-bloco { width: 100% }
.btn:disabled { opacity: .55; cursor: wait }
.link-seta { display: inline-flex; align-items: center; gap: 12px; font: 600 11.5px/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--destaque-texto); padding: 8px 0; border-bottom: 1px solid currentColor; white-space: nowrap }
.link-seta .ico { width: 18px; height: 18px; transition: transform .35s var(--ease) }
.link-seta:hover .ico { transform: translateX(5px) }
.ico-zap { --zap-fundo: var(--fundo) }

/* ---------- Cabeçalho ---------- */
header.topo { position: sticky; top: 0; z-index: 40; background: var(--tinta); color: var(--sobre-tinta); transition: background .4s, box-shadow .4s }
body.rolou header.topo { box-shadow: 0 10px 30px -18px rgba(0,0,0,.6) }
html[data-cabecalho=normal] header.topo { position: relative }
body.topo-sobre-hero header.topo { position: fixed; left: 0; right: 0; background: linear-gradient(180deg, rgba(8,13,11,.72), transparent) }
body.topo-sobre-hero.rolou header.topo { background: color-mix(in srgb, var(--tinta) 96%, transparent); backdrop-filter: blur(10px) }
body.topo-sobre-hero.rolou .topo-barra { margin-top: calc(var(--barra-h) * -1) }
.topo-barra { height: var(--barra-h); border-bottom: 1px solid rgba(255,255,255,.08); font-size: 12px; letter-spacing: .04em; color: var(--sobre-tinta-2); transition: margin .4s var(--ease); overflow: hidden }
body:not(.topo-sobre-hero) .topo-barra { background: var(--tinta-2) }
.topo-barra-in { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px }
.topo-barra p { display: flex; gap: 28px; align-items: center }
.topo-barra a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none } .topo-barra a:hover { color: var(--sobre-tinta) }
.topo-barra .ico { width: 14px; height: 14px; color: var(--destaque-tinta) }
.topo-barra .redes { margin: 0; gap: 2px } .topo-barra .redes a { width: 30px; height: 30px; border: 0; color: var(--sobre-tinta-2) } .topo-barra .redes a:hover { background: none; color: var(--destaque-tinta) } .topo-barra .redes .ico { width: 15px; height: 15px }
.topo-in { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); height: var(--topo-h); display: flex; align-items: center; gap: 36px; transition: height .4s var(--ease) }
body.rolou .topo-in { height: 74px }
.logo { display: flex; align-items: center; text-decoration: none; flex: none; margin-right: auto; color: inherit }
.logo-img { max-height: 58px; max-width: 250px; width: auto; object-fit: contain }
.logo-texto { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 16px; align-items: center }
.logo-simbolo { grid-row: 1 / 3; width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid var(--destaque); font: 400 22px/1 var(--f-titulo); color: var(--destaque-tinta); letter-spacing: .04em; position: relative }
.logo-simbolo::after { content: ""; position: absolute; inset: 4px; border: 1px solid color-mix(in srgb, var(--destaque) 40%, transparent) }
.logo-nome { font: 400 26px/1 var(--f-titulo); letter-spacing: .02em }
.logo-prof { font: 500 10px/1.6 var(--f-texto); letter-spacing: .32em; text-transform: uppercase; color: var(--destaque-tinta); margin-top: 4px }
.menu ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0 }
.menu a { position: relative; white-space: nowrap; text-decoration: none; font: 500 11.5px/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; padding: 10px 0; color: color-mix(in srgb, var(--sobre-tinta) 88%, transparent) }
.menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--destaque); transform: scaleX(0); transition: transform .4s var(--ease) }
.menu a:hover, .menu a[aria-current] { color: var(--sobre-tinta) }
.menu a:hover::after, .menu a[aria-current]::after { transform: none }
.topo-acoes { display: flex; align-items: center; gap: 12px }
.btn-salvos { position: relative; width: 44px; height: 44px; display: grid; place-items: center; text-decoration: none; color: inherit }
.btn-salvos .n { position: absolute; top: 4px; right: 1px; font-size: 10px; font-weight: 700; min-width: 17px; height: 17px; border-radius: 9px; background: var(--destaque); color: var(--sobre-destaque); display: grid; place-items: center; padding: 0 4px }
.btn-salvos .n:empty { display: none }
.btn-zap-topo { min-height: 46px; padding: 10px 22px }
.menu-btn { display: none; width: 44px; height: 44px; border: 0; background: none; position: relative; color: inherit }
.menu-btn span:first-child, .menu-btn span:first-child::before, .menu-btn span:first-child::after { position: absolute; left: 10px; width: 24px; height: 1.5px; background: currentColor; transition: transform .3s }
.menu-btn span:first-child { top: 21px }
.menu-btn span:first-child::before, .menu-btn span:first-child::after { content: ""; left: 0 }
.menu-btn span:first-child::before { top: -7px } .menu-btn span:first-child::after { top: 7px }
.menu-btn[aria-expanded=true] span:first-child { background: transparent }
.menu-btn[aria-expanded=true] span:first-child::before { transform: translateY(7px) rotate(45deg) }
.menu-btn[aria-expanded=true] span:first-child::after { transform: translateY(-7px) rotate(-45deg) }
.menu-cel { padding: 10px var(--pad) 32px; background: var(--tinta); max-height: calc(100svh - var(--topo-h)); overflow: auto; border-top: 1px solid var(--linha-tinta) }
.menu-cel ul { list-style: none; padding: 0; margin: 0 0 24px }
.menu-cel a:not(.btn) { display: block; padding: 14px 0; border-bottom: 1px solid var(--linha-tinta); font: 400 28px/1.2 var(--f-titulo); text-decoration: none }
.menu-cel .btn { width: 100% }
@media (max-width: 1260px) { .menu { display: none } .menu-btn { display: block } .topo-barra p span { display: none } }
@media (max-width: 620px) { .btn { white-space: normal; text-align: center; padding-left: 20px; padding-right: 20px } .topo-in { gap: 8px } .topo-acoes { gap: 2px } :root { --topo-h: 70px; --barra-h: 0px } .topo-barra { display: none } .logo-simbolo { width: 40px; height: 40px; font-size: 18px } .logo-nome { font-size: 21px } .logo-prof { font-size: 8.5px; letter-spacing: .26em } .btn-zap-topo { display: none } .logo-img { max-height: 44px; max-width: 180px } }

/* ---------- Blocos ---------- */
.bl { padding: clamp(72px, 9vw, 136px) 0; background: var(--fundo); color: var(--texto); position: relative }
.bl-in { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad) }
.bl[data-espaco=compacto] { padding: clamp(44px, 5vw, 72px) 0 }
.bl[data-espaco=amplo] { padding: clamp(96px, 12vw, 176px) 0 }
.bl[data-espaco=nenhum] { padding: 0 }
.bl[data-fundo=suave] { background: var(--suave) }
.bl[data-fundo=escuro] { --fundo: var(--tinta); --texto: var(--sobre-tinta); --texto-2: var(--sobre-tinta-2); --linha: var(--linha-tinta); --destaque-texto: var(--destaque-tinta); --cartao: color-mix(in srgb, var(--tinta) 90%, #fff); --suave: color-mix(in srgb, var(--tinta) 92%, #fff); background: var(--tinta) }
.bl[data-fundo=escuro]::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(1000px 500px at 85% 0%, color-mix(in srgb, var(--destaque) 10%, transparent), transparent 70%), radial-gradient(800px 400px at 0% 100%, rgba(255,255,255,.03), transparent 70%) }
.bl[data-fundo=escuro] > .bl-in { position: relative }
.bl[data-fundo=destaque] { --fundo: var(--destaque); --texto: var(--sobre-destaque); --texto-2: color-mix(in srgb, var(--sobre-destaque) 72%, var(--destaque)); --linha: color-mix(in srgb, var(--sobre-destaque) 25%, var(--destaque)); --destaque-texto: var(--sobre-destaque) }
.bl[data-fundo=destaque] .btn-destaque { background: var(--sobre-destaque); color: var(--destaque) }
@media (max-width: 760px) { .bl[data-ocultar=celular] { display: none } }
@media (min-width: 761px) { .bl[data-ocultar=computador] { display: none } }
.bl-cabeca { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 48px; margin-bottom: clamp(40px, 5vw, 68px) }
.bl-tit { display: grid; gap: 18px; max-width: 760px }
.bl-cabeca h2, .pg-cabeca h1 { font-size: calc(clamp(40px, 4.6vw, 68px) * var(--t-escala)); font-weight: 400 }
.bl-texto { color: var(--texto-2); max-width: 58ch; font-size: 1.02em }
.bl-extra { display: flex; align-items: center; gap: 22px }
.bl-depoimentos .bl-cabeca, .bl-faq .bl-cabeca, .bl-numeros .bl-cabeca { justify-content: center; text-align: center }
.bl-depoimentos .bl-tit, .bl-faq .bl-tit, .bl-numeros .bl-tit { justify-items: center }
.bl-depoimentos .sobre-t::after, .bl-faq .sobre-t::after, .bl-numeros .sobre-t::after, .chamada .sobre-t::after { content: ""; width: 34px; height: 1px; background: currentColor }
.setas { display: flex; gap: 10px }
.setas button { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--linha); background: transparent; color: var(--texto); display: grid; place-items: center; transition: .3s }
.setas button:hover { border-color: var(--destaque); background: var(--destaque); color: var(--sobre-destaque) }
.vazio { text-align: center; color: var(--texto-2); padding: 56px 0; display: grid; gap: 22px; justify-items: center }
.vazio h1 { color: var(--texto); font-size: 42px }
.espaco { display: grid; align-items: center } .espaco hr { width: 100%; border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--destaque), transparent); margin: 0; opacity: .6 }

/* ---------- Topo (hero) ---------- */
.bl-topo { padding: 0 } .bl-topo > .bl-in { max-width: none; padding: 0 }
.hero { position: relative; color: #f4efe6; background: var(--tinta-2) }
.hero-fotos { position: absolute; inset: 0; overflow: hidden }
.hero-fotos .slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s ease; visibility: hidden }
.hero-fotos .slide.on { opacity: 1; visibility: visible }
.hero-fotos img, .hero-sem-foto { width: 100%; height: 100%; object-fit: cover; display: block }
.hero-sem-foto { background: radial-gradient(circle at 70% 30%, color-mix(in srgb, var(--destaque) 30%, var(--tinta)), var(--tinta-2)) }
.hero-fotos .slide.on img { animation: kenburns 16s ease-out both }
@keyframes kenburns { from { transform: scale(1.12) translate(1%, 1%) } to { transform: scale(1) translate(0, 0) } }
html[data-anim=off] .hero-fotos .slide.on img { animation: none }
.hero-cinema { min-height: max(680px, 100svh); display: flex; flex-direction: column }
html[data-hero-altura=media] .hero-cinema { min-height: 720px }
.hero-veu { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,13,11,.82) 0%, rgba(8,13,11,.45) 45%, rgba(8,13,11,.1) 75%), linear-gradient(0deg, rgba(8,13,11,.85) 0%, transparent 42%), linear-gradient(180deg, rgba(8,13,11,.5), transparent 25%) }
.hero-conteudo { position: relative; flex: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: calc(var(--topo-h) + var(--barra-h) + 60px) var(--pad) 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px }
.hero-texto { max-width: 780px; animation: surge 1.4s var(--ease) both }
@keyframes surge { from { opacity: 0; transform: translateY(28px) } to { opacity: 1; transform: none } }
html[data-anim=off] .hero-texto { animation: none }
.hero .sobre-t { color: var(--destaque-tinta); margin-bottom: 26px }
.hero h1 { font-size: calc(clamp(48px, 6.4vw, 104px) * var(--t-escala)); line-height: .98; font-weight: 500; letter-spacing: -.005em; text-shadow: 0 2px 30px rgba(0,0,0,.25) }
.hero-sub { margin-top: 28px; font-size: 1.08em; line-height: 1.7; color: rgba(244,239,230,.82); max-width: 52ch }
.hero-legendas { position: relative; width: 340px; min-height: 150px }
.legenda { position: absolute; inset: auto 0 0 0; display: grid; gap: 6px; padding: 22px 24px; background: rgba(12,19,16,.55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.12); border-left: 2px solid var(--destaque); text-decoration: none; opacity: 0; transform: translateY(12px); transition: opacity .8s, transform .8s var(--ease); pointer-events: none; margin-bottom: 64px }
.legenda.on { opacity: 1; transform: none; pointer-events: auto }
.legenda small { font: 600 10.5px/1.4 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; color: var(--destaque-tinta) }
.legenda b { font: 400 26px/1.15 var(--f-titulo) }
.legenda > span { display: flex; justify-content: space-between; align-items: center; font-size: 14px; font-weight: 500; margin-top: 4px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.14) }
.legenda .ico { color: var(--destaque-tinta); transition: transform .35s var(--ease) } .legenda:hover .ico { transform: translateX(5px) }
.hero-ctrl { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px }
.hero-ctrl button { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; display: grid; place-items: center; transition: .3s }
.hero-ctrl button:hover { background: var(--destaque); border-color: var(--destaque); color: var(--sobre-destaque) }
.hero-conta { font: 400 15px var(--f-texto); letter-spacing: .12em; color: rgba(255,255,255,.6) } .hero-conta b { font: 400 26px var(--f-titulo); color: #fff; letter-spacing: 0 }
.hero-cinema .hero-busca { position: relative; width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--pad) 56px }
.hero-dividido { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); min-height: max(640px, calc(100svh - var(--topo-h) - var(--barra-h))) }
html[data-hero-altura=media] .hero-dividido { min-height: 620px }
.hero-painel { display: flex; flex-direction: column; justify-content: center; gap: 44px; padding: 72px clamp(24px, 5vw, 80px); background: var(--tinta); position: relative }
.hero-painel::after { content: ""; position: absolute; top: 40px; bottom: 40px; right: -1px; width: 1px; background: linear-gradient(transparent, var(--destaque), transparent) }
.hero-dividido h1 { font-size: calc(clamp(44px, 4.8vw, 80px) * var(--t-escala)) }
.hero-lado { position: relative; min-height: 420px }
.hero-lado .hero-legendas { position: absolute; right: 32px; bottom: 32px; z-index: 2 }
.hero-lado .legenda { margin-bottom: 64px }
@media (max-width: 980px) {
  .hero-conteudo { grid-template-columns: 1fr; padding-bottom: 32px } .hero-legendas { width: 100%; max-width: 420px; min-height: 140px }
  .hero-dividido { grid-template-columns: 1fr } .hero-lado { min-height: 60vw; order: -1 } .hero-painel { padding: 48px var(--pad) } .hero-painel::after { display: none }
}
@media (max-width: 620px) { .hero h1 { font-size: calc(46px * var(--t-escala)) } .hero-legendas { display: none } .hero-cinema .hero-busca { padding-bottom: 28px } .hero-conteudo { padding-top: calc(var(--topo-h) + 40px) } }

/* ---------- Busca ---------- */
.busca { background: rgba(10,16,13,.62); backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2); border: 1px solid rgba(255,255,255,.14); color: #f4efe6; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6) }
.hero-dividido .busca { background: rgba(255,255,255,.04) }
.busca-abas { display: flex; gap: 6px; padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.12); overflow-x: auto; scrollbar-width: none }
.busca-abas label { position: relative; cursor: pointer }
.busca-abas input { position: absolute; opacity: 0 }
.busca-abas span { display: block; padding: 18px 16px 16px; font: 600 11px/1 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: rgba(244,239,230,.6); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: .3s; white-space: nowrap }
.busca-abas input:checked + span { color: #fff; border-color: var(--destaque) }
.busca-abas input:focus-visible + span { outline: 2px solid var(--destaque) }
.busca-campos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(200px, auto); align-items: stretch }
.busca-campos label { display: grid; gap: 4px; padding: 20px 24px; border-right: 1px solid rgba(255,255,255,.12); min-width: 0; cursor: pointer }
.busca-campos label span { font: 600 10px/1.3 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; color: var(--destaque-tinta) }
.busca-campos select { border: 0; background: transparent; padding: 2px 18px 2px 0; font: 400 19px/1.3 var(--f-titulo); width: 100%; appearance: none; -webkit-appearance: none; cursor: pointer; color: inherit; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-size: 5px 5px; background-position: right 5px center, right 0 center; background-repeat: no-repeat; text-overflow: ellipsis }
.busca-campos select option { color: #111 }
.busca-campos .btn { margin: 12px; min-height: auto }
.busca-codigo { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(244,239,230,.55) }
.busca-codigo input { flex: 1; border: 0; background: transparent; padding: 6px 0; font-size: 14px; color: #fff; min-height: 0 }
.busca-codigo input::placeholder { color: rgba(244,239,230,.45) }
.busca-codigo input:focus { outline: none }
.hero-busca, .hero-painel { container-type: inline-size }
@container (max-width: 820px) { .busca-campos { grid-template-columns: 1fr 1fr } .busca-campos label:nth-child(2) { border-right: 0 } .busca-campos label:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12) } .busca-campos .btn { min-height: 54px } }
@container (max-width: 460px) { .busca-campos { grid-template-columns: 1fr } .busca-campos label { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); padding: 14px 20px } }

/* ---------- Fotos e marca d'água ---------- */
.foto-m { position: relative; container-type: inline-size; overflow: hidden; display: block }
html[data-marca=img] .foto-m::after { content: ""; position: absolute; inset: 0; background: var(--marca-img) var(--marca-pos) / var(--marca-tam) auto var(--marca-rep); opacity: var(--marca-op); pointer-events: none; z-index: 2 }
html[data-marca=texto] .foto-m::after { content: attr(data-marca); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 6%; font-family: var(--f-titulo); font-weight: 400; line-height: 1; font-size: max(12px, calc(var(--marca-tam) / 100 * 16cqw)); color: #fff; opacity: var(--marca-op); text-shadow: 0 1px 12px rgba(0,0,0,.35); pointer-events: none; z-index: 2; white-space: nowrap }
html[data-marca=texto][data-marca-pos=inf-dir] .foto-m::after { align-items: flex-end; justify-content: flex-end }
html[data-marca=texto][data-marca-pos=inf-esq] .foto-m::after { align-items: flex-end; justify-content: flex-start }
html[data-marca=texto][data-marca-pos=sup-dir] .foto-m::after { align-items: flex-start; justify-content: flex-end }
html[data-marca=texto][data-marca-pos=sup-esq] .foto-m::after { align-items: flex-start; justify-content: flex-start }
.sem-foto { display: grid; place-content: center; justify-items: center; gap: 10px; height: 100%; min-height: 160px; background: linear-gradient(135deg, var(--suave), color-mix(in srgb, var(--suave) 70%, var(--destaque))); color: var(--texto-2); font-size: 12px; letter-spacing: .14em; text-transform: uppercase }
.sem-foto .ico { width: 38px; height: 38px; stroke-width: 1 }

/* ---------- Etiquetas ---------- */
.tags { position: absolute; top: 16px; left: 16px; z-index: 3; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 80px) }
.tag { --tag: var(--tinta); display: inline-block; background: var(--tag); color: #fff; font: 600 10px/1 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; padding: 8px 11px }
.tag-estagio { background: var(--destaque); color: var(--sobre-destaque) }
.tag-situacao { background: #7a2e22 }
.tag-exemplo { background: rgba(255,255,255,.85); color: #555 }
.tag-rascunho { background: #fff3c4; color: #5b4a00 }
.im-titulo .tags { position: static; margin-bottom: 20px; max-width: none }

/* ---------- Cartões de imóvel ---------- */
.grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 40px) }
html[data-colunas="2"] .grade { grid-template-columns: repeat(2, minmax(0, 1fr)) }
html[data-colunas="4"] .grade { grid-template-columns: repeat(4, minmax(0, 1fr)) }
@media (max-width: 1100px) { .grade, html[data-colunas="4"] .grade { grid-template-columns: repeat(2, minmax(0, 1fr)) } }
@media (max-width: 640px) { .grade, html[data-colunas] .grade { grid-template-columns: 1fr } }
.cartao { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--cartao); box-shadow: var(--sombra); transition: transform .5s var(--ease), box-shadow .5s var(--ease); color: var(--texto) }
.bl[data-fundo=escuro] .cartao { --cartao: #fff; --texto: #0f1915; --texto-2: #5e6660; --linha: #e6e0d4; --destaque-texto: #9a7736 }
.cartao:hover { transform: translateY(-6px); box-shadow: var(--sombra-forte) }
.cartao-foto { aspect-ratio: 4 / 3; background: var(--suave) }
html[data-proporcao-foto="3-2"] .cartao-foto { aspect-ratio: 3 / 2 }
html[data-proporcao-foto="1-1"] .cartao-foto { aspect-ratio: 1 }
html[data-proporcao-foto="4-5"] .cartao-foto { aspect-ratio: 4 / 5 }
.cartao-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease) }
.cartao:hover .cartao-foto img { transform: scale(1.07) }
html[data-anim=off] .cartao:hover .cartao-foto img, html[data-anim=off] .cartao:hover { transform: none }
.cartao-foto::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(8,13,11,.72), transparent 55%); opacity: 0; transition: opacity .5s }
.cartao:hover .cartao-foto::before { opacity: 1 }
.cartao-ver { position: absolute; left: 50%; bottom: 22px; z-index: 3; transform: translate(-50%, 12px); opacity: 0; transition: .5s var(--ease); font: 600 10.5px/1 var(--f-texto); letter-spacing: .26em; text-transform: uppercase; color: #fff; padding: 12px 18px; border: 1px solid rgba(255,255,255,.6); white-space: nowrap }
.cartao:hover .cartao-ver { opacity: 1; transform: translate(-50%, 0) }
.indisponivel .cartao-foto img { filter: grayscale(.85) brightness(.9) }
.salvar { position: absolute; top: 14px; right: 14px; z-index: 4; width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255,255,255,.94); color: #141b18; display: grid; place-items: center; transition: transform .3s, background .3s; box-shadow: 0 6px 16px -8px rgba(0,0,0,.4) }
.salvar:hover { transform: scale(1.08) }
.salvar .ico { width: 19px; height: 19px }
.salvar.on .ico, .acao.salvar.on .ico { fill: #b3413a; stroke: #b3413a }
.cartao-info { padding: 24px 26px 22px; display: flex; flex-direction: column; flex: 1 }
.cartao-local { display: block; font-size: 10px; letter-spacing: .22em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.cartao-local::before { display: none }
.cartao-local span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; background: currentColor; transform: rotate(45deg); margin: 0 10px 2px }
.cartao h3 { font-size: calc(27px * var(--t-escala)); line-height: 1.12; margin: 14px 0 18px; font-weight: 400 }
.cartao h3 a { text-decoration: none }
.cartao h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1 }
.cartao .salvar { z-index: 5 }
.cartao-chamada { color: var(--texto-2); margin: -6px 0 16px; font-size: .95em }
.specs { list-style: none; margin: 0 0 22px; padding: 16px 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); font-size: 11.5px; color: var(--texto-2) }
.specs li { display: grid; justify-items: center; gap: 6px; text-align: center; white-space: nowrap; padding: 0 4px; border-left: 1px solid var(--linha) }
.specs li:first-child { border-left: 0 }
.specs b { font-size: 13.5px }
.specs b { color: var(--texto); font-weight: 600 }
.specs .ico { width: 21px; height: 21px; color: var(--destaque-texto) }
.cartao-preco { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px }
.cartao-preco p { display: grid; gap: 2px }
.cartao-preco small { font: 600 9.5px/1.3 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; color: var(--texto-2) }
.cartao-preco b { font: 400 28px/1.05 var(--f-titulo); letter-spacing: .005em; font-variant-numeric: lining-nums }
.cartao-preco b i { font: 400 13px var(--f-texto); color: var(--texto-2); margin-left: 4px; font-style: normal }
.cartao-preco b.consulta { font-size: 22px; font-weight: 400; color: var(--texto-2) }
.cartao-cod { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--texto-2); padding-bottom: 5px }
.grade-lista { grid-template-columns: 1fr !important; gap: 28px }
.cartao-lista { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) }
.cartao-lista .cartao-foto { aspect-ratio: auto; min-height: 280px }
.cartao-lista .salvar { right: auto; left: calc(41.66% - 58px) }
@media (max-width: 700px) { .cartao-lista { grid-template-columns: 1fr } .cartao-lista .cartao-foto { aspect-ratio: 4 / 3; min-height: 0 } .cartao-lista .salvar { left: auto; right: 14px } }

/* ---------- Trilho (destaques) ---------- */
.trilho, .g-trilho { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * 36px) / 3); gap: 36px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 10px 4px 40px; margin: -10px -4px -40px }
.trilho::-webkit-scrollbar, .g-trilho::-webkit-scrollbar { display: none }
.trilho > * { scroll-snap-align: start }
@media (max-width: 1100px) { .trilho { grid-auto-columns: calc((100% - 28px) / 2); gap: 28px } }
@media (max-width: 640px) { .trilho { grid-auto-columns: 86%; gap: 18px } .bl-extra .setas { display: none } }

/* ---------- Lançamentos ---------- */
.lancs { display: grid; gap: clamp(72px, 9vw, 128px) }
.lanc { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center }
.lanc::before { content: ""; position: absolute; top: -28px; left: -28px; width: 46%; height: 72%; border: 1px solid color-mix(in srgb, var(--destaque) 55%, transparent); pointer-events: none }
.lanc.inv::before { left: auto; right: -28px }
.lanc-foto { grid-column: 1 / 9; grid-row: 1; aspect-ratio: 16 / 11; background: var(--suave); box-shadow: var(--sombra-forte) }
.lanc-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease) }
.lanc:hover .lanc-foto img { transform: scale(1.05) }
.lanc-painel { grid-column: 7 / 13; grid-row: 1; position: relative; z-index: 3; background: var(--papel); color: var(--tinta); padding: clamp(32px, 4vw, 56px); box-shadow: var(--sombra-forte); --texto: var(--tinta); --texto-2: #5e6660; --linha: #e0d9cc; --destaque-texto: #9a7736 }
.lanc.inv .lanc-foto { grid-column: 5 / 13 } .lanc.inv .lanc-painel { grid-column: 1 / 7 }
.lanc-painel h3 { font-size: calc(clamp(34px, 3.4vw, 50px) * var(--t-escala)); margin-top: 16px }
.lanc-painel h3 a { text-decoration: none }
.lanc-local { display: flex; align-items: center; gap: 8px; color: var(--texto-2); margin-top: 12px; font-size: 13.5px }
.lanc-local .ico { width: 17px; height: 17px; color: var(--destaque-texto) }
.lanc-chamada { margin-top: 18px; color: var(--texto-2) }
.fatos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; margin: 28px 0; padding: 26px 0; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha) }
.fatos div { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center }
.fatos .ico { grid-row: 1 / 3; width: 26px; height: 26px; color: var(--destaque-texto); stroke-width: 1.1 }
.fatos dt { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto-2) }
.fatos dd { margin: 0; font: 400 21px/1.2 var(--f-titulo) }
.lanc-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px }
.lanc-preco { font: 400 24px/1.2 var(--f-titulo) }
@media (max-width: 900px) { .lanc, .lanc.inv { grid-template-columns: 1fr } .lanc-foto, .lanc.inv .lanc-foto, .lanc-painel, .lanc.inv .lanc-painel { grid-column: 1; grid-row: auto } .lanc-painel { margin: -60px 12px 0; padding: 28px 24px } .lanc > * { min-width: 0 } .lanc::before { display: none } .fatos { grid-template-columns: 1fr } }

/* ---------- Bairros ---------- */
.bairros-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; grid-auto-flow: dense }
.bairros-grade.m0 .bairro-tile:first-child { grid-row: span 2; grid-column: span 2; min-height: 600px }
.bairros-grade.m2 .bairro-tile:first-child, .bairros-grade.m1 .bairro-tile:nth-child(-n+2) { grid-column: span 2 }
.bairro-tile { position: relative; display: block; min-height: 290px; overflow: hidden; color: #f5f1ea; text-decoration: none; background: var(--tinta); box-shadow: var(--sombra) }
.bairro-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease) }
.bairro-tile:hover img { transform: scale(1.08) }
.bairro-tile::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(8,13,11,.85), rgba(8,13,11,.1) 60%); transition: background .5s }
.bairro-tile::after { content: ""; position: absolute; inset: 16px; z-index: 1; border: 1px solid color-mix(in srgb, var(--destaque) 70%, transparent); opacity: 0; transform: scale(1.04); transition: .6s var(--ease) }
.bairro-tile:hover::after { opacity: 1; transform: none }
.bairro-vazio { position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, color-mix(in srgb, var(--destaque) 25%, var(--tinta)), var(--tinta)) }
.bairro-nome { position: absolute; left: 34px; right: 34px; bottom: 32px; z-index: 2; display: grid; gap: 6px }
.bairro-nome small { font: 600 10px/1.3 var(--f-texto); letter-spacing: .26em; text-transform: uppercase; color: var(--destaque-tinta) }
.bairro-nome b { font: 400 calc(34px * var(--t-escala)) / 1.05 var(--f-titulo) }
.bairros-grade.m0 .bairro-tile:first-child .bairro-nome b { font-size: calc(50px * var(--t-escala)) }
.bairro-ver { display: inline-flex; align-items: center; gap: 10px; font: 600 10.5px/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; max-height: 0; opacity: 0; overflow: hidden; transition: .5s var(--ease) }
.bairro-ver .ico { width: 16px; height: 16px; color: var(--destaque-tinta) }
.bairro-tile:hover .bairro-ver { max-height: 30px; opacity: 1; margin-top: 8px }
@media (max-width: 860px) { .bairros-grade { grid-template-columns: repeat(2, minmax(0, 1fr)) } .bairros-grade[class] .bairro-tile[class] { grid-row: auto; grid-column: auto; min-height: 240px } .bairros-grade[class] .bairro-tile[class]:first-child { grid-column: span 2 } }
@media (max-width: 520px) { .bairros-grade { grid-template-columns: 1fr } .bairros-grade[class] .bairro-tile[class]:first-child { grid-column: auto } .bairro-tile[class] { min-height: 220px } .bairro-ver { max-height: 30px; opacity: 1; margin-top: 8px } }

/* ---------- Sobre o corretor ---------- */
.sobre-bl, .sobre-pg { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(48px, 7vw, 120px); align-items: center }
.sobre-pg { align-items: start }
.retrato { position: relative; margin: 0; aspect-ratio: 4 / 5; background: var(--suave) }
.retrato:not(.pequeno)::before { content: ""; position: absolute; inset: 0; transform: translate(26px, 26px); border: 1px solid var(--destaque); z-index: 0 }
.retrato img, .retrato-vazio { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; box-shadow: var(--sombra-forte) }
.retrato-vazio { display: grid; place-items: center; font: 400 clamp(80px, 11vw, 160px) / 1 var(--f-titulo); letter-spacing: .04em; color: var(--destaque-tinta); background: radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--destaque) 22%, var(--tinta)), var(--tinta)) }
.retrato.pequeno { width: 60px; height: 60px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; flex: none } .retrato.pequeno .retrato-vazio { font-size: 22px; box-shadow: none }
.retrato.grande { position: sticky; top: calc(var(--topo-h) + 40px) }
.sobre-txt h1, .sobre-txt h2 { font-size: calc(clamp(44px, 5vw, 76px) * var(--t-escala)); margin-top: 20px }
.sobre-sub { margin-top: 12px; font: 400 clamp(22px, 2vw, 28px)/1.3 var(--f-titulo); color: var(--destaque-texto) }
.sobre-txt .texto-rico { margin-top: 30px; max-width: 60ch; color: var(--texto-2) }
.sobre-txt .btn { margin-top: 36px }
.creci { font: 600 10.5px/1.4 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; color: var(--texto-2); margin-top: 20px }
.assinatura { font: 400 46px/1 var(--f-titulo); margin-top: 40px; color: var(--destaque-texto) }
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 40px 0 0; border-top: 1px solid var(--linha) }
.numeros > div { padding: 28px 24px 4px 0 }
.numeros dt { font: 400 calc(54px * var(--t-escala)) / 1 var(--f-titulo); color: var(--destaque-texto) }
.numeros dd { margin: 12px 0 0; font: 600 10px/1.5 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto-2) }
.sobre-txt .numeros dt { font-size: calc(42px * var(--t-escala)) }
.bl-numeros .numeros { margin: 0; border: 0 }
.bl-numeros .numeros > div { text-align: center; padding: 12px 24px; border-left: 1px solid var(--linha) } .bl-numeros .numeros > div:first-child { border-left: 0 }
.bl-numeros .numeros dt { font-size: calc(clamp(56px, 6vw, 88px) * var(--t-escala)) }
@media (max-width: 860px) { .sobre-bl, .sobre-pg { grid-template-columns: 1fr } .retrato { max-width: 420px; width: calc(100% - 26px) } .retrato.grande { position: relative; top: 0 } .bl-numeros .numeros > div { border-left: 0 } }

/* ---------- Texto rico ---------- */
.texto-rico { line-height: 1.85 }
.texto-rico p + p, .texto-rico p + ul, .texto-rico ul + p { margin-top: 1.1em }
.texto-rico h3 { font-size: 30px; margin: 1.5em 0 .6em; color: var(--texto) }
.texto-rico ul { padding: 0; list-style: none; display: grid; gap: 10px; margin: 0 }
.texto-rico li { position: relative; padding-left: 26px }
.texto-rico li::before { content: ""; position: absolute; left: 3px; top: .72em; width: 7px; height: 7px; border: 1px solid var(--destaque); transform: rotate(45deg) }
.texto-rico strong { font-weight: 600; color: var(--texto) }

/* ---------- Depoimentos, chamada, texto, vídeo, FAQ ---------- */
.depos { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 32px }
.depo { position: relative; margin: 0; padding: 56px 44px 40px; background: var(--cartao); box-shadow: var(--sombra) }
.aspas { position: absolute; top: 22px; left: 40px; font: 400 96px/1 var(--f-titulo); color: var(--destaque); height: 40px; overflow: visible }
.depo blockquote { margin: 0; font: 400 calc(clamp(22px, 2vw, 27px) * var(--t-escala)) / 1.45 var(--f-titulo); color: var(--texto) }
.depo figcaption { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--linha); display: grid; gap: 4px }
.depo figcaption b { font: 600 11px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase }
.depo figcaption small { color: var(--texto-2); font-size: 13px }
.bl-chamada { padding: 0 } .bl-chamada > .bl-in { max-width: none; padding: 0 }
.chamada { position: relative; display: grid; place-items: center; min-height: 560px; background: var(--tinta); color: #f4efe6; overflow: hidden; text-align: center }
.chamada-foto { position: absolute; inset: 0 }
.chamada-foto img { width: 100%; height: 100%; object-fit: cover }
.chamada-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(8,13,11,.72), rgba(8,13,11,.82)) }
.chamada-txt { position: relative; max-width: 820px; padding: 96px var(--pad); display: grid; gap: 24px; justify-items: center }
.chamada::after { content: ""; position: absolute; inset: 28px; border: 1px solid color-mix(in srgb, var(--destaque) 45%, transparent); pointer-events: none }
.chamada .sobre-t { color: var(--destaque-tinta) }
.chamada-txt h2 { font-size: calc(clamp(40px, 5vw, 72px) * var(--t-escala)) }
.chamada-txt p:not(.sobre-t) { color: rgba(244,239,230,.8); max-width: 54ch; font-size: 1.05em }
.chamada-txt .btn { margin-top: 12px }
.texto-img { max-width: 70ch }
.texto-img.com-foto { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center }
.texto-img.lado-esquerda figure { order: -1 }
.texto-img figure { margin: 0; position: relative } .texto-img figure img { width: 100%; box-shadow: var(--sombra-forte) }
.texto-img h2 { font-size: calc(clamp(36px, 4vw, 58px) * var(--t-escala)); margin: 18px 0 26px }
@media (max-width: 760px) { .texto-img.com-foto { grid-template-columns: 1fr } }
.video { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; box-shadow: var(--sombra-forte) }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0 }
.faq { max-width: 920px; margin: 0 auto; border-top: 1px solid var(--linha) }
.faq details { border-bottom: 1px solid var(--linha) }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 28px 0; font: 400 26px/1.3 var(--f-titulo) }
.faq summary::-webkit-details-marker { display: none }
.faq summary .ico { color: var(--destaque-texto); transition: transform .4s var(--ease) } .faq details[open] summary .ico { transform: rotate(180deg) }
.faq .texto-rico { padding: 0 0 28px; max-width: 66ch; color: var(--texto-2) }

/* ---------- Contato e formulários ---------- */
.contato-bl, .form-pg { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 7vw, 110px); align-items: start }
.contato-txt { display: grid; gap: 20px; align-content: start }
.contato-txt h2, .form-pg h1 { font-size: calc(clamp(40px, 4.4vw, 64px) * var(--t-escala)) }
.contato-txt > p:not(.sobre-t), .form-pg-txt .texto-rico { color: var(--texto-2); max-width: 46ch; font-size: 1.02em }
.form-pg-txt { display: grid; gap: 22px }
@media (max-width: 860px) { .contato-bl, .form-pg { grid-template-columns: 1fr } }
.contatos { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 0; border-top: 1px solid var(--linha) }
.contatos li { border-bottom: 1px solid var(--linha) }
.contatos li, .contatos a { display: flex; gap: 18px; align-items: center; text-decoration: none; padding: 16px 0 }
.contatos li > a { padding: 0; flex: 1 }
.contatos span { display: grid; line-height: 1.45 }
.contatos small { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; color: var(--texto-2) }
.contatos .ico { width: 42px; height: 42px; padding: 10px; border: 1px solid var(--linha); border-radius: 50%; color: var(--destaque-texto) }
.contatos .ico-zap { color: #3cc275; --zap-fundo: var(--fundo); padding: 9px }
.contatos a:hover { color: var(--destaque-texto) }
.redes { display: flex; gap: 10px; margin-top: 22px }
.redes a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--linha); border-radius: 50%; transition: .3s; color: inherit }
.redes a:hover { border-color: var(--destaque); background: var(--destaque); color: var(--sobre-destaque) } .redes .ico { width: 18px; height: 18px }
.form-lead { background: #fff; border-top: 3px solid var(--destaque); padding: clamp(28px, 3.4vw, 48px); display: grid; gap: 16px; color: #0f1915; box-shadow: var(--sombra-forte); --texto: #0f1915; --texto-2: #5e6660; --linha: #e3ddd1 }
.form-lead h2 { font-size: 32px }
.form-lead label.check > span { font: 400 12.5px/1.55 var(--f-texto); letter-spacing: 0; text-transform: none; color: var(--texto-2) }
.form-lead label:not(.check) { display: grid; gap: 8px }
.form-lead label > span, .simulador label > span { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto-2) }
:where(input:not([type=checkbox], [type=radio], [type=range]), select, textarea) { width: 100%; padding: 13px 16px; border: 1px solid var(--linha); border-radius: var(--raio); background: #faf8f4; color: var(--texto); font-size: 15px; min-height: 52px; transition: border-color .3s, background .3s }
textarea { resize: vertical; min-height: 110px; line-height: 1.6 }
:where(input, select, textarea):focus { outline: none; border-color: var(--destaque); background: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--destaque) 18%, transparent) }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: var(--texto-2); line-height: 1.5; cursor: pointer }
.check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--destaque); flex: none }
.dois { display: grid; grid-template-columns: 1fr 1fr; gap: 14px }
.form-msg:empty { display: none }
.form-msg { font-size: 14px; padding: 12px 14px }
.form-msg.ok { background: #e7f0e9; color: #1f5134 } .form-msg.erro { background: #f7e4e0; color: #7a2e22 }
.form-lead .btn { margin-top: 4px }
.pilulas { display: flex; flex-wrap: wrap; gap: 6px }
.pilulas label { position: relative; cursor: pointer }
.pilulas input { position: absolute; opacity: 0; inset: 0 }
.pilulas span { display: block; padding: 9px 16px; border: 1px solid var(--linha); font-size: 13px; transition: .25s; background: transparent }
.pilulas input:checked + span { background: var(--tinta); border-color: var(--tinta); color: #f4efe6 }
.pilulas input:focus-visible + span { outline: 2px solid var(--destaque); outline-offset: 2px }
.pilulas-f { border: 0; padding: 0; margin: 0 } .pilulas-f legend { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto-2); padding: 0; margin-bottom: 10px }

/* ---------- Faixa de título das páginas internas ---------- */
.pg-banner, .bairro-topo { position: relative; background: var(--tinta); color: #f4efe6; overflow: hidden }
.pg-banner::before, .bairro-topo:not(.com-foto)::before { content: ""; position: absolute; inset: 0; background: radial-gradient(900px 420px at 90% 0%, color-mix(in srgb, var(--destaque) 16%, transparent), transparent 70%) }
.pg-banner-in, .bairro-topo-txt { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; padding: clamp(56px, 7vw, 96px) var(--pad) clamp(48px, 6vw, 80px); display: grid; gap: 18px }
.pg-banner h1, .bairro-topo h1 { font-size: calc(clamp(44px, 5.6vw, 84px) * var(--t-escala)) }
.pg-banner .sobre-t, .bairro-topo .sobre-t { color: var(--destaque-tinta) }
.pg-banner-txt, .bairro-topo p:not(.sobre-t) { max-width: 60ch; color: rgba(244,239,230,.78); font-size: 1.04em }
.migalhas { display: flex; flex-wrap: wrap; font: 500 11px/1.4 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; color: rgba(244,239,230,.6) }
.migalhas a { text-decoration: none } .migalhas a:hover { color: var(--destaque-tinta) }
.migalhas a + a::before { content: ""; display: inline-block; width: 4px; height: 4px; background: var(--destaque); transform: rotate(45deg); margin: 0 12px 2px }
.bairro-topo.com-foto { min-height: 460px; display: flex; align-items: flex-end }
.bairro-topo.com-foto > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover }
.bairro-topo.com-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,13,11,.85), rgba(8,13,11,.35)), linear-gradient(0deg, rgba(8,13,11,.6), transparent 50%) }
.bairro-topo-txt { width: 100% }

/* ---------- Lista com filtros ---------- */
.lista-pg { max-width: var(--max); margin: 0 auto; padding: clamp(40px, 5vw, 72px) var(--pad) clamp(72px, 9vw, 120px); display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(32px, 4vw, 56px); align-items: start }
html[data-filtros=topo] .lista-pg { grid-template-columns: 1fr }
.filtros { position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; scrollbar-width: thin; background: #fff; box-shadow: var(--sombra); border-top: 3px solid var(--destaque) }
.filtros form { display: grid; gap: 26px; padding: 28px }
.filtros fieldset { border: 0; padding: 0; margin: 0; min-width: 0 }
.filtros legend, .filtros label > span { display: block; padding: 0; font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto); margin-bottom: 12px }
.filtros label:not(.check-item) { display: grid }
.filtros .pilulas span { padding: 8px 13px; font: 500 12.5px/1.2 var(--f-texto) !important; letter-spacing: 0 !important; text-transform: none !important; margin: 0 !important; color: var(--texto) !important }
.filtros .pilulas input:checked + span { color: #f4efe6 !important }
.lista-pg .grade:not(.grade-lista) { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)) }
.checks { display: grid; gap: 2px }
.checks.rolavel { max-height: 232px; overflow-y: auto; scrollbar-width: thin; padding-right: 4px }
.checks label { display: grid !important; grid-template-columns: 18px 1fr auto; gap: 10px; align-items: center; padding: 6px 0; cursor: pointer }
.checks label span { margin: 0 !important; font: 400 14px/1.4 var(--f-texto) !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--texto) !important }
.checks input { width: 17px; height: 17px; accent-color: var(--destaque); margin: 0 }
.checks small { color: var(--texto-2); font-size: 12px; font-variant-numeric: tabular-nums }
.filtros select, .filtros input[type=search] { min-height: 46px; padding: 10px 12px; font-size: 14px }
.filtros .dois { gap: 10px } .filtros .dois label > span { font-weight: 500; color: var(--texto-2); letter-spacing: .14em; margin-bottom: 8px }
.filtros .limpar { justify-self: start; font-size: 13px }
.filtros-cabeca, .filtros-rodape { display: none }
.res-cabeca { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 24px; padding-bottom: 22px; border-bottom: 1px solid var(--linha) }
.res-conta { font: 400 24px/1.2 var(--f-titulo) }
.res-ctrl { display: flex; align-items: center; gap: 12px; flex-wrap: wrap }
.ordenar { display: flex; align-items: center; gap: 12px; font: 600 9.5px/1 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--texto-2) }
.ordenar select { min-height: 44px; padding: 8px 14px; font-size: 14px; width: auto; background: #fff; letter-spacing: 0; text-transform: none }
.vista { display: flex; border: 1px solid var(--linha); background: #fff }
.vista button { border: 0; background: transparent; padding: 11px 16px; font: 600 10px/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; color: var(--texto-2) }
.vista button[aria-pressed=true] { background: var(--tinta); color: #f4efe6 }
.abrir-filtros { display: none; min-height: 44px; padding: 10px 18px }
.abrir-filtros .n:empty { display: none }
html[data-filtros=topo] .abrir-filtros { display: inline-flex }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 32px }
.chips:empty { margin: 0 0 32px }
.chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linha); background: #fff; padding: 7px 10px 7px 14px; font-size: 13px }
.chip .ico { width: 14px; height: 14px; color: var(--destaque-texto) } .chip:hover { border-color: var(--destaque) }
.mais { text-align: center; margin-top: 56px }
@media (min-width: 901px) { html[data-filtros=topo] .filtros { position: fixed; inset: 0 auto 0 0; top: 0; width: 360px; max-height: none; z-index: 60; transform: translateX(-105%); transition: transform .4s var(--ease); display: flex; flex-direction: column; border-top: 0 } html[data-filtros=topo] .filtros.aberto { transform: none } html[data-filtros=topo] .filtros-cabeca, html[data-filtros=topo] .filtros-rodape { display: flex } }
@media (max-width: 900px) {
  .lista-pg { grid-template-columns: 1fr }
  .abrir-filtros { display: inline-flex }
  .filtros { position: fixed; inset: auto 0 0 0; top: 8vh; z-index: 60; max-height: none; display: flex; flex-direction: column; transform: translateY(105%); transition: transform .4s var(--ease); box-shadow: 0 -20px 60px rgba(0,0,0,.3) }
  .filtros.aberto { transform: none }
  .filtros form { overflow-y: auto; flex: 1 }
  .filtros-cabeca { display: flex } .filtros-rodape { display: block }
  .ordenar span { display: none } .vista { display: none }
}
.filtros form { overflow-y: auto }
.filtros-cabeca { justify-content: space-between; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--linha); font: 400 24px var(--f-titulo) }
.filtros-cabeca button { border: 0; background: none; width: 40px; height: 40px; display: grid; place-items: center }
.filtros-rodape { padding: 14px 24px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--linha) } .filtros-rodape .btn { width: 100% }
body.gaveta { overflow: hidden } body.gaveta::after { content: ""; position: fixed; inset: 0; background: rgba(8,13,11,.55); z-index: 55 }

/* ---------- Página do imóvel ---------- */
.im-faixa { background: var(--tinta); color: #f4efe6; position: relative; padding-bottom: 0 }
.im-faixa::before { content: ""; position: absolute; inset: 0; background: radial-gradient(900px 420px at 88% 0%, color-mix(in srgb, var(--destaque) 14%, transparent), transparent 70%); pointer-events: none }
.im-faixa::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: var(--fundo) }
.im-faixa-in { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; padding: 40px var(--pad) 0 }
.im-titulo { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px 48px; margin: 26px 0 40px; flex-wrap: wrap }
.im-titulo h1 { font-size: calc(clamp(40px, 5vw, 72px) * var(--t-escala)); max-width: 18ch }
.im-local { display: flex; align-items: center; gap: 10px; margin-top: 18px; color: rgba(244,239,230,.72); font-size: 14px; letter-spacing: .02em }
.im-local .ico { width: 18px; height: 18px; color: var(--destaque-tinta) }
.im-resumo { display: grid; gap: 16px; justify-items: end; text-align: right }
.im-preco { display: grid; gap: 4px }
.im-antigo { font-size: 15px; color: rgba(244,239,230,.5); text-decoration-color: #d9776a }
.im-preco small { font: 600 10px/1.3 var(--f-texto); letter-spacing: .26em; text-transform: uppercase; color: var(--destaque-tinta) }
.im-preco b { font: 400 calc(clamp(36px, 3.6vw, 52px) * var(--t-escala)) / 1 var(--f-titulo) }
.im-preco b i { font: 400 15px var(--f-texto); font-style: normal; color: rgba(244,239,230,.6); margin-left: 6px }
.acoes-imovel { display: flex; gap: 2px }
.acao { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; padding: 10px 12px; font: 600 10px/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; color: rgba(244,239,230,.82) }
.acao:hover { color: var(--destaque-tinta) }
.acao .ico { width: 17px; height: 17px }
.acao.salvar { position: static; width: auto; height: auto; border-radius: 0; background: none; box-shadow: none; color: rgba(244,239,230,.82) }
.acao.salvar:hover { transform: none; color: var(--destaque-tinta) }
@media (max-width: 760px) { .im-resumo { justify-items: start; text-align: left } .acoes-imovel { margin-left: -12px } .acao[data-imprimir] { display: none } }
.galeria { position: relative; box-shadow: var(--sombra-forte) }
.galeria-mosaico { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; height: clamp(360px, 62vh, 680px); background: var(--tinta) }
.galeria-mosaico.n3 { grid-template-columns: 2fr 1fr }
.galeria-mosaico.n4 .g-foto:nth-child(4) { grid-column: span 2 }
.g-foto { border: 0; padding: 0; background: var(--suave); cursor: zoom-in; min-height: 0 }
.g-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .5s }
.g-foto:hover img { transform: scale(1.05) }
.g-principal { grid-row: span 2 }
.ver-fotos { position: absolute; right: 22px; bottom: 22px; z-index: 5; min-height: 46px; padding: 10px 20px }
.galeria-carrossel { position: relative }
.g-trilho { grid-auto-columns: 100%; gap: 0; height: clamp(320px, 64vh, 680px); padding: 0; margin: 0 }
.g-trilho .g-foto { scroll-snap-align: start; height: 100% }
.g-setas { position: absolute; left: 22px; bottom: 22px; z-index: 5 }
.g-setas button { background: rgba(255,255,255,.94); border: 0; color: #141b18 }
.galeria-vazia { height: 380px }
@media (max-width: 760px) {
  .im-faixa-in { padding-top: 24px }
  .galeria.galeria-mosaico[class] { display: grid; grid-auto-flow: column; grid-template: none; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; height: 70vw; margin: 0 calc(var(--pad) * -1); scrollbar-width: none }
  .galeria-mosaico .g-foto { grid-row: auto !important; grid-column: auto !important; scroll-snap-align: start }
  .im-titulo { margin: 18px 0 26px } .im-faixa::after { height: 60px }
}
.im-conteudo { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad) }
.im-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: clamp(40px, 5vw, 88px); margin-top: clamp(48px, 5vw, 72px); padding-bottom: clamp(64px, 8vw, 112px) }
@media (max-width: 1060px) { .im-corpo { grid-template-columns: minmax(0, 1fr) } }
.im-principal { min-width: 0 }
.im-chamada { font: 400 calc(clamp(26px, 2.6vw, 36px) * var(--t-escala)) / 1.3 var(--f-titulo); margin-bottom: 40px; max-width: 30ch; color: var(--texto); padding-left: 26px; border-left: 2px solid var(--destaque) }
.ficha { display: flex; flex-wrap: wrap; margin: 0; background: #fff; box-shadow: var(--sombra) }
.ficha > div { flex: 1 1 120px; display: grid; justify-items: center; text-align: center; gap: 4px; padding: 28px 16px 24px; border-right: 1px solid #ece6da; border-bottom: 1px solid #ece6da; margin: 0 -1px -1px 0 }
.ficha .ico { width: 28px; height: 28px; color: var(--destaque-texto); stroke-width: 1.1; margin-bottom: 8px }
.ficha dd { margin: 0; font: 400 34px/1 var(--f-titulo); color: #0f1915 }
.ficha dd small { font: 500 13px var(--f-texto); margin-left: 3px; color: #5e6660 }
.ficha dt { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: #5e6660; margin-top: 6px }
.sec { margin-top: clamp(56px, 6vw, 80px) }
.sec > h2 { font-size: calc(clamp(32px, 3vw, 44px) * var(--t-escala)); margin-bottom: 26px; display: grid; gap: 16px }
.sec > h2::before { content: ""; width: 44px; height: 1px; background: var(--destaque) }
.sec > .muted { margin: -12px 0 24px }
.im-principal > .sec:first-child { margin-top: 0 }
.im-principal .texto-rico { color: var(--texto-2) }
.caract, .lista-check { list-style: none; padding: 0; margin: 0; columns: 3 200px; column-gap: 36px }
.caract li, .lista-check li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; break-inside: avoid; font-size: 14.5px; border-bottom: 1px solid var(--linha) }
.caract .ico, .lista-check .ico { width: 17px; height: 17px; margin-top: 3px; color: var(--destaque-texto) }
.ficha-lanc { display: flex; flex-wrap: wrap; margin: 0; background: var(--tinta); color: #f4efe6 }
.ficha-lanc div { flex: 1 1 150px; padding: 24px 26px; border-right: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08) }
.ficha-lanc dt { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--destaque-tinta) }
.ficha-lanc dd { margin: 8px 0 0; font: 400 24px/1.2 var(--f-titulo) }
.tipos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 20px }
@media (max-width: 520px) { .tipos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px } .tipo-zap { letter-spacing: .08em; padding: 10px 6px } .tipo { padding: 22px 18px } .tipo-area { font-size: 46px } }
.tipo { position: relative; background: #fff; padding: 30px 28px 28px; box-shadow: var(--sombra); display: grid; gap: 10px; align-content: start; border-top: 3px solid var(--destaque); color: #0f1915; transition: transform .4s var(--ease), box-shadow .4s }
.tipo:hover { transform: translateY(-4px); box-shadow: var(--sombra-forte) }
.tipo .sobre-t { color: #9a7736 }
.tipo-area { font: 400 64px/1 var(--f-titulo); margin: 8px 0 6px } .tipo-area small { font: 400 18px var(--f-titulo); margin-left: 4px; color: #5e6660 }
.tipo-specs { list-style: none; padding: 14px 0; margin: 0; display: grid; gap: 8px; border-top: 1px solid #ece6da; border-bottom: 1px solid #ece6da; font-size: 13.5px; color: #5e6660 }
.tipo-specs li { display: flex; align-items: center; gap: 10px } .tipo-specs .ico { width: 18px; height: 18px; color: #9a7736 }
.tipo-preco { display: grid; gap: 2px; font: 400 24px/1.2 var(--f-titulo); margin-top: 6px }
.tipo-preco small { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: #5e6660 }
.tipo-preco.consulta { font-weight: 400; font-size: 20px; color: #5e6660 }
.plantas { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px }
.planta { border: 0; background: #fff; padding: 16px; display: grid; gap: 12px; cursor: zoom-in; text-align: left; box-shadow: var(--sombra) }
.planta img { width: 100%; aspect-ratio: 1; object-fit: contain } .planta span { font: 400 18px var(--f-titulo) }
.obra { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 32px 56px; align-items: center; background: #fff; padding: clamp(28px, 3vw, 44px); box-shadow: var(--sombra); color: #0f1915 }
.obra-geral { display: grid; justify-items: center; gap: 10px; text-align: center; width: 180px; aspect-ratio: 1; place-content: center; border-radius: 50%; background: conic-gradient(var(--destaque) calc(var(--pct, 0) * 1%), #ece6da 0); position: relative }
.obra-geral::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: #fff }
.obra-geral > * { position: relative }
.obra-geral b { font: 400 54px/.9 var(--f-titulo); color: #0f1915 }
.obra-geral span { display: grid; font: 600 9px/1.5 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: #5e6660 } .obra-geral small { font-weight: 500; letter-spacing: .06em; text-transform: none; font-size: 11px }
.obra-etapas { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px }
.obra-etapas li { display: grid; grid-template-columns: 170px minmax(0, 1fr) 48px; gap: 18px; align-items: center; font-size: 13.5px }
.obra-etapas b { font: 400 20px var(--f-titulo); text-align: right }
.barra { height: 4px; background: #ece6da; position: relative; overflow: hidden }
.barra i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, color-mix(in srgb, var(--destaque) 70%, #fff), var(--destaque)) }
@media (max-width: 680px) { .obra { grid-template-columns: 1fr; justify-items: center } .obra-etapas { width: 100% } .obra-etapas li { grid-template-columns: 1fr 44px } .obra-etapas .barra { grid-column: 1 / -1; grid-row: 2 } }
.links-extra { display: flex; flex-wrap: wrap; gap: 14px }
.local-txt { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; color: var(--texto-2) } .local-txt .ico { color: var(--destaque-texto) }
.mapa { aspect-ratio: 16 / 9; overflow: hidden; background: var(--suave); box-shadow: var(--sombra) }
.mapa iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.4) sepia(.12) contrast(.95) }
.mapa + .muted { margin-top: 12px }
.simulador { background: var(--tinta); color: #f4efe6; padding: clamp(28px, 3vw, 44px); box-shadow: var(--sombra-forte) }
.simulador label > span { color: var(--destaque-tinta) !important }
.simulador input:not([type=range]) { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #fff }
.sim-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px }
.sim-campos label { display: grid; gap: 10px }
.sim-campos output { color: #fff; font: 400 18px var(--f-titulo); margin-left: 8px; letter-spacing: 0; text-transform: none }
input[type=range] { width: 100%; accent-color: var(--destaque); height: 32px }
.sim-res { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; margin-top: 30px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12) }
.sim-fin { display: grid; gap: 6px; grid-column: 1 / -1 } .sim-fin small { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--destaque-tinta) } .sim-fin b { font: 400 38px/1 var(--f-titulo) }
.sim-tab h3 { font: 600 10px/1.3 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; margin-bottom: 12px; color: var(--destaque-tinta) }
.sim-tab dl { margin: 0; display: grid; gap: 8px } .sim-tab dl div { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; border-bottom: 1px dashed rgba(255,255,255,.1); padding-bottom: 6px }
.sim-tab dt { color: rgba(244,239,230,.65) } .sim-tab dd { margin: 0; font: 400 18px var(--f-titulo) }
.sim-aviso { margin-top: 22px; font-size: 12px; color: rgba(244,239,230,.55) !important }
@media (max-width: 700px) { .sim-campos, .sim-res { grid-template-columns: 1fr } }
.im-lateral { min-width: 0 }
.lateral-fixa { position: sticky; top: 100px; display: grid; gap: 18px }
.caixa-preco { background: var(--tinta); color: #f4efe6; padding: 32px; box-shadow: var(--sombra-forte); position: relative }
.caixa-preco::after { content: ""; position: absolute; inset: 10px; border: 1px solid color-mix(in srgb, var(--destaque) 35%, transparent); pointer-events: none }
.cp-rotulo { display: flex; justify-content: space-between; font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--destaque-tinta) }
.cp-cod { color: rgba(244,239,230,.6) }
.cp-valor { font: 400 calc(clamp(34px, 3vw, 44px) * var(--t-escala)) / 1.05 var(--f-titulo); margin-top: 12px }
.cp-valor small { font: 400 14px var(--f-texto); color: rgba(244,239,230,.6); margin-left: 4px }
.cp-apartir { display: block; font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: rgba(244,239,230,.6); margin-bottom: 6px }
.cp-valor.consulta { font-size: 30px }
.cp-linhas { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); display: grid; gap: 10px }
.cp-linhas div { display: flex; justify-content: space-between; font-size: 13.5px } .cp-linhas dt { color: rgba(244,239,230,.65) } .cp-linhas dd { margin: 0; font-weight: 600 }
.cp-selos { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 8px; font-size: 13px }
.cp-selos li { display: flex; gap: 10px; align-items: center } .cp-selos .ico { width: 16px; height: 16px; color: var(--destaque-tinta) }
.lateral-fixa .btn-destaque { min-height: 58px }
.lateral-fixa .form-lead { gap: 14px; padding: 30px }
.lateral-fixa .form-lead h2 { font-size: 30px }
.corretor-mini { display: flex; gap: 16px; align-items: center; font-size: 14px }
.corretor-mini p { display: grid; line-height: 1.35 } .corretor-mini b { font: 400 21px var(--f-titulo) } .corretor-mini small { color: var(--texto-2); font-size: 12px; letter-spacing: .04em }
.barra-cel { display: none }
@media (max-width: 1060px) {
  .lateral-fixa { position: static }
  body[data-pagina=imovel] .barra-cel { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; justify-content: space-between; align-items: center; gap: 12px; padding: 12px var(--pad) calc(12px + env(safe-area-inset-bottom)); background: var(--tinta); color: #f4efe6; box-shadow: 0 -10px 30px -12px rgba(0,0,0,.4) }
  .barra-cel p { display: grid; font: 400 24px/1.1 var(--f-titulo) } .barra-cel small { font: 500 10px var(--f-texto); letter-spacing: .16em; color: var(--destaque-tinta) }
  .barra-cel .btn { min-height: 48px; padding: 10px 18px }
  body[data-pagina=imovel] .zap-flutuante { display: none }
  body[data-pagina=imovel] footer.rodape { padding-bottom: 84px }
}

/* ---------- Rodapé ---------- */
footer.rodape { position: relative; background: var(--tinta-2); color: var(--sobre-tinta); --texto: var(--sobre-tinta); --texto-2: var(--sobre-tinta-2); --linha: rgba(255,255,255,.1); --destaque-texto: var(--destaque-tinta); --fundo: var(--tinta-2) }
footer.rodape::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--destaque), transparent) }
html[data-rodape=claro] footer.rodape { background: var(--suave); color: #0f1915; --texto: #0f1915; --texto-2: #5e6660; --linha: #d9d2c4; --destaque-texto: #9a7736; --fundo: var(--suave) }
.rodape-in { max-width: var(--max); margin: 0 auto; padding: clamp(64px, 8vw, 112px) var(--pad) 56px; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 48px }
.rodape-marca .logo { margin-bottom: 8px }
.rodape h2 { font: 600 10px/1.4 var(--f-texto); letter-spacing: .26em; text-transform: uppercase; color: var(--destaque-texto); margin-bottom: 22px }
.rodape ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; font-size: 14px }
.rodape ul a { text-decoration: none; color: var(--texto-2); transition: color .3s } .rodape ul a:hover { color: var(--texto) }
.rodape-contatos li, .rodape-contatos a { display: flex; gap: 12px; align-items: flex-start }
.rodape-contatos .ico { width: 17px; height: 17px; margin-top: 3px; color: var(--destaque-texto) }
.rodape-contatos .ico-zap { color: #3cc275; --zap-fundo: var(--tinta-2) }
.rodape-contatos span { color: var(--texto-2) }
.rodape-base { max-width: var(--max); margin: 0 auto; padding: 26px var(--pad) 36px; border-top: 1px solid var(--linha); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; font-size: 12px; color: var(--texto-2) }
.rodape-base a { margin-left: 8px; color: var(--destaque-texto) }
@media (max-width: 900px) { .rodape-in { grid-template-columns: 1fr 1fr } .rodape-marca { grid-column: 1 / -1 } }
@media (max-width: 520px) { .rodape-in { grid-template-columns: 1fr } }

/* ---------- WhatsApp flutuante ---------- */
.zap-flutuante { position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 35; display: inline-flex; align-items: center; gap: 12px; padding: 8px 22px 8px 8px; min-height: 58px; border-radius: 100px; background: var(--tinta); color: #f4efe6; text-decoration: none; font: 600 10.5px/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; box-shadow: 0 18px 40px -14px rgba(0,0,0,.55); border: 1px solid color-mix(in srgb, var(--destaque) 45%, transparent); transition: transform .3s }
.zap-flutuante:hover { transform: translateY(-3px) }
.zap-flutuante .ico-zap { width: 42px; height: 42px; padding: 8px; border-radius: 50%; background: #25a45a; color: #fff; --zap-fundo: #25a45a }
html[data-whats-lado=esquerda] .zap-flutuante { right: auto; left: 24px }
html[data-whats-lado=off] .zap-flutuante { display: none }
@media (max-width: 620px) { .zap-flutuante span { display: none } .zap-flutuante { padding: 8px; right: 16px; bottom: 16px } }

/* ---------- Lightbox ---------- */
#lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(6,10,9,.97); color: #f3f1ec }
#lightbox[open] { display: grid; grid-template-columns: 80px minmax(0, 1fr) 80px; grid-template-rows: 1fr auto; align-items: center }
#lightbox::backdrop { background: rgba(6,10,9,.9) }
.lb-foto { margin: 0; grid-column: 2; height: calc(100vh - 110px); display: flex; align-items: center; justify-content: center; overflow: hidden; container-type: normal }
.lb-foto img { max-width: 100%; max-height: 100%; object-fit: contain }
html[data-marca=texto] .lb-foto::after { font-size: 48px }
.lb-nav, .lb-fechar { border: 1px solid rgba(255,255,255,.2); background: none; color: inherit; width: 56px; height: 56px; display: grid; place-items: center; justify-self: center; border-radius: 50%; transition: .3s }
.lb-nav:hover, .lb-fechar:hover { background: var(--destaque); border-color: var(--destaque); color: var(--sobre-destaque) }
.lb-nav .ico, .lb-fechar .ico { width: 24px; height: 24px }
.lb-prev { grid-column: 1; grid-row: 1 } .lb-next { grid-column: 3; grid-row: 1 }
.lb-fechar { position: absolute; top: 16px; right: 16px; z-index: 3 }
.lb-rodape { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 20px; padding: 14px 28px 24px; font: 400 18px var(--f-titulo); color: rgba(243,241,236,.75) }
.lb-conta { font: 600 11px var(--f-texto); letter-spacing: .2em; font-style: normal }
@media (max-width: 700px) { #lightbox[open] { grid-template-columns: 0 1fr 0 } .lb-nav { position: absolute; bottom: 14px; grid-row: auto } .lb-prev { left: 14px } .lb-next { right: 14px } .lb-rodape { padding-bottom: 86px } }

/* ---------- Diversos ---------- */
.toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0; z-index: 90; background: var(--tinta); color: #f4efe6; padding: 14px 22px; font-size: 14px; transition: .3s; pointer-events: none; border-left: 2px solid var(--destaque) }
.toast.on { opacity: 1; transform: translate(-50%, 0) }
.carregador { min-height: 80vh; display: grid; place-items: center; background: var(--tinta) }
.carregador span { width: 80px; height: 1px; background: rgba(255,255,255,.15); position: relative; overflow: hidden }
.carregador span::after { content: ""; position: absolute; inset: 0; width: 40%; background: var(--destaque); animation: carrega 1.1s ease-in-out infinite }
@keyframes carrega { from { transform: translateX(-100%) } to { transform: translateX(250%) } }
.pg-texto { max-width: 780px } .pg-texto .texto-rico { color: var(--texto-2) }
.bl-similares .bl-cabeca h2 { font-size: calc(clamp(34px, 3.6vw, 52px) * var(--t-escala)) }
html.modo-edicao [data-ed] { cursor: pointer; outline: 1px dashed color-mix(in srgb, var(--destaque) 70%, transparent); outline-offset: 3px }
html.modo-edicao [data-ed]:hover { outline: 2px solid var(--destaque); background: color-mix(in srgb, var(--destaque) 14%, transparent) }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important } }


/* ---------- Selos automáticos e preço reduzido ---------- */
.tag-novo { background: #fff; color: #0f1915 }
.tag-reduzido { background: #8f2f24; display: inline-flex; align-items: center; gap: 5px }
.tag-reduzido .ico { width: 11px; height: 11px; transform: rotate(90deg); stroke-width: 2 }
.preco-antigo { font-size: 12.5px; color: var(--texto-2); text-decoration-color: #8f2f24 }
.cp-antigo { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-size: 14px; color: rgba(244,239,230,.55) }
.cp-antigo s { text-decoration-color: #d9776a }
.cp-antigo span { background: #8f2f24; color: #fff; font: 700 10.5px/1 var(--f-texto); letter-spacing: .08em; padding: 5px 7px }

/* ---------- Comparar ---------- */
.cartao-pe { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--linha) }
.cartao-pe .cartao-cod { padding: 0 }
.comparar-btn { position: relative; z-index: 5; display: inline-flex; align-items: center; gap: 7px; border: 0; padding: 6px 0; background: none; color: var(--texto-2); font: 600 9.5px/1 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; transition: color .3s }
.comparar-btn .ico { width: 15px; height: 15px }
.comparar-btn:hover { color: var(--destaque-texto) }
.comparar-btn.on { color: var(--destaque-texto) }
.comparar-barra { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 45; display: flex; align-items: center; gap: 18px; padding: 10px 10px 10px 14px; background: var(--tinta); color: #f4efe6; box-shadow: 0 24px 50px -16px rgba(0,0,0,.6); border: 1px solid color-mix(in srgb, var(--destaque) 40%, transparent); animation: surge .5s var(--ease) both; max-width: calc(100vw - 24px) }
.comparar-barra p { font-size: 13px; white-space: nowrap }
.comparar-barra .link { color: rgba(244,239,230,.65); font-size: 12.5px }
.comparar-barra .btn { min-height: 44px; padding: 10px 20px }
.cb-fotos { display: flex; gap: 6px }
.cb-fotos span { position: relative; width: 58px; height: 44px; background: #26312c; overflow: hidden }
.cb-fotos img { width: 100%; height: 100%; object-fit: cover }
.cb-fotos button { position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; border-radius: 50%; border: 0; padding: 0; background: rgba(0,0,0,.65); color: #fff; display: grid; place-items: center }
.cb-fotos .ico { width: 11px; height: 11px }
body.com-comparar .zap-flutuante { bottom: 96px }
@media (max-width: 640px) { .comparar-barra { left: 12px; right: 12px; transform: none; bottom: 12px; gap: 10px } .comparar-barra p, .cb-fotos span:nth-child(3) { display: none } body[data-pagina=imovel].com-comparar .comparar-barra { bottom: 84px } }
.comparar-tab { overflow-x: auto; background: #fff; box-shadow: var(--sombra); color: #0f1915 }
.comparar-tab table { width: 100%; border-collapse: collapse; min-width: 720px; table-layout: fixed }
.comparar-tab thead th:first-child { width: 190px }
.comparar-tab th, .comparar-tab td { padding: 16px 20px; border-bottom: 1px solid #ece6da; text-align: left; vertical-align: top; font-size: 14px }
.comparar-tab tbody th { font: 600 9.5px/1.4 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: #5e6660; width: 180px; background: #faf8f4 }
.comparar-tab thead th { vertical-align: bottom; padding-top: 24px; border-bottom: 2px solid var(--destaque) }
.ct-foto { aspect-ratio: 4 / 3; margin-bottom: 14px }
.ct-foto img { width: 100%; height: 100%; object-fit: cover }
.ct-titulo { display: block; font: 400 22px/1.2 var(--f-titulo); text-decoration: none; margin: 8px 0 }
.ct-preco { font: 400 24px var(--f-titulo) }
.comparar-tab td .ico { color: var(--destaque-texto) }
.comparar-tab .btn { min-height: 44px; padding: 10px 18px }

/* ---------- Galeria: fotos, vídeo, plantas e tour ---------- */
.g-midias { position: absolute; right: 22px; bottom: 22px; z-index: 5; display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end }
.g-midia { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 16px; border: 0; background: rgba(255,255,255,.95); color: #141b18; font: 600 10px/1 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; transition: .3s }
.g-midia b { color: var(--destaque-texto); font-weight: 700 }
.g-midia .ico { width: 17px; height: 17px }
.g-midia:hover { background: var(--destaque); color: var(--sobre-destaque) } .g-midia:hover b { color: inherit }
@media (max-width: 760px) { .g-midias { right: 10px; bottom: 10px } .g-midia { min-height: 38px; padding: 8px 11px } .g-midia span { font-size: 9px } }
.lb-mini { position: absolute; left: 50%; bottom: 56px; transform: translateX(-50%); display: flex; gap: 6px; max-width: min(820px, 90vw); overflow-x: auto; scrollbar-width: none; padding: 4px }
.lb-mini button { flex: none; width: 70px; height: 50px; padding: 0; border: 1px solid transparent; background: #1b2420; opacity: .5; transition: .25s; color: #fff; display: grid; place-items: center }
.lb-mini button.on, .lb-mini button:hover { opacity: 1; border-color: var(--destaque) }
.lb-mini img { width: 100%; height: 100%; object-fit: cover }
#lightbox:has(.lb-mini button) .lb-foto { height: calc(100vh - 190px); margin-bottom: 70px }
.lb-foto.lb-video iframe { width: min(1200px, 100%); aspect-ratio: 16 / 9; border: 0; background: #000 }
.lb-foto.lb-video::after { display: none }
@media (max-width: 700px) { .lb-mini { bottom: 84px } }

/* ---------- Compartilhar ---------- */
.menu-compart { position: absolute; z-index: 20; top: calc(100% + 4px); right: 0; min-width: 210px; background: #fff; color: #0f1915; box-shadow: var(--sombra-forte); padding: 6px; display: grid }
.acoes-imovel { position: relative }
.menu-compart a, .menu-compart button { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 0; background: none; text-decoration: none; font-size: 14px; text-align: left; color: inherit }
.menu-compart a:hover, .menu-compart button:hover { background: #f5f1ea }
.menu-compart .ico { width: 18px; height: 18px; color: #9a7736 } .menu-compart .ico-zap { color: #25a45a; --zap-fundo: #fff }

/* ---------- Proximidades, planta e busca sem resultado ---------- */
.proximos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 32px }
.proximos li { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--linha); font-size: 14.5px }
.proximos .ico { width: 18px; height: 18px; color: var(--destaque-texto) }
.proximos b { font-weight: 500 } .proximos span { color: var(--texto-2); font-size: 13px; white-space: nowrap }
.tipo-zap { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; padding: 11px 12px; border: 1px solid #e3ddd1; text-decoration: none; font: 600 9.5px/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; color: #0f1915; transition: .3s }
.tipo-zap .ico-zap { width: 17px; height: 17px; color: #25a45a; --zap-fundo: #fff }
.tipo-zap:hover { background: var(--tinta); color: #f4efe6; border-color: var(--tinta); --zap-fundo: var(--tinta) }
.nao-achou { margin-top: 56px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding: clamp(28px, 4vw, 48px); background: var(--tinta); color: #f4efe6; position: relative }
.nao-achou::after { content: ""; position: absolute; inset: 10px; border: 1px solid color-mix(in srgb, var(--destaque) 35%, transparent); pointer-events: none }
.nao-achou > div { display: grid; gap: 12px; max-width: 560px }
.nao-achou .sobre-t { color: var(--destaque-tinta) }
.nao-achou h2 { font-size: calc(clamp(28px, 2.6vw, 38px) * var(--t-escala)) }
.nao-achou p:not(.sobre-t) { color: rgba(244,239,230,.75); font-size: 14px }
.vazio + .nao-achou { margin-top: 0 }

/* ---------- Aviso de cookies ---------- */
.cookies { position: fixed; left: 20px; bottom: 20px; z-index: 80; max-width: 440px; background: #fff; color: #0f1915; padding: 22px 24px; box-shadow: var(--sombra-forte); border-top: 3px solid var(--destaque); display: grid; gap: 16px; font-size: 13.5px; animation: surge .6s var(--ease) both }
.cookies a { color: #9a7736 }
.cookies > div { display: flex; justify-content: flex-end; align-items: center; gap: 18px }
.cookies .btn { min-height: 42px; padding: 10px 20px }
@media (max-width: 620px) { .cookies { left: 10px; right: 10px; bottom: 10px; max-width: none } }

/* ---------- Impressão: ficha em 1 página + galeria com até 6 fotos por página ---------- */
.impressao { display: none }
@media print {
  @page { size: A4; margin: 0 }
  html, body { background: #fff !important; margin: 0 }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact }
  header.topo, footer.rodape, .zap-flutuante, .comparar-barra, .cookies, .toast, #lightbox, .barra-cel, .menu-compart, .pular { display: none !important }
  body:has(.impressao) #app > :not(.impressao) { display: none !important }
  .impressao { display: block }
}
.imp-pag { width: 210mm; height: 297mm; padding: 11mm 12mm 9mm; box-sizing: border-box; overflow: hidden; display: flex; flex-direction: column; gap: 4.5mm; background: #fff; color: #17211d; font: 8.4pt/1.45 var(--f-texto); break-after: page; page-break-after: always; position: relative }
.imp-pag:last-child { break-after: auto; page-break-after: auto }
.imp-pag h1, .imp-pag h2 { font-family: var(--f-titulo); font-weight: 400; color: #0f1915 }
.imp-cab { display: flex; justify-content: space-between; align-items: center; padding-bottom: 3.5mm; border-bottom: .5mm solid var(--destaque) }
.imp-cab p { text-align: right; font-size: 7.6pt; line-height: 1.5; color: #4a544f }
.imp-logo { max-height: 13mm; max-width: 60mm; object-fit: contain }
.imp-marca { display: flex; align-items: center; gap: 3mm }
.imp-marca > b { width: 11mm; height: 11mm; display: grid; place-items: center; border: .3mm solid var(--destaque); font: 400 12pt var(--f-titulo); color: var(--destaque-texto) }
.imp-marca span { display: grid; font: 400 14pt/1.1 var(--f-titulo) } .imp-marca small { font: 600 6pt/1.6 var(--f-texto); letter-spacing: .25em; text-transform: uppercase; color: var(--destaque-texto) }
.imp-tit { display: flex; justify-content: space-between; align-items: flex-end; gap: 8mm }
.imp-sobre { font: 600 6.8pt/1.4 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: var(--destaque-texto) }
.imp-tit h1 { font-size: 21pt; line-height: 1.08; margin-top: 1.5mm }
.imp-chamada { font-size: 8.8pt; color: #4a544f; margin-top: 1.5mm; max-width: 120mm }
.imp-preco { display: grid; justify-items: end; text-align: right; flex: none }
.imp-preco small { font: 600 6.5pt var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: #6b746f }
.imp-preco b { font: 400 19pt/1.1 var(--f-titulo); color: #0f1915 } .imp-preco b i { font: 400 8pt var(--f-texto); font-style: normal; color: #6b746f; margin-left: 1mm }
.imp-preco s { font-size: 8pt; color: #8f2f24 } .imp-preco span { font-size: 7pt; color: #6b746f; letter-spacing: .08em }
.imp-fotos { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 1.6mm; height: 82mm; flex: none }
.imp-fotos.n1 { grid-template-columns: 1fr } .imp-fotos.n2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr }
.imp-fotos figure, .imp-grade figure { margin: 0; overflow: hidden; background: #eee; position: relative }
.imp-fotos figure:first-child { grid-row: span 2 } .imp-fotos.n2 figure:first-child { grid-row: auto }
.imp-fotos img, .imp-grade .foto-m img { width: 100%; height: 100%; object-fit: cover; display: block }
.imp-specs { display: flex; margin: 0; border: .25mm solid #e3ddd1; flex: none }
.imp-specs > div { flex: 1; display: grid; justify-items: center; text-align: center; padding: 2.2mm 1mm; border-left: .25mm solid #e3ddd1 } .imp-specs > div:first-child { border-left: 0 }
.imp-specs .ico { width: 4.2mm; height: 4.2mm; color: var(--destaque-texto) }
.imp-specs dd { margin: .8mm 0 0; font: 400 13pt/1 var(--f-titulo) } .imp-specs dt { font: 600 5.8pt/1.4 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; color: #6b746f; margin-top: .6mm }
.imp-corpo { flex: 1; min-height: 0; display: grid; grid-template-columns: 1.35fr 1fr; gap: 7mm; overflow: hidden }
.imp-esq, .imp-dir { min-height: 0; overflow: hidden }
.imp-corpo h2 { font-size: 11pt; margin: 0 0 1.4mm; padding-top: 2.4mm }
.imp-corpo h2:first-child { padding-top: 0 }
.imp-desc { color: #333d38; text-align: justify; hyphens: auto }
.imp-tab { width: 100%; border-collapse: collapse; font-size: 7.6pt } .imp-tab th { text-align: left; font: 600 5.8pt var(--f-texto); letter-spacing: .12em; text-transform: uppercase; color: #6b746f; border-bottom: .3mm solid var(--destaque); padding: 1mm } .imp-tab td { padding: 1mm; border-bottom: .2mm solid #eee }
.imp-prox { display: grid; grid-template-columns: 1fr 1fr; gap: .8mm 4mm; font-size: 7.6pt } .imp-prox b { font-weight: 600 }
.imp-valores { margin: 0; display: grid; gap: 0; border-top: .25mm solid #e3ddd1 }
.imp-valores div { display: flex; justify-content: space-between; gap: 3mm; padding: 1.1mm 0; border-bottom: .25mm solid #eee } .imp-valores dt { color: #6b746f } .imp-valores dd { margin: 0; font-weight: 600; text-align: right }
.imp-selos { margin-top: 1.6mm; font-size: 7.6pt; color: #2f6b4a }
.imp-car { font-size: 7.5pt; color: #333d38; line-height: 1.5 } .imp-car i { color: var(--destaque); font-style: normal }
.imp-rodape { flex: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; padding-top: 2.5mm; border-top: .25mm solid #e3ddd1; font-size: 7.2pt; color: #4a544f }
.imp-aviso { max-width: 75mm; text-align: right; font-size: 6.2pt; color: #8a918d }
.imp-cab-mini { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 2.5mm; border-bottom: .5mm solid var(--destaque); flex: none }
.imp-cab-mini b { font: 400 13pt var(--f-titulo) } .imp-cab-mini span { font-size: 7pt; color: #6b746f; letter-spacing: .08em }
.imp-grade { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 3mm }
.imp-grade figure { display: flex; flex-direction: column }
.imp-grade .foto-m img { flex: 1; min-height: 0 }
.imp-grade figcaption { position: absolute; left: 0; bottom: 0; z-index: 3; font-size: 6.8pt; color: #fff; padding: 1.2mm 2.4mm; background: rgba(15,25,21,.72) }
.imp-grade .planta-imp { background: #fff; border: .25mm solid #e3ddd1 } .imp-grade .planta-imp img { flex: 1; min-height: 0; width: 100%; object-fit: contain; padding: 2mm }
.imp-pag .foto-m::after { font-size: 16pt !important }

/* Bairros: todos do mesmo tamanho (opção no painel) */
html[data-bairros-grade=iguais] .bairros-grade { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px }
html[data-bairros-grade=iguais] .bairros-grade .bairro-tile[class] { flex: 0 1 calc((100% - 40px) / 3); min-height: 340px; grid-row: auto; grid-column: auto }
html[data-bairros-grade=iguais] .bairros-grade[class] .bairro-tile[class] .bairro-nome b { font-size: calc(34px * var(--t-escala)) }
@media (max-width: 860px) { html[data-bairros-grade=iguais] .bairros-grade .bairro-tile[class] { flex-basis: calc((100% - 20px) / 2); min-height: 260px } }
@media (max-width: 520px) { html[data-bairros-grade=iguais] .bairros-grade .bairro-tile[class] { flex-basis: 100%; min-height: 220px } }

.campo-isca { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden }
.form-lead { position: relative }
