/* =============================================================
   AXIS — DESIGN SYSTEM
   Construido sobre o kit que ja existia no Elementor:
   azul #132357, laranja #FA7921, Outfit, container 1200px.
   Tudo aqui e prefixado .ax- para nao vazar nas paginas atuais.
   ============================================================= */

:root {

  /* --- Azul da marca --- */
  --ax-navy-900: #0B1230;
  --ax-navy-800: #132357;   /* Primario do kit */
  --ax-navy-700: #1D3175;
  --ax-navy-600: #394672;   /* Primario hover do kit */
  --ax-navy-200: #C6D0EA;
  --ax-navy-100: #E7ECF8;
  --ax-navy-50:  #F3F6FD;

  /* --- Laranja de acao ---
     500 e a cor da marca: usar como FUNDO com texto escuro.
     700 e a versao acessivel para TEXTO sobre branco (4.5:1). */
  --ax-orange-700: #A84600;
  --ax-orange-600: #C85600;
  --ax-orange-500: #FA7921;
  --ax-orange-400: #FB8F45;
  --ax-orange-100: #FFE6D2;
  --ax-orange-50:  #FFF4EC;

  /* --- Neutros com viés azul (nao cinza puro) --- */
  --ax-n-900: #101420;
  --ax-n-800: #1C2230;
  --ax-n-700: #2B3242;
  --ax-n-600: #4A5364;
  --ax-n-500: #6B7486;
  --ax-n-400: #939BAB;
  --ax-n-300: #C2C8D4;
  --ax-n-200: #DFE3EB;
  --ax-n-100: #EDEFF4;
  --ax-n-50:  #F6F7FA;
  --ax-white: #FFFFFF;

  /* --- Semanticas (separadas do laranja da marca) --- */
  --ax-ok:      #0F7B54;
  --ax-ok-bg:   #E6F4EE;
  --ax-warn:    #9A5B00;
  --ax-warn-bg: #FDF3E3;
  --ax-err:     #B3261E;
  --ax-err-bg:  #FCECEA;
  --ax-info:    #0F63D0;
  --ax-info-bg: #E8F0FC;

  /* --- Papeis --- */
  --ax-fundo:        var(--ax-n-50);
  --ax-superficie:   var(--ax-white);
  --ax-superficie-2: var(--ax-n-100);
  --ax-texto:        var(--ax-n-800);
  --ax-texto-forte:  var(--ax-navy-800);
  --ax-texto-suave:  var(--ax-n-500);
  --ax-borda:        var(--ax-n-200);
  --ax-borda-suave:  var(--ax-n-100);

  /* --- Tipografia --- */
  --ax-fonte: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ax-t-xs:   0.75rem;
  --ax-t-sm:   0.875rem;
  --ax-t-base: 1rem;
  --ax-t-lg:   1.125rem;
  --ax-t-xl:   1.375rem;
  --ax-t-2xl:  clamp(1.5rem, 1.2rem + 1.4vw, 1.875rem);
  --ax-t-3xl:  clamp(1.875rem, 1.4rem + 2.2vw, 2.5rem);
  --ax-t-4xl:  clamp(2.25rem, 1.5rem + 3.4vw, 3.25rem);

  /* --- Espacamento (base 4px) --- */
  --ax-s-1:  0.25rem;
  --ax-s-2:  0.5rem;
  --ax-s-3:  0.75rem;
  --ax-s-4:  1rem;
  --ax-s-5:  1.25rem;
  --ax-s-6:  1.5rem;
  --ax-s-8:  2rem;
  --ax-s-10: 2.5rem;
  --ax-s-12: 3rem;
  --ax-s-16: 4rem;
  --ax-s-20: 5rem;

  /* --- Forma --- */
  --ax-r-sm:   4px;
  --ax-r-md:   8px;
  --ax-r-lg:   12px;
  --ax-r-full: 999px;

  /* --- Elevacao (tingida de azul, nao preto) --- */
  --ax-sombra-1: 0 1px 2px rgba(19,35,87,.06);
  --ax-sombra-2: 0 1px 2px rgba(19,35,87,.05), 0 4px 12px -4px rgba(19,35,87,.10);
  --ax-sombra-3: 0 2px 4px rgba(19,35,87,.05), 0 12px 28px -8px rgba(19,35,87,.16);

  --ax-container: 1200px;
  --ax-transicao: 180ms cubic-bezier(.4,0,.2,1);
}

/* =============================================================
   BASE
   ============================================================= */

.ax-container {
  width: 100%;
  max-width: var(--ax-container);
  margin-inline: auto;
  padding-inline: var(--ax-s-5);
}

.ax-secao { padding-block: clamp(2.5rem, 5vw, 4.5rem); }

.ax-titulo-secao {
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-2xl);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ax-texto-forte);
  line-height: 1.18;
  text-wrap: balance;
  margin: 0;
}

.ax-sub-secao {
  font-size: var(--ax-t-lg);
  color: var(--ax-texto-suave);
  max-width: 60ch;
  margin: var(--ax-s-3) 0 0;
  line-height: 1.55;
}

.ax-etiqueta {
  font-size: var(--ax-t-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ax-orange-700);
}

/* Foco visivel — mesma regra em todo o site */
.ax-foco:focus-visible,
.ax-btn:focus-visible,
.ax-galeria__principal:focus-visible,
.ax-galeria__mini:focus-visible,
.ax-galeria__todas:focus-visible,
.ax-mapa__abrir:focus-visible,
.ax-cabecalho__hamburguer:focus-visible,
.ax-nav__link:focus-visible,
.ax-bairro:focus-visible,
.ax-frente__link:focus-visible,
.ax-card:focus-visible,
.ax-campo:focus-visible,
.ax-chip:focus-visible {
  outline: 2px solid var(--ax-orange-600);
  outline-offset: 2px;
  border-radius: var(--ax-r-sm);
}

@media (prefers-reduced-motion: reduce) {
  .ax-card, .ax-btn, .ax-chip, .ax-card__foto img { transition: none !important; }
  .ax-card:hover { transform: none !important; }
}

/* =============================================================
   BOTOES NATIVOS
   O reset do Hello Elementor pinta todo <button>:hover de rosa
   (#c36) e o kit do Elementor (.elementor-kit-N button) impoe
   padding 15px/20px e raio 15px. Os dois tem especificidade
   (0,1,1); os seletores abaixo empatam ou vencem e vem depois.
   ============================================================= */

button[class*="ax-"] {
  font-family: var(--ax-fonte);
  white-space: normal;
  text-align: center;
}
button.ax-galeria__principal,
button.ax-galeria__mini,
button.ax-galeria__principal:hover,
button.ax-galeria__mini:hover,
button.ax-galeria__principal:focus,
button.ax-galeria__mini:focus {
  padding: 0; border: 0; border-radius: 0;
  background: var(--ax-superficie-2);
  color: inherit;
  transition: none;
  text-align: inherit;
}
button.ax-galeria__todas,
button.ax-galeria__todas:hover,
button.ax-galeria__todas:focus {
  padding: 0.625rem 1rem;
  background: var(--ax-white);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  color: var(--ax-navy-800);
  font-size: var(--ax-t-sm);
  line-height: 1.2;
  transition: transform var(--ax-transicao), border-color var(--ax-transicao);
}
button.ax-galeria__todas:hover { border-color: var(--ax-navy-600); }

button.ax-lightbox__fechar,
button.ax-lightbox__fechar:focus {
  padding: 0.5rem 0.875rem; border: 0; border-radius: var(--ax-r-md);
  background: rgba(255,255,255,.12); color: var(--ax-white);
  font-size: var(--ax-t-sm); line-height: 1.2;
}
button.ax-lightbox__fechar:hover { background: rgba(255,255,255,.22); color: var(--ax-white); }

button.ax-mapa__abrir,
button.ax-mapa__abrir:hover,
button.ax-mapa__abrir:focus {
  padding: 0.8125rem 1.25rem;
  background: var(--ax-white);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  color: var(--ax-navy-800);
  font-size: var(--ax-t-base); line-height: 1.2;
}
button.ax-mapa__abrir:hover { border-color: var(--ax-navy-600); }

button.ax-cabecalho__hamburguer,
button.ax-cabecalho__hamburguer:hover,
button.ax-cabecalho__hamburguer:focus {
  padding: 0; background: none;
  border: 1px solid var(--ax-borda); border-radius: var(--ax-r-md);
  color: var(--ax-texto-forte);
}
button.ax-cabecalho__hamburguer:hover { background: var(--ax-superficie-2); }

button.ax-nav__botao,
button.ax-nav__botao:focus {
  padding: 0.625rem 0.875rem; border: 0; border-radius: var(--ax-r-md);
  background: none; color: var(--ax-texto);
  font-size: var(--ax-t-sm); line-height: 1.5;
}
button.ax-nav__botao:hover { background: var(--ax-superficie-2); color: var(--ax-navy-800); }
@media (max-width: 1023px) {
  button.ax-nav__botao, button.ax-nav__botao:focus {
    padding: var(--ax-s-4); font-size: var(--ax-t-lg); border-radius: 0;
    border-bottom: 1px solid var(--ax-borda-suave);
  }
}

/* .ax-btn quando e <button> (busca, alternar mapa, formularios) */
button.ax-btn {
  padding: 0.8125rem 1.375rem;
  border: 1px solid transparent;
  border-radius: var(--ax-r-md);
  font-size: var(--ax-t-base);
  font-weight: 500;
  line-height: 1.2;
  transition: background var(--ax-transicao), border-color var(--ax-transicao),
              color var(--ax-transicao), transform var(--ax-transicao);
}
button.ax-btn--sm { padding: 0.5rem 0.875rem; font-size: var(--ax-t-sm); }
button.ax-btn--primario, button.ax-btn--primario:focus { background: var(--ax-orange-500); color: var(--ax-navy-900); font-weight: 600; }
button.ax-btn--primario:hover { background: var(--ax-orange-400); color: var(--ax-navy-900); }
button.ax-btn--escuro, button.ax-btn--escuro:focus { background: var(--ax-navy-800); color: var(--ax-white); }
button.ax-btn--escuro:hover { background: var(--ax-navy-700); color: var(--ax-white); }
button.ax-btn--contorno, button.ax-btn--contorno:focus { background: transparent; border-color: var(--ax-borda); color: var(--ax-texto-forte); }
button.ax-btn--contorno:hover { border-color: var(--ax-navy-600); background: var(--ax-navy-50); color: var(--ax-texto-forte); }
button.ax-btn--fantasma, button.ax-btn--fantasma:focus { background: transparent; color: var(--ax-texto-forte); }
button.ax-btn--fantasma:hover { background: var(--ax-superficie-2); color: var(--ax-texto-forte); }

/* =============================================================
   BOTOES
   ============================================================= */

.ax-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ax-s-2);
  padding: 0.8125rem 1.375rem;
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-base);
  font-weight: 500;
  line-height: 1.2;
  border-radius: var(--ax-r-md);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--ax-transicao), border-color var(--ax-transicao),
              color var(--ax-transicao), transform var(--ax-transicao);
  min-height: 46px;           /* alvo de toque confortavel */
}

