/* E5 — Imóveis à Venda (listagem e ficha). Formato aprovado em 10/2026, identidade da E5.
   Tudo escopado em .e5im para não vazar para o resto do site nem herdar o tema hodil. */

.e5im {
  --bg: #ffffff;
  --surface: #f4f4f2;
  --ink: #141413;
  --muted: #696864;
  --line: #e4e3df;
  --gold: #ccb076;
  --gold-ink: #85692f;
  --night: #0b0b0a;
  --on-night: #f3f2ed;
  --on-night-muted: #a9a7a0;
  --shadow: 0 1px 2px rgb(0 0 0 / .05), 0 8px 24px rgb(0 0 0 / .07);
  --font: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;
  --radius: 12px;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

/* Neutraliza estilos genéricos do tema dentro da página */
.e5im *, .e5im *::before, .e5im *::after { box-sizing: border-box; }
.e5im h1, .e5im h2, .e5im h3 { font-family: var(--font); color: inherit; margin: 0; line-height: 1.2; text-wrap: balance; text-transform: none; letter-spacing: normal; }
.e5im p { margin: 0; }
.e5im ul { margin: 0; padding: 0; }
.e5im a { color: inherit; text-decoration: none; }
.e5im a:hover, .e5im a:focus { color: inherit; text-decoration: none; }
.e5im img { display: block; max-width: 100%; height: auto; }
.e5im button { font-family: var(--font); line-height: 1.3; text-transform: none; letter-spacing: normal; box-shadow: none; }
.e5im button::before { display: none; }
.e5im input, .e5im select, .e5im textarea { font-family: var(--font); color: var(--ink); margin: 0; box-shadow: none; height: auto; }
.e5im :focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.e5im [hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { .e5im *, .e5im *::before, .e5im *::after { transition: none !important; animation: none !important; } }

.e5im-wrap { max-width: 1180px; margin-inline: auto; padding-inline: 16px; }
.e5im-eyebrow { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--gold); }

/* Menu do tema sobre a faixa preta (o mesmo das outras páginas da E5) */
body.e5im-pg .mainmenu-area-bg { background: #ffffff; opacity: .01; }
body.e5im-pg .is-sticky .mainmenu-area-bg { background: #0a0a0a; opacity: .99; }
body.e5im-pg .mainmenu-area { border-color: rgba(255, 255, 255, .08); }
body.e5im-pg ul#nav li a, body.e5im-pg .is-sticky ul#nav li a { color: #ffffff; }
body.e5im-pg ul#nav li a:hover, body.e5im-pg ul#nav li.current-menu-item > a, body.e5im-pg ul#nav li.menu-item-e5im > a { color: #ccb076; }
body.e5im-pg .ham .line { stroke: #ffffff; }

/* Faixa de busca */
.e5im-hero { background: var(--night); color: var(--on-night); padding-block: 170px 44px; position: relative; overflow: hidden; }
.e5im-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgb(204 176 118 / .07) 1px, transparent 1px), linear-gradient(90deg, rgb(204 176 118 / .07) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: linear-gradient(to bottom, transparent 10%, #000 40%, transparent 95%); mask-image: linear-gradient(to bottom, transparent 10%, #000 40%, transparent 95%); pointer-events: none; }
.e5im-hero .e5im-wrap { position: relative; display: grid; gap: 18px; }
.e5im-hero h1 { font-size: clamp(28px, 4.2vw, 44px); font-weight: 600; color: var(--on-night); }
.e5im-hero h1 em { font-style: normal; color: var(--gold); }
.e5im-lead { color: var(--on-night-muted); max-width: 60ch; }
.e5im-busca { background: var(--bg); color: var(--ink); border-radius: 14px; padding: 10px; display: grid; grid-template-columns: 190px minmax(0, 1fr) 200px auto; gap: 8px; box-shadow: 0 18px 40px rgb(0 0 0 / .35); margin: 6px 0 0; }
.e5im-campo { display: grid; gap: 2px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); min-width: 0; }
.e5im-campo label { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin: 0; }
.e5im-campo select, .e5im-campo input { border: 0; background: transparent; padding: 0; outline: none; font-weight: 500; font-size: 14px; width: 100%; min-width: 0; }
.e5im-ir { background: var(--gold); color: #1a1508; border: 0; border-radius: 10px; padding: 0 26px; font-weight: 600; font-size: 14px; cursor: pointer; }
.e5im-ir:hover { filter: brightness(1.05); }
.e5im-atalhos { display: flex; flex-wrap: wrap; gap: 8px; }
.e5im-atalhos button { background: rgb(255 255 255 / .06); color: var(--on-night); border: 1px solid rgb(255 255 255 / .16); border-radius: 999px; padding: 6px 14px; font-size: 13px; cursor: pointer; }
.e5im-atalhos button[aria-pressed="true"] { background: var(--gold); color: #1a1508; border-color: var(--gold); font-weight: 600; }
.e5im-atalhos button span { opacity: .7; margin-left: 5px; font-variant-numeric: tabular-nums; }
@media (max-width: 820px) {
  .e5im-hero { padding-top: 130px; }
  .e5im-busca { grid-template-columns: 1fr 1fr; }
  .e5im-campo-busca { grid-column: 1 / -1; order: -1; }
  .e5im-ir { grid-column: 1 / -1; padding-block: 12px; }
}

/* Resultados */
.e5im-resultados { padding-block: 32px 64px; }
.e5im-res-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.e5im-res-topo h2 { font-size: 20px; font-weight: 600; }
.e5im-res-topo p { color: var(--muted); font-size: 13.5px; }
.e5im-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; }
.e5im-vazio { padding: 48px 16px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius); }

/* Card */
.e5im-card { position: relative; background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.e5im-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.e5im-ph { position: relative; aspect-ratio: 4 / 3; background: var(--surface); overflow: hidden; }
.e5im-trilho { display: flex; height: 100%; transition: transform .35s ease; }
.e5im-trilho img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; }
.e5im-ph .e5im-seta { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 32px; height: 32px; border-radius: 50%; border: 0; padding: 0; background: rgb(255 255 255 / .92); color: #141413; display: grid; place-items: center; cursor: pointer; opacity: 0; transition: opacity .2s; box-shadow: 0 2px 8px rgb(0 0 0 / .2); }
.e5im-ph .e5im-ant { left: 10px; } .e5im-ph .e5im-prox { right: 10px; }
.e5im-card:hover .e5im-seta, .e5im-card:focus-within .e5im-seta { opacity: 1; }
@media (hover: none) { .e5im-ph .e5im-seta { opacity: .9; } }
.e5im-pontos { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; justify-content: center; gap: 5px; z-index: 2; pointer-events: none; }
.e5im-pontos i { width: 6px; height: 6px; border-radius: 50%; background: rgb(255 255 255 / .55); transition: width .2s; }
.e5im-pontos i.on { background: #fff; width: 16px; border-radius: 3px; }
.e5im-selo { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--night); color: var(--gold); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 6px; }
.e5im-corpo { padding: 16px 18px 18px; display: grid; gap: 6px; flex: 1; align-content: start; }
.e5im-tipo { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); font-weight: 600; }
.e5im-card h3 { font-size: 17px; font-weight: 600; }
.e5im-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.e5im-card .e5im-sub { color: var(--muted); font-size: 13.5px; }
.e5im-specs { list-style: none; margin-top: 4px; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; }
.e5im-specs li { display: inline-flex; align-items: center; gap: 6px; font-variant-numeric: tabular-nums; }
.e5im-ic { color: var(--gold-ink); flex: none; }
.e5im-rodape { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: end; gap: 8px; }
.e5im-corpo .e5im-rodape { margin-top: 10px; }
.e5im-rodape small { display: block; font-size: 11.5px; color: var(--muted); }
.e5im-rodape strong { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.e5im-cidade { font-size: 12.5px; color: var(--muted); text-align: right; }

/* Ficha — faixa preta do topo */
.e5im-topo { background: var(--night); color: var(--on-night); padding-block: 160px 120px; }
.e5im-trilha { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12.5px; color: var(--on-night-muted); margin-bottom: 14px; }
.e5im-trilha a:hover { color: var(--gold); }
.e5im-titulo { display: flex; justify-content: space-between; align-items: start; gap: 16px; flex-wrap: wrap; }
.e5im-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.e5im-chip { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 4px 9px; border-radius: 6px; background: rgb(255 255 255 / .08); color: var(--on-night); border: 1px solid rgb(255 255 255 / .16); }
.e5im-chip.e5im-ouro { background: var(--gold); color: #1a1508; border-color: var(--gold); }
.e5im-titulo h1 { font-size: clamp(24px, 3.2vw, 34px); font-weight: 600; color: var(--on-night); }
.e5im-titulo .e5im-sub { margin-top: 6px; color: var(--on-night-muted); }
.e5im-compartilhar { background: none; border: 1px solid rgb(255 255 255 / .2); border-radius: 999px; padding: 8px 14px; display: inline-flex; gap: 8px; align-items: center; color: var(--gold); font-weight: 600; font-size: 13px; cursor: pointer; }
.e5im-compartilhar .e5im-ic { color: var(--gold); }

.e5im-faixa { position: relative; margin-top: -92px; margin-bottom: 34px; }
.e5im-rolo { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 24px) / 3); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--radius); }
.e5im-rolo::-webkit-scrollbar { display: none; }
.e5im-rolo button { scroll-snap-align: start; border: 0; padding: 0; background: var(--surface); border-radius: var(--radius); overflow: hidden; cursor: zoom-in; height: clamp(220px, 30vw, 400px); }
.e5im-rolo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.e5im-rolo button:hover img { transform: scale(1.03); }
.e5im-qtd { position: absolute; left: 14px; bottom: 14px; z-index: 2; background: var(--bg); color: var(--ink); border: 0; border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 600; display: inline-flex; gap: 7px; align-items: center; box-shadow: var(--shadow); cursor: pointer; }
.e5im-faixa .e5im-seta { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; padding: 0; border-radius: 50%; border: 0; background: var(--bg); color: var(--ink); display: grid; place-items: center; box-shadow: var(--shadow); cursor: pointer; }
.e5im-faixa .e5im-ant { left: -8px; } .e5im-faixa .e5im-prox { right: -8px; }
@media (max-width: 820px) { .e5im-rolo { grid-auto-columns: 86%; } .e5im-faixa .e5im-seta { display: none; } .e5im-topo { padding-top: 120px; } }

.e5im-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; padding-bottom: 64px; }
@media (max-width: 960px) { .e5im-colunas { grid-template-columns: minmax(0, 1fr); } }
.e5im-principal { display: grid; gap: 30px; min-width: 0; }
.e5im-principal > section { display: grid; gap: 12px; padding-top: 26px; border-top: 1px solid var(--line); }
.e5im-principal > section:first-child { border-top: 0; padding-top: 0; }
.e5im-principal h2 { font-size: 19px; font-weight: 600; }
.e5im-preco small { display: block; color: var(--muted); font-size: 13px; }
.e5im-preco strong { font-size: clamp(28px, 3.4vw, 36px); font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.e5im-m2 { color: var(--muted); font-size: 13.5px; }
.e5im-fspecs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px 16px; }
.e5im-fspecs > div { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 2px 10px; align-items: center; }
.e5im-fspecs .e5im-ic { grid-row: span 2; }
.e5im-fspecs span { font-size: 12px; color: var(--muted); }
.e5im-fspecs b { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.e5im-prosa { max-width: 68ch; }
.e5im-prosa p { margin: 0 0 .9em; } .e5im-prosa ul { margin: 0 0 .9em; padding-left: 1.2em; }
.e5im-recolhe { position: relative; max-height: 9.6em; overflow: hidden; }
.e5im-recolhe::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3.5em; background: linear-gradient(rgb(255 255 255 / 0), var(--bg)); }
.e5im-recolhe.aberto { max-height: none; } .e5im-recolhe.aberto::after { display: none; }
.e5im-vermais { justify-self: start; background: none; border: 0; padding: 0; color: var(--ink); font-weight: 600; font-size: 13.5px; display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.e5im-vermais .e5im-ic { transition: transform .2s; color: var(--ink); }
.e5im-vermais[aria-expanded="true"] .e5im-ic { transform: rotate(180deg); }
.e5im-checks { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.e5im-checks li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; font-size: 14px; }
.e5im-checks .e5im-ic { margin-top: 3px; }
@media (max-width: 520px) { .e5im-checks { grid-template-columns: 1fr; } }
.e5im-unidades { display: flex; flex-wrap: wrap; gap: 8px; }
.e5im-unidades span { border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; font-size: 13px; background: var(--surface); }
.e5im-local { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 16px; background: var(--surface); border-radius: var(--radius); }
.e5im-local > span { display: inline-flex; gap: 8px; align-items: center; }
.e5im-local a { color: var(--gold-ink); font-weight: 600; font-size: 13.5px; display: inline-flex; gap: 6px; align-items: center; }
.e5im-local a:hover { color: var(--gold-ink); text-decoration: underline; }

.e5im-lateral { position: sticky; top: 110px; display: grid; gap: 14px; }
.admin-bar .e5im-lateral { top: 142px; }
.e5im-caixa { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.e5im-caixa h2 { font-size: 17px; font-weight: 600; margin-bottom: 14px; }
.e5im-abas { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 999px; padding: 3px; margin-bottom: 14px; }
.e5im-abas button { border: 0; background: none; border-radius: 999px; padding: 7px 8px; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; }
.e5im-abas button[aria-selected="true"] { background: var(--gold); color: #1a1508; }
.e5im-form { display: grid; gap: 10px; }
.e5im-form input, .e5im-form textarea, .e5im-form select { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 10px 12px; background: var(--bg); font-size: 14px; line-height: 1.4; }
.e5im-form textarea { min-height: 96px; resize: vertical; }
.e5im-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.e5im-vis { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.e5im-enviar { display: flex; justify-content: center; align-items: center; gap: 8px; background: var(--gold); color: #1a1508; border-radius: 9px; padding: 12px; font-weight: 600; font-size: 14px; }
.e5im a.e5im-enviar:hover, .e5im a.e5im-enviar:focus { filter: brightness(1.05); color: #1a1508; }
.e5im-enviar .e5im-ic { color: #1a1508; }
.e5im-nota { font-size: 11.5px; color: var(--muted); }
.e5im-corretor { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 14px; align-items: center; }
.e5im-corretor img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gold); }
.e5im-corretor b { display: block; font-size: 15px; }
.e5im-corretor span { display: block; font-size: 12.5px; color: var(--muted); }
.e5im-corretor .e5im-contato { grid-column: 1 / -1; display: grid; gap: 4px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; }
.e5im-corretor .e5im-contato div { display: flex; justify-content: space-between; gap: 8px; }
.e5im-corretor .e5im-contato span { display: inline; }
.e5im-corretor .e5im-contato b { display: inline; font-size: 13px; font-weight: 600; user-select: all; overflow-wrap: anywhere; text-align: right; }
.e5im-corretor .e5im-contato div:last-child { display: grid; gap: 2px; }
.e5im-corretor .e5im-contato div:last-child b { text-align: left; }

.e5im-outros { padding-block: 8px 72px; }
.e5im-outros h2 { font-size: 24px; font-weight: 600; text-align: center; margin-bottom: 22px; }
.e5im-mosaico { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.e5im-tile { position: relative; display: block; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; color: #fff; background: var(--surface); }
.e5im a.e5im-tile:hover { color: #fff; }
.e5im-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.e5im-tile:hover img { transform: scale(1.04); }
.e5im-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgb(0 0 0 / .72)); }
.e5im-tag { position: absolute; left: 14px; bottom: 50px; z-index: 1; background: var(--gold); color: #1a1508; font-size: 13px; font-weight: 700; padding: 6px 10px; border-radius: 4px; }
.e5im-nome { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 1; font-weight: 600; font-size: 15px; }

.e5im-barra-movel { display: none; }
@media (max-width: 960px) {
  .e5im-lateral { position: static; }
  .e5im-barra-movel { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--bg); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgb(0 0 0 / .08); }
  .e5im-barra-movel small { display: block; font-size: 11px; color: var(--muted); }
  .e5im-barra-movel strong { font-size: 16px; }
  .e5im-barra-movel .e5im-enviar { padding: 10px 16px; }
  .e5im-outros { padding-bottom: 110px; }
}

/* Galeria em tela cheia */
dialog.e5im-galeria { width: min(1200px, 100vw); max-width: 100vw; height: min(860px, 100vh); max-height: 100vh; padding: 0; border: 0; border-radius: 14px; background: #0b0b0a; color: #f3f2ed; }
dialog.e5im-galeria::backdrop { background: rgb(0 0 0 / .82); }
.e5im-gal { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
.e5im-gal-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; }
.e5im-gal-abas { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; font-size: 14px; font-weight: 600; }
.e5im-gal-abas button { white-space: nowrap; border: 1px solid rgb(255 255 255 / .2); background: none; color: #f3f2ed; border-radius: 999px; padding: 5px 12px; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.e5im-gal-abas button[aria-pressed="true"] { background: #ccb076; color: #1a1508; border-color: #ccb076; font-weight: 600; }
.e5im-gal-fechar { border: 0; padding: 0; background: rgb(255 255 255 / .1); color: #fff; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; flex: none; }
.e5im-gal-palco { position: relative; display: grid; place-items: center; min-height: 0; padding-inline: 56px; }
.e5im-gal-palco img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 6px; }
.e5im-gseta { position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; padding: 0; border-radius: 50%; border: 0; background: rgb(255 255 255 / .12); color: #fff; display: grid; place-items: center; cursor: pointer; }
.e5im-gal-palco .e5im-ant { left: 8px; } .e5im-gal-palco .e5im-prox { right: 8px; }
.e5im-gal-pe { padding: 10px 14px 14px; display: grid; gap: 8px; }
.e5im-gal-pe p { font-size: 12.5px; color: #a9a7a0; font-variant-numeric: tabular-nums; }
.e5im-gal-minis { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
.e5im-gal-minis button { flex: 0 0 76px; height: 54px; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: #222; cursor: pointer; opacity: .6; }
.e5im-gal-minis button[aria-current="true"] { border-color: #ccb076; opacity: 1; }
.e5im-gal-minis img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { dialog.e5im-galeria { border-radius: 0; height: 100vh; } .e5im-gal-palco { padding-inline: 8px; } .e5im-gseta { display: none; } }
