/* =========================================================================
   Job Imóveis — Design System
   -------------------------------------------------------------------------
   Sem framework, sem biblioteca externa, sem fonte carregada de fora —
   só CSS próprio. Objetivo: percepção de imobiliária premium e atual,
   nunca de "site WordPress padrão". Fotografia grande, tipografia com
   caráter, muito espaço em branco, poucos elementos por tela, hierarquia
   visual explícita, microinterações discretas.
   ========================================================================= */

/* ---------- 1. Tokens ---------- */

:root {
	/* Cor — base fria levemente azulada, nunca branco puro/estéril */
	--cor-fundo: #f7f8fa;
	--cor-superficie: #ffffff;
	--cor-texto: #141a2b;
	--cor-texto-suave: #5a6377;
	/* tom mais claro da escala; mantido em 4.5:1 contra --cor-fundo,
	   o mínimo AA para texto pequeno. Não clarear. */
	--cor-texto-sutil: #6a7286;
	--cor-borda: #e2e6ee;
	--cor-borda-forte: #cdd4e0;

	/* Marca — azul-marinho + azul vivo, extraídos do logo real da Job
	   Imóveis (joblogo.jpg): #182454 domina 63% dos pixels coloridos e
	   #0c90d8 é o azul de apoio. A paleta verde/dourada anterior não
	   tinha relação com a identidade da imobiliária. */
	--cor-marca: #182454;
	--cor-marca-escura: #0f1838;
	--cor-marca-clara: #2c3a6e;
	--cor-marca-tinta: #eef2f9; /* azul muito claro, para seções alternadas */
	--cor-destaque: #0c90d8; /* azul do logo — uso decorativo: filetes, ícones, foco; nunca como fundo de texto pequeno (branco sobre ele dá 3.5:1) */
	--cor-destaque-clara: #5bb8ea; /* azul claro — texto sobre o marinho da marca (6.7:1) */
	/* azul escurecido — o único usado como TEXTO sobre fundo claro, e
	   como fundo quando houver texto branco pequeno. 5.3:1. */
	--cor-destaque-texto: #0a6e9e;
	--cor-whatsapp: #22a656;
	--cor-whatsapp-escuro: #178a45;

	/* Tipografia — pilha de sistema, sem requisições externas.
	   Sans predominante: a serifa em todos os títulos dava ar de revista,
	   não de portal imobiliário. A serifa continua disponível em
	   --fonte-serifa para acentos pontuais (um título de seção, uma
	   citação), nunca como voz principal. */
	--fonte-titulo: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto, 'Helvetica Neue', Arial, sans-serif;
	--fonte-texto: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto, Helvetica, Arial, sans-serif;
	--fonte-serifa: 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, 'Times New Roman', serif;

	/* Espaçamento — escala de 4px */
	--esp-1: 4px;
	--esp-2: 8px;
	--esp-3: 12px;
	--esp-4: 16px;
	--esp-5: 24px;
	--esp-6: 32px;
	--esp-7: 48px;
	--esp-8: 64px;
	--esp-9: 96px;
	--esp-10: 128px;

	--raio-s: 4px;
	--raio: 10px;
	--raio-l: 18px;
	--raio-pilula: 999px;

	--sombra-s: 0 2px 10px rgba(20, 26, 43, 0.06);
	--sombra: 0 12px 32px -8px rgba(20, 26, 43, 0.14);
	--sombra-l: 0 24px 64px -16px rgba(20, 26, 43, 0.22);

	--container: 1240px;
	--container-estreito: 760px;

	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--rapido: 200ms;
	--medio: 420ms;
}

/* ---------- 2. Reset mínimo ---------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--fonte-texto);
	color: var(--cor-texto);
	background: var(--cor-fundo);
	line-height: 1.6;
	font-size: 16.5px;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
ul { margin: 0; padding: 0; list-style: none; }

::selection { background: var(--cor-destaque-clara); color: var(--cor-marca-escura); }

/* ---------- 3. Tipografia ---------- */

/* Hierarquia de produto digital: peso resolve o destaque, não corpo de
   fonte gigante. Os tamanhos caíram ~30% e ganharam peso 700. */
h1, h2, h3, h4 {
	font-family: var(--fonte-titulo);
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: -0.02em;
	margin: 0 0 0.4em;
	color: var(--cor-marca-escura);
}

h1 { font-size: clamp(1.95rem, 3.4vw, 2.9rem); line-height: 1.1; }
h2 { font-size: clamp(1.5rem, 2.4vw, 2.05rem); }
h3 { font-size: 1.05rem; letter-spacing: -0.01em; }
h4 { font-size: 0.95rem; }

p { margin: 0 0 1em; }

.jit-antetitulo {
	display: inline-flex;
	align-items: center;
	gap: var(--esp-2);
	font-family: var(--fonte-texto);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cor-destaque-texto);
	margin-bottom: var(--esp-3);
}

.jit-antetitulo::before {
	content: '';
	width: 22px;
	height: 1px;
	background: var(--cor-destaque);
}

.jit-lead {
	color: var(--cor-texto-suave);
	font-size: 1.02rem;
	line-height: 1.6;
	max-width: 56ch;
}

/* ---------- 4. Layout base ---------- */

.jit-container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.jit-container--estreito { max-width: var(--container-estreito); }

/* Respiro menor antes do primeiro bloco de imóveis: o produto precisa
   aparecer perto da primeira dobra, não depois de duas telas de espaço. */
.jit-secao { padding-block: var(--esp-7); } /* só vertical: combinada com .jit-container não pode zerar as margens laterais */
.jit-secao--imoveis { padding-top: var(--esp-5); }
.jit-secao--tinta { background: var(--cor-marca-tinta); }
/* Era uma faixa marinho sólida de tela cheia. O marinho agora é
   identidade e contraste — fica reservado ao CTA de captação, o único
   bloco escuro da Home. Aqui, fundo claro e tipografia marinho. */
.jit-secao--marca { background: var(--cor-marca-tinta); color: var(--cor-texto); }
.jit-secao--marca h2, .jit-secao--marca h3 { color: var(--cor-marca-escura); }
.jit-secao--marca .jit-antetitulo { color: var(--cor-destaque-texto); }
.jit-secao--marca .jit-antetitulo::before { background: var(--cor-destaque); }
.jit-secao--marca .jit-motivo p { color: var(--cor-texto-suave); }
.jit-secao--marca .jit-motivo__icone {
	background: #fff; border: 1px solid var(--cor-borda);
	color: var(--cor-marca); box-shadow: var(--sombra-s);
}

.jit-secao__cabecalho {
	max-width: 640px;
	margin: 0 0 var(--esp-5);
}

.jit-secao__cabecalho--centro { margin-left: auto; margin-right: auto; text-align: center; }

/* Cabeçalho em linha: título à esquerda, atalho à direita. Ocupa menos
   altura vertical que o bloco centralizado — os cards sobem na página. */
.jit-secao__cabecalho--linha {
	max-width: none; display: flex; align-items: flex-end;
	justify-content: space-between; gap: var(--esp-4); flex-wrap: wrap;
}
.jit-secao__cabecalho--linha h2 { margin-bottom: 0; }

.jit-link-secao {
	display: inline-flex; align-items: center; gap: var(--esp-2);
	font-size: 0.9rem; font-weight: 600; color: var(--cor-destaque-texto);
	white-space: nowrap; padding-bottom: 2px;
	border-bottom: 1px solid transparent;
	transition: border-color var(--rapido) var(--ease), gap var(--rapido) var(--ease);
}
.jit-link-secao:hover { border-color: var(--cor-destaque); gap: var(--esp-3); }
.jit-link-secao svg { width: 16px; height: 16px; }

@media (min-width: 860px) {
	.jit-secao { padding: var(--esp-8) 0; }
	.jit-secao--imoveis { padding-top: var(--esp-6); }
}

/* ---------- 5. Botões ---------- */

.jit-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--esp-2);
	padding: 14px 26px;
	border-radius: var(--raio-pilula);
	border: 1px solid var(--cor-marca);
	background: var(--cor-marca);
	color: #fff;
	font-size: 0.95rem;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--rapido) var(--ease), border-color var(--rapido) var(--ease),
		transform var(--rapido) var(--ease), box-shadow var(--rapido) var(--ease);
}

.jit-botao:hover { background: var(--cor-marca-clara); border-color: var(--cor-marca-clara); transform: translateY(-2px); box-shadow: var(--sombra); }