.ax-btn--primario {
  background: var(--ax-orange-500);
  color: var(--ax-navy-900);
  font-weight: 600;
}
.ax-btn--primario:hover { background: var(--ax-orange-400); transform: translateY(-1px); }
.ax-btn--primario:active { transform: translateY(0); }

.ax-btn--escuro {
  background: var(--ax-navy-800);
  color: var(--ax-white);
}
.ax-btn--escuro:hover { background: var(--ax-navy-700); transform: translateY(-1px); }

.ax-btn--contorno {
  background: transparent;
  border-color: var(--ax-borda);
  color: var(--ax-texto-forte);
}
.ax-btn--contorno:hover { border-color: var(--ax-navy-600); background: var(--ax-navy-50); }

.ax-btn--fantasma {
  background: transparent;
  color: var(--ax-texto-forte);
  padding-inline: var(--ax-s-3);
}
.ax-btn--fantasma:hover { background: var(--ax-superficie-2); }

.ax-btn--zap { background: #1FA855; color: #fff; }
.ax-btn--zap:hover { background: #1B9349; transform: translateY(-1px); }

.ax-btn--bloco { width: 100%; }
.ax-btn--sm { padding: 0.5rem 0.875rem; font-size: var(--ax-t-sm); min-height: 38px; }

.ax-btn[disabled], .ax-btn[aria-disabled="true"] {
  opacity: .45; cursor: not-allowed; transform: none !important;
}

/* =============================================================
   CARD DE IMOVEL
   Um componente so, usado na home, nas listagens, no mapa
   e no bloco de semelhantes.
   ============================================================= */

.ax-grade {
  display: grid;
  gap: var(--ax-s-5);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 288px), 1fr));
}

.ax-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  overflow: hidden;
  transition: box-shadow var(--ax-transicao), transform var(--ax-transicao),
              border-color var(--ax-transicao);
}
.ax-card:hover {
  box-shadow: var(--ax-sombra-3);
  border-color: var(--ax-navy-200);
  transform: translateY(-2px);
}

/* Proporcao fixa: sem isso a foto empurra o layout e gera CLS */
.ax-card__foto {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--ax-superficie-2);
  overflow: hidden;
}
.ax-card__foto img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 400ms cubic-bezier(.4,0,.2,1);
}
.ax-card:hover .ax-card__foto img { transform: scale(1.04); }

.ax-card__selos {
  position: absolute; inset-block-start: var(--ax-s-3); inset-inline-start: var(--ax-s-3);
  display: flex; flex-wrap: wrap; gap: var(--ax-s-2);
  z-index: 2;
}

.ax-selo {
  display: inline-flex; align-items: center;
  padding: 0.3125rem 0.5625rem;
  font-size: var(--ax-t-xs);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--ax-r-sm);
  background: var(--ax-white);
  color: var(--ax-navy-800);
  box-shadow: var(--ax-sombra-1);
}
.ax-selo--venda   { background: var(--ax-navy-800); color: var(--ax-white); }
.ax-selo--aluguel { background: var(--ax-white); color: var(--ax-navy-800); }
.ax-selo--destaque{ background: var(--ax-orange-500); color: var(--ax-navy-900); }

.ax-card__favorito {
  position: absolute; inset-block-start: var(--ax-s-3); inset-inline-end: var(--ax-s-3);
  z-index: 2;
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: var(--ax-r-full);
  background: rgba(255,255,255,.92);
  border: 0; cursor: pointer;
  color: var(--ax-n-600);
  transition: color var(--ax-transicao), background var(--ax-transicao);
}
.ax-card__favorito:hover { color: var(--ax-err); background: var(--ax-white); }
.ax-card__favorito[aria-pressed="true"] { color: var(--ax-err); }

.ax-card__corpo {
  display: flex; flex-direction: column;
  gap: var(--ax-s-2);
  padding: var(--ax-s-4) var(--ax-s-4) var(--ax-s-5);
  flex: 1;
}

.ax-card__preco {
  font-size: var(--ax-t-xl);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ax-texto-forte);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.ax-preco-un { font-size: var(--ax-t-sm); font-weight: 500; color: var(--ax-texto-suave); }

.ax-card__custos {
  font-size: var(--ax-t-xs);
  color: var(--ax-texto-suave);
  margin-top: calc(var(--ax-s-1) * -1);
}

.ax-card__titulo {
  font-size: var(--ax-t-base);
  font-weight: 500;
  line-height: 1.4;
  color: var(--ax-texto);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ax-card__titulo a { color: inherit; text-decoration: none; }
/* O card inteiro e clicavel — sem botao concorrendo com o link */
.ax-card__titulo a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

.ax-card__local {
  display: flex; align-items: center; gap: var(--ax-s-1);
  font-size: var(--ax-t-sm);
  color: var(--ax-texto-suave);
}

.ax-card__ficha {
  display: flex; flex-wrap: wrap;
  gap: var(--ax-s-1) var(--ax-s-4);
  margin-top: auto;
  padding-top: var(--ax-s-3);
  border-top: 1px solid var(--ax-borda-suave);
  font-size: var(--ax-t-sm);
  color: var(--ax-n-600);
  font-variant-numeric: tabular-nums;
}
.ax-card__ficha span { display: inline-flex; align-items: center; gap: 0.375rem; }
.ax-card__ficha svg { width: 15px; height: 15px; flex: none; color: var(--ax-n-400); }

.ax-card__codigo {
  font-size: var(--ax-t-xs);
  color: var(--ax-n-400);
  letter-spacing: 0.04em;
}

/* =============================================================
   CHIPS / FILTROS
   ============================================================= */

.ax-chips { display: flex; flex-wrap: wrap; gap: var(--ax-s-2); }

.ax-chip {
  display: inline-flex; align-items: center; gap: var(--ax-s-2);
  padding: 0.5rem 0.875rem;
  font-size: var(--ax-t-sm);
  font-weight: 500;
  color: var(--ax-texto);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-full);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--ax-transicao);
  min-height: 38px;
}
.ax-chip:hover { border-color: var(--ax-navy-600); color: var(--ax-navy-800); }
.ax-chip[aria-current="true"], .ax-chip--ativo {
  background: var(--ax-navy-800); border-color: var(--ax-navy-800); color: var(--ax-white);
}
.ax-chip__n { font-size: var(--ax-t-xs); color: var(--ax-n-400); font-variant-numeric: tabular-nums; }
.ax-chip[aria-current="true"] .ax-chip__n { color: var(--ax-navy-200); }

/* =============================================================
   CAMPOS
   ============================================================= */

.ax-campo {
  width: 100%;
  padding: 0.75rem 0.875rem;
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-base);
  color: var(--ax-texto);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  min-height: 46px;
  transition: border-color var(--ax-transicao), box-shadow var(--ax-transicao);
}
.ax-campo:hover { border-color: var(--ax-n-300); }
.ax-campo:focus {
  outline: none;
  border-color: var(--ax-navy-600);
  box-shadow: 0 0 0 3px var(--ax-navy-100);
}
.ax-campo::placeholder { color: var(--ax-n-400); }
.ax-campo[aria-invalid="true"] { border-color: var(--ax-err); }

.ax-rotulo {
  display: block;
  font-size: var(--ax-t-sm);
  font-weight: 500;
  color: var(--ax-n-600);
  margin-bottom: var(--ax-s-2);
}

.ax-erro { font-size: var(--ax-t-sm); color: var(--ax-err); margin-top: var(--ax-s-2); }
.ax-ajuda { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin-top: var(--ax-s-2); }

/* =============================================================
   ESTADOS
   ============================================================= */

.ax-vazio {
  text-align: center;
  padding: var(--ax-s-16) var(--ax-s-5);
  background: var(--ax-superficie);
  border: 1px dashed var(--ax-borda);
  border-radius: var(--ax-r-lg);
}
.ax-vazio h3 { font-size: var(--ax-t-xl); color: var(--ax-texto-forte); margin: 0 0 var(--ax-s-2); font-weight: 600; }
.ax-vazio p { color: var(--ax-texto-suave); max-width: 46ch; margin: 0 auto var(--ax-s-6); }

.ax-esqueleto {
  background: linear-gradient(90deg, var(--ax-n-100) 25%, var(--ax-n-200) 37%, var(--ax-n-100) 63%);
  background-size: 400% 100%;
  animation: ax-brilho 1.4s ease-in-out infinite;
  border-radius: var(--ax-r-sm);
}
@keyframes ax-brilho { 0% { background-position: 100% 50% } 100% { background-position: 0 50% } }
@media (prefers-reduced-motion: reduce) { .ax-esqueleto { animation: none } }

/* =============================================================
   TRILHA (breadcrumb)
   ============================================================= */

.ax-trilha {
  font-size: var(--ax-t-sm);
  color: var(--ax-texto-suave);
  padding-block: var(--ax-s-4);
}
.ax-trilha ol {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--ax-s-2);
  list-style: none; margin: 0; padding: 0;
}
.ax-trilha li { display: flex; align-items: center; gap: var(--ax-s-2); }
.ax-trilha li + li::before { content: "/"; color: var(--ax-n-300); }
.ax-trilha a { color: var(--ax-texto-suave); text-decoration: none; }
.ax-trilha a:hover { color: var(--ax-navy-800); text-decoration: underline; }
.ax-trilha [aria-current="page"] { color: var(--ax-texto); }

/* =============================================================
   BARRA DE ACAO FIXA (mobile)
   ============================================================= */

.ax-barra-fixa {
  position: fixed;
  inset-inline: 0; inset-block-end: 0;
  z-index: 90;
  display: flex; align-items: center; gap: var(--ax-s-3);
  padding: var(--ax-s-3) var(--ax-s-4);
  padding-bottom: max(var(--ax-s-3), env(safe-area-inset-bottom));
  background: var(--ax-superficie);
  border-top: 1px solid var(--ax-borda);
  box-shadow: 0 -4px 20px -8px rgba(19,35,87,.18);
}
.ax-barra-fixa__preco {
  flex: 1; min-width: 0;
  font-size: var(--ax-t-lg); font-weight: 700;
  color: var(--ax-texto-forte);
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}
.ax-barra-fixa__preco small {
  display: block; font-size: var(--ax-t-xs);
  font-weight: 400; color: var(--ax-texto-suave);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (min-width: 1024px) { .ax-barra-fixa { display: none; } }

/* =============================================================
   ACESSIBILIDADE
   ============================================================= */

.ax-sr {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.ax-pular {
  position: absolute; inset-block-start: -60px; inset-inline-start: var(--ax-s-4);
  z-index: 999;
  background: var(--ax-navy-800); color: var(--ax-white);
  padding: var(--ax-s-3) var(--ax-s-4);
  border-radius: 0 0 var(--ax-r-md) var(--ax-r-md);
  text-decoration: none;
  transition: inset-block-start var(--ax-transicao);
}
.ax-pular:focus { inset-block-start: 0; }

/* =============================================================
   LISTAGEM
   ============================================================= */

.ax-listagem { background: var(--ax-fundo); }

.ax-listagem__topo {
  background: var(--ax-superficie);
  border-bottom: 1px solid var(--ax-borda);
  padding-block: var(--ax-s-6) var(--ax-s-5);
}

.ax-listagem__h1 {
  font-size: var(--ax-t-3xl);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.12;
  color: var(--ax-texto-forte);
  margin: 0;
  text-wrap: balance;
  max-width: 22ch;
}

.ax-listagem__contagem {
  font-size: var(--ax-t-base);
  color: var(--ax-texto-suave);
  margin: var(--ax-s-2) 0 0;
}
.ax-listagem__contagem strong {
  color: var(--ax-texto-forte);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.ax-listagem__filtros { margin-top: var(--ax-s-5); }
.ax-chip--limpar { border-style: dashed; color: var(--ax-texto-suave); }

.ax-listagem__grade { padding-block: var(--ax-s-8); }

.ax-card__sem-foto {
  width: 100%; height: 100%;
  display: grid; place-items: center;
  color: var(--ax-n-300);
  background: var(--ax-superficie-2);
}

.ax-vazio__acoes {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-3); justify-content: center;
}

/* Paginacao */
.ax-listagem .navigation.pagination { padding-bottom: var(--ax-s-10); }
.ax-listagem .nav-links {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-2); justify-content: center;
}
.ax-listagem .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; min-height: 42px;
  padding-inline: var(--ax-s-3);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  background: var(--ax-superficie);
  color: var(--ax-texto);
  text-decoration: none;
  font-size: var(--ax-t-sm);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  transition: all var(--ax-transicao);
}
.ax-listagem .page-numbers:hover { border-color: var(--ax-navy-600); color: var(--ax-navy-800); }
.ax-listagem .page-numbers.current {
  background: var(--ax-navy-800); border-color: var(--ax-navy-800); color: var(--ax-white);
}
.ax-listagem .page-numbers.dots { border-color: transparent; background: transparent; }

