/* ============================================================
   Tema Imobaia — estilo base e layout do site
   ============================================================ */

/* As cores e medidas vêm do painel do tema, como variáveis. */
:root{
	--imba-principal:#1355d6;
	--imba-principal-rgb:19,85,214;
	--imba-destaque:#f4802c;
	--imba-destaque-rgb:244,128,44;
	--imba-destaque-suave:rgba(244,128,44,.16);
	--imba-destaque-medio:rgba(244,128,44,.34);
	--imba-venda:#e8503a;
	--imba-venda-rgb:232,80,58;
	--imba-locacao:#12a594;
	--imba-locacao-rgb:18,165,148;
	--imba-texto:#101828;
	--imba-fundo:#fefbfb;
	--imba-cinza:#667085;
	--imba-borda:#e6e8ec;
	--imba-suave:#f7f8fa;
	--imba-largura:1180px;
	--imba-raio:12px;
	--imba-fonte:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

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

body{
	margin:0;
	background:var(--imba-fundo);
	color:var(--imba-texto);
	font-family:var(--imba-fonte);
	font-size:16px;
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto}
a{color:var(--imba-principal)}

h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;font-weight:700}
h1{font-size:2.2rem}
h2{font-size:1.7rem}
h3{font-size:1.25rem}

@media (max-width:640px){
	h1{font-size:1.6rem}
	h2{font-size:1.35rem}
}

/* Link que aparece só ao navegar pelo teclado. */
.imba-pular{
	position:absolute;
	left:-9999px;
	background:var(--imba-principal);
	color:#fff;
	padding:12px 20px;
	z-index:999;
}
.imba-pular:focus{left:12px;top:12px}

.imba-container{
	max-width:var(--imba-largura);
	margin:0 auto;
	padding:0 24px;
	width:100%;
}

.imba-principal{min-height:40vh}

/* ------------------------------------------------------------
   Cabeçalho do site
   ------------------------------------------------------------ */

