/* ================================================================
   newStyle.css — Consult Imóveis Rio
   Arquivo central de estilos do tema WordPress.
   Tipografia: Cormorant Garamond (títulos) + DM Sans (corpo)
   Paleta: Preto #0D0D0D · Dourado #C9A96E · Off-white #F7F5F2
   Responsivo: 320px → 1600px
   ================================================================

   ÍNDICE:
   [1]  VARIÁVEIS CSS
   [2]  RESET & BASE
   [3]  TIPOGRAFIA
   [4]  UTILITÁRIOS
   [5]  MODAL MENU
   [6]  WHATSAPP FLUTUANTE
   [7]  BANNER HOME
   [8]  HEADER FIXO HOME
   [9]  HEADER PÁGINAS INTERNAS
   [10] SLIDE LANÇAMENTOS
   [11] CARDS HOME
   [12] QUEM SOMOS
   [13] INCORPORADORAS
   [14] INSTAGRAM
   [15] SEO BUSCAS
   [16] FOOTER
   [17] CHATBOT ANA
   [18] ANIMAÇÕES
   [19] RESPONSIVO 320px → 1600px

================================================================ */


/* ════════════════════════════════════════════════════════════════
   [1] VARIÁVEIS CSS
   Tokens de design centralizados — altere aqui para refletir
   em todo o site simultaneamente.
════════════════════════════════════════════════════════════════ */
:root {

    /* ── Cores principais ── */
    --cor-preto:        #0D0D0D;
    --cor-preto-soft:   #1A1A1A;
    --cor-preto-card:   #141414;
    --cor-dourado:      #C9A96E;
    --cor-dourado-dark: #A88750;
    --cor-dourado-light:#E8D5B0;
    --cor-branco:       #FFFFFF;
    --cor-offwhite:     #F7F5F2;
    --cor-cinza:        #6B6B6B;
    --cor-cinza-light:  #B0B0B0;
    --cor-cinza-borda:  #2A2A2A;
    --cor-erro:         #E05252;
    --cor-sucesso:      #52A882;

    /* ── Cores de texto ── */
    --texto-principal:  #1A1A1A;
    --texto-secundario: #6B6B6B;
    --texto-claro:      #F7F5F2;
    --texto-dourado:    #C9A96E;

    /* ── Tipografia ── */
    --fonte-titulo:  'Cormorant Garamond', Georgia, serif;
    --fonte-corpo:   'DM Sans', sans-serif;

    /* ── Tamanhos de fonte com clamp (escala fluida 320→1600px) ── */
    --f-hero:    clamp(2.2rem, 5.5vw, 5rem);
    --f-h1:      clamp(2rem,   4.5vw, 4rem);
    --f-h2:      clamp(1.6rem, 3vw,   3rem);
    --f-h3:      clamp(1.2rem, 2vw,   1.8rem);
    --f-h4:      clamp(1rem,   1.5vw, 1.3rem);
    --f-body:    clamp(0.9rem, 1.1vw, 1.05rem);
    --f-small:   clamp(0.75rem, 0.9vw, 0.875rem);
    --f-label:   clamp(0.65rem, 0.8vw, 0.75rem);

    /* ── Espaçamentos ── */
    --esp-xs:   8px;
    --esp-sm:   16px;
    --esp-md:   32px;
    --esp-lg:   64px;
    --esp-xl:   96px;
    --esp-2xl:  128px;

    /* ── Container ── */
    --container-max:    1400px;
    --container-pad:    clamp(16px, 4vw, 80px);

    /* ── Border radius ── */
    --radius-sm:    6px;
    --radius-md:    12px;
    --radius-lg:    20px;
    --radius-pill:  999px;

    /* ── Sombras ── */
    --sombra-sm:    0 2px 12px rgba(0,0,0,.08);
    --sombra-md:    0 8px 32px rgba(0,0,0,.14);
    --sombra-lg:    0 20px 60px rgba(0,0,0,.22);
    --sombra-dourada: 0 8px 32px rgba(201,169,110,.2);

    /* ── Transições ── */
    --trans-fast:   150ms ease;
    --trans-base:   300ms ease;
    --trans-slow:   500ms ease;
    --trans-xslow:  800ms ease;

    /* ── Z-index ── */
    --z-base:       1;
    --z-card:       10;
    --z-header:     100;
    --z-modal:      200;
    --z-float:      300;
    --z-chat:       400;
}


/* ════════════════════════════════════════════════════════════════
   [2] RESET & BASE
════════════════════════════════════════════════════════════════ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    font-size: 16px;
}

body {
    font-family: var(--fonte-corpo);
    font-size: var(--f-body);
    color: var(--texto-principal);
    background-color: var(--cor-offwhite);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/* Scrollbar elegante */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--cor-offwhite); }
::-webkit-scrollbar-thumb { background: var(--cor-dourado); border-radius: var(--radius-pill); }

/* Seleção de texto com cor da marca */
::selection { background: var(--cor-dourado); color: var(--cor-branco); }

/* Foco acessível */
:focus-visible {
    outline: 2px solid var(--cor-dourado);
    outline-offset: 3px;
    border-radius: var(--radius-sm);
}

/* Imagens responsivas */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--trans-base);
}

ul, ol { list-style: none; }

button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--fonte-corpo);
}

input, select, textarea {
    font-family: var(--fonte-corpo);
    font-size: var(--f-body);
    border: none;
    outline: none;
}

figure { margin: 0; }

/* Respeita preferência do sistema — sem animações */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    html { scroll-behavior: auto; }
}


/* ════════════════════════════════════════════════════════════════
   [3] TIPOGRAFIA
════════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--fonte-titulo);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: inherit;
}

h1 { font-size: var(--f-h1); }
h2 { font-size: var(--f-h2); }
h3 { font-size: var(--f-h3); }
h4 { font-size: var(--f-h4); }

p { line-height: 1.75; }

strong { font-weight: 600; }

/* Label estilizada — categoria, seção */
.consult-label {
    font-family: var(--fonte-corpo);
    font-size: var(--f-label);
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--cor-dourado);
}


/* ════════════════════════════════════════════════════════════════
   [4] UTILITÁRIOS
════════════════════════════════════════════════════════════════ */

/* Container centralizado */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad);
}

/* Cabeçalho de seção */
.consult-section-header {
    text-align: center;
    margin-bottom: var(--esp-lg);
}

.consult-section-titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h2);
    color: var(--cor-preto);
    margin-bottom: var(--esp-xs);
}

.consult-section-subtitulo {
    font-size: var(--f-body);
    color: var(--texto-secundario);
    max-width: 560px;
    margin-inline: auto;
    margin-bottom: var(--esp-sm);
}

.consult-section-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--cor-dourado);
    border-bottom: 1px solid transparent;
    transition: border-color var(--trans-base), gap var(--trans-base);
}

.consult-section-link:hover {
    border-color: var(--cor-dourado);
    gap: 12px;
}

/* Botão primário — dourado sólido */
.consult-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--esp-xs);
    padding: 14px 32px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: var(--radius-pill);
    transition: background var(--trans-base), transform var(--trans-base), box-shadow var(--trans-base);
    cursor: pointer;
}

.consult-btn:hover {
    background: var(--cor-dourado-dark);
    transform: translateY(-2px);
    box-shadow: var(--sombra-dourada);
}

/* Botão outline — borda dourada */
.consult-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: var(--esp-xs);
    padding: 13px 32px;
    background: transparent;
    color: var(--cor-dourado);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 1px solid var(--cor-dourado);
    border-radius: var(--radius-pill);
    transition: background var(--trans-base), color var(--trans-base), transform var(--trans-base);
    cursor: pointer;
}

.consult-btn-outline:hover {
    background: var(--cor-dourado);
    color: var(--cor-branco);
    transform: translateY(-2px);
}


/* ════════════════════════════════════════════════════════════════
   [5] MODAL MENU
   Controlado por: newFunctions.js → Seção [MODAL MENU]
════════════════════════════════════════════════════════════════ */
.consult-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    background: rgba(13,13,13,.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--trans-slow), visibility var(--trans-slow);
}

.consult-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.consult-modal__wrapper {
    width: min(480px, 90vw);
    height: 100vh;
    background: var(--cor-preto);
    padding: var(--esp-lg) var(--esp-md);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform var(--trans-slow);
    overflow-y: auto;
    position: relative;
}

.consult-modal.is-open .consult-modal__wrapper {
    transform: translateX(0);
}

.consult-modal__close {
    position: absolute;
    top: var(--esp-md);
    right: var(--esp-md);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-cinza-light);
    font-size: 1.4rem;
    border-radius: 50%;
    transition: color var(--trans-base), background var(--trans-base);
}

.consult-modal__close:hover {
    color: var(--cor-branco);
    background: var(--cor-cinza-borda);
}

.consult-modal__content {
    display: flex;
    flex-direction: column;
    gap: var(--esp-lg);
    margin-top: var(--esp-lg);
}

.consult-modal__logo img { width: 90px; }

/* Nav do modal */
.consult-modal__nav-list {
    display: flex;
    flex-direction: column;
    gap: var(--esp-xs);
}

.consult-modal__nav-list li a {
    display: block;
    font-family: var(--fonte-titulo);
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 300;
    color: var(--cor-cinza-light);
    padding: 6px 0;
    border-bottom: 1px solid transparent;
    transition: color var(--trans-base), border-color var(--trans-base), padding-left var(--trans-base);
}

.consult-modal__nav-list li a:hover,
.consult-modal__nav-list li a.is-current {
    color: var(--cor-branco);
    border-color: var(--cor-dourado);
    padding-left: 12px;
}

/* Redes sociais do modal */
.consult-modal__social ul {
    display: flex;
    gap: var(--esp-sm);
    flex-wrap: wrap;
}

.consult-modal__social a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cor-cinza-borda);
    border-radius: 50%;
    color: var(--cor-cinza-light);
    font-size: 0.9rem;
    transition: color var(--trans-base), border-color var(--trans-base), background var(--trans-base);
}

.consult-modal__social a:hover {
    color: var(--cor-dourado);
    border-color: var(--cor-dourado);
    background: rgba(201,169,110,.08);
}


/* ════════════════════════════════════════════════════════════════
   [6] WHATSAPP FLUTUANTE
   Controlado por: newFunctions.js → Seção [WHATSAPP]
════════════════════════════════════════════════════════════════ */
.consult-whatsapp-float {
    position: fixed;
    bottom: 32px;
    right: 32px;
    z-index: var(--z-float);
}

.consult-whatsapp-float__btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    color: var(--cor-branco);
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(37,211,102,.4);
    transition: transform var(--trans-base), box-shadow var(--trans-base);
    animation: consult-pulse 2.5s ease infinite;
}

.consult-whatsapp-float__btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 28px rgba(37,211,102,.55);
    animation: none;
}

@keyframes consult-pulse {
    0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,.4); }
    50%       { box-shadow: 0 4px 32px rgba(37,211,102,.7); }
}


/* ════════════════════════════════════════════════════════════════
   [7] BANNER HOME
   Seção hero da página inicial — 100vh, imagem de fundo,
   logo centralizado, nav no rodapé.
════════════════════════════════════════════════════════════════ */
.consult-banner {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 600px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    /* Imagem de fundo — substituir pela imagem real */
    background-image:
        linear-gradient(
            to bottom,
            rgba(13,13,13,.55) 0%,
            rgba(13,13,13,.15) 40%,
            rgba(13,13,13,.6) 100%
        ),
        url('https://res.cloudinary.com/db0dxzhah/image/upload/v1755802281/estancia-pernambuco-rio-de-janeiro-rj-19-scaled_v7qrmo.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: var(--cor-branco);
    overflow: hidden;
}

/* Topo do banner: logo + hambúrguer */
.consult-banner__top {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--esp-md) var(--container-pad);
    position: relative;
}

.consult-banner__logo img { width: clamp(70px, 8vw, 100px); }

.consult-banner__menu-toggle {
    position: absolute;
    right: var(--container-pad);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-branco);
    font-size: 1.3rem;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 50%;
    transition: background var(--trans-base), border-color var(--trans-base);
}

.consult-banner__menu-toggle:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.5);
}

/* Conteúdo central do banner */
.consult-banner__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--esp-md);
}

.consult-banner__titulo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--esp-sm);
    transition: transform var(--trans-slow);
}

.consult-banner__titulo h1 {
    font-size: var(--f-hero);
    font-weight: 300;
    color: var(--cor-branco);
    text-shadow: 0 2px 20px rgba(0,0,0,.3);
    max-width: 800px;
    line-height: 1.1;
}