/* =============================================================
   ATALHOS CONTEXTUAIS (links internos)
   ============================================================= */

.ax-atalhos { background: var(--ax-superficie); border-top: 1px solid var(--ax-borda); }
.ax-atalhos__grupo + .ax-atalhos__grupo { margin-top: var(--ax-s-8); }
.ax-atalhos__titulo {
  font-size: var(--ax-t-lg);
  font-weight: 600;
  color: var(--ax-texto-forte);
  margin: 0 0 var(--ax-s-4);
  letter-spacing: -0.01em;
}

/* =============================================================
   BLOCO EDITORIAL
   ============================================================= */

.ax-editorial { background: var(--ax-fundo); }

.ax-editorial__caixa {
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.ax-editorial__dados {
  display: grid;
  gap: var(--ax-s-4);
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin: var(--ax-s-6) 0;
  padding-block: var(--ax-s-5);
  border-block: 1px solid var(--ax-borda-suave);
}

.ax-dado__n {
  display: block;
  font-size: var(--ax-t-xl);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ax-navy-800);
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}
.ax-dado__r {
  display: block;
  font-size: var(--ax-t-sm);
  color: var(--ax-texto-suave);
  margin-top: var(--ax-s-1);
}

.ax-editorial__texto {
  font-size: var(--ax-t-base);
  line-height: 1.65;
  color: var(--ax-n-600);
  max-width: 68ch;
  margin: 0;
}

.ax-editorial__nota {
  font-size: var(--ax-t-sm);
  color: var(--ax-texto-suave);
  margin: var(--ax-s-5) 0 0;
  padding-top: var(--ax-s-4);
  border-top: 1px solid var(--ax-borda-suave);
}
.ax-editorial__nota a { color: var(--ax-orange-700); font-weight: 500; }

/* =============================================================
   FAIXA DE CONVERSAO
   ============================================================= */

/* A faixa carrega o proprio respiro. Quando vem depois de uma
   .ax-secao (que ja tem padding embaixo), o topo zera. */
.ax-cta { background: var(--ax-fundo); padding-block: clamp(2.5rem, 5vw, 4rem); }
.ax-secao + .ax-cta { padding-top: 0; }

.ax-cta__caixa {
  display: flex; flex-wrap: wrap;
  gap: var(--ax-s-6);
  align-items: center; justify-content: space-between;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--ax-r-lg);
  background:
    radial-gradient(760px 420px at 88% -30%, rgba(250,121,33,.20), transparent 62%),
    var(--ax-navy-800);
  color: var(--ax-white);
}

.ax-cta__texto { flex: 1 1 340px; min-width: 0; }
.ax-cta__titulo {
  font-size: var(--ax-t-2xl);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0 0 var(--ax-s-2);
  color: var(--ax-white);
  text-wrap: balance;
}
.ax-cta__texto p {
  margin: 0;
  color: var(--ax-navy-200);
  font-size: var(--ax-t-base);
  line-height: 1.55;
  max-width: 52ch;
}
.ax-cta__acoes { display: flex; flex-wrap: wrap; gap: var(--ax-s-3); }
.ax-cta__acoes .ax-btn--contorno {
  border-color: rgba(255,255,255,.28);
  color: var(--ax-white);
}
.ax-cta__acoes .ax-btn--contorno:hover {
  border-color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.08);
}

/* =============================================================
   FICHA DO IMOVEL
   ============================================================= */

.ax-imovel { background: var(--ax-fundo); padding-bottom: var(--ax-s-16); }

.ax-aviso {
  background: var(--ax-warn-bg);
  border: 1px solid rgba(154,91,0,.25);
  color: var(--ax-warn);
  border-radius: var(--ax-r-md);
  padding: var(--ax-s-4);
  margin-block: var(--ax-s-4);
  font-size: var(--ax-t-sm);
}
.ax-aviso a { color: inherit; font-weight: 600; }

/* --- Galeria --- */

.ax-galeria { padding-block: var(--ax-s-2) var(--ax-s-8); }

.ax-galeria__mosaico {
  position: relative;
  display: grid;
  gap: var(--ax-s-2);
  grid-template-columns: 1fr;
  border-radius: var(--ax-r-lg);
  overflow: hidden;
}
@media (min-width: 900px) {
  .ax-galeria__mosaico { grid-template-columns: 1.9fr 1fr; }
  .ax-galeria__mosaico--solo { grid-template-columns: 1fr; }
}

.ax-galeria__principal,
.ax-galeria__mini {
  position: relative;
  padding: 0; border: 0; margin: 0;
  background: var(--ax-superficie-2);
  cursor: zoom-in;
  overflow: hidden;
  display: block;
}
.ax-galeria__principal { aspect-ratio: 4 / 3; }
.ax-galeria__principal img,
.ax-galeria__mini img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 400ms cubic-bezier(.4,0,.2,1);
}
.ax-galeria__principal:hover img,
.ax-galeria__mini:hover img { transform: scale(1.03); }

.ax-galeria__lado {
  display: grid;
  gap: var(--ax-s-2);
  grid-template-columns: 1fr 1fr;
}
.ax-galeria__mini { aspect-ratio: 4 / 3; }
@media (max-width: 899px) { .ax-galeria__lado { display: none; } }

.ax-galeria__mais {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  gap: var(--ax-s-2);
  background: rgba(11,18,48,.62);
  color: var(--ax-white);
  font-size: var(--ax-t-lg);
  font-weight: 600;
}

.ax-galeria__todas {
  position: absolute;
  inset-block-end: var(--ax-s-4); inset-inline-end: var(--ax-s-4);
  display: inline-flex; align-items: center; gap: var(--ax-s-2);
  padding: 0.625rem 1rem;
  background: var(--ax-white);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-sm);
  font-weight: 600;
  color: var(--ax-navy-800);
  cursor: pointer;
  box-shadow: var(--ax-sombra-2);
  transition: transform var(--ax-transicao);
}
.ax-galeria__todas:hover { transform: translateY(-1px); }

/* --- Lightbox --- */

.ax-lightbox {
  width: 100%; max-width: 100%; height: 100%; max-height: 100%;
  border: 0; padding: 0; margin: 0;
  background: #0B1230;
  color: var(--ax-white);
  overflow: hidden;
}
.ax-lightbox::backdrop { background: rgba(11,18,48,.94); }
.ax-lightbox__topo {
  position: absolute; inset-block-start: 0; inset-inline: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--ax-s-4) var(--ax-s-5);
  background: linear-gradient(to bottom, rgba(11,18,48,.85), transparent);
}
.ax-lightbox__contador { font-size: var(--ax-t-sm); font-variant-numeric: tabular-nums; opacity: .85; }
.ax-lightbox__fechar {
  background: rgba(255,255,255,.12);
  border: 0; color: var(--ax-white);
  font-family: var(--ax-fonte); font-size: var(--ax-t-sm); font-weight: 500;
  padding: 0.5rem 0.875rem; border-radius: var(--ax-r-md); cursor: pointer;
}
.ax-lightbox__fechar:hover { background: rgba(255,255,255,.22); }
.ax-lightbox__trilho {
  display: flex; height: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.ax-lightbox__trilho::-webkit-scrollbar { display: none; }
.ax-lightbox__item {
  flex: 0 0 100%; margin: 0;
  scroll-snap-align: start;
  display: grid; place-items: center;
  padding: var(--ax-s-16) var(--ax-s-4);
}
.ax-lightbox__item img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* --- Grade principal --- */

.ax-imovel__grade {
  display: grid;
  gap: var(--ax-s-8);
  grid-template-columns: 1fr;
  align-items: start;
}
@media (min-width: 1024px) {
  .ax-imovel__grade { grid-template-columns: minmax(0,1fr) 348px; gap: var(--ax-s-10); }
}

.ax-imovel__selos {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--ax-s-2);
  margin-bottom: var(--ax-s-4);
}
.ax-imovel__codigo {
  font-size: var(--ax-t-xs);
  color: var(--ax-texto-suave);
  letter-spacing: 0.04em;
  margin-inline-start: auto;
}

.ax-imovel__h1 {
  font-size: var(--ax-t-3xl);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.14;
  color: var(--ax-texto-forte);
  margin: 0;
  text-wrap: balance;
}

.ax-imovel__local {
  display: flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-base);
  color: var(--ax-texto-suave);
  margin: var(--ax-s-3) 0 0;
}
.ax-imovel__local a { color: var(--ax-navy-700); text-decoration: none; font-weight: 500; }
.ax-imovel__local a:hover { text-decoration: underline; }

/* --- Ficha em icones --- */

.ax-ficha {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: var(--ax-s-3);
  list-style: none;
  margin: var(--ax-s-6) 0 0;
  padding: var(--ax-s-5);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
}
.ax-ficha li { display: flex; flex-direction: column; gap: 2px; }
.ax-ficha__i { color: var(--ax-orange-600); }
.ax-ficha__v {
  font-size: var(--ax-t-lg); font-weight: 700;
  color: var(--ax-texto-forte);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.ax-ficha__r { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); }

/* --- Blocos de conteudo --- */

.ax-bloco { margin-top: var(--ax-s-10); }
.ax-bloco__titulo {
  font-size: var(--ax-t-xl);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ax-texto-forte);
  margin: 0 0 var(--ax-s-4);
  padding-bottom: var(--ax-s-3);
  border-bottom: 1px solid var(--ax-borda);
}