.jit-botao--fantasma { background: transparent; color: var(--cor-marca); }
.jit-botao--fantasma:hover { background: var(--cor-marca); color: #fff; }

.jit-botao--claro { background: #fff; color: var(--cor-marca-escura); border-color: #fff; }
.jit-botao--claro:hover { background: var(--cor-destaque-texto); border-color: var(--cor-destaque-texto); color: #fff; }

.jit-botao--whatsapp { background: var(--cor-whatsapp); border-color: var(--cor-whatsapp); }
.jit-botao--whatsapp:hover { background: var(--cor-whatsapp-escuro); border-color: var(--cor-whatsapp-escuro); }

.jit-botao--grande { padding: 17px 32px; font-size: 1.02rem; }
.jit-botao--bloco { width: 100%; }

.jit-botao svg { width: 18px; height: 18px; flex: none; }

/* ---------- 6. Cabeçalho ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 80;
	background: rgba(247, 248, 250, 0.9);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--rapido) var(--ease), background var(--rapido) var(--ease);
}

.site-header.jit-scrolled { border-color: var(--cor-borda); background: rgba(247, 248, 250, 0.98); }

/* Altura de cabeçalho enxuta: 12px de respiro + logo de 32/40px resulta
   em ~58px no celular e ~66px no desktop. O gap cresce com a tela para
   separar logo, menu e CTA sem empurrar ninguém para a linha de baixo. */
.jit-header-inner { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 36px); padding: 12px 0; }

/* O logo é um bloco, não um <a>: the_custom_logo() já traz o próprio link
   (ver header.php). Antes o link do WordPress ficava aninhado dentro de
   outro <a>, o navegador expulsava o logo de dentro de .jit-logo e o
   max-height nunca se aplicava — a imagem renderizava em tamanho natural
   (409x227px), estourando a altura do cabeçalho. */
.jit-logo { display: flex; align-items: center; flex: 0 0 auto; min-width: 0; }
.jit-logo a { display: block; line-height: 0; }
.jit-logo img, .jit-logo .custom-logo {
	display: block; width: auto; height: auto;
	max-height: 32px; max-width: 148px; object-fit: contain;
}

/* Fallback textual (sem logo enviado): escala com a tela e pode quebrar
   em duas linhas no celular sem estourar o cabeçalho. */
.jit-logo__texto {
	font-family: var(--fonte-titulo); font-size: clamp(1.05rem, 4.2vw, 1.35rem);
	line-height: 1.15; color: var(--cor-marca-escura); letter-spacing: -0.01em;
}

/* margin-left:auto empurra menu + CTA para a direita e mantém o logo
   ancorado à esquerda, sem depender de space-between (que espalhava os
   três blocos e forçava o menu a quebrar). */
.jit-nav { display: none; margin-left: auto; }
.jit-nav ul { display: flex; align-items: center; gap: 20px; flex-wrap: nowrap; list-style: none; margin: 0; padding: 0; }
.jit-nav li { list-style: none; }
/* nowrap: "Todos os imóveis" e "Anuncie seu imóvel" quebravam em 2-3
   linhas e empurravam a altura do cabeçalho. */
.jit-nav a { position: relative; white-space: nowrap; font-size: 0.88rem; color: var(--cor-texto); padding: 4px 0; transition: color var(--rapido) var(--ease); }
.jit-nav a::after {
	content: '';
	position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px;
	background: var(--cor-destaque);
	transition: right var(--medio) var(--ease);
}
.jit-nav a:hover { color: var(--cor-marca-escura); }
.jit-nav a:hover::after { right: 0; }

/* CTA sempre em uma linha e sem encolher: é ele que definia a quebra do
   menu quando o texto envolvia. */
.jit-header-cta { display: none; flex: 0 0 auto; white-space: nowrap; padding: 10px 18px; font-size: 0.84rem; }

.jit-menu-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border: 1px solid var(--cor-borda-forte); border-radius: var(--raio);
	background: transparent; cursor: pointer;
}
.jit-menu-toggle span, .jit-menu-toggle span::before, .jit-menu-toggle span::after {
	content: ''; display: block; width: 18px; height: 1.5px; background: var(--cor-texto); position: relative; transition: transform var(--rapido) var(--ease), opacity var(--rapido) var(--ease);
}
.jit-menu-toggle span::before { position: absolute; top: -6px; }
.jit-menu-toggle span::after { position: absolute; top: 6px; }

.jit-nav-mobile { display: none; flex-direction: column; gap: 2px; border-top: 1px solid var(--cor-borda); padding: var(--esp-3) 0 var(--esp-5); }
.jit-nav-mobile.is-aberto { display: flex; }
.jit-nav-mobile a { padding: 12px 4px; font-size: 1.05rem; border-bottom: 1px solid var(--cor-borda); }
.jit-nav-mobile a:last-child { border-bottom: none; color: var(--cor-whatsapp-escuro); font-weight: 600; }

/* BUG (22/09): .jit-nav e .jit-header-cta ficavam com display:none em
   qualquer largura de tela — menu principal e CTA de WhatsApp do cabeçalho
   nunca apareciam, nem no desktop. .jit-menu-toggle (hambúrguer) também
   nunca era escondido no desktop. Corrigido em 25/09 durante a revisão de
   homologação: acima de 860px mostra nav+CTA e esconde o hambúrguer/menu
   mobile; abaixo, mantém o comportamento mobile original. */
@media (min-width: 860px) {
	.jit-logo img, .jit-logo .custom-logo { max-height: 38px; max-width: 176px; }
	.jit-nav { display: block; }
	.jit-header-cta { display: inline-flex; }
	.jit-menu-toggle { display: none; }
	.jit-nav-mobile { display: none !important; }
}

/* Acima de 1100px sobra espaço: logo, menu e CTA ganham respiro sem
   arriscar quebra de linha. */
@media (min-width: 1100px) {
	.jit-header-inner { padding: 14px 0; }
	.jit-logo img, .jit-logo .custom-logo { max-height: 44px; max-width: 210px; }
	.jit-nav ul { gap: 28px; }
	.jit-nav a { font-size: 0.94rem; }
	.jit-header-cta { padding: 12px 22px; font-size: 0.88rem; }
}

/* ---------- 7. Rodapé ---------- */

.site-footer { background: var(--cor-marca-escura); color: #ccd4e6; padding: var(--esp-9) 0 var(--esp-5); margin-top: var(--esp-9); }
/* Três colunas fixas estouravam a tela em 320px (o bloco "Contato"
   passava 49px da borda e criava rolagem horizontal no site inteiro).
   Mobile em coluna única; as três colunas voltam a partir de 760px. */
.jit-footer-grid { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; }

@media (min-width: 760px) {
	.jit-footer-grid { gap: var(--esp-7); grid-template-columns: 1.3fr 1fr 1fr; }
}
.jit-footer-grid h4 { font-family: var(--fonte-texto); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; color: #9aa6c2; margin-bottom: var(--esp-4); font-weight: 600; }
.jit-footer-marca { font-family: var(--fonte-titulo); font-size: 1.6rem; color: #fff; margin-bottom: var(--esp-3); }
.jit-footer-grid a { display: inline-block; color: #ccd4e6; padding: 4px 0; transition: color var(--rapido) var(--ease); }
.jit-footer-grid a:hover { color: #fff; }
.jit-footer-base { margin-top: var(--esp-7); padding-top: var(--esp-5); border-top: 1px solid rgba(255, 255, 255, 0.08); font-size: 0.82rem; color: #8590ab; }

/* ---------- 8. WhatsApp flutuante ---------- */

.jit-whatsapp-flutuante {
	position: fixed; right: 20px; bottom: 20px; z-index: 90;
	width: 58px; height: 58px; border-radius: 50%;
	background: var(--cor-whatsapp);
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--sombra-l);
	transition: transform var(--rapido) var(--ease);
}
.jit-whatsapp-flutuante:hover { transform: scale(1.08); }
.jit-whatsapp-flutuante svg { width: 30px; height: 30px; fill: #fff; }

/* ---------- 9. Hero (home) ---------- */

/* ---------- 9. Hero: fotografia como protagonista ----------
   Antes: retângulo azul de altura travada por aspect-ratio, texto
   absoluto ancorado embaixo, busca flutuando como cartão solto. Agora a
   FOTO do imóvel ocupa a faixa inteira, o marinho entra só como véu de
   legibilidade do lado do texto, a altura é contida (não toma a tela) e
   a busca é uma faixa branca colada na base do hero. */

.jit-hero { position: relative; }

.jit-hero__banda {
	position: relative;
	display: flex;
	align-items: center;
	/* Altura medida na Home real: com 420px no desktop o primeiro card
	   aparece a 752px — visível já na primeira dobra em telas de 900px. */
	min-height: clamp(340px, 34vw, 420px);
	overflow: hidden;
	background: var(--cor-marca);
}

.jit-hero__foto { position: absolute; inset: 0; }
.jit-hero__foto img { width: 100%; height: 100%; object-fit: cover; }

/* Véu só onde o texto apoia: à esquerda forte, dissolvendo à direita
   para a fotografia continuar visível. */
.jit-hero__veu {
	position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(15, 24, 56, 0.94) 0%, rgba(15, 24, 56, 0.78) 38%, rgba(15, 24, 56, 0.28) 68%, rgba(15, 24, 56, 0.10) 100%),
		linear-gradient(0deg, rgba(15, 24, 56, 0.35) 0%, rgba(15, 24, 56, 0) 55%);
}

.jit-hero__interno { position: relative; z-index: 2; padding-top: var(--esp-8); padding-bottom: var(--esp-8); }
.jit-hero__texto { max-width: 34rem; color: #fff; }
.jit-hero__texto h1 { color: #fff; margin-bottom: var(--esp-4); }
.jit-hero__texto .jit-lead { color: rgba(255, 255, 255, 0.86); font-size: 1rem; margin-bottom: 0; max-width: 44ch; }

/* Indicação discreta de acervo — informação, não vitrine de estatística. */
.jit-hero__selo {
	display: inline-flex; align-items: center; gap: var(--esp-2);
	font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em;
	color: #fff;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.24);
	padding: 6px 14px; border-radius: var(--raio-pilula);
	margin-bottom: var(--esp-4);
	backdrop-filter: blur(4px);
}
.jit-hero__selo strong { font-weight: 700; }

/* Busca — faixa branca encostada na base do hero, não um cartão solto */

.jit-busca {
	position: relative;
	z-index: 10;
	margin: 0;
	background: var(--cor-superficie);
	border-bottom: 1px solid var(--cor-borda);
	box-shadow: var(--sombra-s);
	padding: var(--esp-4) 20px;
	display: grid;
	gap: var(--esp-3);
}

/* min-width:0 — sem isso o tamanho mínimo intrínseco do <select> (a
   opção mais longa, ex.: "Jardim Nova Orlândia, Orlândia") estoura a
   coluna da grade e corta o campo na borda da tela. */
.jit-busca__campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.jit-busca__campo label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--cor-texto-sutil); }

.jit-busca select, .jit-busca input,
.jit-filtros select, .jit-filtros input {
	appearance: none;
	width: 100%;
	min-width: 0;
	text-overflow: ellipsis;
	padding: 13px 14px;
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio);
	background: var(--cor-fundo);
	font-size: 0.96rem;
	font-family: inherit;
	color: var(--cor-texto);
	transition: border-color var(--rapido) var(--ease), box-shadow var(--rapido) var(--ease);
}

.jit-busca select:focus, .jit-busca input:focus,
.jit-filtros select:focus, .jit-filtros input:focus {
	outline: none;
	border-color: var(--cor-destaque);
	box-shadow: 0 0 0 3px rgba(12, 144, 216, 0.16);
}

/* Celular: a busca em coluna única ocupava 433px e jogava o primeiro
   imóvel para a terceira tela. Em duas colunas são 250px. */
@media (max-width: 699px) {
	.jit-busca { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jit-busca .jit-busca__acao { grid-column: 1 / -1; }
	.jit-busca .jit-busca__campo label { font-size: 0.68rem; }
	.jit-busca select, .jit-busca input { padding: 11px 12px; font-size: 0.92rem; }
}

.jit-busca__acao, .jit-filtros__acoes { display: flex; }
.jit-busca__acao .jit-botao, .jit-filtros__acoes .jit-botao { width: 100%; }

/* 3 colunas já a partir de 700px: com 2 a busca virava três fileiras
   (262px de altura medidos em 900px) e empurrava os imóveis para fora da
   dobra. Em 3 colunas são duas fileiras. */
@media (min-width: 700px) {
	.jit-busca { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.jit-busca__acao { align-self: end; }
}

@media (min-width: 980px) {
	.jit-busca {
		grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
		align-items: end;
		gap: var(--esp-4);
		padding: var(--esp-5) max(20px, calc((100vw - var(--container)) / 2 + 20px));
	}
	.jit-hero__interno { padding-top: var(--esp-8); padding-bottom: var(--esp-8); }
	.jit-hero__texto { max-width: 38rem; }
	.jit-hero__texto h1 { max-width: 26ch; }
}

/* ---------- 10. Grid de imóveis / card premium ---------- */

.jit-imoveis-grid { display: grid; gap: var(--esp-5); grid-template-columns: 1fr; }

.jit-card-imovel {
	display: flex; flex-direction: column;
	background: var(--cor-superficie);
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio);
	overflow: hidden;
	box-shadow: none;
	transition: box-shadow var(--medio) var(--ease), transform var(--medio) var(--ease), border-color var(--medio) var(--ease);
}

.jit-card-imovel:hover { box-shadow: var(--sombra); border-color: var(--cor-borda-forte); transform: translateY(-3px); }

.jit-card-imovel__foto { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cor-marca-tinta); }
.jit-card-imovel__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--medio) var(--ease); }
.jit-card-imovel:hover .jit-card-imovel__foto img { transform: scale(1.06); }

.jit-card-imovel__badge {
	position: absolute; top: var(--esp-3); left: var(--esp-3);
	background: var(--cor-marca); color: #fff;
	font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
	padding: 5px 12px; border-radius: var(--raio-s);
}

/* Corpo do card: preço primeiro e forte (é o que o comprador procura),
   título em seguida, bairro discreto. Hierarquia de produto, não de
   artigo. */
.jit-card-imovel__corpo { padding: var(--esp-4) var(--esp-5) var(--esp-5); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.jit-card-imovel__corpo h3 { font-size: 1rem; font-weight: 600; margin-bottom: 0; color: var(--cor-texto); }
.jit-card-imovel__corpo h3 a:hover { color: var(--cor-destaque-texto); }

.jit-card-imovel__local { color: var(--cor-texto-sutil); font-size: 0.85rem; display: flex; align-items: center; gap: 5px; }
.jit-card-imovel__local svg { width: 14px; height: 14px; flex: none; opacity: 0.7; }

.jit-card-imovel__preco {
	font-family: var(--fonte-titulo); font-size: 1.32rem; font-weight: 700;
	letter-spacing: -0.02em; color: var(--cor-marca); margin: 0;
	font-variant-numeric: tabular-nums;
}

.jit-card-imovel__caracteristicas {
	display: flex; flex-wrap: wrap; gap: var(--esp-4);
	margin-top: auto; padding-top: var(--esp-3); border-top: 1px solid var(--cor-borda);
	font-size: 0.84rem; color: var(--cor-texto-suave);
}
.jit-card-imovel__caracteristicas span { display: inline-flex; align-items: center; gap: 5px; }
.jit-card-imovel__caracteristicas svg { width: 15px; height: 15px; opacity: 0.6; }

/* ---------- 11. "Por que a Job" ---------- */

.jit-motivos { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; }

.jit-motivo { display: flex; flex-direction: column; gap: var(--esp-3); }
.jit-motivo__icone {
	width: 52px; height: 52px; border-radius: var(--raio);
	background: var(--cor-superficie); border: 1px solid var(--cor-borda);
	display: flex; align-items: center; justify-content: center;
}
.jit-secao--tinta .jit-motivo__icone { background: var(--cor-superficie); box-shadow: var(--sombra-s); }
.jit-motivo__icone svg { width: 26px; height: 26px; stroke: var(--cor-destaque); }
.jit-motivo h3 { font-size: 1.15rem; }
.jit-motivo p { color: var(--cor-texto-suave); margin: 0; font-size: 0.96rem; }
/* (removida: a seção deixou de ter fundo escuro — o texto branco
   ficava invisível sobre o fundo claro. A cor correta é definida junto
   das demais regras de .jit-secao--marca, acima.) */

@media (min-width: 760px) {
	.jit-motivos { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- 12. Jornadas (comprar/alugar) ---------- */

.jit-jornadas { display: grid; gap: var(--esp-5); grid-template-columns: 1fr; }

/* Antes: dois retângulos 4/3 de marinho sólido, que competiam com os
   cards de imóvel e empurravam o conteúdo para baixo. Agora são duas
   faixas horizontais compactas, claras, com o marinho só no traço e na
   seta. */
.jit-jornada {
	position: relative; border-radius: var(--raio); overflow: hidden;
	display: flex; align-items: center;
	background: var(--cor-superficie);
	border: 1px solid var(--cor-borda);
	border-left: 3px solid var(--cor-marca);
	transition: transform var(--medio) var(--ease), box-shadow var(--medio) var(--ease), border-color var(--medio) var(--ease);
}
.jit-jornada:hover { transform: translateY(-2px); box-shadow: var(--sombra); }
.jit-jornada--alugar { border-left-color: var(--cor-destaque); }
.jit-jornada__conteudo {
	position: relative; z-index: 2; padding: var(--esp-5) var(--esp-6);
	color: var(--cor-texto); display: flex; flex-direction: column; width: 100%;
}
.jit-jornada__conteudo .jit-antetitulo { color: var(--cor-destaque-texto); }
.jit-jornada__conteudo .jit-antetitulo::before { background: var(--cor-destaque); }
.jit-jornada h3 { color: var(--cor-marca-escura); font-size: 1.25rem; margin-bottom: var(--esp-1); }
.jit-jornada__conteudo p { color: var(--cor-texto-suave); font-size: 0.95rem; }
.jit-jornada__seta {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--cor-borda-forte);
	margin-top: var(--esp-4); transition: background var(--rapido) var(--ease), transform var(--rapido) var(--ease), border-color var(--rapido) var(--ease);
}
.jit-jornada:hover .jit-jornada__seta { background: var(--cor-marca); border-color: var(--cor-marca); transform: translateX(4px); }
.jit-jornada:hover .jit-jornada__seta svg { stroke: #fff; }
.jit-jornada__seta svg { width: 17px; height: 17px; stroke: var(--cor-marca); }

@media (min-width: 760px) {
	.jit-jornadas { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- 13. CTA "quer anunciar" ---------- */

/* Único bloco escuro da Home — o marinho concentrado aqui vira contraste
   e chamada de ação, em vez de fundo dominante em várias seções. */
.jit-secao--captacao { background: var(--cor-marca); }
.jit-secao--captacao h2 { color: #fff; }
.jit-secao--captacao .jit-lead { color: rgba(255, 255, 255, 0.84); }
.jit-secao--captacao .jit-antetitulo { color: var(--cor-destaque-clara); }
.jit-secao--captacao .jit-antetitulo::before { background: var(--cor-destaque-clara); }

.jit-cta-anuncio { text-align: center; max-width: 620px; margin: 0 auto; }
.jit-cta-anuncio .jit-antetitulo { justify-content: center; }
.jit-cta-anuncio .jit-lead { margin: 0 auto var(--esp-5); }

/* ---------- 14. Listagem ---------- */

.imoveis-listagem { padding-top: var(--esp-6); }
.jit-listagem-topo { display: flex; flex-direction: column; gap: var(--esp-2); margin-bottom: var(--esp-6); }

.jit-filtros {
	background: var(--cor-superficie);
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio-l);
	box-shadow: var(--sombra-s);
	padding: var(--esp-4);
	display: grid; gap: var(--esp-3); grid-template-columns: 1fr;
	margin-bottom: var(--esp-7);
}
.jit-filtros__campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.jit-filtros__campo label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--cor-texto-sutil); }

.jit-resultado-contagem { color: var(--cor-texto-suave); font-size: 0.95rem; }

.jit-vazio { text-align: center; padding: var(--esp-9) var(--esp-4); color: var(--cor-texto-suave); }

.jit-paginacao ul { display: flex; gap: var(--esp-2); justify-content: center; margin-top: var(--esp-7); flex-wrap: wrap; }
.jit-paginacao a, .jit-paginacao span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 12px;
	border-radius: var(--raio); border: 1px solid var(--cor-borda);
	font-size: 0.9rem; transition: background var(--rapido) var(--ease), color var(--rapido) var(--ease);
}
.jit-paginacao a:hover { background: var(--cor-marca); color: #fff; border-color: var(--cor-marca); }
.jit-paginacao .current { background: var(--cor-marca-escura); color: #fff; border-color: var(--cor-marca-escura); }

@media (min-width: 700px) { .jit-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)); } .jit-imoveis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* São 6 campos + botão = 7 itens. Em 5 colunas + auto sobrava o botão
   sozinho numa segunda fileira e o campo "Quartos" ficava espremido em
   123px. Em 4 colunas o bloco fica equilibrado em duas fileiras; acima de
   1200px tudo cabe numa linha só. */
@media (min-width: 860px) {
	.jit-filtros { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
	.jit-filtros__acoes { grid-column: span 2; }
}

@media (min-width: 1200px) {
	.jit-filtros { grid-template-columns: repeat(6, minmax(0, 1fr)) auto; }
	.jit-filtros__acoes { grid-column: auto; }
}
@media (min-width: 1024px) { .jit-imoveis-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Vídeo do imóvel: o iframe do YouTube vem com largura/altura fixas no
   HTML do oEmbed e estourava a coluna em telas pequenas. */
.jit-video { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: var(--esp-5) 0; border-radius: var(--raio); overflow: hidden; background: var(--cor-marca-tinta); }
.jit-video iframe, .jit-video embed, .jit-video object, .jit-video video {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}

/* Link de atalho para quem navega por teclado/leitor de tela: invisível
   até receber foco. */
.jit-pular {
	position: absolute; left: -9999px; top: 0; z-index: 200;
	background: var(--cor-marca); color: #fff;
	padding: 12px 20px; border-radius: 0 0 var(--raio) 0; font-weight: 600;
}
.jit-pular:focus { left: 0; }

/* ---------- 14.1 Foco de teclado ----------
   Antes, só os campos de busca tinham estilo de foco: quem navega por
   Tab perdia a posição em links, botões, cards, miniaturas e paginação.
   :focus-visible não aparece em clique de mouse. */

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--cor-destaque);
	outline-offset: 3px;
	border-radius: var(--raio-s);
}

.jit-botao:focus-visible { outline-offset: 4px; }

/* ---------- 15. Página individual do imóvel ---------- */

.jit-imovel-single { padding: var(--esp-6) 0 var(--esp-9); }

.jit-trilha { font-size: 0.82rem; color: var(--cor-texto-sutil); margin-bottom: var(--esp-4); }
.jit-trilha a:hover { color: var(--cor-marca-escura); }

.jit-imovel-header { display: flex; flex-direction: column; gap: var(--esp-2); margin-bottom: var(--esp-5); }
.jit-imovel-codigo { font-size: 0.78rem; font-weight: 600; color: var(--cor-texto-sutil); letter-spacing: 0.08em; text-transform: uppercase; }
.jit-imovel-header h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
.jit-imovel-header .jit-card-imovel__local { font-size: 1rem; }

/* Galeria */

.jit-galeria { margin-bottom: var(--esp-7); }
.jit-galeria__principal {
	aspect-ratio: 16 / 10; border-radius: var(--raio-l); overflow: hidden; background: var(--cor-marca-tinta);
	box-shadow: var(--sombra);
}
.jit-galeria__principal img { width: 100%; height: 100%; object-fit: cover; transition: opacity var(--rapido) var(--ease); }

.jit-galeria__miniaturas {
	display: flex; gap: var(--esp-2); margin-top: var(--esp-3);
	overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px;
	-webkit-overflow-scrolling: touch;
}
.jit-galeria__miniaturas::-webkit-scrollbar { height: 5px; }
.jit-galeria__miniaturas::-webkit-scrollbar-thumb { background: var(--cor-borda-forte); border-radius: var(--raio-pilula); }

.jit-galeria__mini {
	flex: none; padding: 0; border: 2px solid transparent; background: none;
	border-radius: var(--raio); overflow: hidden; cursor: pointer;
	scroll-snap-align: start; opacity: 0.6; line-height: 0;
	transition: opacity var(--rapido) var(--ease), border-color var(--rapido) var(--ease);
}
.jit-galeria__mini img { display: block; width: 96px; height: 72px; object-fit: cover; }
.jit-galeria__mini:hover { opacity: 0.9; }
.jit-galeria__mini.is-ativa { opacity: 1; border-color: var(--cor-destaque); }

/* Grid de conteúdo + sidebar */

.jit-imovel-grid { display: grid; gap: var(--esp-8); grid-template-columns: 1fr; }

.jit-imovel-caracteristicas {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--esp-4);
	margin: var(--esp-6) 0; padding: var(--esp-5); background: var(--cor-marca-tinta); border-radius: var(--raio-l);
}
.jit-imovel-caracteristicas dt { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--cor-texto-sutil); display: flex; align-items: center; gap: 6px; }
.jit-imovel-caracteristicas dt svg { width: 15px; height: 15px; opacity: 0.6; }
.jit-imovel-caracteristicas dd { margin: 3px 0 0; font-size: 1.15rem; font-family: var(--fonte-titulo); color: var(--cor-marca-escura); }

.jit-imovel-conteudo h2 { font-size: 1.4rem; margin-top: var(--esp-7); }
.jit-imovel-conteudo p { color: var(--cor-texto-suave); line-height: 1.75; }

.jit-imovel-sidebar {
	align-self: start; background: var(--cor-superficie); border: 1px solid var(--cor-borda);
	border-radius: var(--raio-l); padding: var(--esp-6); box-shadow: var(--sombra);
}
.jit-imovel-sidebar .jit-card-imovel__preco { font-size: 1.9rem; margin-bottom: 2px; }
.jit-imovel-sidebar .jit-card-imovel__local { margin-bottom: var(--esp-1); }
.jit-imovel-sidebar__divisor { height: 1px; background: var(--cor-borda); margin: var(--esp-4) 0; }
.jit-imovel-sidebar .jit-botao { width: 100%; }

@media (min-width: 860px) {
	.jit-imovel-grid { grid-template-columns: 1.7fr 1fr; }
	.jit-imovel-sidebar { position: sticky; top: 104px; }
	.jit-galeria__principal { aspect-ratio: 16 / 8.5; }
}

/* Imóveis relacionados */

.jit-relacionados { margin-top: var(--esp-9); }

/* ---------- 16. Animações de entrada (discretas) ---------- */

/* ---------- Formulários (contato, captação, interesse) ---------- */

.jit-form {
	background: var(--cor-superficie);
	border: 1px solid var(--cor-borda);
	border-radius: var(--raio);
	padding: var(--esp-5);
}

.jit-form__titulo { font-size: 1.25rem; margin-bottom: var(--esp-4); }

.jit-form__campos { display: grid; gap: var(--esp-4); grid-template-columns: 1fr; }
.jit-form__campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.jit-form__campo label {
	font-size: 0.78rem; font-weight: 600; text-transform: uppercase;
	letter-spacing: 0.06em; color: var(--cor-texto-sutil);
}
.jit-form__obrigatorio { color: var(--cor-destaque-texto); margin-left: 2px; }

.jit-form input, .jit-form select, .jit-form textarea {
	appearance: none; width: 100%; min-width: 0;
	padding: 13px 14px; border: 1px solid var(--cor-borda); border-radius: var(--raio);
	background: var(--cor-fundo); font-size: 0.96rem; font-family: inherit; color: var(--cor-texto);
	transition: border-color var(--rapido) var(--ease), box-shadow var(--rapido) var(--ease);
}
.jit-form textarea { resize: vertical; min-height: 110px; }
.jit-form input:focus, .jit-form select:focus, .jit-form textarea:focus {
	outline: none; border-color: var(--cor-destaque); box-shadow: 0 0 0 3px rgba(12, 144, 216, 0.16);
}
.jit-form input:invalid:not(:placeholder-shown) { border-color: #b3261e; }

/* Campo apontado pelo servidor como causa da falha de validação. */
.jit-form [aria-invalid="true"] {
	border-color: #b3261e;
	box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.12);
}

/* Campo-isca: fora da tela, invisível e fora da ordem de tabulação. */
.jit-form__isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.jit-form__acoes { display: flex; flex-direction: column; align-items: flex-start; gap: var(--esp-3); margin-top: var(--esp-2); }
.jit-form__nota { color: var(--cor-texto-sutil); font-size: 0.88rem; margin: 0; }

.jit-aviso { padding: 12px 16px; border-radius: var(--raio); font-size: 0.95rem; margin-bottom: var(--esp-4); }
.jit-aviso--sucesso { background: #e8f5ec; color: #14532d; border: 1px solid #b7e0c4; }
.jit-aviso--erro { background: #fdeceb; color: #7f1d1d; border: 1px solid #f3c2bf; }

.jit-secao--formulario { padding-top: 0; }

/* Página de contato */
.jit-contato-grid { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; }
.jit-contato-lista { display: flex; flex-direction: column; gap: var(--esp-5); }
.jit-contato-lista__rotulo {
	display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase;
	letter-spacing: 0.08em; color: var(--cor-texto-sutil); margin-bottom: 4px;
}
.jit-contato-lista a { color: var(--cor-marca); font-weight: 600; }
.jit-contato-lista a:hover { color: var(--cor-destaque-texto); }
.jit-contato-lista a + a { margin-left: var(--esp-3); }

.jit-filtros__limpar { align-self: center; font-size: 0.9rem; color: var(--cor-texto-sutil); white-space: nowrap; }
.jit-filtros__limpar:hover { color: var(--cor-destaque-texto); text-decoration: underline; }

.jit-footer-creci, .jit-footer-endereco, .jit-footer-horario { color: #9aa6c2; font-size: 0.9rem; }
.jit-footer-redes { display: inline-flex; gap: var(--esp-4); margin-top: var(--esp-2); }

@media (min-width: 700px) {
	.jit-form__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jit-form__campo--largo { grid-column: 1 / -1; }
	.jit-form__acoes { grid-column: 1 / -1; flex-direction: row; align-items: center; flex-wrap: wrap; gap: var(--esp-4); }
}

@media (min-width: 900px) {
	.jit-contato-grid { grid-template-columns: 0.8fr 1.2fr; gap: var(--esp-8); align-items: start; }
}

.jit-revelar { opacity: 0; transform: translateY(18px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
.jit-revelar.jit-revelado { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
	.jit-revelar { opacity: 1; transform: none; }
}

/* ---------- 17. Páginas de conteúdo padrão ---------- */

.jit-pagina__conteudo { color: var(--cor-texto-suave); line-height: 1.75; max-width: var(--container-estreito); }
.jit-pagina__conteudo h2 { color: var(--cor-marca-escura); margin-top: var(--esp-6); }

/* =========================================================================
   18. Acabamento premium (09/10/2026)
   Identidade própria da Job: silhueta de telhado como assinatura gráfica,
   números de confiança, faixas de página, passos, ficha mais vendedora.
   Tudo CSS/SVG inline — nenhuma biblioteca, nenhuma requisição nova.
   ========================================================================= */

/* ---- Assinatura gráfica: silhueta de telhado ---- */

.jit-hero__marca {
	position: absolute; right: clamp(16px, 5vw, 80px); bottom: 0;
	width: clamp(220px, 30vw, 420px); height: auto;
	color: #fff; opacity: 0.16; pointer-events: none; z-index: 1;
	display: none;
}
.jit-hero__interno { position: relative; z-index: 2; }

@media (min-width: 760px) {
	.jit-hero__marca { display: block; }
}

/* Transição de seção: o azul-marinho "sobe" em empena suave, como um telhado. */
.jit-secao--captacao { position: relative; }
.jit-secao--captacao::before {
	content: ''; position: absolute; left: 0; right: 0; top: -35px; height: 36px;
	background: var(--cor-marca);
	clip-path: polygon(0 100%, 50% 0, 100% 100%);
	pointer-events: none;
}
.jit-secao--captacao { padding-top: var(--esp-8); padding-bottom: var(--esp-8); }
.jit-cta-anuncio__acoes {
	display: flex; flex-wrap: wrap; gap: var(--esp-3); justify-content: center; margin-top: var(--esp-5);
}

/* ---- Faixa de página (Sobre Nós / Captação) ---- */

.jit-banda { position: relative; overflow: hidden; }
.jit-banda--marca {
	background: var(--cor-marca);
	color: #fff;
}
.jit-banda__interno { position: relative; z-index: 2; padding-top: var(--esp-8); padding-bottom: var(--esp-8); }
.jit-banda--marca h1 { color: #fff; max-width: 22ch; }
.jit-banda--marca .jit-lead { color: rgba(255, 255, 255, 0.86); }
.jit-banda--marca .jit-antetitulo { color: var(--cor-destaque-clara); }
.jit-banda--marca .jit-antetitulo::before { background: var(--cor-destaque-clara); }
.jit-banda__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-3); margin-top: var(--esp-5); }
@media (min-width: 860px) {
	.jit-banda__interno { padding-top: var(--esp-9); padding-bottom: var(--esp-9); }
}

/* ---- Números de confiança ---- */

.jit-numeros { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--esp-4); grid-template-columns: 1fr; }
.jit-numeros li {
	background: var(--cor-superficie); border: 1px solid var(--cor-borda);
	border-radius: var(--raio-l); padding: var(--esp-5);
	display: flex; flex-direction: column; gap: 4px;
}
.jit-numeros strong {
	font-family: var(--fonte-titulo); font-size: clamp(1.9rem, 4vw, 2.5rem);
	line-height: 1.05; color: var(--cor-marca-escura); letter-spacing: -0.01em;
	border-left: 3px solid var(--cor-destaque); padding-left: var(--esp-3);
}
.jit-numeros span { color: var(--cor-texto-suave); font-size: 0.92rem; padding-left: calc(var(--esp-3) + 3px); }
@media (min-width: 700px) {
	.jit-numeros--linha { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---- Home: seção institucional ---- */

.jit-secao--instituicao .jit-motivos { margin-top: var(--esp-8); }
.jit-instituicao { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; align-items: center; }
.jit-instituicao__texto h2 { margin-bottom: var(--esp-3); }
.jit-instituicao__texto .jit-lead { margin-bottom: var(--esp-5); }
@media (min-width: 900px) {
	.jit-instituicao { grid-template-columns: 1.05fr 1fr; gap: var(--esp-8); }
}

/* ---- Passos (Captação) ---- */

.jit-passos { list-style: none; margin: var(--esp-6) 0 0; padding: 0; display: grid; gap: var(--esp-5); grid-template-columns: 1fr; counter-reset: passo; }
.jit-passo {
	background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-l);
	padding: var(--esp-5); position: relative;
}
.jit-passo h3 { font-size: 1.15rem; color: var(--cor-marca-escura); margin: var(--esp-3) 0 var(--esp-1); }
.jit-passo p { margin: 0; color: var(--cor-texto-suave); font-size: 0.96rem; }
.jit-passo__numero {
	width: 40px; height: 40px; border-radius: 50%; background: var(--cor-marca); color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.05rem;
}
@media (min-width: 760px) {
	.jit-passos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.jit-passo:not(:last-child)::after {
		content: ''; position: absolute; top: calc(var(--esp-5) + 20px); left: calc(var(--esp-5) + 52px);
		right: calc(-1 * var(--esp-5) - 12px); height: 1px; background: var(--cor-borda-forte); z-index: 0;
	}
}

.jit-secao--curta { padding-top: 0; }
.jit-captacao__form { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; }
.jit-captacao__lateral {
	align-self: start; background: var(--cor-marca-tinta); border: 1px solid var(--cor-borda);
	border-radius: var(--raio-l); padding: var(--esp-6);
}
.jit-captacao__lateral h3 { color: var(--cor-marca-escura); font-size: 1.2rem; }
.jit-captacao__lateral p { color: var(--cor-texto-suave); }
@media (min-width: 960px) {
	.jit-captacao__form { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--esp-8); }
	.jit-captacao__lateral { position: sticky; top: 104px; }
}

/* ---- Sobre Nós ---- */

.jit-sobre__duas { display: grid; gap: var(--esp-6); grid-template-columns: 1fr; }
.jit-sobre__duas h2 { color: var(--cor-marca-escura); }
.jit-sobre__duas p { color: var(--cor-texto-suave); line-height: 1.75; }
@media (min-width: 800px) {
	.jit-sobre__duas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-8); }
}
.jit-visita {
	display: flex; flex-direction: column; gap: var(--esp-5);
	background: var(--cor-marca-tinta); border: 1px solid var(--cor-borda); border-radius: var(--raio-l);
	padding: var(--esp-6);
}
.jit-visita h2 { color: var(--cor-marca-escura); }
.jit-visita .jit-lead { margin-bottom: 0; }
.jit-visita__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-3); }
@media (min-width: 860px) {
	.jit-visita { flex-direction: row; align-items: center; justify-content: space-between; padding: var(--esp-7); }
}

/* ---- Formulário: título e subtítulo ---- */

.jit-form__subtitulo { color: var(--cor-texto-suave); margin: 0 0 var(--esp-5); max-width: 60ch; }
.jit-vazio__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-3); justify-content: center; margin-top: var(--esp-4); }

