/* ==========================================================================
   Template do imóvel (single-imovel) — réplica estruturada da página aprovada.
   Fonte: Sarabun. Escala de textos calibrada com os valores computados da
   página de referência (desktop + mobile). Corpo de texto tem tamanho FIXO
   (não escala) — é o que o revisor precisa conferir no mobile.
   Imagens: locais em assets/img.
   ========================================================================== */

:root{
	--red:#d01139;
	--ink:#0d0d0d;
	--body:rgba(0,0,0,.58);
	--body-strong:rgba(0,0,0,.78);
	--eyebrow:#666;
	--line:#e6e6e6;
	--bg:#fff;
	--bg-soft:#fafafa;
	--beje:#f3ece1;
	--dark:#0d0d0d;
	--maxw:1200px;
	--font:'Sarabun',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

.imovel-page{font-family:var(--font);color:var(--ink);line-height:1.55;background:var(--bg);
	-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.imovel-page *{box-sizing:border-box;}
.imovel-page img{max-width:100%;display:block;}
.imv-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%;}
.imv-section{padding:96px 0;}
.imv-section--soft{background:var(--bg-soft);}
.imv-section--dark{background:var(--dark);color:#fff;}
.imv-section--beje{background:var(--beje);}
/* Seção FORA DO MVP — não sobe nesta versão, o revisor não precisa revisar.
   O conteúdo continua lá (consultável); muda só o fundo, vermelho bem claro.
   Ver inc/mvp-fora.php. */
.imv-section--fora-mvp{background:#fdecec;position:relative;}
/* Faixa de aviso no topo da seção (não precisa mexer no template). */
.imv-section--fora-mvp:not([data-fora-mvp])::before{content:"Fora do MVP — não precisa revisar";
	position:absolute;top:0;left:0;right:0;padding:8px 24px;text-align:center;
	background:#f6d3d3;color:#8e3b34;font-size:11px;font-weight:700;
	letter-spacing:.18em;text-transform:uppercase;}
/* Placeholder opcional (seção que nem será alimentada). */
[data-fora-mvp]{padding:64px 0;}
.imv-eyebrow--fora{color:#c0392b;}
[data-fora-mvp] .imv-title,
[data-fora-mvp] .imv-lead{color:#8e3b34;}

/* ---------- Blocos de tipografia reutilizáveis ---------- */
/* Selo / eyebrow — NÃO escala (fixo, como na referência). */
.imv-eyebrow{display:inline-block;font-size:11px;line-height:1.5;font-weight:700;
	letter-spacing:.18em;text-transform:uppercase;color:var(--eyebrow);margin-bottom:18px;}
.imv-section--dark .imv-eyebrow{color:#fff;}

/* Título de seção — fluido (56px desktop → 32px mobile), peso fino. */
.imv-title{font-weight:200;font-size:clamp(31px,5.2vw,56px);line-height:1.05;
	letter-spacing:-.02em;color:var(--ink);margin:0 0 20px;}
.imv-title--sm{font-size:clamp(26px,3.6vw,36px);}
.imv-section--dark .imv-title{color:#fff;}
/* Destaque marcado com <em> pelo revisor (como no front original) — vermelho,
   sem itálico. Vale para todos os títulos de seção e o título de localização. */
.imv-title em,
.imv-loc-hero__title em{color:var(--red);font-style:normal;}

/* Descrição / lead — TAMANHO FIXO 15px (é o que o revisor confere no mobile). */
.imv-lead{font-size:15px;line-height:1.7;font-weight:300;color:var(--body);
	max-width:640px;margin:0 0 4px;}
.imv-section--dark .imv-lead{color:rgba(255,255,255,.65);}
.imv-head--center .imv-lead{margin-left:auto;margin-right:auto;}

/* Corpo longo (apresentação, respostas) — FIXO 15px. */
.imv-body{font-size:15px;line-height:1.75;font-weight:300;color:var(--body-strong);}

.imv-head{margin-bottom:44px;max-width:760px;}
.imv-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.imv-head__cta{margin-top:28px;}

/* ---------- Botão (texto que não varia) ---------- */
.imv-btn{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;
	text-decoration:none;padding:15px 30px;border-radius:40px;font-weight:600;font-size:12.5px;
	letter-spacing:.14em;text-transform:uppercase;border:0;cursor:default;line-height:1;}
.imv-btn--sm{padding:11px 22px;font-size:11.5px;}
.imv-btn--ghost{background:transparent;color:var(--ink);border:1px solid rgba(0,0,0,.2);}
.imv-btn--ghost-light{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(2px);}

/* ---------- HEADER (mockup) ---------- */
.imv-nav{position:sticky;top:0;z-index:50;background:rgba(13,13,13,.94);
	backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);}
.imv-nav__inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:64px;
	display:flex;align-items:center;gap:28px;}
.imv-nav__logo{font-size:22px;font-weight:700;letter-spacing:-.03em;color:#fff;text-decoration:none;}
.imv-nav__links{display:flex;gap:22px;margin-left:12px;flex:1;}
.imv-nav__links a{color:rgba(255,255,255,.75);text-decoration:none;font-size:12px;
	font-weight:500;letter-spacing:.08em;text-transform:uppercase;}
.imv-nav__links a:hover{color:#fff;}
.imv-nav__cta{margin-left:auto;}

/* ---------- HERO ---------- */
.imv-hero{position:relative;min-height:82vh;display:flex;align-items:flex-end;
	background:#1a1a1a center/cover no-repeat;color:#fff;}
.imv-hero::after{content:"";position:absolute;inset:0;
	background:linear-gradient(0deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.15) 45%,rgba(0,0,0,0) 70%);}
.imv-hero__inner{position:relative;z-index:2;width:100%;padding-bottom:56px;}
.imv-hero__eyebrow{display:flex;gap:16px;align-items:center;flex-wrap:wrap;
	font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:300;
	color:rgba(255,255,255,.8);margin-bottom:18px;}
.imv-hero__fase{display:inline-flex;align-items:center;gap:8px;font-weight:700;
	letter-spacing:.14em;color:#fff;}
.imv-hero__fase::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);}
.imv-hero__name{font-weight:100;font-size:clamp(48px,8.2vw,88px);line-height:.98;
	letter-spacing:-.035em;margin:0;}
.imv-hero__name span{display:block;color:var(--red);}
/* Status do produto no hero — só nos imóveis de portfólio, onde é a informação
   que a listagem oficial destaca (ex.: 100% Vendido). */
.imv-hero__chamada{margin:0 0 10px;font-size:13px;letter-spacing:.16em;
	text-transform:uppercase;font-weight:700;color:var(--red);}

/* ---------- DADOS PARA OUTRAS PÁGINAS (Home) ----------
   Seção de revisão: campos do CPT que a Home/listagens consomem e que não
   aparecem no front do imóvel. Boxes de produto centralizados, texto 16px. */
.imv-blocklabel{display:block;text-align:center;font-size:11px;font-weight:700;
	letter-spacing:.18em;text-transform:uppercase;color:var(--eyebrow);margin:0 0 18px;}
.imv-boxes + .imv-blocklabel{margin-top:48px;}
.imv-boxes{display:flex;flex-direction:column;gap:24px;}
.imv-box{width:100%;background:#fff;border:1px solid rgba(0,0,0,.08);
	border-radius:12px;padding:26px 28px;text-align:center;}
.imv-box__label{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;
	text-transform:uppercase;color:var(--eyebrow);margin-bottom:14px;}
.imv-box__text{font-size:16px;line-height:1.7;font-weight:300;color:var(--body-strong);
	text-align:left;}
.imv-box__text--center{text-align:center;}
/* Card estreito, alinhado ao card da Home (usado pela Cidade). */
.imv-box--card{width:402px;max-width:100%;margin:24px auto 0;}
.imv-box__text p{margin:0 0 14px;}
.imv-box__text p:last-child{margin-bottom:0;}
/* Letra miúda legal que vem dentro do texto do box (mesmo papel na Home). */
.imv-box__text .txt-legal{display:block;margin-top:12px;font-size:13px;color:var(--body);}

/* Card da Home (.emp-card da referência) — medidas COPIADAS dos valores
   computados do front para o revisor conferir se o texto quebra o layout.
   Imagem e botão "Ver detalhes" são só marcação. */
.imv-card{width:402px;max-width:100%;min-height:462px;margin:0 auto;background:#fff;
	border-radius:12px;overflow:hidden;display:flex;flex-direction:column;}
.imv-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;
	background:#e9e4da center/cover no-repeat;}
.imv-card__badge{position:absolute;top:12px;left:12px;padding:5px 11px;border-radius:999px;
	background:rgba(255,255,255,.92);color:#1a1a1a;font-size:9.92px;line-height:14.88px;
	font-weight:700;letter-spacing:1.1904px;text-transform:uppercase;}
.imv-card__fav{position:absolute;top:12px;right:12px;width:32px;height:32px;color:#fff;
	display:flex;align-items:center;justify-content:center;}
.imv-card__fav svg{width:18px;height:18px;}
.imv-card__body{padding:24px;display:flex;flex-direction:column;flex-grow:1;}
.imv-card__hood{font-size:9.92px;line-height:14.88px;font-weight:700;letter-spacing:1.5872px;
	text-transform:uppercase;color:var(--red);margin:0 0 13.6px;}
.imv-card__name{font-size:22px;line-height:25.3px;font-weight:300;letter-spacing:-.22px;
	color:var(--ink);margin:0 0 18.4px;}
.imv-card__specs{display:flex;flex-wrap:wrap;gap:8.8px;margin:0 0 22.4px;}
.imv-card__tag{display:flex;align-items:center;gap:6px;padding:4.8px 11.2px;border-radius:999px;
	border:1px solid rgba(0,0,0,.12);font-size:13px;line-height:19.5px;color:var(--body-strong);}
.imv-card__tag svg{width:15px;height:15px;flex:none;color:var(--body);}
.imv-card__prox{font-size:12.8px;line-height:19.2px;color:var(--body);margin:0 0 24px;}
.imv-card__cta{display:flex;align-items:center;gap:6.4px;margin-top:auto;font-size:12.8px;
	line-height:19.2px;font-weight:600;letter-spacing:1.536px;text-transform:uppercase;color:var(--red);}
.imv-card__cta svg{width:15px;height:15px;flex:none;}

/* ---------- SPECS ---------- */
.imv-specs{border-bottom:1px solid var(--line);}
.imv-specs__grid{display:grid;grid-template-columns:repeat(4,1fr);}
.imv-specs__cell{padding:38px 32px 38px 0;border-right:1px solid var(--line);}
.imv-specs__cell:first-child{padding-left:0;}
.imv-specs__cell:last-child{border-right:0;}
.imv-specs__val{font-weight:100;font-size:clamp(30px,3.4vw,42px);line-height:1;
	letter-spacing:-.03em;color:var(--ink);}
.imv-specs__title{font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:16px;}
.imv-specs__det{color:var(--body);font-size:14px;font-weight:300;margin-top:5px;}

/* ---------- APRESENTAÇÃO ---------- */
.imv-two{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
.imv-two__media img{border-radius:8px;width:100%;object-fit:cover;}
.imv-logo{height:40px;width:auto;margin-bottom:26px;opacity:.85;}
.imv-body strong{font-weight:500;color:var(--ink);}
.imv-band{width:100%;height:56vh;min-height:340px;object-fit:cover;}

/* ---------- LAZER ---------- */
.imv-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 40px;}
.imv-gallery figure{margin:0;aspect-ratio:1/1;overflow:hidden;border-radius:8px;}
.imv-gallery img{width:100%;height:100%;object-fit:cover;}
.imv-amen{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);
	gap:14px 32px;}
.imv-amen li{position:relative;padding-left:26px;font-size:15px;font-weight:400;
	color:var(--body-strong);line-height:1.3;}
.imv-amen li::before{content:"";position:absolute;left:0;top:2px;width:16px;height:16px;
	border-radius:50%;background:var(--red);
	-webkit-mask:no-repeat center/10px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");
	mask:no-repeat center/10px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");}

/* ---------- TOUR ---------- */
.imv-tour{position:relative;border-radius:10px;overflow:hidden;min-height:460px;
	display:flex;align-items:center;justify-content:center;
	background:#222 center/cover no-repeat;color:#fff;text-align:center;}
.imv-tour::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35);}
.imv-tour .imv-btn{position:relative;z-index:2;}

/* ---------- VÍDEOS ---------- */
.imv-videos{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.imv-video{position:relative;margin:0;aspect-ratio:16/9;border-radius:10px;overflow:hidden;
	background:#000 center/cover no-repeat;}
.imv-video::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
	width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.9)
	no-repeat center/16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");}
.imv-video__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 18px 16px;
	color:#fff;font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
	background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);}

/* ---------- PLANTAS ---------- */
.imv-planta{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.imv-planta img{width:100%;}
.imv-planta__cap{padding:18px 22px;font-weight:600;font-size:14px;border-top:1px solid var(--line);}

/* ---------- LOCALIZAÇÃO ---------- */
.imv-loc-sec{background:var(--bg-soft);}
.imv-loc-hero{position:relative;min-height:60vh;display:flex;align-items:center;
	background:#1a1a1a center/cover no-repeat;color:#fff;}
.imv-loc-hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.42);}
.imv-loc-hero .imv-wrap{position:relative;z-index:2;}
.imv-loc-hero__title{font-weight:200;font-size:clamp(34px,6vw,68px);line-height:1.03;
	letter-spacing:-.02em;margin:0 0 24px;max-width:12ch;}
.imv-loc-body{padding:56px 24px 0;display:grid;grid-template-columns:1fr;gap:0;}
.imv-plantao{background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px;margin-bottom:28px;}
.imv-plantao strong{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
	color:var(--body);font-weight:600;margin-bottom:8px;}
.imv-plantao span{font-size:19px;font-weight:400;}
.imv-prox{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);
	gap:0;border-top:1px solid var(--line);}
.imv-prox li{display:flex;flex-direction:column;gap:8px;padding:26px 24px 26px 0;border-right:1px solid var(--line);}
.imv-prox li:last-child{border-right:0;}
.imv-prox b{color:var(--ink);font-weight:200;font-size:clamp(24px,3vw,30px);letter-spacing:-.02em;
	font-variant-numeric:tabular-nums;}
.imv-prox span{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(0,0,0,.4);line-height:1.4;}
.imv-loc-body__cta{margin:36px 0 0;}

/* ---------- FAQ (fundo escuro, como na referência) ---------- */
.imv-faq{max-width:840px;margin:0 auto;}
.imv-faq details{border-bottom:1px solid rgba(255,255,255,.14);padding:24px 0;}
.imv-faq summary{cursor:pointer;font-weight:400;font-size:16.5px;color:#fff;list-style:none;
	display:flex;justify-content:space-between;gap:24px;line-height:1.4;}
.imv-faq summary::-webkit-details-marker{display:none;}
.imv-faq summary::after{content:"+";color:var(--red);font-size:26px;line-height:1;font-weight:300;}
.imv-faq details[open] summary::after{content:"–";}
.imv-faq p{color:rgba(255,255,255,.72);font-size:15px;line-height:1.65;font-weight:300;margin:16px 0 0;max-width:70ch;}
/* CTA "Ver FAQ completo" — centralizado sob o accordion do imóvel. */
.imv-faq-cta{text-align:center;margin:44px 0 0;}

/* ---------- FOOTER (mockup) ---------- */
.imv-foot{background:#0a0a0a;color:rgba(255,255,255,.7);padding:64px 0 28px;}
.imv-foot__inner{display:grid;grid-template-columns:1.2fr 2fr;gap:48px;padding-bottom:40px;
	border-bottom:1px solid rgba(255,255,255,.1);}
.imv-foot__logo{font-size:26px;font-weight:700;letter-spacing:-.03em;color:#fff;}
.imv-foot__brand p{font-size:14px;line-height:1.6;margin:16px 0 0;max-width:34ch;}
.imv-foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.imv-foot__cols h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;
	margin:0 0 16px;font-weight:600;}
.imv-foot__cols a{display:block;color:rgba(255,255,255,.6);text-decoration:none;font-size:14px;
	font-weight:300;padding:5px 0;}
.imv-foot__cols a:hover{color:#fff;}
.imv-foot__legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
	padding-top:24px;font-size:12px;color:rgba(255,255,255,.4);}

/* ---------- Aviso de revisão ---------- */
.imv-note{background:#fff8e1;border-bottom:1px solid #f0d98a;color:#6b5300;font-size:13px;
	padding:9px 24px;text-align:center;}

/* ==========================================================================
   PÁGINA INTERNA — BAIRRO (reaproveita o design system acima)
   ========================================================================== */

/* Hero da interna: título grande (como o nome do imóvel) + subtítulo. */
.imv-hero--interna{min-height:64vh;}
.imv-hero__title{font-weight:100;font-size:clamp(44px,8vw,86px);line-height:1;
	letter-spacing:-.035em;margin:0;color:#fff;}
.imv-hero__title em{color:var(--red);font-style:normal;}
.imv-hero__sub{font-size:16px;line-height:1.7;font-weight:300;color:rgba(255,255,255,.82);
	max-width:620px;margin:22px 0 0;}

/* Eyebrow claro (sobre banner escuro). */
.imv-eyebrow--light{color:#fff;opacity:.9;}
.imv-loc-hero .imv-eyebrow{margin-bottom:16px;}

/* Faixa do plantão de vendas (sob o banner do mapa). */
.imv-plantao-strip{background:var(--dark);color:#fff;}
.imv-plantao-strip .imv-wrap{display:flex;justify-content:space-between;align-items:baseline;
	gap:24px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px;}
.imv-plantao-strip__label{font-size:clamp(18px,2.2vw,24px);font-weight:300;}
.imv-plantao-strip__addr{font-size:clamp(15px,1.6vw,20px);font-weight:400;color:rgba(255,255,255,.8);}

/* Categorias de locais próximos — ABAS (como no front aprovado).
   Fallback sem JS: a nav some e os painéis empilham com o nome da categoria
   como rótulo, para o revisor ver todo o texto mesmo sem JS. */
.imv-tabs{padding-top:56px;padding-bottom:8px;}
.imv-tabs__nav{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);}
.imv-tabs__btn{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;
	margin-bottom:-1px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:700;
	letter-spacing:.16em;text-transform:uppercase;color:var(--eyebrow);padding:16px 20px;
	white-space:nowrap;transition:color .15s,border-color .15s;}
.imv-tabs__btn:hover{color:var(--ink);}
.imv-tabs__btn.is-active{color:var(--red);border-bottom-color:var(--red);}
.imv-tabs__panel{padding-top:12px;}
.imv-tabs__panel-title{margin:26px 0 0;display:block;}
/* Com JS: vira abas de verdade (só um painel visível, nav aparece). */
.imv-tabs.is-js .imv-tabs__nav{display:flex;}
.imv-tabs.is-js .imv-tabs__panel{display:none;}
.imv-tabs.is-js .imv-tabs__panel.is-active{display:block;}
.imv-tabs.is-js .imv-tabs__panel-title{display:none;}
/* Sem JS: esconde a nav (botões não fariam nada) e mostra os títulos. */
.imv-tabs:not(.is-js) .imv-tabs__nav{display:none;}
/* Locais em duas colunas dentro do painel. */
.imv-locais{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:56px;}
.imv-local{padding:14px 0;border-top:1px solid var(--line);}
.imv-local:nth-child(-n+2){border-top:0;}
.imv-local__head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;}
.imv-local__nome{font-size:15px;font-weight:500;color:var(--ink);}
.imv-local__dist{font-size:12.5px;font-weight:700;color:var(--red);letter-spacing:.02em;
	font-variant-numeric:tabular-nums;white-space:nowrap;}
.imv-local__desc{display:block;font-size:13.5px;font-weight:300;color:var(--body);margin-top:3px;}

/* Histórico — gráfico de linha (valorização do m²). SVG server-side, sem libs.
   O texto do SVG usa unidades do viewBox, então escala junto com a largura. */
.imv-chart{margin:12px 0 0;}
.imv-chart svg{display:block;width:100%;height:auto;overflow:visible;}
.imv-chart__axis{stroke:#dcdcdc;stroke-width:1;}
.imv-chart__grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4;}
.imv-chart__area{stroke:none;}
.imv-chart__line{fill:none;stroke:var(--red);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;}
.imv-chart__dot{fill:#fff;stroke:var(--red);stroke-width:2.5;}
.imv-chart__val{fill:var(--ink);font-family:var(--font);font-weight:400;font-size:20px;
	font-variant-numeric:tabular-nums;}
.imv-chart__yr{fill:rgba(0,0,0,.55);font-family:var(--font);font-weight:700;font-size:12px;
	letter-spacing:.14em;text-transform:uppercase;}
.imv-chart__delta{fill:var(--red);font-family:var(--font);font-weight:700;font-size:13px;
	font-variant-numeric:tabular-nums;}
.imv-fonte{font-size:13px;font-weight:300;color:var(--body);margin:22px 0 0;}

/* ==========================================================================
   PÁGINA INTERNA — PLANTAS (reaproveita o design system acima)
   ========================================================================== */

/* Seletor de formatos: imagem grande à ESQUERDA + abas verticais à DIREITA;
   os detalhes do formato ativo (título/descrição/specs/diferenciais) ficam
   ABAIXO, em largura total. O grid resolve o posicionamento (igual ao front). */
.imv-fmt{display:grid;grid-template-columns:1fr 264px;column-gap:48px;row-gap:44px;
	align-items:start;padding-top:8px;padding-bottom:0;}
.imv-fmt__stage{position:relative;grid-column:1;grid-row:1;margin:0;}
.imv-fmt__nav{grid-column:2;grid-row:1;align-self:start;}
.imv-fmt__panels{grid-column:1 / -1;grid-row:2;}

/* Badge do formato ativo sobre a imagem (centro-topo). Sincroniza via tabs.js. */
.imv-fmt__badge{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:2;
	background:rgba(13,13,13,.86);color:#fff;font-size:11px;font-weight:600;letter-spacing:.14em;
	text-transform:uppercase;padding:9px 16px;border-radius:30px;white-space:nowrap;}
.imv-fmt__stage .imv-planta__cap{justify-content:flex-start;}

/* Abas verticais (sobrescreve a nav horizontal base do .imv-tabs). */
.imv-fmt__nav{display:flex;flex-direction:column;gap:0;border-bottom:0;}
.imv-fmt__tab{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
	text-align:left;margin:0;padding:16px 6px;background:transparent;border:0;
	border-bottom:1px solid var(--line);cursor:pointer;font-family:inherit;
	letter-spacing:normal;text-transform:none;white-space:normal;}
.imv-fmt__tab:first-child{border-top:1px solid var(--line);}
.imv-fmt__tab-dorms{display:flex;flex-direction:column;line-height:1;}
.imv-fmt__tab-num{font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.02em;transition:color .15s;}
.imv-fmt__tab-unit{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
	color:rgba(0,0,0,.35);margin-top:5px;}
.imv-fmt__tab-area{font-size:14px;font-weight:700;color:var(--ink);}
.imv-fmt__tab:hover .imv-fmt__tab-num{color:var(--red);}
.imv-fmt__tab.is-active .imv-fmt__tab-num{color:var(--red);}
.imv-fmt__tab.is-active{border-bottom-color:var(--line);} /* anula a borda vermelha da base */

/* Detalhes abaixo: título/descrição (esq.) + CTA "Tenho interesse" (dir.). */
.imv-fmt__head{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;}
.imv-fmt__intro{max-width:520px;}
.imv-fmt__intro .imv-title--sm{margin-bottom:14px;}
.imv-fmt__cta{margin:6px 0 0;flex-shrink:0;}

/* Specs dentro do painel — sem a borda inferior de seção; separador no topo. */
.imv-specs--inline{border-bottom:0;border-top:1px solid var(--line);margin-top:40px;}
.imv-specs--inline .imv-specs__cell{padding-top:30px;padding-bottom:30px;}

/* Bloco de diferenciais (checklist reaproveitando .imv-amen). */
.imv-planta-dif{margin-top:36px;}
.imv-planta-dif .imv-eyebrow{margin-bottom:16px;}

/* Carrossel de ambientes (seção Apartamento). Sem JS: rola horizontalmente
   (scroll-snap) e todos os slides ficam acessíveis; com JS: setas + contador. */
.imv-carousel{position:relative;}
.imv-carousel__track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.imv-carousel__track::-webkit-scrollbar{display:none;}
.imv-carousel__slide{position:relative;margin:0;flex:0 0 100%;scroll-snap-align:start;
	aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#eee;}
.imv-carousel__slide img{width:100%;height:100%;object-fit:cover;}
.imv-carousel__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px 24px 20px;color:#fff;
	font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
	background:linear-gradient(0deg,rgba(0,0,0,.82),transparent);}
.imv-carousel__controls{display:flex;align-items:center;gap:20px;margin-top:22px;}
.imv-carousel__btn{width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,0,0,.2);
	background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
	color:var(--ink);transition:border-color .15s,color .15s;padding:0;}
.imv-carousel__btn:hover:not(:disabled){border-color:var(--red);color:var(--red);}
.imv-carousel__btn:disabled{opacity:.3;cursor:default;}
.imv-carousel__btn svg{width:16px;height:16px;fill:currentColor;}
.imv-carousel__count{font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--body);
	font-variant-numeric:tabular-nums;}
.imv-carousel__count b{color:var(--ink);font-weight:700;}
.imv-carousel:not(.is-js) .imv-carousel__controls{display:none;} /* sem JS os botões não agem */

@media(max-width:1000px){
	.imv-fmt{grid-template-columns:1fr;row-gap:28px;}
	.imv-fmt__nav{grid-column:1;grid-row:2;}
	.imv-fmt__panels{grid-row:3;}
	.imv-fmt__head{flex-direction:column;gap:20px;}
}
@media(max-width:640px){
	.imv-carousel__slide{aspect-ratio:4/3;}
}

/* ==========================================================================
   PÁGINA INTERNA — FAQ (reaproveita o design system; accordion em fundo claro)
   ========================================================================== */

/* Layout 2 colunas: nav lateral (temas) + conteúdo (categorias). */
.imv-faq-layout{display:grid;grid-template-columns:260px 1fr;column-gap:64px;align-items:start;}

/* Sidebar de navegação pelos temas (sticky no desktop). */
.imv-faq-nav{position:sticky;top:88px;}
.imv-faq-nav__title{margin:0 0 22px;}
.imv-faq-nav__list{list-style:none;margin:0 0 28px;padding:0;}
.imv-faq-nav__list li{border-top:1px solid var(--line);}
.imv-faq-nav__list li:last-child{border-bottom:1px solid var(--line);}
.imv-faq-nav__list a{display:block;padding:13px 2px;color:var(--body-strong);text-decoration:none;
	font-size:14px;font-weight:400;transition:color .15s;}
.imv-faq-nav__list a:hover{color:var(--red);}
.imv-faq-help{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;}
.imv-faq-help__q{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:14px;}

/* Grupos de categoria. */
.imv-faq-group + .imv-faq-group{margin-top:52px;}
.imv-faq-group__title{font-weight:300;font-size:clamp(24px,3vw,31px);letter-spacing:-.02em;
	color:var(--ink);margin:0 0 6px;scroll-margin-top:88px;}

/* Variante CLARA do accordion (a base .imv-faq é feita para fundo escuro). */
.imv-faq--light{max-width:none;margin:0;}
.imv-faq--light details{border-bottom-color:var(--line);}
.imv-faq--light summary{color:var(--ink);font-size:16px;}
.imv-faq--light summary::after{color:var(--red);}
.imv-faq--light p{color:var(--body);}

@media(max-width:1000px){
	.imv-faq-layout{grid-template-columns:1fr;row-gap:8px;}
	.imv-faq-nav{position:static;margin-bottom:16px;}
	.imv-faq-help{display:none;} /* CTA de contato fica fora do alimentador */
}

/* ==========================================================================
   PÁGINA INTERNA — INVESTIDOR (dados de mercado + simulação + renda fixa)
   ========================================================================== */

/* Stats de mercado reusam .imv-specs; aqui só emolduram (borda no topo). */
.imv-specs--flush{border-top:1px solid var(--line);margin-top:26px;}

/* "Por que investir aqui" — texto (esq.) + card do produto (dir.). */
.imv-two--invest{margin-top:64px;align-items:start;}

/* Card do produto (no slot .imv-two__media). */
.imv-invcard{position:relative;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;}
.imv-invcard img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-radius:0;}
.imv-invcard__selo{position:absolute;top:16px;left:16px;z-index:2;background:rgba(13,13,13,.86);color:#fff;
	font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;border-radius:30px;}
.imv-invcard__body{display:block;padding:22px 24px 24px;}
.imv-invcard__title{display:block;font-size:19px;font-weight:400;color:var(--ink);}
.imv-invcard__text{display:block;font-size:14px;font-weight:300;color:var(--body);margin-top:6px;}
.imv-invcard__link{display:inline-block;margin-top:16px;font-size:11px;font-weight:700;letter-spacing:.16em;
	text-transform:uppercase;color:var(--red);}

/* Simulação: premissas (esq.) + painel de resultado (dir.). Estático (sem JS). */
.imv-sim{display:grid;grid-template-columns:1fr .9fr;gap:32px;align-items:stretch;margin-top:8px;}
.imv-sim__premissas{border:1px solid var(--line);border-radius:12px;padding:28px 30px;background:#fff;}
.imv-sim__list{margin:18px 0 0;}
.imv-sim__row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;
	padding:16px 0;border-top:1px solid var(--line);}
.imv-sim__row:first-of-type{border-top:0;}
.imv-sim__row dt{margin:0;font-size:14px;font-weight:300;color:var(--body-strong);}
.imv-sim__row dd{margin:0;font-size:16px;font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.imv-sim__resultado{border-radius:12px;padding:30px 32px;background:var(--bg-soft);border:1px solid var(--line);
	display:flex;flex-direction:column;}
.imv-sim__big{display:block;font-size:clamp(38px,5vw,52px);font-weight:300;color:var(--red);
	letter-spacing:-.02em;line-height:1;margin:6px 0 0;}
.imv-sim__note{font-size:13.5px;font-weight:300;color:var(--body);line-height:1.6;margin:16px 0 0;}
.imv-sim__stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:auto;padding-top:26px;}
.imv-sim__stat-val{display:block;font-size:22px;font-weight:200;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.imv-sim__stat-lbl{display:block;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(0,0,0,.4);margin-top:6px;}
.imv-fonte--sim{margin-top:24px;}

/* Versus renda fixa — tabela comparativa (rola em telas estreitas). */
.imv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:8px;}
.imv-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px;}
.imv-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
	color:var(--eyebrow);padding:0 18px 14px 0;border-bottom:1px solid var(--line);white-space:nowrap;}
.imv-table td{padding:18px 18px 18px 0;border-bottom:1px solid var(--line);font-weight:300;color:var(--body-strong);vertical-align:top;}
.imv-table tr.is-highlight td{color:var(--ink);font-weight:400;}
.imv-table tr.is-highlight td:first-child{position:relative;}
.imv-table tr.is-highlight td:first-child::before{content:"";position:absolute;left:-14px;top:18px;bottom:18px;
	width:3px;background:var(--red);border-radius:2px;}

@media(max-width:900px){
	.imv-sim{grid-template-columns:1fr;}
}

/* ==========================================================================
   PÁGINA INTERNA — COMPRA (etapas em fases, custos, SAC vs Price, documentação)
   ========================================================================== */

/* Etapas agrupadas por fase (stepper numerado). */
.imv-fases{margin-top:12px;}
.imv-fase{margin-top:56px;}
.imv-fase:first-child{margin-top:8px;}
.imv-fase__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
	padding-bottom:18px;border-bottom:1px solid var(--line);}