.ax-prosa { font-size: var(--ax-t-base); line-height: 1.68; color: var(--ax-n-600); max-width: 68ch; }
.ax-prosa p { margin: 0 0 var(--ax-s-4); }
.ax-prosa p:last-child { margin-bottom: 0; }
.ax-prosa strong { color: var(--ax-texto); font-weight: 600; }
.ax-prosa ul, .ax-prosa ol { margin: 0 0 var(--ax-s-4); padding-inline-start: 1.25rem; }
.ax-prosa li { margin-bottom: var(--ax-s-2); }
.ax-prosa a { color: var(--ax-orange-700); }
.ax-prosa img { height: auto; border-radius: var(--ax-r-md); }

.ax-especificacoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--ax-s-4);
  margin: 0 0 var(--ax-s-6);
  padding: var(--ax-s-4) var(--ax-s-5);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
}
.ax-especificacoes dt { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin-bottom: 2px; }
.ax-especificacoes dd { margin: 0; font-weight: 600; color: var(--ax-texto-forte); font-size: var(--ax-t-base); }

.ax-caracteristicas + .ax-caracteristicas { margin-top: var(--ax-s-6); }
.ax-caracteristicas__titulo {
  font-size: var(--ax-t-base); font-weight: 600;
  color: var(--ax-texto); margin: 0 0 var(--ax-s-3);
}
.ax-caracteristicas__lista {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ax-s-2) var(--ax-s-5);
  list-style: none; margin: 0; padding: 0;
}
.ax-caracteristicas__lista li {
  display: flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-sm); color: var(--ax-n-600);
}
.ax-caracteristicas__lista svg { color: var(--ax-ok); flex: none; }

/* --- Mapa --- */

.ax-mapa__texto {
  display: flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-base); color: var(--ax-texto);
  margin: 0 0 var(--ax-s-4);
}
.ax-mapa__texto svg { color: var(--ax-orange-600); }

.ax-mapa {
  height: 320px;
  border-radius: var(--ax-r-lg);
  overflow: hidden;
  background:
    repeating-linear-gradient(45deg, var(--ax-n-100) 0 12px, var(--ax-n-50) 12px 24px);
  border: 1px solid var(--ax-borda);
  display: grid; place-items: center;
  position: relative; z-index: 0;
}
.ax-mapa--pronto { background: none; display: block; }
.ax-mapa__abrir {
  display: inline-flex; align-items: center; gap: var(--ax-s-2);
  padding: 0.8125rem 1.25rem;
  background: var(--ax-white);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  font-family: var(--ax-fonte); font-size: var(--ax-t-base); font-weight: 500;
  color: var(--ax-navy-800); cursor: pointer;
  box-shadow: var(--ax-sombra-2);
}
.ax-mapa__abrir:hover { border-color: var(--ax-navy-600); }
.ax-mapa__nota { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: var(--ax-s-3) 0 0; }

/* --- Painel de contato --- */

.ax-contato {
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  padding: var(--ax-s-6);
  box-shadow: var(--ax-sombra-2);
}
@media (min-width: 1024px) { .ax-contato { position: sticky; top: var(--ax-s-6); } }

.ax-contato__preco {
  font-size: var(--ax-t-2xl);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--ax-texto-forte);
  font-variant-numeric: tabular-nums;
  margin: 0 0 var(--ax-s-4);
  line-height: 1.1;
}

.ax-contato__custos {
  list-style: none; margin: 0 0 var(--ax-s-4); padding: 0;
  border-block: 1px solid var(--ax-borda-suave);
  padding-block: var(--ax-s-3);
}
.ax-contato__custos li {
  display: flex; justify-content: space-between; gap: var(--ax-s-3);
  font-size: var(--ax-t-sm); color: var(--ax-texto-suave);
  padding-block: 3px;
}
.ax-contato__custos b { color: var(--ax-texto); font-weight: 600; font-variant-numeric: tabular-nums; }

.ax-contato__total {
  display: flex; justify-content: space-between; gap: var(--ax-s-3);
  font-size: var(--ax-t-sm); color: var(--ax-texto);
  margin: calc(var(--ax-s-2) * -1) 0 var(--ax-s-4);
}
.ax-contato__total b { font-weight: 700; color: var(--ax-navy-800); font-variant-numeric: tabular-nums; }

.ax-contato__acoes { display: flex; flex-direction: column; gap: var(--ax-s-2); }
.ax-contato__rodape {
  font-size: var(--ax-t-xs);
  color: var(--ax-texto-suave);
  line-height: 1.55;
  margin: var(--ax-s-4) 0 0;
  padding-top: var(--ax-s-4);
  border-top: 1px solid var(--ax-borda-suave);
}

/* --- Semelhantes --- */

.ax-semelhantes { background: var(--ax-superficie); border-top: 1px solid var(--ax-borda); margin-top: var(--ax-s-12); }
.ax-semelhantes__topo {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-4);
  align-items: center; justify-content: space-between;
  margin-bottom: var(--ax-s-6);
}

/* A barra fixa cobre o fim da pagina no mobile. */
@media (max-width: 1023px) {
  .ax-imovel { padding-bottom: 88px; }
}

/* =============================================================
   HOME — HERO
   Fundo em cor, sem foto grande: o LCP passa a ser o texto,
   que renderiza na hora. Portal rapido vale mais que banner.
   ============================================================= */

.ax-hero {
  position: relative;
  background:
    radial-gradient(1100px 620px at 82% -18%, rgba(250,121,33,.22), transparent 60%),
    radial-gradient(880px 540px at 4% 112%, rgba(57,70,114,.55), transparent 58%),
    var(--ax-navy-900);
  color: var(--ax-white);
  padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem);
  overflow: hidden;
}

.ax-hero__texto { max-width: 46rem; }
.ax-hero .ax-etiqueta { color: var(--ax-orange-500); }

.ax-hero__h1 {
  font-size: var(--ax-t-4xl);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--ax-white);
  margin: var(--ax-s-4) 0 0;
  text-wrap: balance;
}

.ax-hero__lead {
  font-size: var(--ax-t-lg);
  line-height: 1.55;
  color: var(--ax-navy-200);
  max-width: 52ch;
  margin: var(--ax-s-4) 0 0;
  text-wrap: pretty;
}

.ax-hero__busca { margin-top: clamp(1.75rem, 4vw, 2.5rem); }

.ax-hero__atalhos {
  margin-top: var(--ax-s-6);
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--ax-s-3);
}
.ax-hero__atalhos-rotulo {
  font-size: var(--ax-t-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  flex: none;
}
.ax-hero .ax-chip {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
  color: var(--ax-white);
  backdrop-filter: blur(2px);
}
.ax-hero .ax-chip:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.4); color: var(--ax-white); }
.ax-hero .ax-chip__n { color: rgba(255,255,255,.6); }

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

.ax-busca--hero {
  background: var(--ax-superficie);
  border-radius: var(--ax-r-lg);
  padding: var(--ax-s-5);
  box-shadow: 0 24px 60px -24px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.14);
}

.ax-busca__abas {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  background: var(--ax-superficie-2);
  border-radius: var(--ax-r-md);
  margin-bottom: var(--ax-s-5);
}
.ax-busca__aba { position: relative; }
.ax-busca__aba input {
  position: absolute; opacity: 0; width: 100%; height: 100%;
  margin: 0; cursor: pointer;
}
.ax-busca__aba span {
  display: block;
  padding: 0.5625rem 1.125rem;
  border-radius: calc(var(--ax-r-md) - 2px);
  font-size: var(--ax-t-sm);
  font-weight: 600;
  color: var(--ax-texto-suave);
  transition: background var(--ax-transicao), color var(--ax-transicao);
}
.ax-busca__aba input:checked + span { background: var(--ax-navy-800); color: var(--ax-white); }
.ax-busca__aba input:focus-visible + span { outline: 2px solid var(--ax-orange-600); outline-offset: 2px; }

.ax-busca__campos {
  display: grid;
  gap: var(--ax-s-3);
  grid-template-columns: 1fr;
}
@media (min-width: 700px) {
  .ax-busca__campos { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .ax-busca__campos {
    grid-template-columns: 1.5fr 1fr 1fr 0.7fr auto;
    align-items: end;
  }
  .ax-busca__campo--local { grid-column: auto; }
}
.ax-busca__acao { display: flex; }
@media (min-width: 1000px) { .ax-busca__acao .ax-btn { min-width: 158px; } }

/* =============================================================
   SECOES DA HOME
   ============================================================= */

.ax-secao__topo {
  display: flex; flex-wrap: wrap;
  gap: var(--ax-s-4);
  align-items: end; justify-content: space-between;
  margin-bottom: var(--ax-s-8);
}

.ax-destaques { background: var(--ax-fundo); }
.ax-bairros { background: var(--ax-superficie); border-block: 1px solid var(--ax-borda); }

.ax-bairros__grade {
  display: grid;
  gap: var(--ax-s-3);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr));
}

.ax-bairro {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "nome seta" "n seta";
  align-items: center;
  gap: 2px var(--ax-s-3);
  padding: var(--ax-s-4) var(--ax-s-5);
  background: var(--ax-fundo);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  text-decoration: none;
  transition: all var(--ax-transicao);
}
.ax-bairro:hover {
  border-color: var(--ax-navy-600);
  background: var(--ax-navy-50);
  transform: translateY(-1px);
}
.ax-bairro__nome {
  grid-area: nome;
  font-size: var(--ax-t-base); font-weight: 600;
  color: var(--ax-texto-forte); letter-spacing: -0.01em;
}
.ax-bairro__n {
  grid-area: n;
  font-size: var(--ax-t-sm); color: var(--ax-texto-suave);
  font-variant-numeric: tabular-nums;
}
.ax-bairro__seta {
  grid-area: seta;
  color: var(--ax-n-300);
  display: grid; place-items: center;
  transition: color var(--ax-transicao), transform var(--ax-transicao);
}
.ax-bairro:hover .ax-bairro__seta { color: var(--ax-orange-500); transform: translateX(3px); }

.ax-bairros__outras {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--ax-s-3);
  margin-top: var(--ax-s-8);
  padding-top: var(--ax-s-6);
  border-top: 1px solid var(--ax-borda-suave);
}
.ax-bairros__rotulo { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); flex: none; }

/* --- Tres frentes --- */

.ax-frentes { background: var(--ax-fundo); }
.ax-frentes__grade {
  display: grid;
  gap: var(--ax-s-4);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 272px), 1fr));
  margin-top: var(--ax-s-8);
}

.ax-frente {
  display: flex; flex-direction: column;
  gap: var(--ax-s-3);
  padding: var(--ax-s-6);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  transition: border-color var(--ax-transicao), box-shadow var(--ax-transicao);
}
.ax-frente:hover { border-color: var(--ax-navy-200); box-shadow: var(--ax-sombra-2); }

/* A vertical de imóveis é a porta principal: ganha peso, as outras não. */
.ax-frente--destaque {
  background: var(--ax-navy-800);
  border-color: var(--ax-navy-800);
  color: var(--ax-white);
}
.ax-frente--destaque:hover { border-color: var(--ax-navy-700); }

.ax-frente__titulo {
  font-size: var(--ax-t-xl);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ax-texto-forte);
  margin: 0;
}
.ax-frente--destaque .ax-frente__titulo { color: var(--ax-white); }

.ax-frente__texto {
  font-size: var(--ax-t-base);
  line-height: 1.58;
  color: var(--ax-texto-suave);
  margin: 0;
  flex: 1;
}
.ax-frente--destaque .ax-frente__texto { color: var(--ax-navy-200); }

