/**
 * Imob Engine — página inicial.
 *
 * Composição própria da home: hero com busca, apresentação, imóveis em
 * destaque, carrossel de lançamentos, condomínios, bairros por região, bloco
 * institucional com números e chamada final.
 *
 * Tudo vive sob `.ie-hp`, com tokens próprios escopados no wrapper: a home tem
 * identidade visual própria (azul profundo + serifada nos títulos) sem vazar
 * variáveis para o resto do site nem depender da paleta global. O que faz
 * sentido herdar do tema — largura do container e fonte de texto — é lido com
 * `var(--ie-*, fallback)`, então a Central de Estilos continua no comando.
 *
 * Movimento é sempre progressive enhancement: as revelações só ocultam quando
 * há JavaScript (`html.ie-js`) e tudo é desligado em `prefers-reduced-motion`.
 */

/* =====================================================================
 * TOKENS.
 * ================================================================== */

.ie-hp {
	--ie-hp-blue-950: #0b2f5b;
	--ie-hp-blue-900: #123f78;
	--ie-hp-blue-800: #17539a;
	--ie-hp-blue-700: #1e67b7;
	--ie-hp-blue-600: #2d7bd0;
	--ie-hp-blue-100: #dfeeff;
	--ie-hp-blue-50: #f3f8ff;

	--ie-hp-ink: #15243a;
	--ie-hp-muted: #617085;
	--ie-hp-line: #dbe5f0;

	--ie-hp-white: #ffffff;
	--ie-hp-surface: #f7faff;
	--ie-hp-surface-2: #edf4fb;

	/* Superfície de cartão e campo: separadas para o modo escuro poder
	   escurecê-las sem mexer nos azuis de marca. */
	--ie-hp-card: #ffffff;
	--ie-hp-field: #f8fbff;
	--ie-hp-field-border: #cbdcf0;
	--ie-hp-on-blue: #ffffff;
	--ie-hp-accent-soft: #8fc6ff;
	--ie-hp-accent-text: #d9ecff;

	--ie-hp-shadow-sm: 0 10px 28px rgba(15, 56, 110, .08);
	--ie-hp-shadow-md: 0 18px 50px rgba(15, 56, 110, .14);
	--ie-hp-shadow-lg: 0 28px 70px rgba(8, 36, 78, .20);

	--ie-hp-radius-sm: 14px;
	--ie-hp-radius-md: 20px;
	--ie-hp-radius-lg: 30px;

	--ie-hp-ease: cubic-bezier(.22, .8, .22, 1);
	--ie-hp-container: min(var(--ie-container, 1180px), 92vw);

	--ie-hp-font-body: var(--ie-font, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	--ie-hp-font-display: Georgia, "Times New Roman", serif;

	color: var(--ie-hp-ink);
	font-family: var(--ie-hp-font-body);
	line-height: 1.5;
}

/* Modo escuro: os azuis de marca permanecem; apenas as superfícies neutras e
   o texto trocam de lado, para manter o contraste sem perder a identidade. */
[data-theme="dark"] .ie-hp {
	--ie-hp-ink: #eaf1fa;
	--ie-hp-muted: #9fb0c6;
	--ie-hp-line: #24354c;

	--ie-hp-white: #0d1621;
	--ie-hp-surface: #101c29;
	--ie-hp-surface-2: #16283a;

	--ie-hp-card: #132030;
	--ie-hp-field: #16273a;
	--ie-hp-field-border: #2b4160;

	--ie-hp-blue-50: #16283a;
	--ie-hp-blue-100: #1d3350;

	--ie-hp-shadow-sm: 0 10px 28px rgba(0, 0, 0, .35);
	--ie-hp-shadow-md: 0 18px 50px rgba(0, 0, 0, .45);
	--ie-hp-shadow-lg: 0 28px 70px rgba(0, 0, 0, .55);
}

/* =====================================================================
 * PRIMITIVAS COMPARTILHADAS.
 * ================================================================== */

.ie-hp__container {
	width: var(--ie-hp-container);
	margin-inline: auto;
}

.ie-hp img {
	display: block;
	width: 100%;
}

.ie-hp-section {
	padding: 100px 0;
	background: var(--ie-hp-white);
}

.ie-hp-section--soft {
	background: var(--ie-hp-surface);
}

.ie-hp-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--ie-hp-blue-700);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ie-hp-eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	border-radius: 999px;
	background: var(--ie-hp-blue-600);
	transition: width .35s var(--ie-hp-ease);
}

.ie-hp section:hover > * > .ie-hp-eyebrow::before,
.ie-hp-section:hover .ie-hp-eyebrow::before {
	width: 44px;
}

