/* Base comum das páginas do Luximob (início e imóvel): tokens, topo, card de imóvel, rodapé, aviso.
   Layout: portal de busca (ZAP/VivaReal) vestido de revista de arquitetura. */
:root{
  --bg:#F4F5F2;          /* mármore Carrara */
  --surface:#FFFFFF;
  --ink:#14191A;         /* grafite */
  --muted:#525C58;
  --line:#D9DDD8;
  --accent:#8A6526;      /* ouro velho: legível como texto sobre o mármore (5,1:1) */
  --accent-ink:#1A1408;  /* tinta escura sobre ouro */
  --brass:#9C7530;       /* ouro dos detalhes (filetes, ícones, rótulos) */
  --ouro:linear-gradient(115deg,#7A5620 0%,#B88B3E 22%,#E9CD86 45%,#F7E3AE 52%,#C99A48 68%,#8C6526 100%);
  --ouro-texto:linear-gradient(100deg,#6E4C17 0%,#A87D33 35%,#C9A04F 50%,#A87D33 65%,#6E4C17 100%);
  --filete:linear-gradient(90deg,transparent,#B88B3E 20%,#E9CD86 50%,#B88B3E 80%,transparent);
  --glass:rgba(255,255,255,.78);
  --shade:rgba(20,25,26,.08);
  --on-photo:#FFFFFF;
  --photo-veil:rgba(8,12,12,.55);
  --f-display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --f-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gut:max(clamp(16px,4vw,48px), env(safe-area-inset-left,0px));
  --gut-r:max(clamp(16px,4vw,48px), env(safe-area-inset-right,0px));
  --r:14px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0C0F0E; --surface:#141917; --ink:#ECEBE5; --muted:#AAB3AE; --line:#252C29;
    --accent:#D9B36A; --accent-ink:#1A1408; --brass:#CFAA62; --glass:rgba(17,22,20,.74);
    --ouro-texto:linear-gradient(100deg,#B88B3E 0%,#E9CD86 35%,#FFF0C4 50%,#E9CD86 65%,#B88B3E 100%);
    --shade:rgba(0,0,0,.35); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0C0F0E; --surface:#141917; --ink:#ECEBE5; --muted:#AAB3AE; --line:#252C29;
  --accent:#D9B36A; --accent-ink:#1A1408; --brass:#CFAA62; --glass:rgba(17,22,20,.74);
    --ouro-texto:linear-gradient(100deg,#B88B3E 0%,#E9CD86 35%,#FFF0C4 50%,#E9CD86 65%,#B88B3E 100%);
  --shade:rgba(0,0,0,.35); color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
/* transição de cor SÓ quando a pessoa troca o tema no botão (classe posta por 450 ms em comum.js) — nunca ao carregar a página */
.trocando-tema,.trocando-tema *{transition:background-color .4s ease,color .4s ease,border-color .4s ease,fill .4s ease!important}
/* Bodoni Moda: o link do Google Fonts pede o tamanho óptico FIXO em 6 (opsz 6). No automático, título grande
   ganha opsz 96, de traço fino de ~1px que some sobre foto e em tela sem retina. font-variation-settings no
   body NÃO resolve: o atalho `font:` de cada título zera essa propriedade. */
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:6px}
h1,h2,h3{text-wrap:balance;margin:0}
p{margin:0}
.wrap{max-width:1320px;margin-inline:auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.eyebrow{font:500 13px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:32px;height:1px;flex-shrink:0;background:var(--filete)}
.h2{font:500 clamp(34px,4.6vw,60px)/1.06 var(--f-display);letter-spacing:-.015em}
.h2 em{font-style:italic;color:var(--accent);background:var(--ouro-texto);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.06em}
.sec{padding-block:clamp(72px,10vw,128px)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.sec-head > div{display:grid;gap:14px;min-width:0}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;color:var(--accent);border-bottom:1px solid currentColor;padding-bottom:4px}
.link-arrow svg{transition:transform .3s}
.link-arrow:hover svg{transform:translateX(4px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;border:0;cursor:pointer;font-weight:600;font-size:15px;transition:transform .25s,background-color .25s,color .25s}
.btn--solid{background:var(--ouro);background-size:200% 100%;background-position:0 0;color:var(--accent-ink);position:relative;overflow:hidden;isolation:isolate;box-shadow:0 10px 26px -12px rgba(140,101,38,.7),inset 0 1px 0 rgba(255,244,214,.6)}
.btn--solid::after{content:"";position:absolute;inset:-2px;z-index:-1;background:linear-gradient(100deg,transparent 30%,rgba(255,250,232,.75) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.btn--solid:hover{transform:translateY(-2px);background-position:100% 0}
.btn--solid:hover::after{transform:translateX(120%)}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn--ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}

/* ---------- topo ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
.topo{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--on-photo);transition:background-color .35s,color .35s,box-shadow .35s}
.topo.solido,.interna .topo{background:var(--glass);color:var(--ink);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 1px 0 var(--line)}
.topo__in{display:flex;align-items:center;gap:28px;height:76px}
.marca{display:flex;align-items:center;gap:10px;flex-shrink:0}
.marca svg{width:30px;height:30px}
.marca__nome{font:500 25px/1 var(--f-display);letter-spacing:-.01em}
.marca__nome i{font-style:italic}
.marca__tag{font:500 10.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.85;border-left:1px solid currentColor;padding-left:10px;margin-left:2px}
.nav{display:flex;gap:26px;margin-left:12px}
.nav a{font-size:15px;font-weight:500;opacity:.88;position:relative;padding-block:6px}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav a:hover::after{transform:scaleX(1)}
.topo__acoes{margin-left:auto;display:flex;align-items:center;gap:8px}
.ico-btn{width:44px;height:44px;border-radius:999px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;position:relative;transition:background-color .25s}
.ico-btn:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.ico-btn svg{width:20px;height:20px}
.fav-count{position:absolute;top:6px;right:5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--brass);color:#fff;font:600 10px/17px var(--f-body);text-align:center}
.tema .sol{display:none}
.is-dark .tema .sol{display:block}
.is-dark .tema .lua{display:none}
.entrar{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid currentColor;background:transparent;font-weight:600;font-size:14px;cursor:pointer}
.menu-btn{display:none}
.gaveta{position:fixed;inset:0;z-index:70;background:var(--bg);color:var(--ink);padding:calc(env(safe-area-inset-top,0px) + 20px) var(--gut-r) 32px var(--gut);display:flex;flex-direction:column;gap:8px}
.gaveta__topo{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.gaveta a{font:500 34px/1.3 var(--f-display);padding-block:6px;border-bottom:1px solid var(--line)}
@media (max-width:1020px){.nav,.entrar{display:none}.menu-btn{display:grid}}
@media (max-width:420px){.marca__tag{display:none}}


/* ---------- peças compartilhadas pela página inicial e pela busca (padrão visual do site) ----------
   Topo com foto (.hero), painel de vidro com abas douradas (.busca .abas .aba), faixa preta de bairros (.faixa),
   trilho horizontal com setas. Mudou aqui, muda nas duas páginas. */
.hero{position:relative;min-height:min(92svh,920px);display:flex;align-items:flex-end;color:var(--on-photo);isolation:isolate}
.hero__media{position:absolute;inset:0;overflow:hidden;z-index:-1;background:#1b2321}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:60% 55%;transform-origin:60% 50%}
.hero__media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 22% 62%,rgba(8,12,12,.62),transparent 70%),linear-gradient(180deg,rgba(8,12,12,.6) 0%,rgba(8,12,12,.2) 30%,rgba(8,12,12,.38) 55%,rgba(8,12,12,.92) 100%),linear-gradient(90deg,rgba(8,12,12,.72),rgba(8,12,12,.22) 55%,transparent 75%)}
.hero__in{width:100%;padding-top:150px;padding-bottom:clamp(28px,5vw,56px);display:grid;gap:clamp(28px,4vw,44px)}
.hero__txt{display:grid;gap:22px;max-width:760px}
.hero h1{font:500 clamp(46px,7.6vw,108px)/1 var(--f-display);letter-spacing:-.02em;text-shadow:0 2px 28px rgba(0,0,0,.45)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln > span{display:inline-block}
.hero h1 em{font-style:italic;font-weight:500}
.hero__lead{font-size:clamp(17px,1.6vw,20px);line-height:1.55;max-width:56ch;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.hero .eyebrow{color:#E9CD86}
.hero .eyebrow::before{background:linear-gradient(90deg,transparent,#E9CD86)}
.hero__in{position:relative;z-index:1}
.hero h1 .ouro-vivo{text-shadow:none;filter:drop-shadow(0 2px 22px rgba(0,0,0,.5))}
/* Buscador CLARO no padrão ZAP/VivaReal (pedido do dono, 19/10/2026): cartão marfim SÓLIDO, sempre claro — inclusive
   no tema escuro. As cores são travadas no claro por tokens locais, então tudo que mora dentro (campos, chips,
   "Entendi", microfone) fica claro sem regra extra. Filete dourado no alto; abas sublinhadas em dourado. */
.busca{--bg:#F6F5F1;--surface:#FFFFFF;--ink:#14191A;--muted:#58615D;--line:#DCDFDA;--accent:#8A6526;--accent-ink:#1A1408;--brass:#9C7530;--shade:rgba(20,25,26,.12);
  color-scheme:light;color:var(--ink);background:linear-gradient(90deg,#B88B3E,#E9CD86 50%,#B88B3E) top/100% 3px no-repeat,#FFFDF8;
  border-radius:20px;padding:24px 26px 22px;box-shadow:0 40px 90px -40px rgba(0,0,0,.7),0 0 0 1px rgba(201,154,72,.3);max-width:1120px}
.abas{display:flex;border-bottom:1px solid var(--line);margin-bottom:18px}
.aba{flex:1;border:0;background:transparent;min-height:46px;padding:0 10px;cursor:pointer;font-weight:600;font-size:15.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .25s,border-color .25s}
.aba:hover{color:var(--ink)}
.aba[aria-selected="true"]{color:var(--accent);border-bottom-color:#C99A48}
.faixa{background:#0A0D0C;color:#E9CD86;border-block:1px solid transparent;border-image:var(--filete) 1;overflow:hidden;padding-block:20px;display:flex;user-select:none}
.faixa ul{display:flex;flex-shrink:0;gap:0;margin:0;padding:0;list-style:none;animation:corre 46s linear infinite}
.faixa li{font:italic 500 clamp(20px,2.2vw,28px)/1.1 var(--f-display);white-space:nowrap;padding-right:44px;display:flex;align-items:center;gap:44px}
.faixa li::after{content:"";width:7px;height:7px;transform:rotate(45deg);background:var(--ouro)}
@keyframes corre{to{transform:translateX(-100%)}}
.trilho-wrap{position:relative}
.trilho{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,calc((100% - 72px)/4));gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px;overscroll-behavior-x:contain}
.trilho::-webkit-scrollbar{display:none}
@media (max-width:1200px){.trilho{grid-auto-columns:minmax(280px,calc((100% - 48px)/3))}}
/* coluna fixa em %: minmax(0,…) dentro de trilho com rolagem colapsa os cards a zero no celular */
@media (max-width:820px){.trilho{grid-auto-columns:78%;gap:16px}}
.sec-head .setas{display:flex;gap:8px}
.seta{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surface);cursor:pointer;display:grid;place-items:center;transition:border-color .2s,opacity .2s}
.seta:hover{border-color:var(--ink)}
.seta:disabled{opacity:.35;cursor:default}
.seta svg{width:18px;height:18px}
@media (max-width:820px){.sec-head .setas{display:none}}

/* ---------- card de imóvel (vitrine, parecidos) ---------- */
.card{scroll-snap-align:start;position:relative;display:flex;flex-direction:column;min-width:0}
.card__media{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--line);max-width:100%}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.card:hover .card__media img{transform:scale(1.06)}
.card__media{cursor:pointer}
.card__media::after{content:"";position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(transparent,rgba(8,12,12,.45));pointer-events:none}
.selo{position:absolute;left:14px;top:14px;z-index:2;background:rgba(10,14,13,.62);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:500 11.5px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 11px;border-radius:999px}
.fav{position:absolute;right:12px;top:12px;z-index:3;width:42px;height:42px;border-radius:50%;border:0;background:rgba(10,14,13,.45);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;cursor:pointer;transition:transform .2s}
.fav:hover{transform:scale(1.08)}
.fav svg{width:19px;height:19px}
.fav[aria-pressed="true"] svg path{fill:#E9C891;stroke:#E9C891}
.fav.pop{animation:pop .45s}
@keyframes pop{40%{transform:scale(1.25)}}
.card__fotos{position:absolute;right:14px;bottom:14px;z-index:2;color:#fff;font:500 12px/1 var(--f-mono);letter-spacing:.08em;display:flex;align-items:center;gap:6px}
.card__fotos svg{width:14px;height:14px}
.card__corpo{display:grid;gap:8px;padding:18px 2px 0}
.card__loc{font:500 12px/1.35 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.card__tit{font:600 18px/1.3 var(--f-body);letter-spacing:-.01em}
.card__tit a:hover{color:var(--accent)}
.specs{display:flex;gap:16px;list-style:none;margin:2px 0 0;padding:0;font-size:15px;color:var(--muted);flex-wrap:wrap}
.specs b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.card__pe{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.preco{font:500 18px/1.2 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.preco small{font-size:12px;color:var(--muted);font-weight:400}
.ref{font:400 12px/1 var(--f-mono);color:var(--muted);letter-spacing:.08em}

/* ---------- rodapé ---------- */
.rodape{background:#0A0D0C;color:#D9DBD5;padding-block:72px 32px}
.rodape__marca{font:500 clamp(64px,15vw,220px)/.85 var(--f-display);letter-spacing:-.04em;color:#ECEBE5;margin-bottom:56px;white-space:nowrap}
.rodape__marca i{font-style:italic;color:#CDA670}
.rodape__cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:32px}
.rodape h4{font:500 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#CDA670;margin:0 0 16px}
.rodape ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:15px}
.rodape ul a{opacity:.82;transition:opacity .2s}
.rodape ul a:hover{opacity:1}
.rodape__news{display:grid;gap:14px}
.rodape__news p{opacity:.85;font-size:15px;max-width:34ch}
.news{display:flex;border:1px solid #2C3330;border-radius:999px;padding:4px;max-width:380px}
.news input{flex:1;min-width:0;background:transparent;border:0;padding:0 16px;color:#ECEBE5;outline:none;font-size:16px}
.news input::placeholder{color:#8A938F}
.news button{background:#ECEBE5;color:#0A0D0C;min-height:44px;padding:0 20px}
.news-msg{font-size:14px;color:#8CC2AF;min-height:20px}
.rodape__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid #222926;margin-top:56px;padding-top:24px;font:400 12px/1.5 var(--f-mono);letter-spacing:.02em;opacity:.75}
@media (max-width:1020px){.rodape__cols{grid-template-columns:repeat(2,minmax(0,1fr))}.rodape__news{grid-column:1/-1}}

/* aviso */
.aviso{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);transform:translate(-50%,20px);z-index:80;background:var(--ink);color:var(--bg);padding:14px 20px;border-radius:999px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:calc(100% - 32px);text-align:center}
.aviso.on{opacity:1;transform:translate(-50%,0)}


/* ---------- camada ouro (pedido do dono, 19/10/2026: "mais coisas douradas, é luxo") ---------- */
::selection{background:#E9CD86;color:#1A1408}
.topo.solido,.interna .topo{box-shadow:none}
.topo.solido::after,.interna .topo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--filete);opacity:.9}
.marca svg{color:var(--brass)}
.topo:not(.solido) .marca svg{color:#E9CD86}
.interna .topo .marca svg{color:var(--brass)}
.marca__nome i{background:var(--ouro-texto);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.04em}
.topo:not(.solido) .marca__nome i{background:linear-gradient(100deg,#E9CD86,#FFF0C4 50%,#E9CD86);-webkit-background-clip:text;background-clip:text}
.interna .topo .marca__nome i{background:var(--ouro-texto);-webkit-background-clip:text;background-clip:text}
.nav a::after{background:var(--filete);height:1.5px}
.nav a:hover{color:var(--brass);opacity:1}
.topo:not(.solido) .nav a:hover{color:#F1D58C}
.interna .topo .nav a:hover{color:var(--brass)}
.fav-count{background:var(--ouro);color:#1A1408;font-weight:700}
.entrar{transition:border-color .25s,color .25s,background-color .25s}
.entrar:hover{border-color:#C99A48;color:#C99A48}
.gaveta a{border-bottom-color:color-mix(in srgb,var(--brass) 35%,var(--line))}
.gaveta a:hover{color:var(--brass)}

.selo{color:#F1D58C;box-shadow:inset 0 0 0 1px rgba(233,205,134,.55)}
.card__media{box-shadow:0 0 0 1px transparent;transition:box-shadow .4s}
.card:hover .card__media{box-shadow:0 0 0 1px #C99A48,0 24px 50px -24px rgba(140,101,38,.55)}
.card__pe{border-top-color:color-mix(in srgb,var(--brass) 40%,var(--line))}
.preco{color:var(--accent)}
.card__tit a:hover{color:var(--brass)}
.link-arrow{color:var(--accent)}

.rodape{border-top:1px solid transparent;border-image:var(--filete) 1}
.rodape__marca i{background:linear-gradient(100deg,#B88B3E 0%,#E9CD86 35%,#FFF0C4 50%,#E9CD86 65%,#B88B3E 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.04em}
.rodape h4{color:#E0BF7E}
.rodape ul a:hover{color:#F1D58C}
.news{border-color:rgba(201,154,72,.45)}
.news button{background:var(--ouro);background-size:200% 100%;color:#1A1408}
.news button:hover{background-position:100% 0}
.rodape__base{border-top-color:rgba(201,154,72,.3)}
.aviso{box-shadow:0 0 0 1px #C99A48,0 16px 40px -16px rgba(0,0,0,.5)}

/* letra dourada com reflexo que passa (manchete e destaques) */
.ouro-vivo{background:linear-gradient(100deg,#B88B3E 0%,#E9CD86 30%,#FFF4D0 45%,#E9CD86 60%,#B88B3E 80%,#E9CD86 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:reflexo 6s ease-in-out infinite}
@keyframes reflexo{0%,100%{background-position:100% 0}50%{background-position:0 0}}


/* ---------- card: destaque, tour em vídeo, prévia (19/10/2026) ---------- */
.card__mwrap{position:relative}
.selo--ouro{background:var(--ouro);color:#1A1408;box-shadow:inset 0 1px 0 rgba(255,244,214,.6),0 6px 16px -8px rgba(0,0,0,.5);font-weight:600;font-size:10.5px;padding:7px 10px;letter-spacing:.12em}
.card--super .card__media{box-shadow:0 0 0 1.5px #C99A48}
.card__play{position:absolute;left:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 14px 0 11px;border-radius:999px;border:1px solid rgba(233,205,134,.6);background:rgba(10,14,13,.6);color:#F1D58C;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:600 13px/1 var(--f-body);cursor:pointer;transition:background-color .25s,color .25s}
.card__play svg{width:14px;height:14px}
.card__play:hover{background:var(--ouro);color:#1A1408;border-color:transparent}
.card__prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;opacity:0;transition:opacity .4s;pointer-events:none}
.card__prev.on{opacity:1}
.card__media .selo,.card__media .card__fotos{z-index:2}
.card__resumo{color:var(--muted);font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.card__tags li{font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--brass) 12%,transparent);color:var(--accent)}

/* ---------- botão de microfone ---------- */
.mic{position:relative;width:44px;height:44px;flex-shrink:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--brass) 55%,var(--line));background:transparent;color:var(--accent);display:grid;place-items:center;cursor:pointer;transition:background-color .25s,color .25s}
.mic svg{width:20px;height:20px}
.mic:hover{background:var(--ouro);color:#1A1408;border-color:transparent}
.mic.ouvindo{background:var(--ouro);color:#1A1408;border-color:transparent}
.mic.ouvindo::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #C99A48;animation:onda 1.2s ease-out infinite}
@keyframes onda{from{transform:scale(.85);opacity:1}to{transform:scale(1.4);opacity:0}}

/* ---------- painel da busca por voz ---------- */
.voz{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:rgba(6,8,7,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:calc(env(safe-area-inset-top,0px) + 16px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 16px) max(16px,env(safe-area-inset-left,0px))}
.voz__caixa{position:relative;width:min(560px,100%);background:#0E1211;color:#ECEBE5;border-radius:24px;padding:44px 28px 28px;display:grid;justify-items:center;gap:16px;text-align:center;border:1px solid rgba(201,154,72,.5);box-shadow:0 40px 90px -30px rgba(0,0,0,.8)}
.voz__fechar{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:transparent;color:#ECEBE5;display:grid;place-items:center;cursor:pointer}
.voz__fechar svg{width:18px;height:18px}
.voz__mic{position:relative;width:96px;height:96px;border-radius:50%;background:var(--ouro);color:#1A1408;display:grid;place-items:center;box-shadow:0 20px 50px -18px rgba(201,154,72,.9)}
.voz__mic svg{width:40px;height:40px;position:relative;z-index:1}
.voz__mic span{position:absolute;inset:0;border-radius:50%;border:2px solid #E9CD86;animation:onda 1.6s ease-out infinite}
.voz__mic span+span{animation-delay:.8s}
.voz.erro .voz__mic span{animation:none;opacity:0}
.voz__estado{font:500 22px/1.3 var(--f-display);color:#F1D58C}
.voz.erro .voz__estado{color:#F0B9A8;font-size:18px}
.voz__fala{font-size:19px;min-height:28px;max-width:44ch}
.voz__dicas{display:grid;gap:8px;font-size:14.5px;color:#AAB3AE;border-top:1px solid rgba(201,154,72,.3);padding-top:16px;width:100%}
.voz__dicas ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;color:#D9DBD5}
.voz__parar{color:#ECEBE5;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}

/* ---------- player de vídeo ---------- */
.vm{position:fixed;inset:0;z-index:92;display:grid;place-items:center;background:rgba(6,8,7,.9);padding:calc(env(safe-area-inset-top,0px) + 16px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 16px) max(16px,env(safe-area-inset-left,0px))}
.vm__caixa{width:min(1100px,100%);display:grid;gap:14px;color:#ECEBE5}
.vm__topo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.vm__rot{font:500 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#E0BF7E;margin-bottom:6px}
.vm__tit{font:500 clamp(20px,2.4vw,28px)/1.2 var(--f-display)}
.vm__fechar{width:48px;height:48px;flex-shrink:0;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.vm__fechar svg{width:20px;height:20px}
.vm__video{width:100%;max-height:72vh;border-radius:14px;background:#000;box-shadow:0 0 0 1px rgba(201,154,72,.55)}
.vm__pe{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.vm__nota{font-size:14px;color:#AAB3AE}


/* ---------- véu de legibilidade: todo nome sobre FOTO fica sobre um véu, não numa caixa ----------
   1ª versão (placa escura com borda dourada) resolveu a leitura mas ficou pesada; o dono pediu "mais sutil sem ficar
   amador" (19/10/2026). Agora: sem caixa e sem borda — a base da foto escurece e desfoca em degradê (o desfoque some
   para cima por máscara), e o texto fica direto ali. O véu vive no ::before e se estende ACIMA do bloco de texto.
   Uso: o bloco de texto encostado na base da foto (left/right/bottom 0) com a classe .placa. */
.placa{position:relative;isolation:isolate;color:#F6F3EC;text-shadow:0 1px 2px rgba(0,0,0,.35),0 2px 16px rgba(0,0,0,.3)}
.placa::before{content:"";position:absolute;left:0;right:0;bottom:0;top:-85%;z-index:-1;pointer-events:none;
  background:linear-gradient(to top,rgba(6,9,8,.86) 0%,rgba(6,9,8,.66) 38%,rgba(6,9,8,.28) 70%,rgba(6,9,8,0) 100%);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  -webkit-mask-image:linear-gradient(to top,#000 45%,transparent 100%);mask-image:linear-gradient(to top,#000 45%,transparent 100%)}
/* linha da localização com filete dourado curto, como o sobretítulo das seções */
.placa__loc{display:flex;align-items:center;gap:10px}
.placa__loc::before{content:"";width:22px;height:1px;flex-shrink:0;background:linear-gradient(90deg,#E9CD86,rgba(233,205,134,.2))}
.selo:not(.selo--ouro){background:rgba(8,11,10,.78)} /* :not — senão apaga o fundo dourado e a letra escura some */
.card__fotos{background:rgba(8,11,10,.72);padding:6px 9px;border-radius:999px}
.card__play{background:rgba(8,11,10,.78)}

/* mapas (MapLibre): crédito obrigatório do OpenStreetMap/OpenFreeMap fica visível, mas no tom do tema */
.is-dark .maplibregl-ctrl-attrib{background:rgba(12,15,14,.72)!important;color:#AAB3AE}
.is-dark .maplibregl-ctrl-attrib a{color:#CDA670}
.is-dark .maplibregl-ctrl-group{background:#141917;box-shadow:0 0 0 1px rgba(201,154,72,.4)}
.is-dark .maplibregl-ctrl-group button+button{border-top-color:#252C29}
.is-dark .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1) brightness(.85)}

/* revelação progressiva: só existe se o GSAP carregou */
.gsap [data-rv]:not(.rv-ja){opacity:0} /* .rv-ja = já estava na tela ao carregar: não esconde (evita aparecer-sumir-voltar) */

/* ---------- suavidade: troca de página e entradas sem flash ----------
   Troca de página com fade (View Transitions entre documentos; Chrome/Edge/Safari recentes, em http/https).
   Entradas do topo em CSS: começam escondidas desde a 1ª pintura (classe .anima posta no <head>), então nada
   aparece e some antes de animar. */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:ease}
@keyframes surge{from{opacity:0;transform:translateY(18px)}}
@keyframes aparece{from{opacity:0}}
@keyframes aproxima{from{transform:scale(1.1)}}
@keyframes sobe{from{transform:translateY(105%)}}
@keyframes revela{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.anima .hero__media img{animation:aproxima 2.4s cubic-bezier(.2,.7,.2,1) both} /* na IMAGEM: o contêiner corta as bordas (overflow) */
.anima .hero h1 .ln > span{animation:sobe 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
.anima .hero h1 .ln + .ln > span{animation-delay:.28s}
.anima .hero [data-hero]{animation:surge .9s cubic-bezier(.2,.7,.2,1) .5s both}
.anima .hero__legenda{animation:aparece 1s ease .9s both}
.anima .hero--busca .hero__txt > *{animation:surge .7s cubic-bezier(.2,.7,.2,1) .05s both}
.anima .hero--busca .bform{animation:surge .7s cubic-bezier(.2,.7,.2,1) .15s both}
.anima .topo-im .galeria .foto{animation:revela .9s cubic-bezier(.65,0,.35,1) both}
.anima .topo-im .galeria .foto:nth-child(2){animation-delay:.06s}
.anima .topo-im .galeria .foto:nth-child(3){animation-delay:.12s}
.anima .topo-im .galeria .foto:nth-child(4){animation-delay:.18s}
.anima .topo-im .galeria .foto:nth-child(5){animation-delay:.24s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- conta (login Google) e faixa de cookies — conta.js, 21/10/2026 ---------- */
.entrar--conta{display:inline-flex;align-items:center;gap:8px;padding:0 14px 0 6px;border-color:color-mix(in srgb,#C99A48 60%,transparent)}
.entrar--conta img,.entrar__ini{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 1.5px #C99A48}
.entrar__ini{display:grid;place-items:center;background:var(--ouro);color:var(--accent-ink);font-size:13px;font-weight:700}
.entrar--conta span:last-child{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conta-menu{position:fixed;z-index:85;min-width:230px;padding:8px;border-radius:16px;background:var(--surface);color:var(--ink);
  box-shadow:0 0 0 1px color-mix(in srgb,#C99A48 55%,var(--line)),0 24px 50px -20px rgba(0,0,0,.45);display:flex;flex-direction:column}
.conta-menu::before{content:"";position:absolute;left:16px;right:16px;top:-1px;height:2px;background:var(--filete)}
.conta-menu__quem{padding:10px 12px 12px;margin:0 0 4px;border-bottom:1px solid var(--line);font-weight:600;font-size:15px}
.conta-menu__quem small{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.conta-menu a,.conta-menu button{display:block;width:100%;text-align:left;padding:11px 12px;border-radius:10px;border:0;background:none;color:inherit;font:inherit;font-size:15px;cursor:pointer}
.conta-menu a:hover,.conta-menu button:hover,.conta-menu a:focus-visible,.conta-menu button:focus-visible{background:color-mix(in srgb,#C99A48 14%,transparent);outline:none}
.gaveta__conta{margin-top:auto;min-height:52px;border-radius:999px;border:1px solid #C99A48;background:transparent;color:inherit;font:600 16px var(--f-body,inherit);cursor:pointer}
.conta-menu .conta-menu__perigo{color:#B4432F}
.is-dark .conta-menu .conta-menu__perigo{color:#F0A08E}
.conta-menu__conf{padding:10px 10px 6px;max-width:290px;display:grid;gap:10px;font-size:14px;line-height:1.5}
.conta-menu__conf p{margin:0;color:var(--muted)}
.conta-menu__conf p strong{display:block;color:var(--ink);margin-bottom:4px}
.conta-menu__conf label{font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.conta-menu__conf input{width:100%;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font:500 16px var(--f-mono);letter-spacing:.08em}
.conta-menu__conf input:focus{outline:2px solid color-mix(in srgb,#C99A48 60%,transparent);outline-offset:1px}
.conta-menu__acoes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.conta-menu .conta-menu__acoes button{text-align:center;border:1px solid var(--line);min-height:44px}
.conta-menu .conta-menu__acoes button:disabled{opacity:.45;cursor:not-allowed}
.cookies{position:fixed;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:90;max-width:560px;margin-inline:auto;
  padding:18px 20px;border-radius:18px;background:var(--surface);color:var(--ink);
  box-shadow:0 0 0 1px color-mix(in srgb,#C99A48 55%,var(--line)),0 24px 60px -24px rgba(0,0,0,.5);
  transform:translateY(calc(100% + 40px));transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.cookies.aberta{transform:none}
.cookies[hidden]{display:none}
.cookies::before{content:"";position:absolute;left:20px;right:20px;top:-1px;height:2px;background:var(--filete)}
.cookies p{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--muted)}
.cookies p strong{color:var(--ink)}
.cookies__bt{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cookies__bt button{min-height:46px;border-radius:999px;border:1px solid color-mix(in srgb,#C99A48 70%,var(--line));background:transparent;color:var(--ink);font:600 15px var(--f-body);cursor:pointer}
.cookies__bt button:hover,.cookies__bt button:focus-visible{background:color-mix(in srgb,#C99A48 16%,transparent)}
@media (prefers-reduced-motion:reduce){.cookies{transition:none}}

/* ---------- campos de formulário (visita do imóvel e janela de contato) — vieram do imovel.html em 21/10/2026 ---------- */
.tipo-visita{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--bg);border-radius:12px;padding:4px}
.tipo-visita label{position:relative;display:grid;place-items:center;min-height:42px;border-radius:9px;font-size:14.5px;font-weight:600;cursor:pointer;color:var(--muted)}
.tipo-visita input{position:absolute;opacity:0;inset:0;cursor:pointer}
.tipo-visita label:has(input:checked){background:var(--ouro);color:#1A1408;box-shadow:inset 0 1px 0 rgba(255,244,214,.6)}
.tipo-visita label:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}
.campo2{display:grid;gap:6px}
.campo2 label{font:500 12px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.campo2 input,.campo2 select,.campo2 textarea{width:100%;min-height:48px;border-radius:10px;border:1px solid var(--line);background:var(--bg);padding:10px 14px;font:inherit;font-size:16px;color:var(--ink);transition:border-color .2s}
.campo2 textarea{min-height:92px;resize:vertical;line-height:1.5}
.campo2 input:focus,.campo2 select:focus,.campo2 textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.campo2 [aria-invalid="true"]{border-color:#C0563F}
.erro{font-size:13.5px;color:#C0563F;min-height:0}
.dois{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.aceite{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted);line-height:1.45}
.aceite input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent);flex-shrink:0}
.aceite a{text-decoration:underline;color:var(--ink)}
.ok{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:18px}
.ok__icone{width:48px;height:48px;border-radius:50%;background:var(--ouro);color:#1A1408;display:grid;place-items:center}
.ok__icone svg{width:24px;height:24px}
.ok h2{font:500 24px/1.2 var(--f-display)}
.ok p{color:var(--muted);font-size:15px}
@media (max-width:420px){.janela .dois{grid-template-columns:minmax(0,1fr)}}
.btn[aria-busy="true"]{pointer-events:none;opacity:.75}
.btn[aria-busy="true"]::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.erro-envio{font-size:14px;color:#C0563F;line-height:1.45}
.erro-envio:empty{display:none}
.isca{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* pílulas de escolha única (investimento, prazo…): o mesmo ouro da aba presencial/vídeo */
.pilulas{border:0;margin:0;padding:0;min-width:0}
.pilulas__ops{display:flex;flex-wrap:wrap;gap:8px}
.pilulas legend{font:500 12px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding:0}
.pilulas label{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line);font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:border-color .2s,background-color .2s}
.pilulas label:hover{border-color:var(--brass)}
.pilulas input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.pilulas label:has(input:checked){background:var(--ouro);border-color:transparent;color:#1A1408;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,244,214,.6)}
.pilulas label:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}

/* ---------- janela de contato (Private, anunciar, avaliar) — <dialog> nativo: Esc e foco preso de graça ---------- */
.janela{border:0;padding:0;margin:auto;width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 40px);background:var(--surface);color:var(--ink);border-radius:22px;overflow:auto;overscroll-behavior:contain;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--brass) 55%,var(--line)),0 40px 90px -30px rgba(0,0,0,.6)}
.janela::backdrop{background:rgba(6,8,7,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.janela[open]{animation:janela-entra .38s cubic-bezier(.2,.8,.2,1)}
.janela[open]::backdrop{animation:janela-fundo .38s ease}
@keyframes janela-entra{from{opacity:0;transform:translateY(24px) scale(.98)}}
@keyframes janela-fundo{from{opacity:0}}
.janela__topo{position:sticky;top:0;z-index:2;background:var(--surface);padding:30px 30px 18px;display:grid;gap:10px;border-bottom:1px solid var(--line)}
.janela__topo::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ouro)}
.janela__topo h2{font:500 clamp(28px,3.4vw,36px)/1.08 var(--f-display);letter-spacing:-.01em;padding-right:44px}
.janela__topo h2 em{font-style:italic;background:var(--ouro-texto);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.janela__topo p{color:var(--muted);font-size:15px;line-height:1.5}
.janela__fechar{position:absolute;right:16px;top:18px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.janela__fechar:hover{border-color:var(--brass)}
.janela__fechar svg{width:18px;height:18px}
.janela__corpo{padding:22px 30px 30px;display:grid;gap:16px}
.janela__corpo .btn--solid{width:100%;min-height:52px;font-size:16px}
.janela .ok{border:0;padding:6px 0 0;justify-items:start}
.janela .ok h2{font-size:30px}
.janela .ok p b{color:var(--ink);font:500 15px var(--f-mono)}
.janela__nota{font-size:13px;color:var(--muted);line-height:1.5}
@media (max-width:600px){
  .janela{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .janela[open]{animation-name:janela-sobe}
  .janela__topo{padding:26px 20px 16px}
  .janela__corpo{padding:18px 20px calc(24px + env(safe-area-inset-bottom,0px))}
  @keyframes janela-sobe{from{transform:translateY(100%)}}
}
@media (prefers-reduced-motion:reduce){.janela[open],.janela[open]::backdrop{animation:none}}