.consult-banner__titulo p {
    font-size: clamp(1rem, 1.5vw, 1.3rem);
    color: rgba(255,255,255,.85);
    font-weight: 300;
    letter-spacing: 0.05em;
}

/* Botão "Comece sua busca" — REMOVIDO: substituído pela busca live */

/* ════════════════════════════════════════════════════════════
   BUSCA LIVE — Hero da Home
   .consult-home-search
════════════════════════════════════════════════════════════ */
.consult-home-search {
    width: 100%;
    max-width: 780px;
    position: relative;
    margin-top: var(--esp-sm);
}

/* Barra de busca */
.consult-home-search__bar {
    display: flex;
    align-items: center;
    gap: var(--esp-xs);
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-radius: var(--radius-pill);
    padding: 6px 6px 6px 20px;
    box-shadow: 0 8px 40px rgba(0,0,0,.35);
    transition: box-shadow var(--trans-base);
}

.consult-home-search__bar:focus-within {
    box-shadow: 0 8px 40px rgba(0,0,0,.4), 0 0 0 3px rgba(201,169,110,.3);
}

.consult-home-search__icon {
    color: var(--cor-cinza);
    font-size: 1rem;
    flex-shrink: 0;
}

.consult-home-search__input {
    flex: 1;
    background: transparent;
    color: var(--cor-preto);
    font-size: var(--f-body);
    font-weight: 400;
    font-family: var(--fonte-corpo);
    min-width: 0;
}

.consult-home-search__input::placeholder {
    color: var(--cor-cinza-light);
}

/* Botão limpar */
.consult-home-search__clear {
    width: 28px;
    height: 28px;
    display: none;
    align-items: center;
    justify-content: center;
    color: var(--cor-cinza);
    font-size: 0.85rem;
    border-radius: 50%;
    flex-shrink: 0;
    transition: color var(--trans-fast), background var(--trans-fast);
}

.consult-home-search__clear:hover {
    color: var(--cor-preto);
    background: rgba(0,0,0,.06);
}

/* Botão Buscar */
.consult-home-search__btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: var(--cor-preto);
    color: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.05em;
    border-radius: var(--radius-pill);
    flex-shrink: 0;
    transition: background var(--trans-base), transform var(--trans-fast);
}

.consult-home-search__btn:hover {
    background: var(--cor-dourado);
    transform: scale(1.02);
}

/* ── Dropdown de resultados ── */
.consult-home-search__dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: var(--cor-branco);
    border-radius: var(--radius-lg);
    box-shadow: var(--sombra-lg);
    overflow: hidden;
    z-index: var(--z-modal);
    animation: consultDropdownIn var(--trans-base) both;
}

@keyframes consultDropdownIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Cabeçalho de grupo: LANÇAMENTOS / IMÓVEIS PRONTOS */
.consult-home-search__group-title {
    font-family: var(--fonte-corpo);
    font-size: var(--f-label);
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--cor-dourado);
    padding: 14px 20px 8px;
    background: var(--cor-offwhite);
}

/* Item de resultado */
.consult-home-search__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 20px;
    cursor: pointer;
    transition: background var(--trans-fast);
    border-bottom: 1px solid rgba(0,0,0,.05);
}

.consult-home-search__item:last-of-type {
    border-bottom: none;
}

.consult-home-search__item:hover,
.consult-home-search__item:focus {
    background: var(--cor-offwhite);
    outline: none;
}

/* Thumbnail do item */
.consult-home-search__item-img {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--cor-cinza-borda);
}

.consult-home-search__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.consult-home-search__item-img--placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-cinza-light);
    font-size: 1.2rem;
}

/* Texto do item */
.consult-home-search__item-info {
    flex: 1;
    min-width: 0;
}

.consult-home-search__item-titulo {
    font-size: var(--f-body);
    font-weight: 500;
    color: var(--cor-preto);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.consult-home-search__item-titulo mark {
    background: transparent;
    color: var(--cor-dourado);
    font-weight: 600;
}

.consult-home-search__item-meta {
    font-size: var(--f-small);
    color: var(--cor-cinza);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.consult-home-search__item-meta mark {
    background: transparent;
    color: var(--cor-dourado);
    font-weight: 600;
}

/* Seta direita do item */
.consult-home-search__item-arrow {
    color: var(--cor-cinza-light);
    font-size: 0.75rem;
    flex-shrink: 0;
    transition: color var(--trans-fast), transform var(--trans-fast);
}

.consult-home-search__item:hover .consult-home-search__item-arrow {
    color: var(--cor-dourado);
    transform: translateX(3px);
}

/* Link "Ver portfólio completo" */
.consult-home-search__ver-todos {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    font-size: var(--f-small);
    font-weight: 500;
    color: var(--cor-dourado);
    background: var(--cor-offwhite);
    border-top: 1px solid rgba(0,0,0,.06);
    transition: background var(--trans-fast);
    gap: 8px;
}

.consult-home-search__ver-todos:hover {
    background: rgba(201,169,110,.08);
}

/* Estado de carregamento */
.consult-home-search__loading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px;
    color: var(--cor-cinza);
    font-size: var(--f-small);
}

/* Estado vazio */
.consult-home-search__empty {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px;
    color: var(--cor-cinza);
    font-size: var(--f-small);
}

/* Rodapé do banner: nav + redes sociais */
.consult-banner__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--esp-md) var(--container-pad);
    background: linear-gradient(to top, rgba(13,13,13,.6), transparent);
}

.consult-banner__nav-list {
    display: flex;
    align-items: center;
    gap: clamp(16px, 3vw, 40px);
    flex-wrap: wrap;
}

.consult-banner__nav-list li a {
    font-size: var(--f-small);
    font-weight: 400;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,.8);
    position: relative;
    padding-bottom: 2px;
    transition: color var(--trans-base);
}

.consult-banner__nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--cor-dourado);
    transition: width var(--trans-base);
}

.consult-banner__nav-list li a:hover,
.consult-banner__nav-list li a.is-current {
    color: var(--cor-branco);
}

.consult-banner__nav-list li a:hover::after,
.consult-banner__nav-list li a.is-current::after {
    width: 100%;
}

.consult-banner__social ul {
    display: flex;
    gap: var(--esp-sm);
}

.consult-banner__social a {
    color: rgba(255,255,255,.65);
    font-size: 1rem;
    transition: color var(--trans-base), transform var(--trans-base);
}

.consult-banner__social a:hover {
    color: var(--cor-dourado);
    transform: translateY(-2px);
}


/* ════════════════════════════════════════════════════════════════
   [8] HEADER FIXO HOME
   Aparece ao rolar a página — glassmorphism escuro.
   Classe .is-visible adicionada via newFunctions.js
════════════════════════════════════════════════════════════════ */
.consult-header-fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-header);
    background: rgba(13,13,13,.82);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(201,169,110,.12);
    transform: translateY(-110%);
    transition: transform var(--trans-slow), background var(--trans-slow);
}

.consult-header-fixed.is-visible {
    transform: translateY(0);
}

.consult-header-fixed__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    gap: var(--esp-md);
}

.consult-header-fixed__logo img { width: 90px; }

.consult-header-fixed__nav-list {
    display: flex;
    align-items: center;
    gap: clamp(16px, 2.5vw, 36px);
}

.consult-header-fixed__nav-list li a {
    font-size: var(--f-small);
    font-weight: 400;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,.75);
    position: relative;
    padding-bottom: 2px;
    transition: color var(--trans-base);
}

.consult-header-fixed__nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--cor-dourado);
    transition: width var(--trans-base);
}

.consult-header-fixed__nav-list li a:hover,
.consult-header-fixed__nav-list li a.is-current {
    color: var(--cor-branco);
}

.consult-header-fixed__nav-list li a:hover::after,
.consult-header-fixed__nav-list li a.is-current::after {
    width: 100%;
}

.consult-header-fixed__actions {
    display: flex;
    align-items: center;
    gap: var(--esp-xs);
}

.consult-header-fixed__search,
.consult-header-fixed__menu {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.65);
    font-size: 1rem;
    border-radius: 50%;
    transition: color var(--trans-base), background var(--trans-base);
}

.consult-header-fixed__search:hover,
.consult-header-fixed__menu:hover {
    color: var(--cor-dourado);
    background: rgba(201,169,110,.08);
}


/* ════════════════════════════════════════════════════════════════
   [9] HEADER PÁGINAS INTERNAS
   Fixo em todas as páginas exceto a home.
════════════════════════════════════════════════════════════════ */
.consult-header-pages {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: rgba(20,20,20,.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(201,169,110,.15);
}

.consult-header-pages__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 76px;
    gap: var(--esp-md);
}

.consult-header-pages__logo img { width: 90px; }

.consult-header-pages__nav-list {
    display: flex;
    align-items: center;
    gap: clamp(14px, 2vw, 32px);
    flex-wrap: wrap;
}

.consult-header-pages__nav-list li a {
    font-size: var(--f-small);
    font-weight: 400;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,.7);
    position: relative;
    padding-bottom: 2px;
    transition: color var(--trans-base);
}

.consult-header-pages__nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--cor-dourado);
    transition: width var(--trans-base);
}

.consult-header-pages__nav-list li a:hover,
.consult-header-pages__nav-list li a.is-current {
    color: var(--cor-branco);
}

.consult-header-pages__nav-list li a:hover::after,
.consult-header-pages__nav-list li a.is-current::after {
    width: 100%;
}

.consult-header-pages__telefone {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border: 1px solid rgba(201,169,110,.4);
    border-radius: var(--radius-pill);
    color: var(--cor-dourado);
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.03em;
    white-space: nowrap;
    transition: background var(--trans-base), border-color var(--trans-base);
}

.consult-header-pages__telefone:hover {
    background: rgba(201,169,110,.1);
    border-color: var(--cor-dourado);
}

.consult-header-pages__menu {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.7);
    font-size: 1.1rem;
    border-radius: 50%;
    transition: color var(--trans-base), background var(--trans-base);
}

.consult-header-pages__menu:hover {
    color: var(--cor-dourado);
    background: rgba(201,169,110,.08);
}


/* ════════════════════════════════════════════════════════════════
   [10] SLIDE LANÇAMENTOS
   Slider hero com navegação manual.
   Controlado por: newFunctions.js → Seção [SLIDE]
════════════════════════════════════════════════════════════════ */
.consult-slide {
    position: relative;
    width: 100%;
    height: clamp(420px, 75vh, 720px);
    overflow: hidden;
    background: var(--cor-preto);
}

.consult-slide__track {
    display: flex;
    height: 100%;
    transition: transform var(--trans-xslow);
    will-change: transform;
}

.consult-slide__item {
    flex: 0 0 100%;
    position: relative;
    overflow: hidden;
}

.consult-slide__figure {
    width: 100%;
    height: 100%;
}

.consult-slide__figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 6s ease;
}

.consult-slide__item.is-active .consult-slide__figure img {
    transform: scale(1.04);
}

/* Overlay gradiente nos slides */
.consult-slide__item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(13,13,13,.85) 0%,
        rgba(13,13,13,.2) 50%,
        transparent 100%
    );
}

/* Info do slide */
.consult-slide__info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    padding-bottom: clamp(40px, 6vh, 80px);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--trans-slow), transform var(--trans-slow);
}

.consult-slide__item.is-active .consult-slide__info {
    opacity: 1;
    transform: translateY(0);
}

.consult-slide__info-inner {
    color: var(--cor-branco);
}

.consult-slide__titulo {
    font-size: clamp(1.8rem, 3.5vw, 3.2rem);
    font-weight: 300;
    margin-bottom: var(--esp-xs);
    text-shadow: 0 2px 20px rgba(0,0,0,.4);
}

.consult-slide__endereco {
    font-size: var(--f-body);
    color: rgba(255,255,255,.7);
    margin-bottom: var(--esp-sm);
    display: flex;
    align-items: center;
    gap: 8px;
}

.consult-slide__tipologia ul {
    display: flex;
    gap: var(--esp-md);
    flex-wrap: wrap;
}

.consult-slide__tipologia li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--f-small);
    color: rgba(255,255,255,.8);
}

.consult-slide__tipologia li i {
    color: var(--cor-dourado);
    font-size: 1rem;
}

/* Botões de navegação do slide */
.consult-slide__controls {
    position: absolute;
    bottom: clamp(20px, 4vh, 48px);
    right: var(--container-pad);
    z-index: 3;
    display: flex;
    gap: var(--esp-xs);
}