.ie-hp-title {
	margin: 12px 0 0;
	color: var(--ie-hp-ink);
	font-family: var(--ie-hp-font-display);
	font-size: clamp(2rem, 4vw, 4rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.04em;
}

.ie-hp-copy {
	margin: 0;
	max-width: 620px;
	color: var(--ie-hp-muted);
	font-size: 1rem;
	line-height: 1.8;
}

.ie-hp-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 34px;
}

.ie-hp-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding-bottom: 5px;
	border-bottom: 1px solid currentColor;
	color: var(--ie-hp-blue-800);
	font-size: .82rem;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
	transition: gap .25s var(--ie-hp-ease), color .25s ease;
}

.ie-hp-link:hover,
.ie-hp-link:focus-visible {
	gap: 15px;
	color: var(--ie-hp-blue-600);
}

/* =====================================================================
 * HERO.
 * ================================================================== */

.ie-hp-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 760px;
	padding: 150px 0 74px;
	overflow: hidden;
	background: var(--ie-hp-blue-950);
	color: #fff;
}

.ie-hp-hero__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.ie-hp-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.04);
	transition: transform 1.2s var(--ie-hp-ease);
}

.ie-hp-hero:hover .ie-hp-hero__media img {
	transform: scale(1.075);
}

.ie-hp-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 30, 64, .88) 0%, rgba(11, 47, 91, .65) 46%, rgba(11, 47, 91, .28) 100%),
		linear-gradient(0deg, rgba(7, 30, 64, .58), transparent 52%);
}

.ie-hp-hero__inner {
	position: relative;
	z-index: 2;
}

.ie-hp-hero__kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: #dbeeff;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.ie-hp-hero__kicker::before {
	content: "";
	width: 36px;
	height: 2px;
	border-radius: 999px;
	background: var(--ie-hp-accent-soft);
}

.ie-hp-hero__title {
	margin: 0;
	max-width: 780px;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: clamp(3rem, 6.9vw, 6.3rem);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.055em;
}

.ie-hp-hero__copy {
	max-width: 590px;
	margin: 24px 0 32px;
	color: rgba(255, 255, 255, .88);
	font-size: 1rem;
	line-height: 1.75;
}

/* =====================================================================
 * BUSCA.
 * ================================================================== */

.ie-hp-search {
	max-width: 1040px;
	padding: 10px;
	border-radius: 22px;
	background: var(--ie-hp-card);
	color: var(--ie-hp-ink);
	box-shadow: var(--ie-hp-shadow-lg);
	transition: transform .35s var(--ie-hp-ease), box-shadow .35s ease;
}

.ie-hp-search:focus-within {
	transform: translateY(-5px);
	box-shadow: 0 32px 80px rgba(8, 36, 78, .28);
}

.ie-hp-search__tabs {
	display: flex;
	gap: 6px;
	padding: 4px 6px 10px;
}

/* O rádio guarda o estado (funciona sem JavaScript); o rótulo é a aba. */
.ie-hp-search__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.ie-hp-search__tab {
	border: 0;
	border-radius: 999px;
	padding: 9px 14px;
	background: transparent;
	color: var(--ie-hp-muted);
	font-size: .77rem;
	font-weight: 800;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, transform .25s var(--ie-hp-ease);
}

.ie-hp-search__tab:hover {
	background: var(--ie-hp-blue-50);
	color: var(--ie-hp-blue-800);
	transform: translateY(-2px);
}

.ie-hp-search__radio:checked + .ie-hp-search__tab {
	background: var(--ie-hp-blue-800);
	color: #fff;
}

.ie-hp-search__radio:focus-visible + .ie-hp-search__tab {
	outline: 2px solid var(--ie-hp-blue-600);
	outline-offset: 2px;
}

.ie-hp-search__row {
	display: grid;
	grid-template-columns: 1.5fr .85fr .85fr auto;
	gap: 10px;
	align-items: end;
}

.ie-hp-search__field {
	position: relative;
	min-width: 0;
}

.ie-hp-search__field label {
	display: block;
	margin: 0 0 7px 3px;
	color: var(--ie-hp-blue-900);
	font-size: .64rem;
	font-weight: 900;
	letter-spacing: .11em;
	text-transform: uppercase;
}

[data-theme="dark"] .ie-hp-search__field label {
	color: var(--ie-hp-accent-soft);
}

.ie-hp-search__control {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 52px;
	padding: 0 15px;
	border: 1px solid var(--ie-hp-field-border);
	border-radius: 14px;
	background: var(--ie-hp-field);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
	transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s var(--ie-hp-ease);
}

[data-theme="dark"] .ie-hp-search__control {
	box-shadow: none;
}

.ie-hp-search__field:hover .ie-hp-search__control {
	background: var(--ie-hp-card);
	border-color: #9fc3ec;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(18, 63, 120, .08);
}

.ie-hp-search__field:focus-within .ie-hp-search__control {
	background: var(--ie-hp-card);
	border-color: var(--ie-hp-blue-600);
	transform: translateY(-2px);
	box-shadow: 0 0 0 3px rgba(45, 123, 208, .13), 0 8px 22px rgba(18, 63, 120, .10);
}

