/* =========================================================================
   Ally Imobiliária — estilos do tema
   Cores, fontes e tamanhos-base vêm do theme.json (variáveis --wp--preset--*).
   ========================================================================= */

:root {
	--ally-raio: 10px;
	--ally-largura: 1600px;
	--ally-margem: clamp(16px, 2vw, 24px);
	--ally-azul: var(--wp--preset--color--azul-profundo);
	--ally-dourado: var(--wp--preset--color--dourado);
	--ally-offwhite: var(--wp--preset--color--off-white);
	--ally-bege: var(--wp--preset--color--bege);
	--ally-fundo: var(--wp--preset--color--fundo);
	--ally-superficie: var(--wp--preset--color--superficie);
	--ally-suave: var(--wp--preset--color--suave);
	--ally-linha: var(--wp--preset--color--linha);
	--ally-linha-campo: var(--wp--preset--color--linha-campo);
	--ally-texto: var(--wp--preset--color--texto);
	--ally-texto-2: var(--wp--preset--color--texto-secundario);
	--ally-titulo: var(--wp--preset--font-family--outfit);
	--ally-corpo: var(--wp--preset--font-family--manrope);
	/* Escala tipográfica: o ÚNICO conjunto de tamanhos do site (definido no theme.json). */
	--ally-fs-rotulo: var(--wp--preset--font-size--rotulo);       /* 12  maiúsculas espaçadas: sobretítulos, etiquetas, rótulos */
	--ally-fs-pequeno: var(--wp--preset--font-size--pequeno);     /* 16  local, ficha, legendas, notas */
	--ally-fs-texto: var(--wp--preset--font-size--texto);         /* 18  TODO texto corrido (abertura incluída) */
	--ally-fs-lead: var(--ally-fs-texto);                         /* mantido só como apelido do texto */
	--ally-lh-texto: 1.7;                                         /* entrelinha do texto corrido */
	--ally-fs-botao: 15px;                                        /* botões, menu e links em maiúsculas */
	--ally-fs-t4: var(--wp--preset--font-size--titulo-4);         /* 24  títulos pequenos, preço do card */
	--ally-fs-t3: var(--wp--preset--font-size--titulo-card);      /* 29  títulos de card e de bloco */
	--ally-fs-t2: var(--wp--preset--font-size--titulo-2);         /* 40  subtítulos de seção, números */
	--ally-fs-t1: var(--wp--preset--font-size--titulo-secao);     /* 52  títulos de seção e de página */
	--ally-fs-display: var(--wp--preset--font-size--titulo-hero); /* 63  título do hero */
	--ally-fs-numero: var(--wp--preset--font-size--numero);       /* 80  nota do Google */
	--ally-cartao: #FAF6EE;      /* fundo da busca e dos atalhos de tipo (design) */
	--ally-linha-card: #DCCFBB;  /* divisória da ficha nos cards de imóvel */
}

/* Tema escuro: troca só as cores "semânticas"; as da marca ficam iguais. */
html[data-tema="escuro"] {
	--wp--preset--color--fundo: #0F2026;
	--wp--preset--color--superficie: #17303A;
	--wp--preset--color--suave: #213E48;
	--wp--preset--color--linha: #3B575D;
	--wp--preset--color--linha-campo: #3B575D;
	--wp--preset--color--texto: #F4EEE2;
	--wp--preset--color--texto-secundario: #AEBBBF;
	--ally-cartao: #17303A;
	--ally-linha-card: #3B575D;
	color-scheme: dark;
}
html { scroll-padding-top: 24px; }
/* O WordPress põe 24 px (blockGap) entre cabeçalho, <main> e rodapé, e entre as seções da página.
   No design as seções encostam umas nas outras; cada uma controla o próprio respiro. */