.consult-slide__btn {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 50%;
    color: var(--cor-branco);
    font-size: 0.85rem;
    background: rgba(13,13,13,.4);
    backdrop-filter: blur(6px);
    transition: background var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}

.consult-slide__btn:hover:not(:disabled) {
    background: var(--cor-dourado);
    border-color: var(--cor-dourado);
    transform: scale(1.08);
}

.consult-slide__btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}


/* ════════════════════════════════════════════════════════════════
   [11] CARDS HOME — Design dark premium
   2 colunas · Fundo escuro · Foto landscape · Info no rodapé
════════════════════════════════════════════════════════════════ */
.consult-cards-home {
    padding: var(--esp-xl) 0;
    background: var(--cor-offwhite);
}

.consult-cards-home__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: start;
}

/* ── Card individual — fundo dark ── */
.consult-card {
    background: #141414;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,.2);
    transition: transform var(--trans-base), box-shadow var(--trans-base);
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.06);
    display: flex;
    flex-direction: column;
    opacity: 0;
    transform: translateY(24px);
}

.consult-card.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity var(--trans-slow), transform var(--trans-slow), box-shadow var(--trans-base);
}

.consult-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(0,0,0,.3);
}

/* ── Figura — altura fixa landscape ── */
.consult-card__figure {
    display: block;
    position: relative;
    width: 100%;
    height: 320px;
    overflow: hidden;
    flex-shrink: 0;
}

.consult-card__figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--trans-slow);
}

.consult-card:hover .consult-card__figure img { transform: scale(1.06); }

/* ── Badge ── */
.consult-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    background: rgba(201,169,110,.92);
    backdrop-filter: blur(6px);
    color: var(--cor-branco);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-radius: var(--radius-pill);
}

/* ── Ações ── */
.consult-card__acoes {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    gap: 6px;
    opacity: 0;
    transition: opacity var(--trans-base);
}

.consult-card:hover .consult-card__acoes { opacity: 1; }

.consult-card__acao-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(13,13,13,.65);
    backdrop-filter: blur(8px);
    border-radius: 50%;
    color: var(--cor-branco);
    font-size: 0.8rem;
    border: none;
    cursor: pointer;
    transition: background var(--trans-base);
}

.consult-card__acao-btn:hover,
.consult-card__acao-btn.is-favoritado { background: var(--cor-dourado); }

/* ── Info — fundo escuro ── */
.consult-card__info {
    padding: 18px 20px 20px;
    background: #141414;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.consult-card__topo {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
}

.consult-card__nome-wrap { flex: 1; }

.consult-card__bairro {
    display: block;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cor-dourado);
    margin-bottom: 4px;
}

.consult-card__titulo {
    font-family: var(--fonte-titulo);
    font-size: clamp(1.2rem, 1.6vw, 1.6rem);
    font-weight: 400;
    color: var(--cor-branco);
    line-height: 1.25;
    transition: color var(--trans-base);
}

.consult-card__titulo a { color: inherit; }
.consult-card:hover .consult-card__titulo { color: var(--cor-dourado); }

.consult-card__endereco {
    font-size: 11px;
    color: rgba(255,255,255,.4);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Separador */
.consult-card__sep {
    height: 1px;
    background: rgba(255,255,255,.08);
    margin-bottom: 12px;
}

/* ── Rodapé: tipologia + preço ── */
.consult-card__rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
}

.consult-card__tipologia {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
}

.consult-card__tipologia li {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: rgba(255,255,255,.55);
}

.consult-card__tipologia li i {
    color: var(--cor-dourado);
    font-size: 0.8rem;
}

.consult-card__preco {
    font-family: var(--fonte-titulo);
    font-size: clamp(1.1rem, 1.4vw, 1.4rem);
    color: var(--cor-dourado);
    font-weight: 600;
    white-space: nowrap;
}

/* Skeleton loading */
.consult-card-skeleton {
    background: var(--cor-branco);
    border-radius: var(--radius-md);
    overflow: hidden;
    aspect-ratio: 3/4;
    position: relative;
}

.consult-card-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(201,169,110,.05) 0%,
        rgba(201,169,110,.12) 50%,
        rgba(201,169,110,.05) 100%
    );
    background-size: 200% 100%;
    animation: consult-skeleton 1.5s ease infinite;
}

@keyframes consult-skeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}


/* ════════════════════════════════════════════════════════════════
   [12] QUEM SOMOS
════════════════════════════════════════════════════════════════ */
.consult-quemsomos {
    padding: var(--esp-xl) 0;
    background: var(--cor-branco);
}

.consult-quemsomos__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 6vw, 96px);
    align-items: center;
}

.consult-quemsomos__texto {
    display: flex;
    flex-direction: column;
    gap: var(--esp-md);
}

.consult-quemsomos__label {
    font-size: var(--f-label);
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--cor-dourado);
}

.consult-quemsomos__titulo {
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 300;
    color: var(--cor-preto);
    line-height: 1.15;
}

.consult-quemsomos__paragrafos {
    display: flex;
    flex-direction: column;
    gap: var(--esp-sm);
}

.consult-quemsomos__paragrafos p {
    font-size: var(--f-body);
    color: var(--texto-secundario);
    line-height: 1.8;
}

.consult-quemsomos__imagem {
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4/5;
    position: relative;
}

.consult-quemsomos__imagem::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: linear-gradient(135deg, var(--cor-dourado), transparent 60%);
    z-index: -1;
}

.consult-quemsomos__imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--trans-slow);
}

.consult-quemsomos__imagem:hover img {
    transform: scale(1.03);
}


/* ════════════════════════════════════════════════════════════════
   [13] INCORPORADORAS — Carrossel infinito
════════════════════════════════════════════════════════════════ */
.consult-incorporadoras {
    padding: var(--esp-lg) 0;
    background: var(--cor-offwhite);
    overflow: hidden;
}

.consult-incorporadoras .container {
    text-align: center;
    margin-bottom: var(--esp-md);
}

.consult-incorporadoras__label {
    font-size: var(--f-label);
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--cor-dourado);
    display: block;
    margin-bottom: var(--esp-xs);
}

.consult-incorporadoras__titulo {
    font-size: var(--f-h3);
    font-weight: 300;
    color: var(--cor-preto);
}

.consult-incorporadoras__track {
    display: flex;
    align-items: center;
    gap: clamp(32px, 5vw, 64px);
    animation: consult-scroll-infinito 30s linear infinite;
    width: max-content;
}

.consult-incorporadoras__track:hover {
    animation-play-state: paused;
}

.consult-incorporadoras__track figure {
    flex: 0 0 auto;
    height: 48px;
    display: flex;
    align-items: center;
    opacity: 0.5;
    filter: grayscale(1);
    transition: opacity var(--trans-base), filter var(--trans-base);
}

.consult-incorporadoras__track figure:hover {
    opacity: 1;
    filter: grayscale(0);
}

.consult-incorporadoras__track figure img {
    height: 100%;
    width: auto;
    object-fit: contain;
}

@keyframes consult-scroll-infinito {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}


/* ════════════════════════════════════════════════════════════════
   [14] INSTAGRAM / POSTAGENS
════════════════════════════════════════════════════════════════ */
.consult-instagram {
    padding: var(--esp-xl) 0;
    background: var(--cor-preto);
    color: var(--cor-branco);
}

.consult-instagram__inner { display: flex; flex-direction: column; gap: var(--esp-lg); }

.consult-instagram__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--esp-sm);
}

.consult-instagram__titulo {
    font-size: var(--f-h2);
    font-weight: 300;
}

.consult-instagram__perfil {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--cor-dourado);
    font-size: var(--f-body);
    transition: opacity var(--trans-base);
}

.consult-instagram__perfil:hover { opacity: 0.75; }

.consult-instagram__carrossel {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--esp-sm);
}

.consult-instagram__cards {
    display: flex;
    gap: var(--esp-sm);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    flex: 1;
}

.consult-instagram__cards::-webkit-scrollbar { display: none; }

.consult-instagram__card {
    flex: 0 0 clamp(200px, 18vw, 260px);
    aspect-ratio: 1;
    border-radius: var(--radius-md);
    overflow: hidden;
    scroll-snap-align: start;
    position: relative;
    display: block;
    text-decoration: none;
    background: var(--cor-preto-card);
    cursor: pointer;
}

.consult-instagram__card figure {
    width: 100%;
    height: 100%;
}

.consult-instagram__card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--trans-slow);
    display: block;
}

.consult-instagram__card:hover img { transform: scale(1.06); }

/* Overlay Instagram — aparece no hover */
.consult-instagram__card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--trans-base);
    font-size: 2rem;
    color: var(--cor-branco);
}

.consult-instagram__card:hover .consult-instagram__card-overlay {
    opacity: 1;
}

/* Placeholder quando não há imagem */
.consult-instagram__card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.2);
    font-size: 2.5rem;
    background: var(--cor-preto-card);
}

/* Skeleton loading */
.consult-instagram__skeleton {
    flex: 0 0 clamp(200px, 18vw, 260px);
    aspect-ratio: 1;
    border-radius: var(--radius-md);
    background: linear-gradient(90deg, rgba(255,255,255,.06) 25%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.06) 75%);
    background-size: 200% 100%;
    animation: consultSkeleton 1.4s ease infinite;
    flex-shrink: 0;
}

@keyframes consultSkeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.consult-instagram__btn {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    color: rgba(255,255,255,.7);
    font-size: 0.85rem;
    transition: background var(--trans-base), border-color var(--trans-base), color var(--trans-base);
}

.consult-instagram__btn:hover {
    background: var(--cor-dourado);
    border-color: var(--cor-dourado);
    color: var(--cor-branco);
}

/* Formulário de e-mail */
.consult-instagram__contato {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--esp-sm);
    text-align: center;
}

.consult-instagram__contato-texto {
    font-size: var(--f-body);
    color: rgba(255,255,255,.6);
}

.consult-instagram__form {
    display: flex;
    align-items: center;
    gap: var(--esp-xs);
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--radius-pill);
    padding: 6px 6px 6px 24px;
    width: min(480px, 100%);
}

.consult-instagram__form input {
    flex: 1;
    background: transparent;
    color: var(--cor-branco);
    font-size: var(--f-small);
}

.consult-instagram__form input::placeholder { color: rgba(255,255,255,.35); }

#consultEmailSubmit {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border-radius: 50%;
    font-size: 0.9rem;
    transition: background var(--trans-base), transform var(--trans-base);
}

#consultEmailSubmit:hover {
    background: var(--cor-dourado-dark);
    transform: scale(1.08);
}


/* ════════════════════════════════════════════════════════════════
   [15] SEO BUSCAS — Pills por bairro
════════════════════════════════════════════════════════════════ */
.consult-seo {
    padding: var(--esp-lg) 0;
    background: var(--cor-offwhite);
    border-top: 1px solid rgba(201,169,110,.15);
}

.consult-seo__titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h3);
    font-weight: 400;
    color: var(--cor-preto);
    margin-bottom: var(--esp-md);
}

/* Grupo por bairro */
.consult-seo__grupo {
    margin-bottom: var(--esp-md);
}

.consult-seo__grupo:last-child {
    margin-bottom: 0;
}

/* Título do grupo com linha separadora */
.consult-seo__grupo-titulo {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--cor-dourado);
    margin-bottom: 12px;
}

.consult-seo__grupo-titulo i {
    font-size: 0.8rem;
    opacity: 0.8;
}

.consult-seo__grupo-titulo::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(201,169,110,.2);
}

/* Container das pills */
.consult-seo__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Pill individual */
.consult-seo__pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(0,0,0,.12);
    background: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    color: var(--texto-secundario);
    text-decoration: none;
    transition: border-color var(--trans-base), color var(--trans-base), background var(--trans-base);
    white-space: nowrap;
}

.consult-seo__pill::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.35;
    flex-shrink: 0;
}

.consult-seo__pill:hover {
    border-color: var(--cor-dourado);
    color: var(--cor-dourado-dark);
    background: rgba(201,169,110,.06);
}


/* ════════════════════════════════════════════════════════════════
   [16] BANNER CALCULADORA + FOOTER 4 COLUNAS
════════════════════════════════════════════════════════════════ */

/* ── Banner Calculadora ── */
.consult-calc-banner {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    margin: var(--esp-xl) clamp(16px, 4vw, 80px) var(--esp-lg);
    height: clamp(280px, 38vw, 460px);
}

.consult-calc-banner__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 30%;
    transition: transform var(--trans-xslow);
}

.consult-calc-banner:hover .consult-calc-banner__bg {
    transform: scale(1.03);
}