.ie-hp-search__control input,
.ie-hp-search__control select {
	width: 100%;
	min-width: 0;
	height: 50px;
	border: 0;
	outline: none;
	background: transparent;
	color: var(--ie-hp-ink);
	font: inherit;
	font-size: .88rem;
}

.ie-hp-search__control input::placeholder {
	color: #8897aa;
	opacity: 1;
}

.ie-hp-search__control select {
	cursor: pointer;
	appearance: auto;
}

.ie-hp-search__control--money {
	gap: 8px;
}

.ie-hp-search__prefix {
	flex: 0 0 auto;
	color: var(--ie-hp-blue-800);
	font-size: .86rem;
	font-weight: 900;
	transition: color .25s ease;
}

.ie-hp-search__field:focus-within .ie-hp-search__prefix {
	color: var(--ie-hp-blue-600);
}

.ie-hp-search__control--money input {
	padding: 0;
}

.ie-hp-search__submit {
	align-self: stretch;
	min-width: 170px;
	margin: 0;
	border: 0;
	border-radius: 14px;
	background: var(--ie-hp-blue-700);
	color: #fff;
	font: inherit;
	font-weight: 900;
	cursor: pointer;
	transition: transform .28s var(--ie-hp-ease), background .25s ease, box-shadow .25s ease;
}

.ie-hp-search__submit:hover {
	background: var(--ie-hp-blue-900);
	transform: translateY(-2px) scale(1.01);
	box-shadow: 0 12px 24px rgba(18, 63, 120, .25);
}

/* =====================================================================
 * APRESENTAÇÃO.
 * ================================================================== */

.ie-hp-intro {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: 78px;
	align-items: end;
}

.ie-hp-features {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 70px;
	border-top: 1px solid var(--ie-hp-line);
	border-bottom: 1px solid var(--ie-hp-line);
}

.ie-hp-feature {
	position: relative;
	padding: 30px;
	border-right: 1px solid var(--ie-hp-line);
	overflow: hidden;
	transition: transform .35s var(--ie-hp-ease), background .35s ease;
}

.ie-hp-feature:first-child { padding-left: 0; }
.ie-hp-feature:last-child { border-right: 0; }

.ie-hp-feature::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 3px;
	background: var(--ie-hp-blue-700);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s var(--ie-hp-ease);
}

.ie-hp-feature:hover {
	background: var(--ie-hp-blue-50);
	transform: translateY(-5px);
}

.ie-hp-feature:hover::after {
	transform: scaleX(1);
}

.ie-hp-feature__num {
	margin: 0 0 22px;
	color: var(--ie-hp-blue-700);
	font-family: var(--ie-hp-font-display);
	font-size: 1rem;
}

.ie-hp-feature__title {
	margin: 0 0 10px;
	color: var(--ie-hp-ink);
	font-family: var(--ie-hp-font-display);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.25;
}

.ie-hp-feature__text {
	margin: 0;
	color: var(--ie-hp-muted);
	font-size: .88rem;
	line-height: 1.7;
}

/* =====================================================================
 * FILTROS DE IMÓVEIS.
 * ================================================================== */

.ie-hp-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}

.ie-hp-filter {
	border: 1px solid var(--ie-hp-line);
	border-radius: 999px;
	padding: 9px 15px;
	background: var(--ie-hp-card);
	color: var(--ie-hp-ink);
	font: inherit;
	font-size: .76rem;
	font-weight: 800;
	cursor: pointer;
	transition: transform .25s var(--ie-hp-ease), background .25s ease, color .25s ease, border-color .25s ease;
}

.ie-hp-filter:hover {
	transform: translateY(-2px);
	border-color: var(--ie-hp-blue-600);
	color: var(--ie-hp-blue-800);
}

.ie-hp-filter.is-active {
	background: var(--ie-hp-blue-800);
	border-color: var(--ie-hp-blue-800);
	color: #fff;
}

/* =====================================================================
 * CARTÕES DE IMÓVEL.
 * ================================================================== */

.ie-hp-props {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.ie-hp-prop {
	border: 1px solid var(--ie-hp-line);
	border-radius: var(--ie-hp-radius-md);
	background: var(--ie-hp-card);
	overflow: hidden;
	box-shadow: var(--ie-hp-shadow-sm);
	transform-style: preserve-3d;
	transition: transform .45s var(--ie-hp-ease), box-shadow .45s ease, border-color .3s ease;
}

.ie-hp-prop:hover {
	border-color: #c8daf0;
	box-shadow: var(--ie-hp-shadow-md);
}

.ie-hp-prop[hidden] { display: none; }

.ie-hp-prop__media {
	position: relative;
	height: 320px;
	overflow: hidden;
	background: var(--ie-hp-surface-2);
}

.ie-hp-prop__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .75s var(--ie-hp-ease);
}