/* ---- Ficha do imóvel: mais vendedora ---- */

.jit-imovel-etiquetas { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-3); }
.jit-imovel-finalidade {
	background: var(--cor-marca); color: #fff; border-radius: var(--raio-pilula);
	padding: 5px 14px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
}

.jit-imovel-conteudo__titulo { font-size: 1.35rem; margin: var(--esp-7) 0 var(--esp-4); color: var(--cor-marca-escura); }
.jit-imovel-conteudo__titulo--primeiro { margin-top: 0; }

.jit-imovel-caracteristicas {
	background: transparent; padding: 0; margin: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-3);
}
.jit-imovel-caracteristicas > div {
	background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio);
	padding: var(--esp-4);
}
.jit-imovel-caracteristicas dt svg { opacity: 1; stroke: var(--cor-destaque); }
.jit-imovel-caracteristicas dd { font-size: 1.4rem; font-weight: 600; margin-top: 6px; }
@media (min-width: 700px) {
	.jit-imovel-caracteristicas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.jit-imovel-conteudo p.jit-imovel-descricao { font-size: 1.05rem; line-height: 1.8; max-width: 68ch; color: var(--cor-texto); }

.jit-imovel-sidebar { border-top: 4px solid var(--cor-destaque); }
.jit-imovel-sidebar__rotulo {
	display: block; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--cor-texto-sutil);
}
.jit-imovel-sidebar .jit-card-imovel__preco { font-size: clamp(2rem, 3vw, 2.5rem); color: var(--cor-marca-escura); margin: 4px 0; }
.jit-imovel-sidebar__extra { color: var(--cor-texto-suave); font-size: 0.95rem; margin: 0; }
.jit-imovel-sidebar__alt {
	display: block; text-align: center; margin-top: var(--esp-3);
	font-size: 0.92rem; font-weight: 600; color: var(--cor-destaque-texto); text-decoration: underline; text-underline-offset: 3px;
}
.jit-imovel-garantias { list-style: none; margin: var(--esp-4) 0 0; padding: 0; display: grid; gap: var(--esp-2); }
.jit-imovel-garantias li { display: flex; align-items: center; gap: var(--esp-2); font-size: 0.9rem; color: var(--cor-texto-suave); }
.jit-imovel-garantias svg { width: 16px; height: 16px; flex: none; stroke: var(--cor-whatsapp-escuro); }

