/* Ladvig Imóveis — visual preto e dourado da marca, mobile first */
:root {
    --preto: #0c0b09;
    --preto-2: #16140f;
    --preto-3: #211e17;
    --ouro: #c9a24a;
    --ouro-claro: #e6cb86;
    --ouro-escuro: #9c7a2c;
    --marfim: #f7f3ea;
    --marfim-2: #efe8d8;
    --tinta: #1d1a14;
    --texto-claro: #ece6d8;
    --cinza: #8e877a;
    --cinza-claro: #b9b2a3;
    --verde-wpp: #1fa855;
    --raio: 14px;
    --sombra: 0 10px 30px rgba(0, 0, 0, .18);
    --fonte-titulo: "Lora", Georgia, serif; /* números retos (a Cormorant tinha algarismos de estilo antigo) */
    --fonte-texto: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
    --gradiente-ouro: linear-gradient(135deg, #f0d896 0%, #c9a24a 45%, #9c7a2c 100%);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte-texto); font-size: 16px; line-height: 1.65; color: var(--tinta); background: var(--marfim); }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--fonte-titulo); font-weight: 600; line-height: 1.15; margin: 0 0 .5em; letter-spacing: .01em; }
h1 { font-size: clamp(1.85rem, 6.2vw, 3.1rem); }
h2 { font-size: clamp(1.55rem, 4.8vw, 2.25rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
.container { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.secao { padding: 64px 0; }
.secao-escura { background: var(--preto); color: var(--texto-claro); }
.secao-escura-2 { background: var(--preto-2); color: var(--texto-claro); }
.secao-clara-2 { background: var(--marfim-2); }
.sobretitulo { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--ouro-escuro); margin-bottom: 10px; }
.secao-escura .sobretitulo, .secao-escura-2 .sobretitulo { color: var(--ouro); }
.texto-ouro { background: var(--gradiente-ouro); -webkit-background-clip: text; background-clip: text; color: transparent; }
.centro { text-align: center; }
.intro { max-width: 680px; margin: 0 auto 36px; color: var(--cinza); }
.secao-escura .intro, .secao-escura-2 .intro { color: var(--cinza-claro); }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* botões */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border-radius: 999px; border: 0; font: 600 .95rem var(--fonte-texto); text-decoration: none; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.botao:hover { transform: translateY(-1px); }
.botao-ouro { background: var(--gradiente-ouro); color: #1a1408; box-shadow: 0 8px 22px rgba(201, 162, 74, .3); }
.botao-wpp { background: var(--verde-wpp); color: #fff; box-shadow: 0 8px 22px rgba(31, 168, 85, .28); }
.botao-contorno { background: transparent; color: var(--ouro-claro); border: 1px solid rgba(201, 162, 74, .6); }
.botao-contorno-escuro { background: transparent; color: var(--tinta); border: 1px solid rgba(29, 26, 20, .25); }
.botao svg { width: 20px; height: 20px; flex: 0 0 20px; }
.botao-bloco { width: 100%; }

/* cabeçalho */
.topo { position: sticky; top: 0; z-index: 50; background: rgba(12, 11, 9, .94); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(201, 162, 74, .18); }
.topo .container { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texto-claro); }
.marca img { width: 44px; height: 40px; object-fit: contain; }
.marca strong { display: block; font-family: var(--fonte-titulo); font-size: 1.2rem; letter-spacing: .18em; line-height: 1; }
.marca small { display: block; font-size: .58rem; letter-spacing: .42em; color: var(--ouro); margin-top: 4px; }
.menu-botao { width: 46px; height: 46px; border: 1px solid rgba(201, 162, 74, .35); background: transparent; border-radius: 12px; color: var(--ouro-claro); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.menu-botao svg { width: 22px; height: 22px; }
.menu { position: fixed; inset: 68px 0 auto 0; background: var(--preto); border-bottom: 1px solid rgba(201, 162, 74, .2); display: none; flex-direction: column; padding: 8px 20px 20px; }
.menu.aberto { display: flex; }
.menu a { color: var(--texto-claro); text-decoration: none; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .06); font-weight: 500; }
.menu a.botao { border: 0; margin-top: 12px; color: #fff; }

@media (min-width: 900px) {
    .menu-botao { display: none; }
    .menu { position: static; display: flex; flex-direction: row; align-items: center; gap: 26px; padding: 0; background: transparent; border: 0; }
    .menu a { border: 0; padding: 0; font-size: .9rem; color: var(--cinza-claro); }
    .menu a:hover { color: var(--ouro-claro); }
    .menu a.botao { margin: 0; min-height: 42px; padding: 0 18px; font-size: .85rem; }
}

/* destaque inicial */
.inicio { position: relative; background: radial-gradient(1200px 500px at 70% -10%, rgba(201, 162, 74, .18), transparent 60%), var(--preto); color: var(--texto-claro); padding: 56px 0 64px; overflow: hidden; }
.inicio .container { display: grid; gap: 36px; grid-template-columns: minmax(0, 1fr); }
.inicio h1 { color: #fff; }
.inicio p.lead { font-size: 1.05rem; color: var(--cinza-claro); max-width: 560px; }
.inicio .acoes { display: flex; flex-direction: column; gap: 12px; margin-top: 26px; }
.selo-creci { display: inline-flex; flex-wrap: wrap; max-width: 100%; line-height: 1.4; align-items: center; gap: 8px; font-size: .78rem; color: var(--ouro-claro); border: 1px solid rgba(201, 162, 74, .35); border-radius: 999px; padding: 6px 14px; margin-bottom: 18px; }
.selo-creci svg { width: 16px; height: 16px; }
.inicio-logo { width: 100%; max-width: min(360px, 100%); height: auto; margin: 0 auto; border-radius: 24px; box-shadow: 0 30px 60px rgba(0, 0, 0, .5); }
@media (min-width: 900px) {
    .inicio { padding: 90px 0; }
    .inicio .container { grid-template-columns: 1.15fr .85fr; align-items: center; }
    .inicio .acoes { flex-direction: row; }
}

/* pilares */
.pilares { display: grid; gap: 16px; }
.pilar { background: var(--preto-3); border: 1px solid rgba(201, 162, 74, .18); border-radius: var(--raio); padding: 26px 22px; }
.pilar .icone { width: 52px; height: 52px; border-radius: 14px; background: rgba(201, 162, 74, .12); color: var(--ouro); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.pilar .icone svg { width: 26px; height: 26px; }
.pilar h3 { color: #fff; }
.pilar p { color: var(--cinza-claro); margin: 0; font-size: .95rem; }
@media (min-width: 760px) { .pilares { grid-template-columns: repeat(3, 1fr); } }

/* MCMV */
.mcmv { display: grid; gap: 28px; }
.passos { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; counter-reset: passo; }
.passos li { counter-increment: passo; background: #fff; border-radius: var(--raio); padding: 18px 18px 18px 64px; position: relative; box-shadow: 0 2px 10px rgba(0, 0, 0, .04); }
.passos li::before { content: counter(passo); position: absolute; left: 16px; top: 16px; width: 34px; height: 34px; border-radius: 50%; background: var(--gradiente-ouro); color: #1a1408; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.passos strong { display: block; margin-bottom: 2px; }
.passos span { color: var(--cinza); font-size: .93rem; }
.caixa-destaque { background: var(--preto); color: var(--texto-claro); border-radius: 20px; padding: 28px 24px; }
.caixa-destaque h3 { color: #fff; }
@media (min-width: 900px) { .mcmv { grid-template-columns: 1.2fr .8fr; align-items: start; } }

/* imóveis */
.filtros { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
.filtros select, .filtros input { width: 100%; height: 48px; border: 1px solid rgba(29, 26, 20, .15); border-radius: 12px; padding: 0 12px; font: 500 .9rem var(--fonte-texto); background: #fff; color: var(--tinta); }
.filtros .largo { grid-column: 1 / -1; }
@media (min-width: 900px) { .filtros { grid-template-columns: repeat(4, 1fr) auto; } .filtros .largo { grid-column: auto; } }
.grade-imoveis { display: grid; gap: 18px; }
@media (min-width: 640px) { .grade-imoveis { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grade-imoveis { grid-template-columns: repeat(3, 1fr); } }
.cartao-imovel { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: var(--sombra); text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.cartao-imovel .foto { position: relative; aspect-ratio: 4 / 3; background: var(--marfim-2); }
.cartao-imovel .foto img { width: 100%; height: 100%; object-fit: cover; }
.etiqueta { position: absolute; top: 12px; left: 12px; background: rgba(12, 11, 9, .82); color: var(--ouro-claro); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 6px 10px; border-radius: 999px; }
.etiqueta.status { left: auto; right: 12px; background: var(--ouro); color: #1a1408; }
.cartao-imovel .corpo { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.cartao-imovel .preco { font-family: var(--fonte-titulo); font-size: 1.4rem; font-weight: 700; color: var(--ouro-escuro); line-height: 1; }
.cartao-imovel .titulo { font-weight: 600; }
.cartao-imovel .local { color: var(--cinza); font-size: .88rem; }
.atributos { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--cinza); font-size: .83rem; margin-top: 4px; }
.vazio .botao { margin: 6px 4px 0 !important; max-width: 100%; }
@media (max-width: 600px) { .vazio .botao { width: 100%; } }
.vazio { text-align: center; color: var(--cinza); padding: 30px 10px; background: #fff; border-radius: var(--raio); }

/* sobre / equipe */
.sobre { display: grid; gap: 28px; align-items: center; }
.foto-corretora { width: 100%; max-width: 360px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; margin: 0 auto; box-shadow: var(--sombra); background: var(--preto-3); }
.historia p { color: var(--cinza-claro); }
.corretor-cartao { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid rgba(201, 162, 74, .25); border-radius: var(--raio); margin-top: 18px; }
.corretor-cartao img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
@media (min-width: 900px) { .sobre { grid-template-columns: .8fr 1.2fr; } }

/* cases */
.cases { display: grid; gap: 16px; }
.case { background: #fff; border-radius: var(--raio); padding: 24px; box-shadow: 0 2px 12px rgba(0, 0, 0, .05); border-top: 3px solid var(--ouro); }
.case p { color: #4a4438; }
.case .quem { font-size: .85rem; color: var(--cinza); }
@media (min-width: 900px) { .cases { grid-template-columns: repeat(3, 1fr); } }

/* blog (lista) */
.grade-posts { display: grid; gap: 18px; }
@media (min-width: 760px) { .grade-posts { grid-template-columns: repeat(3, 1fr); } }
.cartao-post { background: #fff; border-radius: 18px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 2px 12px rgba(0, 0, 0, .05); display: flex; flex-direction: column; }
.cartao-post .capa { aspect-ratio: 16 / 9; background: var(--preto) center / cover no-repeat; display: flex; align-items: center; justify-content: center; }
.cartao-post .capa img { width: 64px; opacity: .9; }
.cartao-post .corpo { padding: 18px; }
.cartao-post time { font-size: .78rem; color: var(--cinza); }
.cartao-post h3 { font-size: 1.3rem; margin-top: 4px; }

/* FAQ */
.faq { max-width: 820px; margin: 0 auto; }
.faq details { background: #fff; border-radius: var(--raio); margin-bottom: 10px; box-shadow: 0 2px 10px rgba(0, 0, 0, .04); }
.faq summary { list-style: none; cursor: pointer; padding: 18px 52px 18px 20px; font-weight: 600; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--ouro-escuro); }
.faq details[open] summary::after { content: "–"; }
.faq .resposta { padding: 0 20px 18px; color: #4a4438; }

/* contato */
.contato { display: grid; gap: 20px; }
.canal { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: var(--preto-3); border: 1px solid rgba(201, 162, 74, .2); border-radius: var(--raio); text-decoration: none; color: var(--texto-claro); }
.canal svg { width: 26px; height: 26px; color: var(--ouro); flex: 0 0 26px; }
.canal small { display: block; color: var(--cinza-claro); }
.form-contato { background: var(--preto-3); border-radius: 20px; padding: 22px; display: grid; gap: 12px; }
.form-contato label { font-size: .8rem; color: var(--cinza-claro); display: grid; gap: 6px; }
.form-contato input, .form-contato select, .form-contato textarea { width: 100%; border: 1px solid rgba(201, 162, 74, .25); background: var(--preto-2); color: var(--texto-claro); border-radius: 12px; padding: 12px; font: 500 .95rem var(--fonte-texto); }
.form-contato textarea { min-height: 96px; resize: vertical; }
@media (min-width: 900px) { .contato { grid-template-columns: 1fr 1fr; align-items: start; } }

/* rodapé */
.rodape { background: #080706; color: var(--cinza-claro); padding: 40px 0 96px; font-size: .88rem; }
.rodape .container { display: grid; gap: 22px; }
.rodape a { color: var(--ouro-claro); text-decoration: none; }
.rodape .legal { border-top: 1px solid rgba(255, 255, 255, .07); padding-top: 18px; font-size: .78rem; color: var(--cinza); }
@media (min-width: 900px) { .rodape { padding-bottom: 40px; } .rodape .container { grid-template-columns: 1.4fr 1fr 1fr; } .rodape .legal { grid-column: 1 / -1; } }

/* WhatsApp flutuante */
.wpp-flutuante { position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 60px; height: 60px; border-radius: 50%; background: var(--verde-wpp); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 26px rgba(0, 0, 0, .3); }
.wpp-flutuante svg { width: 32px; height: 32px; }

/* página do imóvel */
.galeria { display: grid; gap: 8px; }
.galeria .principal { aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: var(--marfim-2); }
.galeria .principal img { width: 100%; height: 100%; object-fit: cover; }
.miniaturas { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.miniaturas button { flex: 0 0 76px; height: 58px; border: 2px solid transparent; border-radius: 10px; overflow: hidden; padding: 0; cursor: pointer; background: none; }
.miniaturas button.ativa { border-color: var(--ouro); }
.miniaturas img { width: 100%; height: 100%; object-fit: cover; }
.detalhe { display: grid; gap: 28px; }
.ficha { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 18px 0; }
.ficha div { background: #fff; border-radius: 12px; padding: 12px; }
.ficha small { display: block; color: var(--cinza); font-size: .75rem; }
.ficha strong { font-size: 1.05rem; }
.lateral { background: var(--preto); color: var(--texto-claro); border-radius: 20px; padding: 24px; position: sticky; top: 86px; }
@media (min-width: 900px) { .detalhe { grid-template-columns: 1.4fr .8fr; align-items: start; } .ficha { grid-template-columns: repeat(4, 1fr); } }

/* artigo */
.artigo { max-width: 760px; margin: 0 auto; }
.artigo .capa-artigo { border-radius: 18px; margin-bottom: 24px; }
.artigo h2 { margin-top: 1.4em; }
.artigo h3 { margin-top: 1.2em; font-size: 1.35rem; }
.artigo li { margin-bottom: .35em; }
.artigo .aviso { background: var(--marfim-2); border-left: 4px solid var(--ouro); padding: 14px 18px; border-radius: 10px; font-size: .92rem; }
.voltar { display: inline-flex; gap: 6px; color: var(--ouro-escuro); text-decoration: none; font-weight: 600; margin-bottom: 18px; }
@media (min-width: 900px) and (max-width: 1140px) { .menu { gap: 16px; } .menu a { font-size: .8rem; } }

/* motivos (5 itens): 1 coluna no celular, 2 no tablet, 3 + 2 no computador */
.motivos { display: grid; gap: 14px; }
.motivos .pilar h3 { font-size: 1.3rem; }
@media (min-width: 640px) { .motivos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .motivos { grid-template-columns: repeat(6, 1fr); } .motivos .pilar { grid-column: span 2; } .motivos .pilar:nth-child(4) { grid-column: 2 / span 2; } }

/* entrevista do imóvel ideal (questionário passo a passo) */
.inicio-curto { padding: 40px 0 44px; }
@media (min-width: 900px) { .inicio-curto .container { grid-template-columns: minmax(0, 1fr); } .inicio-curto p.lead { max-width: 760px; } }
.assistente { max-width: 760px; margin: 0 auto; background: #fff; border-radius: 22px; padding: 22px 18px 18px; box-shadow: var(--sombra); }
@media (min-width: 640px) { .assistente { padding: 32px 34px 26px; } }
.progresso { height: 6px; background: var(--marfim-2); border-radius: 999px; overflow: hidden; }
.progresso-barra { height: 100%; width: 0; background: var(--gradiente-ouro); transition: width .3s ease; }
.passo-contagem { font-size: .78rem; font-weight: 600; letter-spacing: .06em; color: var(--ouro-escuro); margin: 10px 0 14px; }
.assistente fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.assistente legend { padding: 0; margin-bottom: 6px; }
.assistente legend h2 { font-size: clamp(1.6rem, 5vw, 2.1rem); margin: 0; }
.assistente .ajuda { color: var(--cinza); font-size: .9rem; margin: 6px 0 14px; }
.pergunta { margin: 18px 0; }
.pergunta > strong, .contador strong, .item strong { display: block; font-size: .95rem; margin-bottom: 8px; }
.pergunta small, .assistente label small { font-weight: 400; color: var(--cinza); }
.opcoes { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.opcoes label, .importancia label { position: relative; cursor: pointer; }
.opcoes input, .importancia input, .consentimento input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opcoes span { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid rgba(29, 26, 20, .18); border-radius: 999px; font-size: .9rem; font-weight: 500; background: #fff; transition: all .15s ease; }
.opcoes svg { width: 20px; height: 20px; }
.opcoes input:checked + span { background: var(--preto); color: var(--ouro-claro); border-color: var(--preto); }
.opcoes input:focus-visible + span, .importancia input:focus-visible + span { outline: 2px solid var(--ouro); outline-offset: 2px; }
.opcoes-grandes span { min-height: 54px; padding: 10px 20px; font-size: .95rem; }
.importancia { display: inline-flex; background: var(--marfim); border-radius: 999px; padding: 4px; gap: 2px; max-width: 100%; }
.importancia span { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 6px 14px; border-radius: 999px; font-size: .82rem; font-weight: 600; color: var(--cinza); white-space: nowrap; }
.importancia svg { width: 16px; height: 16px; }
.importancia input:checked + span { background: #fff; color: var(--tinta); box-shadow: 0 2px 8px rgba(0, 0, 0, .1); }
.importancia input[value="indispensavel"]:checked + span { background: var(--preto); color: var(--ouro-claro); }
.importancia.tres { display: flex; width: 100%; }
.importancia.tres label { flex: 1 1 0; min-width: 0; }
.importancia.tres span { justify-content: center; padding: 6px 4px; font-size: .78rem; }
@media (min-width: 640px) { .importancia.tres { display: inline-flex; width: auto; } .importancia.tres label { flex: 0 0 auto; } .importancia.tres span { padding: 6px 12px; } }
.campos-2 { display: grid; gap: 12px; margin-top: 14px; }
@media (min-width: 640px) { .campos-2 { grid-template-columns: 1fr 1fr; } }
.assistente label:not(.consentimento) { font-size: .85rem; font-weight: 600; display: grid; gap: 6px; }
.opcoes label, .importancia label { display: block !important; }
.assistente input:not([type=radio]):not([type=checkbox]), .assistente select, .assistente textarea { width: 100%; border: 1px solid rgba(29, 26, 20, .2); background: #fff; color: var(--tinta); border-radius: 12px; padding: 12px; font: 500 .95rem var(--fonte-texto); }
.assistente textarea { resize: vertical; }
.campo { margin: 14px 0; }
.mapa-entrevista { height: 340px; border-radius: 16px; overflow: hidden; background: var(--marfim-2); z-index: 0; }
@media (min-width: 640px) { .mapa-entrevista { height: 420px; } }
.pontos { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 8px; }
.pontos li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; background: var(--marfim); border-radius: 12px; font-size: .88rem; }
.pontos .ponto-nome { flex: 1 1 160px; font-weight: 600; }
.pontos label { display: inline-flex !important; align-items: center; gap: 6px; font-weight: 500 !important; }
.pontos select { width: auto !important; padding: 6px 8px !important; }
.pontos button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; cursor: pointer; color: var(--cinza); }
.contador { padding: 14px 0; border-bottom: 1px solid var(--marfim-2); }
.contador-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.contador-topo strong { margin: 0 !important; }
.contador-valor { display: flex; align-items: center; gap: 6px; }
.contador-valor button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(29, 26, 20, .2); background: #fff; font-size: 1.3rem; cursor: pointer; color: var(--tinta); }
.contador-valor output { min-width: 92px; text-align: center; font-weight: 600; color: var(--cinza); }
.contador.ativo output { color: var(--tinta); font-size: 1.1rem; }
.contador .importancia { margin-top: 10px; }
.itens { display: grid; gap: 0; }
.item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 12px 0; border-bottom: 1px solid var(--marfim-2); }
.item strong { margin: 0 !important; }
.resumo { margin: 18px 0; }
.resumo h3 { font-size: 1.3rem; margin-bottom: 10px; }
.resumo-grupo { background: var(--marfim); border-radius: 14px; padding: 12px 16px; margin-bottom: 10px; }
.resumo-grupo.indispensavel { background: var(--preto); color: var(--texto-claro); }
.resumo-grupo.indispensavel strong { color: var(--ouro-claro); }
.resumo-grupo ul { margin: 6px 0 0; padding-left: 18px; font-size: .9rem; }
.resumo-grupo p { margin: 6px 0 0; font-size: .9rem; color: var(--cinza); }
.consentimento { display: flex; gap: 10px; align-items: flex-start; font-size: .85rem; color: #4a4438; cursor: pointer; position: relative; }
.consentimento::before { content: ""; flex: 0 0 22px; height: 22px; border: 2px solid var(--ouro-escuro); border-radius: 6px; margin-top: 1px; }
.consentimento:has(input:checked)::before { background: var(--ouro-escuro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 16px no-repeat; }
.consentimento input { left: 4px; top: 4px; }
.erro-envio { background: #fbe9e5; color: #8a2a17; border-radius: 12px; padding: 10px 14px; font-size: .9rem; margin: 14px 0 0; }
.navegacao { display: flex; justify-content: space-between; gap: 10px; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--marfim-2); }
.navegacao .botao { flex: 1 1 0; padding: 0 16px; }
@media (min-width: 640px) { .navegacao .botao { flex: 0 0 auto; min-width: 160px; } }
.final { text-align: center; padding: 20px 0 8px; }
.final .sucesso { width: 72px; height: 72px; margin: 0 auto 14px; border-radius: 50%; background: var(--preto); color: var(--ouro); display: flex; align-items: center; justify-content: center; }
.final .sucesso svg { width: 38px; height: 38px; }
[hidden] { display: none !important; }

/* postagens do Instagram na página inicial */
.grade-instagram { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; max-width: 900px; margin: 0 auto; }
@media (min-width: 640px) { .grade-instagram { gap: 10px; } }
.post-instagram { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--marfim-2); border-radius: 4px; }
@media (min-width: 640px) { .post-instagram { border-radius: 12px; } }
.post-instagram img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.post-instagram:hover img { transform: scale(1.04); }
.tipo-post { position: absolute; top: 6px; right: 6px; color: #fff; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6)); }
.tipo-post svg { width: 20px; height: 20px; display: block; }

/* vitrine: Para morar agora x Na planta, lista x mapa */
.abas-fase { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 640px; margin: 0 auto 18px; }
.abas-fase button { display: grid; gap: 2px; text-align: center; padding: 12px 10px; border-radius: 16px; border: 1px solid rgba(29, 26, 20, .15); background: #fff; color: var(--tinta); cursor: pointer; font-family: var(--fonte-texto); }
.abas-fase strong { font-size: .95rem; }
.abas-fase small { font-size: .74rem; color: var(--cinza); }
.abas-fase button[aria-selected="true"] { background: var(--preto); border-color: var(--preto); color: var(--ouro-claro); }
.abas-fase button[aria-selected="true"] small { color: var(--cinza-claro); }
.vista-imoveis { display: flex; justify-content: center; gap: 4px; margin: -6px auto 16px; background: #fff; border-radius: 999px; padding: 4px; width: max-content; }
.vista-imoveis button { border: 0; background: transparent; padding: 8px 18px; border-radius: 999px; font: 600 .85rem var(--fonte-texto); color: var(--cinza); cursor: pointer; }
.vista-imoveis button[aria-selected="true"] { background: var(--preto); color: var(--ouro-claro); }
.mapa-imoveis { height: 70vh; min-height: 380px; max-height: 620px; border-radius: 18px; overflow: hidden; box-shadow: var(--sombra); z-index: 0; background: var(--marfim-2); }
.fase-imovel { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ouro-escuro); }
.fase-imovel.planta { color: #1f5f8c; }
.pino-imovel { background: var(--gradiente-ouro); border: 2px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 3px 8px rgba(0, 0, 0, .35); display: flex !important; align-items: center; justify-content: center; }
.pino-imovel svg { width: 55%; height: 55%; transform: rotate(45deg); fill: #1a1408; }
.popup-imovel { display: grid; gap: 2px; text-decoration: none; color: var(--tinta) !important; font-family: var(--fonte-texto); }
.popup-imovel img { width: 100%; height: 110px; object-fit: cover; border-radius: 8px; margin-bottom: 6px; }
.popup-imovel strong { font-size: 1rem; }
.popup-imovel span { font-size: .85rem; }
.popup-imovel em { font-style: normal; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ouro-escuro); }
.popup-imovel small { color: var(--cinza); font-size: .75rem; }
.mapa-detalhe { height: 300px; border-radius: 16px; overflow: hidden; margin: 10px 0 24px; z-index: 0; background: var(--marfim-2); }

/* matéria em destaque no blog e na página inicial */
.selo-destaque { display: inline-block; background: var(--gradiente-ouro); color: #1a1408; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; margin-bottom: 6px; }
.cartao-post.destaque { box-shadow: 0 0 0 2px var(--ouro), var(--sombra); }
@media (min-width: 760px) {
    .cartao-post.destaque { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr; }
    .cartao-post.destaque .capa { height: 100%; min-height: 320px; }
    .cartao-post.destaque .corpo { align-self: center; padding: 28px 32px; }
    .cartao-post.destaque h2, .cartao-post.destaque h3 { font-size: 1.6rem !important; }
}

/* pontos de referência perto do imóvel */
.lista-perto { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 8px; }
@media (min-width: 640px) { .lista-perto { grid-template-columns: 1fr 1fr; } }
.lista-perto li { display: grid; gap: 1px; background: #fff; border-radius: 12px; padding: 10px 14px; border-left: 3px solid #1f5f8c; }
.lista-perto .perto-tipo { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1f5f8c; }
.lista-perto small { color: var(--cinza); }

/* sublinhado dourado de destaque ("seu imóvel" no título da página inicial) */
.sublinhado { position: relative; display: inline-block; white-space: nowrap; }
.sublinhado::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.04em; height: .09em; min-height: 3px; border-radius: 3px; background: var(--gradiente-ouro); }