.ie-hp-prop:hover .ie-hp-prop__media img {
	transform: scale(1.07);
}

.ie-hp-prop__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 8px 10px;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: var(--ie-hp-blue-900);
	backdrop-filter: blur(8px);
	font-size: .65rem;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ie-hp-prop__fav {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .95);
	color: var(--ie-hp-blue-900);
	font-size: 1.18rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(8, 36, 78, .12);
	transition: transform .25s var(--ie-hp-ease), background .25s ease, color .25s ease;
}

.ie-hp-prop__fav:hover {
	transform: scale(1.12) rotate(-5deg);
}

.ie-hp-prop__fav[aria-pressed="true"] {
	background: var(--ie-hp-blue-800);
	color: #fff;
}

/* Coração vazado por padrão, cheio quando favoritado. */
.ie-hp-prop__fav-on { display: none; }
.ie-hp-prop__fav[aria-pressed="true"] .ie-hp-prop__fav-off { display: none; }
.ie-hp-prop__fav[aria-pressed="true"] .ie-hp-prop__fav-on { display: block; }

.ie-hp-prop__overlay {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	display: flex;
	justify-content: flex-end;
	padding: 55px 16px 16px;
	background: linear-gradient(transparent, rgba(7, 30, 64, .76));
	opacity: 0;
	text-decoration: none;
	transition: opacity .35s ease;
}

.ie-hp-prop:hover .ie-hp-prop__overlay {
	opacity: 1;
}

.ie-hp-prop__view {
	color: #fff;
	font-size: .78rem;
	font-weight: 900;
	transform: translateY(8px);
	transition: transform .35s var(--ie-hp-ease);
}

.ie-hp-prop:hover .ie-hp-prop__view {
	transform: translateY(0);
}

.ie-hp-prop__body {
	padding: 18px;
}

.ie-hp-prop__price {
	margin: 0 0 7px;
	color: var(--ie-hp-blue-900);
	font-family: var(--ie-hp-font-display);
	font-size: 1.45rem;
}

[data-theme="dark"] .ie-hp-prop__price {
	color: var(--ie-hp-accent-soft);
}

.ie-hp-prop__title {
	margin: 0;
	font-size: .96rem;
	font-weight: 800;
	line-height: 1.4;
}

.ie-hp-prop__title a {
	color: var(--ie-hp-ink);
	text-decoration: none;
}

.ie-hp-prop__title a:hover,
.ie-hp-prop__title a:focus-visible {
	color: var(--ie-brand-fg-hover);
}

.ie-hp-prop__location {
	margin: 6px 0 0;
	color: var(--ie-hp-muted);
	font-size: .78rem;
}

.ie-hp-prop__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 14px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--ie-hp-line);
	list-style: none;
	color: var(--ie-hp-muted);
	font-size: .74rem;
}

/* =====================================================================
 * CARROSSEL DE LANÇAMENTOS.
 * ================================================================== */

.ie-hp-launch {
	position: relative;
	overflow: hidden;
	background: var(--ie-hp-blue-950);
	color: #fff;
}

/* Estado base (também o de fallback): faixa rolável com encaixe, todos os
   empreendimentos alcançáveis sem JavaScript. O modo carrossel só entra
   quando o próprio controlador se anuncia com `is-enhanced`. */
.ie-hp-launch__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
}

.ie-hp-show {
	scroll-snap-align: start;
}

/* No modo carrossel o recorte é do `.ie-hp-launch` (que já tem overflow
   hidden), NUNCA do trilho: com overflow no próprio trilho, os slides 2 e 3
   ficam fora da caixa dele e são recortados — o trilho desliza, mas só o
   primeiro slide chega a ser pintado. */
.ie-hp-launch.is-enhanced .ie-hp-launch__track {
	overflow: visible;
	scroll-snap-type: none;
	transform: translateX(0);
	transition: transform .72s var(--ie-hp-ease);
	will-change: transform;
}

.ie-hp-show {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	min-width: 100%;
	min-height: 660px;
	background: var(--ie-hp-blue-950);
	color: #fff;
}

.ie-hp-show__media {
	position: relative;
	min-height: 560px;
	overflow: hidden;
}

.ie-hp-show__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 60%, rgba(11, 47, 91, .18));
	pointer-events: none;
}

.ie-hp-show__media img {
	height: 100%;
	object-fit: cover;
	transition: transform .9s var(--ie-hp-ease);
}

.ie-hp-show:hover .ie-hp-show__media img {
	transform: scale(1.05);
}

.ie-hp-show__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 80px clamp(42px, 7vw, 94px);
}

.ie-hp-show .ie-hp-eyebrow {
	color: var(--ie-hp-accent-text);
}