.ax-frente__link {
  display: inline-flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-sm); font-weight: 600;
  color: var(--ax-orange-700);
  text-decoration: none;
  margin-top: var(--ax-s-2);
}
.ax-frente--destaque .ax-frente__link { color: var(--ax-orange-500); }
.ax-frente__link svg { transition: transform var(--ax-transicao); }
.ax-frente__link:hover svg { transform: translateX(3px); }

/* --- Faixa proprietario --- */

.ax-proprietario { background: var(--ax-fundo); padding-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.ax-proprietario__caixa {
  display: flex; flex-wrap: wrap;
  gap: var(--ax-s-6);
  align-items: center; justify-content: space-between;
  padding: clamp(1.75rem, 4vw, 3rem);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
}
.ax-proprietario__texto { flex: 1 1 380px; min-width: 0; }
.ax-proprietario__texto p {
  color: var(--ax-texto-suave);
  font-size: var(--ax-t-base);
  line-height: 1.58;
  max-width: 54ch;
  margin: var(--ax-s-3) 0 0;
}
.ax-proprietario__texto .ax-titulo-secao { margin-top: var(--ax-s-2); }
.ax-proprietario__acoes { display: flex; flex-wrap: wrap; gap: var(--ax-s-3); }

/* =============================================================
   CABECALHO
   ============================================================= */

body.ax-travado { overflow: hidden; }

.ax-cabecalho {
  position: sticky; inset-block-start: 0; z-index: 100;
  background: var(--ax-superficie);
  border-bottom: 1px solid var(--ax-borda);
  transition: box-shadow var(--ax-transicao);
}
.ax-cabecalho--rolado { box-shadow: var(--ax-sombra-2); }

.ax-cabecalho__barra {
  display: flex; align-items: center;
  gap: var(--ax-s-6);
  min-height: 68px;
}

.ax-cabecalho__marca { display: flex; align-items: center; flex: none; text-decoration: none; }
.ax-cabecalho__logo { height: 30px; width: auto; display: block; }
.ax-cabecalho__nome {
  font-size: var(--ax-t-xl); font-weight: 700;
  color: var(--ax-navy-800); letter-spacing: -0.02em;
}

.ax-nav { margin-inline-end: auto; }
.ax-nav__lista {
  display: flex; align-items: center; gap: var(--ax-s-1);
  list-style: none; margin: 0; padding: 0;
}
.ax-nav__item { position: relative; }

.ax-nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0.625rem 0.875rem;
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-sm);
  font-weight: 500;
  color: var(--ax-texto);
  text-decoration: none;
  background: none; border: 0; cursor: pointer;
  border-radius: var(--ax-r-md);
  transition: background var(--ax-transicao), color var(--ax-transicao);
}
.ax-nav__link:hover { background: var(--ax-superficie-2); color: var(--ax-navy-800); }

.ax-nav__chevron {
  width: 7px; height: 7px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform var(--ax-transicao);
}
.ax-nav__botao[aria-expanded="true"] .ax-nav__chevron { transform: rotate(-135deg) translate(-2px, -2px); }

/* --- Mega-menu --- */

.ax-mega {
  position: absolute; inset-block-start: calc(100% + 8px); inset-inline-start: 0;
  z-index: 110;
  min-width: 620px;
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  box-shadow: var(--ax-sombra-3);
  padding: var(--ax-s-6);
}
.ax-mega__interno {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ax-s-6);
}
.ax-mega__titulo {
  font-size: var(--ax-t-xs);
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ax-n-400);
  margin: 0 0 var(--ax-s-3);
}
.ax-mega__coluna ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ax-mega__coluna a {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--ax-s-3);
  padding: 0.4375rem 0.5rem;
  margin-inline: -0.5rem;
  border-radius: var(--ax-r-sm);
  font-size: var(--ax-t-sm);
  color: var(--ax-texto);
  text-decoration: none;
  transition: background var(--ax-transicao), color var(--ax-transicao);
}
.ax-mega__coluna a:hover { background: var(--ax-navy-50); color: var(--ax-navy-800); }
.ax-mega__n { font-size: var(--ax-t-xs); color: var(--ax-n-400); font-variant-numeric: tabular-nums; }

.ax-cabecalho__acoes { display: flex; align-items: center; gap: var(--ax-s-3); flex: none; }

.ax-cabecalho__hamburguer {
  display: none;
  width: 42px; height: 42px;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
  background: none; border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md); cursor: pointer;
}
.ax-cabecalho__hamburguer span {
  display: block; width: 18px; height: 1.8px;
  background: var(--ax-texto-forte); border-radius: 2px;
  transition: transform var(--ax-transicao), opacity var(--ax-transicao);
}
.ax-cabecalho__hamburguer[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.8px) rotate(45deg); }
.ax-cabecalho__hamburguer[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ax-cabecalho__hamburguer[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.8px) rotate(-45deg); }

/* --- Mobile --- */

@media (max-width: 1023px) {
  .ax-cabecalho__hamburguer { display: flex; }
  .ax-cabecalho__zap span { display: none; }
  .ax-cabecalho__zap { padding-inline: 0.75rem; }

  .ax-nav {
    position: fixed;
    inset-block-start: 68px; inset-inline: 0; inset-block-end: 0;
    background: var(--ax-superficie);
    padding: var(--ax-s-5);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 220ms cubic-bezier(.4,0,.2,1);
    visibility: hidden;
  }
  .ax-nav--aberto { transform: translateX(0); visibility: visible; }

  .ax-nav__lista { flex-direction: column; align-items: stretch; gap: var(--ax-s-1); }
  .ax-nav__link {
    justify-content: space-between;
    padding: var(--ax-s-4);
    font-size: var(--ax-t-lg);
    width: 100%;
    border-bottom: 1px solid var(--ax-borda-suave);
    border-radius: 0;
  }

  .ax-mega {
    position: static;
    min-width: 0;
    border: 0; box-shadow: none; padding: var(--ax-s-2) var(--ax-s-4) var(--ax-s-5);
    background: var(--ax-fundo);
    border-radius: var(--ax-r-md);
    margin-block: var(--ax-s-2);
  }
  .ax-mega__interno { grid-template-columns: 1fr; gap: var(--ax-s-5); }
}

@media (prefers-reduced-motion: reduce) {
  .ax-nav { transition: none; }
}

/* =============================================================
   RODAPE
   ============================================================= */

.ax-rodape {
  background: var(--ax-navy-900);
  color: var(--ax-navy-200);
  padding-block: clamp(2.5rem, 5vw, 4rem) var(--ax-s-6);
  font-size: var(--ax-t-sm);
}

.ax-rodape__topo {
  display: grid;
  gap: var(--ax-s-8);
  grid-template-columns: 1fr;
  padding-bottom: var(--ax-s-8);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
@media (min-width: 700px)  { .ax-rodape__topo { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .ax-rodape__topo { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.1fr; } }

.ax-rodape__logo { height: 34px; width: auto; display: block; }
.ax-rodape__nome { font-size: var(--ax-t-xl); font-weight: 700; color: var(--ax-white); }
.ax-rodape__sobre {
  margin: var(--ax-s-4) 0 0;
  line-height: 1.6;
  color: rgba(255,255,255,.6);
  max-width: 34ch;
}
.ax-rodape__social { display: flex; flex-wrap: wrap; gap: var(--ax-s-4); margin-top: var(--ax-s-5); }
.ax-rodape__social a {
  color: rgba(255,255,255,.75); text-decoration: none;
  font-weight: 500;
  border-bottom: 1px solid transparent;
}
.ax-rodape__social a:hover { color: var(--ax-orange-500); border-bottom-color: currentColor; }

.ax-rodape__titulo {
  font-size: var(--ax-t-xs);
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ax-white);
  margin: 0 0 var(--ax-s-4);
}
.ax-rodape__coluna ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--ax-s-2); }
.ax-rodape__coluna a { color: rgba(255,255,255,.68); text-decoration: none; line-height: 1.45; }
.ax-rodape__coluna a:hover { color: var(--ax-white); text-decoration: underline; }

.ax-rodape__zap { width: fit-content; margin-bottom: var(--ax-s-4); }
.ax-rodape__linha { margin: 0 0 var(--ax-s-3); }
.ax-rodape__linha a { color: var(--ax-white); font-size: var(--ax-t-lg); font-weight: 600; text-decoration: none; }
.ax-rodape__endereco { font-style: normal; color: rgba(255,255,255,.6); line-height: 1.65; }

.ax-rodape__app { margin-top: var(--ax-s-6); }
.ax-rodape__app-titulo {
  font-size: var(--ax-t-xs);
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ax-white);
  margin: 0 0 var(--ax-s-3);
}
.ax-rodape__lojas { display: flex; flex-wrap: wrap; gap: var(--ax-s-2); }
.ax-rodape__lojas a {
  display: inline-block; line-height: 0;
  border-radius: 6px;
  transition: transform var(--ax-transicao), opacity var(--ax-transicao);
}
.ax-rodape__lojas a:hover { transform: translateY(-1px); opacity: .92; }
.ax-rodape__lojas img { height: 40px; width: auto; display: block; }

.ax-rodape__email { margin: 0 0 var(--ax-s-3); }
.ax-rodape__email a { color: rgba(255,255,255,.75); text-decoration: none; }
.ax-rodape__email a:hover { color: var(--ax-white); text-decoration: underline; }

.ax-rodape__base {
  padding-top: var(--ax-s-6);
  display: flex; flex-direction: column; gap: var(--ax-s-2);
  color: rgba(255,255,255,.5);
  font-size: var(--ax-t-xs);
}
.ax-rodape__base p { margin: 0; }
.ax-rodape__base-linha {
  display: flex; flex-wrap: wrap; justify-content: space-between;
  gap: var(--ax-s-2) var(--ax-s-6);
}
.ax-rodape__credito a { color: rgba(255,255,255,.7); text-decoration: none; }
.ax-rodape__credito a:hover { color: var(--ax-white); text-decoration: underline; }
.ax-rodape__nota { max-width: 76ch; line-height: 1.6; }

/* =============================================================
   PAGINA DE MAPA
   ============================================================= */

.ax-mapapg { background: var(--ax-fundo); }

.ax-mapapg__topo {
  background: var(--ax-superficie);
  border-bottom: 1px solid var(--ax-borda);
  padding-block: var(--ax-s-5);
}
.ax-mapapg__h1 {
  font-size: var(--ax-t-2xl); font-weight: 600;
  letter-spacing: -0.02em; color: var(--ax-texto-forte); margin: 0;
}
.ax-mapapg__sub { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: var(--ax-s-2) 0 0; }
.ax-mapapg__alternar { margin-top: var(--ax-s-4); }
@media (min-width: 1024px) { .ax-mapapg__alternar { display: none; } }

.ax-mapapg__painel {
  display: grid;
  grid-template-columns: 1fr;
  height: calc(100vh - 200px);
  min-height: 480px;
}
@media (min-width: 1024px) {
  .ax-mapapg__painel { grid-template-columns: minmax(0, 440px) minmax(0, 1fr); height: calc(100vh - 150px); }
}