.consult-calc-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.75) 0%, rgba(0,0,0,.35) 100%);
}

.consult-calc-banner__content {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--esp-md);
    flex-wrap: wrap;
}

.consult-calc-banner__titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h2);
    font-weight: 300;
    color: var(--cor-branco);
    margin-bottom: 10px;
    line-height: 1.1;
}

.consult-calc-banner__sub {
    font-size: var(--f-body);
    color: rgba(255,255,255,.8);
    max-width: 500px;
    line-height: 1.6;
}

.consult-calc-banner__btn {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 32px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    letter-spacing: 0.05em;
    border-radius: var(--radius-pill);
    white-space: nowrap;
    flex-shrink: 0;
    transition: background var(--trans-base), transform var(--trans-fast);
}

.consult-calc-banner__btn:hover {
    background: var(--cor-dourado-dark);
    transform: scale(1.03);
}

/* ── Footer 4 colunas ── */
.consult-footer {
    background: var(--cor-preto);
    color: var(--cor-branco);
    border-top: 1px solid rgba(201,169,110,.2);
}

.consult-footer__inner {
    display: grid;
    grid-template-columns: 1.6fr 0.8fr 0.8fr 1.2fr;
    gap: clamp(24px, 4vw, 56px);
    padding-top: var(--esp-xl);
    padding-bottom: var(--esp-xl);
    align-items: start;
}

.consult-footer__brand {
    display: flex;
    flex-direction: column;
    gap: var(--esp-md);
}

.consult-footer__logo img { width: 150px; margin-top: -20px; }

.consult-footer__slogan {
    font-size: var(--f-small);
    color: var(--cor-cinza-light);
    line-height: 1.7;
}

.consult-footer__social ul {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.consult-footer__social a {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cor-cinza-borda);
    border-radius: 50%;
    color: var(--cor-cinza-light);
    font-size: 0.8rem;
    transition: color var(--trans-base), border-color var(--trans-base), background var(--trans-base);
}

.consult-footer__social a:hover {
    color: var(--cor-dourado);
    border-color: var(--cor-dourado);
    background: rgba(201,169,110,.08);
}

.consult-footer__nav-title {
    font-family: var(--fonte-corpo);
    font-size: var(--f-label);
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--cor-dourado);
    margin-bottom: var(--esp-sm);
}

.consult-footer__nav-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.consult-footer__nav-list li a {
    font-size: var(--f-small);
    color: var(--cor-cinza-light);
    transition: color var(--trans-base), padding-left var(--trans-base);
}

.consult-footer__nav-list li a:hover {
    color: var(--cor-dourado);
    padding-left: 6px;
}

.consult-footer__contato-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: var(--esp-xs);
}

.consult-footer__contato-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--f-small);
    color: var(--cor-cinza-light);
}

.consult-footer__contato-list li a {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--f-small);
    color: var(--cor-cinza-light);
    transition: color var(--trans-base);
}

.consult-footer__contato-list li a:hover { color: var(--cor-dourado); }

.consult-footer__contato-list li i {
    color: var(--cor-dourado);
    width: 14px;
    flex-shrink: 0;
    font-size: 0.85rem;
}

/* Coluna lançamentos em destaque */
.consult-footer__destaques {
    display: flex;
    flex-direction: column;
}

.consult-footer__destaque-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,.06);
    text-decoration: none;
    transition: border-color var(--trans-base);
}

.consult-footer__destaque-item:last-child { border-bottom: none; }

.consult-footer__destaque-item:hover {
    border-color: rgba(201,169,110,.25);
}

.consult-footer__destaque-img {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--cor-preto-card);
}

.consult-footer__destaque-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.consult-footer__destaque-nome {
    font-size: var(--f-small);
    color: var(--cor-cinza-light);
    line-height: 1.3;
    transition: color var(--trans-base);
}

.consult-footer__destaque-item:hover .consult-footer__destaque-nome {
    color: var(--cor-dourado);
}

.consult-footer__destaque-bairro {
    font-size: 0.7rem;
    color: var(--cor-cinza);
    margin-top: 2px;
}

.consult-footer__destaque-vazio {
    font-size: var(--f-small);
    color: var(--cor-cinza);
    padding: var(--esp-sm) 0;
}

/* Bottom bar */
.consult-footer__bottom {
    border-top: 1px solid var(--cor-cinza-borda);
}

.consult-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: var(--esp-sm);
    gap: var(--esp-sm);
    flex-wrap: wrap;
}

.consult-footer__copyright,
.consult-footer__dev {
    font-size: var(--f-label);
    color: var(--cor-cinza);
}

.consult-footer__dev a {
    color: var(--cor-dourado);
    transition: opacity var(--trans-base);
}

.consult-footer__dev a:hover { opacity: 0.75; }


/* ════════════════════════════════════════════════════════════════
   [16.1] MODAL CALCULADORA DE COMPRA
════════════════════════════════════════════════════════════════ */
.consult-calc-modal {
    position: fixed;
    inset: 0;
    z-index: calc(var(--z-modal) + 50);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--trans-base);
}

.consult-calc-modal.is-aberto {
    opacity: 1;
    pointer-events: auto;
}

.consult-calc-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.65);
    backdrop-filter: blur(4px);
}

.consult-calc-modal__box {
    position: relative;
    background: var(--cor-branco);
    border-radius: var(--radius-lg);
    width: min(680px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: var(--esp-md);
    transform: translateY(20px);
    transition: transform var(--trans-base);
    scrollbar-width: thin;
}

.consult-calc-modal.is-aberto .consult-calc-modal__box {
    transform: translateY(0);
}

/* Cabeçalho com progresso */
.consult-calc-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--esp-md);
    padding-bottom: var(--esp-sm);
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.consult-calc-modal__progresso {
    display: flex;
    align-items: center;
    gap: 8px;
}

.consult-calc-modal__etapa-ind {
    display: flex;
    align-items: center;
    gap: 6px;
}

.consult-calc-modal__etapa-ind span {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    background: rgba(0,0,0,.08);
    color: var(--cor-cinza);
    transition: background var(--trans-base), color var(--trans-base);
}

.consult-calc-modal__etapa-ind p {
    font-size: 0.7rem;
    color: var(--cor-cinza);
    font-weight: 500;
    transition: color var(--trans-base);
}

.consult-calc-modal__etapa-ind.is-ativo span {
    background: var(--cor-dourado);
    color: var(--cor-branco);
}

.consult-calc-modal__etapa-ind.is-ativo p { color: var(--cor-preto); }

.consult-calc-modal__etapa-ind.is-completo span {
    background: var(--cor-sucesso);
    color: var(--cor-branco);
}

.consult-calc-modal__linha {
    width: 32px;
    height: 1px;
    background: rgba(0,0,0,.12);
}

.consult-calc-modal__fechar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-cinza);
    font-size: 1rem;
    transition: background var(--trans-fast), color var(--trans-fast);
    flex-shrink: 0;
}

.consult-calc-modal__fechar:hover {
    background: rgba(0,0,0,.06);
    color: var(--cor-preto);
}

/* Conteúdo das etapas */
.consult-calc-modal__conteudo { }

.consult-calc-modal__titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h3);
    font-weight: 400;
    color: var(--cor-preto);
    margin-bottom: 6px;
}

.consult-calc-modal__desc {
    font-size: var(--f-small);
    color: var(--texto-secundario);
    margin-bottom: var(--esp-md);
    line-height: 1.6;
}

/* Grid de campos */
.consult-calc-modal__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--esp-sm);
    margin-bottom: var(--esp-md);
}

.consult-calc-modal__grid--lead {
    grid-template-columns: 1fr 1fr;
}

/* Campo individual */
.consult-calc-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.consult-calc-campo--full {
    grid-column: 1 / -1;
}

.consult-calc-campo label {
    font-size: var(--f-small);
    font-weight: 500;
    color: var(--cor-preto);
}

.consult-calc-campo label small {
    font-weight: 400;
    color: var(--cor-cinza);
    font-size: 0.7rem;
}

.consult-calc-campo input[type="text"],
.consult-calc-campo input[type="email"],
.consult-calc-campo input[type="tel"],
.consult-calc-campo input[type="date"] {
    width: 100%;
    height: 44px;
    padding: 0 12px;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: var(--radius-md);
    font-size: var(--f-small);
    color: var(--cor-preto);
    background: var(--cor-branco);
    transition: border-color var(--trans-base), box-shadow var(--trans-base);
    font-family: var(--fonte-corpo);
}

.consult-calc-campo input:focus {
    outline: none;
    border-color: var(--cor-dourado);
    box-shadow: 0 0 0 3px rgba(201,169,110,.15);
}

.consult-calc-prefixo {
    display: flex;
    align-items: center;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--trans-base), box-shadow var(--trans-base);
}

.consult-calc-prefixo:focus-within {
    border-color: var(--cor-dourado);
    box-shadow: 0 0 0 3px rgba(201,169,110,.15);
}

.consult-calc-prefixo span {
    padding: 0 12px;
    font-size: var(--f-small);
    color: var(--cor-cinza);
    font-weight: 500;
    background: rgba(0,0,0,.03);
    border-right: 1px solid rgba(0,0,0,.1);
    height: 44px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.consult-calc-prefixo input {
    flex: 1;
    height: 44px;
    padding: 0 12px;
    border: none;
    background: transparent;
    font-size: var(--f-small);
    color: var(--cor-preto);
    font-family: var(--fonte-corpo);
}

.consult-calc-prefixo input:focus { outline: none; }

/* Checkbox personalizado */
.consult-calc-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: var(--f-small);
    color: var(--texto-secundario);
    line-height: 1.5;
}

.consult-calc-check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-top: 2px;
    accent-color: var(--cor-dourado);
    flex-shrink: 0;
}

.consult-calc-check a { color: var(--cor-dourado); }

.consult-calc-campo small {
    font-size: 0.7rem;
    color: var(--cor-cinza);
    line-height: 1.4;
}

/* Botões */
.consult-calc-btn-principal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    background: var(--cor-preto);
    color: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    border-radius: var(--radius-pill);
    transition: background var(--trans-base), transform var(--trans-fast);
    cursor: pointer;
    width: 100%;
    margin-top: var(--esp-sm);
}

.consult-calc-btn-principal:hover:not(:disabled) {
    background: var(--cor-dourado);
    transform: translateY(-1px);
}

.consult-calc-btn-principal:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.consult-calc-btn-secundario {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    font-size: var(--f-small);
    color: var(--cor-cinza);
    border: 1px solid rgba(0,0,0,.12);
    border-radius: var(--radius-pill);
    transition: color var(--trans-base), border-color var(--trans-base);
    cursor: pointer;
    font-family: var(--fonte-corpo);
}

.consult-calc-btn-secundario:hover {
    color: var(--cor-preto);
    border-color: var(--cor-preto);
}

.consult-calc-acoes {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--esp-sm);
    margin-top: var(--esp-md);
}

.consult-calc-acoes .consult-calc-btn-principal {
    width: auto;
    flex: 1;
    margin-top: 0;
}

/* Mensagem de erro */
.consult-calc-modal__erro {
    font-size: var(--f-small);
    color: var(--cor-erro);
    padding: 8px 12px;
    background: rgba(224,82,82,.08);
    border-radius: var(--radius-sm);
    margin-bottom: var(--esp-sm);
}

/* Nota de rodapé */
.consult-calc-modal__nota {
    font-size: 0.7rem;
    color: var(--cor-cinza);
    text-align: center;
    margin-top: var(--esp-sm);
    line-height: 1.5;
}

/* ── Status da simulação ── */
.consult-calc-status {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: var(--radius-md);
    margin-bottom: var(--esp-md);
    font-size: var(--f-small);
    font-weight: 500;
}

.consult-calc-status.is-ok {
    background: rgba(82,168,130,.1);
    color: #2d7a57;
}

.consult-calc-status.is-atencao {
    background: rgba(224,82,82,.1);
    color: #a83232;
}

.consult-calc-status i { font-size: 1.1rem; flex-shrink: 0; }

/* ── Cards de resultado ── */
.consult-calc-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: var(--esp-md);
}

.consult-calc-card {
    background: var(--cor-offwhite);
    border-radius: var(--radius-md);
    padding: 14px;
}