.ie-hp-show .ie-hp-eyebrow::before {
	background: var(--ie-hp-accent-soft);
}

.ie-hp-show__title {
	margin: 16px 0 8px;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: clamp(2.7rem, 5vw, 4.6rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.04em;
}

.ie-hp-show__title a {
	color: inherit;
	text-decoration: none;
}

.ie-hp-show__title a:hover,
.ie-hp-show__title a:focus-visible {
	color: var(--ie-brand-fg-hover);
}

.ie-hp-show__location {
	margin: 0 0 22px;
	color: var(--ie-hp-accent-text);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ie-hp-show__text {
	max-width: 510px;
	margin: 0;
	color: rgba(255, 255, 255, .80);
	line-height: 1.8;
}

.ie-hp-show__meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 34px 0;
	padding: 22px 0;
	border-top: 1px solid rgba(255, 255, 255, .18);
	border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.ie-hp-show__meta dt {
	margin-bottom: 4px;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: 1.55rem;
	font-weight: 400;
}

.ie-hp-show__meta dd {
	margin: 0;
	color: rgba(255, 255, 255, .66);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.ie-hp-btn {
	align-self: flex-start;
	display: inline-block;
	border: 0;
	border-radius: 999px;
	padding: 13px 19px;
	background: #fff;
	color: var(--ie-hp-blue-950);
	font: inherit;
	font-size: .78rem;
	font-weight: 900;
	text-decoration: none;
	cursor: pointer;
	transition: transform .28s var(--ie-hp-ease), background .25s ease, box-shadow .25s ease;
}

.ie-hp-btn:hover {
	transform: translateY(-3px);
	background: #dcecff;
	color: var(--ie-hp-blue-950);
	box-shadow: 0 12px 26px rgba(0, 0, 0, .20);
}

.ie-hp-launch__controls {
	position: absolute;
	right: max(24px, 4vw);
	bottom: 28px;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 10px;
}

.ie-hp-launch__arrow {
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, .42);
	border-radius: 50%;
	background: rgba(8, 38, 74, .45);
	color: #fff;
	backdrop-filter: blur(10px);
	font: inherit;
	font-size: 1rem;
	cursor: pointer;
	transition: transform .28s var(--ie-hp-ease), background .25s ease, border-color .25s ease;
}

.ie-hp-launch__arrow:hover {
	transform: translateY(-3px);
	background: #fff;
	border-color: #fff;
	color: var(--ie-hp-blue-950);
}

.ie-hp-launch__dots {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 8px 10px;
	border-radius: 999px;
	background: rgba(8, 38, 74, .45);
	backdrop-filter: blur(10px);
}

.ie-hp-launch__dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .42);
	cursor: pointer;
	transition: width .28s var(--ie-hp-ease), background .25s ease;
}

.ie-hp-launch__dot.is-active {
	width: 24px;
	background: #fff;
}

/* =====================================================================
 * CONDOMÍNIOS.
 * ================================================================== */

.ie-hp-condos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 40px;
}

.ie-hp-condo {
	position: relative;
	min-height: 390px;
	border-radius: var(--ie-hp-radius-md);
	overflow: hidden;
	isolation: isolate;
	background: var(--ie-hp-blue-900);
	color: #fff;
	box-shadow: var(--ie-hp-shadow-sm);
	transition: transform .4s var(--ie-hp-ease), box-shadow .4s ease;
}

.ie-hp-condo:hover {
	transform: translateY(-7px);
	box-shadow: var(--ie-hp-shadow-md);
}

.ie-hp-condo__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s var(--ie-hp-ease), filter .45s ease;
}

.ie-hp-condo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(7, 30, 64, .92) 0%, rgba(7, 30, 64, .38) 52%, rgba(7, 30, 64, .08) 82%);
	transition: background .4s ease;
}

.ie-hp-condo:hover .ie-hp-condo__bg {
	transform: scale(1.075);
	filter: saturate(1.08);
}

.ie-hp-condo:hover::after {
	background: linear-gradient(0deg, rgba(7, 30, 64, .96) 0%, rgba(7, 30, 64, .46) 56%, rgba(7, 30, 64, .10) 84%);
}