.imba-header{
	background:var(--imba-h-fundo,#fff);
	color:var(--imba-h-texto,#101828);
	border-bottom:1px solid rgba(0,0,0,.06);
	position:relative;
	z-index:50;
}
.imba-header.fixo{position:sticky;top:0}

.imba-header.transparente{
	background:transparent;
	border-bottom-color:transparent;
	color:#fff;
	margin-bottom:-84px;
}
.imba-header.transparente.rolou{
	background:var(--imba-h-fundo,#fff);
	color:var(--imba-h-texto,#101828);
	border-bottom-color:rgba(0,0,0,.06);
	margin-bottom:0;
}

.imba-header-interno{
	max-width:var(--imba-largura);
	margin:0 auto;
	padding:var(--imba-h-altura,14px) 24px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
}

.imba-logo{
	display:flex;
	align-items:center;
	text-decoration:none;
	color:inherit;
	font-weight:700;
	font-size:1.15rem;
}
.imba-logo img{display:block;width:auto}

.imba-menu{display:flex;align-items:center;gap:26px;flex:1;min-width:0}
.imba-header.menu-esquerda .imba-menu{justify-content:flex-start}
.imba-header.menu-centro .imba-menu{justify-content:center}
.imba-header.menu-direita .imba-menu{justify-content:flex-end}

/* Os botões de ação são independentes do alinhamento do menu e
   permanecem sempre encostados à direita do cabeçalho. */
.imba-header-acoes{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:12px;
	margin-left:auto;
	flex:0 0 auto;
	order:30;
}

.imba-menu a{
	color:inherit;
	text-decoration:none;
	font-size:.95rem;
	font-weight:500;
}
.imba-menu a:hover{opacity:.72}

/* Menu criado em Aparência > Menus. */
.imba-menu ul{
	display:flex;
	align-items:center;
	gap:26px;
	list-style:none;
	margin:0;
	padding:0;
}
.imba-menu ul li{position:relative;margin:0}

/* Submenu que abre ao passar o mouse. */
.imba-menu ul ul{
	display:none;
	position:absolute;
	top:100%;
	left:0;
	min-width:200px;
	flex-direction:column;
	align-items:stretch;
	gap:0;
	background:var(--imba-h-fundo,#fff);
	border:1px solid var(--imba-borda);
	border-radius:10px;
	padding:8px 0;
	box-shadow:0 8px 26px rgba(16,24,40,.12);
}
.imba-menu ul li:hover > ul{display:flex}
.imba-menu ul ul a{display:block;padding:9px 16px}

.imba-botao-topo{
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal)));
	color:#fff !important;
	border-radius:var(--imba-h-botao-raio,8px);
	padding:11px 20px;
	font-weight:600 !important;
	font-size:.9rem !important;
}
.imba-botao-topo:hover{filter:brightness(.93);opacity:1 !important}

/* Posição do logo. Os botões de ação nunca mudam de lado. */
.imba-header.logo-esquerda .imba-logo{order:0}
.imba-header.logo-esquerda .imba-menu{order:10}

/* Quando o logo é centralizado, ele continua realmente no centro e as
   ações ocupam a extremidade direita em uma área independente. */
.imba-header.logo-centro .imba-header-interno{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
	grid-template-areas:
		"vazio logo acoes"
		"menu menu menu";
	column-gap:20px;
	row-gap:12px;
}
.imba-header.logo-centro .imba-logo{grid-area:logo;justify-self:center}
.imba-header.logo-centro .imba-menu{grid-area:menu;width:100%;flex-wrap:wrap}
.imba-header.logo-centro .imba-header-acoes{grid-area:acoes;justify-self:end;margin-left:0}

.imba-header.logo-direita .imba-logo{order:20}
.imba-header.logo-direita .imba-menu{order:0;flex-wrap:wrap}

.imba-abrir{
	display:none;
	flex-direction:column;
	gap:5px;
	background:none;
	border:0;
	cursor:pointer;
	padding:6px;
	color:inherit;
}

@media (max-width:860px){
	.imba-header.logo-centro .imba-header-interno{display:flex}
	.imba-abrir{display:flex;order:20;margin-left:auto}
	.imba-logo{order:0 !important}
	.imba-header-acoes{order:30;margin-left:0;gap:8px}
	.imba-header-acoes .imba-botao-topo{padding:9px 12px;font-size:.82rem !important;white-space:nowrap}

	.imba-menu{
		display:none;
		flex:initial;
		position:absolute;
		top:100%;
		left:0;
		right:0;
		flex-direction:column;
		align-items:stretch;
		gap:0;
		background:var(--imba-h-fundo,#fff);
		color:var(--imba-h-texto,#101828);
		justify-content:flex-start !important;
		border-top:1px solid rgba(0,0,0,.06);
		padding:10px 24px 18px;
	}
	.imba-menu.aberto{display:flex}
	.imba-menu ul{flex-direction:column;align-items:stretch;gap:0}
	.imba-menu ul ul{position:static;display:flex;border:0;box-shadow:none;padding:0 0 0 14px}
	.imba-menu a{padding:13px 0;border-bottom:1px solid rgba(0,0,0,.06)}
	.imba-botao-topo{margin-top:12px;text-align:center;border-bottom:0 !important}
}

/* ------------------------------------------------------------
   Topo da página inicial
   ------------------------------------------------------------ */

.imba-topo{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:70px 24px;
	background-size:cover;
	background-position:center;
	background-color:#16233d;
	overflow:hidden;
}
.imba-topo::before{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,
		rgba(10,16,28,calc(var(--imba-veu,.45) * .7)),
		rgba(10,16,28,var(--imba-veu,.45)));
	z-index:1;
}

.imba-topo-video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	z-index:0;
}

.imba-topo-interno{
	position:relative;
	z-index:2;
	width:100%;
	max-width:var(--imba-largura);
}

.imba-topo-titulo{
	color:#fff;
	text-align:center;
	font-size:2.7rem;
	margin:0 0 10px;
	text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.imba-topo-sub{
	color:rgba(255,255,255,.92);
	text-align:center;
	font-size:1.05rem;
	margin:0 0 30px;
}
@media (max-width:640px){
	.imba-topo-titulo{font-size:1.75rem}
}

/* ------------------------------------------------------------
   Blocos da página inicial
   ------------------------------------------------------------ */

.imba-bloco{position:relative;width:100%}

.imba-bloco-interno{
	max-width:var(--imba-largura);
	margin:0 auto;
	padding:0 24px;
}

.imba-bloco-cabeca{margin-bottom:26px;text-align:center}
.imba-bloco-cabeca h2{margin:0;color:inherit}
.imba-bloco-sub{margin:8px 0 0;opacity:.75}

.imba-texto{font-size:1.02rem;line-height:1.75}
.imba-texto.centro{text-align:center;max-width:760px;margin:0 auto}
.imba-texto p:last-child{margin-bottom:0}

.imba-figura{margin:0}
.imba-figura img{width:100%;display:block;border-radius:var(--imba-raio)}
.imba-figura figcaption{margin-top:10px;font-size:.9rem;opacity:.7;text-align:center}

.imba-cta{
	position:relative;
	border-radius:var(--imba-raio);
	padding:46px 36px;
	text-align:center;
	background:rgba(19,85,214,.06);
}
.imba-cta.com-foto{
	background-size:cover;
	background-position:center;
	color:#fff;
	overflow:hidden;
}
.imba-cta.com-foto::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(10,16,28,.55);
}
.imba-cta-texto{position:relative;font-size:1.1rem}
.imba-cta-texto p:last-child{margin-bottom:0}
.imba-cta .imba-botao{position:relative;margin-top:22px}

.imba-colunas{
	display:grid;
	grid-template-columns:repeat(var(--imba-cols,3),minmax(0,1fr));
	gap:24px;
}
@media (max-width:860px){.imba-colunas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.imba-colunas{grid-template-columns:1fr}}

.imba-coluna{text-align:center}
.imba-coluna img{width:64px;height:64px;object-fit:contain;margin:0 auto 14px;display:block}
.imba-coluna h3{margin:0 0 8px;color:inherit}
.imba-coluna p{margin:0;opacity:.78}

.imba-aviso-admin{
	padding:16px;
	border:1px dashed var(--imba-borda);
	border-radius:10px;
	color:var(--imba-cinza);
	text-align:center;
}

/* ------------------------------------------------------------
   Botões
   ------------------------------------------------------------ */

.imba-botao{
	display:inline-block;
	background:var(--imba-principal);
	color:#fff !important;
	text-decoration:none;
	padding:13px 26px;
	border-radius:10px;
	font-size:14px;
	font-weight:500;
	line-height:1;
	border:0;
	cursor:pointer;
}
.imba-botao:hover{filter:brightness(.93)}
.imba-botao.secundario{
	background:transparent;
	color:var(--imba-principal) !important;
	border:1px solid var(--imba-borda);
}
.imba-botao:focus-visible{outline:3px solid #98b7f5;outline-offset:2px}

.imba-link-seta{
	display:inline-flex;
	align-items:center;
	gap:6px;
	text-decoration:none;
	font-weight:600;
	font-size:.9rem;
}
.imba-link-seta:hover{gap:10px}
.imba-icone{width:16px;height:16px;transition:transform .15s}

/* ------------------------------------------------------------
   Páginas, posts e listagens
   ------------------------------------------------------------ */

.imba-pagina,
.imba-imovel{padding-top:40px;padding-bottom:56px}

.imba-cabecalho-pagina{margin:36px 0 24px}
.imba-cabecalho-pagina h1{margin:0}
.imba-descricao{color:var(--imba-cinza);margin:8px 0 0}
.imba-meta{color:var(--imba-cinza);font-size:.85rem;margin:0 0 6px}

.imba-capa-pagina img{width:100%;border-radius:var(--imba-raio);display:block}

.imba-conteudo{font-size:1.05rem;line-height:1.75;max-width:820px}
.imba-conteudo img{border-radius:var(--imba-raio)}
.imba-conteudo blockquote{
	margin:24px 0;
	padding:4px 0 4px 20px;
	border-left:3px solid var(--imba-principal);
	color:var(--imba-cinza);
}

.imba-conteudo-livre{padding-top:40px;padding-bottom:40px}

.imba-lista-posts{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:26px;
	margin-bottom:40px;
}
@media (max-width:900px){.imba-lista-posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.imba-lista-posts{grid-template-columns:1fr}}

.imba-cartao-post{
	border:1px solid var(--imba-borda);
	border-radius:var(--imba-raio);
	overflow:hidden;
	display:flex;
	flex-direction:column;
	background:#fff;
}
.imba-cartao-foto{display:block;aspect-ratio:3/2;overflow:hidden}
.imba-cartao-foto img{width:100%;height:100%;object-fit:cover;display:block}
.imba-cartao-corpo{padding:20px}
.imba-cartao-titulo{font-size:1.15rem;margin:0 0 8px}
.imba-cartao-titulo a{color:inherit;text-decoration:none}
.imba-cartao-titulo a:hover{text-decoration:underline}
.imba-cartao-resumo{color:var(--imba-cinza);font-size:.95rem;margin:0 0 14px}

.imba-vazio{
	padding:40px;
	text-align:center;
	color:var(--imba-cinza);
	background:var(--imba-suave);
	border-radius:var(--imba-raio);
}

/* Navegação entre páginas. */
.imba-principal .nav-links{
	display:flex;
	justify-content:center;
	gap:8px;
	flex-wrap:wrap;
	margin-bottom:50px;
}
.imba-principal .page-numbers{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:42px;
	height:42px;
	padding:0 12px;
	border:1px solid var(--imba-borda);
	border-radius:10px;
	text-decoration:none;
	color:var(--imba-texto);
}
.imba-principal .page-numbers.current{
	background:var(--imba-principal);
	border-color:var(--imba-principal);
	color:#fff;
	font-weight:600;
}

/* Página não encontrada. */
.imba-404{text-align:center;padding:70px 24px 90px}
.imba-404-numero{
	font-size:5rem;
	font-weight:800;
	margin:0;
	color:var(--imba-principal);
	opacity:.18;
	line-height:1;
}
.imba-404-acoes{display:flex;gap:12px;justify-content:center;margin-top:26px;flex-wrap:wrap}

/* ------------------------------------------------------------
   Rodapé
   ------------------------------------------------------------ */

.imba-rodape{
	background:var(--imba-r-fundo,#101828);
	color:var(--imba-r-texto,#e6e8ec);
	margin-top:60px;
}

.imba-rodape-interno{
	max-width:var(--imba-largura);
	margin:0 auto;
	padding:56px 24px 0;
}

.imba-rodape-colunas{
	display:grid;
	grid-template-columns:1.6fr 1fr 1fr 1.2fr;
	gap:36px;
	padding-bottom:40px;
}
@media (max-width:900px){.imba-rodape-colunas{grid-template-columns:repeat(2,1fr);gap:30px}}
@media (max-width:560px){.imba-rodape-colunas{grid-template-columns:1fr}}

.imba-rodape-logo{margin:0 0 16px;display:flex;align-items:center}
.imba-rodape-logo img{display:block;width:auto;max-width:100%;object-fit:contain}
.imba-rodape-nome{margin:0 0 12px;font-size:1.15rem;font-weight:700}
.imba-rodape-texto{margin:0 0 12px;font-size:.92rem;line-height:1.7;opacity:.78}
.imba-rodape-creci{margin:0;font-size:.82rem;opacity:.6}
.imba-rodape-titulo{margin:0 0 14px;font-size:.95rem;font-weight:700}

.imba-rodape-col ul{list-style:none;margin:0;padding:0}
.imba-rodape-col li{margin:0 0 9px;font-size:.92rem;opacity:.82}
.imba-rodape-col a{color:inherit;text-decoration:none}
.imba-rodape-col a:hover{text-decoration:underline;opacity:1}

.imba-redes{display:flex;gap:10px;margin-top:18px}
.imba-redes a{
	width:38px;
	height:38px;
	border-radius:50%;
	border:1px solid rgba(255,255,255,.22);
	display:flex;
	align-items:center;
	justify-content:center;
	color:inherit;
}
.imba-redes a:hover{background:rgba(255,255,255,.12)}
.imba-redes .imba-icone{width:18px;height:18px}

.imba-rodape-fim{
	border-top:1px solid rgba(255,255,255,.14);
	padding:20px 0 26px;
	font-size:.85rem;
	opacity:.7;
	display:flex;
	justify-content:space-between;
	gap:16px;
	flex-wrap:wrap;
}
.imba-menu-legal{display:flex;gap:18px;list-style:none;margin:0;padding:0}
.imba-menu-legal a{color:inherit;text-decoration:none}
.imba-menu-legal a:hover{text-decoration:underline}

/* ============================================================
   AJUSTES 2.6.1 — botões de ação do cabeçalho em vidro
   ============================================================ */

/* Os botões de ação (como "Fale conosco") preservam a cor definida no
   Personalizar, mas usam o mesmo efeito translúcido das etiquetas dos cards. */
.imba-botao-topo{
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal)));
	background:color-mix(in srgb,var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) 72%,transparent) !important;
	border:1px solid rgba(255,255,255,.34);
	box-shadow:0 5px 18px rgba(16,24,40,.14);
	backdrop-filter:blur(12px) saturate(140%);
	-webkit-backdrop-filter:blur(12px) saturate(140%);
}
.imba-botao-topo:hover{
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal)));
	background:color-mix(in srgb,var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) 86%,transparent) !important;
	filter:none;
	opacity:1 !important;
}