.imv-fase__head .imv-eyebrow{flex-basis:100%;margin-bottom:6px;}
.imv-fase__nome{font-weight:300;font-size:clamp(22px,2.6vw,28px);letter-spacing:-.02em;color:var(--ink);margin:0;}
.imv-fase__dur{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);white-space:nowrap;}
.imv-steps{list-style:none;margin:0;padding:0;}
.imv-step{display:flex;gap:22px;padding:24px 0;border-bottom:1px solid var(--line);}
.imv-step:last-child{border-bottom:0;}
.imv-step__num{flex:0 0 auto;min-width:28px;font-size:14px;font-weight:700;color:var(--red);
	letter-spacing:.05em;font-variant-numeric:tabular-nums;padding-top:3px;}
.imv-step__body{flex:1;min-width:0;}
.imv-step__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;}
.imv-step__title{margin:0;font-size:17px;font-weight:500;color:var(--ink);line-height:1.3;}
.imv-step__marco{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
	color:var(--body);background:var(--bg-soft);border:1px solid var(--line);border-radius:20px;padding:5px 11px;white-space:nowrap;}
.imv-step__text{font-size:14.5px;font-weight:300;line-height:1.6;color:var(--body);margin:8px 0 0;max-width:70ch;}

/* Custos — lista (custo + categoria | valor | quando incide). */
.imv-custos{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.imv-custo{display:grid;grid-template-columns:1.4fr .6fr 1.6fr;gap:28px;align-items:baseline;
	padding:22px 0;border-bottom:1px solid var(--line);}
.imv-custo__main{display:flex;flex-direction:column;gap:8px;}
.imv-custo__label{font-size:16px;font-weight:400;color:var(--ink);}
.imv-custo__badge{align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
	color:var(--body);background:#fff;border:1px solid var(--line);border-radius:20px;padding:4px 10px;}
.imv-custo__val{font-size:20px;font-weight:200;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.imv-custo__nota{font-size:13.5px;font-weight:300;line-height:1.6;color:var(--body);}

/* Financiamento — barra de meta (bancos parceiros / prazo típico / FGTS). */
.imv-fin-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 36px;
	padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.imv-fin-meta__item{display:flex;flex-direction:column;gap:8px;}
.imv-fin-meta__lbl{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--eyebrow);}
.imv-fin-meta__val{font-size:15px;font-weight:400;color:var(--ink);}

/* Financiamento — SAC vs Price (dois cards) + estimativa (reusa .imv-sim). */
.imv-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:8px 0 8px;}
.imv-compare__card{border:1px solid var(--line);border-radius:12px;padding:30px 32px;background:#fff;}
.imv-compare__title{margin:0 0 14px;font-size:20px;font-weight:500;color:var(--ink);}
.imv-compare__text{font-size:14.5px;font-weight:300;line-height:1.65;color:var(--body-strong);margin:0 0 20px;}
.imv-compare__card .imv-amen{grid-template-columns:1fr;gap:12px;}
.imv-sim-block{margin-top:52px;}
.imv-sim-block .imv-title--sm{margin-bottom:20px;}
.imv-sim__stats--4{grid-template-columns:1fr 1fr;gap:24px;margin-top:0;}

/* Documentação — dois cards com checklist. */
.imv-doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.imv-doc-card{border:1px solid var(--line);border-radius:12px;padding:28px 30px;background:#fff;}
.imv-doc-card__title{margin:0 0 20px;font-size:17px;font-weight:600;color:var(--ink);
	padding-bottom:16px;border-bottom:1px solid var(--line);}
.imv-amen--stack{grid-template-columns:1fr;gap:14px;}

@media(max-width:900px){
	.imv-compare{grid-template-columns:1fr;}
	.imv-doc-grid{grid-template-columns:1fr;}
	.imv-custo{grid-template-columns:1fr;gap:8px;}
	.imv-custo__val{font-size:22px;}
	.imv-fin-meta{grid-template-columns:1fr;gap:16px;}
}

/* ==========================================================================
   Responsivo — a partir daqui os títulos já encolhem via clamp(); ajustamos
   apenas os grids. Corpo de texto (leads/body/amenities) permanece 15px.
   ========================================================================== */
@media(max-width:1000px){
	.imv-section{padding:72px 0;}
	.imv-two{grid-template-columns:1fr;gap:40px;}
	.imv-amen{grid-template-columns:repeat(2,1fr);}
	.imv-gallery{grid-template-columns:repeat(2,1fr);}
	.imv-prox{grid-template-columns:repeat(2,1fr);}
	.imv-prox li:nth-child(2){border-right:0;}
	.imv-prox li{padding:22px 24px;border-bottom:1px solid var(--line);}
	.imv-foot__inner{grid-template-columns:1fr;gap:32px;}
	.imv-foot__cols{grid-template-columns:repeat(2,1fr);}
	/* bairro: locais em 1 coluna; nav das abas rola horizontalmente. */
	.imv-locais{grid-template-columns:1fr;column-gap:0;}
	.imv-local:nth-child(2){border-top:1px solid var(--line);}
	.imv-local:first-child{border-top:0;}
	.imv-tabs__nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;}
	.imv-tabs__btn{padding:15px 16px;}
}
@media(max-width:640px){
	.imv-section{padding:56px 0;}
	.imv-wrap{padding:0 20px;}
	.imv-nav__links{display:none;}
	.imv-nav__cta{margin-left:auto;}
	.imv-specs__grid{grid-template-columns:repeat(2,1fr);}
	.imv-specs__cell{padding:26px 20px 26px 0;}
	.imv-specs__cell:nth-child(2){border-right:0;}
	.imv-specs__cell:nth-child(3),.imv-specs__cell:nth-child(4){border-top:1px solid var(--line);}
	.imv-videos{grid-template-columns:1fr;}
	.imv-amen{grid-template-columns:1fr;}
	.imv-prox{grid-template-columns:1fr;}
	.imv-prox li,.imv-prox li:nth-child(2){border-right:0;}
	.imv-foot__cols{grid-template-columns:1fr;}
	.imv-foot__legal{flex-direction:column;gap:6px;}
	/* bairro: o gráfico (SVG) escala sozinho via viewBox — nada a ajustar. */
	.imv-plantao-strip .imv-wrap{flex-direction:column;gap:6px;}
}