.ie-hp-condo__top {
	position: absolute;
	top: 16px;
	left: 16px;
	right: 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ie-hp-condo__badge {
	padding: 8px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: var(--ie-hp-blue-900);
	font-size: .65rem;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ie-hp-condo__count {
	color: rgba(255, 255, 255, .86);
	font-size: .72rem;
	font-weight: 800;
}

.ie-hp-condo__content {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 20px;
}

.ie-hp-condo__kicker {
	margin: 0 0 6px;
	color: var(--ie-hp-accent-text);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ie-hp-condo__title {
	margin: 0 0 13px;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: 1.72rem;
	font-weight: 400;
	line-height: 1.08;
}

.ie-hp-condo__title a {
	color: inherit;
	text-decoration: none;
}

/* O link do título cobre o cartão inteiro — mantém um alvo grande sem
   aninhar interativos nem exigir JavaScript. */
.ie-hp-condo__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ie-hp-condo__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	font-size: .76rem;
	font-weight: 900;
	transition: gap .28s var(--ie-hp-ease);
}

.ie-hp-condo:hover .ie-hp-condo__link {
	gap: 14px;
}

/* =====================================================================
 * BAIRROS POR REGIÃO.
 * ================================================================== */

.ie-hp-zones__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 34px 0 24px;
}

.ie-hp-zone-filter {
	border: 1px solid var(--ie-hp-line);
	border-radius: 999px;
	padding: 10px 16px;
	background: var(--ie-hp-card);
	color: var(--ie-hp-ink);
	font: inherit;
	font-size: .76rem;
	font-weight: 800;
	cursor: pointer;
	transition: transform .25s var(--ie-hp-ease), border-color .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

.ie-hp-zone-filter:hover {
	transform: translateY(-2px);
	border-color: var(--ie-hp-blue-600);
	color: var(--ie-hp-blue-800);
	box-shadow: 0 8px 18px rgba(18, 63, 120, .08);
}

.ie-hp-zone-filter.is-active {
	background: var(--ie-hp-blue-800);
	border-color: var(--ie-hp-blue-800);
	color: #fff;
}

/* Sem JavaScript todas as regiões ficam empilhadas e visíveis. */
.ie-hp-zone + .ie-hp-zone {
	margin-top: 46px;
}

.ie-hp-zone[hidden] {
	display: none;
}

.ie-hp-zone__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 27px;
	margin-bottom: 16px;
}

.ie-hp-zone__title {
	margin: 0;
	color: var(--ie-hp-blue-900);
	font-family: var(--ie-hp-font-display);
	font-size: 1.18rem;
	font-weight: 400;
}

[data-theme="dark"] .ie-hp-zone__title {
	color: var(--ie-hp-accent-soft);
}

.ie-hp-zone__desc {
	margin: 0;
	color: var(--ie-hp-muted);
	font-size: .76rem;
}

.ie-hp-areas {
	display: grid;
	gap: 14px;
	grid-template-columns: 1.15fr .85fr .85fr;
	grid-template-rows: 250px 190px;
}

/* Arranjos para quando a região tem menos de quatro bairros cadastrados: sem
   isso a grade de mosaico ficaria com uma célula vazia. */
.ie-hp-areas--1 { grid-template-columns: 1fr; grid-template-rows: 320px; }
.ie-hp-areas--2 { grid-template-columns: 1fr 1fr; grid-template-rows: 300px; }
.ie-hp-areas--3 { grid-template-columns: 1.15fr .85fr; grid-template-rows: 210px 210px; }
.ie-hp-areas--3 > :first-child { grid-row: 1 / 3; }

.ie-hp-area {
	position: relative;
	border-radius: var(--ie-hp-radius-md);
	overflow: hidden;
	background: var(--ie-hp-blue-900);
	color: #fff;
	text-decoration: none;
	transition: transform .4s var(--ie-hp-ease), box-shadow .35s ease;
}

.ie-hp-area--featured { grid-row: 1 / 3; }
.ie-hp-area--wide { grid-column: 2 / 4; }

.ie-hp-area:hover {
	box-shadow: var(--ie-hp-shadow-md);
}

.ie-hp-area img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .75s var(--ie-hp-ease), filter .45s ease;
}

.ie-hp-area::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(7, 30, 64, .82), rgba(7, 30, 64, .05) 70%);
	transition: background .4s ease;
}

.ie-hp-area:hover img {
	transform: scale(1.07);
	filter: saturate(1.08);
}

.ie-hp-area:hover::after {
	background: linear-gradient(0deg, rgba(7, 30, 64, .92), rgba(7, 30, 64, .10) 72%);
}

.ie-hp-area__content {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 18px;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
}

.ie-hp-area__count {
	display: block;
	margin-bottom: 4px;
	color: rgba(255, 255, 255, .78);
	font-size: .66rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ie-hp-area__name {
	display: block;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: 1.65rem;
	font-weight: 400;
	line-height: 1.1;
}

.ie-hp-area__arrow {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .54);
	border-radius: 50%;
	color: #fff;
	transition: transform .35s var(--ie-hp-ease), background .3s ease, color .3s ease;
}

.ie-hp-area:hover .ie-hp-area__arrow {
	transform: rotate(-45deg);
	background: #fff;
	color: var(--ie-hp-blue-950);
}

/* =====================================================================
 * SOBRE E NÚMEROS.
 * ================================================================== */

.ie-hp-about {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 82px;
	align-items: center;
}

.ie-hp-about__media {
	position: relative;
	height: 560px;
	border-radius: var(--ie-hp-radius-lg);
	overflow: hidden;
	background: var(--ie-hp-surface-2);
	box-shadow: var(--ie-hp-shadow-sm);
}

