/*
 * ESTILOS DO SITE
 * Cores, raios e sombras da marca ficam nas variáveis abaixo — troque aqui
 * para aplicar a identidade visual definitiva da imobiliária.
 * Sem fontes ou bibliotecas externas: tudo é CSS puro e fontes do próprio dispositivo.
 */
:root {
  --cor-primaria: #c8102e;        /* vermelho da marca */
  --cor-primaria-escura: #a00d25; /* vermelho escuro (hover) */
  --cor-preto: #141111;
  --cor-destaque: #e8283f;        /* vermelho vivo (detalhes sobre fundo escuro) */
  --cor-rosado: #fdeef0;          /* vermelho bem claro (fundos suaves) */
  --cor-wa: #138a40;              /* botão WhatsApp */
  --cor-wa-escura: #0e7234;
  --cor-wa-flutuante: #1fa855;
  --cor-texto: #1c1918;
  --cor-suave: #6a6360;
  --cor-fundo: #faf8f6;           /* fundo quente das páginas */
  --cor-fundo-2: #f2eeeb;
  --cor-card: #ffffff;
  --cor-borda: #e8e2de;
  --raio: 18px;
  --raio-pequeno: 12px;
  --sombra: 0 1px 2px rgba(40, 14, 14, .05), 0 10px 30px rgba(40, 14, 14, .07);
  --sombra-forte: 0 2px 4px rgba(40, 14, 14, .06), 0 22px 48px rgba(40, 14, 14, .16);
  --fonte: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;

  /* FOTO DO TOPO: para usar uma foto real, troque "none" por url("../img/topo.jpg") */
  --hero-foto: none;

  /* Ícones desenhados em CSS (sem arquivos extras) */
  --ico-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3a13 13 0 0 0-11.2 19.6L3 29l6.6-1.7A13 13 0 1 0 16 3zm0 23.6c-2 0-4-.6-5.7-1.6l-.4-.2-3.9 1 1-3.8-.3-.4A10.6 10.6 0 1 1 16 26.6zm5.8-7.9c-.3-.2-1.9-.9-2.2-1s-.5-.2-.7.2-.8 1-1 1.2-.4.2-.7 0a8.7 8.7 0 0 1-4.3-3.7c-.3-.6.3-.5 1-1.7.1-.2 0-.4 0-.5l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6a1.2 1.2 0 0 0-.9.4 3.7 3.7 0 0 0-1.1 2.7 6.5 6.5 0 0 0 1.3 3.4 14.6 14.6 0 0 0 5.6 5c2.1.9 2.9 1 4 .8a3.4 3.4 0 0 0 2.2-1.6 2.8 2.8 0 0 0 .2-1.6c-.1-.1-.3-.2-.6-.3z'/%3E%3C/svg%3E");
  --ico-busca: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2a8 8 0 1 0 4.9 14.3l4.4 4.4 1.4-1.4-4.4-4.4A8 8 0 0 0 10 2zm0 2a6 6 0 1 1 0 12 6 6 0 0 1 0-12z'/%3E%3C/svg%3E");
  --ico-local: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
  --ico-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%236a6360' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body {
  margin: 0; font-family: var(--fonte); color: var(--cor-texto);
  background: var(--cor-fundo); line-height: 1.6; font-size: 16px;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: var(--cor-primaria); }
h1, h2, h3 { line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.015em; }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.15rem); font-weight: 800; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid rgba(200, 16, 46, .5); outline-offset: 2px; }
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.centro { text-align: center; margin-top: 36px; }
.eyebrow {
  display: flex; align-items: center; gap: 10px;
  text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 800;
  color: var(--cor-primaria); margin: 0 0 10px;
}
.eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 3px; background: var(--cor-destaque); flex: none; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 24px; border-radius: var(--raio-pequeno); border: 2px solid transparent;
  font: inherit; font-weight: 700; line-height: 1.2; cursor: pointer; text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--cor-primaria); color: #fff; box-shadow: 0 8px 20px rgba(200, 16, 46, .26); }