.jit-relacionados { padding-top: var(--esp-8); border-top: 1px solid var(--cor-borda); }

/* Barra fixa no celular: preço + WhatsApp sempre à mão. */
.jit-imovel-barra { display: none; }
@media (max-width: 859px) {
	.jit-imovel-barra {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3);
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: var(--cor-superficie); border-top: 1px solid var(--cor-borda);
		box-shadow: 0 -8px 24px -12px rgba(20, 26, 43, 0.25);
	}
	.jit-imovel-barra__preco { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
	.jit-imovel-barra__preco span { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cor-texto-sutil); }
	.jit-imovel-barra__preco strong { font-size: 1.15rem; color: var(--cor-marca-escura); white-space: nowrap; }
	.jit-imovel-barra .jit-botao { flex: none; padding: 12px 20px; }
	body.single-imoveis { padding-bottom: 76px; }
	body.single-imoveis .jit-whatsapp-flutuante { display: none; }
}

/* ---- Utilitários de acessibilidade ---- */

/* O WordPress não imprime este CSS no front-end: sem ele o texto "(obrigatório)"
   dos rótulos ficava visível ao lado do asterisco. */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Espaço entre o cartão de preço e o formulário quando empilhados (mobile). */
@media (max-width: 899px) {
	.jit-imovel-sidebar { margin-bottom: 24px; }
}