.ie-hp-about__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .85s var(--ie-hp-ease);
}

.ie-hp-about__media:hover img {
	transform: scale(1.055);
}

.ie-hp-about__badge {
	position: absolute;
	right: 18px;
	bottom: 18px;
	display: grid;
	place-items: center;
	width: 112px;
	height: 112px;
	margin: 0;
	border: 1px solid var(--ie-hp-line);
	border-radius: 50%;
	background: var(--ie-hp-card);
	color: var(--ie-hp-blue-900);
	text-align: center;
	font-size: .66rem;
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: .09em;
	text-transform: uppercase;
	transition: transform .6s var(--ie-hp-ease);
}

[data-theme="dark"] .ie-hp-about__badge {
	color: var(--ie-hp-accent-soft);
}

.ie-hp-about__media:hover .ie-hp-about__badge {
	transform: rotate(10deg) scale(1.03);
}

.ie-hp-about__copy {
	margin: 22px 0 28px;
}

.ie-hp-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 80px 0 0;
	border: 1px solid var(--ie-hp-line);
	border-radius: var(--ie-hp-radius-md);
	overflow: hidden;
	background: var(--ie-hp-surface);
}

.ie-hp-stat {
	padding: 30px 22px;
	border-right: 1px solid var(--ie-hp-line);
	transition: background .3s ease, transform .3s var(--ie-hp-ease);
}

.ie-hp-stat:last-child { border-right: 0; }

.ie-hp-stat:hover {
	background: var(--ie-hp-card);
	transform: translateY(-4px);
}

.ie-hp-stat__num {
	display: block;
	margin-bottom: 3px;
	color: var(--ie-hp-blue-900);
	font-family: var(--ie-hp-font-display);
	font-size: 2rem;
	font-weight: 400;
}

[data-theme="dark"] .ie-hp-stat__num {
	color: var(--ie-hp-accent-soft);
}

.ie-hp-stat__label {
	margin: 0;
	color: var(--ie-hp-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* =====================================================================
 * CHAMADA FINAL.
 * ================================================================== */

.ie-hp-cta {
	overflow: hidden;
	background: var(--ie-hp-blue-950);
	color: #fff;
}

.ie-hp-cta__grid {
	display: grid;
	grid-template-columns: .92fr 1.08fr;
	min-height: 390px;
}

.ie-hp-cta__media {
	position: relative;
	overflow: hidden;
	background: var(--ie-hp-blue-900);
}

.ie-hp-cta__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 47, 91, .06), rgba(11, 47, 91, .30));
	pointer-events: none;
}

.ie-hp-cta__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .9s var(--ie-hp-ease), filter .5s ease;
}

.ie-hp-cta:hover .ie-hp-cta__media img {
	transform: scale(1.06);
	filter: saturate(1.06);
}

.ie-hp-cta__content {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 70px clamp(42px, 7vw, 100px);
	overflow: hidden;
	background: linear-gradient(135deg, var(--ie-hp-blue-900), var(--ie-hp-blue-700));
}

.ie-hp-cta__content::before,
.ie-hp-cta__content::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 50%;
	pointer-events: none;
	transition: transform .8s var(--ie-hp-ease);
}

.ie-hp-cta__content::before {
	width: 430px;
	height: 430px;
	right: -180px;
	top: -220px;
}

.ie-hp-cta__content::after {
	width: 280px;
	height: 280px;
	right: -82px;
	top: -112px;
}

.ie-hp-cta:hover .ie-hp-cta__content::before { transform: scale(1.12); }
.ie-hp-cta:hover .ie-hp-cta__content::after { transform: scale(.92); }

.ie-hp-cta .ie-hp-eyebrow {
	position: relative;
	z-index: 2;
	color: var(--ie-hp-accent-text);
}

.ie-hp-cta .ie-hp-eyebrow::before {
	background: var(--ie-hp-accent-soft);
}

.ie-hp-cta__title {
	position: relative;
	z-index: 2;
	max-width: 690px;
	margin: 14px 0 18px;
	color: #fff;
	font-family: var(--ie-hp-font-display);
	font-size: clamp(2.5rem, 5vw, 4.6rem);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.045em;
}

.ie-hp-cta__text {
	position: relative;
	z-index: 2;
	max-width: 560px;
	margin: 0 0 26px;
	color: rgba(255, 255, 255, .80);
	line-height: 1.75;
}

.ie-hp-cta__btn {
	position: relative;
	z-index: 2;
	display: inline-block;
	border: 0;
	border-radius: 999px;
	padding: 14px 20px;
	background: #fff;
	color: var(--ie-hp-blue-950);
	font: inherit;
	font-size: .8rem;
	font-weight: 900;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .28s var(--ie-hp-ease), background .25s ease, box-shadow .25s ease;
}

