/* =========================================================
   Athena Imóveis · Rio Verde, GO
   Verde do cerrado, dourado de colheita, céu limpo
   ========================================================= */
:root {
  --fundo: #F4F6F2;
  --papel: #FFFFFF;
  --tinta: #17211B;
  --tinta-2: #55605A;
  --mata: #2B4A42;
  --mata-2: #3B6258;
  --ouro: #C9A227;
  --ouro-claro: #F3E7BD;
  --ceu: #DDE7E2;
  --linha: rgba(23, 33, 27, .12);
  --zap: #1E8E4E;

  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  --largura: 1200px;
  --respiro: clamp(1rem, 4vw, 2.5rem);
  --raio: 14px;

  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-behavior: smooth; scroll-padding-top: calc(5rem + env(safe-area-inset-top, 0px)); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--fundo); color: var(--tinta); font: 400 1rem/1.6 var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--ouro); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.12; margin: 0; }

/* ---------- topo ---------- */
.topo {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20;
  display: flex; align-items: center; gap: 1.5rem;
  padding: .8rem var(--respiro);
  background: var(--mata); color: #fff;
}
.marca { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; font: 600 1.2rem var(--serif); }
.marca em { font-style: normal; color: var(--ouro); }
.marca__coruja { width: 30px; height: 30px; }
.marca__coruja path:first-child { fill: var(--ouro); }
.marca__coruja circle { fill: var(--mata); }
.marca__coruja path:last-child { fill: none; stroke: var(--mata); stroke-width: 1.4; }
.menu { display: flex; gap: 1.4rem; margin-left: auto; font-weight: 500; }
.menu a { text-decoration: none; opacity: .85; }
.menu a:hover { opacity: 1; }
.menu__contador[hidden] { display: none; }
.menu__contador { display: inline-grid; place-items: center; min-width: 1.3rem; height: 1.3rem; margin-left: .2rem; border-radius: 999px; background: var(--ouro); color: var(--mata); font-size: .75rem; font-weight: 700; }
.topo__zap { padding: .5rem 1rem; border-radius: 999px; background: var(--ouro); color: var(--mata); font-weight: 700; text-decoration: none; }
@media (max-width: 760px) {
  .menu { gap: .9rem; font-size: .92rem; }
  .menu a[data-rolar], .topo__zap { display: none; }
}
@media (max-width: 420px) { .marca span { display: none; } }

/* ---------- botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: .75rem 1.3rem; border-radius: 10px;
  border: 1.5px solid var(--mata); background: transparent; color: var(--mata);
  font-weight: 600; text-decoration: none; cursor: pointer;
}
.botao:hover { background: var(--ceu); }
.botao--cheio { background: var(--mata); color: #fff; }
.botao--cheio:hover { background: var(--mata-2); }
.botao--cheio:disabled { opacity: .6; cursor: wait; }
.botao--zap { width: 100%; background: var(--zap); border-color: var(--zap); color: #fff; }
.botao--zap:hover { background: #197a43; }
.botao--fav { width: 100%; }
.botao--fav.is-fav { background: var(--ouro-claro); border-color: var(--ouro); }

/* ---------- carregando / vazio ---------- */
.carregando, .vazio { max-width: var(--largura); margin: 0 auto; padding: 5rem var(--respiro); text-align: center; color: var(--tinta-2); }
.vazio p { margin: 0 0 1.2rem; font-size: 1.1rem; }

/* ---------- hero ---------- */
.hero {
  position: relative; padding: clamp(3rem, 8vw, 5.5rem) var(--respiro) clamp(2.5rem, 6vw, 4rem);
  background: var(--mata); color: #fff; overflow: hidden;
}
.hero::after {
  /* linhas de plantio do cerrado */
  content: ""; position: absolute; inset: auto -10% 0 -10%; height: 55%;
  background: repeating-linear-gradient(100deg, transparent 0 34px, rgba(201,162,39,.16) 34px 36px);
  transform: perspective(500px) rotateX(58deg); transform-origin: bottom; pointer-events: none;
}
.hero__texto { position: relative; z-index: 1; max-width: var(--largura); margin: 0 auto 2.2rem; }
.hero h1 { font-size: clamp(2.4rem, 6.5vw, 4.6rem); max-width: 12em; letter-spacing: -.01em; }
.hero__texto p { margin: 1rem 0 0; max-width: 34em; font-size: 1.12rem; opacity: .85; }

.buscador {
  position: relative; z-index: 1; max-width: var(--largura); margin: 0 auto;
  display: grid; grid-template-columns: auto 1fr 1fr 1fr auto; gap: .75rem; align-items: end;
  padding: 1rem; border-radius: var(--raio); background: var(--papel); color: var(--tinta);
  box-shadow: 0 24px 50px -30px rgba(0,0,0,.6);
}
.buscador__abas { display: flex; padding: .25rem; border-radius: 10px; background: var(--fundo); align-self: stretch; }
.buscador__abas label { display: flex; }
.buscador__abas input { position: absolute; opacity: 0; pointer-events: none; }
.buscador__abas span { display: grid; place-items: center; padding: 0 1rem; min-height: 44px; border-radius: 8px; font-weight: 600; color: var(--tinta-2); cursor: pointer; }
.buscador__abas input:checked + span { background: var(--mata); color: #fff; }
.buscador__abas input:focus-visible + span { outline: 2px solid var(--ouro); }
.buscador__campo, .filtros label, .form label { display: grid; gap: .3rem; font-size: .82rem; font-weight: 600; color: var(--tinta-2); }
select, input, textarea {
  width: 100%; min-height: 46px; padding: .6rem .8rem; border: 1px solid var(--linha); border-radius: 10px;
  background: var(--papel); color: var(--tinta); font: 400 1rem var(--sans);
}
textarea { resize: vertical; min-height: 70px; }
select:focus, input:focus, textarea:focus { outline: none; border-color: var(--mata-2); box-shadow: 0 0 0 3px rgba(46,86,65,.18); }
@media (max-width: 900px) {
  .buscador { grid-template-columns: 1fr 1fr; }
  .buscador__abas, .buscador .botao { grid-column: 1 / -1; }
}

/* ---------- blocos e grade ---------- */
.bloco, .busca { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) var(--respiro); }
.bloco__cabeca { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; }
.bloco__cabeca h2 { font-size: clamp(1.7rem, 3.5vw, 2.4rem); }
.bloco__cabeca a { color: var(--mata-2); font-weight: 600; }

.grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 1.4rem; }
.cartao { position: relative; display: flex; flex-direction: column; border-radius: var(--raio); background: var(--papel); border: 1px solid var(--linha); overflow: hidden; }
.cartao__foto { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--ceu); }
.cartao__foto img { width: 100%; height: 100%; object-fit: cover; }
.cartao__semfoto { display: grid; place-items: center; height: 100%; color: var(--tinta-2); }
.selo { position: absolute; left: .7rem; top: .7rem; padding: .2rem .6rem; border-radius: 6px; font-size: .78rem; font-weight: 700; background: var(--papel); color: var(--mata); }
.selo--aluguel { background: var(--ouro); color: var(--mata); }
.selo--status { left: auto; right: 3.4rem; background: var(--tinta); color: #fff; text-transform: capitalize; }
.fav {
  position: absolute; right: .6rem; top: .6rem; width: 40px; height: 40px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.92); color: var(--tinta-2); font-size: 1.1rem; cursor: pointer;
}
.fav.is-fav { color: #C23B4B; }
.cartao__corpo { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.1rem 1.2rem; flex: 1; }
.cartao__onde { margin: 0; font-size: .85rem; color: var(--tinta-2); }
.cartao__titulo { font: 500 1.2rem/1.25 var(--serif); text-decoration: none; }
.cartao__titulo:hover { text-decoration: underline; text-underline-offset: 3px; }
.specs { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .3rem 0 0; padding: 0; list-style: none; font-size: .9rem; color: var(--tinta-2); }
.specs b { color: var(--tinta); }
.cartao__preco { margin: auto 0 0; padding-top: .6rem; font-size: 1.25rem; font-weight: 700; color: var(--mata); }

/* ---------- atalhos ---------- */
.atalhos { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: 0 var(--respiro) clamp(2.5rem, 6vw, 4rem); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.atalho { display: grid; gap: .1rem; padding: 1.4rem; border-radius: var(--raio); background: var(--ceu); text-decoration: none; }
.atalho b { font: 500 2.4rem/1 var(--serif); color: var(--mata); }
.atalho span { color: var(--tinta-2); }
.atalho:hover { background: #cfdcd5; }
.atalho--anuncie { background: var(--ouro-claro); }
.atalho--anuncie:hover { background: #ecdca4; }
@media (max-width: 720px) { .atalhos { grid-template-columns: 1fr; } }

/* ---------- busca ---------- */
.busca h1 { font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: 1.3rem; }
.filtros {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem 1.1rem; align-items: end;
  padding: 1.2rem 1.3rem; border-radius: var(--raio); background: var(--papel); border: 1px solid var(--linha);
}
.filtros label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: var(--tinta-2); white-space: normal; line-height: 1.2;
}
.filtros select, .filtros input { font-size: .92rem; }
.filtros__q { grid-column: 1 / -1; }
@media (max-width: 900px) { .filtros { grid-template-columns: repeat(3, 1fr); } .filtros__q { grid-column: 1 / -1; } }
@media (max-width: 620px) { .filtros { grid-template-columns: repeat(2, 1fr); gap: .9rem .8rem; } }
.busca__total { margin: 1.2rem 0; color: var(--tinta-2); }

/* ---------- imóvel ---------- */
.imovel { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: 1.4rem var(--respiro) 0; }
.trilha { font-size: .9rem; color: var(--tinta-2); margin-bottom: 1rem; }
.trilha a { color: var(--mata-2); }
.galeria { display: grid; grid-template-columns: 2fr 1fr; gap: .5rem; border-radius: var(--raio); overflow: hidden; }
.galeria button { padding: 0; border: 0; background: var(--ceu); cursor: zoom-in; position: relative; }
.galeria img { width: 100%; height: 100%; object-fit: cover; }
.galeria { height: clamp(300px, 42vw, 520px); }
.galeria__principal { height: 100%; }
.galeria__miniaturas { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.galeria__miniaturas { height: 100%; grid-template-rows: 1fr 1fr; }
.galeria__miniaturas button { min-height: 0; }
.galeria__qtd { position: absolute; right: .8rem; bottom: .8rem; padding: .3rem .7rem; border-radius: 8px; background: rgba(23,33,27,.8); color: #fff; font-size: .85rem; font-weight: 600; }
@media (max-width: 760px) { .galeria { height: auto; grid-template-columns: 1fr; } .galeria__principal { aspect-ratio: 4 / 3; } .galeria__miniaturas { height: auto; grid-template-columns: repeat(4, 1fr); grid-template-rows: none; } .galeria__miniaturas button { aspect-ratio: 1; } }

.imovel__grade { display: grid; grid-template-columns: 1fr 380px; gap: clamp(1.5rem, 4vw, 3.5rem); padding: 2rem 0; align-items: start; }
@media (max-width: 960px) { .imovel__grade { grid-template-columns: 1fr; } }
.imovel__onde { margin: 0 0 .4rem; color: var(--tinta-2); }
.imovel h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); max-width: 18em; }
.imovel__codigo { margin: .5rem 0 1.6rem; font-size: .9rem; color: var(--tinta-2); }
.imovel h2 { font-size: 1.5rem; margin: 2rem 0 .8rem; }
.ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .6rem; margin: 0; }
.ficha div { padding: .8rem 1rem; border-radius: 10px; background: var(--papel); border: 1px solid var(--linha); }
.ficha dt { font-size: .8rem; color: var(--tinta-2); }
.ficha dd { margin: 0; font-size: 1.2rem; font-weight: 700; color: var(--mata); }
.descricao { max-width: 40em; color: var(--tinta-2); line-height: 1.7; }
.caracteristicas { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.caracteristicas li { padding: .35rem .8rem; border-radius: 999px; background: var(--ceu); font-size: .92rem; }

.painel { position: sticky; top: calc(5rem + env(safe-area-inset-top, 0px)); display: grid; gap: .7rem; padding: 1.4rem; border-radius: var(--raio); background: var(--papel); border: 1px solid var(--linha); box-shadow: 0 20px 40px -30px rgba(23,33,27,.5); }
@media (max-width: 960px) { .painel { position: static; } }
.painel__rotulo { margin: 0; font-size: .85rem; color: var(--tinta-2); }
.painel__preco { margin: 0; font: 600 2.1rem/1.1 var(--serif); color: var(--mata); }
.painel__extra { margin: 0; color: var(--tinta-2); font-size: .9rem; }
.painel__corretor { margin: .3rem 0 0; font-size: .88rem; color: var(--tinta-2); }

/* ---------- formulários ---------- */
.form { display: grid; gap: .8rem; }
.form h3 { font-size: 1.25rem; }
.form--painel { margin-top: .6rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.form__retorno { margin: 0; min-height: 1.3em; font-size: .92rem; }
.form__retorno.is-ok { color: var(--zap); font-weight: 600; }
.form__retorno.is-erro { color: #B3261E; }

/* ---------- contato e rodapé ---------- */
.contato { padding: clamp(3rem, 7vw, 5rem) var(--respiro); background: var(--ceu); }
.contato__grade { max-width: var(--largura); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
@media (max-width: 820px) { .contato__grade { grid-template-columns: 1fr; } }
.contato h2 { font-size: clamp(2rem, 4.5vw, 3rem); }
.contato p { max-width: 30em; color: var(--tinta-2); }
.contato__lista { margin: 1.4rem 0 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.contato__lista a { font-weight: 600; color: var(--mata); }
.contato .form { padding: 1.4rem; border-radius: var(--raio); background: var(--papel); }
.rodape { padding: 2rem var(--respiro); background: var(--mata); color: rgba(255,255,255,.8); font-size: .9rem; text-align: center; }
.rodape p { margin: .2rem 0; }
.rodape strong { color: #fff; }
.rodape a { color: var(--ouro); }
.rodape__feito { margin-top: 1rem !important; opacity: .7; }

/* ---------- whatsapp flutuante ---------- */
.zap-flutuante {
  position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); z-index: 30;
  display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%;
  background: var(--zap); box-shadow: 0 10px 24px -8px rgba(0,0,0,.45);
}
.zap-flutuante svg { width: 30px; height: 30px; fill: #fff; }

/* ---------- visor ---------- */
.visor { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; background: rgba(10,16,12,.94); padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px); }
.visor[hidden] { display: none; }
.visor img { max-width: min(92vw, 1400px); max-height: 82vh; object-fit: contain; }
.visor button { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; border-radius: 50%; width: 52px; height: 52px; font-size: 2rem; line-height: 1; }
.visor button:hover { background: rgba(255,255,255,.25); }
.visor__fechar { top: calc(1rem + env(safe-area-inset-top, 0px)); right: 1rem; }
.visor__seta--esq { left: 1rem; top: 50%; transform: translateY(-50%); }
.visor__seta--dir { right: 1rem; top: 50%; transform: translateY(-50%); }
.visor__conta { position: absolute; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); color: #fff; margin: 0; }

/* =========================================================
   v2: topo fixo, capa em tela cheia e home de alta conversão
   ========================================================= */
:root { --topo-h: 72px; }
body { padding-top: var(--topo-h); }
body.is-inicio { padding-top: 0; }
.topo { position: fixed; left: 0; right: 0; top: 0; padding-top: calc(.6rem + env(safe-area-inset-top, 0px)); padding-bottom: .6rem; min-height: var(--topo-h); transition: background .3s, box-shadow .3s; }
body.is-inicio .topo:not(.is-rolado) { background: linear-gradient(180deg, rgba(10,20,17,.55), transparent); box-shadow: none; }
.topo.is-rolado, body:not(.is-inicio) .topo { background: var(--mata); box-shadow: 0 6px 20px -12px rgba(0,0,0,.5); }
.marca img { display: block; height: 48px; width: auto; }
.menu a { opacity: .92; }
.ic { width: 1.15em; height: 1.15em; fill: currentColor; flex: none; }

.botao--grande { min-height: 56px; padding: .9rem 1.6rem; font-size: 1.05rem; border-radius: 12px; }
.botao--zap { width: auto; }
.painel .botao--zap { width: 100%; }
.botao--vidro { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.55); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.botao--vidro:hover { background: rgba(255,255,255,.22); }
.botao--ouro { background: var(--ouro); border-color: var(--ouro); color: #1B2B25; font-weight: 700; }
.botao--ouro:hover { background: #d8b23a; }
.botao--escuro { background: var(--mata); border-color: var(--mata); color: #fff; }
.botao--escuro:hover { background: var(--mata-2); }

/* ---------- capa ---------- */
.capa { position: relative; background: #1d332d; min-height: 100vh; min-height: 100svh; display: grid; align-items: end; overflow: hidden; color: #fff; isolation: isolate; }
.capa__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 35%; z-index: -2; transform: scale(1.04); animation: capaZoom 14s ease-out forwards; }
@keyframes capaZoom { to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .capa__foto { animation: none; transform: none; } }
.capa__veu { position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(14,28,24,.92) 0%, rgba(14,28,24,.72) 38%, rgba(14,28,24,.18) 72%, rgba(14,28,24,.05) 100%),
    linear-gradient(0deg, rgba(14,28,24,.85) 0%, transparent 45%); }
.capa__conteudo { width: 100%; max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: calc(var(--topo-h) + 3rem) var(--respiro) clamp(4.5rem, 10vh, 7rem); }
.capa__selo { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0 0 1.4rem; padding: .4rem .9rem; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); font-size: .88rem; font-weight: 600; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.capa__selo span { color: var(--ouro); }
.capa h1 { font-size: clamp(2.8rem, 7.5vw, 5.8rem); line-height: 1.02; letter-spacing: -.02em; max-width: 11em; font-weight: 500; }
.capa h1 em { display: block; font-style: italic; color: var(--ouro); }
.capa__tese { max-width: 34em; margin: 1.3rem 0 0; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.55; color: rgba(255,255,255,.88); }
.capa__acoes { display: flex; flex-wrap: wrap; gap: .8rem; margin: 2rem 0 2.4rem; }
.capa .buscador { margin: 0; max-width: 980px; grid-template-columns: auto 1fr 1fr 1fr auto; background: rgba(255,255,255,.97); }
.capa__rolar { position: absolute; left: 50%; bottom: 1.4rem; width: 28px; height: 44px; margin-left: -14px; border: 2px solid rgba(255,255,255,.6); border-radius: 999px; }
.capa__rolar span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: rolar 1.8s ease-in-out infinite; }
@keyframes rolar { 50% { transform: translateY(12px); opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .capa__rolar span { animation: none; } }
@media (max-width: 900px) {
  .capa .buscador { grid-template-columns: 1fr 1fr; }
  .capa__veu { background: linear-gradient(0deg, rgba(14,28,24,.95) 0%, rgba(14,28,24,.75) 55%, rgba(14,28,24,.35) 100%); }
  .capa__rolar { display: none; }
}
@media (max-width: 560px) { .capa__acoes .botao { width: 100%; } }

/* ---------- faixa de números ---------- */
.faixa { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--mata); color: #fff; }
.faixa div { padding: clamp(1.4rem, 3vw, 2.2rem) var(--respiro); border-right: 1px solid rgba(255,255,255,.12); text-align: center; }
.faixa div:last-child { border-right: 0; }
.faixa b { display: block; font: 500 clamp(1.8rem, 3.6vw, 2.6rem)/1 var(--serif); color: var(--ouro); }
.faixa span { display: block; margin-top: .35rem; font-size: .92rem; color: rgba(255,255,255,.8); }
@media (max-width: 720px) { .faixa { grid-template-columns: 1fr 1fr; } .faixa div:nth-child(2) { border-right: 0; } .faixa div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); } }

/* ---------- cabeçalhos de bloco ---------- */
.bloco__cabeca p { margin: .4rem 0 0; color: var(--tinta-2); }
.bloco__link { font-weight: 700; color: var(--mata-2); white-space: nowrap; }

/* ---------- categorias ---------- */
.categorias { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 1rem; }
.categoria { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 5; border-radius: var(--raio); overflow: hidden; background: var(--mata); text-decoration: none; color: #fff; isolation: isolate; }
.categoria img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s cubic-bezier(.2,.7,.1,1); }
.categoria::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(14,28,24,.9), rgba(14,28,24,.05) 60%); }
.categoria:hover img { transform: scale(1.05); }
.categoria__texto { padding: 1.2rem; display: grid; gap: .15rem; }
.categoria__texto b { font: 500 1.45rem/1.15 var(--serif); }
.categoria__texto small { color: var(--ouro); font-weight: 700; font-size: .9rem; }

/* ---------- passos ---------- */
.passos { background: var(--mata); color: #fff; padding: clamp(3.5rem, 8vw, 5.5rem) var(--respiro); }
.passos__interno { max-width: var(--largura); margin: 0 auto; }
.passos h2 { font-size: clamp(2rem, 4.5vw, 3.1rem); max-width: 14em; }
.passos ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin: 2.6rem 0 2.4rem; padding: 0; list-style: none; counter-reset: p; }
.passos li {
  counter-increment: p; padding: 1.6rem 1.4rem 1.8rem;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16);
  transition: transform .3s ease, background .3s ease, border-color .3s ease;
}
.passos li:hover { transform: translateY(-6px); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.3); }
.passos li::before { content: counter(p); display: block; font: italic 500 2.4rem/1 var(--serif); color: var(--ouro); margin-bottom: .7rem; }
.passos h3 { font-family: var(--sans); font-size: 1.1rem; font-weight: 700; margin-bottom: .35rem; }
.passos p { margin: 0; color: rgba(255,255,255,.78); font-size: .97rem; }
@media (max-width: 900px) { .passos ol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .passos ol { grid-template-columns: 1fr; } }

/* ---------- quem somos ---------- */
.sobre { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: clamp(3.5rem, 8vw, 5.5rem) var(--respiro); display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.sobre__foto { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 30px 60px -35px rgba(23,33,27,.6); }
.sobre__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.sobre h2 { font-size: clamp(2rem, 4vw, 2.8rem); max-width: 13em; margin-bottom: 1.2rem; }
.sobre p { color: var(--tinta-2); line-height: 1.7; max-width: 36em; }
.sobre__lista { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.sobre__lista li { padding: .45rem .9rem; border-radius: 999px; background: var(--ceu); font-weight: 600; font-size: .92rem; color: var(--mata); }
@media (max-width: 860px) { .sobre { grid-template-columns: 1fr; } }

/* ---------- financiamento / anuncie ---------- */
.caminhos { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: 0 var(--respiro) clamp(2.5rem, 6vw, 4rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.caminho { padding: clamp(1.6rem, 4vw, 2.6rem); border-radius: 20px; background: var(--ceu); display: grid; gap: .9rem; align-content: start; }
.caminho h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); }
.caminho p { margin: 0; color: var(--tinta-2); max-width: 30em; }
.caminho .botao { justify-self: start; margin-top: .4rem; }
.caminho--ouro { background: var(--ouro-claro); }
@media (max-width: 760px) { .caminhos { grid-template-columns: 1fr; } }

/* ---------- bairros ---------- */
.bairros { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.bairros a { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1rem; border-radius: 999px; background: var(--papel); border: 1px solid var(--linha); text-decoration: none; font-weight: 600; }
.bairros a:hover { border-color: var(--mata-2); color: var(--mata); }
.bairros span { display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .4rem; border-radius: 999px; background: var(--ceu); color: var(--mata); font-size: .8rem; }

/* ---------- sessões por bairro ---------- */
.por-bairro { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) var(--respiro); }
.por-bairro__cabeca h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); }
.por-bairro__cabeca p { margin: .4rem 0 1.2rem; color: var(--tinta-2); }
.fileira { margin-top: clamp(2rem, 5vw, 3rem); scroll-margin-top: calc(var(--topo-h) + 1rem); }
.fileira__cabeca { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1rem; margin-bottom: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--linha); }
.fileira__cabeca h3 { font-size: clamp(1.4rem, 2.6vw, 1.8rem); }
.fileira__cabeca h3 span { margin-left: .4rem; font: 600 .9rem var(--sans); color: var(--mata-2); }
.fileira__controles { display: flex; align-items: center; gap: .4rem; }
.fileira__todos { margin-right: .5rem; font-weight: 700; color: var(--mata-2); }
.fileira__seta { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linha); background: var(--papel); color: var(--mata); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.fileira__seta:hover { border-color: var(--mata-2); background: var(--ceu); }
.fileira__trilho {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px, calc((100% - 3 * 1.2rem) / 4)); gap: 1.2rem;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 2px; padding: 2px 2px 1rem; scrollbar-width: thin;
}
.fileira__trilho > .cartao { scroll-snap-align: start; }
@media (max-width: 1100px) { .fileira__trilho { grid-auto-columns: minmax(260px, calc((100% - 2 * 1.2rem) / 3)); } }
@media (max-width: 760px) { .fileira__trilho { grid-auto-columns: 78%; } .fileira__seta { display: none; } }
.fileira__seta[hidden] { display: none; }

/* ---------- v4: empreendimentos em destaque no topo ---------- */
.menu { align-items: center; }
.menu__emp { opacity: 1 !important; padding: .42rem .9rem; border-radius: 999px; border: 1.5px solid var(--ouro); color: var(--ouro); font-weight: 700; }
.menu__emp:hover { background: var(--ouro); color: var(--mata); }
@media (max-width: 760px) { .menu a:not(.menu__emp):not([href="#/favoritos"]) { display: none; } }

/* ---------- destaque "acabou de entrar" ---------- */
.destaque { display: grid; grid-template-columns: 1.35fr 1fr; border-radius: 20px; overflow: hidden; background: var(--papel); border: 1px solid var(--linha); box-shadow: 0 30px 60px -40px rgba(23,33,27,.55); }
.destaque__foto { position: relative; display: block; min-height: 360px; background: var(--ceu); }
.destaque__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.selo--novo { background: var(--ouro); color: #1B2B25; }
.destaque__corpo { display: flex; flex-direction: column; gap: .5rem; padding: clamp(1.4rem, 3vw, 2.4rem); justify-content: center; }
.destaque__titulo { font: 500 clamp(1.6rem, 2.8vw, 2.2rem)/1.15 var(--serif); text-decoration: none; }
.destaque__titulo:hover { text-decoration: underline; text-underline-offset: 4px; }
.destaque__preco { margin: .6rem 0 0; font: 600 clamp(1.8rem, 3vw, 2.4rem)/1 var(--serif); color: var(--mata); }
.destaque__acoes { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
@media (max-width: 860px) { .destaque { grid-template-columns: 1fr; } .destaque__foto { min-height: 0; aspect-ratio: 4 / 3; } }
.bloco .fileira:first-child { margin-top: 0; }

/* ---------- chamada de empreendimentos na home ---------- */
.chamada-emp { max-width: var(--largura); margin: 0 auto clamp(2.5rem, 6vw, 4rem); padding: clamp(1.8rem, 4vw, 2.8rem); border-radius: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2rem; background: var(--mata); color: #fff; }
.chamada-emp h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
.chamada-emp p { margin: .4rem 0 0; color: rgba(255,255,255,.8); max-width: 32em; }
@media (max-width: 1260px) { .chamada-emp { margin-left: var(--respiro); margin-right: var(--respiro); } }

/* ---------- página de empreendimentos: 2 colunas de logos ---------- */
.emp__intro { margin: -.4rem 0 2rem; color: var(--tinta-2); max-width: 40em; }
.emp__grade { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2.5vw, 1.6rem); }
.emp__card { display: grid; grid-template-rows: auto auto; border-radius: 20px; overflow: hidden; background: var(--papel); border: 1px solid var(--linha); text-decoration: none; transition: transform .35s cubic-bezier(.2,.7,.1,1), box-shadow .35s; }
.emp__card:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -32px rgba(23,33,27,.5); }
.emp__logo { display: grid; place-items: center; aspect-ratio: 16 / 9; padding: clamp(1.5rem, 4vw, 3rem); background: #fff; border-bottom: 1px solid var(--linha); }
.emp__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.emp__logo b { font: 500 1.8rem var(--serif); color: var(--mata); text-align: center; }
.emp__info { display: grid; gap: .2rem; padding: 1rem 1.3rem 1.2rem; }
.emp__info b { font: 500 1.35rem var(--serif); }
.emp__info small { color: var(--tinta-2); font-size: .9rem; }
@media (max-width: 620px) { .emp__grade { grid-template-columns: 1fr; } }
.emp-det__topo { display: grid; grid-template-columns: minmax(200px, 360px) 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin: 1rem 0 2rem; }
.emp__logo--grande { border: 1px solid var(--linha); border-radius: 20px; }
.emp-det__topo h1 { margin-bottom: .5rem; }
.emp-det__topo .botao { margin-top: 1rem; }
.emp-det__texto { margin-bottom: 2rem; }
.emp-det__fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .6rem; padding-bottom: 3rem; }
.emp-det__fotos button { padding: 0; border: 0; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; cursor: zoom-in; background: var(--ceu); }
.emp-det__fotos img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 700px) { .emp-det__topo { grid-template-columns: 1fr; } }

/* ---------- mapa no contato ---------- */
.contato__lista .mapa { margin-top: .6rem; }
.mapa__quadro { display: block; width: 100%; aspect-ratio: 16 / 10; border: 0; border-radius: var(--raio); box-shadow: 0 20px 40px -30px rgba(23,33,27,.6); background: var(--papel); }
.mapa__acoes { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .8rem; }
.mapa__acoes .botao { min-height: 44px; }

/* =========================================================
   v6: tudo reto (sem cantos arredondados) e Empreendimentos
   como bloco dourado ocupando a altura toda do topo
   ========================================================= */
*, *::before, *::after { border-radius: 0 !important; }

.topo { align-items: stretch; padding-top: env(safe-area-inset-top, 0px); padding-bottom: 0; padding-right: 0; }
.topo .marca, .topo .menu { align-self: center; }
.menu { margin-left: auto; margin-right: clamp(1rem, 2.5vw, 2rem); }
.topo__emp {
  display: flex; align-items: center; justify-content: center;
  min-height: var(--topo-h); padding: 0 clamp(1.1rem, 2.6vw, 2.2rem);
  text-decoration: none; font-weight: 800; font-size: 1rem; letter-spacing: .02em; color: #fff;
  background: linear-gradient(180deg, #FBE9A0 0%, #EBC350 22%, #D4A22A 52%, #B8841A 78%, #E2B947 100%);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.75), inset 0 -4px 0 rgba(110,72,5,.45), inset 1px 0 0 rgba(255,255,255,.35), -6px 0 18px -8px rgba(0,0,0,.45);
  text-shadow: 0 1px 0 rgba(120,80,0,.55), 0 2px 6px rgba(90,58,0,.45);
  transition: filter .2s, transform .1s;
}
.topo__emp:hover { filter: brightness(1.07) saturate(1.05); }
.topo__emp:active { transform: translateY(1px); box-shadow: inset 0 3px 6px rgba(110,72,5,.45); }
.topo__emp:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }
@media (max-width: 760px) {
  .menu a:not([href="#/favoritos"]) { display: none; }
  .topo__emp { padding: 0 1rem; font-size: .92rem; }
}
@media (max-width: 380px) { .menu { display: none; } }
@media (max-width: 480px) { .menu { display: none; } .topo__emp { font-size: .9rem; } }
.botao--ouro {
  color: #fff; border: 0;
  background: linear-gradient(180deg, #FBE9A0 0%, #EBC350 22%, #D4A22A 52%, #B8841A 78%, #E2B947 100%);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.75), inset 0 -4px 0 rgba(110,72,5,.45);
  text-shadow: 0 1px 0 rgba(120,80,0,.55), 0 2px 6px rgba(90,58,0,.45);
}
.botao--ouro:hover { background: linear-gradient(180deg, #FBE9A0 0%, #EBC350 22%, #D4A22A 52%, #B8841A 78%, #E2B947 100%); filter: brightness(1.07); }

/* =========================================================
   v7: ajustes pedidos + página do imóvel em "filme fotográfico"
   ========================================================= */
.mapa__acoes .botao--cheio, .contato__lista .mapa__acoes .botao--cheio { color: #fff; }
.capa__selo { padding: 0; background: none; border: 0; backdrop-filter: none; -webkit-backdrop-filter: none; color: var(--ouro); letter-spacing: .08em; font-weight: 700; }

.palco { display: grid; grid-template-columns: minmax(170px, 230px) 1fr; gap: 1rem; height: clamp(560px, calc(100vh - var(--topo-h) - 5rem), 860px); }

/* rolo de filme antigo */
.filme { position: relative; overflow: hidden; background: #16110c; padding: 0 30px;
  box-shadow: inset 0 0 0 1px #000, inset 0 0 40px rgba(0,0,0,.7); }
.filme::before, .filme::after { content: ""; position: absolute; top: 0; bottom: 0; width: 30px; z-index: 2; pointer-events: none;
  background: repeating-linear-gradient(180deg, transparent 0 9px, #efe6d2 9px 21px, transparent 21px 30px);
  -webkit-mask: linear-gradient(90deg, transparent 0 8px, #000 8px 22px, transparent 22px); mask: linear-gradient(90deg, transparent 0 8px, #000 8px 22px, transparent 22px);
  opacity: .9; }
.filme::before { left: 0; } .filme::after { right: 0; }
.filme__rolo { display: flex; flex-direction: column; gap: 10px; padding: 10px 0; }
.filme--rodando .filme__rolo { animation: rolarFilme calc(var(--quadros) * 3.2s) linear infinite; }
.filme--rodando:hover .filme__rolo, .filme--rodando:focus-within .filme__rolo { animation-play-state: paused; }
@keyframes rolarFilme { from { transform: translateY(0); } to { transform: translateY(calc(-50% - 5px)); } }
@media (prefers-reduced-motion: reduce) { .filme--rodando .filme__rolo { animation: none; } .filme { overflow-y: auto; } }
.filme__quadro { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; border: 0; cursor: pointer; background: #000; flex: none;
  box-shadow: 0 0 0 2px #0a0806; }
.filme__quadro img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.45) contrast(1.05) brightness(.85) saturate(.8); transition: filter .35s; }
.filme__quadro:hover img { filter: sepia(.15) brightness(.95); }
.filme__quadro.is-ativo img { filter: none; }
.filme__quadro.is-ativo { box-shadow: 0 0 0 3px var(--ouro); }
.filme__num { position: absolute; left: 6px; bottom: 4px; font: 700 .7rem/1 ui-monospace, "Courier New", monospace; color: #f2a33a; text-shadow: 0 0 4px rgba(242,163,58,.6); letter-spacing: .05em; }

/* coluna da direita: foto grande em cima, informações embaixo */
.palco__direita { display: grid; grid-template-rows: 1fr auto; gap: 1rem; min-height: 0; }
.palco__foto { position: relative; min-height: 0; padding: 0; border: 0; background: #111; cursor: zoom-in; overflow: hidden; }
.palco__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.palco__foto img.is-entrando { animation: revelar .5s ease; }
@keyframes revelar { from { opacity: 0; filter: sepia(.6) brightness(1.4); } to { opacity: 1; filter: none; } }
@media (prefers-reduced-motion: reduce) { .palco__foto img.is-entrando { animation: none; } }
.palco__conta { position: absolute; right: 1rem; bottom: 1rem; padding: .35rem .7rem; background: rgba(12,10,8,.78); color: #fff; font: 700 .85rem ui-monospace, monospace; }
.palco__info { display: grid; grid-template-columns: 1fr auto; gap: 1.2rem 2rem; align-items: end; padding: 1.3rem 1.5rem; background: var(--papel); border: 1px solid var(--linha); }
.palco__texto h1 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); margin: .2rem 0 .4rem; }
.palco__texto .imovel__onde { margin: 0; font-size: .9rem; }
.palco__preco { text-align: right; }
.palco__preco .painel__preco { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.palco__acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-top: .8rem; }
.palco__acoes .botao { width: auto; min-height: 46px; }
.imovel--filme .imovel__grade { padding-top: 2.5rem; }
.imovel--filme .imovel__info h2:first-child { margin-top: 0; }

@media (max-width: 900px) {
  .palco { grid-template-columns: 1fr; height: auto; }
  .palco__direita { order: -1; grid-template-rows: auto auto; }
  .palco__foto { aspect-ratio: 4 / 3; }
  .filme { padding: 26px 0; overflow-x: auto; overflow-y: hidden; }
  .filme::before, .filme::after { left: 0; right: 0; width: auto; height: 26px; top: auto; bottom: auto;
    background: repeating-linear-gradient(90deg, transparent 0 9px, #efe6d2 9px 21px, transparent 21px 30px);
    -webkit-mask: linear-gradient(180deg, transparent 0 7px, #000 7px 19px, transparent 19px); mask: linear-gradient(180deg, transparent 0 7px, #000 7px 19px, transparent 19px); }
  .filme::before { top: 0; } .filme::after { bottom: 0; }
  .filme__rolo { flex-direction: row; padding: 0 10px; animation: none !important; }
  .filme__rolo [aria-hidden="true"] { display: none; }
  .filme__quadro { width: 140px; }
  .palco__info { grid-template-columns: 1fr; }
  .palco__preco { text-align: left; }
  .palco__acoes { justify-content: flex-start; }
}
.topo__emp { margin-left: auto; }
@media (max-width: 900px) {
  .palco { display: flex; flex-direction: column; }
  .palco__direita { display: contents; }
  .palco__foto { order: 1; }
  .filme { order: 2; }
  .palco__info { order: 3; }
}

/* =========================================================
   v8: filme manual (setas + arrastar), título e valor no topo
   ========================================================= */
.imovel__cabeca { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .8rem 2rem; margin: .6rem 0 1.2rem; }
.imovel__cabeca h1 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); max-width: 22em; margin: 0; }
.imovel__valor { display: grid; justify-items: end; gap: .15rem; }
.imovel__valor span { font-size: .85rem; color: var(--tinta-2); }
.imovel__valor strong { font: 600 clamp(1.9rem, 3.4vw, 2.6rem)/1 var(--serif); color: var(--mata); }
.imovel__valor small { color: var(--tinta-2); }

/* o filme deixa de girar sozinho */
.filme { padding: 0; display: flex; flex-direction: column; }
.filme::before, .filme::after { content: none; }
.filme__janela { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; cursor: grab; touch-action: pan-y; overscroll-behavior: contain; }
.filme__janela::-webkit-scrollbar { display: none; }
.filme__janela.is-arrastando { cursor: grabbing; scroll-behavior: auto; }
.filme__rolo { position: relative; padding: 10px 30px; animation: none !important; user-select: none; }
.filme__rolo::before, .filme__rolo::after { content: ""; position: absolute; top: 0; bottom: 0; width: 30px; pointer-events: none;
  background: repeating-linear-gradient(180deg, transparent 0 9px, #efe6d2 9px 21px, transparent 21px 30px);
  -webkit-mask: linear-gradient(90deg, transparent 0 8px, #000 8px 22px, transparent 22px); mask: linear-gradient(90deg, transparent 0 8px, #000 8px 22px, transparent 22px); opacity: .9; }
.filme__rolo::before { left: 0; } .filme__rolo::after { right: 0; }
.filme__seta { flex: none; height: 44px; border: 0; background: #0d0a07; color: var(--ouro); font-size: 1rem; cursor: pointer; box-shadow: inset 0 0 0 1px #000; }
.filme__seta:hover:not(:disabled) { background: #221a12; color: #fff; }
.filme__seta:disabled { opacity: .3; cursor: default; }

/* informações abaixo da foto */
.palco__info { display: block; padding: 1.1rem 1.4rem; max-height: 42%; overflow-y: auto; }
.palco__linha { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; }
.palco__local { margin: 0; font-weight: 600; color: var(--tinta-2); }
.palco__linha .specs { margin: 0; }
.palco__fav { width: auto; min-height: 40px; margin-left: auto; padding: .5rem 1rem; }
.palco__descricao { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--linha); color: var(--tinta-2); line-height: 1.65; font-size: .97rem; }
.painel .form .botao--zap { width: 100%; }

@media (max-width: 900px) {
  .imovel__valor { justify-items: start; }
  .filme { flex-direction: row; min-width: 0; width: 100%; height: auto !important; min-height: 90px; flex: none; }
  .filme__janela { min-width: 0; min-height: 78px; }
  .filme__seta {
    display: flex !important; align-items: center; justify-content: center;
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    width: 34px; height: 34px; padding: 0; background: rgba(0,0,0,.6); color: #fff;
    border: 1px solid rgba(255,255,255,.4); box-shadow: none; font-size: .8rem;
  }
  .filme__seta--cima { left: 6px; }
  .filme__seta--baixo { right: 6px; }
  .filme__seta span { display: none; }
  .filme__seta--cima::before { content: "\2039"; font-size: 1.3rem; line-height: 1; }
  .filme__seta--baixo::before { content: "\203A"; font-size: 1.3rem; line-height: 1; }
  .filme__seta:disabled { display: none !important; }
  .filme__janela { overflow-x: auto; overflow-y: hidden; touch-action: pan-x; }
  .filme__rolo { display: flex; flex-direction: row; gap: 10px; padding: 26px 10px; width: max-content; }
  .filme__rolo::before, .filme__rolo::after { left: 0; right: 0; width: auto; height: 26px; top: auto; bottom: auto;
    background: repeating-linear-gradient(90deg, transparent 0 9px, #efe6d2 9px 21px, transparent 21px 30px);
    -webkit-mask: linear-gradient(180deg, transparent 0 7px, #000 7px 19px, transparent 19px); mask: linear-gradient(180deg, transparent 0 7px, #000 7px 19px, transparent 19px); }
  .filme__rolo::before { top: 0; } .filme__rolo::after { bottom: 0; }
  .palco__info { max-height: none; }
  .palco__fav { margin-left: 0; }
}
.imovel__cabeca { display: grid; grid-template-columns: 1fr auto; align-items: end; }
.topo__emp { margin-left: 0; }
@media (max-width: 480px) { .topo__emp { margin-left: auto; } }
@media (max-width: 700px) { .imovel__cabeca { grid-template-columns: 1fr; } .imovel__valor { justify-items: start; } }

/* ---------- v9: favorito vira estrela ---------- */
.palco__direita { grid-template-rows: 1fr auto; }
.palco__quadro { position: relative; min-height: 0; display: grid; }
.palco__quadro .palco__foto { height: 100%; }
.estrela { position: absolute; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; cursor: pointer;
  background: rgba(12,10,8,.55); color: #fff; font-size: 1.6rem; line-height: 1; text-shadow: 0 1px 3px rgba(0,0,0,.5); transition: background .2s, color .2s; }
.estrela:hover { background: rgba(12,10,8,.75); color: var(--ouro); }
.estrela.is-fav { color: #F2C230; }
.estrela.is-pulando { animation: estrelaPula .45s cubic-bezier(.3,1.6,.5,1); }
@keyframes estrelaPula { 0% { transform: scale(.6); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .estrela.is-pulando { animation: none; } }
.estrela--palco { top: 1rem; right: 1rem; width: 52px; height: 52px; font-size: 2rem; }
.estrela--card { top: .6rem; right: .6rem; width: 40px; height: 40px; font-size: 1.35rem; }
@media (max-width: 900px) { .palco__quadro { order: 1; } .palco__quadro .palco__foto { aspect-ratio: 4 / 3; height: auto; } }

/* =========================================================
   v10: 3 colunas (miniaturas | foto + informações | formulário),
   sem visual de filme, descrição maior
   ========================================================= */
.palco { display: grid; grid-template-columns: 150px minmax(0, 1fr) 340px; gap: 1rem; height: auto; align-items: stretch; }
.filme { contain: size; min-height: 0; background: none; box-shadow: none; }
.filme__rolo { padding: 0; gap: 8px; }
.filme__rolo::before, .filme__rolo::after { content: none !important; }
.filme__quadro { box-shadow: none; opacity: .7; transition: opacity .2s; }
.filme__quadro img { filter: none !important; }
.filme__quadro:hover, .filme__quadro.is-ativo { opacity: 1; }
.filme__quadro.is-ativo { box-shadow: 0 0 0 3px var(--mata); }
.filme__num { display: none; }
.filme__seta { height: 38px; background: var(--papel); color: var(--mata); border: 1px solid var(--linha); box-shadow: none; }
.filme__seta:hover:not(:disabled) { background: var(--ceu); color: var(--mata); }
.filme__janela { margin: 8px 0; }

.palco__direita { display: flex; flex-direction: column; gap: 1rem; min-height: 0; }
.palco__quadro { height: clamp(280px, 38vw, 470px); }
.palco__info { max-height: none; overflow: visible; padding: 1.3rem 1.5rem 1.5rem; }
.palco__local { font-size: 1rem; }
.palco__linha .specs { font-size: 1rem; }
.palco__descricao { font-size: 1.08rem; line-height: 1.75; color: var(--tinta); margin-top: 1.1rem; padding-top: 1.1rem; }

.palco__form { position: static; align-self: start; box-shadow: none; }
.palco__form .form { gap: .75rem; }

.imovel--filme .imovel__grade { grid-template-columns: 1fr; }

@media (max-width: 1150px) {
  .palco { grid-template-columns: 120px minmax(0, 1fr); }
  .palco__form { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .palco { display: flex; flex-direction: column; }
  .filme { contain: none; }
  .filme__janela { margin: 0; }
  .palco__quadro { height: auto; }
  .palco__form { order: 4; }
}
/* v11: celular — miniaturas em cima, foto no meio, descrição e formulário embaixo */
@media (max-width: 900px) {
  .palco .filme { order: 1; }
  .palco .palco__quadro { order: 2; }
  .palco .palco__info { order: 3; }
  .palco .palco__form { order: 4; }
}
@media (max-width: 900px) { .palco .palco__direita { display: contents; } }
.filme__quadro.is-ativo { box-shadow: none; }
.filme__quadro.is-ativo::after { content: ""; position: absolute; inset: 0; border: 3px solid var(--mata); pointer-events: none; }
@media (max-width: 900px) { .filme__quadro { width: 104px; } }

/* =========================================================
   v12: tipografia da marca — títulos em Cinzel (maiúsculas,
   como o letreiro ATHENA) e textos em Montserrat (como IMÓVEIS)
   ========================================================= */
:root {
  --serif: "Cinzel", "Trajan Pro", "Times New Roman", serif;
  --sans: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;
}
body { font-family: var(--sans); }
h1, h2, h3,
.cartao__titulo, .destaque__titulo, .categoria__texto b, .emp__info b, .emp__logo b,
.fileira__cabeca h3, .imovel__cabeca h1, .palco__texto h1 {
  font-family: var(--serif); text-transform: uppercase; letter-spacing: .035em; font-weight: 600;
}
.passos h3, .form h3 { font-family: var(--serif); }
h1 { line-height: 1.12; }
.capa h1 { font-size: clamp(2.1rem, 5.4vw, 4.3rem); line-height: 1.1; font-weight: 600; letter-spacing: .03em; max-width: 14em; }
.capa h1 em { font-style: normal; }
.imovel__cabeca h1 { font-size: clamp(1.5rem, 2.8vw, 2.2rem); }
.bloco__cabeca h2, .por-bairro__cabeca h2 { font-size: clamp(1.6rem, 3.2vw, 2.2rem); }
.passos h2, .sobre h2, .contato h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); }
.caminho h2, .chamada-emp h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.cartao__titulo { font-size: 1.02rem; line-height: 1.35; }
.destaque__titulo { font-size: clamp(1.3rem, 2.2vw, 1.8rem); }
.fileira__cabeca h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
.fileira__cabeca h3 span { text-transform: none; letter-spacing: 0; }
.categoria__texto b { font-size: 1.15rem; }
/* rótulos pequenos no espírito do "I M Ó V E I S" do letreiro */
.capa__selo, .painel__rotulo, .imovel__valor span, .faixa span, .palco__local, .cartao__onde {
  text-transform: uppercase; letter-spacing: .18em; font-weight: 500; font-size: .78rem;
}
.faixa span { font-size: .74rem; }
/* números e preços na fonte do letreiro, sem maiúsculas forçadas */
.cartao__preco, .destaque__preco, .painel__preco, .imovel__valor strong, .faixa b, .atalho b { font-family: var(--serif); font-weight: 600; letter-spacing: .01em; }
.cartao__preco { font-size: 1.15rem; }
.topo__emp { font-family: var(--serif); text-transform: uppercase; letter-spacing: .12em; font-size: .92rem; }
.menu a { text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 600; }
.botao { letter-spacing: .02em; }

/* =========================================================
   v13: legenda de foto, ficha no meio, formulário travado
   ========================================================= */
.cartao__foto, .destaque__foto, .palco__foto { overflow: hidden; }
.palco { align-items: start; }
.palco__direita { align-self: stretch; }
.legenda { display: flex; justify-content: space-between; gap: 1rem; margin: -.4rem 0 0; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--tinta-2); }
.palco__info { display: none; }
.ficha--palco { margin-top: .4rem; }
.palco__descricao { margin: 1.4rem 0 0; padding: 0; border: 0; }
.palco__subtitulo { font-size: 1.2rem; margin: 1.8rem 0 .8rem; }
.palco__form { position: sticky; top: calc(var(--topo-h) + 1rem); }
.filme { position: sticky; top: calc(var(--topo-h) + 1rem); height: calc(100vh - var(--topo-h) - 2rem); max-height: 760px; contain: none; }
@media (max-width: 1150px) { .palco__form { position: static; } }
@media (max-width: 900px) { .filme { position: static; height: auto; max-height: none; } .legenda { margin-top: -.4rem; } .palco .legenda { order: 2; } .palco .ficha--palco, .palco .palco__descricao, .palco .palco__subtitulo, .palco .caracteristicas { order: 3; } }
@media (max-width: 900px) { .palco__quadro { display: block; } .palco__quadro .palco__foto { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; } }
@media (max-width: 900px) { .palco { align-items: stretch; } }

/* =========================================================
   v15: espaços de foto padronizados + zoom real (50% a 300%)
   ========================================================= */
.cartao__foto, .destaque__foto, .palco__foto, .categoria { background: #1d332d; }
.cartao__foto { aspect-ratio: 4 / 3; }
.destaque__foto { min-height: 0; aspect-ratio: 13 / 9; }
.destaque { align-items: stretch; }
.destaque__foto img, .cartao__foto img { position: absolute; inset: 0; }
.cartao__foto img { width: 100%; height: 100%; object-fit: cover; }
.palco__quadro { height: auto; aspect-ratio: 13 / 9; }
.palco__quadro .palco__foto { height: 100%; }
img[data-enq] { transition: none; }
@media (max-width: 860px) { .destaque__foto { aspect-ratio: 13 / 9; } }
@media (max-width: 900px) { .palco__quadro .palco__foto { aspect-ratio: 13 / 9; } }

/* =========================================================
   v19: padrão único de informações
   tipo - bairro / valor / imagem / cód + cidade / lote / construído /
   quartos + suítes / banheiros + destaque
   ========================================================= */
.cartao { display: flex; flex-direction: column; }
.cartao__topo { padding: 1rem 1.1rem .8rem; display: grid; gap: .3rem; }
.cartao__titulo { font-size: .98rem; line-height: 1.3; text-decoration: none; }
.cartao__topo .cartao__preco { margin: 0; padding: 0; font-size: 1.3rem; color: var(--mata); }
.cartao__foto-caixa { position: relative; }
.cartao__corpo { display: block; padding: .8rem 1.1rem 1.1rem; text-decoration: none; color: inherit; flex: 1; }
.info { display: grid; gap: .1rem; }
.info p { margin: 0; }
.info__legenda { display: flex; justify-content: space-between; gap: .8rem; padding-bottom: .45rem; margin-bottom: .2rem !important; border-bottom: 1px solid var(--linha); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--tinta-2); font-weight: 500; }
.info__linha { display: flex; justify-content: space-between; gap: 1rem; padding: .28rem 0; font-size: .92rem; color: var(--tinta-2); }
.info__linha b { color: var(--tinta); }
.info__dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: .28rem 0; font-size: .92rem; color: var(--tinta-2); }
.info__dupla b { color: var(--tinta); }
.info__dupla span:last-child { text-align: right; }
.info__extra { color: var(--mata-2); font-weight: 600; }
.estrela--card { top: .6rem; right: .6rem; }

/* destaque da home */
.destaque__foto-caixa { position: relative; }
.destaque__foto-caixa .destaque__foto { height: 100%; }
.destaque__corpo .info { margin: .6rem 0 .2rem; }
.destaque__preco { margin: .2rem 0 .2rem; }

/* página do imóvel */
.palco__direita .info { font-size: 1rem; }
.palco__direita .info__linha, .palco__direita .info__dupla { font-size: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--linha); }
.palco__direita .info__legenda { margin-top: .2rem !important; }
.quadro-desc { margin-top: 1.4rem; padding: 1.4rem 1.5rem; background: var(--papel); border: 1px solid var(--linha); }
.quadro-desc h2 { font-size: 1.15rem; margin-bottom: .8rem; }
.quadro-desc .palco__descricao { margin: 0; }
.quadro-desc .caracteristicas { margin-top: 1.1rem; }
.legenda, .ficha--palco { display: none; }
@media (max-width: 900px) { .palco .info, .palco .quadro-desc { order: 3; } }

/* =========================================================
   v20: miniaturas do tamanho da foto grande (3 visíveis),
   preço menor e título do card em no máximo 2 linhas
   ========================================================= */
.filme { position: static; max-height: none; align-self: start; }
.filme__janela { margin: 6px 0; display: flex; flex-direction: column; }
.filme__janela .filme__rolo { display: flex; flex-direction: column; gap: 8px; height: 100%; }
.filme__janela .filme__quadro { flex: 0 0 calc((100% - 16px) / 3); width: 100%; aspect-ratio: auto; }

.cartao__titulo { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; min-height: 2.7em; }
.cartao__topo .cartao__preco { font-size: 1.05rem; }
.destaque__titulo { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.destaque__preco { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
@media (max-width: 900px) {
  .filme__janela { display: block; }
  .filme__janela .filme__rolo { flex-direction: row; height: auto; }
  .filme__janela .filme__quadro { flex: none; width: 104px; height: auto; aspect-ratio: 4 / 3; }
}

/* v21: sessões da home (novidades, bairro do dia, todos) */
.bloco .destaque + .fileira { margin-top: 1.2rem; }
.fileira__cabeca--so-setas { border-bottom: 0; padding-bottom: 0; margin-bottom: .6rem; }

/* =========================================================
   v22: grade fixa dos cards
   4 linhas antes da foto: tipo / bairro (2 linhas) / preço
   5 linhas depois da foto: cód+cidade / lote / construída / quartos+suíte / banheiros+destaque
   ========================================================= */
.topo-card { --l: 1.3em; display: grid; grid-template-rows: var(--l) calc(var(--l) * 2) auto; row-gap: .15rem; padding: 1rem 1.1rem .85rem; text-decoration: none; color: inherit; }
.topo-card__tipo { font-family: var(--serif); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; font-size: 1rem; line-height: var(--l); white-space: nowrap; overflow: hidden; }
.topo-card__bairro { font-family: var(--serif); text-transform: uppercase; letter-spacing: .03em; font-weight: 500; font-size: .92rem; line-height: 1.3; color: var(--tinta-2); overflow: hidden; }
.topo-card__preco { margin-top: .35rem; font-family: var(--serif); font-weight: 700; font-size: 1.05rem; line-height: 1.2; color: var(--mata); white-space: nowrap; }
.topo-card:hover .topo-card__tipo { text-decoration: underline; text-underline-offset: 3px; }
.cartao__topo { display: none; }

.info__linha, .info__dupla { min-height: 2rem; align-items: center; }
.info__dupla span { min-height: 1em; }
.info__vazio { font-style: normal; color: var(--linha); color: #b9c2bd; }

/* destaque "grande" das sessões segue o mesmo padrão, maior */
.topo-card--destaque { padding: 0; --l: 1.35em; }
.topo-card--destaque .topo-card__tipo { font-size: clamp(1.3rem, 2.2vw, 1.8rem); }
.topo-card--destaque .topo-card__bairro { font-size: clamp(1rem, 1.5vw, 1.2rem); }
.topo-card--destaque .topo-card__preco { font-size: clamp(1.4rem, 2.2vw, 1.8rem); margin-top: .5rem; }
.destaque__corpo .info { margin: 1rem 0 .4rem; }
/* v23: altura das linhas acompanha o tamanho da letra (corrigia o "CASA" cortado no destaque) */
.topo-card { grid-template-rows: auto auto auto; }
.topo-card__tipo { line-height: 1.25; }
.topo-card__bairro { line-height: 1.3; height: 2.6em; }

/* =========================================================
   v24: favoritos = tabela de comparação lado a lado
   ========================================================= */
.passos .botao--zap { display: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.comp__rolagem { overflow-x: auto; border: 1px solid var(--linha); background: var(--papel); }
.comp__tabela { border-collapse: collapse; width: 100%; min-width: calc(170px + var(--n) * 230px); table-layout: fixed; }
.comp__tabela th, .comp__tabela td { padding: .8rem 1rem; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: top; font-size: .95rem; }
.comp__tabela td { border-left: 1px solid var(--linha); }
.comp__rotulo { width: 170px; position: sticky; left: 0; z-index: 1; background: var(--fundo); font: 600 .74rem var(--sans) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-2); }
.comp__casa { border-left: 1px solid var(--linha); background: var(--papel); }
.comp__foto { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #1d332d; margin-bottom: .7rem; }
.comp__foto img { width: 100%; height: 100%; object-fit: cover; }
.comp__nome { display: grid; gap: .15rem; font: 700 1rem var(--serif); text-transform: uppercase; letter-spacing: .03em; text-decoration: none; }
.comp__nome small { font: 500 .72rem var(--sans); letter-spacing: .14em; color: var(--tinta-2); }
.comp__tirar { margin-top: .6rem; padding: .3rem 0; border: 0; background: none; color: #B3261E; font: 600 .82rem var(--sans); cursor: pointer; }
.comp__preco { font: 700 1.15rem var(--serif); color: var(--mata); }
.comp__tabela td.is-melhor { background: var(--ouro-claro); box-shadow: inset 3px 0 0 var(--ouro); font-weight: 700; }
.comp__lista { margin: 0; padding-left: 1.1rem; font-size: .88rem; line-height: 1.5; }
.comp__acoes td { display: table-cell; }
.comp__acoes .botao { display: flex; width: 100%; min-height: 42px; margin-bottom: .4rem; font-size: .9rem; }
.comp__envio { margin: 1.4rem 0 0; }
.comp .vazio { padding: 3rem 0; }

/* =========================================================
   v25: capa limpa (CRECI + frase em 2 linhas + busca),
   frase na faixa verde, títulos dos cards sem corte
   ========================================================= */
.capa h1 { font-size: clamp(1.7rem, 3.6vw, 2.9rem); line-height: 1.2; max-width: none; margin: .2rem 0 1.8rem; text-shadow: 0 2px 18px rgba(0,0,0,.45); }
.capa h1 em { display: inline; }
.capa__selo { margin-bottom: .6rem; }
.capa__veu { background: linear-gradient(0deg, rgba(14,28,24,.88) 0%, rgba(14,28,24,.35) 38%, rgba(14,28,24,0) 62%), linear-gradient(90deg, rgba(14,28,24,.55) 0%, rgba(14,28,24,0) 55%); }
.capa__conteudo { padding-bottom: clamp(5rem, 11vh, 7rem); }
@media (max-width: 900px) { .capa__veu { background: linear-gradient(0deg, rgba(14,28,24,.92) 0%, rgba(14,28,24,.45) 55%, rgba(14,28,24,.1) 100%); } }

.faixa--frase { display: block; padding: clamp(1.6rem, 4vw, 2.6rem) var(--respiro); text-align: center; }
.faixa--frase p { max-width: 46em; margin: 0 auto; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.6; color: rgba(255,255,255,.9); }

.topo-card__tipo { overflow: visible; line-height: 1.3; padding-top: .08em; white-space: nowrap; }
.topo-card__bairro { margin-top: .1em; }
.caminhos { padding-top: clamp(1rem, 3vw, 2rem); }
.chamada-emp { margin-top: clamp(1rem, 3vw, 2rem); }

/* v26: cabeçalho das sessões — título e link na mesma linha, subtítulo embaixo */
.sessao__cabeca { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 1.5rem; row-gap: .35rem; margin-bottom: 1.5rem; }
.sessao__cabeca h2 { font-size: clamp(1.6rem, 3.2vw, 2.2rem); line-height: 1.15; }
.sessao__cabeca .bloco__link { justify-self: end; }
.sessao__sub { grid-column: 1 / -1; margin: 0; color: var(--tinta-2); line-height: 1.4; }
@media (max-width: 560px) { .sessao__cabeca { grid-template-columns: 1fr; } .sessao__cabeca .bloco__link { justify-self: start; grid-row: 3; } }

/* v30: redes sociais em ícones, lado a lado */
.redes { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.redes__ic { display: grid; place-items: center; width: 48px; height: 48px; background: var(--mata); color: #fff; transition: background .2s, transform .15s; }
.redes__ic svg { width: 24px; height: 24px; fill: currentColor; }
.redes__ic:hover { transform: translateY(-2px); }
.redes__ic--whatsapp:hover { background: #1E8E4E; }
.redes__ic--instagram:hover { background: #C13584; }
.redes__ic--facebook:hover { background: #1877F2; }
.redes__ic--email:hover { background: var(--ouro); }
.contato__lista .redes-item { margin-bottom: .4rem; }
#rodape-redes { display: flex; justify-content: center; margin-bottom: 1rem; }
.rodape .redes__ic { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); }
.redes .redes__ic, .contato__lista .redes__ic, .rodape .redes__ic { color: #fff; text-decoration: none; }
#rodape-redes { margin-top: 1rem; }

/* =========================================================
   v31: capa com a foto parada (mesmo efeito da Realtec):
   a seção vira uma "janela" e a fachada fica fixa enquanto
   o conteúdo rola por cima
   ========================================================= */
.capa { clip-path: inset(0); }
.capa__foto { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100lvh; }
@media (prefers-reduced-motion: reduce) { .capa__foto { position: absolute; height: 100%; } }

/* v32: busca sai da capa e vai para a faixa verde */
.faixa--busca { display: block; padding: clamp(1.2rem, 3vw, 1.8rem) var(--respiro); }
.faixa--busca .buscador { max-width: var(--largura); margin: 0 auto; background: rgba(255,255,255,.97); box-shadow: none; }
.capa__conteudo { padding-bottom: clamp(4.5rem, 12vh, 7rem); }
.faixa--busca span { margin: 0; font-size: inherit; letter-spacing: normal; text-transform: none; color: inherit; }
.faixa--busca .buscador__abas span { display: grid; place-items: center; padding: 0 1rem; min-height: 44px; font-weight: 600; color: var(--tinta-2); }
.faixa--busca .buscador__abas input:checked + span { color: #fff; }
.faixa--busca div { padding: 0; border: 0; text-align: left; }
.faixa--busca .buscador__abas { padding: .25rem; }

/* v33: botão Buscar do menu leva até a barra de busca, deixando um respiro abaixo do topo */
#busca-rapida { scroll-margin-top: calc(var(--topo-h) + 2.5rem); }
@media (max-width: 760px) { .menu a[data-ir-busca] { display: inline; } }

/* v35: pilha de vídeos em "Quem somos", no lugar da foto única */
.sobre__midia { display: flex; }
.stack-col { width: 100%; max-width: 380px; }
.stack { position: relative; width: 100%; padding: 0 11px 11px 0; }
.stack-inner { position: relative; aspect-ratio: 9 / 16; }
.stack-card {
  position: absolute; inset: 0; overflow: hidden; cursor: pointer; background: var(--mata);
  box-shadow: 0 30px 60px -35px rgba(23,33,27,.6);
  transition: transform .42s cubic-bezier(.65,0,.35,1), filter .42s ease;
}
.stack-card video { width: 100%; height: 100%; object-fit: cover; display: block; }
.stack-card.is-front { z-index: 2; }
.stack-card.is-back { z-index: 1; transform: translate(11px, 11px); filter: saturate(.4) brightness(.85); }
.stack-card.is-back::before { content: ""; position: absolute; inset: 0; z-index: 2; background: rgba(23,33,27,.5); transition: opacity .3s; }
.stack-card .play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 54px; height: 54px; display: grid; place-items: center;
  background: rgba(255,255,255,.16); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.4); color: #fff; z-index: 3; transition: opacity .3s;
}
.stack-card .play svg { width: 20px; height: 20px; }
.stack-card.is-back .play, .stack-card.is-back .tag { opacity: 0; }
.stack-card .tag {
  position: absolute; left: 12px; bottom: 12px; z-index: 3; max-width: calc(100% - 24px);
  padding: .35rem .7rem; background: rgba(23,33,27,.55); color: #fff;
  font-size: .76rem; font-weight: 600; letter-spacing: .01em;
}
.stack-bar { display: flex; margin-top: 1rem; max-width: 380px; border: 1px solid var(--linha); background: var(--papel); }
.stack-tab {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: .55rem;
  padding: .7rem .8rem; background: transparent; border: 0; border-right: 1px solid var(--linha);
  font: inherit; font-size: .82rem; font-weight: 600; color: var(--tinta-2); text-align: left; cursor: pointer; position: relative;
}
.stack-tab .i { font-family: var(--serif); font-size: .7rem; color: var(--tinta-2); }
.stack-tab span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stack-tab[aria-selected="true"] { color: var(--mata); background: var(--ceu); }
.stack-tab[aria-selected="true"] .i { color: var(--mata); }
.stack-tab[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--ouro); }
.stack-next { flex: none; width: 46px; display: grid; place-items: center; background: var(--mata); color: #fff; border: 0; cursor: pointer; }
.stack-next:hover { background: var(--mata-2); }
.stack-next svg { width: 16px; height: 16px; }

/* visualizador de vídeo com som, mesmo padrão do .visor de fotos */
.video-visor { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: rgba(10,16,12,.94); padding: env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0); }
.video-visor[hidden] { display: none; }
.video-visor video { max-width: min(92vw, 480px); max-height: 86vh; }
.video-visor button {
  position: absolute; top: calc(1rem + env(safe-area-inset-top,0)); right: 1rem;
  border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; width: 48px; height: 48px; font-size: 1.7rem; line-height: 1;
}
.video-visor button:hover { background: rgba(255,255,255,.25); }

@media (max-width: 860px) { .stack-col, .stack-bar { max-width: 340px; } }

/* v36: zoom leve na foto ao passar o mouse, em todos os cards e seções com foto */
.cartao__foto,
.galeria button,
.destaque__foto,
.emp-det__fotos button,
.comp__foto,
.palco__foto,
.stack-card {
  overflow: hidden;
}
.cartao__foto img,
.galeria img,
.destaque__foto img,
.emp-det__fotos img,
.comp__foto img,
.palco__foto img {
  transition: transform .5s cubic-bezier(.2,.7,.1,1);
}
.cartao:hover .cartao__foto img,
.galeria button:hover img,
.destaque__foto:hover img,
.emp-det__fotos button:hover img,
.comp__foto:hover img,
.palco__foto:hover img {
  transform: scale(1.05);
}
.stack-card.is-front:hover video { transform: scale(1.04); }
.stack-card video { transition: transform .5s cubic-bezier(.2,.7,.1,1); }

/* v37: cabeçalho entra linha por linha, deslizando da lateral */
.capa__linha { display: block; opacity: 0; transform: translateX(-32px); animation: capaLinha .75s cubic-bezier(.2,.7,.1,1) forwards; animation-delay: calc(var(--i, 0) * .16s + .15s); }
@keyframes capaLinha { to { opacity: 1; transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .capa__linha { animation: none; opacity: 1; transform: none; } }

/* v38: menu sanduíche no mobile + topo esconde ao rolar para baixo */
.topo { transition: background .3s, box-shadow .3s, transform .35s ease; will-change: transform; }
.topo.is-escondido { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .topo { transition: background .3s, box-shadow .3s; } .topo.is-escondido { transform: none; } }

.hamb { display: none; }

@media (max-width: 760px) {
  .topo {
    flex-wrap: nowrap !important; gap: .4rem !important;
    justify-content: space-between !important; align-items: center !important;
    padding-left: var(--respiro) !important; padding-right: var(--respiro) !important;
    box-sizing: border-box !important; width: 100% !important; max-width: 100vw !important;
  }
  .marca { order: 1; flex: 0 0 auto; min-width: 0; align-self: center !important; }
  .marca img { height: 44px !important; width: auto !important; }

  .topo__emp {
    order: 2 !important; flex: 0 1 auto !important; min-width: 0 !important; max-width: none !important;
    margin: 0 !important; padding: 0 .55rem !important; min-height: 32px !important;
    display: flex !important; justify-content: center; align-items: center; align-self: center !important;
    font-size: .62rem !important; letter-spacing: .01em !important; white-space: nowrap;
  }
  .topo__emp span {
    display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }

  .hamb {
    order: 3; display: flex !important; flex-direction: column; justify-content: center; align-items: center;
    align-self: center !important;
    gap: 6px; width: 40px; height: 40px; padding: 0; flex: 0 0 auto;
    background: transparent; border: 1px solid rgba(255,255,255,.45); cursor: pointer;
  }
  .hamb span { display: block; width: 22px; height: 2.5px; background: #fff; transition: transform .3s ease, opacity .2s ease; }
  .hamb.is-aberto span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
  .hamb.is-aberto span:nth-child(2) { opacity: 0; }
  .hamb.is-aberto span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }

  .menu {
    display: flex !important; flex-direction: column !important; gap: 0 !important;
    position: fixed !important; left: 0; right: 0; top: var(--topo-h, 72px);
    margin: 0 !important; background: var(--mata); padding: 0 var(--respiro);
    max-height: 0; overflow: hidden; opacity: 0; visibility: hidden;
    transition: max-height .35s ease, opacity .25s ease, visibility 0s linear .35s;
    box-shadow: 0 16px 24px -16px rgba(0,0,0,.5); z-index: 19;
  }
  .menu.is-aberto { max-height: 70vh; opacity: 1; overflow-y: auto; visibility: visible; padding: .4rem var(--respiro) 1.4rem; transition: max-height .35s ease, opacity .25s ease; }
  .menu a { display: block !important; width: 100%; padding: .95rem 0 !important; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 1rem; opacity: 1 !important; }
  .menu a:last-child { border-bottom: 0; }
}
@media (min-width: 761px) {
  .menu { display: flex !important; }
  .menu a { display: inline !important; }
}

/* v40: trava com força qualquer deslocamento horizontal da página inteira
   (os carrosséis internos continuam deslizando normalmente, pois têm sua própria rolagem) */
html, body { overflow-x: hidden !important; max-width: 100vw !important; width: 100%; }
#app, main, .bloco, .busca, .fileira, .fileira__trilho { max-width: 100%; }

/* v39: vídeo de "Quem somos" centralizado no mobile (estava colado à esquerda) */
@media (max-width: 860px) {
  .sobre__midia { justify-content: center; }
  .stack-col { margin: 0 auto; }
}

/* v39: ícones de redes sociais do rodapé centralizados */
.rodape .redes { justify-content: center; }

/* v39: botões centralizados no mobile (Ver fotos e detalhes / Simular financiamento / Anunciar meu imóvel) */
@media (max-width: 760px) {
  .destaque__acoes { justify-content: center; }
  .caminho .botao { justify-self: center; }
}

/* v39: textos do site justificados (parágrafos e descrições, não títulos/botões/pílulas) */
p, .cartao__titulo, .destaque__titulo, .destaque__descricao, .imovel__descricao {
  text-align: justify;
  text-justify: inter-word;
}

/* v40: setas do carrinho de miniaturas (página do imóvel) precisam ficar
   posicionadas relativas à própria faixa de miniaturas, não à página --
   uma regra antiga mais abaixo no arquivo forçava position:static de volta */
@media (max-width: 900px) {
  .filme { position: relative !important; top: auto !important; }
}

/* v44: arrastar os cardzinhos (carrossel da home) com o mouse no computador */
.fileira__trilho { cursor: grab; }
.fileira__trilho.is-arrastando { cursor: grabbing; user-select: none; }
.fileira__trilho img, .fileira__trilho a { -webkit-user-drag: none; user-drag: none; }

/* v44: arrastar a foto no visor de tela cheia pra trocar, no computador */
#visor-img { cursor: grab; -webkit-user-drag: none; user-drag: none; user-select: none; }

/* v45: celular/tablet — a faixa de miniaturas ficava empurrada pra baixo (sobra do "top" do modo
   sticky do computador) e escondida atrás da foto grande. Agora fica no lugar dela, acima da foto. */
@media (max-width: 900px) {
  .palco .filme { top: auto !important; margin-bottom: .2rem; }
}


/* =========================================================
   v46: super destaque, destaques, financiamento e faixa de empreendimentos
   ========================================================= */
.info__fin { display: flex; align-items: center; gap: .45rem; margin-top: .35rem !important; padding-top: .5rem !important; border-top: 1px solid var(--linha); font-size: .88rem; font-weight: 600; color: var(--mata-2); }
.info__fin::before { content: "\2713"; color: var(--zap); font-weight: 700; }
.info__fin--nao { color: var(--tinta-2); font-weight: 500; }
.info__fin--nao::before { content: "\2715"; color: #b0453a; }

.super { max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.5rem) var(--respiro) 0; }
.super__link { position: relative; display: block; height: clamp(360px, 50vw, 580px); overflow: hidden; background: #1d332d; color: #fff; text-decoration: none; }
.super__foto { position: absolute; inset: 0; overflow: hidden; }
.super__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.super__veu { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,28,24,.92) 0%, rgba(14,28,24,.5) 40%, rgba(14,28,24,0) 72%); }
.super__texto { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(1.1rem, 3.5vw, 2.6rem); display: grid; gap: .45rem; justify-items: start; }
.super__selo { padding: .25rem .7rem; background: var(--ouro); color: #1B2B25; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.super__tipo { font-family: var(--serif); font-size: clamp(1.45rem, 3.6vw, 2.8rem); font-weight: 600; line-height: 1.1; text-transform: uppercase; letter-spacing: .03em; text-shadow: 0 2px 14px rgba(0,0,0,.45); }
.super__titulo { max-width: 42em; font-size: clamp(.95rem, 1.6vw, 1.15rem); line-height: 1.4; color: rgba(255,255,255,.9); }
.super__preco { font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.3rem); font-weight: 700; color: var(--ouro); }
.super__fin { font-size: .9rem; font-weight: 600; color: #fff; }
.super__fin::before { content: "\2713  "; color: #6fd39b; }
.super__fin--nao { color: rgba(255,255,255,.8); font-weight: 500; }
.super__fin--nao::before { content: "\2715  "; color: #e08a80; }
.super .botao { margin-top: .5rem; }

.destaques4 { padding-bottom: 0; }
.grade--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .grade--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .grade--4 { grid-template-columns: 1fr; } }

.capa--emp { --emp-h: 14.5rem; }
.capa--emp .capa__conteudo { padding-bottom: calc(var(--emp-h) + 1.5rem); }
.capa--emp .capa__rolar { display: none; }
.emp-faixa { position: absolute; left: 0; right: 0; bottom: 0; max-width: calc(var(--largura) + 2 * var(--respiro)); margin: 0 auto; padding: 0 var(--respiro) 1.7rem; box-sizing: border-box; }
.emp-faixa__titulo { margin: 0 0 .7rem; color: var(--ouro); text-transform: uppercase; letter-spacing: .18em; font-weight: 700; font-size: .8rem; }
.emp-faixa__janela { max-width: 680px; overflow: hidden; }
.emp-faixa__trilho { --g: .9rem; position: relative; display: flex; gap: var(--g); will-change: transform; }
.emp-faixa__item { flex: 0 0 calc((100% - 3 * var(--g)) / 4); aspect-ratio: 1 / 1; display: grid; place-items: center; box-sizing: border-box; padding: .7rem; overflow: hidden; background: rgba(255,255,255,.96); color: var(--mata); text-decoration: none; font-weight: 600; font-size: .85rem; text-align: center; }
.emp-faixa__item img { max-width: 100%; max-height: 100%; object-fit: contain; }
.emp-faixa__item--vazio { background: rgba(255,255,255,.14); color: rgba(255,255,255,.88); border: 1px dashed rgba(255,255,255,.5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
a.emp-faixa__item:hover, a.emp-faixa__item:focus-visible { outline: 2px solid var(--ouro); background: #fff; }
@media (max-width: 600px) {
  .capa--emp { --emp-h: 9.6rem; }
  .emp-faixa { padding-bottom: 1.1rem; }
  .emp-faixa__trilho { --g: .45rem; }
  .emp-faixa__item { padding: .3rem; font-size: .66rem; }
}


/* v47: o botão do WhatsApp não cobre a faixa de empreendimentos no celular */
@media (max-width: 600px) {
  .capa--emp { --emp-h: 13.4rem; }
  .emp-faixa { padding-bottom: 4.6rem; }
}
