@charset "UTF-8";
/* VERSAO-CSS: 2026-10-02-tipologias */
/* =============================================================================
   Parker Imóveis · Site público 4.0
   Linguagem visual de incorporadora de alto padrão: cabeçalho branco fixo,
   hero em tela cheia, cantos retos, rótulos com traço, títulos serifados leves.
   Sem estilos inline: compatível com CSP (style-src 'self').
   ============================================================================= */

@font-face { font-family: "Montserrat"; font-weight: 400; font-display: swap; src: url("/assets/fonts/montserrat-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 500; font-display: swap; src: url("/assets/fonts/montserrat-latin-500.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 600; font-display: swap; src: url("/assets/fonts/montserrat-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-weight: 400; font-display: swap; src: url("/assets/fonts/playfair-display-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-weight: 600; font-display: swap; src: url("/assets/fonts/playfair-display-latin-600.woff2") format("woff2"); }

:root {
    --tinta: #1b2a3a;
    --tinta-2: #26394d;
    --noite: #0f1924;
    --latao: #a8844a;
    --latao-escuro: #7d6034;
    --latao-claro: #efe4cf;
    --claro: #f3f2ef;
    --claro-2: #e9e7e2;
    --branco: #ffffff;
    --texto: #1e2630;
    --suave: #5f6975;
    --linha: #e2dfd9;
    --verde: #2e6f52;
    --vermelho: #b42318;
    --fonte: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;
    --titulo: "Playfair Display", Georgia, "Times New Roman", serif;
    --topo: 4rem;
    --container: 80rem;
    --lento: .5s cubic-bezier(.2, .7, .2, 1);
}
@media (min-width: 1536px) { :root { --topo: 4.4rem; } }

*, *::before, *::after { box-sizing: border-box; }
/* Escala: 15px de base. A Montserrat é mais larga que a Lato da Lavvi; 15px nela equivale ao 16px deles */
html { font-size: 93.75%; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo) + 1rem); overflow-x: clip; max-width: 100vw; }
body { margin: 0; padding-top: var(--topo); font: 400 1rem/1.6 var(--fonte); color: var(--texto); background: var(--branco); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, video { max-width: 100%; display: block; }
a { color: inherit; text-underline-offset: 3px; }
h1, h2, h3, h4, p, figure { margin: 0; }
ul { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--latao); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--branco); padding: .75rem 1rem; }
.pular:focus { top: 1rem; }
.icon { width: 1.25rem; height: 1.25rem; flex: none; }
.icon--p { width: 1rem; height: 1rem; }
main { outline: none; }
/* Palavras longas (e-mail, link) quebram em vez de empurrar a página para o lado */
body { overflow-wrap: anywhere; }
input, textarea, select { overflow-wrap: normal; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.25rem; }
.container--texto { max-width: 48rem; }
@media (min-width: 1024px) { .container { padding: 0 2.5rem; } }

/* --- Marca -------------------------------------------------------------------- */
.marca { font: 400 1.5rem/1 var(--titulo); color: var(--tinta); white-space: nowrap; }
.marca span { font: 500 .6875rem/1 var(--fonte); letter-spacing: .18em; text-transform: uppercase; color: var(--latao-escuro); margin-left: .45rem; }
.marca--clara { color: var(--branco); }
.marca--clara span { color: var(--latao); }

/* --- Rótulos e etiquetas ---------------------------------------------------------- */
.rotulo-linha { display: flex; align-items: center; gap: 1.25rem; font: 500 .8rem/1 var(--fonte); letter-spacing: .08em; text-transform: uppercase; color: var(--latao-escuro); margin: 0 0 .375rem; }
.rotulo-linha::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .7; }
.rotulo-linha span { white-space: nowrap; }
.rotulo-linha--curta::after { flex: 0 0 3.5rem; }
.rotulo-linha--clara { color: var(--latao); }