.wp-site-blocks > *, .ally-main > * { margin-block-start: 0; margin-block-end: 0; }
/* Páginas internas: o cabeçalho fica no fluxo, então o conteúdo precisa de respiro abaixo dele. */
.ally-main:not(.ally-main--inicio):not(.ally-main--corretor) { padding-top: clamp(32px, 4vw, 56px); }
.ally-main:not(.ally-main--inicio) > * + * { margin-block-start: 24px; }
body { overflow-x: hidden; }
body :where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--ally-dourado); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
	body, .ally-card, .ally-btn { transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
}
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Tipografia de apoio ---------- */
/* Sobretítulo: modelo único do site (página inicial) — cor do texto, .3em, traço dourado de 48 px. */
.ally-eyebrow { margin: 0; display: flex; align-items: center; gap: 16px; font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--ally-texto); }
.ally-eyebrow::after { content: ""; flex: none; width: 48px; height: 1px; background: var(--ally-dourado); }
.has-text-align-center.ally-eyebrow, .ally-eyebrow.has-text-align-center { justify-content: center; }
/* Exceções: etiquetas de informação (tipo · estágio, selo do Google) — sem traço, cor secundária. */
:is(.ally-hero__card, .ally-imovel__cabeca) .ally-eyebrow, .ally-avaliacao__selo { color: var(--ally-texto-2); }
:is(.ally-hero__card, .ally-imovel__cabeca) .ally-eyebrow::after, .ally-avaliacao__selo::after { content: none; }
/* Sobretítulo de seção: cor do texto + traço dourado de 48 px (design). */
.ally-secao__cabeca { display: flex; flex-direction: column; gap: 16px; }
.ally-secao__cabeca > * { margin: 0 !important; }
.ally-secao__cabeca h2 { font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-pequeno { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-aviso { margin: 8px 0 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-titulo-pagina { margin-top: 48px; }
/* Cabeçalho das páginas internas: sobretítulo + título (h1) no padrão da página inicial */
.ally-cabeca-pagina h1 { font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-cabeca-pagina + * { margin-block-start: clamp(24px, 3vw, 40px) !important; }

/* ---------- Botões ---------- */
.ally-btn, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 26px; border-radius: var(--ally-raio); border: 0;
	font-family: var(--ally-corpo); font-size: var(--ally-fs-botao); font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	text-decoration: none !important; cursor: pointer; box-sizing: border-box; text-align: center;
}
.ally-btn--azul, .wp-block-button__link { background: var(--ally-azul); color: var(--ally-offwhite); }
.ally-btn--azul:hover { background: #14262A; color: var(--ally-offwhite); }
.ally-btn--dourado, .is-style-dourado .wp-block-button__link { background: var(--ally-dourado); color: #14262A; }
.ally-btn--dourado:hover, .is-style-dourado .wp-block-button__link:hover { background: var(--wp--preset--color--dourado-escuro); color: #14262A; }
.ally-btn--contorno, .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ally-texto); border: 1px solid currentColor; min-height: 48px; padding: 0 24px; }
.ally-btn--largo { width: 100%; }
html[data-tema="escuro"] .ally-btn--azul, html[data-tema="escuro"] .ally-main .wp-block-button:not(.is-style-outline):not(.is-style-dourado) .wp-block-button__link { background: var(--ally-offwhite); color: var(--ally-azul); }
.ally-botoes { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ally-icone-btn {
	width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: var(--ally-raio); background: transparent; color: inherit; cursor: pointer; padding: 0;
}
.ally-icone-btn--cheio { background: var(--ally-azul); color: var(--ally-offwhite); }
.ally-link-seta { display: inline-flex; align-items: center; gap: 8px; font-size: var(--ally-fs-botao); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--ally-texto); }

/* ---------- Card base ---------- */
.ally-card { background: var(--ally-superficie); border-radius: var(--ally-raio); padding: 28px; box-sizing: border-box; }
.wp-block-column.ally-card { padding: 28px; }

/* ---------- Cabeçalho ---------- */
.ally-cabecalho { padding: 28px max(var(--ally-margem), calc((100% - var(--ally-largura)) / 2)) 0; position: relative; z-index: 20; }
/* O menu da página inicial fica sobre a foto (absolute). A âncora é o início do site,
   não a janela, para respeitar a barra do wp-admin (32 px) e ficar na mesma altura das outras páginas. */
.wp-site-blocks { position: relative; }
.ally-cabecalho.is-sobre-midia { position: absolute; inset: 0 0 auto; }
.ally-barra {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px;
	padding: 8px 24px; border-radius: var(--ally-raio); background: rgba(255,255,255,.3); color: var(--ally-texto);
}
.is-sobre-midia .ally-barra { color: var(--ally-azul); }
.ally-barra__logo { display: block; }
.ally-barra__logo .ally-logo { display: block; }
.ally-logo--azul { color: var(--ally-azul); }
.ally-logo--off-white { color: var(--ally-offwhite); }
/* Tema escuro: o logo do menu fica off-white (exceto sobre a foto do topo, onde a barra é clara). */
html[data-tema="escuro"] .ally-cabecalho:not(.is-sobre-midia) .ally-logo--azul { color: var(--ally-offwhite); }
html[data-tema="escuro"] .ally-cabecalho:not(.is-sobre-midia) .ally-barra { background: rgba(255,255,255,.06); }
.ally-menu { flex: 1 1 auto; display: flex; justify-content: flex-end; padding-right: 8px; }
.ally-menu__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 32px; }
.ally-menu__lista a { display: inline-block; padding: 12px 0; color: inherit; text-decoration: none; font-size: var(--ally-fs-botao); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ally-menu__lista .current-menu-item > a, .ally-menu__lista a[aria-current] { box-shadow: inset 0 -2px 0 var(--ally-dourado); }
.ally-barra__acoes { display: flex; align-items: center; gap: 8px; }
.ally-barra__acoes .ally-icone-btn { color: inherit; }
.ally-barra__acoes .ally-icone-btn--cheio { color: var(--ally-offwhite); }
html[data-tema="escuro"] .ally-barra__acoes .ally-icone-btn--cheio { background: var(--ally-offwhite); color: var(--ally-azul); }
.ally-barra__cta { font-size: var(--ally-fs-botao); letter-spacing: .06em; min-height: 48px; }
.ally-barra__abrir { display: none; }
.so-escuro { display: none; }
html[data-tema="escuro"] .so-claro { display: none; }
html[data-tema="escuro"] .so-escuro { display: inline-flex; }
@media (max-width: 960px) {
	.ally-cabecalho { padding: 16px 16px 0; }
	.ally-barra { padding: 8px 12px; }
	.ally-barra__logo .ally-logo { height: 52px !important; }
	.ally-barra__cta { display: none; }
	.ally-barra__abrir { display: inline-flex; }
	.ally-menu { order: 3; flex-basis: 100%; display: none; padding: 0 0 12px; }
	.ally-menu.is-aberto { display: block; }
	.ally-menu__lista { flex-direction: column; gap: 0; }
	.ally-menu__lista a { display: block; padding: 14px 4px; border-top: 1px solid var(--ally-linha); }
}

/* ---------- Hero ---------- */
.ally-hero { position: relative; overflow: hidden; background: var(--ally-azul); color: var(--ally-azul); }
.ally-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; }
.ally-hero__slide.is-ativo { opacity: 1; }
.ally-hero__slide[hidden] { display: block; }
.ally-hero__midia, .ally-hero__midia video, .ally-hero__midia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ally-hero__conteudo {
	position: relative; z-index: 2; display: flex; flex-direction: column; gap: 24px;
	padding: max(300px, calc(70svh - 20px)) max(var(--ally-margem), calc((100% - var(--ally-largura)) / 2)) 49px;
}
.ally-hero__cards { display: flex; flex-wrap: wrap; align-items: stretch; gap: 16px; opacity: var(--ally-op, .05); transition: opacity .18s linear; }
.ally-hero__cards[hidden] { display: none; }
.ally-hero__card { flex: 1 1 calc(65% - 8px); min-width: min(100%, 480px); display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: 32px 36px; background: #fff; color: var(--ally-azul); }
.ally-hero__card .ally-eyebrow, .ally-hero__local { color: #4D5D61; margin: 0; }
.ally-hero__titulo { margin: 0; font-size: var(--ally-fs-display); color: var(--ally-azul); }
.ally-hero__card .ally-btn--contorno { color: var(--ally-azul); }
.ally-ficha { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 16px; }
.ally-hero .ally-ficha { flex: 1 1 calc(35% - 8px); min-width: min(100%, 300px); }
.ally-ficha__item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 22px 26px; border-radius: var(--ally-raio); background: var(--ally-superficie); color: var(--ally-texto); }
.ally-hero .ally-ficha__item { background: #fff; color: var(--ally-azul); }
.ally-ficha__txt { display: flex; flex-direction: column; align-items: flex-end; text-align: right; gap: 6px; }
.ally-ficha__num { font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t2); line-height: 1.15; }
.ally-ficha__rot { font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #4D5D61; }
.ally-hero__pontos { display: flex; justify-content: center; gap: 4px; }
.ally-hero__pontos button { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ally-hero__pontos span { display: block; width: 10px; height: 10px; border-radius: 2px; background: rgba(244,238,226,.6); transition: width .3s; }
.ally-hero__pontos [aria-selected="true"] span { width: 28px; background: var(--ally-dourado); }
html[data-tema="escuro"] .ally-hero__card, html[data-tema="escuro"] .ally-hero .ally-ficha__item { background: #17303A; color: #F4EEE2; }
html[data-tema="escuro"] .ally-hero__titulo, html[data-tema="escuro"] .ally-hero__card .ally-btn--contorno { color: #F4EEE2; }
html[data-tema="escuro"] .ally-hero__card .ally-eyebrow, html[data-tema="escuro"] .ally-hero__local, html[data-tema="escuro"] .ally-hero .ally-ficha__rot { color: #AEBBBF; }
@media (max-width: 960px) {
	.ally-hero__conteudo { padding: 400px 16px 40px; }
	.ally-hero__card { padding: 24px 22px; }
	.ally-ficha__item { padding: 16px; }
}

/* ---------- Busca ---------- */
.ally-busca-sobre-hero { margin-top: -25px !important; position: relative; z-index: 3; }
.ally-busca { box-sizing: border-box; width: 100%; background: var(--ally-cartao); border-radius: var(--ally-raio); padding: 28px; display: flex; flex-direction: column; gap: 20px; }
.ally-busca__topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
.ally-busca__titulo { margin: 0; font-size: var(--ally-fs-t2); line-height: 1.2; }
.ally-busca__campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; align-items: end; }
.ally-busca__campos .ally-btn { min-height: 56px; }
.ally-segmento { margin: 0; padding: 0; border: 0; min-width: 0; }
.ally-segmento__opcoes { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: var(--ally-raio); background: var(--ally-suave); }
.ally-segmento label { display: block; margin: 0; }
.ally-segmento input { position: absolute; opacity: 0; pointer-events: none; }
.ally-segmento span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 6px; font-size: var(--ally-fs-pequeno); font-weight: 600; cursor: pointer; }
.ally-segmento input:checked + span { background: var(--ally-azul); color: var(--ally-offwhite); }
html[data-tema="escuro"] .ally-segmento input:checked + span { background: var(--ally-offwhite); color: var(--ally-azul); }
.ally-segmento input:focus-visible + span { outline: 3px solid var(--ally-dourado); }
.ally-campo { display: flex; flex-direction: column; gap: 6px; font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ally-texto-2); }
.ally-campo select, .ally-campo input, .ally-campo textarea {
	min-height: 56px; padding: 0 14px; border: 1px solid var(--ally-linha-campo); border-radius: var(--ally-raio);
	background: var(--ally-superficie); color: var(--ally-texto); font: 400 var(--ally-fs-texto) var(--ally-corpo); letter-spacing: 0; text-transform: none; box-sizing: border-box; width: 100%;
}
.ally-campo textarea { padding: 14px; min-height: 110px; }

/* ---------- Seções ---------- */
.ally-main { padding-bottom: 0; }
.ally-secao { padding-top: clamp(64px, 8vw, 110px) !important; }
.ally-secao--tipos { padding-bottom: 40px !important; }
.ally-secao--destaques { padding-top: clamp(56px, 6vw, 80px) !important; padding-bottom: clamp(64px, 8vw, 110px) !important; }
.ally-secao > * + * { margin-block-start: 32px !important; }
.ally-secao--destaques > * + * { margin-block-start: 40px !important; }
.ally-secao__topo { margin-bottom: 0; gap: 16px; }

/* Atalhos por tipo */
/* Colunas = --cols (definido pela quantidade de tipos, sem card sozinho na última linha); 2 no tablet, 1 no celular. */
.ally-tipos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1099px) { .ally-tipos:not(.ally-tipos--c1) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .ally-tipos.ally-tipos { grid-template-columns: minmax(0, 1fr); } }
.ally-secao--tipos .ally-secao__cabeca { margin-bottom: clamp(24px, 3vw, 40px); }
.ally-secao--tipos:not(:has(.ally-tipos)) { display: none; } /* nenhum tipo à venda: some a seção inteira */
.ally-tipos__item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 26px 28px; border-radius: var(--ally-raio); background: var(--ally-cartao); border: 1px solid transparent; color: var(--ally-texto); text-decoration: none; } /* sem borda visível; fica só para o realce no hover */
.ally-tipos__item:hover { border-color: var(--ally-dourado); color: var(--ally-texto); }
.ally-tipos__nome { display: flex; align-items: center; gap: 16px; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t3); }
.ally-tipos__item > .ally-icone { flex: none; }

/* Card de imóvel: foto com cantos de 10 px e texto direto no fundo da página */
.ally-grade-imoveis { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 48px 28px; }
/* Card com o mesmo fundo claro do "Encontre seu imóvel", sem borda; foto encostada no topo. */
.ally-imovel-card { background: var(--ally-cartao); border-radius: var(--ally-raio); overflow: hidden; padding-bottom: 22px; }
.ally-imovel-card__link { display: flex; flex-direction: column; gap: 16px; color: var(--ally-texto); text-decoration: none; }
.ally-imovel-card__link:hover { color: var(--ally-texto); }
.ally-imovel-card__foto { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background-color: #E6DAC6; background-image: repeating-linear-gradient(135deg, rgba(30,53,61,.07) 0 12px, transparent 12px 24px); }
html[data-tema="escuro"] .ally-imovel-card__foto { background-color: #213E48; background-image: repeating-linear-gradient(135deg, rgba(244,238,226,.06) 0 12px, transparent 12px 24px); }
.ally-imovel-card__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) {
	.ally-imovel-card__foto img { transition: transform .5s ease; }
	.ally-imovel-card__link:hover .ally-imovel-card__foto img { transform: scale(1.03); }
}
.ally-sem-foto { position: absolute; inset: 0; display: grid; place-items: center; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-etiqueta { position: absolute; left: 14px; top: 14px; padding: 7px 12px; border-radius: var(--ally-raio); background: rgba(252,249,243,.94); color: var(--ally-azul); font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.ally-imovel-card__corpo { display: flex; flex-direction: column; gap: 8px; }
.ally-imovel-card__corpo > * { margin: 0 22px; }
.ally-imovel-card__tipo { font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ally-texto-2); }
.ally-imovel-card__titulo { font-size: var(--ally-fs-t3); line-height: 1.2; }
.ally-imovel-card__local { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-imovel-card__ficha { list-style: none; margin: 4px 22px 0 !important; padding: 12px 0 0; border-top: 1px solid var(--ally-linha-card); display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--ally-fs-pequeno); }
.ally-imovel-card__ficha li { display: flex; align-items: center; gap: 6px; }
.ally-imovel-card__preco { padding-top: 4px; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); }
.ally-imovel-card__ficha:empty { border-top-color: transparent; padding-top: 0; }
/* Cards da mesma fileira alinhados parte a parte (foto, tipo, nome, local, ficha, preço):
   cada linha tem a altura da maior da fileira. Navegadores sem subgrid mantêm o card como antes. */
@supports (grid-template-rows: subgrid) {
	.ally-imovel-card { display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0; }
	.ally-imovel-card__link { display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 8px; }
	.ally-imovel-card__corpo { display: contents; }
	.ally-imovel-card__foto { margin-bottom: 10px; }
	.ally-imovel-card__corpo > * { align-self: start; }
	.ally-imovel-card__ficha { align-self: stretch; }
}


/* Na planta: faixa azul de largura total, foto + texto ([ally_lancamento]) */
.ally-lancamento { background: var(--ally-azul); color: var(--ally-offwhite); }
.ally-lancamento__dentro { max-width: var(--ally-largura); margin: 0 auto; padding: clamp(64px, 8vw, 110px) var(--ally-margem); box-sizing: content-box; display: flex; flex-direction: column; gap: 40px; }
.ally-lancamento :where(h2, h3, p, strong) { color: var(--ally-offwhite); }
.ally-lancamento .ally-eyebrow { color: var(--ally-bege); }
.ally-lancamento__card { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.ally-lancamento__foto { flex: 1 1 520px; min-width: 0; position: relative; aspect-ratio: 4 / 3; margin: 0; border-radius: var(--ally-raio); overflow: hidden; background: #2A4650; }
.ally-lancamento__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ally-lancamento__texto { flex: 1 1 380px; display: flex; flex-direction: column; gap: 20px; }
.ally-lancamento__texto > * { margin: 0; }
.ally-lancamento__texto h3 { font-size: var(--ally-fs-t2); line-height: 1.1; }
.ally-lancamento .ally-lancamento__local { font-size: var(--ally-fs-pequeno); color: var(--ally-bege); }
.ally-lancamento .ally-lancamento__desc { font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-bege); }
.ally-numeros { display: flex; flex-wrap: wrap; gap: 32px; padding: 18px 0; border-top: 1px solid #3B575D; border-bottom: 1px solid #3B575D; }
.ally-numeros > p { margin: 0; font-size: var(--ally-fs-rotulo); letter-spacing: .18em; text-transform: uppercase; color: var(--ally-bege) !important; }
.ally-numeros strong { display: block; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t2); line-height: 1.2; letter-spacing: 0; text-transform: none; }
.ally-numeros strong span { font-size: .5em; color: var(--ally-bege); }
.ally-numeros strong .is-pct { color: inherit; }
.ally-lancamento .ally-botoes { gap: 12px; }
.ally-btn--contorno-claro { background: transparent; color: var(--ally-offwhite); border: 1px solid rgba(244,238,226,.6); }
.ally-btn--contorno-claro:hover { color: var(--ally-offwhite); border-color: var(--ally-offwhite); }

/* Frase da marca: título grande à esquerda, texto e botão à direita */
.ally-frase { background: var(--ally-cartao); padding-top: clamp(72px, 9vw, 120px) !important; padding-bottom: clamp(72px, 9vw, 120px) !important; } /* faixa clara de ponta a ponta, separa da seção seguinte */
.ally-frase__grade { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; justify-content: space-between; }
.ally-frase__grade > * { margin: 0 !important; }
.ally-frase__titulo { flex: 1 1 640px; display: flex; flex-direction: column; gap: 24px; }
.ally-frase__titulo > * { margin: 0 !important; }
.ally-frase__titulo h2 { font-size: var(--ally-fs-t1); line-height: 1.12; letter-spacing: -.01em; }
.ally-frase__texto { flex: 1 1 340px; max-width: 420px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.ally-frase__texto > * { margin: 0 !important; }
.ally-frase__texto p { font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-dif__lista { display: flex; flex-direction: column; }
.ally-dif__item { display: grid; grid-template-columns: 64px 1fr; column-gap: 20px; padding: 24px 0; border-top: 1px solid var(--ally-linha); }
.ally-dif__item > * { grid-column: 2; margin: 0 !important; }
.ally-dif__num { grid-column: 1 !important; grid-row: 1 / span 2; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t3); color: var(--ally-dourado); }
.ally-bloco-bege { background: var(--ally-suave); border-radius: var(--ally-raio); padding: clamp(28px, 4vw, 56px); gap: 28px; }
/* Faixa "Quer vender seu imóvel?" ([ally_vender]) */
.ally-vender { max-width: var(--ally-largura); margin: 0 auto; padding-left: var(--ally-margem); padding-right: var(--ally-margem); box-sizing: content-box; }
.ally-vender .ally-bloco-bege { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.ally-vender__texto { display: flex; flex-direction: column; gap: 12px; flex: 1 1 420px; }
.ally-vender__texto > * { margin: 0; }
.ally-vender__texto h2 { font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-vender .ally-btn { min-height: 56px; padding: 0 30px; font-size: calc(var(--ally-fs-botao) * 1.2); } /* 20% maior: 18 px */
.ally-vender__texto p:not(.ally-eyebrow) { color: var(--ally-texto-2); }

/* ---------- Avaliação ---------- */
.ally-avaliacao { margin: 16px 0 0; display: flex; flex-direction: column; gap: 12px; max-width: 520px; padding: 22px 26px; }
.ally-avaliacao__selo { display: flex; align-items: center; gap: 10px; letter-spacing: .24em; }
.ally-avaliacao__linha { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.ally-avaliacao__linha > div { display: flex; flex-direction: column; gap: 6px; }
.ally-avaliacao__nota { margin: 0; display: flex; align-items: baseline; gap: 8px; font-family: var(--ally-titulo); font-weight: 600; }
.ally-avaliacao__nota span:first-child { font-size: var(--ally-fs-numero); line-height: .9; }
.ally-avaliacao__nota span:last-child { font-size: var(--ally-fs-t3); color: var(--ally-texto-2); }
.ally-estrelas { display: flex; gap: 4px; color: var(--ally-dourado); }
.ally-avaliacao blockquote { margin: 0; padding: 12px 0 0; border-top: 1px solid var(--ally-linha); font-size: var(--ally-fs-texto); }
.ally-avaliacao blockquote p { margin: 0 0 6px; }
.ally-avaliacao blockquote footer { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }

/* ---------- Lista de imóveis ---------- */
.ally-lista__total { margin: 28px 0 16px; color: var(--ally-texto-2); }
.ally-paginacao { display: flex; flex-wrap: wrap; gap: 8px; margin: 40px 0 0; }
.ally-paginacao a { min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--ally-raio); border: 1px solid var(--ally-linha); color: var(--ally-texto); text-decoration: none; font-weight: 600; }
.ally-paginacao a[aria-current] { background: var(--ally-azul); border-color: var(--ally-azul); color: var(--ally-offwhite); }
.ally-vazio { display: flex; flex-direction: column; gap: 12px; max-width: 720px; }
.ally-vazio h2 { margin: 0; font-size: var(--ally-fs-t3); }

/* ---------- Página do imóvel ---------- */
.ally-imovel { padding-top: 8px; }
.ally-imovel h2 { margin: 0 0 24px; font-size: var(--ally-fs-t1); line-height: 1.1; }

/* Trilha */
.ally-trilha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; margin-bottom: 16px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-trilha ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.ally-trilha li + li::before { content: "/"; margin: 0 8px; color: var(--ally-linha-campo); }
.ally-trilha a { color: var(--ally-texto-2); text-underline-offset: 3px; }
.ally-trilha a:hover { color: var(--ally-texto); }
.ally-trilha li[aria-current] { color: var(--ally-texto); }
.ally-trilha__meta { margin: 0; display: flex; align-items: center; gap: 10px; }
.ally-chip { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 6px; background: var(--ally-suave); color: var(--ally-texto); font-size: var(--ally-fs-pequeno); }

/* Foto principal */
.ally-foto-principal { position: relative; margin: 0; border-radius: var(--ally-raio); overflow: hidden; background: var(--ally-suave); aspect-ratio: 16 / 9; }
.ally-foto-principal__link, .ally-foto-principal__link img { display: block; width: 100%; height: 100%; }
.ally-foto-principal__link img { object-fit: cover; }
.ally-foto-principal__rotulo { position: absolute; left: 16px; bottom: 16px; padding: 6px 12px; border-radius: 6px; background: rgba(252,249,243,.94); color: var(--ally-azul); font-size: var(--ally-fs-pequeno); pointer-events: none; }
.ally-foto-principal__todas { position: absolute; right: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--ally-raio); background: rgba(252,249,243,.96); color: var(--ally-azul); font: 700 var(--ally-fs-botao) var(--ally-corpo); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.ally-foto-principal__todas:hover { background: #fff; }

/* Grade: conteúdo + coluna de preço */
.ally-imovel__grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 52px; margin-top: 32px; align-items: start; }
.ally-imovel__principal { display: flex; flex-direction: column; gap: clamp(40px, 4vw, 56px); min-width: 0; }
.ally-imovel__principal > * { margin: 0; }
.ally-imovel__cabeca { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.ally-imovel__cabeca h1 { margin: 0; font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-imovel__local { margin: 0; display: flex; align-items: center; gap: 6px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-imovel__cabeca + .ally-ficha-imovel { margin-top: calc(-1 * clamp(16px, 2vw, 28px)); }

/* Ficha curta: 4 cards pequenos */
.ally-ficha-imovel { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.ally-ficha-imovel li { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; border: 1px solid var(--ally-linha); border-radius: var(--ally-raio); background: var(--ally-cartao); color: var(--ally-texto); font-size: var(--ally-fs-pequeno); }
.ally-ficha-imovel strong { font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); }

/* Vídeo: miniatura; o player só carrega no clique */
.ally-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--ally-raio); overflow: hidden; background: var(--ally-azul); }
.ally-video img, .ally-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.ally-video img { opacity: .85; }
.ally-video__play { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); width: 72px; height: 56px; border: 0; border-radius: var(--ally-raio); background: var(--ally-offwhite); color: var(--ally-azul); display: grid; place-items: center; cursor: pointer; }
.ally-video__play:hover { background: #fff; }

/* Texto e caixa de CTA */
.ally-texto { font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-texto p { margin: 0 0 14px; }
.ally-texto strong { color: var(--ally-texto); }
.ally-imovel__caixa { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 24px 28px; border: 1px solid var(--ally-linha); border-radius: var(--ally-raio); background: var(--ally-cartao); }
.ally-imovel__caixa p { margin: 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-imovel__caixa .ally-imovel__caixa-titulo { margin-bottom: 4px; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); color: var(--ally-texto); }

/* Características */
.ally-detalhes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 0 28px; margin: 0; }
.ally-detalhes div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ally-linha); font-size: var(--ally-fs-pequeno); }
.ally-detalhes dt { color: var(--ally-texto-2); }
.ally-detalhes dd { margin: 0; font-weight: 600; text-align: right; }
.ally-imovel__subtitulo { margin: 28px 0 12px; font-size: var(--ally-fs-texto); }
.ally-lista-check { columns: 3 200px; margin: 0; padding-left: 20px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-lista-check li { margin-bottom: 6px; }
.ally-imovel__tour { margin: 24px 0 0; }

/* Miniaturas */
.ally-imovel .ally-aviso { margin: -12px 0 16px; }
.ally-miniaturas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.ally-miniaturas a { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; background: var(--ally-suave); }
.ally-miniaturas img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ally-miniaturas__rotulo { position: absolute; left: 6px; bottom: 6px; padding: 2px 8px; border-radius: 6px; background: rgba(252,249,243,.94); color: var(--ally-azul); font-size: var(--ally-fs-rotulo); }
@media (prefers-reduced-motion: no-preference) {
	.ally-miniaturas img { transition: transform .4s ease; }
	.ally-miniaturas a:hover img { transform: scale(1.04); }
}

/* Mapa */
.ally-mapa { --mapa-fundo: #24414A; --mapa-quadra: #2E4F58; --mapa-rua: #3B5A62; --mapa-agua: #5F7F98; position: relative; min-height: 420px; border-radius: var(--ally-raio); overflow: hidden; background: var(--mapa-fundo); }
.ally-mapa--imovel { --mapa-fundo: #EADFCD; --mapa-quadra: #E2D4BD; --mapa-rua: #D6C5AA; --mapa-agua: #B9C6D1; min-height: 360px; }
html[data-tema="escuro"] .ally-mapa--imovel { --mapa-fundo: #213E48; --mapa-quadra: #284753; --mapa-rua: #3B575D; --mapa-agua: #4E6C80; }
.ally-mapa iframe, .ally-mapa__ilustracao { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.ally-mapa__ilustracao .q { fill: var(--mapa-quadra); }
.ally-mapa__ilustracao .r { fill: none; stroke: var(--mapa-rua); stroke-width: 10; }
.ally-mapa__ilustracao .r--larga { stroke-width: 16; }
.ally-mapa__ilustracao .a { fill: var(--mapa-agua); opacity: .8; }
.ally-mapa__ilustracao .p { fill: var(--ally-dourado); }
.ally-mapa__ilustracao .p__miolo { fill: var(--mapa-fundo); }
.ally-mapa__abrir { position: absolute; top: 16px; right: 16px; z-index: 1; display: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--ally-raio); background: rgba(252,249,243,.96); color: var(--ally-azul); font: 700 var(--ally-fs-botao) var(--ally-corpo); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.ally-mapa__abrir:hover { background: #fff; }
.ally-mapa.is-manual .ally-mapa__abrir { display: inline-flex; } /* só com "economia de dados" */
.ally-mapa iframe { z-index: 0; }
.ally-mapa__ilustracao { z-index: 0; transition: opacity .4s ease; }
.ally-mapa.is-carregado .ally-mapa__ilustracao { opacity: 0; pointer-events: none; }
.ally-mapa.is-carregado .ally-mapa__abrir { display: none; }
.ally-mapa--imovel + .ally-aviso { margin: 10px 0 0; }

/* Coluna de preço */
.ally-imovel__lateral { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 12px; padding: 24px; border: 1px solid var(--ally-linha); }
.ally-imovel__rotulo-preco { margin: 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-imovel__preco { margin: 0; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t3); line-height: 1.15; }
.ally-imovel__lateral .ally-pequeno { margin: 0; }
.ally-imovel__contato { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--ally-linha); display: flex; flex-direction: column; gap: 6px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-imovel__contato p { margin: 0; }
.ally-imovel__contato a { color: var(--ally-texto); font-weight: 600; text-decoration: none; }
.ally-imovel__contato a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Faixa de visita e outros imóveis */
.ally-imovel__faixa { margin-top: clamp(56px, 6vw, 80px); }
.ally-outros { margin-top: clamp(48px, 5vw, 72px); }
.ally-outros__topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; margin-bottom: 20px; }
.ally-outros__topo h2 { margin: 0; }
.ally-outros__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 960px) { .ally-outros__lista { grid-template-columns: 1fr; } }
.ally-outros__lista a { display: flex; align-items: center; gap: 16px; padding: 12px; border: 1px solid var(--ally-linha); border-radius: var(--ally-raio); background: var(--ally-cartao); color: var(--ally-texto); text-decoration: none; }
.ally-outros__lista a:hover { border-color: var(--ally-dourado); color: var(--ally-texto); }
.ally-outros__foto { flex: none; width: 96px; height: 72px; border-radius: 6px; overflow: hidden; background: var(--ally-suave); }
.ally-outros__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ally-outros__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-outros__txt strong { font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-texto); color: var(--ally-texto); }
.ally-outros__preco { font-family: var(--ally-titulo); font-weight: 600; color: var(--ally-texto) !important; }

.ally-barra-fixa { display: none; }
@media (max-width: 960px) {
	.ally-foto-principal { aspect-ratio: 4 / 3; }
	.ally-imovel__grade { grid-template-columns: 1fr; }
	.ally-imovel__lateral { position: static; }
	.ally-barra-fixa { position: fixed; inset: auto 0 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--ally-superficie); border-top: 1px solid var(--ally-linha); }
	.ally-barra-fixa span { flex: none; white-space: nowrap; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); }
	.ally-barra-fixa .ally-btn { flex: 1 1 auto; min-height: 48px; padding: 0 14px; font-size: var(--ally-fs-botao); letter-spacing: .06em; line-height: 1.2; }
	.single .ally-rodape { padding-bottom: 80px; }
}
@media (max-width: 560px) {
	.ally-trilha__meta { display: none; }
	.ally-foto-principal__rotulo { display: none; }
	.ally-ficha-imovel { grid-template-columns: 1fr 1fr; }
}
.ally-lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(15,32,38,.94); display: grid; grid-template-columns: 56px 1fr 56px; align-items: center; padding: 16px; }
.ally-lightbox[hidden] { display: none; }
.ally-lightbox figure { margin: 0; text-align: center; }
.ally-lightbox img { max-width: 100%; max-height: 82vh; border-radius: var(--ally-raio); }
.ally-lightbox figcaption { color: #F4EEE2; font-size: var(--ally-fs-pequeno); margin-top: 8px; }
.ally-lightbox .ally-icone-btn { color: #F4EEE2; font-size: 36px; }
.ally-lightbox [data-fechar] { position: absolute; top: 16px; right: 16px; }

/* ---------- Contato (template page-contato) ---------- */
.ally-main--contato .entry-content > * + * { margin-block-start: 0; }
.ally-cabeca-pagina > * { margin: 0 !important; }
.ally-cabeca-pagina__lead { max-width: 640px; margin-top: -4px !important; font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-contato { margin-top: clamp(28px, 3vw, 40px) !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; align-items: stretch; }
.ally-contato > * { margin: 0 !important; }
.ally-contato__wa, .ally-form { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3vw, 40px); border-radius: var(--ally-raio); box-sizing: border-box; }
.ally-contato__wa { background: var(--ally-azul); color: var(--ally-offwhite); }
.ally-contato__wa :where(h2, p, a:not(.ally-btn)) { color: var(--ally-offwhite); margin: 0; }
.ally-contato__dica { font-size: var(--ally-fs-texto); color: rgba(244,238,226,.85) !important; }
.ally-contato__numero { margin-top: 6px !important; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); }
.ally-contato__email { font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-texto); }
.ally-contato__wa a:not(.ally-btn) { text-decoration: none; }
.ally-contato__wa a:not(.ally-btn):hover { text-decoration: underline; text-underline-offset: 4px; }
.ally-contato__cta { margin-top: auto; align-self: flex-start; }
.ally-contato__email { margin-bottom: 16px !important; }
.ally-form { background: var(--ally-cartao); } /* mesmo padrão dos outros cards: fundo claro, sem borda; os campos seguem brancos */
.ally-form p { margin: 0; }
.ally-form__cabeca { display: flex; align-items: center; gap: 14px; }
.ally-form__cabeca h2 { margin: 0; font-size: var(--ally-fs-t3); line-height: 1.2; }
.ally-form__intro { font-size: var(--ally-fs-texto); color: var(--ally-texto-2); }
.ally-form__campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 4px; }
@media (max-width: 560px) { .ally-form__campos { grid-template-columns: 1fr; } }
.ally-campo-form { display: flex; flex-direction: column; gap: 8px; font-size: var(--ally-fs-pequeno); font-weight: 600; color: var(--ally-texto); }
.ally-campo-form--largo { grid-column: 1 / -1; }
.ally-campo-form input, .ally-campo-form textarea { min-height: 52px; padding: 0 14px; border: 1px solid var(--ally-linha-campo); border-radius: var(--ally-raio); background: var(--ally-superficie); color: var(--ally-texto); font: 400 var(--ally-fs-texto) var(--ally-corpo); box-sizing: border-box; width: 100%; }
.ally-campo-form textarea { padding: 12px 14px; min-height: 96px; resize: vertical; }
.ally-campo-form input::placeholder { color: var(--ally-texto-2); opacity: .8; }
.ally-obrigatorio { color: #B3261E; }
html[data-tema="escuro"] .ally-obrigatorio { color: #F2B8B5; }
.ally-opcional { font-weight: 400; color: var(--ally-texto-2); }
.ally-form__envio { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 4px; }
.ally-form__envio .ally-btn { min-height: 48px; }
.ally-form__nota { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-form__nota a { color: var(--ally-texto); text-underline-offset: 3px; }
.ally-icone-caixa { width: 48px; height: 48px; flex: none; border-radius: var(--ally-raio); background: var(--ally-suave); color: var(--ally-texto); display: inline-flex; align-items: center; justify-content: center; }
.ally-icone-caixa--escura { background: rgba(255,255,255,.12); color: var(--ally-offwhite); }

/* Onde atendemos */
.ally-contato-onde { margin-top: clamp(40px, 4vw, 56px) !important; }
.ally-contato-onde > * { margin: 0 !important; }
.ally-contato-onde h2 { font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-atende { margin-top: clamp(24px, 3vw, 40px) !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 24px; }
/* O card de cada cidade é o mesmo .ally-cidade da Sobre nós (ver "Onde atuamos"). */
.ally-atende__cidade ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ally-atende__cidade li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-atende__cidade li .ally-icone { flex: none; margin-top: 2px; }
.ally-atende__link { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--ally-fs-botao); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--ally-texto); }
.ally-atende__link:hover { color: var(--ally-texto); text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Rodapé ---------- */
.ally-rodape { background: var(--ally-azul); color: var(--ally-offwhite); margin-top: clamp(64px, 8vw, 110px); }
.ally-rodape a { color: var(--ally-offwhite); text-decoration: none; }
.ally-rodape__grade { max-width: var(--ally-largura); margin: 0 auto; padding: 96px var(--ally-margem); display: flex; flex-wrap: wrap; align-items: stretch; gap: 56px; }
.ally-rodape__info { flex: 1 1 calc(50% - 28px); min-width: min(100%, 340px); display: flex; flex-direction: column; justify-content: center; gap: 24px; }
.ally-rodape__info .ally-logo { align-self: flex-start; }
.ally-rodape__info hr { width: 100%; margin: 0; border: 0; border-top: 1px solid rgba(244,238,226,.18); }
.ally-rodape__linha { margin: 0; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); line-height: 1.3; }
.ally-rodape__pilha { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.ally-redes { list-style: none; margin: 0; padding: 0; display: flex; gap: 14px; }
.ally-redes .ally-icone-btn { width: 52px; height: 52px; }
.ally-rodape .ally-mapa { flex: 1 1 calc(50% - 28px); min-width: min(100%, 340px); }
.ally-mapa__card { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-radius: var(--ally-raio); background: var(--ally-offwhite); color: var(--ally-azul); }
.ally-mapa__card div { display: flex; flex-direction: column; gap: 2px; font-size: var(--ally-fs-pequeno); }
.ally-mapa__card strong { font-size: var(--ally-fs-pequeno); }
.ally-rodape__base { border-top: 1px solid #2E4F55; max-width: var(--ally-largura); margin: 0 auto; padding: 24px var(--ally-margem); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: var(--ally-fs-pequeno); color: #C2B49E; }
.ally-rodape__base a { color: #C2B49E; padding: 6px 0; }
.ally-rodape__links { display: flex; flex-wrap: wrap; gap: 8px 24px; }

/* ---------- Página Sobre nós (template page-sobre-nos) ---------- */
.ally-main--sobre { padding-top: clamp(40px, 5vw, 64px) !important; }
.ally-main--sobre .entry-content > * + * { margin-block-start: 0; }
.ally-main--sobre :where(h2, h3) { margin: 0; }

/* Topo: texto à esquerda, card do Google à direita */
.ally-sobre-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px 48px; }
.ally-sobre-topo__texto { flex: 1 1 520px; max-width: 760px; display: flex; flex-direction: column; gap: 16px; }
.ally-sobre-topo__texto > * { margin: 0 !important; }
.ally-sobre-topo h1 { font-size: var(--ally-fs-t1); line-height: 1.15; }
.ally-sobre-topo__texto p:not(.ally-eyebrow) { max-width: 640px; font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-sobre-topo .ally-avaliacao { flex: 0 1 520px; margin: 0; }
.ally-sobre-topo .ally-avaliacao__linha { flex-direction: column; align-items: flex-start; gap: 10px; }

/* Foto larga */
.ally-foto-larga { margin: clamp(28px, 3vw, 40px) 0 0 !important; }
.ally-foto-larga img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--ally-raio); display: block; }
@media (max-width: 781px) { .ally-foto-larga img { aspect-ratio: 4 / 3; } }

/* Seções: títulos no tamanho de card (29 px) */
.ally-sobre-secao { margin-top: clamp(64px, 7vw, 120px) !important; }
.ally-sobre-historia { margin-top: clamp(48px, 5vw, 84px) !important; gap: 32px 48px !important; }
.ally-sobre-secao h2 { font-size: var(--ally-fs-t1); line-height: 1.1; }
section.ally-sobre-secao > * + * { margin-block-start: 28px !important; }
.ally-sobre-historia p { margin: 0 0 14px; font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-sobre-historia p strong { color: var(--ally-texto); }

/* Onde atuamos */
.ally-cidades > *, .ally-passos > *, .ally-sobre-topo > *, .ally-cta > * { margin: 0 !important; }
.ally-cidades { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 24px; }
/* Card de cidade: Sobre nós (Onde atuamos) e Contato (Onde atendemos). Fundo igual ao do "Encontre seu imóvel". */
.ally-cidade { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--ally-raio); background: var(--ally-cartao); }
.ally-cidade > * { margin: 0 !important; }
.ally-cidade h3 { display: flex; align-items: center; gap: 10px; padding-bottom: 12px; margin-bottom: 4px !important; font-size: var(--ally-fs-t4); border-bottom: 1px solid var(--ally-dourado); } /* linha dourada abaixo do nome, largura toda como o separador dos cards de imóvel */
.ally-cidade h3::before, .ally-cidade__link a::after { content: ""; flex: none; background: currentColor; -webkit-mask: var(--ally-ic) center / contain no-repeat; mask: var(--ally-ic) center / contain no-repeat; }
.ally-cidade h3::before { width: 20px; height: 20px; --ally-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.ally-cidade p { font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-cidade__link { margin-top: 6px !important; }
.ally-cidade__link a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: var(--ally-fs-botao); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--ally-texto); }
.ally-cidade__link a::after { width: 16px; height: 16px; --ally-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.ally-cidade__link a:hover { color: var(--ally-texto); text-decoration: underline; text-underline-offset: 4px; }

/* Como trabalhamos: traço dourado sobre cada coluna */
.ally-passos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px; }
.ally-passo { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 2px solid var(--ally-dourado); }
.ally-passo > * { margin: 0 !important; }
.ally-passo h3 { font-size: var(--ally-fs-t4); line-height: 1.3; }
.ally-passo p { font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }

/* Faixa final de contato */
.ally-cta { margin-top: clamp(56px, 6vw, 72px) !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding: clamp(28px, 3vw, 44px) clamp(24px, 3vw, 48px); border-radius: var(--ally-raio); background: var(--ally-azul); color: var(--ally-offwhite); }
.ally-cta__texto { display: flex; flex-direction: column; gap: 8px; flex: 1 1 420px; }
.ally-cta__texto > * { margin: 0 !important; }
.ally-cta h2 { color: var(--ally-offwhite); font-size: var(--ally-fs-t1); line-height: 1.1; }
.ally-cta__texto p { font-size: var(--ally-fs-texto); color: rgba(244,238,226,.78); }
.ally-cta__botoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ally-cta__botoes > * { margin: 0 !important; }
.ally-cta .ally-btn { min-height: 48px; padding: 0 22px; }
.wp-site-blocks:has(.ally-cta) .ally-rodape { margin-top: clamp(56px, 6vw, 72px); }

/* ---------- Movimento ---------- */
@media (prefers-reduced-motion: reduce) {
	.ally-hero__slide, .ally-hero__cards, .ally-hero__pontos span { transition: none; }
}

/* ---------- Área do corretor ---------- */
.ally-cabecalho--corretor .ally-barra { background: var(--ally-superficie); border: 1px solid var(--ally-linha); }
.ally-etiqueta--fixa { position: static; display: inline-flex; align-items: center; }
.ally-etiqueta.is-vendido { background: var(--ally-dourado); color: #14262A; }
.ally-main--corretor { padding-top: 40px; padding-bottom: 80px; }
.ally-corretor-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 28px; }
.ally-corretor-topo h1 { margin: 0; font-size: var(--ally-fs-t1); }
.ally-corretor-login { max-width: 520px; margin: 40px auto; display: flex; flex-direction: column; gap: 14px; }
.ally-corretor-login h2 { margin: 0; }
.ally-corretor-login form p { margin: 0 0 14px; display: flex; flex-direction: column; gap: 6px; }
.ally-corretor-login label { font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ally-texto-2); }
.ally-corretor-login .login-remember label { display: inline-flex; gap: 8px; align-items: center; text-transform: none; letter-spacing: 0; font-size: var(--ally-fs-pequeno); }
.ally-corretor-login input[type="text"], .ally-corretor-login input[type="password"] { min-height: 52px; padding: 0 14px; border: 1px solid var(--ally-linha-campo); border-radius: var(--ally-raio); background: var(--ally-superficie); color: var(--ally-texto); font: 400 var(--ally-fs-texto) var(--ally-corpo); }
.ally-corretor-login input[type="submit"] { min-height: 52px; padding: 0 26px; border: 0; border-radius: var(--ally-raio); background: var(--ally-azul); color: var(--ally-offwhite); font: 700 var(--ally-fs-botao) var(--ally-corpo); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; width: 100%; }
html[data-tema="escuro"] .ally-corretor-login input[type="submit"] { background: var(--ally-offwhite); color: var(--ally-azul); }
.ally-erro { margin: 0; padding: 12px 16px; border-radius: var(--ally-raio); background: #FBEAEA; color: #8A1C1C; }
.ally-sucesso { margin: 0 0 20px; padding: 12px 16px; border-radius: var(--ally-raio); background: #E8F3EC; color: #1E4D33; }
.ally-corretor-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ally-corretor-item { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 16px; }
.ally-corretor-item__foto { width: 96px; height: 72px; border-radius: 6px; overflow: hidden; background: var(--ally-suave); }
.ally-corretor-item__foto img { width: 100%; height: 100%; object-fit: cover; }
.ally-corretor-item__info { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.ally-corretor-item__info h2 { margin: 0; font-size: var(--ally-fs-t4); }
.ally-corretor-item__info p { margin: 0; }
.ally-corretor-item__acoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; }
.ally-corretor-item__acoes .ally-btn { min-height: 44px; padding: 0 18px; font-size: var(--ally-fs-botao); }
/* Excluir imóvel: link discreto, confirmação e aviso com "Desfazer" */
.ally-link-excluir { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; font-size: var(--ally-fs-pequeno); font-weight: 600; color: #8A1C1C; text-decoration: underline; text-underline-offset: 3px; }
.ally-link-excluir:hover { color: #6E1414; }
.ally-cad__excluir { margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--ally-linha); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.ally-cad__excluir .ally-pequeno { color: var(--ally-texto-2); }
.ally-confirmar { margin: 0 0 20px; padding: 24px; background: #FBEAEA; color: #4A1010; }
.ally-confirmar h2 { margin: 0 0 8px; font-size: var(--ally-fs-t4); color: inherit; }
.ally-confirmar p { margin: 0 0 18px; max-width: 70ch; }
.ally-confirmar__acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.ally-confirmar__acoes .ally-btn { min-height: 44px; padding: 0 20px; }
.ally-btn--perigo { background: #8A1C1C; color: #FFFFFF; border-color: #8A1C1C; }
.ally-btn--perigo:hover { background: #6E1414; border-color: #6E1414; color: #FFFFFF; }
.ally-sucesso--acao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.ally-sucesso--acao .ally-btn { min-height: 40px; padding: 0 16px; color: #1E4D33; border-color: currentColor; }
.ally-erro--lista { margin: 0 0 20px; }
html[data-tema="escuro"] .ally-link-excluir { color: #F1A9A0; }
html[data-tema="escuro"] .ally-confirmar { background: #3A1E1E; color: #F6DADA; }
html[data-tema="escuro"] .ally-sucesso--acao .ally-btn { color: #CFEBD9; }
@media (max-width: 760px) {
	.ally-corretor-item { grid-template-columns: 72px minmax(0, 1fr); }
	.ally-corretor-item__foto { width: 72px; height: 56px; }
	.ally-corretor-item__acoes { grid-column: 1 / -1; justify-content: flex-start; }
}

/* Cabeçalho da área: Meus imóveis · nome do corretor · Sair */
.ally-corretor-usuario { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; font-size: var(--ally-fs-pequeno); }
.ally-corretor-usuario a { color: var(--ally-texto); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.ally-corretor-usuario__nome { color: var(--ally-texto-2); }

/* ---------- Formulário de cadastro do imóvel ([ally_corretor_form]) ---------- */
.ally-main--corretor:has(.ally-cad) { padding-bottom: 0; }
.ally-cad { --cad-gap: 16px; }
.ally-cad__trilha { margin-bottom: 8px; }
.ally-cad__topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; }
.ally-cad__topo h1 { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: var(--ally-fs-t2); }
.ally-cad__status { padding: 4px 10px; border: 1px solid var(--ally-linha-campo); border-radius: 6px; font-family: var(--ally-corpo); font-size: var(--ally-fs-pequeno); font-weight: 600; color: var(--ally-texto-2); }
.ally-cad__status.is-publicado { border-color: #8FBF9F; color: #1E4D33; background: #E8F3EC; }
.ally-cad__status.is-vendido { border-color: var(--ally-dourado); color: #14262A; background: var(--ally-bege); }
.ally-cad__previa { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ally-texto); font-weight: 600; text-decoration: none; }
.ally-cad__previa:hover { text-decoration: underline; text-underline-offset: 3px; }
.ally-cad__aviso { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 24px; padding: 10px 12px 10px 18px; border-radius: var(--ally-raio); background: #E8F3EC; color: #1E4D33; border: 1px solid #BFDCC9; }
.ally-cad__aviso.is-erro { background: #FDF3E1; color: #6B4A0E; border-color: #EBD3A5; }
.ally-cad__aviso p { margin: 0; }
html[data-tema="escuro"] .ally-cad__aviso { background: #1E3A2B; color: #CFEBD9; border-color: #2F5A43; }
html[data-tema="escuro"] .ally-cad__aviso.is-erro { background: #3A2E17; color: #F1DDB0; border-color: #5C4A24; }

.ally-cad__grade { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: start; }
.ally-cad__etapas { position: sticky; top: 24px; }
.ally-cad__etapas ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ally-cad__etapas a { display: flex; align-items: center; gap: 10px; min-height: 40px; color: var(--ally-texto); text-decoration: none; font-size: var(--ally-fs-pequeno); }
.ally-cad__etapas a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ally-cad__marca { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--ally-linha-campo); box-sizing: border-box; display: inline-grid; place-items: center; }
.is-ok > a .ally-cad__marca { border-color: #2E7D4F; background: #2E7D4F; }
.is-ok > a .ally-cad__marca::after { content: ""; width: 9px; height: 5px; margin-top: -2px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.ally-cad__resumo { margin: 14px 0 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }

.ally-cad__secoes { display: flex; flex-direction: column; gap: var(--cad-gap); min-width: 0; }
.ally-cad__secao { margin: 0; padding: clamp(20px, 2.4vw, 32px); border-radius: var(--ally-raio); background: var(--ally-cartao); scroll-margin-top: 24px; }
.ally-cad__secao > h2, .ally-cad__h2 { display: block; margin: 0 0 20px; font-size: var(--ally-fs-t4); line-height: 1.25; }
.ally-cad__sub { display: block; margin: -14px 0 18px; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }

.ally-cad__campos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 16px; }
.ally-cad__campo { grid-column: span var(--col, 4); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ally-cad__campo[hidden] { display: none; }
.ally-cad__campo > label, .ally-cad__principal-titulo { font-size: var(--ally-fs-pequeno); font-weight: 600; color: var(--ally-texto); margin: 0; }
.ally-cad input[type="text"], .ally-cad input[type="url"], .ally-cad input:not([type]), .ally-cad select, .ally-cad textarea {
	width: 100%; min-height: 48px; padding: 0 14px; box-sizing: border-box; border: 1px solid var(--ally-linha-campo); border-radius: var(--ally-raio);
	background: var(--ally-superficie); color: var(--ally-texto); font: 400 var(--ally-fs-texto) var(--ally-corpo);
}
.ally-cad textarea { padding: 12px 14px; min-height: 120px; resize: vertical; }
.ally-cad select:disabled { opacity: .6; }
.ally-cad [aria-invalid="true"] { border-color: #B3261E; }
.ally-cad__erro { margin: 0; font-size: var(--ally-fs-pequeno); color: #B3261E; }
html[data-tema="escuro"] .ally-cad__erro { color: #F2B8B5; }
.ally-cad__ajuda { margin: 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-prefixo { display: flex; align-items: stretch; border: 1px solid var(--ally-linha-campo); border-radius: var(--ally-raio); background: var(--ally-superficie); overflow: hidden; }
.ally-prefixo > span { display: grid; place-items: center; padding: 0 12px; background: var(--ally-suave); color: var(--ally-texto-2); font-size: var(--ally-fs-pequeno); }
.ally-cad .ally-prefixo input { border: 0; border-radius: 0; }
.ally-caixa, .ally-marcar label, .ally-cad__situacao label { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; font-size: var(--ally-fs-pequeno); cursor: pointer; }
.ally-caixa input, .ally-marcar input, .ally-cad__situacao input { width: 18px; height: 18px; accent-color: var(--ally-azul); }
.ally-marcar { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.ally-cad__situacao { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 6px; }
.ally-cad__admin { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--ally-linha); }
.ally-cad__admin .ally-cad__principal-titulo { margin-bottom: 12px; }
.ally-arquivo-atual { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }

/* Fotos: a primeira (principal) maior; as demais em miniaturas */
.ally-cad__fotos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 260px); gap: 16px 24px; margin-bottom: 24px; }
.ally-cad__lista { grid-column: 1; grid-row: 1 / span 3; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-content: start; }
.ally-cad__lista li { position: relative; aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; background: var(--ally-suave); cursor: grab; }
.ally-cad__lista li:first-child { grid-column: span 4; aspect-ratio: 16 / 9; }
.ally-cad__lista li:first-child::before { content: "Foto principal"; position: absolute; left: 10px; bottom: 10px; z-index: 1; padding: 3px 8px; border-radius: 6px; background: rgba(252,249,243,.94); color: var(--ally-azul); font-size: var(--ally-fs-rotulo); }
.ally-cad__lista img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ally-cad__lista select { position: absolute; left: 6px; right: 40px; top: 6px; min-height: 30px !important; height: 30px; padding: 0 6px !important; font-size: 13px !important; background: rgba(255,255,255,.94) !important; border-radius: 6px !important; }
.ally-cad__lista li:first-child select { right: 46px; max-width: 220px; }
.ally-cad__lista .ally-icone-btn { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border-radius: 6px; background: rgba(255,255,255,.94); color: var(--ally-azul); font-size: 18px; }
.ally-cad__lista li.is-nova { outline: 2px dashed var(--ally-dourado); outline-offset: -2px; }
.ally-cad__principal { grid-column: 2; display: flex; flex-direction: column; gap: 8px; }
.ally-btn--peq { min-height: 40px; padding: 0 16px; }
.ally-cad__remover { border: 0; background: none; padding: 0 6px; min-height: 40px; color: #B3261E; font: 600 var(--ally-fs-pequeno) var(--ally-corpo); cursor: pointer; }
.ally-cad__adicionar { grid-column: 2; display: grid; place-items: center; min-height: 96px; border: 1.5px dashed var(--ally-linha-campo); border-radius: var(--ally-raio); color: var(--ally-texto); font-weight: 600; cursor: pointer; }
.ally-cad__adicionar:hover, .ally-cad__adicionar:focus-within { border-color: var(--ally-dourado); }
.ally-cad__fotos > .ally-cad__ajuda, .ally-cad__fotos > .ally-cad__erro { grid-column: 2; }

/* Barra fixa de ações */
.ally-cad__barra { position: sticky; bottom: 0; z-index: 20; margin-top: 32px; background: var(--ally-superficie); border-top: 1px solid var(--ally-linha); box-shadow: 0 -8px 24px rgba(30,53,61,.06); margin-left: calc(-1 * var(--ally-margem)); margin-right: calc(-1 * var(--ally-margem)); }
.ally-cad__barra-dentro { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; padding: 12px var(--ally-margem); }
.ally-cad__cancelar { color: var(--ally-texto); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.ally-cad__salvo { font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-cad__acoes { margin-left: auto; display: flex; flex-wrap: wrap; gap: 10px; }
.ally-cad__acoes .ally-btn { min-height: 46px; }

@media (max-width: 900px) {
	.ally-cad__grade { grid-template-columns: 1fr; }
	.ally-cad__etapas { position: static; }
	.ally-cad__etapas ol { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; }
	.ally-cad__fotos { grid-template-columns: 1fr; }
	.ally-cad__lista, .ally-cad__principal, .ally-cad__adicionar, .ally-cad__fotos > .ally-cad__ajuda, .ally-cad__fotos > .ally-cad__erro { grid-column: 1; grid-row: auto; }
}
@media (max-width: 600px) {
	.ally-cad__campos { grid-template-columns: 1fr 1fr; }
	.ally-cad__campo { grid-column: span min(var(--col, 4), 2); }
	.ally-cad__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ally-cad__lista li:first-child { grid-column: span 3; }
	.ally-cad__acoes { margin-left: 0; width: 100%; flex-wrap: nowrap; }
	.ally-cad__acoes .ally-btn { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 0 10px; letter-spacing: .04em; line-height: 1.2; }
	.ally-cad__barra-dentro { gap: 6px 16px; padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
}
html[data-tema="escuro"] .ally-erro { background: #3A1E22; color: #F4C7C7; }
html[data-tema="escuro"] .ally-sucesso { background: #1E3A2B; color: #CFEBD9; }

/* ---------------------------------------------------------------- Manual do site (área restrita) */
.ally-corretor-usuario a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--ally-dourado); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.ally-manual__topo { margin: 0 0 32px; }
.ally-manual__topo h1 { margin: 8px 0 12px; font-size: var(--ally-fs-t1); }
.ally-manual__intro { margin: 0; max-width: 72ch; font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); color: var(--ally-texto-2); }
.ally-manual__corpo { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; }
.ally-manual__indice { position: sticky; top: 24px; padding: 20px; border-radius: var(--ally-raio); background: var(--ally-superficie); }
.ally-manual__indice-titulo { margin: 0 0 10px; font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ally-texto-2); }
.ally-manual__indice ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: var(--ally-fs-pequeno); }
.ally-manual__indice a { color: var(--ally-texto); text-decoration: none; }
.ally-manual__indice a:hover, .ally-manual__indice a:focus-visible { text-decoration: underline; }
.ally-manual__conteudo { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ally-manual__secao { padding: clamp(20px, 3vw, 36px); border-radius: var(--ally-raio); background: var(--ally-superficie); font-size: var(--ally-fs-texto); line-height: var(--ally-lh-texto); scroll-margin-top: 24px; }
.ally-manual__secao h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 16px; font-size: var(--ally-fs-t3); scroll-margin-top: 24px; }
.ally-manual__secao h3 { margin: 28px 0 10px; font-size: var(--ally-fs-t4); }
.ally-manual__secao p { margin: 0 0 14px; }
.ally-manual__secao ul, .ally-manual__secao ol { margin: 0 0 14px; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.ally-manual__secao code { padding: 1px 6px; border-radius: 6px; background: var(--ally-suave); font-size: .88em; }
.ally-manual__chip { display: inline-block; padding: 3px 10px; border-radius: 6px; background: var(--ally-suave); font-family: inherit; font-size: var(--ally-fs-rotulo); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ally-texto-2); vertical-align: middle; }
.ally-manual__nota { padding: 14px 18px; border-left: 3px solid var(--ally-dourado); border-radius: 6px; background: var(--ally-cartao); }
.ally-manual__tabela { overflow-x: auto; margin: 0 0 14px; }
.ally-manual__tabela table { width: 100%; border-collapse: collapse; font-size: var(--ally-fs-pequeno); line-height: 1.55; }
.ally-manual__tabela th, .ally-manual__tabela td { padding: 10px 12px; border-bottom: 1px solid var(--ally-linha); text-align: left; vertical-align: top; }
.ally-manual__tabela thead th { font-size: var(--ally-fs-rotulo); letter-spacing: .12em; text-transform: uppercase; color: var(--ally-texto-2); }
.ally-manual__tabela tbody th { width: 32%; font-weight: 700; }
.ally-manual__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 8px; }
.ally-manual__card { padding: 16px; border-radius: var(--ally-raio); background: var(--ally-cartao); }
.ally-manual__numero { display: block; font-family: var(--ally-titulo); font-weight: 600; font-size: var(--ally-fs-t4); line-height: 1.2; }
.ally-manual__card p { margin: 6px 0 0; font-size: var(--ally-fs-pequeno); color: var(--ally-texto-2); }
.ally-manual__faq { margin: 0; }
.ally-manual__faq dt { margin: 16px 0 4px; font-weight: 700; }
.ally-manual__faq dt:first-child { margin-top: 0; }
.ally-manual__faq dd { margin: 0; color: var(--ally-texto-2); }
@media (max-width: 900px) {
	.ally-manual__corpo { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.ally-manual__indice { position: static; }
	.ally-manual__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
	.ally-cabecalho, .ally-manual__indice { display: none; }
	.ally-manual__corpo { display: block; }
	.ally-manual__secao { break-inside: avoid-page; }
}
html[data-tema="escuro"] .ally-manual__nota, html[data-tema="escuro"] .ally-manual__card { background: var(--ally-suave); }