.consult-calc-card__label {
    font-size: 0.7rem;
    color: var(--cor-cinza);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.consult-calc-card__valor {
    font-family: var(--fonte-titulo);
    font-size: clamp(1rem, 1.8vw, 1.3rem);
    font-weight: 400;
    color: var(--cor-preto);
    margin-bottom: 4px;
}

.consult-calc-card__sub {
    font-size: 0.68rem;
    color: var(--cor-cinza);
    line-height: 1.4;
}

/* ── Tabela de taxas ── */
.consult-calc-taxas {
    background: var(--cor-offwhite);
    border-radius: var(--radius-md);
    padding: var(--esp-sm);
    margin-bottom: var(--esp-sm);
}

.consult-calc-taxas__titulo {
    font-size: var(--f-small);
    font-weight: 600;
    color: var(--cor-preto);
    margin-bottom: var(--esp-sm);
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.consult-calc-taxa-linha {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: var(--f-small);
    color: var(--texto-secundario);
    border-bottom: 1px solid rgba(0,0,0,.05);
}

.consult-calc-taxa-linha:last-child { border-bottom: none; }

.consult-calc-taxa-linha strong { color: var(--cor-preto); font-weight: 600; }

.consult-calc-taxa-linha--total {
    padding-top: 10px;
    margin-top: 4px;
    font-weight: 600;
    color: var(--cor-preto);
}

.consult-calc-taxa-linha--total strong { color: var(--cor-dourado); font-size: 1.05em; }

/* ── Sucesso ── */
.consult-calc-sucesso {
    text-align: center;
    padding: var(--esp-lg) var(--esp-md);
}

.consult-calc-sucesso__icone {
    font-size: 3.5rem;
    color: var(--cor-sucesso);
    margin-bottom: var(--esp-md);
}

.consult-calc-sucesso h3 {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h3);
    font-weight: 400;
    color: var(--cor-preto);
    margin-bottom: var(--esp-sm);
}

.consult-calc-sucesso p {
    font-size: var(--f-body);
    color: var(--texto-secundario);
    margin-bottom: var(--esp-md);
    line-height: 1.6;
}

/* ── Responsivo footer ── */
@media (max-width: 1024px) {
    .consult-footer__inner {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
    }
    .consult-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .consult-calc-banner { margin: 0 16px var(--esp-md); }
    .consult-calc-banner__content { flex-direction: column; align-items: flex-start; padding: var(--esp-md) 0; }
    .consult-calc-modal__grid { grid-template-columns: 1fr; }
    .consult-calc-cards { grid-template-columns: 1fr; }
    .consult-footer__inner { grid-template-columns: 1fr; }
    .consult-footer__brand { grid-column: auto; }
}


/* ════════════════════════════════════════════════════════════════
   [17] CHATBOT ANA — Gemini AI
════════════════════════════════════════════════════════════════ */
.consult-chat {
    position: fixed;
    bottom: 32px;
    left: 32px;
    z-index: var(--z-chat);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--esp-sm);
}

/* Botão de abertura */
.consult-chat__trigger {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    background: linear-gradient(135deg, var(--cor-preto), var(--cor-preto-soft));
    border: 1px solid rgba(201,169,110,.3);
    border-radius: var(--radius-pill);
    color: var(--cor-branco);
    font-size: var(--f-small);
    font-weight: 400;
    box-shadow: var(--sombra-md);
    transition: border-color var(--trans-base), transform var(--trans-base), box-shadow var(--trans-base);
}

.consult-chat__trigger:hover {
    border-color: var(--cor-dourado);
    transform: translateY(-2px);
    box-shadow: var(--sombra-dourada);
}

.consult-chat__trigger i { color: var(--cor-dourado); font-size: 1rem; }

.consult-chat__trigger-label { white-space: nowrap; }

/* Janela do chat */
.consult-chat__window {
    width: min(380px, 90vw);
    max-height: 520px;
    background: rgba(20,20,20,.96);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(201,169,110,.2);
    border-radius: var(--radius-lg);
    box-shadow: var(--sombra-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform-origin: bottom left;
    transform: scale(0.92) translateY(12px);
    opacity: 0;
    pointer-events: none;
    transition: transform var(--trans-slow), opacity var(--trans-slow);
}

.consult-chat__window.is-open {
    transform: scale(1) translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* Header do chat */
.consult-chat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: linear-gradient(135deg, rgba(201,169,110,.15), rgba(201,169,110,.05));
    border-bottom: 1px solid rgba(201,169,110,.15);
}

.consult-chat__header-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.consult-chat__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--cor-dourado), var(--cor-dourado-dark));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-branco);
    font-size: 1rem;
}

.consult-chat__name {
    font-family: var(--fonte-titulo);
    font-size: 1.1rem;
    color: var(--cor-branco);
    line-height: 1;
}

.consult-chat__status {
    font-size: 0.7rem;
    color: var(--cor-dourado);
    margin-top: 2px;
}

.consult-chat__close {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-cinza-light);
    border-radius: 50%;
    transition: color var(--trans-base), background var(--trans-base);
}

.consult-chat__close:hover {
    color: var(--cor-branco);
    background: rgba(255,255,255,.08);
}

/* Área de mensagens */
.consult-chat__messages {
    flex: 1;
    overflow-y: auto;
    padding: var(--esp-sm) var(--esp-sm);
    display: flex;
    flex-direction: column;
    gap: var(--esp-xs);
    scrollbar-width: thin;
    scrollbar-color: rgba(201,169,110,.3) transparent;
}

/* Mensagem da Ana */
.consult-chat__msg {
    max-width: 85%;
    padding: 10px 14px;
    border-radius: 16px;
    font-size: var(--f-small);
    line-height: 1.5;
    animation: consult-msg-in var(--trans-base) ease;
}

.consult-chat__msg--ana {
    background: rgba(201,169,110,.12);
    border: 1px solid rgba(201,169,110,.15);
    color: var(--cor-offwhite);
    border-bottom-left-radius: 4px;
    align-self: flex-start;
}

.consult-chat__msg--user {
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border-bottom-right-radius: 4px;
    align-self: flex-end;
}

@keyframes consult-msg-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Input do chat */
.consult-chat__input-area {
    display: flex;
    align-items: center;
    gap: var(--esp-xs);
    padding: 12px 16px;
    border-top: 1px solid rgba(255,255,255,.06);
    background: rgba(255,255,255,.03);
}

.consult-chat__input {
    flex: 1;
    background: transparent;
    color: var(--cor-branco);
    font-size: var(--f-small);
}

.consult-chat__input::placeholder { color: rgba(255,255,255,.3); }

.consult-chat__send {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border-radius: 50%;
    font-size: 0.85rem;
    transition: background var(--trans-base), transform var(--trans-base);
}

.consult-chat__send:hover {
    background: var(--cor-dourado-dark);
    transform: scale(1.08);
}


/* ════════════════════════════════════════════════════════════════
   [18] ANIMAÇÕES GLOBAIS
════════════════════════════════════════════════════════════════ */

/* Fade-in com translateY — disparado pelo IntersectionObserver */
.consult-anim {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity var(--trans-slow), transform var(--trans-slow);
}

.consult-anim.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Delay escalonado para grupos de elementos */
.consult-anim[data-delay="1"] { transition-delay: 100ms; }
.consult-anim[data-delay="2"] { transition-delay: 200ms; }
.consult-anim[data-delay="3"] { transition-delay: 300ms; }
.consult-anim[data-delay="4"] { transition-delay: 400ms; }


/* ════════════════════════════════════════════════════════════════
   [19] RESPONSIVO — 320px → 1600px
════════════════════════════════════════════════════════════════ */

/* ── 1600px — Widescreen ── */
@media (min-width: 1600px) {
    :root { --container-max: 1500px; }

    .consult-cards-home__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ── 1280px — Desktop padrão ── */
@media (max-width: 1280px) {
    .consult-footer__nav-group {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── 1024px — Tablet landscape / Notebook ── */
@media (max-width: 1024px) {

    .consult-banner__bottom {
        flex-direction: column;
        gap: var(--esp-sm);
        align-items: center;
        text-align: center;
    }

    .consult-quemsomos__inner {
        grid-template-columns: 1fr;
    }

    .consult-quemsomos__imagem {
        aspect-ratio: 16/9;
        order: -1;
    }

    .consult-footer__inner {
        grid-template-columns: 1fr;
    }

    .consult-footer__nav-group {
        grid-template-columns: repeat(3, 1fr);
    }

    .consult-cards-home__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── 768px — Tablet portrait ── */
@media (max-width: 768px) {

    /* Header páginas: esconde nav, mostra hambúrguer */
    .consult-header-pages__nav { display: none; }
    .consult-header-pages__menu { display: flex; }
    .consult-header-pages__telefone span { display: none; }
    .consult-header-pages__telefone {
        padding: 10px;
        border-radius: 50%;
        width: 40px;
        height: 40px;
        justify-content: center;
    }

    /* Header fixo: esconde nav */
    .consult-header-fixed__nav { display: none; }

    /* Banner: nav escondida, mostra hambúrguer */
    .consult-banner__nav { display: none; }
    .consult-banner__menu-toggle { display: flex; }

    /* Busca live: botão Buscar menor */
    .consult-home-search { max-width: 100%; }
    .consult-home-search__btn span { display: none; }
    .consult-home-search__btn { padding: 12px 16px; }

    /* Cards: 2 colunas */
    .consult-cards-home__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Footer: 2 colunas */
    .consult-footer__nav-group {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Chat: ajusta posição */
    .consult-chat {
        left: 16px;
        bottom: 100px;
    }

    .consult-chat__trigger-label { display: none; }
    .consult-chat__trigger { padding: 12px 16px; }

    /* WhatsApp: ajusta posição */
    .consult-whatsapp-float {
        bottom: 32px;
        right: 16px;
    }
}

/* ── 425px — Mobile grande ── */
@media (max-width: 425px) {

    .consult-cards-home__grid {
        grid-template-columns: 1fr;
    }

    .consult-footer__nav-group {
        grid-template-columns: 1fr;
    }

    .consult-slide__tipologia ul {
        gap: var(--esp-sm);
    }

    .consult-footer__bottom-inner {
        flex-direction: column;
        text-align: center;
    }
}

/* ── 375px — Mobile padrão ── */
@media (max-width: 375px) {

    .consult-banner__titulo h1 {
        font-size: 2rem;
    }

    .consult-banner__cta {
        padding: 12px 24px;
        font-size: 0.75rem;
    }

    .consult-chat__window {
        width: calc(100vw - 32px);
    }
}

/* ── 320px — Mobile pequeno ── */
@media (max-width: 320px) {

    :root { --container-pad: 12px; }

    .consult-banner__titulo h1 {
        font-size: 1.75rem;
    }

    .consult-header-pages__inner { height: 64px; }
    .consult-header-fixed__inner { height: 64px; }

    .consult-whatsapp-float { bottom: 20px; right: 12px; }
    .consult-chat { left: 12px; bottom: 90px; }
}

/* ════════════════════════════════════════════════════════════════
   PAGE LANÇAMENTOS — Estilos completos
   Adicionado ao newStyle.css
════════════════════════════════════════════════════════════════ */

/* ── Página principal ── */
.lanc-page {
    min-height: 100vh;
    background: var(--cor-offwhite);
}

/* ════════════════════════════════════════════════════════════════
   FILTROS
════════════════════════════════════════════════════════════════ */
.lanc-filtros {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: var(--cor-branco);
    border-bottom: 1px solid rgba(0,0,0,.08);
    padding: 12px 0;
    box-shadow: var(--sombra-sm);
}

.lanc-filtros__inner {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

/* Campo de busca */
.lanc-search {
    position: relative;
    flex: 1;
    min-width: 220px;
}

.lanc-search__icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cor-cinza);
    font-size: 0.9rem;
    pointer-events: none;
}

.lanc-search__input {
    width: 100%;
    padding: 11px 16px 11px 40px;
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    color: var(--texto-principal);
    background: var(--cor-offwhite);
    transition: border-color var(--trans-base), box-shadow var(--trans-base);
}

.lanc-search__input:focus {
    border-color: var(--cor-dourado);
    box-shadow: 0 0 0 3px rgba(201,169,110,.12);
    background: var(--cor-branco);
}

/* Sugestões de bairro */
.lanc-search__sugestoes {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: var(--cor-branco);
    border: 1px solid #e0e0e0;
    border-radius: var(--radius-md);
    box-shadow: var(--sombra-md);
    z-index: 100;
    display: none;
    overflow: hidden;
}

.lanc-search__sugestoes.is-open { display: block; }

.lanc-sugestao-item {
    padding: 10px 16px;
    font-size: var(--f-small);
    color: var(--texto-principal);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: background var(--trans-fast);
}

.lanc-sugestao-item:hover { background: var(--cor-offwhite); }
.lanc-sugestao-item i { color: var(--cor-dourado); }

/* Selects de filtro */
.lanc-filtros__selects {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.lanc-filtro-grupo { position: relative; }

.lanc-filtro-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    background: var(--cor-offwhite);
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    color: var(--texto-principal);
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--trans-base);
}

.lanc-filtro-btn:hover,
.lanc-filtro-btn.is-active {
    border-color: var(--cor-dourado);
    background: var(--cor-branco);
    color: var(--cor-dourado);
}

.lanc-filtro-btn__arrow {
    font-size: 0.7rem;
    transition: transform var(--trans-base);
}

.lanc-filtro-btn.is-active .lanc-filtro-btn__arrow {
    transform: rotate(180deg);
}

/* Dropdown */
.lanc-filtro-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 200px;
    background: var(--cor-branco);
    border: 1px solid #e0e0e0;
    border-radius: var(--radius-md);
    box-shadow: var(--sombra-md);
    padding: 8px;
    z-index: 100;
    display: none;
}

.lanc-filtro-dropdown.is-open { display: block; }

.lanc-filtro-dropdown label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    font-size: var(--f-small);
    color: var(--texto-principal);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: background var(--trans-fast);
}

.lanc-filtro-dropdown label:hover { background: var(--cor-offwhite); }
.lanc-filtro-dropdown input[type="radio"] { accent-color: var(--cor-dourado); }

/* Slider de preço */
.lanc-filtro-dropdown--preco { min-width: 280px; padding: 16px; }

.lanc-preco-labels {
    display: flex;
    justify-content: space-between;
    font-size: var(--f-small);
    font-weight: 600;
    color: var(--cor-dourado);
    margin-bottom: 12px;
}

.lanc-preco-slider {
    position: relative;
    height: 32px;
    margin-bottom: 16px;
}

.lanc-preco-slider input[type="range"] {
    position: absolute;
    width: 100%;
    height: 4px;
    background: transparent;
    pointer-events: none;
    appearance: none;
    -webkit-appearance: none;
    top: 50%;
    transform: translateY(-50%);
}

.lanc-preco-slider input[type="range"]::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--cor-dourado);
    cursor: pointer;
    pointer-events: all;
    border: 2px solid var(--cor-branco);
    box-shadow: var(--sombra-sm);
}