.etiqueta { display: inline-block; padding: .55rem 1rem; font: 600 .7333rem/1 var(--fonte); letter-spacing: .08em; text-transform: uppercase; }
.etiqueta--vidro { color: var(--branco); background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.etiqueta--foto { position: absolute; top: .75rem; left: .75rem; z-index: 2; background: var(--branco); color: var(--tinta); }
.etiquetas { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; }

/* --- Botões ------------------------------------------------------------------------ */
.botao {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 3.125rem; padding: 0 2.25rem; border: 1px solid var(--tinta); border-radius: 0;
    background: var(--tinta); color: var(--branco); cursor: pointer; text-decoration: none; white-space: nowrap;
    font: 600 .8333rem/1 var(--fonte); letter-spacing: .08em; text-transform: uppercase;
    transition: background-color var(--lento), border-color var(--lento), color var(--lento);
}
.botao:hover { background: var(--latao); border-color: var(--latao); color: var(--branco); }
.botao .icon { width: 1rem; height: 1rem; }
.botao__seta { margin-right: -1.5rem; opacity: 0; transform: translateX(-.5rem); transition: opacity var(--lento), transform var(--lento), margin var(--lento); }
.botao:hover .botao__seta, a:hover .botao__seta { margin-right: 0; opacity: 1; transform: none; }
.botao--claro { background: var(--branco); border-color: var(--branco); color: var(--tinta); }
.botao--claro:hover { background: var(--latao); border-color: var(--latao); }
.botao--vidro { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .45); color: var(--branco); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.botao--vidro:hover { background: var(--branco); color: var(--tinta); border-color: var(--branco); }
.botao--contorno { background: transparent; color: var(--tinta); border-color: var(--tinta); }
.botao--contorno:hover { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }
.botao--branco { background: var(--branco); border-color: var(--branco); color: var(--tinta); }
.botao--pequeno { min-height: 2.25rem; padding: 0 1rem; font-size: .6875rem; }
.botao--cheio { width: 100%; }
.botao--whats { width: 100%; margin-top: .75rem; background: transparent; color: var(--tinta); border-color: var(--linha); }
.botao--whats:hover { background: var(--verde); border-color: var(--verde); color: var(--branco); }
.botao[disabled], .botao.is-enviando { opacity: .6; pointer-events: none; }

/* --- Cabeçalho ------------------------------------------------------------------- */
.topo { position: fixed; inset: 0 0 auto; z-index: 40; height: var(--topo); background: var(--branco); border-bottom: 1px solid var(--linha); transition: box-shadow .3s; }
.topo.is-rolado { box-shadow: 0 6px 24px rgba(15, 25, 36, .06); }
.topo__interno { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.topo__marca { text-decoration: none; display: flex; align-items: center; }
.topo__marca img { height: 2.2rem; width: auto; max-width: 58vw; object-fit: contain; }
@media (min-width: 1024px) { .topo__marca img { height: 2.6rem; max-width: 20rem; } }
.topo__nav { display: flex; align-items: center; gap: 2rem; }
.topo__nav ul { list-style: none; display: none; gap: 1.75rem; }
.topo__nav a { text-decoration: none; font: 500 .8667rem/1 var(--fonte); letter-spacing: .06em; text-transform: uppercase; color: rgba(30, 38, 48, .6); transition: color .3s; }
.topo__nav a:hover, .topo__nav a[aria-current="page"] { color: var(--tinta); }
.topo__nav a[aria-current="page"] { box-shadow: 0 1px 0 var(--latao); padding-bottom: .25rem; }
@media (min-width: 1024px) { .topo__nav ul { display: flex; } }
.topo__menu { display: grid; gap: .3125rem; width: 3rem; padding: .5rem 0; background: none; border: 0; cursor: pointer; }
.topo__menu span[aria-hidden] { display: block; height: 2px; background: var(--tinta); transition: transform var(--lento), background-color .3s; }
.topo__menu:hover span[aria-hidden]:nth-child(1) { transform: translateX(1rem); background: var(--latao); }
.topo__menu:hover span[aria-hidden]:nth-child(2) { transform: translateX(.5rem); background: var(--latao); }
.topo__menu:hover span[aria-hidden]:nth-child(3) { background: var(--latao); }

.menu { position: fixed; inset: 0; z-index: 60; background: var(--tinta); color: var(--branco); overflow-y: auto; animation: aparecer .35s ease; }
.menu__interno { position: relative; min-height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 3rem; padding-top: 6rem; padding-bottom: 3rem; }
.menu__fechar { position: absolute; top: 1.25rem; right: 1.25rem; width: 3rem; height: 3rem; display: grid; place-items: center; background: none; border: 1px solid rgba(255, 255, 255, .25); color: var(--branco); cursor: pointer; }
.menu__fechar:hover { background: var(--branco); color: var(--tinta); }
.menu nav { display: grid; gap: 2.5rem; }
.menu__principal { list-style: none; display: grid; gap: .5rem; }
.menu__principal a { font: 400 clamp(2rem, 5vw, 3.25rem)/1.2 var(--titulo); text-decoration: none; color: var(--branco); transition: color .3s, padding .3s; }
.menu__principal a:hover { color: var(--latao); padding-left: .75rem; }
.menu__secundario { list-style: none; display: flex; flex-wrap: wrap; gap: .75rem 2rem; }
.menu__secundario a { text-decoration: none; font: 500 .75rem/1 var(--fonte); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.menu__secundario a:hover { color: var(--branco); }
.menu__whats { align-self: flex-start; }
@media (min-width: 1024px) { .menu nav { grid-template-columns: 2fr 1fr; align-items: end; } .menu__secundario { flex-direction: column; } }
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }
body.menu-aberto { overflow: hidden; }

/* --- Hero ------------------------------------------------------------------------ */
.hero { position: relative; height: 82svh; min-height: 32rem; background: var(--tinta); color: var(--branco); overflow: hidden; isolation: isolate; }
@media (min-width: 1280px) { .hero { height: calc(100svh - var(--topo)); } }
.hero__slide { position: absolute; inset: 0; display: flex; align-items: flex-end; text-decoration: none; color: inherit; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; }
.hero__slide.is-ativo { opacity: 1; visibility: visible; }
.hero__midia { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero__slide.is-ativo .hero__midia { animation: aproximar 9s ease-out both; }
@keyframes aproximar { from { transform: scale(1.06); } to { transform: scale(1); } }
.hero__sombra { position: absolute; inset: auto 0 0; height: 75%; z-index: -1; background: linear-gradient(180deg, rgba(15, 25, 36, 0) 0%, rgba(15, 25, 36, .55) 55%, rgba(15, 25, 36, .85) 100%); pointer-events: none; }
.hero__conteudo { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding-bottom: 6.5rem; }
.hero--video, .hero--simples { display: flex; align-items: flex-end; }
.hero--video .hero__conteudo, .hero--simples .hero__conteudo { padding-top: 4rem; }
.hero--simples { height: auto; min-height: 30rem; background: linear-gradient(135deg, var(--tinta), var(--noite)); }
@media (min-width: 1280px) { .hero--simples { height: auto; min-height: 36rem; } }
/* Topo simples COM imagem de capa: ocupa a altura da tela, como o carrossel de imóveis */
.hero--simples:has(.hero__midia) { min-height: max(34rem, 82svh); }
@media (min-width: 1280px) { .hero--simples:has(.hero__midia) { min-height: max(36rem, calc(100svh - var(--topo))); } }
.hero__titulo { display: block; max-width: 20ch; font: 400 clamp(2.6667rem, 2.2vw + 1.9rem, 3.2rem)/1.08 var(--titulo); letter-spacing: -.01em; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.hero__texto { display: block; max-width: 40rem; font-size: clamp(1.1333rem, .5vw + 1rem, 1.2667rem); line-height: 1.5; color: rgba(255, 255, 255, .88); text-shadow: 0 1px 12px rgba(0, 0, 0, .3); }
.hero__acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.hero__indicadores { position: absolute; left: 0; right: 0; bottom: 2.5rem; z-index: 3; display: flex; gap: .625rem; }
.hero__indicadores button { flex: 0 1 4rem; height: 1.5rem; padding: 0; background: none; border: 0; cursor: pointer; position: relative; opacity: .45; transition: opacity .3s; }
.hero__indicadores button::after { content: ""; position: absolute; inset: 50% 0 auto; height: 3px; transform: translateY(-50%); background: var(--branco); }
.hero__indicadores button[aria-selected="true"] { opacity: 1; }
@media (min-width: 1024px) { .hero__conteudo { padding-bottom: 9rem; } .hero__indicadores { bottom: 4rem; } }

/* --- Filtro -------------------------------------------------------------------- */
.filtro-home { position: relative; z-index: 5; margin-top: -3.5rem; }
.filtro { background: var(--branco); border: 1px solid var(--linha); box-shadow: 0 20px 50px rgba(15, 25, 36, .1); }
.filtro__campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.filtro__campo { display: flex; flex-direction: column; gap: .375rem; padding: 1rem 1.25rem; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); min-width: 0; cursor: pointer; }
.filtro__rotulo { display: flex; align-items: center; gap: .5rem; font: 600 .7333rem/1 var(--fonte); letter-spacing: .08em; text-transform: uppercase; color: var(--suave); }
.filtro__rotulo .icon { width: 1rem; height: 1rem; color: var(--latao); }
.filtro select, .filtro input {
    width: 100%; border: 0; background: transparent; padding: .25rem 1.5rem .25rem 0; font-size: .9375rem; font-weight: 500; color: var(--tinta);
    appearance: none; cursor: pointer; outline: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8844a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right center; background-size: 1rem;
}
.filtro input { background-image: none; cursor: text; }
.filtro__campo:focus-within { background: var(--claro); }
.filtro__botao { grid-column: 1 / -1; min-height: 3.75rem; }
@media (min-width: 1024px) {
    .filtro__campos { grid-template-columns: repeat(5, minmax(0, 1fr)) auto; }
    .filtro__campo { border-bottom: 0; }
    .filtro__botao { grid-column: auto; min-height: 100%; padding: 0 2.5rem; }
    .filtro--completo .filtro__campos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .filtro--completo .filtro__campo:nth-child(-n+5) { border-bottom: 1px solid var(--linha); }
    .filtro--completo .filtro__campo:nth-child(5) { border-right: 0; }
    .filtro--completo .filtro__botao { min-height: auto; }
}
.filtro__caracteristicas { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 1rem 1.25rem; border: 0; border-top: 1px solid var(--linha); }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; }
.chip span { display: inline-block; padding: .5rem .875rem; border: 1px solid var(--linha); font-size: .8125rem; font-weight: 500; transition: all .2s; }
.chip input:checked + span { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }
.chip input:focus-visible + span { outline: 2px solid var(--latao); outline-offset: 2px; }
.chip:hover span { border-color: var(--tinta); }

/* --- Seções ---------------------------------------------------------------------- */
.secao { padding: 3.5rem 0; }
@media (min-width: 1024px) { .secao { padding: 5rem 0; } }
.secao--clara { background: var(--claro); }
.secao--degrade { background: linear-gradient(180deg, var(--claro) 0%, var(--branco) 40%); padding-top: 5.5rem; }
.secao__cabeca { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.secao__titulo { font: 400 clamp(2rem, 1.2vw + 1.6rem, 2.4rem)/1.12 var(--titulo); color: var(--tinta); }
.secao__subtitulo { margin-top: .375rem; color: var(--suave); }
.secao__botao { display: none; }
@media (min-width: 1024px) { .secao__botao { display: inline-flex; } .secao__cabeca { margin-bottom: 2.75rem; } }

/* --- Carrossel ------------------------------------------------------------------- */
.carrossel__janela { overflow: hidden; }
.carrossel__trilho {
    list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: 88%; gap: 1.25rem;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
    margin: 0 -1.25rem; padding: 0 1.25rem .5rem; scroll-padding: 0 1.25rem;
}
.carrossel__trilho::-webkit-scrollbar { display: none; }
.carrossel__item { scroll-snap-align: start; min-width: 0; }
@media (min-width: 560px) { .carrossel__trilho { grid-auto-columns: calc((100% - 1.25rem) / 2); } }
@media (min-width: 1024px) {
    .carrossel__trilho { grid-auto-columns: calc((100% - 3.75rem) / 3); gap: 1.875rem; margin: 0; padding: 0 0 .5rem; scroll-padding: 0; }
}
.carrossel__controles { display: flex; align-items: center; gap: .5rem; margin-top: 1.5rem; }
.carrossel__seta { width: 3.125rem; height: 3.125rem; display: none; place-items: center; background: none; border: 1px solid var(--linha); cursor: pointer; transition: all .3s; }
.carrossel__seta:hover:not([disabled]) { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }
.carrossel__seta[disabled] { opacity: .35; cursor: default; }
.carrossel__controles .botao { margin-left: auto; }
@media (min-width: 1024px) { .carrossel__seta { display: grid; } .carrossel__controles .botao { display: none; } }
@media (max-width: 1023px) { .botao--largo-mobile { width: 100%; } }

/* --- Card de imóvel --------------------------------------------------------------- */
.card-imovel__link { display: flex; flex-direction: column; gap: .25rem; text-decoration: none; color: inherit; height: 100%; }
.card-imovel__imagem { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--claro-2); margin-bottom: .875rem; }
.card-imovel__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.card-imovel__link:hover .card-imovel__imagem img { transform: scale(1.05); }
.card-imovel__ver { position: absolute; left: .75rem; bottom: .75rem; z-index: 2; min-width: 10.5rem; }
.card-imovel__link:hover .card-imovel__ver { background: var(--tinta); border-color: var(--tinta); color: var(--branco); }
.card-imovel__titulo { font: 400 1.4rem/1.2 var(--titulo); color: var(--tinta); }
@media (min-width: 1024px) { .card-imovel__titulo { font-size: 1.6rem; } }
.card-imovel__specs { font-size: .9375rem; color: var(--suave); }
.card-imovel__preco { margin-top: .25rem; font-weight: 600; color: var(--tinta); }

.grade-imoveis { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem 1.875rem; }
@media (min-width: 640px) { .grade-imoveis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grade-imoveis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* --- Bairros --------------------------------------------------------------------- */
.grade-bairros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 1024px) { .grade-bairros { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } }
.bairro { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 3; overflow: hidden; text-decoration: none; color: var(--branco); background: var(--tinta); isolation: isolate; }
.bairro img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.bairro::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 25, 36, 0) 35%, rgba(15, 25, 36, .8)); }
.bairro:hover img { transform: scale(1.06); }
.bairro__texto { display: flex; flex-direction: column; padding: 1rem 1.25rem; }
.bairro__nome { font: 400 clamp(1.25rem, 2.2vw, 1.75rem)/1.15 var(--titulo); }
.bairro__total { font: 500 .6875rem/1.6 var(--fonte); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }

/* --- Faixa de chamada ------------------------------------------------------------ */
.faixa { background: var(--tinta); color: var(--branco); padding: 3.5rem 0; }
.faixa--espaco { margin-top: 5rem; }
.faixa__interno { display: flex; flex-direction: column; gap: 1.75rem; }
.faixa__titulo { font: 400 clamp(1.75rem, 3.2vw, 2.5rem)/1.15 var(--titulo); margin-bottom: .5rem; }
.faixa p { color: rgba(255, 255, 255, .75); max-width: 38rem; }
.faixa__acoes { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (min-width: 1024px) { .faixa { padding: 4.5rem 0; } .faixa__interno { flex-direction: row; align-items: center; justify-content: space-between; } }

/* --- Blog (cards da home e do blog) ------------------------------------------------ */
.grade-posts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem 1.875rem; }
@media (min-width: 768px) { .grade-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grade-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.post-card { display: flex; flex-direction: column; gap: .625rem; text-decoration: none; color: inherit; }
.post-card__imagem { aspect-ratio: 16 / 9; overflow: hidden; background: var(--branco); }
.post-card__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.post-card:hover .post-card__imagem img { transform: scale(1.05); }
.post-card__titulo { font: 400 1.2rem/1.3 var(--titulo); color: var(--tinta); }
@media (min-width: 1024px) { .post-card__titulo { font-size: 1.3333rem; } }
.post-card__resumo { color: var(--suave); font-size: 1rem; line-height: 1.8; }
.leia-mais { color: var(--latao-escuro); font-weight: 600; }

/* --- Newsletter ------------------------------------------------------------------- */
.newsletter__form { display: grid; gap: 1.25rem; }
.newsletter__campos { display: grid; gap: 2rem; align-items: end; }
@media (min-width: 1024px) { .newsletter__campos { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 2rem; } }
.campo-linha input { width: 100%; border: 0; border-bottom: 1px solid rgba(30, 38, 48, .2); padding: .5rem 0 1.25rem; background: transparent; font: 400 1.25rem/1.2 var(--titulo); color: var(--tinta); outline: none; transition: border-color .3s; border-radius: 0; }
.campo-linha input::placeholder { color: rgba(30, 38, 48, .5); }
.campo-linha input:focus { border-bottom-color: var(--tinta); }

/* --- Formulários do site ------------------------------------------------------------ */
.form-lead { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; min-width: 0; }
.campo-site { display: grid; gap: .375rem; }
.campo-site label, .alternar-rotulo { font: 600 .6875rem/1 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.campo-site label small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.campo-site input, .campo-site select, .campo-site textarea {
    width: 100%; min-height: 3rem; padding: .75rem .875rem; border: 1px solid #cfd3d8; border-radius: 0; background: var(--branco); font-size: 1rem; outline: none; transition: border-color .2s, box-shadow .2s;
}
.campo-site select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6975' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; background-size: 1rem; padding-right: 2.5rem; }
.campo-site textarea { resize: vertical; min-height: 6rem; }
.campo-site input:focus, .campo-site select:focus, .campo-site textarea:focus { border-color: var(--tinta); box-shadow: 0 0 0 3px var(--latao-claro); }
.campo-site [aria-invalid="true"] { border-color: var(--vermelho); }
.campo-site__erro { color: var(--vermelho); font-size: .8125rem; font-weight: 500; }
.campo-isca { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.aceite { display: flex; gap: .625rem; align-items: flex-start; font-size: .8125rem; line-height: 1.5; color: var(--suave); cursor: pointer; }
.aceite input { width: 1.125rem; height: 1.125rem; margin: .125rem 0 0; accent-color: var(--tinta); flex: none; }
.aceite a { color: var(--tinta); }
.aceite--erro { color: var(--vermelho); }
.aceite--linha { font-size: .75rem; }
.alternar { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--linha); }
.alternar label { position: relative; cursor: pointer; }
.alternar input { position: absolute; opacity: 0; }
.alternar span { display: block; padding: .75rem .5rem; text-align: center; font-size: .8125rem; font-weight: 500; transition: all .2s; }
.alternar input:checked + span { background: var(--tinta); color: var(--branco); }
.alternar input:focus-visible + span { outline: 2px solid var(--latao); outline-offset: -2px; }
.grade-2 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 640px) { .grade-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.campos-encomenda { display: grid; gap: 1rem; }

.aviso { display: flex; align-items: flex-start; gap: .5rem; padding: .875rem 1rem; font-size: .875rem; font-weight: 500; line-height: 1.5; }
.aviso .icon { width: 1.125rem; height: 1.125rem; margin-top: .0625rem; }
.aviso--sucesso { background: #e5f1eb; color: #1f4d39; }
.aviso--erro { background: #fdecea; color: #7a1a12; }
.aviso--info { background: var(--claro); color: var(--tinta); margin-top: 1rem; }

/* --- Cabeçalho de páginas internas --------------------------------------------------- */
.cabeca-pagina { background: linear-gradient(180deg, var(--claro) 0%, var(--branco) 100%); padding: 2.5rem 0 2.5rem; }
@media (min-width: 1024px) { .cabeca-pagina { padding: 3.5rem 0 3rem; } }
.cabeca-pagina__titulo { font: 400 clamp(2.2667rem, 1.8vw + 1.8rem, 2.9333rem)/1.1 var(--titulo); color: var(--tinta); margin-top: .5rem; }
.cabeca-pagina__texto { margin-top: .75rem; color: var(--suave); font-size: 1.0625rem; max-width: 42rem; }
.cabeca-pagina__descricao { margin-top: 1.5rem; max-width: 48rem; line-height: 1.8; }
.migalhas { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); display: flex; flex-wrap: wrap; gap: .5rem; }
.migalhas a { color: var(--latao-escuro); text-decoration: none; font-weight: 600; }
.migalhas a:hover { text-decoration: underline; }
.migalhas--clara, .migalhas--clara a { color: rgba(255, 255, 255, .85); }

/* --- Busca ------------------------------------------------------------------------ */
.busca { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-top: .5rem; }
.busca__filtros > summary { list-style: none; }
.busca__filtros > summary::-webkit-details-marker { display: none; }
.busca__abrir-filtros { width: 100%; }
.busca__filtros[open] > summary { margin-bottom: 1rem; }
@media (min-width: 1024px) {
    .busca__filtros > summary { display: none; }
    .busca__filtros:not([open]) > .filtro { display: block; }
}
.vazio-busca { padding: 3rem 0; max-width: 40rem; }
.vazio-busca h2 { font: 400 2rem/1.2 var(--titulo); color: var(--tinta); margin-bottom: .75rem; }
.vazio-busca p { color: var(--suave); }
.vazio-busca__acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.paginacao-site { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 2rem; border-top: 1px solid var(--linha); font-size: .875rem; color: var(--suave); }

/* --- Página do imóvel -------------------------------------------------------------- */
.imovel-hero { position: relative; display: flex; align-items: flex-end; min-height: 70svh; color: var(--branco); background: var(--tinta); isolation: isolate; overflow: hidden; }
.imovel-hero--sem-foto { min-height: 22rem; background: linear-gradient(135deg, var(--tinta), var(--noite)); }
.imovel-hero__imagem { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.imovel-hero__conteudo { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding-top: 3rem; padding-bottom: 3rem; }
.imovel-hero__titulo { font: 400 clamp(2.6667rem, 2.4vw + 1.9rem, 3.4667rem)/1.08 var(--titulo); max-width: 20ch; text-shadow: 0 2px 20px rgba(0, 0, 0, .25); }
.imovel-hero__texto { max-width: 46rem; color: rgba(255, 255, 255, .88); font-size: 1.0625rem; }
.imovel-hero__fotos { margin-top: .5rem; }

.imovel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; padding-top: 3rem; padding-bottom: 4rem; }
@media (min-width: 1024px) { .imovel { grid-template-columns: minmax(0, 1fr) 24rem; gap: 4rem; align-items: start; } }
.imovel__principal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3.5rem; min-width: 0; }
.imovel__subtitulo { font: 400 clamp(1.625rem, 2.6vw, 2.125rem)/1.15 var(--titulo); color: var(--tinta); margin-bottom: 1.5rem; }
.imovel__codigo { margin-top: 1.25rem; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.ficha { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); margin-bottom: 2rem; }
@media (min-width: 640px) { .ficha { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ficha li { display: flex; flex-direction: column; gap: .25rem; padding: 1.25rem; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); }
.ficha .icon { color: var(--latao); margin-bottom: .375rem; }
.ficha__valor { font: 400 1.5rem/1.1 var(--titulo); color: var(--tinta); }
.ficha__rotulo { font: 500 .6875rem/1.4 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.texto-longo { font-size: 1.0625rem; line-height: 1.85; max-width: 46rem; }

.galeria-site { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
@media (min-width: 768px) { .galeria-site { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.galeria-site__item { position: relative; padding: 0; border: 0; background: var(--claro-2); cursor: zoom-in; aspect-ratio: 4 / 3; overflow: hidden; }
.galeria-site__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.galeria-site__item:hover img { transform: scale(1.05); }
.galeria-site__item--grande { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.galeria-site__mais { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(15, 25, 36, .6); color: var(--branco); font: 600 .75rem/1 var(--fonte); letter-spacing: .12em; text-transform: uppercase; }

.colunas-carac { display: grid; gap: 2rem 3rem; }
@media (min-width: 768px) { .colunas-carac { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lista-check { list-style: none; display: grid; gap: .625rem; margin-top: .875rem; }
.lista-check li { display: flex; gap: .625rem; align-items: flex-start; }
.lista-check .icon { width: 1.125rem; height: 1.125rem; color: var(--latao); margin-top: .1875rem; }

.video { position: relative; aspect-ratio: 16 / 9; background: var(--noite); margin-bottom: 1rem; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.documentos { list-style: none; border-top: 1px solid var(--linha); margin-bottom: 1.5rem; }
.documentos li { display: flex; align-items: center; gap: .875rem; padding: 1rem 0; border-bottom: 1px solid var(--linha); }
.documentos li > span:first-of-type { flex: 1; font-weight: 500; }
.documentos .icon { color: var(--latao); }
.documentos__bloqueado { display: inline-flex; align-items: center; gap: .375rem; font-size: .8125rem; color: var(--suave); }

.imovel__endereco { display: flex; gap: .625rem; align-items: flex-start; font-size: 1.0625rem; margin-bottom: 1.25rem; }
.imovel__endereco .icon { color: var(--latao); margin-top: .1875rem; }
.imovel__acoes-local { display: flex; flex-wrap: wrap; gap: .75rem; }
.dados-site { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; margin: 0; }
.dados-site dt { font: 600 .6875rem/1.4 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.dados-site dd { margin: .25rem 0 0; font-size: 1.0625rem; }
.nota-legal { font-size: .75rem; line-height: 1.6; color: var(--suave); }

.imovel__lateral { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; min-width: 0; }
@media (min-width: 1024px) { .imovel__lateral { position: sticky; top: calc(var(--topo) + 1.5rem); } }
.caixa-preco { padding: 1.5rem; background: var(--claro); }
.caixa-preco__rotulo { font: 600 .6875rem/1 var(--fonte); letter-spacing: .12em; text-transform: uppercase; color: var(--suave); }
.caixa-preco__valor { font: 400 2.25rem/1.15 var(--titulo); color: var(--tinta); margin-top: .5rem; }
.caixa-preco__extras { font-size: .875rem; color: var(--suave); margin-top: .375rem; }
.caixa-contato { padding: 1.5rem; border: 1px solid var(--linha); }
.caixa-contato__titulo { font: 400 1.625rem/1.2 var(--titulo); color: var(--tinta); margin-bottom: 1.25rem; }

.galeria-modal { position: fixed; inset: 0; z-index: 80; display: grid; grid-template-columns: auto 1fr auto; align-items: center; background: rgba(8, 13, 19, .96); color: var(--branco); }
.galeria-modal__figura { display: grid; justify-items: center; gap: .75rem; padding: 3.5rem .5rem 1.5rem; max-height: 100svh; }
.galeria-modal__figura img { max-width: 100%; max-height: calc(100svh - 7rem); object-fit: contain; }
.galeria-modal__figura figcaption { font-size: .875rem; color: rgba(255, 255, 255, .75); }
.galeria-modal__seta, .galeria-modal__fechar { width: 3rem; height: 3rem; display: grid; place-items: center; background: none; border: 1px solid rgba(255, 255, 255, .25); color: var(--branco); cursor: pointer; margin: 0 .75rem; }
.galeria-modal__seta:hover, .galeria-modal__fechar:hover { background: var(--branco); color: var(--tinta); }
.galeria-modal__fechar { position: absolute; top: 1rem; right: 1rem; margin: 0; }
@media (max-width: 640px) { .galeria-modal { grid-template-columns: 1fr; } .galeria-modal__seta { position: absolute; bottom: 1rem; } .galeria-modal__seta--ant { left: 1rem; } .galeria-modal__seta--prox { right: 1rem; } }

/* --- Contato ---------------------------------------------------------------------- */
.contato { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; padding-top: 1rem; padding-bottom: 5rem; }
@media (min-width: 1024px) { .contato { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 5rem; } }
.contato__canais { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; align-content: start; border-top: 1px solid var(--linha); min-width: 0; }
.canal { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem 0; border-bottom: 1px solid var(--linha); text-decoration: none; }
a.canal:hover strong { color: var(--latao-escuro); }
.canal .icon { color: var(--latao); margin-top: .125rem; }
.canal span { display: flex; flex-direction: column; font-size: 1.0625rem; min-width: 0; overflow-wrap: anywhere; }
.canal strong { font: 600 .6875rem/1.6 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.contato__horario { padding-top: 1.25rem; font-size: .875rem; color: var(--suave); }
.contato__form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; align-content: start; min-width: 0; }

/* --- Páginas institucionais e mensagens ----------------------------------------------- */
.pagina-texto { padding-bottom: 5rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.mensagem-site { padding: 6rem 0; text-align: left; }
.erro-site { display: flex; align-items: flex-end; min-height: 70svh; padding: 4rem 0; color: var(--branco); background: linear-gradient(180deg, var(--tinta) 0%, var(--noite) 100%); }
.erro-site__titulo { font: 400 clamp(2.5rem, 6vw, 4.5rem)/1.05 var(--titulo); max-width: 16ch; margin: .75rem 0 1rem; }
.erro-site__texto { color: rgba(255, 255, 255, .8); max-width: 36rem; margin-bottom: 1rem; }

/* --- Texto de artigos e páginas ------------------------------------------------------- */
.artigo-texto { font-size: 1.125rem; line-height: 1.8; }
.artigo-texto > :first-child { margin-top: 0; }
.artigo-texto p { margin: 0 0 1.25em; }
.artigo-texto h2 { font: 400 1.875rem/1.25 var(--titulo); color: var(--tinta); margin: 2em 0 .6em; }
.artigo-texto h3 { font-size: 1.25rem; font-weight: 600; color: var(--tinta); margin: 1.6em 0 .5em; }
.artigo-texto h4 { font-size: 1.0625rem; font-weight: 600; margin: 1.4em 0 .5em; }
.artigo-texto a { color: var(--latao-escuro); }
.artigo-texto ul, .artigo-texto ol { padding-left: 1.4em; margin: 0 0 1.25em; }
.artigo-texto li { margin-bottom: .4em; }
.artigo-texto li::marker { color: var(--latao); }
.artigo-texto blockquote { margin: 2em 0; padding: .25em 0 .25em 1.5em; border-left: 2px solid var(--latao); font: 400 1.5rem/1.45 var(--titulo); color: var(--tinta); }
.artigo-texto figure { margin: 2em 0; }
.artigo-texto figcaption { font-size: .875rem; color: var(--suave); margin-top: .625em; }
.artigo-texto hr { border: 0; border-top: 1px solid var(--linha); margin: 2.5em 0; }
.artigo-texto table { width: 100%; border-collapse: collapse; margin: 2em 0; font-size: 1rem; display: block; overflow-x: auto; }
.artigo-texto th, .artigo-texto td { border-bottom: 1px solid var(--linha); padding: .625em .75em; text-align: left; }
.artigo-texto th { font-weight: 600; background: var(--claro); }

/* --- Blog (páginas do blog) ------------------------------------------------------------ */
.faixa-previa { background: var(--latao); color: var(--branco); text-align: center; padding: .625rem 1rem; font-size: .875rem; font-weight: 500; position: relative; z-index: 50; }
.faixa-previa a { color: var(--branco); margin-left: .75rem; }
.blog-cabeca { background: linear-gradient(180deg, var(--claro) 0%, var(--branco) 100%); padding: 3rem 0 2rem; }
.blog-cabeca h1 { font: 400 clamp(2.5rem, 6vw, 4rem)/1.05 var(--titulo); color: var(--tinta); }
.blog-cabeca__texto { max-width: 40rem; color: var(--suave); font-size: 1.0625rem; margin-top: 1rem; }
.blog-cabeca__ferramentas { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.rotulo { display: inline-block; font: 600 .6875rem/1.4 var(--fonte); letter-spacing: .12em; text-transform: uppercase; color: var(--latao-escuro); text-decoration: none; margin: 0 0 .5rem; }
.rotulo a { text-decoration: none; }
.categorias { display: flex; flex-wrap: wrap; gap: .5rem; }
.categorias a { padding: .5rem .875rem; border: 1px solid var(--linha); background: var(--branco); text-decoration: none; font-size: .8125rem; font-weight: 500; color: var(--suave); }
.categorias a:hover { border-color: var(--tinta); color: var(--tinta); }
.categorias a[aria-current="page"] { background: var(--tinta); border-color: var(--tinta); color: var(--branco); }
.busca-blog { display: flex; gap: .5rem; width: 100%; max-width: 26rem; min-width: 0; }
.busca-blog input { flex: 1 1 auto; min-width: 0; }
.busca-blog .botao { flex: none; padding: 0 1.25rem; }
.busca-blog input { min-height: 3.125rem; padding: .5rem .875rem; border: 1px solid #cfd3d8; border-radius: 0; font-size: .9375rem; outline: none; }
.busca-blog input:focus { border-color: var(--tinta); }
.blog-lista { padding-top: 3rem; }
.card-post { display: flex; flex-direction: column; }
.card-post__imagem { display: block; overflow: hidden; background: var(--claro); }
.card-post__imagem img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.card-post:hover .card-post__imagem img { transform: scale(1.05); }
.card-post__texto { padding-top: 1rem; }
.card-post__titulo { font: 400 1.375rem/1.25 var(--titulo); color: var(--tinta); }
.card-post__titulo a { text-decoration: none; }
.card-post__titulo a:hover { color: var(--latao-escuro); }
.card-post__resumo { color: var(--suave); font-size: .9375rem; margin-top: .5rem; }
.meta { font-size: .8125rem; color: var(--suave); margin-top: .75rem; }
.meta a { color: var(--tinta); }
.card-post--grande { display: grid; gap: 2.5rem; align-items: center; padding-bottom: 3rem; margin-bottom: 3rem; border-bottom: 1px solid var(--linha); }
@media (min-width: 960px) { .card-post--grande { grid-template-columns: 1.3fr 1fr; } }
.card-post--grande .card-post__texto { padding: 0; }
.card-post--grande .card-post__titulo { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; }
.vazio-site { color: var(--suave); padding: 3rem 0; }
.titulo-secao { font: 400 2rem/1.2 var(--titulo); color: var(--tinta); margin-bottom: 2rem; }
.post__cabeca { padding-top: 3rem; }
.post__cabeca h1 { font: 400 clamp(2.25rem, 5vw, 3.5rem)/1.1 var(--titulo); color: var(--tinta); margin-top: 1rem; }
.post__resumo { font-size: 1.25rem; line-height: 1.55; color: var(--suave); margin-top: 1.25rem; }
.post__capa { max-width: 72rem; margin: 2.5rem auto; padding: 0 1.25rem; }
.post__capa img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post .container--texto:last-child { margin-top: 2.5rem; }
.post__capa + .container--texto { margin-top: 0; }
.tags { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.tags a { display: block; padding: .375rem .75rem; background: var(--claro); font-size: .8125rem; text-decoration: none; color: var(--suave); }
.tags a:hover { color: var(--tinta); background: var(--latao-claro); }
.compartilhar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 2rem; padding: 1.25rem 0; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); font-size: .875rem; }
.compartilhar span { color: var(--suave); }
.compartilhar a { font-weight: 600; color: var(--tinta); text-decoration: none; }
.compartilhar a:hover { color: var(--latao-escuro); }
.autor-box { display: flex; gap: 1.25rem; margin-top: 2.5rem; padding: 1.5rem; background: var(--claro); }
.autor-box__avatar { flex: none; width: 3.5rem; height: 3.5rem; border-radius: 50%; display: grid; place-items: center; background: var(--tinta); color: var(--branco); font: 400 1.5rem/1 var(--titulo); }
.autor-box p { margin: 0 0 .5rem; font-size: .9375rem; }
.autor-box__nome { font-weight: 600; color: var(--tinta); }
.autor-box__cargo { color: var(--suave); font-size: .8125rem !important; }
.secao-imoveis { background: var(--claro); margin-top: 4rem; padding: 3.5rem 0; }
.secao-imoveis h2 { font: 400 2rem/1.2 var(--titulo); color: var(--tinta); margin-bottom: 2rem; }
.chamada { background: var(--tinta); color: var(--branco); text-align: center; padding: 4rem 0; margin-top: 4rem; }
.secao-imoveis + .chamada { margin-top: 0; }
.chamada h2 { font: 400 clamp(1.75rem, 3vw, 2.5rem)/1.2 var(--titulo); }
.chamada p { color: rgba(255, 255, 255, .75); margin: .75rem 0 1.75rem; }

/* --- Rodapé ------------------------------------------------------------------------ */
.rodape { background: var(--claro); color: var(--texto); margin-top: 0; }
.rodape__interno { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-top: 3.5rem; padding-bottom: 3.5rem; font-size: .75rem; }
@media (min-width: 1024px) { .rodape__interno { font-size: .875rem; } }
@media (min-width: 768px) { .rodape__interno { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .rodape__interno { grid-template-columns: 1.4fr 1fr 1fr 1fr; padding-top: 5rem; padding-bottom: 5rem; } }
.rodape__marca .marca { color: var(--tinta); }
.rodape__marca img { height: 2.8rem; width: auto; max-width: 100%; }
.rodape__marca p { margin-top: .75rem; color: var(--suave); max-width: 22rem; line-height: 1.6; }
.rodape__coluna h2 { font: 600 .75rem/1.4 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta); margin-bottom: .875rem; }
.rodape__coluna ul { list-style: none; display: grid; gap: .5rem; }
.rodape__coluna a { text-decoration: none; color: var(--suave); }
.rodape__coluna a:hover { color: var(--tinta); text-decoration: underline; }
.rodape__base { background: var(--tinta); color: rgba(255, 255, 255, .6); font-size: .75rem; }
.rodape__base-interno { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.75rem; padding-bottom: 1.75rem; }
.redes { display: flex; gap: 1.25rem; }
.redes a { color: var(--branco); opacity: .8; transition: opacity .3s; }
.redes a:hover { opacity: 1; }
.redes .icon { width: 1.125rem; height: 1.125rem; }

/* --- WhatsApp flutuante ----------------------------------------------------------------- */
.whats-flutuante { position: fixed; right: .875rem; bottom: 3.5rem; z-index: 45; display: flex; align-items: center; background: var(--latao); color: var(--branco); text-decoration: none; box-shadow: 0 10px 30px rgba(15, 25, 36, .25); transition: background-color .3s; }
.whats-flutuante:hover { background: var(--latao-escuro); }
.whats-flutuante__texto { max-width: 15rem; overflow: hidden; padding: 0 .875rem 0 1rem; font-size: .8125rem; font-weight: 600; line-height: 1.15; text-align: right; white-space: nowrap; transition: max-width .4s ease, padding .4s ease, opacity .3s; }
.whats-flutuante__icone { width: 3.75rem; height: 3.75rem; display: grid; place-items: center; }
.whats-flutuante__icone .icon { width: 1.625rem; height: 1.625rem; }
.whats-flutuante.is-recolhido .whats-flutuante__texto { max-width: 0; padding: 0; opacity: 0; }
@media (max-width: 640px) { .whats-flutuante { bottom: 1rem; } .whats-flutuante__texto { display: none; } }

/* --- Aviso de cookies ------------------------------------------------------------------ */
.cookies { position: fixed; inset: auto 0 0; z-index: 70; background: var(--branco); border-top: 1px solid var(--linha); box-shadow: 0 -10px 30px rgba(15, 25, 36, .08); }
.cookies__interno { display: flex; flex-direction: column; gap: 1rem; padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: .875rem; }
.cookies__interno a { color: var(--tinta); }
.cookies__acoes { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (min-width: 1024px) { .cookies__interno { flex-direction: row; align-items: center; justify-content: space-between; gap: 2rem; } .cookies__acoes { flex: none; } }

/* --- Movimento reduzido ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* --- Ajustes finos ------------------------------------------------------------------- */
.rodape { border-top: 1px solid var(--linha); }
.galeria-site--poucas .galeria-site__item--grande { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; }
@media (min-width: 768px) { .galeria-site--poucas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.com-aviso-cookies .whats-flutuante { bottom: 9.5rem; }
@media (min-width: 1024px) { body.com-aviso-cookies .whats-flutuante { bottom: 7rem; } }
.imovel-hero__preco { font: 400 1.5rem/1.2 var(--titulo); }
.imovel-hero__preco a { margin-left: .75rem; font: 600 .6875rem/1 var(--fonte); letter-spacing: .12em; text-transform: uppercase; color: var(--branco); }
@media (min-width: 1024px) { .imovel-hero__preco { display: none; } }

/* Celular: campos com menos de 16px fazem o iPhone dar zoom ao tocar */
@media (max-width: 1023px) { input, select, textarea { font-size: 16px !important; } }

/* --- Abas fixas da página do imóvel ---------------------------------------------- */
.imovel-abas { position: sticky; top: var(--topo); z-index: 20; background: var(--branco); border-bottom: 1px solid var(--linha); }
.imovel-abas__interno { display: flex; gap: 1.75rem; overflow-x: auto; scrollbar-width: none; padding: 0; }
.imovel-abas__interno::-webkit-scrollbar { display: none; }
.imovel-abas a { flex: none; padding: .9rem 0; font: 600 .8125rem/1 var(--fonte); letter-spacing: .04em; text-transform: uppercase; color: var(--suave); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; transition: color .2s, border-color .2s; }
.imovel-abas a:hover { color: var(--tinta); }
.imovel-abas a.is-ativa { color: var(--tinta); border-bottom-color: var(--latao); }

/* --- Vídeo com capa clicável (não carrega o player até o clique) ------------------- */
.video--capa { position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: pointer; background: var(--noite); }
.video--capa img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s; }
.video--capa:hover img { opacity: 1; }
.video__play { position: absolute; inset: 0; margin: auto; width: 4.5rem; height: 4.5rem; display: grid; place-items: center; background: rgba(255, 255, 255, .92); border-radius: 50%; color: var(--tinta); transition: transform .2s, background-color .2s; }
.video__play .icon { width: 1.5rem; height: 1.5rem; margin-left: .1875rem; }
.video--capa:hover .video__play { transform: scale(1.08); background: var(--branco); }

/* --- "Ficou com dúvidas?" no formulário de interesse do imóvel --------------------- */
.duvidas { border: 0; padding: 0; margin: 0; }
.duvidas legend { font: 600 .6875rem/1 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--suave); padding: 0; margin-bottom: .625rem; }
.duvidas legend small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.duvidas__item { display: flex; align-items: center; gap: .5rem; padding: .5rem 0; font-size: .875rem; cursor: pointer; border-bottom: 1px solid var(--linha); }
.duvidas__item:last-child { border-bottom: 0; }
.duvidas__item input { width: 1.125rem; height: 1.125rem; accent-color: var(--tinta); flex: none; }

/* --- "Na região": pontos de interesse próximos --------------------------------- */
.lista-regiao { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--linha); }
.lista-regiao li { display: flex; align-items: center; gap: .75rem; padding: .875rem 0; border-bottom: 1px solid var(--linha); }
.lista-regiao .icon { color: var(--latao); flex: none; }
.lista-regiao span { flex: 1; }
.lista-regiao strong { color: var(--suave); font-weight: 500; font-size: .875rem; }

/* --- Projetistas (arquitetura, paisagismo...) ----------------------------------- */
.grade-projetistas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 640px) { .grade-projetistas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.projetista-card { display: flex; gap: 1.25rem; align-items: flex-start; }
.projetista-card__foto { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; flex: none; background: var(--claro-2); }
.projetista-card__foto--vazia { display: grid; place-items: center; color: var(--suave); }
.projetista-card__foto--vazia .icon { width: 1.5rem; height: 1.5rem; }
.projetista-card__papel { font: 600 .6875rem/1.4 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--latao-escuro); }
.projetista-card__nome { font: 400 1.25rem/1.25 var(--titulo); color: var(--tinta); margin: .1875rem 0 .375rem; }
.projetista-card__bio { font-size: .9375rem; line-height: 1.6; color: var(--suave); }

/* --- Tour virtual: banner de destaque, separado do vídeo ------------------------ */
.tour-360 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 2rem; background: linear-gradient(135deg, var(--tinta), var(--noite)); color: var(--branco); }
.tour-360__rotulo { display: flex; align-items: center; gap: .5rem; font: 600 .6875rem/1 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--latao); margin-bottom: .625rem; }
.tour-360__rotulo .icon { width: 1rem; height: 1rem; }
.tour-360__titulo { font: 400 1.5rem/1.25 var(--titulo); max-width: 28rem; }
.tour-360__desc { margin-top: .5rem; color: rgba(255, 255, 255, .75); max-width: 30rem; }
.tour-360 .botao--primario { background: var(--branco); border-color: var(--branco); color: var(--tinta); flex: none; }
.tour-360 .botao--primario:hover { background: var(--latao); border-color: var(--latao); color: var(--branco); }

/* --- Diferenciais: selos de destaque --------------------------------------------- */
.grade-diferenciais { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 640px) { .grade-diferenciais { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.grade-diferenciais li { display: flex; flex-direction: column; align-items: flex-start; gap: .625rem; padding: 1.125rem 1rem; background: var(--claro); text-align: left; }
.grade-diferenciais .icon { color: var(--latao); width: 1.375rem; height: 1.375rem; }
.grade-diferenciais span { font-size: .9375rem; font-weight: 500; color: var(--tinta); line-height: 1.35; }

/* --- Tipologias e Plantas: tabela responsiva (vira cartões no celular) ----------- */
.tabela-tipologias__rolagem { overflow-x: auto; }
.tabela-tipologias { width: 100%; border-collapse: collapse; }
.tabela-tipologias th { text-align: left; font: 600 .6875rem/1.4 var(--fonte); letter-spacing: .08em; text-transform: uppercase; color: var(--suave); padding: .75rem 1rem; border-bottom: 2px solid var(--tinta); white-space: nowrap; }
.tabela-tipologias td { padding: 1rem; border-bottom: 1px solid var(--linha); font-size: .9375rem; vertical-align: top; }
.tabela-tipologias tbody tr:hover { background: var(--claro); }
.tabela-tipologias strong { color: var(--tinta); font-weight: 600; }
@media (max-width: 719px) {
    .tabela-tipologias thead { display: none; }
    .tabela-tipologias, .tabela-tipologias tbody, .tabela-tipologias tr, .tabela-tipologias td { display: block; width: 100%; }
    .tabela-tipologias tr { margin-bottom: 1rem; border: 1px solid var(--linha); padding: .25rem 0; }
    .tabela-tipologias tr:last-child { margin-bottom: 0; }
    .tabela-tipologias td { display: flex; gap: 1rem; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--linha); padding: .625rem 1rem; }
    .tabela-tipologias td:last-child { border-bottom: 0; flex-direction: column; align-items: flex-start; gap: .25rem; }
    .tabela-tipologias td::before { content: attr(data-rotulo); font: 600 .6875rem/1 var(--fonte); letter-spacing: .08em; text-transform: uppercase; color: var(--suave); flex: none; }
}

/* --- Destaque para investidores (seção escura, logo após a Visão geral) ------------ */
.destaque-investidor { background: var(--tinta); color: #fff; padding: 1.75rem 1.25rem; }
@media (min-width: 640px) { .destaque-investidor { padding: 2rem 2rem; } }
.destaque-investidor .imovel__subtitulo { color: #fff; }
.destaque-investidor__selo { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .75rem; font: 600 .6875rem/1 var(--fonte); letter-spacing: .1em; text-transform: uppercase; color: var(--latao); }
.destaque-investidor__selo .icon { width: 1rem; height: 1rem; }
.destaque-investidor__intro { margin: .25rem 0 1.25rem; color: rgba(255, 255, 255, .78); }
.destaque-investidor__grade { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; margin-bottom: 1.5rem; }
@media (min-width: 640px) { .destaque-investidor__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.destaque-investidor__grade li { display: flex; flex-direction: column; gap: .375rem; padding: 1rem; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); }
.destaque-investidor__grade strong { font-size: .9375rem; font-weight: 600; color: #fff; }
.destaque-investidor__grade span { font-size: .875rem; line-height: 1.5; color: rgba(255, 255, 255, .78); }
.destaque-investidor__aviso { margin-top: 1rem; font-size: .75rem; line-height: 1.5; color: rgba(255, 255, 255, .62); }
.destaque-investidor .botao { max-width: 100%; height: auto; min-height: 3rem; padding-top: .75rem; padding-bottom: .75rem; white-space: normal; text-align: center; line-height: 1.35; }
