/* Site AC3Q — Home e cards. Paleta GELM REMAX Brasil 2025: Dark Blue #000E35, Bridge Red #AA1120, Creme #F7F5EE.
   Cards no padrão UIVO variante B (#14153b, 4:3, scale 1.15). */
:root { --azul:#000E35; --azul-card:#14153b; --vermelho:#AA1120; --creme:#F7F5EE; --cinza:#666; --linha:#e9e9ef; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; font-family:Montserrat, sans-serif; color:var(--azul); background:var(--creme); -webkit-font-smoothing:antialiased; }
a { color:inherit; }
img { max-width:100%; }

/* Topo */
.topo { background:var(--azul); position:sticky; top:0; z-index:20; }
.topo-in { max-width:1280px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; gap:18px; }
.marca { text-decoration:none; display:flex; flex-direction:column; line-height:1.15; flex:0 0 auto; }
.marca b { color:#fff; font:700 16px Outfit, sans-serif; }
.marca b span { color:#ff5a66; }
.marca small { color:#c7cbd6; font-size:11px; }
.menu { display:flex; gap:4px; overflow-x:auto; flex:1 1 auto; scrollbar-width:none; }
.menu::-webkit-scrollbar { display:none; }
.menu a { color:#e6e8ef; text-decoration:none; font-size:12.5px; font-weight:600; padding:7px 10px; border-radius:8px; white-space:nowrap; }
.menu a:hover { background:rgba(255,255,255,.1); }
.topo-whats { display:inline-flex; align-items:center; gap:7px; background:var(--vermelho); color:#fff; text-decoration:none; font:600 13px Outfit, sans-serif; padding:9px 14px; border-radius:10px; white-space:nowrap; flex:0 0 auto; }

/* Hero */
.hero { background:#fff; border-bottom:1px solid var(--linha); }
.hero-in { max-width:1280px; margin:0 auto; padding:40px 16px 34px; }
.selo-hero { display:inline-block; background:var(--creme); color:var(--vermelho); font:700 12px Outfit, sans-serif; letter-spacing:.04em; text-transform:uppercase; padding:6px 12px; border-radius:20px; margin:0 0 14px; }
.hero h1 { font-size:clamp(26px, 4vw, 40px); line-height:1.15; margin:0 0 12px; max-width:820px; }
.hero-sub { font-size:16px; color:#444; margin:0 0 22px; max-width:680px; line-height:1.5; }
.hero-acoes { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 18px; }
.btn-prim { display:inline-flex; align-items:center; gap:8px; background:var(--vermelho); color:#fff; text-decoration:none; font:600 15px Outfit, sans-serif; padding:13px 20px; border-radius:12px; border:none; cursor:pointer; }
.btn-prim:hover { background:#8e0e1b; }
.btn-sec { display:inline-flex; align-items:center; background:transparent; color:var(--azul); border:1.6px solid var(--azul); text-decoration:none; font:600 15px Outfit, sans-serif; padding:12px 18px; border-radius:12px; }
.atualizacao { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:#444; margin:0; background:var(--creme); padding:7px 12px; border-radius:8px; }

/* Aviso de prévia (só na prévia) */

/* Seções */
.estoque { max-width:1280px; margin:0 auto; padding:8px 16px 40px; }
.secao { padding:34px 0 10px; scroll-margin-top:70px; }
.secao-cab { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:0 0 16px; }
.secao-cab h2 { font-size:24px; margin:0 0 4px; }
.secao-cab p { margin:0; color:var(--cinza); font-size:14px; }
.secao-cab .contagem { font-size:12px; font-weight:700; color:var(--vermelho); text-transform:uppercase; letter-spacing:.04em; margin:0 0 4px; }
.grade { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:18px; }
.ver-mais { margin:16px 0 0; display:inline-flex; background:transparent; border:1.6px solid var(--azul); color:var(--azul); font:600 14px Outfit, sans-serif; padding:10px 16px; border-radius:10px; cursor:pointer; text-decoration:none; }
.card-oculto { display:none !important; }
.filtros { display:flex; gap:6px; }
.filtro { background:#fff; border:1.6px solid var(--linha); color:var(--azul); font:600 13px Outfit, sans-serif; padding:8px 14px; border-radius:20px; cursor:pointer; }
.filtro.ativo { background:var(--azul); border-color:var(--azul); color:#fff; }
.estaticos .secao-cab p { max-width:620px; }

/* Card (UIVO variante B) */
.im-card { font-family:Montserrat, sans-serif; display:flex; flex-direction:column; width:100%; background:#fff; border:1px solid var(--linha); border-radius:14px; overflow:hidden; box-shadow:0 2px 10px rgba(20,21,59,.08); cursor:pointer; transition:transform .2s, box-shadow .2s; text-decoration:none; color:inherit; }
a.im-card:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(20,21,59,.16); }
.im-card .capa { position:relative; overflow:hidden; aspect-ratio:4/3; background:#e9eaf1; }
.im-card .capa img { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.15); }
.im-card .capa .sem-foto { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#8a8fa8; font-size:12px; font-weight:600; background:linear-gradient(135deg, #eef0f6, #e1e4ee); text-align:center; padding:12px; }
.im-card .tag { position:absolute; top:10px; left:10px; z-index:2; background:var(--azul-card); color:#fff; font:700 10.5px Outfit, sans-serif; padding:4px 9px; border-radius:20px; line-height:1; white-space:nowrap; }
.im-card .corpo { padding:14px 16px 0; flex:1 1 auto; }
.im-card .nome { font-size:18px; font-weight:700; color:var(--azul-card); margin:0 0 2px; line-height:1.25; }
.im-card .endereco-curto { font-size:13px; color:var(--cinza); margin:0 0 10px; }
.im-card .chips { display:flex; gap:5px; flex-wrap:wrap; margin:0 0 12px; }
.im-card .chips span { display:inline-flex; align-items:center; gap:5px; background:var(--creme); border-radius:8px; padding:5px 7px; font-size:12.5px; font-weight:600; color:var(--azul-card); white-space:nowrap; }
.im-card .cond { font-size:11.5px; color:#888; margin:0 0 10px; }
.im-card .ref { font-size:10.5px; color:#888; margin:0 0 10px; }
.im-card .rodape { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid #eee; padding:12px 16px 14px; margin-top:4px; }
.im-card .rodape small { display:block; font-size:10.5px; color:#888; }
.im-card .preco { font-size:20px; font-weight:700; color:#000; margin:0; }
.im-card .btn-detalhes { display:inline-block; font:600 14px Outfit, sans-serif; color:#fff; background:var(--azul-card); border:1.6px solid var(--azul-card); border-radius:10px; padding:9px 16px; white-space:nowrap; transition:background .15s, border-color .15s; }
a.im-card:hover .btn-detalhes { background:var(--vermelho); border-color:var(--vermelho); }
/* Card estático (vendido/reservado): sem link, tag vermelha, botão vazado */
.im-card.estatico { cursor:default; }
.im-card.estatico .tag { background:var(--vermelho); }
.im-card.estatico .capa img, .im-card.estatico .capa .sem-foto { filter:grayscale(.35); }
.im-card.estatico .btn-detalhes { background:transparent; color:var(--azul-card); border-color:var(--azul-card); }

/* Institucional e rodapé */
.institucional { margin:40px 0 0; background:var(--azul); color:#fff; border-radius:18px; }
.inst-in { padding:34px 24px; }
.institucional h2 { margin:0 0 20px; font-size:24px; }
.inst-grade { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:18px; margin:0 0 24px; }
.inst-grade b { font:700 16px Outfit, sans-serif; }
.inst-grade p { color:#c7cbd6; font-size:14px; line-height:1.5; margin:6px 0 0; }
.rodape-site { max-width:1280px; margin:0 auto; padding:24px 16px 90px; font-size:12.5px; color:var(--cinza); line-height:1.6; }
.rodape-site a { color:var(--azul); }
.whats-fixo { position:fixed; right:16px; bottom:16px; z-index:30; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(0,0,0,.25); }

@media (max-width: 760px) {
  .topo-in { flex-wrap:wrap; gap:8px; }
  .menu { order:3; flex-basis:100%; }
  .topo-whats span { display:none; }
  .hero-in { padding:28px 16px 24px; }
  .secao-cab h2 { font-size:21px; }
  .grade { grid-template-columns:1fr; }
}
.politica { max-width:820px; margin:0 auto; padding:28px 16px 8px; line-height:1.65; color:#222; }
.politica h1 { font:700 28px Outfit, sans-serif; color:var(--azul); margin:0 0 12px; }
.politica h2 { font:700 19px Outfit, sans-serif; color:var(--azul); margin:28px 0 8px; }
.politica p, .politica li { font-size:15px; }
.politica ul { padding-left:22px; }