.lanc-preco-track {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    height: 4px;
    background: #e0e0e0;
    border-radius: 2px;
}

.lanc-preco-fill {
    position: absolute;
    height: 100%;
    background: var(--cor-dourado);
    border-radius: 2px;
}

.lanc-preco-aplicar {
    width: 100%;
    padding: 10px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--trans-base);
}

.lanc-preco-aplicar:hover { background: var(--cor-dourado-dark); }

/* Botão buscar */
.lanc-filtros__buscar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 24px;
    background: var(--cor-preto);
    color: var(--cor-branco);
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--trans-base), transform var(--trans-base);
}

.lanc-filtros__buscar:hover {
    background: var(--cor-dourado);
    transform: scale(1.02);
}

/* Pills de filtros ativos */
.lanc-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px var(--container-pad) 0;
    max-width: var(--container-max);
    margin-inline: auto;
}

.lanc-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    background: rgba(201,169,110,.12);
    border: 1px solid rgba(201,169,110,.3);
    border-radius: var(--radius-pill);
    font-size: var(--f-label);
    font-weight: 600;
    color: var(--cor-dourado-dark);
    cursor: pointer;
    transition: all var(--trans-base);
}

.lanc-pill:hover { background: rgba(201,169,110,.22); }

.lanc-pill__remove {
    font-size: 0.7rem;
    opacity: 0.6;
}


/* ════════════════════════════════════════════════════════════════
   CONTEÚDO — Grid + Mapa
════════════════════════════════════════════════════════════════ */
.lanc-conteudo {
    display: grid;
    grid-template-columns: 55fr 45fr;
    width: 100%;
    align-items: start;
}

/* Coluna dos cards */
.lanc-cards-col {
    padding: var(--esp-md) var(--esp-sm) var(--esp-xl);
    border-right: 1px solid rgba(0,0,0,.06);
}

/* Cabeçalho da listagem */
.lanc-cards-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: var(--esp-md);
    flex-wrap: wrap;
    gap: var(--esp-sm);
}

.lanc-cards-titulo {
    font-family: var(--fonte-titulo);
    font-size: clamp(1.6rem, 2.5vw, 2.2rem);
    font-weight: 300;
    color: var(--cor-preto);
    margin-bottom: 4px;
}

.lanc-cards-contador {
    font-size: var(--f-small);
    color: var(--texto-secundario);
}

.lanc-contador-num {
    font-weight: 700;
    color: var(--cor-dourado);
    font-size: 1.1rem;
    transition: all var(--trans-base);
}

.lanc-cards-acoes {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lanc-ordenar {
    padding: 8px 14px;
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    color: var(--texto-principal);
    background: var(--cor-branco);
    cursor: pointer;
    transition: border-color var(--trans-base);
}

.lanc-ordenar:focus { border-color: var(--cor-dourado); outline: none; }

/* Botão ver mapa (mobile) */
.lanc-btn-mapa {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: var(--cor-preto);
    color: var(--cor-branco);
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 500;
    cursor: pointer;
    transition: background var(--trans-base);
}

.lanc-btn-mapa:hover { background: var(--cor-dourado); }

/* ── BENTO GRID ── */
.lanc-bento {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 260px;
    gap: 14px;
}

/* Posicionamento bento via nth-child — repete a cada 8 */
.lanc-bento-card:nth-child(8n+1),
.lanc-skeleton:nth-child(8n+1)  { grid-row: span 2; }

.lanc-bento-card:nth-child(8n+4),
.lanc-bento-card:nth-child(8n+5),
.lanc-bento-card:nth-child(8n),
.lanc-skeleton:nth-child(8n+4),
.lanc-skeleton:nth-child(8n+5),
.lanc-skeleton:nth-child(8n)   { grid-column: span 2; }

/* Card premium */
.lanc-bento-card {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--cor-preto);
    cursor: pointer;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity var(--trans-slow), transform var(--trans-slow), box-shadow var(--trans-base);
}

.lanc-bento-card.is-visible { opacity: 1; transform: translateY(0); }
.lanc-bento-card:hover { box-shadow: 0 16px 48px rgba(0,0,0,.35); z-index: 2; }
.lanc-bento-card.is-highlighted { outline: 3px solid var(--cor-dourado); outline-offset: -3px; }

/* Imagem de fundo */
.lanc-bento-card__img { position: absolute; inset: 0; }

.lanc-bento-card__img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform var(--trans-slow);
}

.lanc-bento-card:hover .lanc-bento-card__img img { transform: scale(1.05); }

/* Overlay gradiente */
.lanc-bento-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.35) 45%, transparent 100%);
    transition: background var(--trans-base);
}

.lanc-bento-card:hover .lanc-bento-card__overlay {
    background: linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.5) 55%, rgba(0,0,0,.1) 100%);
}

/* Topo: badge + incorporador */
.lanc-bento-card__topo {
    position: absolute; top: 14px; left: 14px; right: 14px;
    display: flex; align-items: flex-start; justify-content: space-between;
    z-index: 2; gap: 8px;
}

/* Badges */
.lanc-badge {
    font-size: .62rem; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; padding: 4px 10px;
    border-radius: var(--radius-pill);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    flex-shrink: 0;
}

.lanc-badge--lanc  { background: rgba(255,255,255,.15); color: var(--cor-branco); border: 1px solid rgba(255,255,255,.25); }
.lanc-badge--excl  { background: rgba(201,169,110,.25); color: var(--cor-dourado-light); border: 1px solid rgba(201,169,110,.4); }
.lanc-badge--prem  { background: rgba(201,169,110,.35); color: #f0d89a; border: 1px solid rgba(201,169,110,.5); }
.lanc-badge--super { background: var(--cor-dourado); color: var(--cor-branco); }

.lanc-bento-card__inc {
    font-size: .62rem; color: rgba(255,255,255,.7);
    background: rgba(0,0,0,.45); padding: 4px 8px;
    border-radius: var(--radius-pill); backdrop-filter: blur(4px);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px;
}

/* Botões fav + share */
.lanc-bento-card__acoes {
    position: absolute; top: 50%; right: 14px;
    transform: translateY(-50%);
    display: flex; flex-direction: column; gap: 8px;
    opacity: 0; transition: opacity var(--trans-base); z-index: 3;
}

.lanc-bento-card:hover .lanc-bento-card__acoes { opacity: 1; }

.lanc-bento-card__acao {
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(0,0,0,.55); backdrop-filter: blur(8px);
    color: var(--cor-branco); font-size: .85rem;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid rgba(255,255,255,.2);
    transition: background var(--trans-fast), color var(--trans-fast), transform var(--trans-fast);
    cursor: pointer;
}

.lanc-bento-card__acao:hover { background: var(--cor-dourado); border-color: var(--cor-dourado); transform: scale(1.1); }
.lanc-bento-card__acao.is-fav { color: #ff6b6b; }

/* Rodapé com info */
.lanc-bento-card__footer {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 16px 18px; z-index: 2;
}

.lanc-bento-card__fase {
    display: block; font-size: .6rem; font-weight: 600;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--cor-dourado); margin-bottom: 4px;
}

.lanc-bento-card__bairro {
    font-size: .7rem; color: rgba(255,255,255,.6);
    letter-spacing: .04em; margin-bottom: 3px;
}

.lanc-bento-card__nome {
    font-family: var(--fonte-titulo);
    font-size: clamp(.9rem, 1.3vw, 1.15rem);
    font-weight: 400; color: var(--cor-branco);
    line-height: 1.2; margin-bottom: 6px;
}

.lanc-bento-card__nome a { color: inherit; }

.lanc-bento-card:nth-child(8n+1) .lanc-bento-card__nome {
    font-size: clamp(1.1rem, 1.8vw, 1.55rem);
}

.lanc-bento-card__tip {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px;
}

.lanc-bento-card__tip span {
    display: flex; align-items: center; gap: 4px;
    font-size: .7rem; color: rgba(255,255,255,.7);
}

.lanc-bento-card__tip i { color: var(--cor-dourado); font-size: .72rem; }

.lanc-bento-card__preco {
    font-family: var(--fonte-titulo);
    font-size: clamp(.95rem, 1.5vw, 1.15rem);
    font-weight: 400; color: var(--cor-dourado-light);
}

.lanc-bento-card__capa { position: absolute; inset: 0; z-index: 1; }

/* ── SKELETON LOADING ── */
.lanc-skeleton {
    background: var(--cor-branco);
    border-radius: var(--radius-md);
    aspect-ratio: 3/4;
    position: relative;
    overflow: hidden;
}

.lanc-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(201,169,110,.05) 0%, rgba(201,169,110,.12) 50%, rgba(201,169,110,.05) 100%);
    background-size: 200% 100%;
    animation: consult-skeleton 1.5s ease infinite;
}

/* ── ESTADO VAZIO ── */
.lanc-vazio {
    text-align: center;
    padding: var(--esp-xl) var(--esp-md);
    grid-column: 1/-1;
}

.lanc-vazio__icone { font-size: 3rem; margin-bottom: var(--esp-sm); }

.lanc-vazio__titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h3);
    font-weight: 300;
    color: var(--cor-preto);
    margin-bottom: var(--esp-xs);
}

.lanc-vazio__texto {
    font-size: var(--f-body);
    color: var(--texto-secundario);
    margin-bottom: var(--esp-md);
}

.lanc-vazio__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--trans-base);
}

.lanc-vazio__btn:hover { background: var(--cor-dourado-dark); }

/* ── LOAD MORE ── */
.lanc-loadmore {
    text-align: center;
    padding: var(--esp-lg) 0 0;
    grid-column: 1/-1;
}

.lanc-loadmore__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 36px;
    background: transparent;
    color: var(--cor-preto);
    border: 1.5px solid var(--cor-preto);
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 500;
    cursor: pointer;
    transition: all var(--trans-base);
}

.lanc-loadmore__btn:hover {
    background: var(--cor-preto);
    color: var(--cor-branco);
}

.lanc-loadmore__btn.is-loading {
    opacity: 0.6;
    cursor: wait;
}