.ax-mapapg__lista { overflow-y: auto; padding: var(--ax-s-4); background: var(--ax-fundo); }
.ax-mapapg__cards { display: grid; gap: var(--ax-s-4); grid-template-columns: 1fr; }
@media (min-width: 640px) and (max-width: 1023px) {
  .ax-mapapg__cards { grid-template-columns: 1fr 1fr; }
}

.ax-mapapg__mapa { height: 100%; min-height: 320px; background: var(--ax-superficie-2); z-index: 0; }

/* Mobile: um de cada vez. */
@media (max-width: 1023px) {
  .ax-mapapg__mapa { display: none; }
  .ax-mapapg__painel--mapa .ax-mapapg__lista { display: none; }
  .ax-mapapg__painel--mapa .ax-mapapg__mapa { display: block; }
}

/* Pino com o preço: quem procura imóvel compara valor, não ícone. */
.ax-pino { background: none !important; border: 0 !important; }
.ax-pino span {
  display: inline-block;
  padding: 5px 9px;
  background: var(--ax-navy-800);
  color: var(--ax-white);
  border: 2px solid var(--ax-white);
  border-radius: var(--ax-r-full);
  font-family: var(--ax-fonte);
  font-size: 12px; font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(11,18,48,.34);
  transform: translate(-50%, -50%);
  transition: background 150ms ease;
}
.ax-pino:hover span { background: var(--ax-orange-500); color: var(--ax-navy-900); }

.ax-pop { display: block; text-decoration: none; color: inherit; }
.ax-pop img { width: 100%; height: 118px; object-fit: cover; border-radius: var(--ax-r-sm); margin-bottom: 8px; display: block; }
.ax-pop__preco { display: block; font-family: var(--ax-fonte); font-size: 16px; font-weight: 700; color: var(--ax-navy-800); }
.ax-pop__nome {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font-family: var(--ax-fonte); font-size: 13px; color: var(--ax-texto); margin-top: 3px; line-height: 1.35;
}
.ax-pop__meta { display: block; font-family: var(--ax-fonte); font-size: 12px; color: var(--ax-texto-suave); margin-top: 5px; }
.leaflet-popup-content { margin: 10px 12px; }
.leaflet-popup-content-wrapper { border-radius: var(--ax-r-md); }

/* =============================================================
   LANCAMENTOS
   ============================================================= */

.ax-lancamentos { background: var(--ax-fundo); }
.ax-lancamentos__topo {
  background: var(--ax-navy-900);
  color: var(--ax-white);
  padding-block: clamp(2.25rem, 5vw, 3.5rem);
  background-image: radial-gradient(900px 520px at 84% -20%, rgba(250,121,33,.20), transparent 60%);
  margin-bottom: var(--ax-s-8);
}
.ax-lancamentos__topo .ax-etiqueta { color: var(--ax-orange-500); }
.ax-lancamentos__h1 {
  font-size: var(--ax-t-3xl); font-weight: 600;
  letter-spacing: -0.028em; color: var(--ax-white);
  margin: var(--ax-s-3) 0 0; text-wrap: balance;
}
.ax-lancamentos__sub {
  color: var(--ax-navy-200); font-size: var(--ax-t-lg);
  max-width: 56ch; margin: var(--ax-s-3) 0 0; line-height: 1.55;
}

.ax-lanc__grade {
  display: grid;
  gap: var(--ax-s-5);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 336px), 1fr));
}

.ax-lanc {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  overflow: hidden;
  transition: box-shadow var(--ax-transicao), transform var(--ax-transicao), border-color var(--ax-transicao);
}
.ax-lanc:hover { box-shadow: var(--ax-sombra-3); transform: translateY(-2px); border-color: var(--ax-navy-200); }

.ax-lanc__foto { position: relative; aspect-ratio: 3 / 2; background: var(--ax-superficie-2); overflow: hidden; }
.ax-lanc__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms cubic-bezier(.4,0,.2,1); }
.ax-lanc:hover .ax-lanc__foto img { transform: scale(1.04); }
.ax-lanc__sem-foto { width: 100%; height: 100%; display: grid; place-items: center; color: var(--ax-n-300); }

.ax-lanc__status {
  position: absolute; inset-block-start: var(--ax-s-4); inset-inline-start: var(--ax-s-4);
  padding: 0.375rem 0.75rem;
  font-size: var(--ax-t-xs); font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase;
  border-radius: var(--ax-r-sm);
  background: var(--ax-white); color: var(--ax-navy-800);
  box-shadow: var(--ax-sombra-1);
}
.ax-lanc__status--lancamento { background: var(--ax-orange-500); color: var(--ax-navy-900); }
.ax-lanc__status--obras      { background: var(--ax-navy-800); color: var(--ax-white); }
.ax-lanc__status--pronto     { background: var(--ax-ok); color: var(--ax-white); }

.ax-lanc__corpo { display: flex; flex-direction: column; gap: var(--ax-s-2); padding: var(--ax-s-5); flex: 1; }
.ax-lanc__nome {
  font-size: var(--ax-t-xl); font-weight: 600;
  letter-spacing: -0.018em; color: var(--ax-texto-forte); margin: 0;
}
.ax-lanc__nome a { color: inherit; text-decoration: none; }
.ax-lanc__nome a::after { content: ""; position: absolute; inset: 0; }
.ax-lanc__local { display: flex; align-items: center; gap: var(--ax-s-1); font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: 0; }
.ax-lanc__specs {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-2);
  list-style: none; margin: var(--ax-s-2) 0 0; padding: 0;
}
.ax-lanc__specs li {
  font-size: var(--ax-t-sm); color: var(--ax-n-600);
  background: var(--ax-superficie-2);
  padding: 0.3125rem 0.625rem; border-radius: var(--ax-r-sm);
}
.ax-lanc__cta {
  display: inline-flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-sm); font-weight: 600; color: var(--ax-orange-700);
  margin-top: auto; padding-top: var(--ax-s-4);
}
.ax-lanc__cta svg { transition: transform var(--ax-transicao); }
.ax-lanc:hover .ax-lanc__cta svg { transform: translateX(3px); }

/* --- Ficha do lancamento --- */

.ax-emp { background: var(--ax-fundo); padding-bottom: var(--ax-s-16); }
@media (max-width: 1023px) { .ax-emp { padding-bottom: 88px; } }

.ax-emp__hero { position: relative; background: var(--ax-navy-900); color: var(--ax-white); }
.ax-emp__hero-foto { position: absolute; inset: 0; overflow: hidden; }
.ax-emp__hero-foto img { width: 100%; height: 100%; object-fit: cover; opacity: .42; }
.ax-emp__hero-texto {
  position: relative;
  padding-block: clamp(2.5rem, 6vw, 5rem);
}
.ax-emp__hero--foto .ax-emp__hero-texto {
  background: linear-gradient(to top, rgba(11,18,48,.92) 12%, rgba(11,18,48,.32));
}
.ax-emp__h1 {
  font-size: var(--ax-t-3xl); font-weight: 600;
  letter-spacing: -0.03em; color: var(--ax-white);
  margin: var(--ax-s-4) 0 0; text-wrap: balance;
}
.ax-emp__local {
  display: flex; align-items: center; gap: var(--ax-s-2);
  color: var(--ax-navy-200); margin: var(--ax-s-3) 0 0; font-size: var(--ax-t-base);
}

.ax-emp .ax-emp__hero-texto { padding-block: clamp(2rem, 4vw, 3rem); }
.ax-emp .ax-galeria { padding-top: var(--ax-s-6); }
.ax-emp__grade { display: grid; gap: var(--ax-s-8); grid-template-columns: 1fr; align-items: start; padding-top: var(--ax-s-4); }
.ax-emp .ax-galeria + .ax-container .ax-emp__grade { padding-top: 0; }
@media (min-width: 1024px) { .ax-emp__grade { grid-template-columns: minmax(0,1fr) 348px; gap: var(--ax-s-10); } }

.ax-emp__fonte {
  margin-top: var(--ax-s-10);
  padding: var(--ax-s-4);
  background: var(--ax-superficie-2);
  border-radius: var(--ax-r-md);
  font-size: var(--ax-t-sm);
  color: var(--ax-texto-suave);
  line-height: 1.6;
}
.ax-emp__fonte a { color: var(--ax-orange-700); }

/* =============================================================
   BLOG
   ============================================================= */

.ax-blog { background: var(--ax-fundo); }
.ax-blog__topo {
  background: var(--ax-superficie);
  border-bottom: 1px solid var(--ax-borda);
  padding-block: clamp(2rem, 5vw, 3.25rem);
  margin-bottom: var(--ax-s-8);
}
.ax-blog__h1 {
  font-size: var(--ax-t-3xl); font-weight: 600;
  letter-spacing: -0.028em; color: var(--ax-texto-forte);
  margin: var(--ax-s-3) 0 0; text-wrap: balance; max-width: 22ch;
}
.ax-blog__sub {
  font-size: var(--ax-t-lg); color: var(--ax-texto-suave);
  max-width: 56ch; margin: var(--ax-s-3) 0 0; line-height: 1.55;
}
.ax-blog__cats { margin-bottom: var(--ax-s-8); }

.ax-artigos {
  display: grid; gap: var(--ax-s-5);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}
.ax-artigos--3 { margin-top: var(--ax-s-6); }

.ax-artigo {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  overflow: hidden;
  transition: box-shadow var(--ax-transicao), transform var(--ax-transicao), border-color var(--ax-transicao);
}
.ax-artigo:hover { box-shadow: var(--ax-sombra-3); transform: translateY(-2px); border-color: var(--ax-navy-200); }
.ax-artigo__foto { display: block; aspect-ratio: 16/9; background: var(--ax-superficie-2); overflow: hidden; }
.ax-artigo__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ax-artigo__corpo { display: flex; flex-direction: column; gap: var(--ax-s-2); padding: var(--ax-s-5); flex: 1; }

.ax-artigo__cat {
  display: inline-flex; align-self: flex-start;
  font-size: var(--ax-t-xs); font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ax-orange-700); text-decoration: none;
}
.ax-artigo__titulo {
  font-size: var(--ax-t-lg); font-weight: 600;
  letter-spacing: -0.015em; line-height: 1.3;
  color: var(--ax-texto-forte); margin: 0;
}
.ax-artigo__titulo a { color: inherit; text-decoration: none; }
.ax-artigo__titulo a::after { content: ""; position: absolute; inset: 0; }
.ax-artigo__resumo {
  font-size: var(--ax-t-sm); line-height: 1.55;
  color: var(--ax-texto-suave); margin: 0; flex: 1;
}
.ax-artigo__meta { font-size: var(--ax-t-xs); color: var(--ax-n-400); margin-top: var(--ax-s-2); }

/* --- Artigo --- */

.ax-post { background: var(--ax-fundo); padding-bottom: var(--ax-s-12); }
.ax-post__interno { padding-block: var(--ax-s-8); }
.ax-post__cabecalho { max-width: 68ch; }
.ax-post__h1 {
  font-size: var(--ax-t-3xl); font-weight: 600;
  letter-spacing: -0.03em; line-height: 1.14;
  color: var(--ax-texto-forte); margin: var(--ax-s-3) 0 0; text-wrap: balance;
}
.ax-post__resumo {
  font-size: var(--ax-t-lg); line-height: 1.55;
  color: var(--ax-texto-suave); margin: var(--ax-s-4) 0 0;
}
.ax-post__meta {
  font-size: var(--ax-t-sm); color: var(--ax-n-400);
  margin: var(--ax-s-4) 0 0;
  padding-top: var(--ax-s-4);
  border-top: 1px solid var(--ax-borda);
}
.ax-post__capa { margin: var(--ax-s-8) 0 0; }
.ax-post__capa img { width: 100%; height: auto; border-radius: var(--ax-r-lg); display: block; }