@supports not (backdrop-filter: blur(4px)){
	.imba-botao-topo{
		background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) !important;
		opacity:.92;
	}
}


/* ============================================================
   AJUSTES 2.6.3 — ações do cabeçalho mais sólidas
   ============================================================ */

/* Os botões continuam com acabamento de vidro, mas com bem menos
   transparência. O texto nunca herda sublinhado de links do cabeçalho. */
.imba-header .imba-botao-topo,
.imba-header .imba-botao-topo:link,
.imba-header .imba-botao-topo:visited{
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) !important;
	background:color-mix(in srgb,var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) 88%,transparent) !important;
	text-decoration:none !important;
	border:1px solid rgba(255,255,255,.38);
	box-shadow:0 6px 18px rgba(16,24,40,.15);
	backdrop-filter:blur(12px) saturate(140%);
	-webkit-backdrop-filter:blur(12px) saturate(140%);
}
.imba-header .imba-botao-topo:hover,
.imba-header .imba-botao-topo:focus{
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) !important;
	background:color-mix(in srgb,var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) 96%,transparent) !important;
	text-decoration:none !important;
	filter:none;
}

@supports not (background:color-mix(in srgb,#000 50%,transparent)){
	.imba-header .imba-botao-topo,
	.imba-header .imba-botao-topo:link,
	.imba-header .imba-botao-topo:visited{
		background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) !important;
		opacity:.94;
	}
}