/* ════════════════════════════════════════════════════════════════
   MAPA LEAFLET — 40% da tela, sticky
════════════════════════════════════════════════════════════════ */
.lanc-mapa-col {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.lanc-mapa-sticky {
    width: 100%;
    height: 100%;
}

.lanc-mapa {
    width: 100%;
    height: 100%;
}

/* ── Pin customizado: foto miniatura + preço ── */
/* Wrapper Leaflet — reset estilos padrão do divIcon */
.lanc-pin-marker {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.lanc-pin {
    background: var(--cor-branco);
    border: 2px solid var(--cor-dourado);
    border-radius: 10px;
    padding: 4px 8px 4px 4px;
    font-size: 11px;
    font-weight: 700;
    color: var(--cor-preto);
    white-space: nowrap;
    box-shadow: 0 2px 12px rgba(0,0,0,.15);
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

/* Seta do pin para baixo */
.lanc-pin::after {
    content: '';
    position: absolute;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 7px solid var(--cor-dourado);
}

.lanc-pin:hover,
.lanc-pin.is-active {
    background: var(--cor-dourado);
    color: var(--cor-branco);
    transform: scale(1.08);
    z-index: 999 !important;
    transform: scale(1.1);
    z-index: 999 !important;
}

.lanc-pin__thumb {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
}

/* Popup do mapa */
.leaflet-popup-content-wrapper {
    border-radius: 14px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.18) !important;
    border: 1px solid rgba(201,169,110,.2) !important;
    padding: 0 !important;
    overflow: hidden;
    width: 240px !important;
}

.leaflet-popup-content {
    margin: 0 !important;
    width: 240px !important;
}

.leaflet-popup-tip-container { display: none; }

/* ── Popup wrapper Leaflet — remove estilos padrão ── */
.lanc-popup-wrap .leaflet-popup-content-wrapper {
    padding: 0 !important;
    border-radius: var(--radius-lg) !important;
    overflow: hidden;
    border: 1px solid rgba(201,169,110,.3) !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.5) !important;
    background: transparent !important;
}

.lanc-popup-wrap .leaflet-popup-content {
    margin: 0 !important;
    width: 310px !important;
}

.lanc-popup-wrap .leaflet-popup-tip-container { display: none; }

/* Card do popup */
.lanc-popup {
    display: block;
    text-decoration: none;
    background: var(--cor-preto);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* Foto */
.lanc-popup__foto {
    width: 100%;
    height: 170px;
    overflow: hidden;
    display: block;
}

.lanc-popup__foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--trans-slow);
}

.lanc-popup:hover .lanc-popup__foto img { transform: scale(1.05); }

.lanc-popup__foto--vazia {
    width: 100%;
    height: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cor-preto-card);
    color: rgba(201,169,110,.3);
    font-size: 2rem;
}

/* Body escuro */
.lanc-popup__body {
    padding: 16px 18px 18px;
    background: var(--cor-preto);
    border-top: 1px solid rgba(201,169,110,.15);
}

.lanc-popup__bairro {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cor-dourado);
    margin-bottom: 5px;
}

.lanc-popup__nome {
    font-family: var(--fonte-titulo);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--cor-branco);
    line-height: 1.25;
    margin-bottom: 10px;
}

/* Tipologia */
.lanc-popup__tip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.lanc-popup__tip span {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    color: rgba(255,255,255,.6);
}

.lanc-popup__tip i { color: var(--cor-dourado); font-size: 0.72rem; }

/* Rodapé: preço + botão */
.lanc-popup__rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: nowrap;
}

.lanc-popup__preco {
    font-family: var(--fonte-titulo);
    font-size: 1.05rem;
    font-weight: 400;
    color: var(--cor-dourado);
    flex: 1;
    min-width: 0;
}

.lanc-popup__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border-radius: var(--radius-pill);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background var(--trans-base);
}

.lanc-popup:hover .lanc-popup__btn { background: var(--cor-dourado-dark); }


/* ════════════════════════════════════════════════════════════════
   PRONTOS — Tabs Modalidade + Badges + Preços + Status
════════════════════════════════════════════════════════════════ */

/* ── Tabs Todos / Venda / Aluguel ── */
.pront-modalidade-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: var(--esp-md);
    flex-wrap: wrap;
}

.pront-modalidade-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 20px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(0,0,0,.12);
    background: var(--cor-branco);
    font-family: var(--fonte-corpo);
    font-size: var(--f-small);
    font-weight: 500;
    color: var(--texto-secundario);
    cursor: pointer;
    transition: background var(--trans-base), border-color var(--trans-base), color var(--trans-base);
}

.pront-modalidade-tab:hover {
    border-color: var(--cor-dourado);
    color: var(--cor-dourado);
}

.pront-modalidade-tab.is-active {
    background: var(--cor-preto);
    border-color: var(--cor-preto);
    color: var(--cor-branco);
}

.pront-modalidade-tab i { font-size: 0.8rem; }

/* ── Badge Modalidade (no card) ── */
.pront-badge {
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: var(--radius-pill);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.pront-badge--venda   { background: rgba(82,168,130,.2); color: #a8f0c8; border: 1px solid rgba(82,168,130,.35); }
.pront-badge--aluguel { background: rgba(100,130,210,.2); color: #b0c4f8; border: 1px solid rgba(100,130,210,.35); }
.pront-badge--ambos   { background: rgba(201,169,110,.2); color: var(--cor-dourado-light); border: 1px solid rgba(201,169,110,.35); }

/* ── Código do imóvel no card ── */
.pront-codigo {
    font-size: 0.6rem;
    color: rgba(255,255,255,.5);
    background: rgba(0,0,0,.4);
    padding: 3px 8px;
    border-radius: var(--radius-pill);
    font-weight: 500;
    letter-spacing: 0.05em;
    backdrop-filter: blur(4px);
}

/* ── Preço de aluguel (menor, abaixo do preço de venda) ── */
.pront-preco-aluguel {
    font-family: var(--fonte-corpo);
    font-size: 0.72rem;
    color: rgba(255,255,255,.6);
    margin-top: 2px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.pront-preco-aluguel i { color: var(--cor-dourado); font-size: 0.65rem; }

/* ── Status overlay (Reservado / Vendido / Locado) ── */
.pront-status-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--cor-branco);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    z-index: 10;
    border-radius: var(--radius-lg);
    backdrop-filter: blur(2px);
}


/* ════════════════════════════════════════════════════════════════
   RESPONSIVO — PAGE LANÇAMENTOS
════════════════════════════════════════════════════════════════ */
@media (max-width: 1280px) {
    .lanc-conteudo { grid-template-columns: 60fr 40fr; }
    .lanc-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
}

@media (max-width: 1024px) {
    .lanc-conteudo { grid-template-columns: 1fr; }
    .lanc-mapa-col { display: none; }
    .lanc-mapa-col.is-open {
        display: block;
        position: fixed;
        inset: 0;
        z-index: var(--z-modal);
    }
    .lanc-btn-mapa { display: flex; }
    .lanc-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
}

@media (max-width: 768px) {
    .lanc-bento { grid-template-columns: 1fr; grid-auto-rows: 240px; }
    .lanc-cards-col { padding: var(--esp-sm); }
}
/* Sugestões antigas do filtro-banner removidas — substituído pela busca live */


/* ════════════════════════════════════════════════════════════════
   [20] IDIOMAS + DARK MODE
════════════════════════════════════════════════════════════════ */

/* ── Botões de idioma ── */
.consult-idiomas {
    display: flex;
    align-items: center;
    gap: 2px;
}

.consult-idioma-btn {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    border-radius: 50%;
    background: transparent;
    border: none;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity var(--trans-base), transform var(--trans-base), background var(--trans-base);
}

.consult-idioma-btn:hover { opacity: 1; transform: scale(1.15); }
.consult-idioma-btn.is-active { opacity: 1; background: rgba(201,169,110,.15); }

/* ── Separador vertical ── */
.consult-header-sep {
    display: block;
    width: 1px;
    height: 20px;
    background: rgba(255,255,255,.2);
    margin: 0 4px;
}

/* ── Toggle dark/light mode ── */
.consult-theme-toggle {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 50%;
    color: rgba(255,255,255,.75);
    font-size: 0.9rem;
    cursor: pointer;
    transition: all var(--trans-base);
    position: relative;
}

.consult-theme-toggle:hover {
    background: rgba(201,169,110,.15);
    border-color: var(--cor-dourado);
    color: var(--cor-dourado);
}

/* Ícone sol (modo dark ativo — clica para voltar ao light) */
.consult-theme-toggle__sun { display: none; }
.consult-theme-toggle__moon { display: block; }

/* Quando dark mode ativo — mostra sol */
[data-theme="dark"] .consult-theme-toggle__sun { display: block; }
[data-theme="dark"] .consult-theme-toggle__moon { display: none; }


/* ════════════════════════════════════════════════════════════════
   DARK MODE — Variáveis invertidas
   Aplicado via [data-theme="dark"] no <html>
════════════════════════════════════════════════════════════════ */
[data-theme="dark"] {
    --cor-offwhite:     #0D0D0D;
    --cor-branco:       #141414;
    --cor-preto:        #F7F5F2;
    --cor-preto-soft:   #E8E8E8;
    --texto-principal:  #F0EDE8;
    --texto-secundario: #A0A0A0;
    --cor-cinza-borda:  #2A2A2A;
}

/* Ajustes específicos no dark mode */
[data-theme="dark"] body {
    background: #0D0D0D;
    color: var(--texto-principal);
}

[data-theme="dark"] .consult-cards-home {
    background: #111111;
}

[data-theme="dark"] .consult-card {
    background: #1A1A1A;
    border-color: rgba(255,255,255,.06);
}

[data-theme="dark"] .consult-quemsomos {
    background: #111111;
}

[data-theme="dark"] .consult-quemsomos__titulo,
[data-theme="dark"] .consult-quemsomos__paragrafos p {
    color: var(--texto-principal);
}

[data-theme="dark"] .consult-seo {
    background: #0D0D0D;
    border-color: rgba(201,169,110,.1);
}

[data-theme="dark"] .consult-incorporadoras {
    background: #111111;
}

[data-theme="dark"] .consult-section-titulo {
    color: var(--cor-offwhite);
}

[data-theme="dark"] .lanc-filtros {
    background: #141414;
    border-color: rgba(255,255,255,.06);
}

[data-theme="dark"] .lanc-search__input {
    background: #1A1A1A;
    border-color: #2A2A2A;
    color: var(--texto-principal);
}

[data-theme="dark"] .lanc-filtro-btn {
    background: #1A1A1A;
    border-color: #2A2A2A;
    color: var(--texto-principal);
}

[data-theme="dark"] .lanc-filtro-dropdown {
    background: #1A1A1A;
    border-color: #2A2A2A;
}

[data-theme="dark"] .lanc-filtro-dropdown label {
    color: var(--texto-principal);
}

[data-theme="dark"] .lanc-cards-titulo {
    color: var(--texto-principal);
}

[data-theme="dark"] .consult-footer {
    background: #080808;
}

/* Transição suave ao trocar tema */
body,
.consult-cards-home,
.consult-card,
.consult-quemsomos,
.consult-seo,
.consult-incorporadoras,
.lanc-filtros,
.lanc-card,
.consult-footer {
    transition: background-color var(--trans-slow), color var(--trans-slow), border-color var(--trans-slow);
}


/* ════════════════════════════════════════════════════════════════
   QUEM SOMOS — Versão com fotos dos sócios
════════════════════════════════════════════════════════════════ */

/* Fotos dos sócios */
.consult-quemsomos__fotos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
}

.consult-quemsomos__foto {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,.15);
}

.consult-quemsomos__foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.consult-quemsomos__foto--thiago {
    width: 100%;
    height: 520px;
}

.consult-quemsomos__foto--leo {
    width: 100%;
    height: 520px;
    margin-top: 40px; /* offset elegante */
}

.consult-quemsomos__foto figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px 24px;
    background: linear-gradient(to top, rgba(13,13,13,.85) 0%, transparent 100%);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.consult-quemsomos__foto figcaption strong {
    font-family: var(--fonte-titulo);
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--cor-branco);
}

.consult-quemsomos__foto figcaption span {
    font-size: var(--f-small);
    color: var(--cor-dourado);
    letter-spacing: 0.06em;
}