.ax-post__conteudo { margin-top: var(--ax-s-8); max-width: 68ch; font-size: var(--ax-t-lg); }
.ax-post__conteudo h2 {
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-xl); font-weight: 600;
  letter-spacing: -0.015em; color: var(--ax-texto-forte);
  margin: var(--ax-s-10) 0 var(--ax-s-3);
}
.ax-post__conteudo h3 {
  font-family: var(--ax-fonte);
  font-size: var(--ax-t-lg); font-weight: 600;
  color: var(--ax-texto-forte); margin: var(--ax-s-8) 0 var(--ax-s-2);
}
.ax-post__conteudo ul, .ax-post__conteudo ol { margin-block: var(--ax-s-4); }
.ax-post__conteudo li { margin-bottom: var(--ax-s-3); }

.ax-post__imoveis { background: var(--ax-superficie); border-top: 1px solid var(--ax-borda); }
.ax-post__mais { background: var(--ax-fundo); }

/* Item compacto (coluna do mapa) */
.ax-linha-im {
  position: relative;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: var(--ax-s-3);
  padding: var(--ax-s-3);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  transition: border-color var(--ax-transicao), box-shadow var(--ax-transicao);
}
.ax-linha-im:hover { border-color: var(--ax-navy-600); box-shadow: var(--ax-sombra-2); }

.ax-linha-im__foto {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: var(--ax-r-sm);
  overflow: hidden;
  background: var(--ax-superficie-2);
  display: grid; place-items: center;
}
.ax-linha-im__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ax-linha-im__sem { color: var(--ax-n-300); }
.ax-linha-im__selo {
  position: absolute; inset-block-end: 4px; inset-inline-start: 4px;
  font-size: 10px; font-weight: 700;
  padding: 2px 5px; border-radius: 3px;
  background: rgba(19,35,87,.9); color: #fff;
}

.ax-linha-im__corpo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ax-linha-im__preco {
  font-size: var(--ax-t-lg); font-weight: 700;
  color: var(--ax-texto-forte); margin: 0;
  font-variant-numeric: tabular-nums; letter-spacing: -0.02em;
}
.ax-linha-im__titulo {
  font-size: var(--ax-t-sm); font-weight: 500; margin: 0;
  color: var(--ax-texto); line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ax-linha-im__titulo a { color: inherit; text-decoration: none; }
.ax-linha-im__titulo a::after { content: ""; position: absolute; inset: 0; }
.ax-linha-im__local { font-size: var(--ax-t-xs); color: var(--ax-texto-suave); margin: 0; }
.ax-linha-im__ficha {
  font-size: var(--ax-t-xs); color: var(--ax-n-500); margin: auto 0 0;
  font-variant-numeric: tabular-nums;
}

/* =============================================================
   PAGINAS INSTITUCIONAIS (contato, condominios, Airbnb)
   ============================================================= */

.ax-inst { background: var(--ax-fundo); }

/* Topo simples (contato) */
.ax-inst__topo {
  background: var(--ax-navy-900);
  color: var(--ax-white);
  padding-block: clamp(2.25rem, 5vw, 3.5rem);
  background-image: radial-gradient(900px 520px at 84% -20%, rgba(250,121,33,.20), transparent 60%);
}
.ax-inst__topo .ax-etiqueta, .ax-inst__hero .ax-etiqueta { color: var(--ax-orange-500); }
.ax-inst__h1 {
  font-size: var(--ax-t-4xl); font-weight: 600;
  letter-spacing: -0.03em; line-height: 1.08;
  color: var(--ax-white);
  margin: var(--ax-s-3) 0 0; text-wrap: balance; max-width: 18ch;
}
.ax-inst__sub {
  color: var(--ax-navy-200); font-size: var(--ax-t-lg);
  max-width: 54ch; margin: var(--ax-s-4) 0 0; line-height: 1.55; text-wrap: pretty;
}

/* Hero com foto (servicos) */
.ax-inst__hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 520px at 84% -20%, rgba(250,121,33,.22), transparent 60%),
    var(--ax-navy-900);
  color: var(--ax-white);
}
.ax-inst__hero-foto { position: absolute; inset: 0; }
.ax-inst__hero-foto img { width: 100%; height: 100%; object-fit: cover; opacity: .28; }
.ax-inst__hero--foto::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(11,18,48,.92) 0%, rgba(11,18,48,.7) 55%, rgba(11,18,48,.35) 100%);
}
.ax-inst__hero-texto {
  position: relative; z-index: 1;
  padding-block: clamp(3rem, 8vw, 6rem);
}
.ax-inst__acoes { display: flex; flex-wrap: wrap; gap: var(--ax-s-3); margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.ax-inst__acoes .ax-btn--contorno { border-color: rgba(255,255,255,.3); color: var(--ax-white); }
.ax-inst__acoes .ax-btn--contorno:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); }

/* --- Sobre --- */
.ax-sobre { background: var(--ax-superficie); }
.ax-sobre__grade {
  display: grid; gap: var(--ax-s-8);
  grid-template-columns: 1fr; align-items: center;
}
@media (min-width: 900px) { .ax-sobre__grade { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--ax-s-12); } }
.ax-sobre__p {
  font-size: var(--ax-t-lg); line-height: 1.6;
  color: var(--ax-n-600); max-width: 58ch;
  margin: var(--ax-s-4) 0 0; text-wrap: pretty;
}
.ax-sobre__fatos {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-2) var(--ax-s-5);
  list-style: none; margin: var(--ax-s-6) 0 0; padding: var(--ax-s-4) 0 0;
  border-top: 1px solid var(--ax-borda-suave);
  font-size: var(--ax-t-sm); color: var(--ax-texto-suave);
}
.ax-sobre__fatos li { display: inline-flex; align-items: center; gap: var(--ax-s-2); }
.ax-sobre__fatos svg { color: var(--ax-orange-600); flex: none; }
.ax-sobre__foto { margin: 0; border-radius: var(--ax-r-lg); overflow: hidden; aspect-ratio: 4 / 3; background: var(--ax-superficie-2); }
.ax-sobre__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- Motivos: tres colunas com fio, sem caixinha --- */
.ax-motivos { background: var(--ax-fundo); }
.ax-motivos__grade {
  display: grid; gap: var(--ax-s-6);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 232px), 1fr));
  margin-top: var(--ax-s-8);
}
.ax-motivo {
  padding-top: var(--ax-s-5);
  border-top: 2px solid var(--ax-navy-800);
}
.ax-motivo__icone {
  display: inline-grid; place-items: center;
  width: 44px; height: 44px; border-radius: var(--ax-r-full);
  background: var(--ax-orange-100); color: var(--ax-orange-700);
}
.ax-motivo__titulo {
  font-size: var(--ax-t-xl); font-weight: 600; letter-spacing: -0.015em;
  color: var(--ax-texto-forte); margin: var(--ax-s-4) 0 var(--ax-s-2);
}
.ax-motivo p { margin: 0; color: var(--ax-n-600); line-height: 1.6; font-size: var(--ax-t-base); text-wrap: pretty; }

/* --- Servicos: faixa navy --- */
.ax-servicos { background: var(--ax-fundo); }
.ax-servicos__caixa {
  padding: clamp(1.75rem, 4vw, 3.25rem);
  border-radius: var(--ax-r-lg);
  background:
    radial-gradient(760px 420px at 90% -20%, rgba(250,121,33,.22), transparent 62%),
    var(--ax-navy-800);
  color: var(--ax-white);
}
.ax-servicos__titulo { color: var(--ax-white); }
.ax-servicos__grade {
  display: grid; gap: var(--ax-s-6);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 216px), 1fr));
  margin-top: var(--ax-s-8);
}
.ax-servico__icone {
  display: inline-grid; place-items: center;
  width: 44px; height: 44px; border-radius: var(--ax-r-md);
  background: rgba(255,255,255,.1); color: var(--ax-orange-500);
}
.ax-servico__titulo {
  font-size: var(--ax-t-lg); font-weight: 600; letter-spacing: -0.01em;
  color: var(--ax-white); margin: var(--ax-s-4) 0 var(--ax-s-2);
}
.ax-servico p { margin: 0; color: var(--ax-navy-200); line-height: 1.6; font-size: var(--ax-t-base); text-wrap: pretty; }
.ax-servicos__acao {
  display: flex; flex-wrap: wrap; gap: var(--ax-s-3);
  margin-top: var(--ax-s-8); padding-top: var(--ax-s-6);
  border-top: 1px solid rgba(255,255,255,.12);
}
.ax-servicos__acao .ax-btn--contorno { border-color: rgba(255,255,255,.28); color: var(--ax-white); }
.ax-servicos__acao .ax-btn--contorno:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); }

/* --- Outros servicos --- */
.ax-outros { background: var(--ax-superficie); border-top: 1px solid var(--ax-borda); }
.ax-outros__grade {
  display: grid; gap: var(--ax-s-5);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  margin-top: var(--ax-s-8);
}
.ax-outro {
  display: flex; flex-direction: column;
  background: var(--ax-fundo);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-lg);
  overflow: hidden;
  transition: border-color var(--ax-transicao), box-shadow var(--ax-transicao);
}
.ax-outro:hover { border-color: var(--ax-navy-200); box-shadow: var(--ax-sombra-2); }
.ax-outro__foto { display: block; aspect-ratio: 16 / 9; background: var(--ax-superficie-2); overflow: hidden; }
.ax-outro__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms cubic-bezier(.4,0,.2,1); }
.ax-outro:hover .ax-outro__foto img { transform: scale(1.03); }
.ax-outro__corpo { display: flex; flex-direction: column; gap: var(--ax-s-3); padding: var(--ax-s-6); flex: 1; }
.ax-outro__area { font-size: var(--ax-t-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ax-orange-700); margin: 0; }
.ax-outro__titulo {
  font-size: var(--ax-t-xl); font-weight: 600; letter-spacing: -0.015em; line-height: 1.25;
  color: var(--ax-texto-forte); margin: 0; text-wrap: balance;
}
.ax-outro__lista { grid-template-columns: 1fr; margin-block: var(--ax-s-2) var(--ax-s-3); }
.ax-outro .ax-btn { align-self: flex-start; margin-top: auto; }

/* --- Contato: canais + formulario --- */
.ax-contato-pg { background: var(--ax-fundo); }
.ax-contato-pg--inst { background: var(--ax-fundo); border-top: 1px solid var(--ax-borda); scroll-margin-top: 80px; }
.ax-contato-pg__grade {
  display: grid; gap: var(--ax-s-8);
  grid-template-columns: 1fr; align-items: start;
}
@media (min-width: 960px) { .ax-contato-pg__grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--ax-s-12); } }
.ax-contato-pg__canais .ax-sub-secao { margin-bottom: var(--ax-s-6); }