/* ============================================================
   AJUSTES 2.6.5 — botões do cabeçalho sem sombra
   ============================================================ */
.imba-header .imba-botao-topo,
.imba-header .imba-botao-topo:link,
.imba-header .imba-botao-topo:visited,
.imba-header .imba-botao-topo:hover,
.imba-header .imba-botao-topo:focus,
.imba-header .imba-botao-topo:active{
	box-shadow:none !important;
}


/* ============================================================
   AJUSTES 2.6.8 — dimensões e acabamento sólido dos botões de ação
   ============================================================ */
.imba-header .imba-botao-topo,
.imba-header .imba-botao-topo:link,
.imba-header .imba-botao-topo:visited,
.imba-header .imba-botao-topo:hover,
.imba-header .imba-botao-topo:focus,
.imba-header .imba-botao-topo:active{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:var(--imba-h-botao-largura,132px);
	height:var(--imba-h-botao-altura,48px);
	box-sizing:border-box;
	padding:0 14px;
	background:var(--imba-botao-cor,var(--imba-h-botao,var(--imba-principal))) !important;
	border:0 !important;
	box-shadow:none !important;
	backdrop-filter:none !important;
	-webkit-backdrop-filter:none !important;
	opacity:1 !important;
	filter:none !important;
	text-decoration:none !important;
}

@media (max-width:860px){
	.imba-header .imba-botao-topo,
	.imba-header .imba-botao-topo:link,
	.imba-header .imba-botao-topo:visited{
		padding:0 12px;
	}
}

/* ============================================================
   AJUSTES 2.6.9 — rodapé personalizável e navegação mobile
   ============================================================ */

/* O primeiro bloco do rodapé pode ter largura e alinhamento próprios. */
.imba-rodape-colunas{
	grid-template-columns:minmax(0,var(--imba-r-primeiro,32%)) repeat(2,minmax(0,1fr)) minmax(0,1.2fr);
}
.imba-rodape-sobre.alinhar-esquerda{text-align:left}
.imba-rodape-sobre.alinhar-centro{text-align:center}
.imba-rodape-sobre.alinhar-direita{text-align:right}
.imba-rodape-sobre.alinhar-esquerda .imba-rodape-logo,
.imba-rodape-sobre.alinhar-esquerda .imba-redes{justify-content:flex-start}
.imba-rodape-sobre.alinhar-centro .imba-rodape-logo,
.imba-rodape-sobre.alinhar-centro .imba-redes{justify-content:center}
.imba-rodape-sobre.alinhar-direita .imba-rodape-logo,
.imba-rodape-sobre.alinhar-direita .imba-redes{justify-content:flex-end}