.ie-hp-cta__btn:hover {
	transform: translateY(-3px);
	background: #e8f3ff;
	box-shadow: 0 16px 32px rgba(0, 0, 0, .18);
}

/* =====================================================================
 * MICROINTERAÇÕES.
 * ================================================================== */

/* A revelação só existe quando há JavaScript para desfazê-la. */
html.ie-js .ie-hp-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .72s var(--ie-hp-ease), transform .72s var(--ie-hp-ease);
}

html.ie-js .ie-hp-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.ie-hp-magnetic {
	position: relative;
	transition: transform .2s var(--ie-hp-ease);
}

/* Foco visível consistente em toda a home. */
.ie-hp :is(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--ie-hp-blue-600);
	outline-offset: 3px;
	border-radius: 4px;
}

.ie-hp-hero :is(a, button, input, select):focus-visible,
.ie-hp-launch :is(a, button):focus-visible,
.ie-hp-cta :is(a, button):focus-visible,
.ie-hp-area:focus-visible,
.ie-hp-condo__title a:focus-visible {
	outline-color: #fff;
}

/* =====================================================================
 * RESPONSIVO.
 * ================================================================== */

@media (max-width: 980px) {
	.ie-hp-search__row { grid-template-columns: 1fr 1fr; }
	.ie-hp-search__submit { grid-column: 1 / -1; min-height: 50px; margin-top: 6px; }

	.ie-hp-intro,
	.ie-hp-about { grid-template-columns: 1fr; gap: 36px; }

	.ie-hp-features { grid-template-columns: 1fr; }
	.ie-hp-feature,
	.ie-hp-feature:first-child { padding: 26px 0; border-right: 0; border-bottom: 1px solid var(--ie-hp-line); }
	.ie-hp-feature:last-child { border-bottom: 0; }

	.ie-hp-props { grid-template-columns: 1fr 1fr; }

	.ie-hp-show { grid-template-columns: 1fr; }
	.ie-hp-show__media { min-height: 420px; }
	.ie-hp-launch__controls { right: 22px; bottom: 22px; }

	.ie-hp-condos { grid-template-columns: 1fr 1fr; }
	.ie-hp-condo:last-child { grid-column: 1 / -1; }

	.ie-hp-areas { grid-template-columns: 1fr 1fr; grid-template-rows: 300px 220px; }
	.ie-hp-area--featured { grid-column: 1 / -1; grid-row: auto; }
	.ie-hp-area--wide { grid-column: auto; }

	.ie-hp-stats { grid-template-columns: 1fr 1fr; }
	.ie-hp-stat:nth-child(2) { border-right: 0; }
	.ie-hp-stat:nth-child(-n+2) { border-bottom: 1px solid var(--ie-hp-line); }

	.ie-hp-cta__grid { grid-template-columns: 1fr; }
	.ie-hp-cta__media { min-height: 330px; }
}

@media (max-width: 680px) {
	.ie-hp-section { padding: 74px 0; }

	.ie-hp-hero { min-height: 760px; padding-top: 130px; }
	.ie-hp-hero__title { font-size: 3.1rem; }

	.ie-hp-search__row { grid-template-columns: 1fr; }
	.ie-hp-search__submit { grid-column: auto; }

	.ie-hp-head { flex-direction: column; align-items: flex-start; }

	.ie-hp-props { grid-template-columns: 1fr; }
	.ie-hp-prop__media { height: 350px; }

	.ie-hp-show__copy { padding: 54px 6vw 100px; }
	.ie-hp-show__meta { grid-template-columns: 1fr 1fr; }
	.ie-hp-show__meta > div:last-child { grid-column: 1 / -1; }
	.ie-hp-launch__controls { left: 6vw; right: auto; bottom: 28px; }

	.ie-hp-condos { grid-template-columns: 1fr; }
	.ie-hp-condo,
	.ie-hp-condo:last-child { grid-column: auto; min-height: 330px; }

	.ie-hp-zone__head { flex-direction: column; align-items: flex-start; gap: 4px; }

	.ie-hp-areas { grid-template-columns: 1fr; grid-template-rows: none; }
	.ie-hp-area,
	.ie-hp-area--featured,
	.ie-hp-area--wide { grid-column: auto; grid-row: auto; height: 260px; }

	.ie-hp-about__media { height: 410px; }

	.ie-hp-stats { grid-template-columns: 1fr 1fr; }
	.ie-hp-stat { min-height: 120px; }
}

@media (prefers-reduced-motion: reduce) {
	.ie-hp *,
	.ie-hp *::before,
	.ie-hp *::after {
		animation: none !important;
		transition-duration: .01ms !important;
	}

	html.ie-js .ie-hp-reveal { opacity: 1; transform: none; }
	.ie-hp-hero__media img { transform: none; }
}