.ax-canais { display: flex; flex-direction: column; gap: var(--ax-s-5); }
.ax-canais__zap { align-self: flex-start; }
.ax-canais__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--ax-s-4); }
.ax-canais__lista li { display: flex; gap: var(--ax-s-3); align-items: flex-start; }
.ax-canais__icone {
  flex: none; display: grid; place-items: center;
  width: 40px; height: 40px; border-radius: var(--ax-r-md);
  background: var(--ax-superficie); border: 1px solid var(--ax-borda);
  color: var(--ax-orange-600);
}
.ax-canais__texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ax-canais__rotulo { font-size: var(--ax-t-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ax-texto-suave); font-weight: 600; }
.ax-canais__texto a { color: var(--ax-texto-forte); font-weight: 600; text-decoration: none; font-size: var(--ax-t-lg); overflow-wrap: anywhere; }
.ax-canais__texto a:hover { text-decoration: underline; }
.ax-canais__texto address { font-style: normal; color: var(--ax-texto); line-height: 1.5; }
.ax-canais__texto .ax-canais__mapa {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--ax-t-sm); font-weight: 600; color: var(--ax-orange-700); margin-top: 4px;
}
.ax-canais__social { display: flex; flex-wrap: wrap; gap: var(--ax-s-4); padding-top: var(--ax-s-4); border-top: 1px solid var(--ax-borda-suave); }
.ax-canais__social a { font-weight: 500; color: var(--ax-texto); text-decoration: none; border-bottom: 1px solid var(--ax-borda); }
.ax-canais__social a:hover { color: var(--ax-navy-800); border-bottom-color: var(--ax-navy-800); }

.ax-contato--form { position: static; }
@media (min-width: 960px) { .ax-contato--form { position: sticky; top: 88px; } }

/* --- Formulario do Elementor Pro com a cara do tema --- */
.ax-form__titulo { font-size: var(--ax-t-xl); font-weight: 600; letter-spacing: -0.015em; color: var(--ax-texto-forte); margin: 0 0 var(--ax-s-2); }
.ax-form__texto { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: 0 0 var(--ax-s-5); line-height: 1.55; }
.ax-form__nota { font-size: var(--ax-t-xs); color: var(--ax-texto-suave); margin: var(--ax-s-4) 0 0; line-height: 1.5; }
.ax-form__nota a { color: inherit; }

.ax-form .elementor-form-fields-wrapper { display: grid; gap: var(--ax-s-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ax-form .elementor-form .elementor-field-group {
  width: auto; max-width: none; flex: none;
  padding: 0; margin: 0;
  grid-column: 1 / -1;
  display: flex; flex-direction: column; gap: var(--ax-s-2);
}
.ax-form .elementor-form .elementor-field-group.elementor-col-50 { grid-column: span 1; }
@media (max-width: 560px) { .ax-form .elementor-form .elementor-field-group.elementor-col-50 { grid-column: 1 / -1; } }
.ax-form .elementor-form .elementor-field-type-hidden { display: none; }
.ax-form .elementor-form .elementor-field-label {
  font-size: var(--ax-t-sm); font-weight: 500; color: var(--ax-n-600); padding: 0; margin: 0;
}
.ax-form .elementor-form .elementor-field-textual,
.ax-form .elementor-form .elementor-field-textual:focus,
.ax-form .elementor-form .elementor-select-wrapper select {
  width: 100%;
  padding: 0.75rem 0.875rem;
  min-height: 46px;
  font-family: var(--ax-fonte); font-size: var(--ax-t-base); line-height: 1.4;
  color: var(--ax-texto);
  background: var(--ax-superficie);
  border: 1px solid var(--ax-borda);
  border-radius: var(--ax-r-md);
  box-shadow: none;
  transition: border-color var(--ax-transicao), box-shadow var(--ax-transicao);
}
.ax-form .elementor-form .elementor-field-textual:hover { border-color: var(--ax-n-300); }
.ax-form .elementor-form .elementor-field-textual:focus,
.ax-form .elementor-form .elementor-select-wrapper select:focus {
  outline: none;
  border-color: var(--ax-navy-600);
  box-shadow: 0 0 0 3px var(--ax-navy-100);
}
.ax-form .elementor-form .elementor-field-textual::placeholder { color: var(--ax-n-400); opacity: 1; }
.ax-form .elementor-form textarea.elementor-field-textual { min-height: 128px; resize: vertical; }
.ax-form .elementor-form .elementor-select-wrapper { padding: 0; border: 0; background: none; }
.ax-form .elementor-form .elementor-select-wrapper .select-caret-down-wrapper { inset-inline-end: 14px; }
.ax-form .elementor-form .elementor-field-group.elementor-error .elementor-field-textual { border-color: var(--ax-err); }
.ax-form .elementor-form .elementor-field-required .elementor-field-label::after { content: " *"; color: var(--ax-orange-700); }
.ax-form .elementor-form .elementor-field-type-submit { margin-top: var(--ax-s-2); }
.ax-form .elementor-form .elementor-button,
.ax-form .elementor-form .elementor-button:focus {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-height: 48px;
  padding: 0.8125rem 1.375rem;
  font-family: var(--ax-fonte); font-size: var(--ax-t-base); font-weight: 600; line-height: 1.2;
  background: var(--ax-orange-500); color: var(--ax-navy-900);
  border: 0; border-radius: var(--ax-r-md);
  box-shadow: none; transform: none;
  transition: background var(--ax-transicao), transform var(--ax-transicao);
}
.ax-form .elementor-form .elementor-button:hover { background: var(--ax-orange-400); color: var(--ax-navy-900); transform: translateY(-1px); }
.ax-form .elementor-form .elementor-button-content-wrapper { display: contents; }
.ax-form .elementor-form .elementor-button .elementor-button-text { flex: none; }
.ax-form .elementor-form .elementor-button-icon:empty { display: none; }
.ax-form .elementor-form .elementor-field-type-recaptcha_v3 { min-height: 0; }
.ax-form .elementor-form .elementor-field-type-recaptcha_v3 .elementor-field { min-height: 0; }
.ax-form .elementor-form .elementor-field-type-recaptcha_v3:empty { display: none; }
.ax-form .grecaptcha-badge { box-shadow: none !important; }
.ax-form .elementor-message {
  margin: var(--ax-s-3) 0 0; padding: var(--ax-s-3) var(--ax-s-4);
  border-radius: var(--ax-r-md); font-size: var(--ax-t-sm); line-height: 1.5;
}
.ax-form .elementor-message::before { display: none; }
.ax-form .elementor-message.elementor-message-success { background: var(--ax-ok-bg); color: var(--ax-ok); }
.ax-form .elementor-message.elementor-message-danger, .ax-form .elementor-message.elementor-message-error { background: var(--ax-err-bg); color: var(--ax-err); }
.ax-form .elementor-form .elementor-field-group .elementor-help-inline { font-size: var(--ax-t-xs); color: var(--ax-err); }

/* --- Escritorio / mapa --- */
.ax-escritorio { background: var(--ax-superficie); border-top: 1px solid var(--ax-borda); }
.ax-escritorio__mapa {
  aspect-ratio: 16 / 7; min-height: 280px;
  border-radius: var(--ax-r-lg); overflow: hidden;
  border: 1px solid var(--ax-borda); background: var(--ax-superficie-2);
}
@media (max-width: 700px) { .ax-escritorio__mapa { aspect-ratio: 4 / 3; } }
.ax-escritorio__mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
.ax-escritorio__endereco {
  display: flex; align-items: center; gap: var(--ax-s-2);
  font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: var(--ax-s-4) 0 0;
}
.ax-escritorio__endereco svg { color: var(--ax-orange-600); flex: none; }

/* --- Pagina generica --- */
.ax-pagina { background: var(--ax-fundo); }
.ax-pagina__interno { padding-block: var(--ax-s-8) var(--ax-s-16); max-width: 800px; }
.ax-pagina--elementor { padding-bottom: var(--ax-s-8); }

/* =============================================================
   TERCEIROS QUE APARECEM EM TODA PAGINA
   ============================================================= */

/* Aviso de cookies (plugin Cookie Notice): cores e forma do sistema */
#cookie-notice.cookie-notice-container, #cookie-notice {
  font-family: var(--ax-fonte) !important;
}
#cookie-notice .cookie-notice-container {
  padding: var(--ax-s-4) var(--ax-s-5) !important;
  font-size: var(--ax-t-sm) !important;
  line-height: 1.5;
}
#cookie-notice .cn-button {
  font-family: var(--ax-fonte) !important;
  font-weight: 600 !important;
  border-radius: var(--ax-r-md) !important;
  padding: 0.5rem 0.875rem !important;
  margin-inline-start: var(--ax-s-2) !important;
}
#cookie-notice .cn-button.cn-set-cookie { color: var(--ax-navy-900) !important; }
#cookie-notice .cn-button.cn-more-info {
  background: transparent !important;
  color: var(--ax-white) !important;
  border: 1px solid rgba(255,255,255,.35) !important;
}

/* Rodape: credito abaixo do copyright, sem disputar com o botao flutuante */
.ax-rodape__base-linha { flex-direction: column; gap: var(--ax-s-1); }

/* Menu mobile: contato no fim da lista */
.ax-nav__rodape { display: none; }
@media (max-width: 1023px) {
  .ax-nav__rodape {
    display: flex; flex-direction: column; gap: var(--ax-s-3);
    margin-top: var(--ax-s-6); padding-top: var(--ax-s-6);
    border-top: 1px solid var(--ax-borda);
  }
  .ax-nav__endereco { font-size: var(--ax-t-sm); color: var(--ax-texto-suave); margin: var(--ax-s-2) 0 0; line-height: 1.5; }
}

/* Botao flutuante de WhatsApp (AiSensy, via WPCode): nas fichas o
   mobile ja tem a barra fixa com o mesmo CTA — o botao sobe. */
@media (max-width: 1023px) {
  .single-imoveis #df-btn-cont, .single-imoveis .df-btn,
  .single-empreendimentos #df-btn-cont, .single-empreendimentos .df-btn { bottom: 92px !important; }
}

/* =============================================================
   404
   ============================================================= */
.ax-404 {
  background:
    radial-gradient(900px 520px at 84% -20%, rgba(250,121,33,.20), transparent 60%),
    var(--ax-navy-900);
  color: var(--ax-white);
  padding-block: clamp(3rem, 8vw, 6rem);
  min-height: 60vh;
}
.ax-404 .ax-etiqueta { color: var(--ax-orange-500); }
.ax-404__h1 {
  font-size: var(--ax-t-3xl); font-weight: 600; letter-spacing: -0.028em; line-height: 1.12;
  color: var(--ax-white); margin: var(--ax-s-3) 0 0; max-width: 24ch; text-wrap: balance;
}
.ax-404__texto { color: var(--ax-navy-200); font-size: var(--ax-t-lg); max-width: 56ch; margin: var(--ax-s-4) 0 0; line-height: 1.55; }
.ax-404__busca { margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.ax-404__atalhos { margin-top: var(--ax-s-6); }
.ax-404 .ax-chip { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: var(--ax-white); }
.ax-404 .ax-chip:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.4); color: var(--ax-white); }