/* Assinaturas dos sócios */
.consult-quemsomos__socios {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 24px 0;
    padding: 20px 0;
    border-top: 1px solid rgba(0,0,0,.08);
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.consult-quemsomos__socio {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.consult-quemsomos__socio-nome {
    font-family: var(--fonte-titulo);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--cor-preto);
}

.consult-quemsomos__socio-cargo {
    font-size: var(--f-label);
    color: var(--cor-dourado);
    letter-spacing: 0.05em;
}

.consult-quemsomos__socio-sep {
    width: 1px;
    height: 40px;
    background: rgba(0,0,0,.12);
}

/* Dark mode */
[data-theme="dark"] .consult-quemsomos__socios {
    border-color: rgba(255,255,255,.08);
}

[data-theme="dark"] .consult-quemsomos__socio-nome {
    color: var(--texto-principal);
}

@media (max-width: 768px) {
    .consult-quemsomos__foto--thiago { height: 380px; }
    .consult-quemsomos__socios { flex-direction: column; align-items: flex-start; gap: 12px; }
    .consult-quemsomos__socio-sep { width: 40px; height: 1px; }
}


/* ════════════════════════════════════════════════════════════════
   [20] SEÇÃO BAIRROS — Home
   Opção A: Barra da Tijuca em destaque (span 2 linhas)
   + 4 cards menores em grid 2×2
════════════════════════════════════════════════════════════════ */
.consult-bairros {
    padding: var(--esp-xl) 0;
    background: var(--cor-offwhite);
}

/* Cabeçalho da seção */
.consult-bairros__header {
    text-align: center;
    margin-bottom: var(--esp-lg);
}

.consult-bairros__titulo {
    font-family: var(--fonte-titulo);
    font-size: var(--f-h1);
    font-weight: 300;
    color: var(--texto-principal);
    line-height: 1.15;
    margin-bottom: var(--esp-sm);
}

.consult-bairros__titulo em {
    font-style: italic;
    color: var(--cor-dourado);
}

.consult-bairros__subtitulo {
    font-size: var(--f-body);
    color: var(--texto-secundario);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

/* Grid principal — Barra grande à esquerda, 2×2 à direita */
.consult-bairros__grid {
    display: grid;
    grid-template-columns: 1.55fr 1fr 1fr;
    grid-template-rows: 240px 240px;
    gap: 12px;
}

/* Card grande — span 2 linhas */
.consult-bairro-card--grande {
    grid-row: span 2;
}

/* ── Card base ── */
.consult-bairro-card {
    position: relative;
    display: block;
    border-radius: var(--radius-lg);
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    background: var(--cor-preto);
}

.consult-bairro-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.88;
    transition: transform var(--trans-slow), opacity var(--trans-base);
}

.consult-bairro-card:hover img {
    transform: scale(1.05);
    opacity: 0.75;
}

/* Gradiente de baixo para cima */
.consult-bairro-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.8) 0%, rgba(0,0,0,.1) 55%, transparent 100%);
    z-index: 1;
    transition: opacity var(--trans-base);
}

/* Body: nome + zona + botão */
.consult-bairro-card__body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 18px 20px;
    z-index: 2;
}

.consult-bairro-card__info {
    margin-bottom: 12px;
}

.consult-bairro-card__nome {
    font-family: var(--fonte-titulo);
    font-size: clamp(1.3rem, 2vw, 1.8rem);
    font-weight: 400;
    color: var(--cor-branco);
    line-height: 1.1;
    margin-bottom: 3px;
    text-shadow: 0 2px 8px rgba(0,0,0,.4);
}

.consult-bairro-card--grande .consult-bairro-card__nome {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.consult-bairro-card__zona {
    font-size: var(--f-small);
    color: rgba(255,255,255,.7);
    font-weight: 300;
    letter-spacing: 0.03em;
}

/* Botão "Ver imóveis →" */
.consult-bairro-card__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--radius-pill);
    padding: 8px 8px 8px 16px;
    transition: background var(--trans-base), border-color var(--trans-base);
}

.consult-bairro-card:hover .consult-bairro-card__btn {
    background: rgba(201,169,110,.25);
    border-color: rgba(201,169,110,.5);
}

.consult-bairro-card__btn span {
    font-size: var(--f-small);
    font-weight: 500;
    color: var(--cor-branco);
    letter-spacing: 0.04em;
}

.consult-bairro-card__btn-arrow {
    width: 28px;
    height: 28px;
    background: var(--cor-branco);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cor-preto);
    font-size: 0.75rem;
    transition: background var(--trans-base), color var(--trans-base), transform var(--trans-base);
    flex-shrink: 0;
}

.consult-bairro-card:hover .consult-bairro-card__btn-arrow {
    background: var(--cor-dourado);
    color: var(--cor-branco);
    transform: translateX(3px);
}

/* ── Responsivo ── */
@media (max-width: 1024px) {
    .consult-bairros__grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 280px 200px 200px;
    }
    .consult-bairro-card--grande {
        grid-column: span 2;
        grid-row: span 1;
    }
}

@media (max-width: 600px) {
    .consult-bairros__grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 220px 160px 160px;
        gap: 8px;
    }
    .consult-bairro-card--grande {
        grid-column: span 2;
    }
    .consult-bairro-card__btn span { display: none; }
    .consult-bairro-card__btn { justify-content: flex-end; padding: 6px; }
}


/* ════════════════════════════════════════════════════════════════
   [21] BARRA DE BUSCA — Página Lançamentos (estilo Google)
════════════════════════════════════════════════════════════════ */
.lanc-busca-bar {
    background: var(--cor-offwhite);
    padding: 16px 0 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
    position: sticky;
    top: 0;
    z-index: 90;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}

.lanc-busca-bar__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
}

.lanc-busca-google {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    background: var(--cor-branco);
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    padding: 0 16px 0 44px;
    height: 52px;
    transition: border-color var(--trans-base), box-shadow var(--trans-base);
}

.lanc-busca-google:focus-within {
    border-color: var(--cor-dourado);
    box-shadow: 0 0 0 3px rgba(201,169,110,.12);
}

.lanc-busca-google__icon {
    position: absolute;
    left: 16px;
    color: var(--texto-secundario);
    font-size: 1rem;
    pointer-events: none;
}

.lanc-busca-google__input {
    flex: 1;
    background: transparent;
    font-size: var(--f-body);
    color: var(--texto-principal);
    height: 100%;
    border: none;
    outline: none;
    font-family: var(--fonte-corpo);
}

.lanc-busca-google__input::placeholder { color: var(--texto-secundario); }

.lanc-busca-google__sugestoes {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: var(--cor-branco);
    border: 1px solid #e0e0e0;
    border-radius: var(--radius-md);
    box-shadow: var(--sombra-md);
    z-index: 100;
    display: none;
    overflow: hidden;
}

.lanc-busca-google__sugestoes.is-open { display: block; }

.lanc-sugestao-item {
    padding: 10px 16px;
    font-size: var(--f-small);
    color: var(--texto-principal);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background var(--trans-fast);
    font-family: var(--fonte-corpo);
}

.lanc-sugestao-item:hover { background: var(--cor-offwhite); }
.lanc-sugestao-item i { color: var(--cor-dourado); font-size: 0.8rem; }

.lanc-busca-filtros-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
    height: 52px;
    background: var(--cor-branco);
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    font-weight: 500;
    color: var(--texto-principal);
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--trans-base);
    position: relative;
    font-family: var(--fonte-corpo);
}

.lanc-busca-filtros-btn:hover { border-color: var(--cor-dourado); color: var(--cor-dourado); }
.lanc-busca-filtros-btn.is-active { background: var(--cor-preto); border-color: var(--cor-preto); color: var(--cor-branco); }

.lanc-filtros-count {
    position: absolute;
    top: -6px; right: -6px;
    width: 18px; height: 18px;
    background: var(--cor-dourado);
    color: var(--cor-branco);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lanc-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 0 var(--container-pad) 8px;
    max-width: var(--container-max);
    margin-inline: auto;
}

.lanc-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    background: rgba(201,169,110,.12);
    border: 1px solid rgba(201,169,110,.3);
    border-radius: var(--radius-pill);
    font-size: var(--f-label);
    font-weight: 600;
    color: var(--cor-dourado-dark);
    cursor: pointer;
    transition: all var(--trans-base);
}

.lanc-pill:hover { background: rgba(201,169,110,.22); }
.lanc-pill__remove { font-size: 0.7rem; opacity: 0.6; }

@media (max-width: 600px) {
    .lanc-busca-bar__inner { flex-direction: column; }
    .lanc-busca-filtros-btn { width: 100%; justify-content: center; }
}


/* ════════════════════════════════════════════════════════════════
   [22] MODAL DE FILTROS — Lançamentos
════════════════════════════════════════════════════════════════ */
.lanc-modal-filtros {
    position: fixed;
    inset: 0;
    z-index: 999;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--trans-base);
}

.lanc-modal-filtros.is-open { pointer-events: all; opacity: 1; }

.lanc-modal-filtros__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
    backdrop-filter: blur(4px);
}

.lanc-modal-filtros__box {
    position: relative;
    z-index: 1;
    background: var(--cor-branco);
    border-radius: 24px 24px 0 0;
    width: 100%;
    max-width: 560px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    transition: transform var(--trans-slow);
}

.lanc-modal-filtros.is-open .lanc-modal-filtros__box { transform: translateY(0); }

.lanc-modal-filtros__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid #f0f0f0;
}

.lanc-modal-filtros__titulo {
    font-family: var(--fonte-titulo);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--cor-preto);
}

.lanc-modal-filtros__close {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cor-offwhite);
    border: none; border-radius: 50%;
    font-size: 1rem; color: var(--texto-principal);
    cursor: pointer; transition: background var(--trans-base);
}

.lanc-modal-filtros__close:hover { background: #e0e0e0; }

.lanc-modal-filtros__body { flex: 1; overflow-y: auto; padding: 0 24px; }

.lanc-mf-grupo { padding: 20px 0; border-bottom: 1px solid #f5f5f5; }
.lanc-mf-grupo:last-child { border-bottom: none; }
.lanc-mf-titulo { font-size: var(--f-body); font-weight: 600; color: var(--cor-preto); margin-bottom: 4px; }
.lanc-mf-sub { font-size: var(--f-small); color: var(--texto-secundario); margin-bottom: 14px; }

.lanc-mf-pills { display: flex; flex-wrap: wrap; gap: 8px; }

.lanc-mf-pill {
    padding: 8px 18px;
    border: 1.5px solid #e0e0e0;
    border-radius: var(--radius-pill);
    font-size: var(--f-small);
    color: var(--texto-principal);
    background: var(--cor-branco);
    cursor: pointer;
    transition: all var(--trans-base);
    font-family: var(--fonte-corpo);
}

.lanc-mf-pill:hover { border-color: var(--cor-preto); }
.lanc-mf-pill.is-active { background: var(--cor-preto); border-color: var(--cor-preto); color: var(--cor-branco); }

.lanc-mf-preco-labels {
    display: flex; justify-content: space-between; align-items: center;
    font-size: var(--f-small); font-weight: 600; color: var(--cor-preto);
    margin-bottom: 16px; gap: 8px;
}

.lanc-mf-slider-wrap { position: relative; height: 36px; margin-bottom: 8px; }

.lanc-mf-slider-wrap input[type="range"] {
    position: absolute; width: 100%; height: 4px;
    background: transparent; pointer-events: none;
    appearance: none; -webkit-appearance: none;
    top: 50%; transform: translateY(-50%);
}

.lanc-mf-slider-wrap input[type="range"]::-webkit-slider-thumb {
    appearance: none; -webkit-appearance: none;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--cor-preto); cursor: pointer;
    pointer-events: all; border: 2px solid var(--cor-branco);
    box-shadow: var(--sombra-sm);
}

.lanc-mf-track { position: absolute; top: 50%; transform: translateY(-50%); width: 100%; height: 4px; background: #e0e0e0; border-radius: 2px; }
.lanc-mf-fill { position: absolute; height: 100%; background: var(--cor-preto); border-radius: 2px; }
.lanc-mf-preco-range { display: flex; justify-content: space-between; font-size: var(--f-label); color: var(--texto-secundario); }

.lanc-modal-filtros__footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 24px; border-top: 1px solid #f0f0f0;
}

.lanc-mf-limpar {
    font-size: var(--f-small); color: var(--texto-principal);
    text-decoration: underline; background: none; border: none;
    cursor: pointer; font-family: var(--fonte-corpo);
}

.lanc-mf-aplicar {
    padding: 14px 32px; background: var(--cor-preto); color: var(--cor-branco);
    border: none; border-radius: var(--radius-pill);
    font-size: var(--f-small); font-weight: 700; letter-spacing: 0.08em;
    cursor: pointer; font-family: var(--fonte-corpo); transition: background var(--trans-base);
}

.lanc-mf-aplicar:hover { background: var(--cor-dourado); }

@media (min-width: 768px) {
    .lanc-modal-filtros { align-items: center; }
    .lanc-modal-filtros__box { border-radius: 24px; max-height: 85vh; }
}
