/* ==========================================================================
   Busca de imóveis — filtros, grade e página do imóvel.

   As cores vêm dos tokens do tema quando existem, com valor de reserva ao
   lado: assim o plugin não fica feio se um dia rodar em outro tema.
   ========================================================================== */

.jmi-busca{
  --c-navy:var(--navy,#0D203E);
  --c-gold:var(--gold,#C29345);
  --c-gold-ink:var(--gold-ink,#8A6224);
  --c-cream:var(--cream,#F7F4EF);
  --c-linha:var(--line,#E4DFD6);
  --c-linha-forte:var(--line-strong,#CFC7B9);
  --c-ink:var(--ink,#1A1A1A);
  --c-ink-soft:var(--ink-soft,#4C4C4C);
  --c-ink-faint:var(--ink-faint,#6B6B6B);

  display:grid;gap:28px;align-items:start;
  grid-template-columns:288px minmax(0,1fr);
}
@media(max-width:900px){
  .jmi-busca{grid-template-columns:minmax(0,1fr);}
}

/* ---------- filtros ---------- */
.jmi-filtros{
  position:sticky;top:88px;
  background:#fff;border:1px solid var(--c-linha);
  border-radius:8px;padding:20px;
  box-shadow:0 1px 2px rgba(13,32,62,.04),0 12px 30px -22px rgba(13,32,62,.4);
}
@media(max-width:900px){
  .jmi-filtros{position:static;}
}

/*
 * O <details> em volta dos campos. No computador ele é invisível: o resumo
 * some e os campos ficam sempre à mostra. No celular vira o botão que abre e
 * fecha a busca.
 */
.jmi-filtros-resumo{display:none;}
.jmi-filtros-resumo::-webkit-details-marker{display:none;}
.jmi-filtros-resumo::marker{content:"";}

@media(max-width:900px){
  .jmi-filtros{padding:14px;}

  .jmi-filtros-resumo{
    display:flex;align-items:center;gap:10px;
    list-style:none;cursor:pointer;
    padding:12px 14px;border-radius:6px;
    font-size:14px;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--c-navy);
    background:var(--c-cream);
    -webkit-tap-highlight-color:transparent;
  }
  .jmi-filtros-resumo svg{width:18px;height:18px;flex:none;color:var(--c-gold-ink);}
  .jmi-filtros-resumo span:first-of-type{flex:1;}

  /* Quantos filtros estão em uso, para não abrir só para conferir. */
  .jmi-filtros-n{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:20px;height:20px;padding:0 6px;border-radius:100px;
    background:var(--c-gold);color:#0A1730;
    font-size:11px;font-weight:700;line-height:1;
    font-variant-numeric:tabular-nums;
  }

  /* Seta que gira ao abrir. */
  .jmi-filtros-resumo::after{
    content:"";flex:none;width:8px;height:8px;
    border-right:2px solid currentColor;border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px);
    transition:transform .25s ease;
  }
  .jmi-filtros-caixa[open] .jmi-filtros-resumo::after{
    transform:rotate(-135deg) translate(-2px,-2px);
  }

  .jmi-filtros-caixa[open] .jmi-filtros-campos{padding-top:18px;}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
  .jmi-filtros-resumo::after{transition:none;}
}
.jmi-filtro{margin-bottom:16px;}
.jmi-filtro:last-of-type{margin-bottom:0;}
.jmi-filtro label{
  display:block;margin-bottom:6px;
  font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--c-navy);
}
.jmi-filtro select,
.jmi-filtro input[type="text"],
.jmi-filtro input[type="number"]{
  -webkit-appearance:none;appearance:none;
  box-sizing:border-box;width:100%;height:46px;
  padding:0 14px;font:inherit;font-size:15px;
  color:var(--c-ink);background:#fff;
  border:1px solid var(--c-linha-forte);border-radius:6px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.jmi-filtro select{
  padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,var(--c-navy) 50%),
                   linear-gradient(135deg,var(--c-navy) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
.jmi-filtro select:focus,
.jmi-filtro input:focus{
  outline:none;border-color:var(--c-gold);
  box-shadow:0 0 0 3px rgba(194,147,69,.16);
}
.jmi-faixa{display:flex;align-items:center;gap:8px;}
.jmi-faixa span{color:var(--c-ink-faint);flex:none;}
.jmi-faixa input{min-width:0;}

.jmi-filtros-acoes{
  margin-top:20px;padding-top:16px;border-top:1px solid var(--c-linha);
  display:flex;flex-direction:column;gap:10px;align-items:stretch;
}
.jmi-btn-filtrar{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;height:48px;padding:0 22px;
  font:inherit;font-size:14px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  color:#0A1730;background:var(--c-gold);
  border:0;border-radius:6px;cursor:pointer;
  box-shadow:0 6px 18px -10px rgba(194,147,69,.9);
  transition:background .2s ease,transform .2s ease;
}
.jmi-btn-filtrar:hover{background:#D3A759;color:#0A1730;transform:translateY(-1px);}
.jmi-limpar{
  text-align:center;font-size:13.5px;color:var(--c-ink-soft);
  text-decoration:underline;text-underline-offset:2px;
}
.jmi-limpar:hover{color:var(--c-gold-ink);}

/* ---------- resultados ---------- */
.jmi-contagem{
  margin:0 0 16px;font-size:14px;color:var(--c-ink-faint);
  font-variant-numeric:tabular-nums;
}
.jmi-grade{
  display:grid;gap:22px;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}

/*
 * Grade fora da página de busca (a home, por enquanto). Herda as cores de
 * .jmi-busca, mas não a coluna de filtros ao lado — e pede cards maiores,
 * porque ali eles têm a largura inteira para ocupar.
 */
.jmi-solta{display:block;}
.jmi-solta .jmi-grade{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}

/* O cartão declara display:flex, que ganharia de [hidden] do navegador. */
.jmi-imovel[hidden]{display:none;}

.jmi-imovel{
  display:flex;flex-direction:column;
  background:#fff;
  border:1px solid var(--c-linha);
  border-radius:4px;                    /* fechado: alto padrão pede sobriedade */
  overflow:hidden;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.jmi-imovel:hover{
  border-color:var(--c-linha-forte);
  transform:translateY(-3px);
  box-shadow:0 22px 44px -28px rgba(13,32,62,.55);
}

/* ---------- mídia ---------- */
.jmi-imovel-midia{position:relative;overflow:hidden;background:var(--c-cream);}
.jmi-imovel-foto{
  display:block;aspect-ratio:3/2;         /* mais cinematográfico que 4:3 */
  overflow:hidden;
}
.jmi-imovel-foto img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.6,.2,1);
}
.jmi-imovel:hover .jmi-imovel-foto img{transform:scale(1.045);}
.jmi-imovel-sem-foto{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--c-ink-faint);
}

/* Selo à esquerda; o coração fica à direita, para nunca disputarem espaço. */
.jmi-imovel-selo{
  position:absolute;top:12px;left:12px;
  padding:6px 12px;border-radius:3px;
  font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#0A1730;background:var(--c-gold);
  box-shadow:0 2px 10px rgba(10,23,48,.25);
}

.jmi-fav-btn{
  position:absolute;top:10px;right:10px;
  width:38px;height:38px;padding:0;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:0;border-radius:50%;
  color:#0A1730;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 2px 10px rgba(10,23,48,.18);
  transition:background .2s ease,transform .2s ease,color .2s ease;
}
.jmi-fav-btn svg{width:19px;height:19px;fill:none;transition:fill .25s ease;}
.jmi-fav-btn:hover{background:#fff;transform:scale(1.08);}
.jmi-fav-btn:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px;}
/* Salvo: coração preenchido, sem depender só da cor para comunicar. */
.jmi-fav-btn.is-salvo{color:#C0392B;background:#fff;}
.jmi-fav-btn.is-salvo svg{fill:#C0392B;}
@keyframes jmi-pulso{
  0%{transform:scale(1);} 45%{transform:scale(1.28);} 100%{transform:scale(1);}
}
.jmi-fav-btn.jmi-pulsa{animation:jmi-pulso .42s cubic-bezier(.34,1.4,.5,1);}
@media (prefers-reduced-motion:reduce){
  .jmi-fav-btn.jmi-pulsa{animation:none;}
  .jmi-imovel:hover .jmi-imovel-foto img{transform:none;}
}

/* Quantas fotos existem — diz que há mais para ver. */
.jmi-imovel-fotos{
  position:absolute;right:10px;bottom:10px;
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 10px;border-radius:3px;
  font-size:11.5px;font-weight:600;color:#fff;
  background:rgba(10,23,48,.62);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  font-variant-numeric:tabular-nums;
}
.jmi-imovel-fotos svg{width:13px;height:13px;}

/* ---------- corpo ---------- */
.jmi-imovel-corpo{
  padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1;
}

/* O preço manda: é o que decide o clique. */
.jmi-imovel-preco{
  margin:0;order:1;
  font-size:23px;font-weight:700;line-height:1.15;
  color:var(--c-navy);font-variant-numeric:tabular-nums;
  letter-spacing:-.015em;
}

.jmi-imovel-bairro{
  margin:0;order:2;
  display:flex;align-items:center;gap:5px;
  font-size:12.5px;font-weight:500;color:var(--c-ink-faint);
  letter-spacing:.01em;text-transform:none;
}
.jmi-imovel-bairro svg{width:13px;height:13px;flex:none;color:var(--c-gold-ink);}

.jmi-imovel-titulo{
  margin:4px 0 0;order:3;
  font-size:15px;line-height:1.4;font-weight:500;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.jmi-imovel-titulo a{color:var(--c-ink-soft);text-decoration:none;}
.jmi-imovel-titulo a:hover{color:var(--c-gold-ink);}

/* Características como dado, não como frase corrida. */
.jmi-imovel-specs{
  list-style:none;order:4;
  margin:auto 0 0;padding:14px 0 0;
  border-top:1px solid var(--c-linha);
  display:flex;flex-wrap:wrap;gap:4px 18px;
}
.jmi-imovel-specs li{display:flex;align-items:baseline;gap:4px;}
.jmi-spec-n{
  font-size:15px;font-weight:700;color:var(--c-navy);
  font-variant-numeric:tabular-nums;
}
.jmi-spec-r{font-size:12px;color:var(--c-ink-faint);}

@media(max-width:420px){
  .jmi-imovel-preco{font-size:21px;}
  .jmi-imovel-corpo{padding:16px 17px 18px;}
  .jmi-fav-btn{width:40px;height:40px;}   /* alvo de toque confortável */
}

/* ---------- vazio ---------- */
.jmi-vazio{
  background:var(--c-cream);border:1px solid var(--c-linha);
  border-radius:8px;padding:40px 32px;text-align:center;
}
.jmi-vazio h3{margin:0 0 10px;font-size:20px;color:var(--c-navy);}
.jmi-vazio p{margin:0 auto 22px;max-width:46ch;color:var(--c-ink-soft);font-size:15px;}
.jmi-vazio .jmi-btn-filtrar{width:auto;display:inline-flex;}

/* ---------- paginação ---------- */
.jmi-paginacao{
  display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:34px;
}
.jmi-paginacao .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 14px;
  border:1px solid var(--c-linha);border-radius:6px;
  text-decoration:none;color:var(--c-navy);font-size:15px;
}
.jmi-paginacao .page-numbers:hover{border-color:var(--c-gold);}
.jmi-paginacao .page-numbers.current{
  background:var(--c-navy);color:#fff;border-color:var(--c-navy);
}

/* ==========================================================================
   Página do imóvel
   ========================================================================== */
.jmi-single{
  --c-navy:var(--navy,#0D203E);
  --c-navy-900:var(--navy-900,#0A1730);
  --c-gold:var(--gold,#C29345);
  --c-gold-ink:var(--gold-ink,#8A6224);
  --c-cream:var(--cream,#F7F4EF);
  --c-linha:var(--line,#E4DFD6);
  --c-linha-forte:var(--line-strong,#CFC7B9);
  --c-ink:var(--ink,#1A1A1A);
  --c-ink-soft:var(--ink-soft,#4C4C4C);
  --c-ink-faint:var(--ink-faint,#6B6B6B);
}

/* ---------- topo ---------- */
.jmi-topo{
  position:relative;isolation:isolate;
  background:var(--c-navy-900);color:#fff;
  padding:34px 0 32px;overflow:hidden;
}
.jmi-topo-foto{position:absolute;inset:0;z-index:-2;}
.jmi-topo-foto img{width:100%;height:100%;object-fit:cover;display:block;}
/*
 * Sombra de baixo para cima, preta e neutra — a foto do imóvel precisa ser
 * vista. O contraste que falta vem do text-shadow de cada elemento, que
 * escurece atrás das letras sem escurecer a imagem.
 */
.jmi-topo::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,
    rgba(0,0,0,.32) 0%,
    rgba(0,0,0,.46) 38%,
    rgba(0,0,0,.72) 78%,
    rgba(0,0,0,.86) 100%);
}

.jmi-migalhas{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin:0 0 16px;font-size:13px;
}
.jmi-migalhas a{color:rgba(255,255,255,.88);text-decoration:none;text-shadow:0 1px 6px rgba(0,0,0,.7);}
.jmi-migalhas a:hover{color:var(--c-gold);}
.jmi-migalhas span{color:rgba(255,255,255,.4);}

.jmi-chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px;}
.jmi-chip{
  display:inline-flex;align-items:center;
  padding:6px 13px;border-radius:100px;
  font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  /* Fundo escuro próprio: os chips agora ficam sobre a foto, não sobre o véu. */
  background:rgba(10,23,48,.6);color:#fff;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.jmi-chip-ouro{background:var(--c-gold);color:#0A1730;}
.jmi-chip-vazio{background:transparent;border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.85);}

.jmi-topo h1{
  margin:0 0 12px;max-width:22ch;
  font-weight:700;font-size:clamp(26px,3.8vw,40px);line-height:1.15;
  letter-spacing:-.02em;color:#fff;text-wrap:balance;
  text-shadow:0 2px 16px rgba(0,0,0,.4);
}
.jmi-topo-local{
  display:flex;align-items:center;gap:7px;
  margin:0 0 20px;font-size:15px;color:#EDF1F7;
  text-shadow:0 1px 8px rgba(0,0,0,.7);
}
.jmi-topo-local svg{width:16px;height:16px;flex:none;color:var(--c-gold);}

.jmi-topo-preco{
  margin:0 0 20px;
  font-size:clamp(28px,4.2vw,40px);font-weight:700;line-height:1;
  color:var(--c-gold);font-variant-numeric:tabular-nums;letter-spacing:-.02em;
  text-shadow:0 2px 14px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.5);
}

/* Ficha rápida no topo: o resumo que decide se vale continuar lendo. */
.jmi-rapida-lista{
  list-style:none;margin:0;padding:18px 0 0;
  border-top:1px solid rgba(255,255,255,.18);
  display:flex;flex-wrap:wrap;gap:10px 30px;
}
.jmi-rapida-lista li{font-size:14px;color:#E4EAF3;text-shadow:0 1px 6px rgba(0,0,0,.65);}
.jmi-rapida-lista strong{
  font-size:17px;font-weight:700;color:#fff;margin-right:3px;
  font-variant-numeric:tabular-nums;
}

/* ---------- corpo em duas colunas ---------- */
.jmi-corpo{
  display:grid;gap:44px;align-items:start;
  grid-template-columns:minmax(0,1fr) 330px;
  padding-top:44px;padding-bottom:56px;
}
.jmi-coluna{min-width:0;}

.jmi-bloco{margin:0 0 42px;}
.jmi-bloco:last-child{margin-bottom:0;}
.jmi-bloco > h2{
  margin:0 0 16px;
  font-weight:700;font-size:22px;line-height:1.2;
  letter-spacing:-.018em;color:var(--c-navy);
}
.jmi-nota{margin:-8px 0 14px;font-size:13.5px;color:var(--c-ink-faint);}

/* ---------- galeria ---------- */
.jmi-galeria{
  display:grid;gap:10px;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
}
/* A primeira foto ocupa duas colunas: dá um ponto de entrada à grade. */
.jmi-galeria > .jmi-foto:first-child{grid-column:span 2;}
.jmi-foto{
  display:block;padding:0;border:0;cursor:zoom-in;
  aspect-ratio:4/3;border-radius:6px;overflow:hidden;
  background:var(--c-cream);
}
.jmi-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.jmi-foto:hover img{transform:scale(1.045);}
.jmi-foto:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;}
.jmi-galeria-plantas .jmi-foto{aspect-ratio:3/4;}
.jmi-galeria-plantas .jmi-foto img{object-fit:contain;background:#fff;}
.jmi-galeria-plantas > .jmi-foto:first-child{grid-column:auto;}

@media (prefers-reduced-motion:reduce){
  .jmi-foto:hover img{transform:none;}
}

/* ---------- visor de fotos em tela cheia ---------- */
.jmi-visor{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:center;justify-content:center;
  background:rgba(8,15,28,.94);
  padding:56px 16px;
}
.jmi-visor.is-aberto{display:flex;}
.jmi-visor img{
  max-width:100%;max-height:100%;
  object-fit:contain;border-radius:4px;
}
.jmi-visor-fechar,
.jmi-visor-nav{
  position:absolute;
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;padding:0;
  border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;
  transition:background .2s ease;
}
.jmi-visor-fechar:hover,
.jmi-visor-nav:hover{background:rgba(255,255,255,.24);}
.jmi-visor-fechar{top:14px;right:14px;}
.jmi-visor-fechar svg{width:20px;height:20px;}
.jmi-visor-nav{top:50%;transform:translateY(-50%);}
.jmi-visor-ant{left:14px;}
.jmi-visor-prox{right:14px;}
.jmi-visor-nav svg{width:22px;height:22px;}
.jmi-visor-conta{
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
  font-size:13px;color:rgba(255,255,255,.75);
  font-variant-numeric:tabular-nums;
}

/* ---------- ficha técnica ---------- */
.jmi-ficha-tec{
  display:grid;gap:1px;margin:0;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  background:var(--c-linha);
  border:1px solid var(--c-linha);border-radius:8px;overflow:hidden;
}
.jmi-ficha-tec > div{background:#fff;padding:14px 18px;}
.jmi-ficha-tec dt{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--c-ink-faint);margin-bottom:5px;
}
.jmi-ficha-tec dd{
  margin:0;font-size:16px;font-weight:600;color:var(--c-navy);
  font-variant-numeric:tabular-nums;
}

/* ---------- diferenciais ---------- */
.jmi-diferenciais{
  list-style:none;margin:0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
}
.jmi-diferenciais li{
  position:relative;padding-left:24px;font-size:15px;line-height:1.55;
  color:var(--c-ink-soft);
}
.jmi-diferenciais li::before{
  content:"";position:absolute;left:2px;top:7px;
  width:8px;height:8px;border-radius:50%;background:var(--c-gold);
}

.jmi-video{position:relative;padding-top:56.25%;border-radius:8px;overflow:hidden;background:#000;}
.jmi-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

.jmi-mapa{
  border-radius:8px;overflow:hidden;border:1px solid var(--c-linha);line-height:0;
}

/* ---------- cartão que acompanha a rolagem ---------- */
.jmi-lateral{position:sticky;top:92px;}
.jmi-cartao{
  background:#fff;border:1px solid var(--c-linha);border-radius:10px;
  padding:22px;
  box-shadow:0 1px 2px rgba(13,32,62,.05),0 22px 48px -30px rgba(13,32,62,.5);
}
.jmi-cartao-preco{
  margin:0;font-size:27px;font-weight:700;line-height:1.1;
  color:var(--c-navy);font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
.jmi-cartao-cond{margin:5px 0 0;font-size:13.5px;color:var(--c-ink-faint);}

.jmi-cartao-ficha{
  list-style:none;margin:18px 0;padding:16px 0;
  border-top:1px solid var(--c-linha);border-bottom:1px solid var(--c-linha);
  display:flex;flex-wrap:wrap;gap:12px 22px;
}
.jmi-cartao-ficha li{display:flex;flex-direction:column;}
.jmi-cartao-ficha strong{
  font-size:17px;font-weight:700;color:var(--c-navy);line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.jmi-cartao-ficha span{font-size:12px;color:var(--c-ink-faint);}

.jmi-cartao-zap{width:100%;justify-content:center;background:#25D366;color:#fff;}
.jmi-cartao-zap:hover{background:#1FBA59;color:#fff;}

.jmi-cartao-linha{display:flex;gap:8px;margin-top:10px;}
.jmi-cartao-linha button{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;padding:0 10px;
  font:inherit;font-size:13.5px;font-weight:500;
  color:var(--c-ink-soft);background:#fff;
  border:1px solid var(--c-linha);border-radius:6px;cursor:pointer;
  transition:border-color .2s ease,color .2s ease,background .2s ease;
}
.jmi-cartao-linha button:hover{border-color:var(--c-gold);color:var(--c-gold-ink);background:var(--c-cream);}
.jmi-cartao-linha svg{width:17px;height:17px;flex:none;}

/* O coração aqui é botão com rótulo, não a bolha do cartão da listagem. */
.jmi-fav-grande{position:static;width:auto;height:42px;border-radius:6px;box-shadow:none;background:#fff;}
.jmi-fav-grande:hover{transform:none;}
.jmi-fav-grande.is-salvo{color:#C0392B;border-color:#C0392B;background:#fff;}
.jmi-fav-grande.is-salvo svg{fill:#C0392B;}

.jmi-cartao-creci{
  margin:14px 0 0;text-align:center;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-faint);
}

/* ---------- barra fixa do celular ---------- */
.jmi-barra{display:none;}

@media(max-width:980px){
  .jmi-corpo{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:96px;}

  /*
   * No celular o cartão sai da lateral e vira barra no rodapé: preço à
   * esquerda, WhatsApp à direita, sempre à vista enquanto se lê.
   */
  .jmi-lateral{display:none;}
  .jmi-barra{
    position:fixed;left:0;right:0;bottom:0;z-index:95;
    display:flex;align-items:center;gap:12px;
    padding:10px 16px;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
    background:#fff;border-top:1px solid var(--c-linha);
    box-shadow:0 -8px 24px -16px rgba(13,32,62,.5);
  }
  .jmi-barra-preco{display:flex;flex-direction:column;flex:1;min-width:0;}
  .jmi-barra-preco strong{
    font-size:18px;font-weight:700;color:var(--c-navy);line-height:1.15;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .jmi-barra-preco span{font-size:11.5px;color:var(--c-ink-faint);}
  .jmi-barra .jmt-btn{flex:none;padding:12px 20px;}

  .jmi-galeria > .jmi-foto:first-child{grid-column:auto;}
  .jmi-bloco{margin-bottom:34px;}
}

@media(max-width:560px){
  .jmi-galeria{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .jmi-topo{padding:26px 0;}
  .jmi-visor{padding:52px 8px;}
}

/* ==========================================================================
   Busca curta, em faixa — topo da home
   ========================================================================== */
.jmi-rapida{
  --c-navy:var(--navy,#0D203E);
  --c-gold:var(--gold,#C29345);
  --c-gold-ink:var(--gold-ink,#8A6224);
  --c-cream:var(--cream,#F7F4EF);
  --c-linha:var(--line,#E4DFD6);
  --c-linha-forte:var(--line-strong,#CFC7B9);
  --c-ink:var(--ink,#1A1A1A);
  --c-ink-faint:var(--ink-faint,#6B6B6B);

  display:block;
  padding:20px;border-radius:10px;
  background:#fff;border:1px solid var(--c-linha);
  box-shadow:0 2px 4px rgba(13,32,62,.05),0 24px 50px -30px rgba(13,32,62,.5);
}
.jmi-rapida-campos{
  display:grid;gap:14px;align-items:end;
  grid-template-columns:repeat(4,minmax(0,1fr)) auto;
}
.jmi-rapida-campo{min-width:0;}
.jmi-rapida-campo label{
  display:block;margin-bottom:6px;
  font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-ink-faint);
}
.jmi-rapida select,
.jmi-rapida input{
  -webkit-appearance:none;appearance:none;
  box-sizing:border-box;width:100%;height:48px;
  padding:0 14px;font:inherit;font-size:15px;
  color:var(--c-ink);background:#fff;
  border:1px solid var(--c-linha-forte);border-radius:6px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.jmi-rapida select{
  padding-right:36px;
  background-image:linear-gradient(45deg,transparent 50%,var(--c-navy) 50%),
                   linear-gradient(135deg,var(--c-navy) 50%,transparent 50%);
  background-position:calc(100% - 19px) 22px,calc(100% - 14px) 22px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.jmi-rapida select:focus,
.jmi-rapida input:focus{
  outline:none;border-color:var(--c-gold);
  box-shadow:0 0 0 3px rgba(194,147,69,.16);
}
.jmi-rapida-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  height:48px;padding:0 26px;
  font:inherit;font-size:14px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  color:#0A1730;background:var(--c-gold);
  border:0;border-radius:6px;cursor:pointer;
  transition:background .2s ease;
}
.jmi-rapida-btn:hover{background:#D3A759;}
.jmi-rapida-btn svg{width:17px;height:17px;flex:none;}

@media(max-width:1000px){
  .jmi-rapida-campos{grid-template-columns:repeat(2,minmax(0,1fr));}
  .jmi-rapida-btn{grid-column:1 / -1;}
}
@media(max-width:900px){
  .jmi-rapida{padding:14px;}
  .jmi-rapida .jmi-filtros-caixa[open] .jmi-rapida-campos{padding-top:16px;}
}
@media(max-width:520px){
  .jmi-rapida-campos{grid-template-columns:minmax(0,1fr);}
}

/* ==========================================================================
   Carrossel de imóveis
   ========================================================================== */
.jmi-carrossel{
  --c-navy:var(--navy,#0D203E);
  --c-gold:var(--gold,#C29345);
  --c-linha:var(--line,#E4DFD6);
  --jmi-vao:22px;

  position:relative;
}

/*
 * O trilho rola de verdade. scroll-snap prende cada cartão na borda esquerda,
 * então parar no meio de um cartão não acontece — nem com o dedo, nem com as
 * setas, nem com a roda do mouse.
 */
.jmi-trilho{
  display:flex;gap:var(--jmi-vao);
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
  /* Respiro para a sombra do cartão no hover não ser cortada. */
  padding:4px 4px 12px;margin:-4px -4px -12px;
}
.jmi-trilho::-webkit-scrollbar{display:none;}
.jmi-trilho:focus-visible{outline:2px solid var(--c-gold);outline-offset:4px;border-radius:8px;}

.jmi-trilho-item{
  flex:0 0 calc((100% - var(--jmi-vao) * 2) / 3);
  scroll-snap-align:start;
  min-width:0;
}
.jmi-trilho-item > .jmi-imovel{height:100%;}

/* ---------- setas ---------- */
.jmi-seta{
  position:absolute;top:calc(50% - 40px);
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;
  border:1px solid var(--c-linha);border-radius:50%;
  background:#fff;color:var(--c-navy);cursor:pointer;
  box-shadow:0 2px 10px rgba(13,32,62,.14),0 12px 30px -18px rgba(13,32,62,.5);
  transition:background .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease;
  z-index:2;
}
.jmi-seta:hover{background:var(--c-gold);border-color:var(--c-gold);color:#0A1730;}
.jmi-seta:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;}
.jmi-seta svg{width:20px;height:20px;}
/* Nas pontas a seta continua funcionando (dá a volta), mas recua no visual. */
.jmi-seta.is-fim{opacity:.45;}
.jmi-seta.is-fim:hover{opacity:1;}

.jmi-seta-ant{left:-21px;}
.jmi-seta-prox{right:-21px;}

@media(max-width:1240px){
  /* Sem espaço fora da coluna, as setas entram por cima das bordas. */
  .jmi-seta-ant{left:6px;}
  .jmi-seta-prox{right:6px;}
}

@media(max-width:900px){
  .jmi-carrossel{--jmi-vao:16px;}
  .jmi-trilho-item{flex-basis:calc((100% - var(--jmi-vao)) / 2);}
}

@media(max-width:620px){
  .jmi-trilho-item{flex-basis:82%;}
  .jmi-seta{display:none;}
}

@media (prefers-reduced-motion:reduce){
  .jmi-trilho{scroll-behavior:auto;}
}