/* =========================================================================
   19. Direção editorial (Home, cartões, ficha)
   Fotos grandes, cantos retos, serifa nos títulos, azul da marca como
   único acento. Sobrescreve os tokens: as demais páginas herdam cantos
   retos e tipografia sem mudar de estrutura.
   ========================================================================= */

:root {
	--raio-s: 0;
	--raio: 0;
	--raio-l: 0;
	--cor-fundo: #ffffff;
	--cor-borda: #dde1ea;
	--sombra-s: none;
	--sombra: none;
	--sombra-l: none;
	--serifa: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
}

body { background: #fff; font-size: 17px; }

h1, h2, h3 { font-family: var(--serifa); font-weight: 400; letter-spacing: -0.012em; color: var(--cor-marca-escura); }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.7rem); line-height: 1.05; }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.3rem); line-height: 1.12; }

.jit-botao { border-radius: 0; font-weight: 600; letter-spacing: 0.02em; padding: 14px 26px; }
.jit-botao--grande { padding: 16px 30px; }

/* ----- Cabeçalho ----- */
.site-header { background: #fff; backdrop-filter: none; border-bottom: 1px solid var(--cor-borda); }
.site-header.jit-scrolled { background: #fff; }
.jit-header-inner { padding: 14px 0; min-height: 72px; }
@media (min-width: 1100px) { .jit-header-inner { padding: 16px 0; min-height: 80px; } }

.jx-marca { display: inline-flex; align-items: center; gap: 12px; color: var(--cor-marca); line-height: 1; }
.jx-marca__simbolo { width: 42px; height: 29px; flex: none; }
.jx-marca__texto { display: flex; flex-direction: column; gap: 4px; }
.jx-marca__texto strong { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.7rem; letter-spacing: 0.03em; line-height: 0.9; }
.jx-marca__texto small { font-family: var(--fonte-titulo); font-weight: 600; font-size: 0.6rem; letter-spacing: 0.42em; padding-left: 1px; }
.jx-marca--escuro { color: #fff; }
.jx-marca--arquivo img { height: 44px; width: auto; }

.jit-nav a { font-size: 0.93rem; letter-spacing: 0.01em; }
.jit-header-cta { padding: 11px 20px; }

/* ----- Abertura ----- */
.jx-abertura { position: relative; background: var(--cor-marca-escura); color: #fff; min-height: clamp(300px, 40vh, 400px); display: flex; align-items: flex-end; overflow: hidden; }
.jx-abertura__foto, .jx-abertura__foto img { position: absolute; inset: 0; width: 100%; height: 100%; }
.jx-abertura__foto img { object-fit: cover; object-position: center 55%; }
.jx-abertura__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,16,40,0.18) 0%, rgba(10,16,40,0.12) 35%, rgba(10,16,40,0.72) 100%); }
.jx-abertura__interno { position: relative; z-index: 1; padding-top: clamp(48px, 8vw, 72px); padding-bottom: clamp(18px, 2.5vw, 28px); width: 100%; }
.jx-abertura h1 { color: #fff; max-width: 22ch; font-size: clamp(1.9rem, 4.2vw, 3rem); margin: 0 0 0.25em; text-shadow: 0 1px 24px rgba(0,0,0,0.25); }
.jx-abertura__texto { color: rgba(255,255,255,0.9); font-size: 1rem; max-width: 52ch; margin: 0 0 clamp(14px, 2vw, 20px); }

/* ----- Busca compacta ----- */
.jx-filtros { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; align-items: end; background: #fff; padding: 14px; border: 1px solid var(--cor-borda); }
.jx-filtros--hero { border: 0; max-width: 1000px; }
.jx-filtros__campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.jx-filtros__campo label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cor-texto-suave); }
.jx-filtros select, .jx-filtros input { width: 100%; height: 44px; padding: 0 12px; font: inherit; font-size: 0.95rem; color: var(--cor-texto); background: #fff; border: 1px solid var(--cor-borda-forte); border-radius: 0; appearance: none; -webkit-appearance: none; }
.jx-filtros select { background-image: linear-gradient(45deg, transparent 50%, var(--cor-marca) 50%), linear-gradient(135deg, var(--cor-marca) 50%, transparent 50%); background-position: calc(100% - 17px) 19px, calc(100% - 12px) 19px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 30px; }
.jx-filtros select:focus, .jx-filtros input:focus { outline: 2px solid var(--cor-destaque); outline-offset: -1px; }
.jx-filtros__extras { display: none; grid-column: 1 / -1; gap: 10px; grid-template-columns: 1fr 1fr; }
.jx-filtros.is-aberto .jx-filtros__extras { display: grid; }
.jx-filtros__acoes { grid-column: 1 / -1; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.jx-filtros__acoes .jit-botao { flex: 1 1 auto; height: 46px; padding-top: 0; padding-bottom: 0; }
.jx-filtros__mais { height: 46px; padding: 0 16px; background: #fff; color: var(--cor-marca); border: 1px solid var(--cor-borda-forte); font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; }
.jx-filtros__limpar { font-size: 0.9rem; color: var(--cor-destaque-texto); text-decoration: underline; text-underline-offset: 3px; }
/* sem JavaScript os filtros extras ficam sempre à vista */
html:not(.js-ok) .jx-filtros__extras { display: grid; }
html:not(.js-ok) .jx-filtros__mais { display: none; }

@media (min-width: 820px) {
	.jx-filtros--hero { grid-template-columns: 1fr 1fr 1fr auto; }
	.jx-filtros--hero .jx-filtros__extras, .jx-filtros--hero.is-aberto .jx-filtros__extras { display: contents; }
	.jx-filtros--hero .jx-filtros__acoes { grid-column: auto; }
	.jx-filtros--listagem { grid-template-columns: repeat(4, 1fr); }
	.jx-filtros--listagem .jx-filtros__extras, .jx-filtros--listagem.is-aberto .jx-filtros__extras { display: grid; grid-template-columns: repeat(3, 1fr); grid-column: 1 / -1; }
	.jx-filtros--listagem .jx-filtros__acoes { grid-column: 1 / -1; justify-content: flex-end; }
	.jx-filtros--listagem .jx-filtros__acoes .jit-botao { flex: 0 0 auto; min-width: 200px; }
	.jx-filtros__mais { display: none; }
}
@media (min-width: 1100px) { .jx-filtros--listagem .jx-filtros__extras, .jx-filtros--listagem.is-aberto .jx-filtros__extras { grid-template-columns: repeat(5, 1fr); } }

/* ----- Seções ----- */
.jx-secao { padding-block: clamp(40px, 6vw, 84px); }
.jx-secao--tinta { background: var(--cor-marca-tinta); }
.jx-secao__topo { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: clamp(18px, 2.4vw, 30px); flex-wrap: wrap; }
.jx-secao__topo h2 { margin: 0; }
.jit-link-secao { font-weight: 600; font-size: 0.93rem; color: var(--cor-marca); display: inline-flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--cor-marca); padding-bottom: 2px; }
.jit-link-secao svg { width: 16px; height: 16px; }

/* ----- Grade e cartões ----- */
.jx-grade { display: grid; gap: clamp(28px, 3vw, 44px) clamp(18px, 2.4vw, 32px); grid-template-columns: 1fr; }
@media (min-width: 640px) { .jx-grade { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .jx-grade { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) {
	/* Home: dois cartões grandes e três médios, em vez de uma grade uniforme */
	.home .jx-grade:not(.jx-grade--4) { grid-template-columns: repeat(6, 1fr); }
	.home .jx-grade:not(.jx-grade--4) > .jx-card { grid-column: span 2; }
	.home .jx-grade:not(.jx-grade--4) > .jx-card:nth-child(-n+2) { grid-column: span 3; }
	.home .jx-grade:not(.jx-grade--4) > .jx-card:nth-child(-n+2) .jx-card__foto { aspect-ratio: 3 / 2; }
	.home .jx-grade:not(.jx-grade--4) > .jx-card:nth-child(-n+2) .jx-card__titulo { font-size: 1.5rem; }
}

.jx-card { display: flex; flex-direction: column; background: transparent; }
.jx-card__foto { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e8ecf3; }
.jx-card__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; transition: transform 700ms var(--ease); }
.jx-card:hover .jx-card__foto img { transform: scale(1.035); }
.jx-card__etiqueta { position: absolute; left: 0; top: 0; padding: 7px 12px; background: #fff; color: var(--cor-marca); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.jx-card--aluguel .jx-card__etiqueta { background: var(--cor-marca); color: #fff; }
.jx-card__corpo { padding-top: 14px; display: flex; flex-direction: column; gap: 5px; }
.jx-card__local { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cor-texto-suave); }
.jx-card__local svg { width: 14px; height: 14px; color: var(--cor-destaque-texto); flex: none; }
.jx-card__titulo { margin: 0; font-size: 1.28rem; line-height: 1.2; }
.jx-card__titulo a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.jx-card__preco { margin: 4px 0 0; font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.15rem; color: var(--cor-marca); }
.jx-card__preco small { font-size: 0.8em; font-weight: 500; color: var(--cor-texto-suave); }
.jx-card__dados { display: flex; flex-wrap: wrap; gap: 2px 0; margin: 2px 0 0; font-size: 0.88rem; color: var(--cor-texto-suave); }
.jx-card__dados li { display: inline-flex; }
.jx-card__dados li + li::before { content: '·'; margin: 0 8px; color: var(--cor-borda-forte); }
.jx-card__dados strong { color: var(--cor-texto); font-weight: 600; margin-right: 4px; }
.jx-card__codigo { margin: 2px 0 0; font-size: 0.74rem; color: var(--cor-texto-sutil); letter-spacing: 0.04em; }

/* ----- Quem somos / números ----- */
.jx-quem { display: grid; gap: clamp(24px, 4vw, 56px); align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .jx-quem { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); } }
.jx-quem__texto h2 { margin-bottom: 0.5em; }
.jx-quem__texto p { font-size: 1.1rem; color: var(--cor-texto-suave); max-width: 44ch; }
.jx-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--cor-marca); }
.jx-numeros li { display: flex; flex-direction: column; gap: 6px; padding: 18px 10px 4px 0; }
.jx-numeros li + li { padding-left: 10px; border-left: 1px solid var(--cor-borda-forte); }
.jx-numeros strong { font-family: var(--serifa); font-weight: 400; font-size: clamp(1.2rem, 5.4vw, 2.6rem); line-height: 1; color: var(--cor-marca); }
.jx-numeros span { font-size: 0.85rem; line-height: 1.35; color: var(--cor-texto-suave); }

/* ----- Chamada para anunciar ----- */
.jx-anuncie { background: var(--cor-marca); color: #fff; padding: clamp(36px, 5vw, 64px) 0; }
.jx-anuncie__interno { display: grid; gap: 22px; align-items: center; }
@media (min-width: 900px) { .jx-anuncie__interno { grid-template-columns: 1fr auto; } }
.jx-anuncie h2 { color: #fff; margin: 0 0 6px; }
.jx-anuncie p { margin: 0; color: rgba(255,255,255,0.85); max-width: 52ch; }
.jx-anuncie__acoes { display: flex; gap: 12px; flex-wrap: wrap; }

/* ----- Listagem ----- */
.jx-topo-lista { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.jx-topo-lista h1 { margin: 0; font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
.imoveis-listagem { padding-top: clamp(24px, 3vw, 44px); }

/* ----- Ficha ----- */
.jx-ficha { padding: 20px 0 clamp(48px, 6vw, 88px); }
.jx-ficha .jit-trilha { margin-bottom: 14px; }
.jx-ficha__titulo { margin-bottom: clamp(16px, 2vw, 26px); }
.jx-ficha__titulo h1 { margin: 8px 0 6px; font-size: clamp(2rem, 3.8vw, 3.1rem); }
.jx-ficha__local { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--cor-texto-suave); font-size: 1rem; }
.jx-ficha__local svg { width: 17px; height: 17px; color: var(--cor-destaque-texto); }
.jit-imovel-finalidade { border-radius: 0; background: var(--cor-marca); color: #fff; padding: 5px 12px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.jit-imovel-codigo { font-size: 0.78rem; letter-spacing: 0.06em; color: var(--cor-texto-suave); }

.jx-ficha__topo { display: grid; gap: clamp(20px, 3vw, 44px); align-items: start; }
@media (min-width: 1000px) { .jx-ficha__topo { grid-template-columns: minmax(0, 1fr) 360px; } }

.jx-galeria { min-width: 0; }
.jx-galeria:focus-visible { outline: 2px solid var(--cor-destaque); outline-offset: 4px; }
.jx-galeria__quadro { position: relative; background: #eef1f6; aspect-ratio: 4 / 3; overflow: hidden; }
@media (min-width: 1000px) { .jx-galeria__quadro { aspect-ratio: 3 / 2; } }
.jx-galeria__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity 200ms; }
.jx-galeria__seta { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 62px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.88); color: var(--cor-marca); border: 0; font-size: 2.2rem; line-height: 1; cursor: pointer; padding-bottom: 5px; }
.jx-galeria__seta:hover { background: #fff; }
.jx-galeria__seta--ant { left: 0; }
.jx-galeria__seta--prox { right: 0; }
.jx-galeria__contador { position: absolute; right: 0; bottom: 0; background: rgba(15,24,56,0.82); color: #fff; font-size: 0.8rem; padding: 6px 12px; letter-spacing: 0.06em; }
.jx-galeria__tira { display: flex; gap: 6px; margin-top: 6px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; scroll-snap-type: x proximity; }
.jx-galeria__mini { flex: 0 0 auto; width: 92px; height: 66px; padding: 0; border: 0; background: #eef1f6; cursor: pointer; opacity: 0.6; position: relative; scroll-snap-align: start; transition: opacity 200ms; }
.jx-galeria__mini img { width: 100%; height: 100%; object-fit: cover; }
.jx-galeria__mini:hover { opacity: 1; }
.jx-galeria__mini.is-ativa { opacity: 1; }
.jx-galeria__mini.is-ativa::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--cor-marca); }

.jx-preco { border: 1px solid var(--cor-borda-forte); border-top: 3px solid var(--cor-marca); padding: 24px 24px 22px; background: #fff; }
@media (min-width: 1000px) { .jx-preco { position: sticky; top: 100px; } }
.jx-preco__rotulo { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cor-texto-suave); }
.jx-preco__valor { margin: 4px 0 2px; font-family: var(--serifa); font-size: clamp(2.1rem, 3.4vw, 2.8rem); line-height: 1.05; color: var(--cor-marca-escura); }
.jx-preco__valor small { font-family: var(--fonte-titulo); font-size: 0.42em; font-weight: 500; color: var(--cor-texto-suave); }
.jx-preco__extra { margin: 0 0 4px; font-size: 0.9rem; color: var(--cor-texto-suave); }
.jx-preco__dados { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 14px 0 18px; padding: 14px 0; border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda); font-size: 0.92rem; color: var(--cor-texto-suave); }
.jx-preco__dados li { display: inline-flex; }
.jx-preco__dados li + li::before { content: '·'; margin: 0 9px; color: var(--cor-borda-forte); }
.jx-preco__dados strong { color: var(--cor-texto); margin-right: 4px; }
.jx-preco .jit-botao { width: 100%; justify-content: center; }
.jx-preco__alt { display: block; margin-top: 14px; text-align: center; font-size: 0.9rem; color: var(--cor-destaque-texto); text-decoration: underline; text-underline-offset: 3px; }

.jx-ficha__corpo { display: grid; gap: clamp(28px, 4vw, 56px); margin-top: clamp(32px, 4vw, 56px); }
@media (min-width: 1000px) { .jx-ficha__corpo { grid-template-columns: minmax(0, 1fr) 360px; } .jx-ficha__corpo .jx-bloco:first-child { grid-column: 1; } }
.jx-bloco h2 { font-size: 1.5rem; margin-bottom: 0.6em; padding-bottom: 10px; border-bottom: 1px solid var(--cor-borda); }
.jit-imovel-descricao { font-size: 1.08rem; line-height: 1.75; color: var(--cor-texto); max-width: 62ch; }
.jx-dados div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--cor-borda); font-size: 0.97rem; }
.jx-dados dt { color: var(--cor-texto-suave); }
.jx-dados dd { margin: 0; font-weight: 600; color: var(--cor-texto); text-align: right; }

.jx-relacionados { margin-top: clamp(48px, 6vw, 88px); padding-top: clamp(28px, 4vw, 48px); border-top: 1px solid var(--cor-borda); }

/* Ficha: formulário e barra móvel herdam cantos retos */
.jit-form { border-radius: 0; box-shadow: none; }
@media (max-width: 999px) {
	.jx-ficha { padding-bottom: 96px; }
}

/* 20. Áreas CAIXA: catálogo, correspondente, simulador */
.jx-subnav { border-bottom: 1px solid var(--cor-borda); background: #fff; }
.jx-subnav .jit-container { display: flex; flex-wrap: wrap; gap: 0 22px; }
.jx-subnav a { padding: 14px 0; font-size: 0.9rem; color: var(--cor-texto-suave); text-decoration: none; border-bottom: 2px solid transparent; }
.jx-subnav a[aria-current="page"], .jx-subnav a:hover { color: var(--cor-marca); border-bottom-color: var(--cor-marca); }

.jx-caixa-atualizado { font-size: 0.9rem; color: var(--cor-texto-suave); margin: 10px 0 0; }
.jx-caixa-filtros { display: grid; gap: 12px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); margin: 0 0 32px; padding: 16px 0; border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda); align-items: end; }
.jx-caixa-filtros label { min-width: 0; display: grid; gap: 4px; font-size: 0.85rem; color: var(--cor-texto-suave); }
.jx-caixa-filtros input, .jx-caixa-filtros select { width: 100%; box-sizing: border-box; min-width: 0; min-height: 44px; border: 1px solid var(--cor-borda-forte); padding: 0 10px; font: inherit; background: #fff; border-radius: 0; }
.jx-caixa-filtros .jit-botao { grid-column: 1 / -1; }
@media (min-width: 900px) { .jx-caixa-filtros { grid-template-columns: repeat(5, minmax(0,1fr)) auto; } .jx-caixa-filtros .jit-botao { grid-column: auto; } }

.jx-caixa-grupo { margin: 0 0 48px; }
.jx-caixa-grupo__nota { color: var(--cor-texto-suave); max-width: 62ch; margin: 4px 0 20px; }
.jx-caixa-lista { display: grid; gap: 0; border-top: 1px solid var(--cor-borda); }
.jx-caixa-card { padding: 22px 0; border-bottom: 1px solid var(--cor-borda); display: grid; gap: 4px; }
.jx-caixa-card h3 { margin: 0; font-family: var(--serifa); font-size: 1.25rem; }
.jx-caixa-card p { margin: 0; }
.jx-caixa-card__tipo { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cor-texto-suave); }
.jx-caixa-card__end, .jx-caixa-card__desc, .jx-caixa-card__aval { color: var(--cor-texto-suave); font-size: 0.95rem; }
.jx-caixa-card__preco { font-family: var(--serifa); font-size: 1.5rem; color: var(--cor-marca); margin-top: 6px; }
.jx-caixa-card__id { font-size: 0.82rem; color: var(--cor-texto-sutil); }
.jx-caixa-card__acoes { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; margin-top: 12px; }
@media (min-width: 900px) { .jx-caixa-lista { grid-template-columns: 1fr 1fr; column-gap: 48px; } }
.jx-link { color: var(--cor-marca); text-decoration: underline; text-underline-offset: 3px; }
.jx-caixa-aviso { margin: 32px 0 0; font-size: 0.85rem; color: var(--cor-texto-suave); max-width: 72ch; }

.jx-caixa-home { background: #fff; border-top: 1px solid var(--cor-borda); }
.jx-caixa-home__interno { display: grid; gap: 20px; align-items: center; }
.jx-caixa-home__interno p { margin: 6px 0 0; color: var(--cor-texto-suave); max-width: 56ch; }
.jx-caixa-home__links { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; }
@media (min-width: 900px) { .jx-caixa-home__interno { grid-template-columns: 1.4fr 1fr; } }

.jx-correspondente__marca { display: block; max-width: 220px; height: auto; margin-bottom: 18px; }
.jx-correspondente__servicos ul { list-style: none; margin: 16px 0 40px; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--cor-borda); }
.jx-correspondente__servicos li { padding: 18px 0; border-bottom: 1px solid var(--cor-borda); }
.jx-correspondente__servicos h3 { margin: 0 0 4px; font-size: 1.1rem; }
.jx-correspondente__servicos p { margin: 0; color: var(--cor-texto-suave); }
.jx-correspondente__botoes { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; margin: 18px 0 36px; }
.jx-correspondente__contato .jit-form { max-width: 560px; }

.jx-sim { display: grid; gap: 32px; max-width: 980px; }
@media (min-width: 900px) { .jx-sim { grid-template-columns: 1fr 1fr; align-items: start; } }
.jx-sim__form { display: grid; gap: 14px; }
.jx-sim__form label { display: grid; gap: 4px; font-size: 0.9rem; color: var(--cor-texto-suave); }
.jx-sim__form input { min-height: 48px; border: 1px solid var(--cor-borda-forte); padding: 0 12px; font: inherit; font-size: 1.05rem; border-radius: 0; }
.jx-sim__origem { margin: 0; padding: 10px 12px; background: var(--cor-marca-tinta); font-size: 0.9rem; }
.jx-sim__rapido { display: flex; gap: 8px; }
.jx-sim__rapido button { min-height: 40px; padding: 0 16px; border: 1px solid var(--cor-borda-forte); background: #fff; cursor: pointer; font: inherit; border-radius: 0; }
.jx-sim__rapido button:hover { border-color: var(--cor-marca); color: var(--cor-marca); }
.jx-sim__erro { margin: 0; color: #9b1c1c; font-size: 0.92rem; }
.jx-sim__resultado { border: 1px solid var(--cor-borda); padding: 24px; background: #fff; }
.jx-sim__resultado[hidden], .jx-sim__erro[hidden] { display: none; }
.jx-sim__rotulo { margin: 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cor-texto-suave); }
.jx-sim__parcela { margin: 6px 0 16px; font-family: var(--serifa); font-size: 2.2rem; color: var(--cor-marca); }
.jx-sim__parcela small { display: block; font-family: inherit; font-size: 0.9rem; color: var(--cor-texto-suave); }
.jx-sim__dados { margin: 0 0 20px; display: grid; gap: 8px; }
.jx-sim__dados div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--cor-borda); padding-bottom: 8px; }
.jx-sim__dados dt { color: var(--cor-texto-suave); }
.jx-sim__dados dd { margin: 0; font-weight: 600; }
.jx-sim__premissas { margin: 28px 0 0; padding-left: 18px; color: var(--cor-texto-suave); font-size: 0.9rem; }

.jx-sim__dados div[hidden] { display: none; }
.jx-simples { max-width: 640px; }
.jx-simples .jit-form { margin-top: 32px; }
.jx-caixa-card__preco small { display: block; font-family: inherit; font-size: 0.78rem; color: var(--cor-texto-sutil); }

.jx-secao--compacta { padding-top: 0; }
.jx-grade--4 { display: grid; gap: 20px; grid-template-columns: minmax(0,1fr); }
@media (min-width: 560px) { .jx-grade--4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1000px) { .jx-grade--4 { grid-template-columns: repeat(4, minmax(0,1fr)); } }

/* 21. Páginas institucionais (Sobre, Captação, Contato) */
.jx-pg__topo { padding: clamp(36px, 6vw, 72px) 0 clamp(24px, 4vw, 44px); border-bottom: 1px solid var(--cor-borda); }
.jx-pg__topo h1 { margin: 0 0 0.3em; max-width: 20ch; }
.jx-pg__lead { margin: 0; max-width: 56ch; font-size: 1.15rem; color: var(--cor-texto-suave); }
.jx-pg__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.jx-pg__corpo { padding-block: clamp(32px, 5vw, 64px); }
.jx-pg__corpo--linha { border-top: 1px solid var(--cor-borda); }
.jx-pg__corpo h2 { margin: 0 0 0.6em; }
.jx-duas { display: grid; gap: clamp(28px, 5vw, 64px); }
@media (min-width: 900px) { .jx-duas { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); } .jx-duas--form { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); } }
.jx-texto p { max-width: 62ch; color: var(--cor-texto-suave); font-size: 1.05rem; }
.jx-texto h2:not(:first-child) { margin-top: 1.6em; }
.jx-lateral h3 { margin: 1.4em 0 0.4em; font-size: 1.1rem; }
.jx-lateral h3:first-child { margin-top: 0; }
.jx-lateral p { color: var(--cor-texto-suave); }
@media (min-width: 900px) { .jx-lateral { padding-left: clamp(24px, 3vw, 40px); border-left: 1px solid var(--cor-borda); } }
.jx-numeros--coluna { grid-template-columns: minmax(0,1fr); border-top: 0; margin: 0 0 24px; }
.jx-numeros--coluna li, .jx-numeros--coluna li + li { padding: 14px 0; border-left: 0; border-bottom: 1px solid var(--cor-borda); }
.jx-tres { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--cor-marca); }
@media (min-width: 800px) { .jx-tres { grid-template-columns: repeat(3, minmax(0,1fr)); } .jx-tres li + li { border-left: 1px solid var(--cor-borda); padding-left: 28px; } .jx-tres li { padding-right: 24px; } }
.jx-tres li { padding-top: 20px; padding-bottom: 12px; }
.jx-tres h3 { margin: 0 0 6px; font-size: 1.2rem; }
.jx-tres p { margin: 0; color: var(--cor-texto-suave); }
.jx-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: p; }
@media (min-width: 800px) { .jx-passos { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; } }
.jx-passos li { padding: 14px 0; }
.jx-passos span { display: block; font-family: var(--serifa); font-size: 2.4rem; line-height: 1; color: var(--cor-marca); margin-bottom: 8px; }
.jx-passos h3 { margin: 0 0 4px; font-size: 1.15rem; }
.jx-passos p { margin: 0; color: var(--cor-texto-suave); }
.jx-canais { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--cor-marca); }
.jx-canais li { padding: 14px 0; border-bottom: 1px solid var(--cor-borda); display: grid; gap: 2px; }
.jx-canais span { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cor-texto-suave); }
.jx-canais a { color: var(--cor-marca); text-decoration: underline; text-underline-offset: 3px; }
.jx-pg .jit-form { max-width: none; }