/* As ações duplicadas dentro do menu existem apenas para mobile/tablet. */
.imba-header-acoes-mobile{display:none}

/* Botão de menu com ícone + texto. */
.imba-abrir{
	align-items:center;
	justify-content:center;
	flex-direction:row;
	gap:8px;
	min-height:40px;
	padding:8px 12px;
	border:1px solid rgba(127,127,127,.28);
	border-radius:9px;
	font:inherit;
	font-weight:600;
	line-height:1;
}
.imba-abrir-icone{
	display:flex;
	flex-direction:column;
	gap:4px;
	width:20px;
	flex:0 0 20px;
}
.imba-abrir-icone span{
	display:block;
	width:20px;
	height:2px;
	background:currentColor;
	border-radius:2px;
}
.imba-abrir-texto{display:block;font-size:.9rem;white-space:nowrap}

@media (max-width:900px){
	.imba-rodape-colunas{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
}

@media (max-width:860px){
	/* Mantém a proporção original do logo; nunca força largura e altura ao mesmo tempo. */
	.imba-logo{
		flex:0 1 auto;
		min-width:0;
		max-width:calc(100% - 112px);
	}
	.imba-logo img{
		width:auto !important;
		height:auto !important;
		max-width:100%;
		max-height:var(--imba-logo-altura,44px);
		object-fit:contain;
		object-position:left center;
	}
	.imba-header.logo-centro .imba-logo img{object-position:center center}
	.imba-header.logo-direita .imba-logo img{object-position:right center}

	/* No tablet/mobile os botões não ficam soltos no cabeçalho. */
	.imba-header-interno > .imba-header-acoes{display:none !important}
	.imba-header-acoes-mobile{
		display:grid;
		grid-template-columns:1fr;
		gap:10px;
		width:100%;
		padding-top:14px;
	}
	.imba-header-acoes-mobile .imba-botao-topo,
	.imba-header-acoes-mobile .imba-botao-topo:link,
	.imba-header-acoes-mobile .imba-botao-topo:visited{
		width:100% !important;
		max-width:none;
		margin:0;
	}
}

@media (max-width:560px){
	.imba-rodape-colunas{grid-template-columns:1fr}
}

/* ============================================================
   AJUSTES 2.7.0 — largura real do primeiro bloco do rodapé
   ============================================================ */
@media (min-width:901px){
	.imba-rodape-colunas{
		display:flex;
		align-items:flex-start;
		gap:36px;
	}
	.imba-rodape-colunas > .imba-rodape-sobre{
		flex:0 0 var(--imba-r-primeiro,32%);
		width:var(--imba-r-primeiro,32%);
		min-width:0;
	}
	.imba-rodape-colunas > .imba-rodape-col:not(.imba-rodape-sobre){
		flex:1 1 0;
		min-width:0;
	}
}
@media (max-width:900px){
	.imba-rodape-colunas{
		display:grid !important;
		grid-template-columns:repeat(2,minmax(0,1fr)) !important;
	}
	.imba-rodape-colunas > .imba-rodape-sobre{width:auto;max-width:none;flex:none}
}
@media (max-width:560px){
	.imba-rodape-colunas{grid-template-columns:1fr !important}
}


/* ============================================================
   AJUSTES 2.7.2 — prévia e rodapé real usam a mesma largura
   ============================================================ */
@media (min-width:901px){
    .imba-rodape .imba-rodape-colunas{
        display:grid !important;
        grid-template-columns:
            minmax(0,var(--imba-r-primeiro,32%))
            minmax(0,1fr)
            minmax(0,1fr)
            minmax(0,1.2fr) !important;
        gap:36px !important;
        align-items:start;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-sobre{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        flex:none !important;
        box-sizing:border-box;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-col:not(.imba-rodape-sobre){
        min-width:0 !important;
        width:auto !important;
        flex:none !important;
    }
}


/* ============================================================
   AJUSTES 2.7.3 — largura do rodapé 1:1 com a pré-visualização
   ============================================================ */
@media (min-width:901px){
    /*
     * O visualizador desktop possui 668px úteis. A largura escolhida no painel
     * é convertida para pixels a partir dessa mesma base no PHP. Usar essa
     * medida aqui evita que 45% vire ~500px no site só porque o container do
     * rodapé é maior que o visualizador.
     */
    .imba-rodape .imba-rodape-colunas{
        display:grid !important;
        grid-template-columns:
            minmax(0,var(--imba-r-primeiro-px,214px))
            minmax(0,1fr)
            minmax(0,1fr)
            minmax(0,1.2fr) !important;
        gap:36px !important;
        align-items:start;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-sobre{
        width:var(--imba-r-primeiro-px,214px) !important;
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box;
    }
}


/* ============================================================
   AJUSTES 2.7.4 — largura do primeiro bloco em pixels
   ============================================================ */
@media (min-width:901px){
    .imba-rodape .imba-rodape-colunas{
        display:grid !important;
        grid-template-columns:
            minmax(180px,var(--imba-r-primeiro-px,280px))
            minmax(0,1fr)
            minmax(0,1fr)
            minmax(0,1.2fr) !important;
        column-gap:36px !important;
        row-gap:36px !important;
        align-items:start;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-sobre{
        width:var(--imba-r-primeiro-px,280px) !important;
        max-width:520px !important;
        min-width:180px !important;
        box-sizing:border-box;
    }
    /* Um pequeno respiro adicional somente entre o 1º e o 2º bloco. */
    .imba-rodape .imba-rodape-colunas > .imba-rodape-col:nth-child(2){
        padding-left:26px;
        box-sizing:border-box;
    }
}


/* ============================================================
   AJUSTES 2.7.5 — largura simples em px + maior respiro 1→2
   ============================================================ */
@media (min-width:901px){
    .imba-rodape .imba-rodape-colunas{
        grid-template-columns:
            minmax(180px,var(--imba-r-primeiro-px,280px))
            minmax(0,1fr)
            minmax(0,1fr)
            minmax(0,1.2fr) !important;
        column-gap:36px !important;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-sobre{
        width:var(--imba-r-primeiro-px,280px) !important;
    }
    .imba-rodape .imba-rodape-colunas > .imba-rodape-col:nth-child(2){
        padding-left:26px !important;
    }
}

/* ============================================================
   AJUSTES 2.7.6 — menu mobile fluido
   ============================================================ */
@media (max-width:860px){
	/* Mantém o menu no fluxo de renderização para permitir transição suave. */
	.imba-menu{
		display:flex !important;
		max-height:0;
		opacity:0;
		visibility:hidden;
		pointer-events:none;
		transform:translateY(-8px);
		overflow:hidden;
		padding-top:0;
		padding-bottom:0;
		border-top-color:transparent;
		transition:
			max-height .36s cubic-bezier(.22,.61,.36,1),
			opacity .22s ease,
			transform .30s cubic-bezier(.22,.61,.36,1),
			padding .30s ease,
			border-color .20s ease,
			visibility 0s linear .36s;
		will-change:max-height,opacity,transform;
	}
	.imba-menu.aberto{
		max-height:calc(100vh - 64px);
		opacity:1;
		visibility:visible;
		pointer-events:auto;
		transform:translateY(0);
		overflow-y:auto;
		padding-top:10px;
		padding-bottom:18px;
		border-top-color:rgba(0,0,0,.06);
		transition-delay:0s;
	}
	.imba-abrir-icone span{
		transition:transform .24s ease,opacity .18s ease;
		transform-origin:center;
	}
	.imba-abrir.aberto .imba-abrir-icone span:nth-child(1){transform:translateY(6px) rotate(45deg)}
	.imba-abrir.aberto .imba-abrir-icone span:nth-child(2){opacity:0}
	.imba-abrir.aberto .imba-abrir-icone span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
}

/* ============================================================
   AJUSTES 2.7.8 — alinhamento do texto final do rodapé
   ============================================================ */
.imba-rodape-fim-texto{
	flex:1 1 280px;
	min-width:0;
	display:block;
}
.imba-rodape-fim-texto.alinhar-esquerda{text-align:left}
.imba-rodape-fim-texto.alinhar-centro{text-align:center}
.imba-rodape-fim-texto.alinhar-direita{text-align:right}
@media(max-width:560px){
	.imba-rodape-fim-texto{flex-basis:100%}
}

/* ============================================================
   AJUSTES 2.8.0 — busca da home centralizada na tela
   ------------------------------------------------------------
   A altura configurada continua definindo a área mínima da imagem,
   mas a posição vertical do conteúdo passa a ser calculada pelo JS
   para manter o centro do formulário de busca no centro do viewport.
   ============================================================ */
.imba-topo.imba-topo-busca-centralizada{
	position:relative;
}
.imba-topo.imba-topo-busca-centralizada .imba-topo-interno{
	position:absolute;
	left:50%;
	top:0;
	width:calc(100% - 48px);
	max-width:var(--imba-largura);
	transform:translateX(-50%);
	will-change:top;
}
@media (max-width:640px){
	.imba-topo.imba-topo-busca-centralizada .imba-topo-interno{
		width:calc(100% - 32px);
	}
}

/* ============================================================
   AJUSTES 2.8.1 — estabilidade e responsividade real da home no mobile
   ------------------------------------------------------------
   No celular o navegador altera a altura visual quando as barras superior
   e inferior aparecem/desaparecem. O topo da home não pode responder a
   essa variação, pois isso muda o recorte de background-size:cover e dá a
   impressão de que a foto está ampliando durante a rolagem.
   ============================================================ */

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

@media (max-width:860px){
	/* No tablet/celular o conteúdo do hero fica no fluxo normal. O JS de
	   centralização é reservado ao desktop, evitando saltos de layout. */
	.imba-topo.imba-topo-busca-centralizada{
		min-height:max(var(--imba-topo-altura,620px), calc(100svh - 84px)) !important;
		height:auto;
		padding:44px 20px;
		align-items:center;
		justify-content:center;
		background-size:cover;
		background-repeat:no-repeat;
	}
	.imba-topo.imba-topo-busca-centralizada .imba-topo-interno{
		position:relative;
		left:auto;
		top:auto !important;
		width:100%;
		max-width:var(--imba-largura);
		transform:none;
		will-change:auto;
	}
	.imba-topo-titulo{
		position:relative;
		margin-top:0;
	}
}

@media (max-width:640px){
	/* Em telas pequenas o cabeçalho deixa de sobrepor o hero. Isso elimina
	   a invasão do título sobre logo/menu no primeiro carregamento. */
	.imba-header.transparente,
	.imba-header.transparente.rolou{
		background:var(--imba-h-fundo,#fff);
		color:var(--imba-h-texto,#101828);
		border-bottom-color:rgba(0,0,0,.06);
		margin-bottom:0;
	}

	.imba-header-interno{
		padding-left:20px;
		padding-right:20px;
	}

	.imba-logo img{
		width:auto !important;
		height:auto !important;
		max-width:min(68vw,280px);
		max-height:var(--imba-logo-altura,58px);
		aspect-ratio:auto;
		object-fit:contain;
	}

	.imba-topo.imba-topo-busca-centralizada{
		/* svh permanece estável mesmo quando a barra do Safari/Chrome recolhe. */
		min-height:max(var(--imba-topo-altura,620px), calc(100svh - 88px)) !important;
		padding:34px 16px 42px;
	}

	.imba-topo-titulo{
		font-size:clamp(1.8rem,8vw,2.35rem);
		line-height:1.08;
		margin-bottom:14px;
	}
	.imba-topo-sub{
		font-size:1rem;
		line-height:1.4;
		margin-bottom:24px;
	}

	/* Evita qualquer largura mínima herdada de elementos internos da busca. */
	.imba-topo .imba-busca,
	.imba-topo .imba-busca-linha,
	.imba-topo .imba-busca-campo,
	.imba-topo .imba-busca-acoes{
		min-width:0;
		max-width:100%;
	}
}

/* Fallback para navegadores antigos sem suporte a svh. */
@supports not (height:100svh){
	@media (max-width:860px){
		.imba-topo.imba-topo-busca-centralizada{
			min-height:max(var(--imba-topo-altura,620px), calc(100vh - 84px)) !important;
		}
	}
}

/* ============================================================
   AJUSTES 2.8.2 — menu mobile sólido e respiro do hero
   ============================================================ */
@media (max-width:860px){
	/* Quando a navegação mobile estiver aberta, o cabeçalho inteiro recebe
	   fundo azul sólido. Assim logo, botão e painel formam uma única área. */
	.imba-header.menu-mobile-aberto,
	.imba-header.transparente.menu-mobile-aberto,
	.imba-header.transparente.rolou.menu-mobile-aberto{
		background:var(--imba-principal,#1355d6) !important;
		color:#fff !important;
		border-bottom-color:transparent !important;
		margin-bottom:0 !important;
	}
	.imba-header.menu-mobile-aberto .imba-menu{
		background:var(--imba-principal,#1355d6) !important;
		color:#fff !important;
		border-top-color:rgba(255,255,255,.14) !important;
	}
	.imba-header.menu-mobile-aberto .imba-menu a{
		color:#fff !important;
		border-bottom-color:rgba(255,255,255,.10) !important;
	}
	.imba-header.menu-mobile-aberto .imba-abrir{
		color:#fff !important;
		border-color:rgba(255,255,255,.26) !important;
	}

	/* Mais distância entre cabeçalho e conteúdo principal da home. */
	.imba-topo.imba-topo-busca-centralizada{
		padding-top:72px !important;
	}
}

@media (max-width:640px){
	.imba-topo.imba-topo-busca-centralizada{
		padding-top:78px !important;
		padding-bottom:46px !important;
	}
	.imba-topo-titulo{
		margin-top:0 !important;
		margin-bottom:18px !important;
	}
	.imba-topo-sub{
		margin-bottom:30px !important;
	}
}

/* ============================================================
   AJUSTES 2.9.1 — rodapé sem faixa extra e página de contato
   ============================================================ */
html{
	min-height:100%;
	background:var(--imba-r-fundo,#101828);
}
body{
	min-height:100vh;
	display:flex;
	flex-direction:column;
}
.imba-principal{
	flex:1 0 auto;
	width:100%;
}
.imba-rodape{
	flex:0 0 auto;
	width:100%;
	margin-bottom:0 !important;
}

/* Página de contato */
.imba-contato-pagina{background:var(--imba-fundo)}
.imba-contato-topo{
	padding:64px 0 46px;
	background:linear-gradient(135deg,rgba(var(--imba-principal-rgb),.11),rgba(var(--imba-principal-rgb),.035));
	border-bottom:1px solid rgba(var(--imba-principal-rgb),.10);
}
.imba-contato-topo-interno{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.imba-contato-kicker{display:inline-flex;margin-bottom:12px;color:var(--imba-principal);font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.imba-contato-topo h1{margin:0 0 10px;font-size:clamp(2rem,4vw,3.25rem);color:var(--imba-texto)}
.imba-contato-topo p{max-width:680px;margin:0;color:var(--imba-cinza);font-size:1.05rem}
.imba-contato-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:28px;padding-top:44px;padding-bottom:58px;align-items:start}
.imba-contato-info{min-width:0}
.imba-contato-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.imba-contato-info-card,
.imba-contato-endereco{
	display:flex;
	align-items:center;
	gap:13px;
	min-width:0;
	padding:17px 18px;
	background:#fff;
	border:1px solid rgba(16,24,40,.08);
	border-radius:var(--imba-raio);
	color:var(--imba-texto);
	text-decoration:none;
	box-shadow:0 8px 20px rgba(16,24,40,.035);
}
.imba-contato-info-card:hover{border-color:rgba(var(--imba-principal-rgb),.24);text-decoration:none}
.imba-contato-info-icone{width:42px;height:42px;flex:0 0 42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:rgba(var(--imba-principal-rgb),.10);color:var(--imba-principal)}
.imba-contato-info-icone svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.imba-contato-info-card span:last-child,.imba-contato-endereco>div{min-width:0;display:flex;flex-direction:column}
.imba-contato-info-card small,.imba-contato-endereco small{color:var(--imba-cinza);font-size:.76rem;margin-bottom:2px}
.imba-contato-info-card strong,.imba-contato-endereco strong{font-size:.94rem;line-height:1.35;overflow-wrap:anywhere}
.imba-contato-endereco{margin-top:12px}
.imba-contato-mapa{margin-top:12px;overflow:hidden;border-radius:calc(var(--imba-raio) + 2px);background:#e8edf4;min-height:330px}
.imba-contato-mapa iframe{display:block;width:100%;height:330px;border:0}
.imba-contato-form-card{background:#fff;border:1px solid rgba(16,24,40,.08);border-radius:calc(var(--imba-raio) + 2px);padding:28px;box-shadow:0 10px 28px rgba(16,24,40,.045)}
.imba-formulario-publico h2{margin:0 0 22px;font-size:1.55rem}
.imba-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.imba-form-campo{min-width:0}
.imba-form-span-2{grid-column:span 2}
.imba-form-campo label{display:block;margin-bottom:6px;font-size:.86rem;font-weight:650;color:#344054}
.imba-form-campo input,
.imba-form-campo select,
.imba-form-campo textarea{
	width:100%;
	border:1px solid #d9dee7;
	border-radius:10px;
	background:#fff;
	color:var(--imba-texto);
	font:inherit;
	outline:none;
	transition:border-color .16s ease,box-shadow .16s ease;
}
.imba-form-campo input,.imba-form-campo select{height:46px;padding:0 13px}
.imba-form-campo textarea{min-height:142px;padding:12px 13px;resize:vertical;line-height:1.5}
.imba-form-campo input:focus,.imba-form-campo select:focus,.imba-form-campo textarea:focus{border-color:rgba(var(--imba-principal-rgb),.62);box-shadow:0 0 0 3px rgba(var(--imba-principal-rgb),.10)}
.imba-enviar-contato{width:100%;margin-top:18px;min-height:48px;border:0;border-radius:10px;background:var(--imba-principal);color:#fff;font:inherit;font-weight:750;cursor:pointer}
.imba-enviar-contato:hover{filter:brightness(.96)}
.imba-enviar-contato:disabled{opacity:.6;cursor:wait}
.imba-formulario-publico .imba-retorno{margin:12px 0 0;padding:10px 12px;border-radius:8px;font-size:.88rem}
.imba-formulario-publico .imba-retorno.ok{background:#ecfdf3;color:#067647}
.imba-formulario-publico .imba-retorno.erro{background:#fef3f2;color:#b42318}
.imba-campo-oculto{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

@media(max-width:900px){
	.imba-contato-layout{grid-template-columns:1fr;gap:20px}
	.imba-contato-form-card{order:-1}
}
@media(max-width:640px){
	.imba-contato-topo{padding:38px 0 30px}
	.imba-contato-layout{padding:24px 10px 42px;gap:16px}
	.imba-contato-layout.imba-container{padding-left:10px;padding-right:10px}
	.imba-contato-info-grid{grid-template-columns:1fr}
	.imba-contato-info-card,.imba-contato-endereco{padding:15px}
	.imba-contato-form-card{padding:20px 16px;border-radius:14px}
	.imba-form-grid{grid-template-columns:1fr}
	.imba-form-span-2{grid-column:auto}
	.imba-contato-mapa,.imba-contato-mapa iframe{min-height:280px;height:280px}
}


/* ============================================================
   AJUSTES 2.9.2 — contato mobile
   ============================================================ */
@media (max-width:640px){
	.imba-contato-info-card,
	.imba-contato-endereco{
		display:flex !important;
		flex-direction:row !important;
		align-items:center !important;
		justify-content:flex-start !important;
		gap:14px !important;
	}
	.imba-contato-info-card .imba-contato-info-icone,
	.imba-contato-endereco .imba-contato-info-icone{
		margin:0 !important;
		flex:0 0 48px !important;
		width:48px !important;
		height:48px !important;
	}
	.imba-contato-info-card > span:last-child,
	.imba-contato-endereco > div{
		flex:1 1 auto !important;
		min-width:0 !important;
		text-align:left !important;
	}
}

/* ============================================================
   AJUSTES 2.9.3 — refinamento da página de contato
   ============================================================ */

/* Cabeçalho da página de contato: tipografia mais compacta e natural. */
.imba-contato-kicker{
	letter-spacing:0 !important;
}
.imba-contato-topo h1{
	font-size:clamp(1.75rem,3vw,2.4rem) !important;
	line-height:1.12;
}

/* Dados de contato com escala mais contida. */
.imba-contato-info-card small,
.imba-contato-endereco small{
	font-size:12px !important;
	line-height:1.35;
}
.imba-contato-info-card strong,
.imba-contato-endereco strong{
	font-size:14px !important;
	line-height:1.45;
}

@media (max-width:640px){
	.imba-contato-topo{
		padding:30px 0 24px;
	}
	.imba-contato-topo h1{
		font-size:1.75rem !important;
	}
	.imba-contato-topo p{
		font-size:.96rem;
		line-height:1.5;
	}
	.imba-contato-info-card strong,
	.imba-contato-endereco strong{
		font-size:14px !important;
	}
}