.btn-primary:hover { background: var(--cor-primaria-escura); box-shadow: 0 10px 24px rgba(200, 16, 46, .34); }
.btn-wa { background: var(--cor-wa); color: #fff; box-shadow: 0 8px 20px rgba(19, 138, 64, .24); }
.btn-wa:hover { background: var(--cor-wa-escura); }
.btn-wa::before, .btn-buscar::before {
  content: ""; width: 20px; height: 20px; flex: none; background: currentColor;
  -webkit-mask: var(--ico-wa) center / contain no-repeat; mask: var(--ico-wa) center / contain no-repeat;
}
.btn-buscar::before { -webkit-mask-image: var(--ico-busca); mask-image: var(--ico-busca); width: 18px; height: 18px; }
.btn-outline { border-color: var(--cor-primaria); color: var(--cor-primaria); background: #fff; }
.btn-outline:hover { background: var(--cor-primaria); color: #fff; }
.btn-link { background: none; color: var(--cor-suave); text-decoration: underline; padding: 8px; }
.btn-link:hover { color: var(--cor-primaria); transform: none; }
.btn-sm { padding: 9px 16px; font-size: .9rem; }
.btn-sm::before { width: 17px !important; height: 17px !important; }
.btn-block { width: 100%; margin-top: 12px; }

/* ---------- cabeçalho ---------- */
.site-header {
  background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px);
  position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 var(--cor-borda), 0 6px 20px rgba(40, 14, 14, .04);
}
.topbar { background: var(--cor-preto); color: #cfc8c6; font-size: .8rem; border-bottom: 2px solid var(--cor-primaria); }
.topbar-inner { display: flex; gap: 8px 24px; justify-content: space-between; padding-top: 7px; padding-bottom: 7px; flex-wrap: wrap; }
.topbar-inner span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.topbar-inner span:first-child::before {
  content: ""; width: 12px; height: 12px; background: var(--cor-destaque);
  -webkit-mask: var(--ico-local) center / contain no-repeat; mask: var(--ico-local) center / contain no-repeat;
}
.topbar-contato { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 32px; }
.ig-link { display: inline-flex; align-items: center; justify-content: center; flex: none; color: inherit; text-decoration: none; transition: color .2s, background .2s; }
.ig-link svg, .ig-rodape svg {
  width: 100%; height: 100%; border-radius: 28%; color: #fff;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
  transition: filter .2s, transform .2s;
}
.ig-link:hover svg, .ig-rodape:hover svg { filter: brightness(1.12); transform: scale(1.06); }
.ig-topo { gap: 8px; height: 18px; color: #fff; font-weight: 600; letter-spacing: .01em; white-space: nowrap; }
.ig-topo svg { width: 18px; height: 18px; flex: none; }
.ig-topo:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ig-nav { display: none; width: 44px; height: 44px; padding: 10px; margin-left: auto; }
.site-footer a.ig-rodape { display: inline-flex; align-items: center; gap: 8px; }
.site-footer a.ig-rodape svg { width: 20px; height: 20px; }
.topbar-creci { color: #fff; font-weight: 700; letter-spacing: .04em; }
.nav-inner { display: flex; align-items: center; justify-content: space-between; min-height: 76px; gap: 16px; }
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--cor-texto); }
.logo-img { display: block; width: 72px; height: 72px; object-fit: contain; flex: none; }
.footer-logo { display: block; width: 132px; height: auto; margin: 0 0 14px -6px; }
.menu { display: flex; align-items: center; gap: 2px; }
.menu a { text-decoration: none; color: var(--cor-texto); font-weight: 600; font-size: .96rem; padding: 9px 14px; border-radius: 10px; transition: background .2s, color .2s; }
.menu a:hover { background: var(--cor-rosado); color: var(--cor-primaria); }
.menu .btn { margin-left: 10px; }
.menu-toggle { display: none; background: none; border: 0; padding: 12px; margin-right: -8px; cursor: pointer; border-radius: 10px; }
.menu-toggle span { display: block; width: 24px; height: 2px; border-radius: 2px; background: var(--cor-texto); margin: 5px 0; transition: transform .25s, opacity .2s; }
.menu-open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- hero / busca ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff; padding: 72px 0 96px;
  background:
    linear-gradient(90deg, rgba(14, 10, 10, .82) 0%, rgba(14, 10, 10, .6) 55%, rgba(14, 10, 10, .42) 100%),
    linear-gradient(180deg, rgba(14, 10, 10, .25), rgba(58, 10, 20, .35)),
    url("../img/banner-home.png?v=20261030-9") 70% center / cover no-repeat,
    var(--cor-preto);
}
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background: repeating-linear-gradient(115deg, rgba(255, 255, 255, .035) 0 1px, transparent 1px 34px);
}
.hero-inner { position: relative; }
.hero .eyebrow {
  display: inline-flex; max-width: 100%; margin-bottom: 18px; padding: 7px 14px; border-radius: 999px;
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16);
  color: #f6dadd; letter-spacing: .1em; font-size: .7rem; line-height: 1.5;
}
.hero .eyebrow::before { width: 8px; height: 8px; border-radius: 50%; margin-top: .55em; align-self: flex-start; }
.hero h1 { font-size: clamp(2.1rem, 5vw, 3.5rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; max-width: 760px; margin-bottom: .45em; }
.hero-sub { color: #eadfe0; font-size: 1.12rem; max-width: 640px; margin: 0 0 36px; }
.busca { background: #fff; color: var(--cor-texto); border-radius: 22px; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); padding: 10px 24px 24px; }
.abas { display: flex; gap: 4px; width: fit-content; background: var(--cor-fundo-2); padding: 4px; border-radius: 14px; margin: 14px 0 18px; }
.abas label { cursor: pointer; flex: 1; }
.abas input { position: absolute; opacity: 0; pointer-events: none; }
.abas span { display: block; padding: 10px 26px; font-weight: 700; text-align: center; color: var(--cor-suave); border-radius: 10px; transition: background .2s, color .2s, box-shadow .2s; }
.abas label:hover span { color: var(--cor-texto); }
.abas input:checked + span { color: var(--cor-primaria); background: #fff; box-shadow: 0 2px 8px rgba(40, 14, 14, .14); }
.abas input:focus-visible + span { outline: 3px solid rgba(200, 16, 46, .5); outline-offset: 1px; }
.busca-campos { display: grid; grid-template-columns: 1fr 1.5fr 1fr 1fr auto; gap: 14px; align-items: end; }
.btn-buscar { height: 52px; padding-left: 28px; padding-right: 28px; }

/* ---------- campos ---------- */
.campo { display: flex; flex-direction: column; gap: 6px; font-size: .8rem; font-weight: 700; letter-spacing: .02em; color: var(--cor-suave); margin-bottom: 14px; }
.busca .campo { margin-bottom: 0; }
.campo input, .campo select, .campo textarea {
  font: inherit; font-size: 1rem; font-weight: 400; letter-spacing: 0; color: var(--cor-texto); background: #fff;
  border: 1.5px solid var(--cor-borda); border-radius: var(--raio-pequeno); padding: 11px 14px; min-height: 52px; width: 100%;
  transition: border-color .2s, box-shadow .2s;
}
.campo input::placeholder, .campo textarea::placeholder { color: #9c9490; }
.campo select { -webkit-appearance: none; appearance: none; background: #fff var(--ico-seta) right 14px center / 12px no-repeat; padding-right: 38px; cursor: pointer; }
.campo textarea { resize: vertical; min-height: 110px; }
.campo input:hover, .campo select:hover, .campo textarea:hover { border-color: #cfc6c1; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: 0; border-color: var(--cor-primaria); box-shadow: 0 0 0 4px rgba(200, 16, 46, .13); }
.campo-inline { flex-direction: row; align-items: center; gap: 10px; margin: 0; }
.campo-inline select { width: auto; min-height: 46px; }
.form-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* ---------- atalhos ---------- */
.atalhos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: -44px; position: relative; z-index: 2; }
.atalho {
  display: flex; flex-direction: column; gap: 4px; background: #fff; border-radius: var(--raio); padding: 22px 26px;
  box-shadow: var(--sombra); text-decoration: none; color: var(--cor-texto); border: 1px solid var(--cor-borda);
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.atalho:hover { transform: translateY(-4px); box-shadow: var(--sombra-forte); border-color: rgba(200, 16, 46, .35); }
.atalho strong { font-size: 1.18rem; letter-spacing: -.01em; }
.atalho span { color: var(--cor-primaria); font-weight: 700; font-size: .92rem; }
.atalho-destaque { background: linear-gradient(135deg, var(--cor-destaque), var(--cor-primaria-escura)); border-color: transparent; color: #fff; }
.atalho-destaque:hover { border-color: transparent; }
.atalho-destaque span { color: #fff; }

/* ---------- seções ---------- */
.secao { padding: 80px 20px; }
.secao-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.secao-topo h2 { margin: 0; }
.filtro-rapido { display: flex; gap: 4px; background: var(--cor-fundo-2); border-radius: 999px; padding: 4px; }
.filtro-rapido button { border: 0; background: none; font: inherit; font-weight: 700; padding: 9px 20px; border-radius: 999px; cursor: pointer; color: var(--cor-suave); transition: background .2s, color .2s, box-shadow .2s; }
.filtro-rapido button:hover { color: var(--cor-texto); }
.filtro-rapido button.ativo { background: var(--cor-primaria); color: #fff; box-shadow: 0 4px 12px rgba(200, 16, 46, .3); }
.aviso-demo { background: #fff8e1; border: 1px dashed #c99a1e; color: #6b4e05; border-radius: var(--raio-pequeno); padding: 10px 16px; font-size: .88rem; margin: 0 0 24px; }

/* ---------- cards ---------- */
.grid-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.card { background: var(--cor-card); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); border: 1px solid var(--cor-borda); transition: transform .25s, box-shadow .25s, border-color .25s; }
.card:hover { transform: translateY(-6px); box-shadow: var(--sombra-forte); border-color: rgba(200, 16, 46, .3); }
.card-link { display: flex; flex-direction: column; color: inherit; text-decoration: none; height: 100%; }
.card-img { position: relative; aspect-ratio: 10 / 7; background: var(--cor-fundo-2); overflow: hidden; }
.card-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .22), transparent 38%); pointer-events: none; }
.card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.card:hover .card-img img { transform: scale(1.05); }
.tag { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 5px 12px; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .2); }
.tag-venda { background: var(--cor-primaria); }
.tag-aluguel { background: var(--cor-preto); }
.tag-demo { left: auto; right: 14px; background: rgba(20, 17, 17, .7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.card-body { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 22px; }
.card-tipo { margin: 0 0 6px; font-size: .74rem; font-weight: 800; color: var(--cor-primaria); text-transform: uppercase; letter-spacing: .08em; }
.card-tipo span { color: var(--cor-suave); font-weight: 700; }
.card h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 6px; }
.card-local { display: flex; align-items: center; gap: 6px; color: var(--cor-suave); margin: 0 0 14px; font-size: .93rem; }
.card-local::before { content: ""; width: 14px; height: 14px; flex: none; background: var(--cor-destaque); -webkit-mask: var(--ico-local) center / contain no-repeat; mask: var(--ico-local) center / contain no-repeat; }
.card-feats { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.card-feats li { background: var(--cor-fundo); border: 1px solid var(--cor-borda); border-radius: 8px; padding: 3px 10px; font-size: .82rem; font-weight: 600; color: var(--cor-suave); }
.card-preco { margin: auto 0 0; padding-top: 14px; border-top: 1px solid var(--cor-borda); font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; color: var(--cor-primaria); }
.card-preco small { font-size: .85rem; font-weight: 600; color: var(--cor-suave); letter-spacing: 0; }

/* ---------- aviso "sem imóveis" e listas vazias ---------- */
.vazio {
  grid-column: 1 / -1; text-align: center; color: var(--cor-suave); padding: 48px 24px;
  background: #fff; border: 1.5px dashed #d9cfca; border-radius: 22px;
}
.vazio p { max-width: 480px; margin-left: auto; margin-right: auto; }
.vazio-cartao {
  display: flex; flex-direction: column; align-items: center; padding: 56px 24px 52px; border-style: solid; border-color: var(--cor-borda); box-shadow: var(--sombra);
  background: radial-gradient(70% 90% at 50% 0%, var(--cor-rosado), #fff 70%);
}
.vazio-icone { width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 20px; color: #fff; background: linear-gradient(140deg, var(--cor-destaque), var(--cor-primaria-escura)); box-shadow: 0 12px 28px rgba(200, 16, 46, .3), 0 0 0 10px rgba(200, 16, 46, .08); }
.vazio-icone svg { width: 40px; height: 40px; }
.vazio-titulo { font-size: clamp(1.4rem, 3vw, 1.8rem); font-weight: 800; letter-spacing: -.02em; color: var(--cor-texto); margin-bottom: .4em; }
.vazio .btn { margin-top: 8px; }
.container.vazio { max-width: 1200px; background: none; border: 0; padding: 88px 20px; }
.container.vazio h1 { color: var(--cor-texto); }

/* ---------- sobre ---------- */
.sobre { background: #fff; padding: 80px 0; border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda); }
.sobre-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.sobre-grid p { color: #4a4442; }
.sobre-grid h2 { margin-bottom: .6em; }
.servicos { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: servico; }
.servicos li { display: grid; grid-template-columns: auto 1fr; column-gap: 16px; align-items: center; padding: 20px 22px; border-radius: var(--raio); background: var(--cor-fundo); border: 1px solid var(--cor-borda); counter-increment: servico; transition: transform .2s, box-shadow .2s; }
.servicos li:hover { transform: translateX(4px); box-shadow: var(--sombra); }
.servicos li::before { content: counter(servico); grid-row: 1 / span 2; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; color: #fff; background: linear-gradient(140deg, var(--cor-destaque), var(--cor-primaria-escura)); }
.servicos strong { display: block; font-size: 1.05rem; }
.assinatura { font-weight: 800; color: var(--cor-primaria); font-size: 1.05rem; }
.servicos span { color: var(--cor-suave); font-size: .95rem; }

/* ---------- anunciar / contato ---------- */
.anunciar { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; }
.anunciar-texto p { color: #4a4442; }
.nota { font-size: .88rem; color: var(--cor-suave); border-left: 3px solid var(--cor-destaque); padding-left: 12px; }
.form-card { background: #fff; border-radius: 22px; padding: 28px; box-shadow: var(--sombra); border: 1px solid var(--cor-borda); border-top: 4px solid var(--cor-primaria); }
.contato { position: relative; overflow: hidden; color: #fff; padding: 80px 0; background: radial-gradient(60% 90% at 100% 0%, rgba(200, 16, 46, .3), transparent 70%), var(--cor-preto); }
.contato .eyebrow { color: #ff8896; }
.contato h2 { color: #fff; }
.contato-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.contato-lista { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 0; }
.contato-lista li { padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.contato-lista li:first-child { border-top: 1px solid rgba(255, 255, 255, .12); }
.contato-lista span { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #b5aaa7; margin-bottom: 2px; }
.contato-lista strong { font-size: 1.2rem; letter-spacing: -.01em; }
.contato .form-card { color: var(--cor-texto); box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }

/* ---------- listagem ---------- */
.listagem { display: grid; grid-template-columns: 300px 1fr; gap: 32px; padding-top: 40px; padding-bottom: 80px; align-items: start; }
.filtros { background: #fff; border-radius: var(--raio); padding: 8px 20px 20px; border: 1px solid var(--cor-borda); box-shadow: var(--sombra); position: sticky; top: 132px; }
.abas-claras { width: 100%; }
.abas-claras span { padding: 10px; }
.resultados-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.resultados-topo h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; margin: 0; }
.contagem { margin: 4px 0 0; color: var(--cor-suave); }
.grid-cards-2 { grid-template-columns: repeat(2, 1fr); }

/* ---------- detalhe ---------- */
.detalhe { padding: 28px 0 80px; }
.breadcrumb { font-size: .9rem; color: var(--cor-suave); margin-bottom: 16px; }
.breadcrumb a { text-decoration: none; font-weight: 600; }
.breadcrumb a:hover { text-decoration: underline; }
.detalhe-grid { display: grid; grid-template-columns: 1fr 360px; gap: 36px; align-items: start; }
.galeria > img { width: 100%; aspect-ratio: 10 / 7; object-fit: cover; border-radius: var(--raio); background: var(--cor-fundo-2); box-shadow: var(--sombra); }
.miniaturas { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 3px; }
.miniaturas button { border: 3px solid transparent; padding: 0; border-radius: 12px; overflow: hidden; cursor: pointer; flex: none; width: 100px; background: none; opacity: .75; transition: opacity .2s, border-color .2s; }
.miniaturas button:hover { opacity: 1; }
.miniaturas button.ativo { border-color: var(--cor-destaque); opacity: 1; }
.miniaturas img { width: 100%; aspect-ratio: 10 / 7; object-fit: cover; }
.bloco { background: #fff; border-radius: var(--raio); padding: 26px; margin-top: 20px; border: 1px solid var(--cor-borda); }
.bloco h1 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; }
.bloco h2 { font-size: 1.2rem; }
.ficha { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 12px; }
.ficha li { background: var(--cor-fundo); border: 1px solid var(--cor-borda); border-radius: var(--raio-pequeno); padding: 14px 12px; text-align: center; }
.ficha strong { display: block; font-size: 1.25rem; color: var(--cor-preto); }
.ficha span { font-size: .82rem; font-weight: 600; color: var(--cor-suave); }
.chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { background: var(--cor-rosado); color: var(--cor-primaria-escura); border-radius: 999px; padding: 7px 16px; font-size: .9rem; font-weight: 600; }
.painel { background: #fff; border-radius: var(--raio); padding: 28px; border: 1px solid var(--cor-borda); border-top: 4px solid var(--cor-primaria); box-shadow: var(--sombra); position: sticky; top: 132px; }
.painel-label { margin: 0; color: var(--cor-suave); font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; }
.painel-preco { margin: 2px 0 14px; font-size: 2.1rem; font-weight: 800; letter-spacing: -.03em; color: var(--cor-primaria); }
.custos { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; margin: 0 0 14px; font-size: .95rem; }
.custos dt { color: var(--cor-suave); }
.custos dd { margin: 0; font-weight: 700; }
.painel-nota { font-size: .8rem; color: var(--cor-suave); margin: 16px 0 0; text-align: center; }
.secao-semelhantes { margin-top: 64px; }
.secao-semelhantes h2 { margin-bottom: 24px; }

/* ---------- rodapé ---------- */
.site-footer { background: #0d0a0a; color: #b9b0ad; border-top: 4px solid var(--cor-primaria); padding: 64px 0 0; font-size: .94rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 48px; }
.footer-nome { display: block; color: #fff; font-size: 1.3rem; font-weight: 800; letter-spacing: -.01em; margin-bottom: 10px; }
.footer-marca .btn { margin-top: 12px; }
.site-footer h4 { color: #fff; margin: 0 0 14px; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; }
.site-footer h4::after { content: ""; display: block; width: 28px; height: 3px; border-radius: 3px; background: var(--cor-destaque); margin-top: 8px; }
.site-footer a { display: block; color: #b9b0ad; text-decoration: none; padding: 5px 0; transition: color .2s, transform .2s; }
.site-footer a:hover { color: #fff; transform: translateX(3px); }
.site-footer p { margin: 0 0 8px; }
.footer-redes a { display: inline-block; margin-right: 16px; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); margin-top: 48px; padding-top: 20px; padding-bottom: 96px; font-size: .82rem; color: #8d8380; }
.footer-bottom p { margin: 0; }

/* ---------- WhatsApp flutuante ---------- */
.wa-float {
  position: fixed; right: 22px; bottom: 22px; bottom: max(22px, env(safe-area-inset-bottom)); z-index: 60; width: 62px; height: 62px; border-radius: 50%;
  border: 0; background: var(--cor-wa-flutuante); color: #fff; box-shadow: 0 10px 26px rgba(0, 0, 0, .28); cursor: pointer; display: grid; place-items: center;
  transition: transform .2s, background .2s;
}
.wa-float::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--cor-wa-flutuante); animation: wa-pulso 2.6s ease-out infinite; pointer-events: none; }
.wa-float svg { width: 34px; height: 34px; }
.wa-float:hover { background: var(--cor-wa); transform: scale(1.07); }
@keyframes wa-pulso { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(1.55); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- responsivo ---------- */
@media (max-width: 1100px) {
  .busca-campos { grid-template-columns: 1fr 1fr; }
  .campo-largo { grid-column: span 2; }
  .btn-buscar { grid-column: span 2; }
  .grid-cards { grid-template-columns: repeat(2, 1fr); }
  .listagem { grid-template-columns: 260px 1fr; gap: 24px; }
  .detalhe-grid { grid-template-columns: 1fr 310px; gap: 24px; }
  .sobre-grid, .anunciar, .contato-grid { gap: 40px; }
}

@media (max-width: 860px) {
  .menu-toggle { display: block; }
  .menu {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 2px; background: #fff; padding: 12px 20px 22px;
    border-top: 1px solid var(--cor-borda); box-shadow: 0 18px 30px rgba(40, 14, 14, .12);
  }
  .menu-open .menu { display: flex; }
  .menu a { padding: 13px 14px; font-size: 1.02rem; }
  .menu .btn { margin: 10px 0 0; padding: 13px 16px; }
  .nav-inner { position: relative; min-height: 70px; }
  .topbar-creci { display: none; }
  .sobre-grid, .anunciar, .contato-grid { grid-template-columns: 1fr; gap: 32px; }
  .secao { padding: 64px 20px; }
  .sobre, .contato { padding: 64px 0; }
  .listagem { grid-template-columns: 1fr; padding-top: 28px; padding-bottom: 64px; }
  .filtros { position: static; }
  .detalhe-grid { grid-template-columns: 1fr; }
  .painel { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-marca { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .atalhos { grid-template-columns: 1fr; gap: 12px; margin-top: -36px; }
  .atalho { padding: 18px 22px; }
}

@media (max-width: 560px) {
  .topbar { display: none; }
  .ig-nav { display: inline-flex; }
  .hero { padding: 44px 0 76px; background-position: 0 0, 0 0, 78% center, 0 0; }
  .hero-sub { margin-bottom: 28px; font-size: 1.02rem; }
  .busca { padding: 6px 16px 20px; border-radius: 18px; }
  .abas { width: 100%; }
  .busca-campos, .form-linha { grid-template-columns: 1fr; }
  .campo-largo, .btn-buscar { grid-column: auto; }
  .grid-cards, .grid-cards-2 { grid-template-columns: 1fr; gap: 20px; }
  .secao { padding: 52px 16px; }
  .container { padding-left: 16px; padding-right: 16px; }
  .secao-topo { flex-direction: column; align-items: flex-start; }
  .logo-img { width: 60px; height: 60px; }
  .footer-logo { width: 112px; }
  .form-card { padding: 22px 18px; }
  .resultados-topo { align-items: flex-start; }
  .footer-grid { grid-template-columns: 1fr; }
  .site-footer { padding-top: 48px; }
  .vazio-cartao { padding: 44px 18px 40px; }
  .wa-float { right: 16px; bottom: 16px; bottom: max(16px, env(safe-area-inset-bottom)); width: 58px; height: 58px; }
}