/* ===== Simulador: sistema, ajuste, lado ===== */
.jx-sim { min-width: 0; }
.jx-sim > * { min-width: 0; }
.jx-sim__sistema { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; min-width: 0; }
.jx-sim__sistema legend { padding: 0; margin-bottom: 4px; font-size: 0.9rem; color: var(--cor-texto-suave); }
.jx-sim__sistema label { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--cor-borda-forte); background: #fff; cursor: pointer; color: var(--cor-texto); font-size: 0.95rem; line-height: 1.4; }
.jx-sim__sistema label:has(input:checked) { border-color: var(--cor-marca); background: var(--cor-marca-tinta); }
.jx-sim__sistema input { min-height: 0; margin-top: 3px; accent-color: var(--cor-marca); flex: none; }
.jx-sim__ajuste { border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda); padding: 12px 0; display: grid; gap: 12px; }
.jx-sim__ajuste summary { cursor: pointer; font-weight: 600; color: var(--cor-marca); }
.jx-sim__ajuste[open] summary { margin-bottom: 12px; }
.jx-sim__ajuste label { margin-bottom: 4px; }
.jx-sim__dica { margin: 0; font-size: 0.85rem; line-height: 1.45; color: var(--cor-texto-suave); }
.jx-sim__dica:empty { display: none; }
.jx-sim__lado { display: grid; gap: 24px; min-width: 0; }
.jx-sim__entenda { display: grid; gap: 16px; }
.jx-sim__entenda .jx-sim__premissas { margin: 0; }
.jx-sim__premissas li { margin-bottom: 6px; overflow-wrap: anywhere; }
.jx-sim__premissas-uso { margin: 0 0 20px; font-size: 0.88rem; color: var(--cor-texto-suave); line-height: 1.5; }
.jx-sim__premissas-uso:empty { display: none; }
.jx-sim__dados dd { text-align: right; }
.jx-sim__resultado { min-width: 0; }
@media (max-width: 480px) {
	.jx-sim__resultado { padding: 18px 16px; }
	.jx-sim__parcela { font-size: 1.9rem; }
	.jx-sim__dados div { flex-direction: column; gap: 2px; }
	.jx-sim__dados dd { text-align: left; }
}

/* ===== Refinamento dos cards (jx-card): foto manda, preço lê primeiro ===== */
.jx-card__foto { aspect-ratio: 3 / 2; }
.jx-card__titulo { font-size: 1.12rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.jx-card__preco { font-size: 1.3rem; letter-spacing: -.01em; margin-top: 6px; }
.jx-card__codigo { margin-top: 6px; }
@media (hover: none) { .jx-card:hover .jx-card__foto img { transform: none; } }
@media (prefers-reduced-motion: reduce) { .jx-card__foto img { transition: none; } }
