/* ============================================================
   A+ BOUTIQUE — newproject.css
   Escopo : Header universal + Página Lançamentos (index.php)
   Prefixo: np- (new project)
   Paleta :
     Navy   #191F39
     Teal   #06465E
     Cream  #EFE3C9
     Gold   #9C8758
     BG     #F7F4EF
     Muted  #7A786B
   Fontes :
     Serif  Playfair Display
     Sans   Lato
   ─────────────────────────────────────────────────────────
   ÍNDICE
   [01] Variáveis & base
   [02] Header universal
   [03] Seção — título + filtro (boutiqueFiltroLancamento)
   [04] Filtro de busca
   [05] Grid de cards (lancamentosCards)
   [06] Card individual (lancamentoCard)
   [07] Botão "Ver mais"
   [08] Seção — Imóveis similares (cardimbdisponiveis)
   [09] Carrossel (.card do imbcarrousel.js)
   [10] WhatsApp flutuante
   [11] Animações de entrada (reveal)
============================================================ */


/* ============================================================
   [01] VARIÁVEIS & BASE
============================================================ */
:root {
    --np-navy     : #191F39;
    --np-teal     : #06465E;
    --np-cream    : #EFE3C9;
    --np-gold     : #9C8758;
    --np-bg       : #F7F4EF;
    --np-white    : #FAF7F1;
    --np-text     : #1A1A1A;
    --np-muted    : #7A786B;
    --np-border   : rgba(0, 0, 0, 0.09);
    --np-serif    : 'Playfair Display', serif;
    --np-sans     : 'Lato', sans-serif;
    --np-ease     : cubic-bezier(0.4, 0, 0.2, 1);
    --np-radius   : 12px;
    --np-shadow   : 0 8px 40px rgba(25, 31, 57, 0.12);
    --np-header-h : 76px;
}

/* Garante que body e html não tenham fundo vermelho do legado */
html,
body {
    background-color: var(--np-bg);
    font-family      : var(--np-sans);
}


/* ============================================================
   [02] HEADER UNIVERSAL
   Seletor: .np-header
   Usado por: header.php (todas as páginas internas)
   Fundo sólido — sem glassmorphism (reservado para a home)
============================================================ */
.np-header {
    position        : sticky;
    top             : 0;
    left            : 0;
    right           : 0;
    z-index         : 1000;
    width           : 100%;
    background-color: var(--np-navy);
    border-bottom   : 1px solid rgba(239, 227, 201, 0.08);
    box-shadow      : 0 2px 24px rgba(0, 0, 0, 0.22);
}

.np-header-inner {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    max-width      : 1400px;
    margin         : 0 auto;
    padding        : 0 40px;
    height         : var(--np-header-h);
    gap            : 32px;
    margin-top: -52px;
}

/* ── Logo ── */
.np-header-logo {
    flex-shrink: 0;
    line-height: 0;
}

.np-header-logo img {
    height    : 48px;
    width     : auto;
    object-fit: contain;
    display   : block;
    transition: opacity 0.3s ease;
}

.np-header-logo img:hover {
    opacity: 0.85;
}

/* ── Nav desktop ── */
.np-header-nav {
    flex: 1;
}

.np-header-nav ul {
    display        : flex;
    list-style     : none;
    gap            : 36px;
    justify-content: center;
    padding        : 0;
    margin         : 0;
}

.np-header-nav ul li a {
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 400;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color         : rgba(239, 227, 201, 0.75);
    text-decoration: none;
    position      : relative;
    padding-bottom: 4px;
    transition    : color 0.3s ease;
}

/* Underline animado no hover */
.np-header-nav ul li a::after {
    content   : '';
    position  : absolute;
    bottom    : 0;
    left      : 0;
    width     : 0;
    height    : 1px;
    background: var(--np-cream);
    transition: width 0.35s var(--np-ease);
}

.np-header-nav ul li a:hover {
    color: var(--np-cream);
}

.np-header-nav ul li a:hover::after,
.np-header-nav ul li a.np-nav-active::after {
    width: 100%;
}

.np-header-nav ul li a.np-nav-active {
    color      : var(--np-cream);
    font-weight: 700;
}

/* ── CTA Anunciar ── */
.np-header-cta {
    flex-shrink: 0;
}

.np-btn-anunciar {
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color         : var(--np-cream);
    text-decoration: none;
    border        : 1px solid rgba(239, 227, 201, 0.5);
    padding       : 10px 22px;
    border-radius : 40px;
    transition    : background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    white-space   : nowrap;
    display       : inline-block;
}

.np-btn-anunciar:hover {
    background  : var(--np-cream);
    color       : var(--np-navy);
    border-color: var(--np-cream);
}

/* ── WhatsApp flutuante ── */
.np-whatsapp-float {
    position      : fixed;
    bottom        : 32px;
    right         : 32px;
    z-index       : 999;
    width         : 56px;
    height        : 56px;
    border-radius : 50%;
    background    : #25D366;
    color         : #fff;
    display       : flex;
    align-items   : center;
    justify-content: center;
    font-size     : 28px;
    text-decoration: none;
    box-shadow    : 0 4px 20px rgba(0, 0, 0, 0.25);
    transition    : transform 0.3s ease;
}

.np-whatsapp-float:hover {
    transform: scale(1.1);
}


/* ============================================================
   [03] SEÇÃO TÍTULO + FILTRO
   Seletor: section#boutiqueFiltroLancamento
   O h2 original é substituído visualmente pelo novo padrão
============================================================ */
section#boutiqueFiltroLancamento {
    background: var(--np-white);
    padding   : 100px 40px 32px;  /* top: dá respiro do header fixo */
}

/* Wrapper interno centralizado */
section#boutiqueFiltroLancamento > .containerCards {
    max-width: 1320px;
    margin   : 0 auto;
}

/* Título principal da seção */
section#boutiqueFiltroLancamento > h2 {
    font-family  : var(--np-serif);
    font-size    : clamp(28px, 3.5vw, 48px);
    font-weight  : 500;
    color        : var(--np-navy);
    text-align   : center;
    line-height  : 1.25;
    margin-bottom: 12px;
    max-width    : 1320px;
    margin-left  : auto;
    margin-right : auto;
    padding      : 0 40px;
}

/* Span dentro do h2: " em Rio de Janeiro" */
section#boutiqueFiltroLancamento > h2 span.bairro__filtro__lancamento {
    font-family: var(--np-serif);
    font-style : italic;
    color      : var(--np-teal);
}

/* Oculta o botão de busca avançada (comentado no HTML mas por segurança) */
section#boutiqueFiltroLancamento div.botaoSearch {
    display: none;
}


/* ============================================================
   [04] FILTRO DE BUSCA
   Seletor: section.filtro-imovel > .filtro-wrapper > form#formFiltro
============================================================ */
section.filtro-imovel {
    max-width    : 1320px;
    margin       : 0 auto 16px;   /* reduz espaço abaixo do filtro */
}

.filtro-wrapper {
    width: 100%;
}

form#formFiltro {
    display      : flex;
    align-items  : center;
    gap          : 10px;
    background   : #fff;
    border       : 1.5px solid var(--np-border);
    border-radius: 14px;
    padding      : 10px 12px;
    box-shadow   : var(--np-shadow);
    flex-wrap    : wrap;
}

/* Input de busca por bairro */
div.input__lancamento__filtro {
    flex       : 2;
    min-width  : 200px;
    display    : flex;
    align-items: center;
    gap        : 10px;
    padding    : 8px 16px;
    border-right: 1px solid var(--np-border);
}

input#buscaBairro {
    flex       : 1;
    border     : none;
    outline    : none;
    background : transparent;
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : var(--np-text);
}

input#buscaBairro::placeholder {
    color      : #b0b0b0;
    font-weight: 300;
}

/* Ícones geo/mic */
div.geo__phone__botoes {
    display    : flex;
    align-items: center;
    gap        : 10px;
}

div.geo__phone__botoes i {
    font-size : 16px;
    color     : var(--np-teal);
    cursor    : pointer;
    transition: color 0.2s ease;
}

div.geo__phone__botoes i:hover {
    color: var(--np-navy);
}

/* Selects */
form#formFiltro select {
    flex       : 1;
    min-width  : 120px;
    border     : none;
    outline    : none;
    background : transparent;
    font-family: var(--np-sans);
    font-size  : 14px;
    color      : var(--np-text);
    cursor     : pointer;
    padding    : 8px 12px;
    appearance : none;
    -webkit-appearance: none;
    background-image   : url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2306465E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat  : no-repeat;
    background-position: right 8px center;
    padding-right      : 28px;
    border-left        : 1px solid var(--np-border);
}

/* Botão buscar */
button.botao-busca {
    height        : 52px;
    width         : 52px;
    border-radius : 10px;
    background    : var(--np-teal);
    border        : none;
    color         : #fff;
    font-size     : 18px;
    cursor        : pointer;
    display       : flex;
    align-items   : center;
    justify-content: center;
    flex-shrink   : 0;
    transition    : background 0.3s ease;
}

button.botao-busca:hover {
    background: var(--np-navy);
}


/* ============================================================
   [05] GRID DE CARDS
   Seletor: div.lancamentosCards
============================================================ */
div.lancamentosCards {
    display              : grid;
    grid-template-columns: repeat(2, 1fr);
    gap                  : 20px;
    max-width            : 1320px;
    margin               : 0 auto;
}

/* Mensagem de loading/vazio */
div.lancamentosCards > p {
    grid-column: 1 / -1;
    text-align : center;
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : var(--np-muted);
    padding    : 60px 0;
}


/* ============================================================
   [06] CARD INDIVIDUAL
   Seletor: div.lancamentoCard
   Visual: overlay sobre imagem (igual à home)
============================================================ */
div.lancamentoCard {
    position     : relative;
    border-radius: var(--np-radius);
    overflow     : hidden;
    height       : 380px;
    cursor       : pointer;
    display      : block;
    background   : var(--np-navy);
}

/* Animação de escala na imagem ao hover */
div.lancamentoCard figure {
    position: absolute;
    inset   : 0;
    margin  : 0;
    padding : 0;
}

div.lancamentoCard figure img {
    width     : 100%;
    height    : 100%;
    object-fit: cover;
    display   : block;
    transition: transform 0.75s var(--np-ease);
}

div.lancamentoCard:hover figure img {
    transform: scale(1.06);
}

/* Overlay gradiente escuro na base do card */
div.lancamentoCard::after {
    content   : '';
    position  : absolute;
    inset     : 0;
    background: linear-gradient(
        180deg,
        rgba(25, 31, 57, 0.05) 0%,
        rgba(25, 31, 57, 0.15) 35%,
        rgba(25, 31, 57, 0.82) 100%
    );
    transition: background 0.4s var(--np-ease);
    z-index   : 1;
}

div.lancamentoCard:hover::after {
    background: linear-gradient(
        180deg,
        rgba(25, 31, 57, 0.10) 0%,
        rgba(25, 31, 57, 0.25) 35%,
        rgba(25, 31, 57, 0.90) 100%
    );
}

/* Detalhes do card: posicionados sobre o overlay */
div.lancamentoCard div.cardDetalhes {
    position: absolute;
    bottom  : 0;
    left    : 0;
    right   : 0;
    padding : 24px;
    z-index : 2;
}

/* Badge bairro */
div.lancamentoBairro {
    margin-bottom: 6px;
}

p.bairro_destaque {
    display       : inline-block;
    font-family   : var(--np-sans);
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color         : rgba(239, 227, 201, 0.85);
    margin        : 0;
}

/* Título do empreendimento */
h3.card__empreendimento {
    font-family  : var(--np-serif);
    font-size    : 22px;
    font-weight  : 500;
    color        : #fff;
    line-height  : 1.25;
    margin       : 0 0 8px;
    text-decoration: none;
}

div.lancamentoCard a {
    text-decoration: none;
}

/* Endereço */
p.card__endereco__empreendimento {
    font-family  : var(--np-sans);
    font-size    : 13px;
    color        : rgba(255, 255, 255, 0.70);
    display      : flex;
    align-items  : center;
    gap          : 6px;
    margin       : 0 0 12px;
    line-height  : 1.4;
    text-decoration: none;
}

p.card__endereco__empreendimento i {
    font-size  : 13px;
    color      : var(--np-cream);
    flex-shrink: 0;
}

/* Oculta o span de tipo (legado) */
span.tipo__imovel__none {
    display: none;
}

/* Lista de specs: quartos, banheiros, área, vagas */
div.cardDetalhes nav {
    width : 100%;
    margin: 0;
}

div.cardDetalhes nav ul {
    display    : flex;
    align-items: center;
    flex-wrap  : wrap;
    gap        : 14px;
    padding    : 0;
    margin     : 0;
    list-style : none;
}

div.cardDetalhes nav ul li {
    display    : flex;
    align-items: center;
    gap        : 6px;
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : rgba(255, 255, 255, 0.80);
}

div.cardDetalhes nav ul li i {
    font-size : 13px;
    color     : var(--np-cream);
    flex-shrink: 0;
}


/* ============================================================
   [07] BOTÃO "VER MAIS"
   Seletor: button#btnVerMais
============================================================ */
button#btnVerMais,
.botao-ver-mais {
    display       : block;
    margin        : 52px auto 0;
    padding       : 16px 48px;
    border        : 1.5px solid var(--np-teal);
    border-radius : 40px;
    background    : transparent;
    font-family   : var(--np-sans);
    font-size     : 14px;
    font-weight   : 600;
    letter-spacing: 0.5px;
    color         : var(--np-teal);
    cursor        : pointer;
    transition    : background 0.3s ease, color 0.3s ease;
}

button#btnVerMais:hover,
.botao-ver-mais:hover {
    background: var(--np-teal);
    color     : #fff;
}


/* ============================================================
   [08] SEÇÃO IMÓVEIS SIMILARES
   Seletor: section#cardimbdisponiveis
============================================================ */
section#cardimbdisponiveis {
    background: var(--np-bg);
    padding   : 88px 40px;
    overflow  : hidden;
}

/* Cabeçalho da seção */
div.cardimb__titulo {
    max-width    : 1320px;
    margin       : 0 auto 40px;
}

div.cardimb__titulo h2 {
    font-family: var(--np-serif);
    font-size  : clamp(28px, 3.5vw, 44px);
    font-weight: 500;
    color      : var(--np-navy);
    line-height: 1.2;
}

div.cardimb__titulo h2 em {
    font-style: italic;
    color     : var(--np-teal);
}

/* Container do carrossel */
div.imb__disponiveis__container {
    max-width: 1320px;
    margin   : 0 auto;
    overflow : hidden;
    position : relative;
}


/* ============================================================
   [09] CARDS DO CARROSSEL (imbcarrousel.js)
   Seletor: .carousel-track > .card
   Mantém compatibilidade com o JS existente
============================================================ */
.carousel-track {
    display   : flex;
    gap       : 20px;
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Cada card: 3 por vez no desktop */
.carousel-track .card {
    flex         : 0 0 calc(33.333% - 14px);
    border-radius: var(--np-radius);
    overflow     : hidden;
    cursor       : pointer;
    background   : var(--np-white);
    box-shadow   : 0 2px 16px rgba(0, 0, 0, 0.07);
    transition   : transform 0.35s var(--np-ease), box-shadow 0.35s var(--np-ease);
    /* Remove shadow do legado */
    box-shadow   : 0 2px 20px rgba(25, 31, 57, 0.08);
    text-decoration: none;
}

.carousel-track .card:hover {
    transform : translateY(-5px);
    box-shadow: 0 12px 36px rgba(25, 31, 57, 0.15);
}

.carousel-track .card img {
    width     : 100%;
    height    : 220px;
    object-fit: cover;
    display   : block;
}

.carousel-track .card .card-content {
    padding: 20px 22px 22px;
}

.carousel-track .card .card-content h3 {
    font-family  : var(--np-serif);
    font-size    : 17px;
    font-weight  : 500;
    color        : var(--np-navy);
    margin-bottom: 6px;
    line-height  : 1.3;
}

.carousel-track .card .card-content p {
    font-family  : var(--np-sans);
    font-size    : 13px;
    color        : var(--np-muted);
    margin-bottom: 14px;
    line-height  : 1.5;
}

/* Nav de specs dentro do card do carrossel */
.carousel-track .card .card-content nav {
    display  : flex;
    flex-wrap: wrap;
    gap      : 12px;
    padding  : 0;
    margin   : 0;
    list-style: none;
}

.carousel-track .card .card-content nav li {
    display    : flex;
    align-items: center;
    gap        : 5px;
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : var(--np-muted);
    list-style : none;
}

.carousel-track .card .card-content nav li i {
    font-size: 13px;
    color    : var(--np-teal);
}


/* ============================================================
   [10] WHATSAPP FLUTUANTE
   (já definido em [02] como .np-whatsapp-float)
   Pulsate animation mantida para o id #chat-toggle-btn
============================================================ */
#chat-toggle-btn.np-whatsapp-float {
    animation: npPulsate 2s ease-in-out infinite;
}

@keyframes npPulsate {
    0%, 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55); }
    50%       { box-shadow: 0 0 0 12px rgba(37, 211, 102, 0); }
}


/* ============================================================
   [11] ANIMAÇÕES DE ENTRADA (REVEAL ON SCROLL)
   Classe .np-reveal adicionada via JS no index.php
============================================================ */
.np-reveal {
    opacity  : 0;
    transform: translateY(28px);
    transition: opacity 0.65s var(--np-ease),
                transform 0.65s var(--np-ease);
}

.np-reveal.visible {
    opacity  : 1;
    transform: translateY(0);
}


/* ============================================================
   PRONTOS — CARDS OVERLAY (estilo lançamentos + preço destaque)
   Transforma o card branco em overlay sobre imagem
   Mantém HTML original intacto
============================================================ */

/* ── Card: posição relativa + altura fixa ── */
section#avulsosMapa .avulso_card {
    position      : relative !important;
    height        : 340px !important;
    overflow      : hidden !important;
    border-radius : var(--np-radius) !important;
    border        : none !important;
    background    : var(--np-navy) !important;
    display       : block !important;
}

/* ── Carrossel: fundo absoluto cobrindo card inteiro ── */
section#avulsosMapa .avulsoCarrousel {
    position: absolute !important;
    inset   : 0 !important;
    height  : 100% !important;
    width   : 100% !important;
}

section#avulsosMapa .avulsoCarrousel figure {
    position: absolute !important;
    inset   : 0 !important;
    height  : 100% !important;
    margin  : 0 !important;
}

section#avulsosMapa .avulsoCarrousel figure img {
    width     : 100% !important;
    height    : 100% !important;
    object-fit: cover !important;
    transition: transform 0.75s var(--np-ease) !important;
    display   : block !important;
}

section#avulsosMapa .avulso_card:hover .avulsoCarrousel figure img {
    transform: scale(1.06) !important;
}

/* ── Overlay gradiente ── */
section#avulsosMapa .avulso_card::after {
    content   : '' !important;
    position  : absolute !important;
    inset     : 0 !important;
    background: linear-gradient(
        180deg,
        rgba(25,31,57,0.55) 0%,
        rgba(25,31,57,0.05) 40%,
        rgba(25,31,57,0.85) 100%
    ) !important;
    z-index   : 1 !important;
    pointer-events: none !important;
}

/* ── Info do card: absoluto na base ── */
section#avulsosMapa .avulso_card_info {
    position  : absolute !important;
    bottom    : 44px !important; /* acima do boutique_imob */
    left      : 0 !important;
    right     : 0 !important;
    padding   : 0 16px 16px !important;
    z-index   : 2 !important;
    background: none !important;
    flex      : unset !important;
    gap       : 4px !important;
    display   : flex !important;
    flex-direction: column !important;
}

/* ── Preço: badge dourado no TOPO do card ── */
section#avulsosMapa .valorFavor {
    position      : absolute !important;
    top           : 14px !important;
    left          : 14px !important;
    right         : 14px !important;
    z-index       : 3 !important;
    display       : flex !important;
    align-items   : center !important;
    justify-content: space-between !important;
    margin-bottom : 0 !important;
}

section#avulsosMapa .valorFavor p,
section#avulsosMapa .np-preco-destaque {
    background    : rgba(200, 169, 110, 0.92) !important;
    color         : var(--np-navy) !important;
    font-family   : var(--np-sans) !important;
    font-size     : 14px !important;
    font-weight   : 700 !important;
    padding       : 6px 12px !important;
    border-radius : 20px !important;
    backdrop-filter: blur(6px) !important;
    margin        : 0 !important;
    line-height   : 1.3 !important;
}

section#avulsosMapa .valorFavor p strong {
    color      : var(--np-navy) !important;
    font-weight: 700 !important;
}

/* Favorito no topo direito */
section#avulsosMapa .iconeFavorito {
    color         : #fff !important;
    font-size     : 18px !important;
    background    : rgba(255,255,255,0.15) !important;
    width         : 34px !important;
    height        : 34px !important;
    border-radius : 50% !important;
    display       : flex !important;
    align-items   : center !important;
    justify-content: center !important;
    backdrop-filter: blur(4px) !important;
    margin-top    : 0 !important;
}

section#avulsosMapa .iconeFavorito:hover { color: #e53e3e !important; }

/* ── Cidade ── */
section#avulsosMapa h2.avulsoCidade {
    font-family: var(--np-serif) !important;
    font-size  : 18px !important;
    font-weight: 500 !important;
    color      : #fff !important;
    margin     : 0 !important;
    line-height: 1.25 !important;
}

/* ── Endereço ── */
section#avulsosMapa p.endereco_avulso {
    font-family  : var(--np-sans) !important;
    font-size    : 12px !important;
    color        : rgba(255,255,255,0.75) !important;
    margin       : 2px 0 6px !important;
    white-space  : nowrap !important;
    overflow     : hidden !important;
    text-overflow: ellipsis !important;
    line-height  : 1.4 !important;
}

section#avulsosMapa .bairro__avl_boutique {
    color      : var(--np-cream) !important;
    font-weight: 600 !important;
}

/* ── Características ── */
section#avulsosMapa .caracteristicasAvulso {
    display    : flex !important;
    flex-wrap  : wrap !important;
    gap        : 10px !important;
    margin-top : 0 !important;
}

section#avulsosMapa span.caracteristica {
    display    : flex !important;
    align-items: center !important;
    gap        : 5px !important;
    font-family: var(--np-sans) !important;
    font-size  : 12px !important;
    color      : rgba(255,255,255,0.80) !important;
}

section#avulsosMapa span.caracteristica i {
    color    : var(--np-cream) !important;
    font-size: 13px !important;
}

/* ── Badge Venda/Aluguel ── */
section#avulsosMapa .destaque-venda {
    z-index: 3 !important;
}

/* ── Badge Exclusivo ── */
section#avulsosMapa .np-badge-exclusivo {
    z-index: 3 !important;
    top    : 56px !important; /* abaixo da linha do preço */
}

/* ── Boutique Imobiliária: base do card ── */
section#avulsosMapa .boutique_imob {
    position  : absolute !important;
    bottom    : 0 !important;
    left      : 0 !important;
    right     : 0 !important;
    z-index   : 2 !important;
    margin-top: 0 !important;
    padding   : 8px 16px !important;
}

/* ── Botões prev/next ficam dentro do overlay ── */
section#avulsosMapa .botao_carrousel {
    z-index: 4 !important;
    bottom : auto !important;
    top    : 50% !important;
    transform: translateY(-50%) !important;
    padding: 0 10px !important;
}

/* ── Grid 2 colunas (overrides legado) ── */
section#avulsosMapa .cardGridContainer {
    display              : grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap                  : 14px !important;
    height               : auto !important;
}

/* ── Split screen ── */
section#avulsosMapa div.avulsosMapaContainer {
    display   : flex !important;
    gap       : 0 !important;
    padding   : 0 !important;
    height    : calc(100vh - 76px - 68px) !important;
    overflow  : hidden !important;
    align-items: stretch !important;
}

section#avulsosMapa div.avulsosMapaContainer div.avulsosCards {
    flex      : 0 0 46% !important;
    width     : 46% !important;
    max-width : 46% !important;
    height    : 100% !important;
    overflow-y: auto !important;
    padding   : 24px 16px 40px 24px !important;
}

/* ── Mapa: esconde iframe, mostra div Leaflet ── */
section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
    display   : flex !important;
    flex      : 1 !important;
    position  : relative !important;
    height    : 100% !important;
    overflow  : hidden !important;
}

section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer iframe {
    display: none !important; /* esconde Google Maps */
}

/* Div do Leaflet injetado via JS */
#np-leaflet-prontos {
    position: absolute !important;
    inset   : 0 !important;
    width   : 100% !important;
    height  : 100% !important;
    z-index : 1 !important;
}

/* ── Responsivo mobile ── */
@media (max-width: 1023px) {
    section#avulsosMapa div.avulsosMapaContainer {
        flex-direction: column !important;
        height        : auto !important;
    }
    section#avulsosMapa div.avulsosMapaContainer div.avulsosCards {
        flex     : unset !important;
        width    : 100% !important;
        max-width: 100% !important;
        height   : auto !important;
        overflow-y: visible !important;
        padding  : 20px 16px !important;
    }
    section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
        height    : 420px !important;
        min-height: 420px !important;
        position  : relative !important;
    }
}

@media (max-width: 479px) {
    section#avulsosMapa .cardGridContainer {
        grid-template-columns: 1fr !important;
    }
    section#avulsosMapa .avulso_card { height: 300px !important; }
    section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
        height: 320px !important;
    }
}


/* ============================================================
   PRONTOS — CARDS OVERLAY FINAL
   Preço na barra inferior · Cidade/specs no overlay
============================================================ */

/* ── Card base ── */
section#avulsosMapa .avulso_card {
    position      : relative !important;
    height        : 340px !important;
    overflow      : hidden !important;
    border-radius : var(--np-radius) !important;
    border        : none !important;
    background    : var(--np-navy) !important;
    display       : block !important;
    text-decoration: none !important;
}

/* ── Carrossel: cobre o card inteiro ── */
section#avulsosMapa .avulsoCarrousel {
    position: absolute !important;
    inset   : 0 !important;
    width   : 100% !important;
    height  : 100% !important;
}

section#avulsosMapa .avulsoCarrousel figure {
    position: absolute !important;
    inset   : 0 !important;
    margin  : 0 !important;
    height  : 100% !important;
    overflow: hidden !important;
}

section#avulsosMapa .avulsoCarrousel figure img {
    width     : 100% !important;
    height    : 100% !important;
    object-fit: cover !important;
    display   : block !important;
    transition: transform 0.75s var(--np-ease) !important;
}

section#avulsosMapa .avulso_card:hover .avulsoCarrousel figure img {
    transform: scale(1.05) !important;
}

/* ── Overlay gradiente ── */
section#avulsosMapa .avulso_card::after {
    content   : '' !important;
    position  : absolute !important;
    inset     : 0 !important;
    background: linear-gradient(
        180deg,
        rgba(25,31,57,0.45) 0%,
        rgba(25,31,57,0.02) 35%,
        rgba(25,31,57,0.70) 65%,
        rgba(25,31,57,0.96) 100%
    ) !important;
    z-index        : 1 !important;
    pointer-events : none !important;
}

/* ── Badge tipo negociação ── */
section#avulsosMapa .destaque-venda {
    position      : absolute !important;
    top           : 12px !important;
    right         : 12px !important;
    z-index       : 3 !important;
    background    : var(--np-teal) !important;
    color         : var(--np-cream) !important;
    font-family   : var(--np-sans) !important;
    font-size     : 10px !important;
    font-weight   : 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    padding       : 5px 12px !important;
    border-radius : 20px !important;
}

/* ── Setas carrossel ── */
section#avulsosMapa .botao_carrousel {
    position       : absolute !important;
    top            : 50% !important;
    left           : 0 !important;
    right          : 0 !important;
    transform      : translateY(-50%) !important;
    display        : flex !important;
    justify-content: space-between !important;
    padding        : 0 10px !important;
    z-index        : 4 !important;
    pointer-events : none !important;
}

section#avulsosMapa .img_prev,
section#avulsosMapa .img_next {
    pointer-events : all !important;
    width          : 30px !important;
    height         : 30px !important;
    border-radius  : 50% !important;
    background     : rgba(255,255,255,0.88) !important;
    border         : none !important;
    cursor         : pointer !important;
    display        : flex !important;
    align-items    : center !important;
    justify-content: center !important;
    font-size      : 12px !important;
    color          : var(--np-navy) !important;
    transition     : background 0.2s !important;
}

section#avulsosMapa .img_prev:hover,
section#avulsosMapa .img_next:hover { background: #fff !important; }

/* ── Info: cidade, endereço, specs — overlay base ── */
section#avulsosMapa .avulso_card_info {
    position      : absolute !important;
    bottom        : 56px !important;
    left          : 0 !important;
    right         : 0 !important;
    padding       : 0 14px 12px !important;
    z-index       : 2 !important;
    background    : none !important;
    display       : flex !important;
    flex-direction: column !important;
    gap           : 4px !important;
}

section#avulsosMapa h2.avulsoCidade {
    font-family: var(--np-serif) !important;
    font-size  : 17px !important;
    font-weight: 500 !important;
    color      : #fff !important;
    margin     : 0 !important;
    line-height: 1.25 !important;
}

section#avulsosMapa p.endereco_avulso {
    font-family  : var(--np-sans) !important;
    font-size    : 11px !important;
    color        : rgba(255,255,255,0.72) !important;
    margin       : 0 !important;
    white-space  : nowrap !important;
    overflow     : hidden !important;
    text-overflow: ellipsis !important;
    line-height  : 1.4 !important;
}

section#avulsosMapa .bairro__avl_boutique {
    color      : var(--np-cream) !important;
    font-weight: 600 !important;
}

section#avulsosMapa .caracteristicasAvulso {
    display  : flex !important;
    flex-wrap: wrap !important;
    gap      : 8px !important;
}

section#avulsosMapa span.caracteristica {
    display    : flex !important;
    align-items: center !important;
    gap        : 4px !important;
    font-family: var(--np-sans) !important;
    font-size  : 11px !important;
    color      : rgba(255,255,255,0.80) !important;
}

section#avulsosMapa span.caracteristica i {
    color    : var(--np-cream) !important;
    font-size: 12px !important;
}

/* ── Barra inferior: preço + favorito ── */
section#avulsosMapa .boutique_imob {
    position       : absolute !important;
    bottom         : 0 !important;
    left           : 0 !important;
    right          : 0 !important;
    z-index        : 2 !important;
    background     : var(--np-navy) !important;
    display        : flex !important;
    align-items    : center !important;
    justify-content: space-between !important;
    padding        : 10px 14px !important;
    height         : 52px !important;
}

/* ── Preço: bloco principal ── */
.np-preco-barra {
    display    : flex !important;
    flex-direction: column !important;
    gap        : 2px !important;
    flex       : 1 !important;
    min-width  : 0 !important;
}

.np-preco-principal {
    font-family: var(--np-sans) !important;
    font-size  : 15px !important;
    font-weight: 700 !important;
    color      : var(--np-cream) !important;
    white-space: nowrap !important;
    overflow   : hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
}

.np-preco-principal strong {
    color      : var(--np-gold) !important;
    font-weight: 700 !important;
    font-size  : 12px !important;
    margin-right: 2px !important;
}

/* Aluguel: texto pequeno abaixo do preço de venda */
.np-preco-aluguel {
    font-family: var(--np-sans) !important;
    font-size  : 10px !important;
    font-weight: 500 !important;
    color      : rgba(239,227,201,0.65) !important;
    white-space: nowrap !important;
    overflow   : hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
}

/* ── Favorito ── */
section#avulsosMapa .boutique_imob .iconeFavorito {
    color         : rgba(239,227,201,0.6) !important;
    font-size     : 16px !important;
    cursor        : pointer !important;
    transition    : color 0.2s !important;
    flex-shrink   : 0 !important;
    margin-left   : 8px !important;
    width         : auto !important;
    height        : auto !important;
    background    : none !important;
    border-radius : 0 !important;
    display       : flex !important;
    align-items   : center !important;
    justify-content: center !important;
}

section#avulsosMapa .boutique_imob .iconeFavorito:hover {
    color: #e53e3e !important;
}

/* ── Grid 2 colunas ── */
section#avulsosMapa .cardGridContainer {
    display              : grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap                  : 14px !important;
    height               : auto !important;
}

/* ── Split screen ── */
section#avulsosMapa div.avulsosMapaContainer {
    display    : flex !important;
    gap        : 0 !important;
    padding    : 0 !important;
    height     : calc(100vh - 76px - 68px) !important;
    overflow   : hidden !important;
    align-items: stretch !important;
}

section#avulsosMapa div.avulsosMapaContainer div.avulsosCards {
    flex      : 0 0 46% !important;
    width     : 46% !important;
    max-width : 46% !important;
    height    : 100% !important;
    overflow-y: auto !important;
    padding   : 24px 16px 40px 24px !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--np-teal) transparent !important;
}

/* ── Container do mapa: flex + visible ── */
section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
    display  : block !important;
    flex     : 1 !important;
    position : relative !important;
    height   : 100% !important;
    overflow : hidden !important;
    min-width: 0 !important;
}

/* Esconde iframe Google Maps */
section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer iframe {
    display: none !important;
}

/* Div Leaflet injetada via JS */
#np-leaflet-prontos {
    position: absolute !important;
    inset   : 0 !important;
    width   : 100% !important;
    height  : 100% !important;
    z-index : 1 !important;
}

/* ── Mobile ── */
@media (max-width: 1023px) {
    section#avulsosMapa div.avulsosMapaContainer {
        flex-direction: column !important;
        height        : auto !important;
    }
    section#avulsosMapa div.avulsosMapaContainer div.avulsosCards {
        flex      : unset !important;
        width     : 100% !important;
        max-width : 100% !important;
        height    : auto !important;
        overflow-y: visible !important;
        padding   : 20px 16px !important;
    }
    section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
        height    : 440px !important;
        min-height: 440px !important;
        flex      : unset !important;
        width     : 100% !important;
    }
    section#avulsosMapa .cardGridContainer {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 479px) {
    section#avulsosMapa .cardGridContainer {
        grid-template-columns: 1fr !important;
    }
    section#avulsosMapa .avulso_card { height: 300px !important; }
    section#avulsosMapa div.avulsosMapaContainer div.avulsoMapaContainer {
        height: 320px !important; min-height: 320px !important;
    }
}


/* ============================================================
   PRONTOS — FIXES: carousel imgs + botões elegantes
============================================================ */

/* ── Fix carousel: remove !important do display para o JS funcionar ── */
section#avulsosMapa .avulsoCarrousel figure img {
    display   : block; /* SEM !important — o JS pode sobrescrever */
    width     : 100% !important;
    height    : 100% !important;
    object-fit: cover !important;
    transition: transform 0.75s var(--np-ease) !important;
}

/* ── Botões prev/next elegantes (sobrescreve estilo oval do prontos.css) ── */
section#avulsosMapa .img_prev,
section#avulsosMapa .img_next {
    width          : 32px !important;
    height         : 32px !important;
    border-radius  : 50% !important;
    background     : rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(4px) !important;
    border         : none !important;
    cursor         : pointer !important;
    display        : flex !important;
    align-items    : center !important;
    justify-content: center !important;
    font-size      : 12px !important;
    color          : #191F39 !important;
    transition     : background 0.2s ease, transform 0.2s ease !important;
    padding        : 0 !important;
    pointer-events : all !important;
    flex-shrink    : 0 !important;
    box-shadow     : 0 2px 8px rgba(0,0,0,0.20) !important;
}

section#avulsosMapa .img_prev:hover,
section#avulsosMapa .img_next:hover {
    background : rgba(255, 255, 255, 1) !important;
    transform  : scale(1.08) !important;
}

/* Remove o ::before do prontos.css (círculo opaco de 50px) */
section#avulsosMapa .img_prev::before,
section#avulsosMapa .img_next::before {
    display: none !important;
    content: none !important;
}

/* ── Bairro em destaque no heading do card ── */
section#avulsosMapa h2.avulsoCidade {
    font-family: var(--np-serif) !important;
    font-size  : 18px !important;
    font-weight: 600 !important;
    color      : #fff !important;
    margin     : 0 0 4px !important;
    line-height: 1.25 !important;
    text-shadow: 0 1px 4px rgba(0,0,0,0.4) !important;
}

/* Endereço — cidade menor e mais discreta */
section#avulsosMapa p.endereco_avulso {
    font-family  : var(--np-sans) !important;
    font-size    : 11px !important;
    color        : rgba(255,255,255,0.68) !important;
    margin       : 0 0 6px !important;
    white-space  : nowrap !important;
    overflow     : hidden !important;
    text-overflow: ellipsis !important;
    line-height  : 1.4 !important;
    text-shadow  : none !important;
}


/* ============================================================
   FIX: Bairro abaixo das setas do carrossel
   Forca .avulso_card_info a comecar apos a area dos botoes
============================================================ */
section#avulsosMapa .avulso_card_info {
    top    : 58% !important;   /* comeca abaixo das setas (que ficam em 50%) */
    bottom : 56px !important;  /* termina acima da barra de preco */
    overflow: hidden !important;
}


/* ============================================================
   FIX: Gap acima do header
   1. Remove margin-top do WordPress admin bar
   2. Remove barra colorida de CSS legado
   3. Garante header colado ao topo
============================================================ */

/* Remove margin do admin bar do WordPress (quando logado) */
html.wp-toolbar {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Empurra o admin bar para nao cobrir o header */
#wpadminbar {
    position: fixed !important;
    top: 0 !important;
    z-index: 9999 !important;
}

/* Quando admin bar existe, header desce junto */
.admin-bar .np-header {
    top: 32px !important;
}

@media screen and (max-width: 782px) {
    .admin-bar .np-header {
        top: 46px !important;
    }
}

/* Remove qualquer barra colorida do topo (legado) */
html,
body {
    margin-top  : 0 !important;
    padding-top : 0 !important;
    border-top  : none !important;
}

/* Remove border-top roxo/colorido de CSS legado */
body::before,
body::after,
html::before,
html::after {
    display: none !important;
    content : none !important;
    border  : none !important;
    background: none !important;
}

/* Garante que o header fica colado sem gap */
.np-header {
    position : sticky !important;
    top       : 0 !important;
    z-index   : 1000 !important;
    margin-top: -30px !important;
}

/* Quando admin bar presente, compensa */
.admin-bar body > .np-header:first-of-type,
.admin-bar header.np-header {
    top: 32px !important;
}

@media screen and (max-width: 782px) {
    .admin-bar body > .np-header:first-of-type,
    .admin-bar header.np-header {
        top: 46px !important;
    }
}

/* ============================================================
   LANCAMENTOS — GRID EDITORIAL (layout magazine)
   Cards 1-6: layout assimetrico tipo imagem 2 do cliente
   Cards 7+  : grid 3 colunas uniforme (ver mais)
   HTML nao muda — apenas CSS nth-child
============================================================ */

/* Grid base: 3 colunas iguais */
div.lancamentosCards {
    display              : grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap                  : 16px !important;
    max-width            : 1320px !important;
    margin               : 0 auto !important;
    width                : 100% !important;
}

/* ── Card base: overlay sobre imagem ── */
div.lancamentosCards div.lancamentoCard {
    position     : relative !important;
    overflow     : hidden !important;
    border-radius: 14px !important;
    cursor       : pointer !important;
    background   : var(--np-navy) !important;
    height       : 320px !important;
    display      : block !important;
}

div.lancamentosCards div.lancamentoCard figure {
    position: absolute !important;
    inset   : 0 !important;
    margin  : 0 !important;
    padding : 0 !important;
    height  : 100% !important;
}

div.lancamentosCards div.lancamentoCard figure img {
    width     : 100% !important;
    height    : 100% !important;
    object-fit: cover !important;
    display   : block !important;
    transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

div.lancamentosCards div.lancamentoCard:hover figure img {
    transform: scale(1.05) !important;
}

/* Overlay gradiente escuro na base */
div.lancamentosCards div.lancamentoCard::after {
    content   : '' !important;
    position  : absolute !important;
    inset     : 0 !important;
    background: linear-gradient(
        180deg,
        rgba(25, 31, 57, 0.02) 0%,
        rgba(25, 31, 57, 0.12) 40%,
        rgba(25, 31, 57, 0.85) 100%
    ) !important;
    z-index        : 1 !important;
    pointer-events : none !important;
    transition     : background 0.4s ease !important;
}

div.lancamentosCards div.lancamentoCard:hover::after {
    background: linear-gradient(
        180deg,
        rgba(25, 31, 57, 0.05) 0%,
        rgba(25, 31, 57, 0.20) 40%,
        rgba(25, 31, 57, 0.92) 100%
    ) !important;
}

/* Detalhes sobre o overlay */
div.lancamentosCards div.lancamentoCard div.cardDetalhes {
    position  : absolute !important;
    bottom    : 0 !important;
    left      : 0 !important;
    right     : 0 !important;
    padding   : 20px 22px !important;
    z-index   : 2 !important;
    background: none !important;
}

/* Bairro */
div.lancamentosCards p.bairro_destaque {
    font-family   : var(--np-sans) !important;
    font-size     : 10px !important;
    font-weight   : 700 !important;
    letter-spacing: 2.5px !important;
    text-transform: uppercase !important;
    color         : rgba(239, 227, 201, 0.80) !important;
    margin-bottom : 6px !important;
}

/* Nome do empreendimento */
div.lancamentosCards h3.card__empreendimento {
    font-family  : var(--np-serif) !important;
    font-size    : 20px !important;
    font-weight  : 500 !important;
    color        : #fff !important;
    line-height  : 1.25 !important;
    margin-bottom: 8px !important;
    text-shadow  : 0 1px 4px rgba(0,0,0,0.3) !important;
}

div.lancamentosCards a { text-decoration: none !important; }

/* Endereco */
div.lancamentosCards p.card__endereco__empreendimento {
    font-family: var(--np-sans) !important;
    font-size  : 12px !important;
    color      : rgba(255,255,255,0.70) !important;
    display    : flex !important;
    align-items: center !important;
    gap        : 5px !important;
    margin     : 0 0 10px !important;
}

div.lancamentosCards p.card__endereco__empreendimento i {
    color    : var(--np-cream) !important;
    font-size: 12px !important;
}

/* Specs */
div.lancamentosCards div.cardDetalhes nav ul {
    display    : flex !important;
    flex-wrap  : wrap !important;
    gap        : 12px !important;
    list-style : none !important;
    padding    : 0 !important;
    margin     : 0 !important;
}

div.lancamentosCards div.cardDetalhes nav ul li {
    display    : flex !important;
    align-items: center !important;
    gap        : 5px !important;
    font-family: var(--np-sans) !important;
    font-size  : 12px !important;
    color      : rgba(255,255,255,0.80) !important;
}

div.lancamentosCards div.cardDetalhes nav ul li i {
    color    : var(--np-cream) !important;
    font-size: 13px !important;
}

/* Oculta campo de tipo */
span.tipo__imovel__none { display: none !important; }


/* ============================================================
   GRID EDITORIAL — posicionamento nth-child (cards 1-6)
============================================================ */

/* Card 1: coluna 1, linha 1 — pequeno */
div.lancamentosCards div.lancamentoCard:nth-child(1) {
    grid-column: 1 !important;
    grid-row   : 1 !important;
    height     : 310px !important;
}

/* Card 2: colunas 2-3, linhas 1-2 — GRANDE (estrela do layout) */
div.lancamentosCards div.lancamentoCard:nth-child(2) {
    grid-column: 2 / span 2 !important;
    grid-row   : 1 / span 2 !important;
    height     : auto !important;
    min-height : 636px !important; /* 2x 310px + 16px gap */
}

/* Card 2 grande: titulo e detalhes maiores */
div.lancamentosCards div.lancamentoCard:nth-child(2) div.cardDetalhes {
    padding: 28px 30px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(2) h3.card__empreendimento {
    font-size    : 30px !important;
    margin-bottom: 12px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(2) p.bairro_destaque {
    font-size     : 11px !important;
    letter-spacing: 3px !important;
    margin-bottom : 10px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(2) p.card__endereco__empreendimento {
    font-size    : 13px !important;
    margin-bottom: 14px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(2) nav ul li {
    font-size: 13px !important;
    gap      : 6px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(2) nav ul {
    gap: 16px !important;
}

/* Card 3: coluna 1, linha 2 — pequeno */
div.lancamentosCards div.lancamentoCard:nth-child(3) {
    grid-column: 1 !important;
    grid-row   : 2 !important;
    height     : 310px !important;
}

/* Cards 4, 5, 6: tres colunas iguais, linha 3 */
div.lancamentosCards div.lancamentoCard:nth-child(4) {
    grid-column: 1 !important;
    grid-row   : 3 !important;
    height     : 320px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(5) {
    grid-column: 2 !important;
    grid-row   : 3 !important;
    height     : 320px !important;
}

div.lancamentosCards div.lancamentoCard:nth-child(6) {
    grid-column: 3 !important;
    grid-row   : 3 !important;
    height     : 320px !important;
}

/* Cards 7+: auto-placement em 3 colunas (Ver mais) */
div.lancamentosCards div.lancamentoCard:nth-child(n+7) {
    grid-column: auto !important;
    grid-row   : auto !important;
    height     : 320px !important;
}


/* ============================================================
   RESPONSIVO — grid editorial adaptado
============================================================ */

/* Tablet: 2 colunas, sem layout especial */
@media (max-width: 1023px) {
    div.lancamentosCards {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    div.lancamentosCards div.lancamentoCard:nth-child(1),
    div.lancamentosCards div.lancamentoCard:nth-child(2),
    div.lancamentosCards div.lancamentoCard:nth-child(3),
    div.lancamentosCards div.lancamentoCard:nth-child(4),
    div.lancamentosCards div.lancamentoCard:nth-child(5),
    div.lancamentosCards div.lancamentoCard:nth-child(6) {
        grid-column: auto !important;
        grid-row   : auto !important;
        height     : 300px !important;
        min-height : unset !important;
    }
    div.lancamentosCards div.lancamentoCard:nth-child(2) h3.card__empreendimento {
        font-size: 22px !important;
    }
}

/* Mobile: 1 coluna */
@media (max-width: 599px) {
    div.lancamentosCards {
        grid-template-columns: 1fr !important;
    }
    div.lancamentosCards div.lancamentoCard {
        height: 280px !important;
    }
}

/* ============================================================
   [11] ANIMAÇÕES DE ENTRADA
============================================================ */
@media (prefers-reduced-motion: reduce) {
    section#boutiqueFiltroLancamento > h2,
    section#boutiqueFiltroLancamento > h2 span.bairro__filtro__lancamento,
    div.lancamentosCards div.lancamentoCard {
        transition: none !important; opacity: 1 !important; transform: none !important;
    }
}
section#boutiqueFiltroLancamento > h2 {
    opacity: 0; transform: translateY(28px);
    transition: opacity 0.75s var(--np-ease), transform 0.75s var(--np-ease);
}
section#boutiqueFiltroLancamento > h2.np-visible { opacity: 1; transform: translateY(0);margin-top: 50px; }
section#boutiqueFiltroLancamento > h2 span.bairro__filtro__lancamento {
    display: inline-block; opacity: 0; transform: translateY(18px);
    transition: opacity 0.75s var(--np-ease) 0.25s, transform 0.75s var(--np-ease) 0.25s;
}
section#boutiqueFiltroLancamento > h2.np-visible span.bairro__filtro__lancamento {
    opacity: 1; transform: translateY(0);
}
div.lancamentosCards div.lancamentoCard {
    opacity: 0 !important; transform: translateY(36px) !important;
    transition: opacity 0.65s var(--np-ease) var(--np-delay,0ms),
                transform 0.65s var(--np-ease) var(--np-delay,0ms),
                box-shadow 0.40s var(--np-ease) !important;
}
div.lancamentosCards div.lancamentoCard.np-visible {
    opacity: 1 !important; transform: translateY(0) !important;
}
div.lancamentosCards div.lancamentoCard.np-visible:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 24px 56px rgba(25,31,57,0.20) !important;
}


/* ============================================================
   [12] QUEM SOMOS — page styles
   Elimina: quemsomos.css
   Prefixo: qs-
============================================================ */

.qs-label {
    font-family: var(--np-sans); font-size: 11px; font-weight: 700;
    letter-spacing: 3px; text-transform: uppercase; color: var(--np-gold);
    margin-bottom: 20px; display: flex; align-items: center; gap: 10px;
}
.qs-label::after {
    content: ''; display: inline-block; width: 36px; height: 1px;
    background: var(--np-gold); flex-shrink: 0;
}
.qs-divider {
    width: 52px; height: 2px; background: var(--np-gold); margin: 28px auto;
}

/* ── HERO ── */
section.qs-hero {
    background: var(--np-white);
    padding   : 96px 0 80px;
    overflow  : hidden;
}
.qs-hero-inner {
    max-width            : 1400px;
    margin               : 0 auto;
    padding              : 0 40px;
    display              : grid;
    grid-template-columns: 55% 1fr;
    gap                  : 72px;
    align-items          : stretch;   /* ambas as colunas crescem juntas */
    min-height           : 560px;
}

/* Texto */
.qs-hero-text h1 {
    font-family: var(--np-serif); font-size: clamp(28px,3.2vw,48px);
    font-weight: 500; color: var(--np-navy); line-height: 1.2; margin-bottom: 28px;
}
.qs-hero-text p {
    font-family: var(--np-sans); font-size: 16px;
    line-height: 1.85; color: var(--np-muted); margin-bottom: 18px;
}
.qs-socios-names {
    display: flex; gap: 40px; padding-top: 28px;
    border-top: 1px solid var(--np-border); margin-top: 12px;
}
.qs-socio-name {
    font-family: var(--np-serif); font-size: 17px;
    font-weight: 500; color: var(--np-navy); margin: 0 0 4px;
}
.qs-socio-role {
    font-family: var(--np-sans); font-size: 11px;
    letter-spacing: 1.8px; text-transform: uppercase; color: var(--np-gold);
}

/* ── FOTO ÚNICA — preenche toda a altura da coluna ── */
.qs-photos {
    border-radius: 14px;
    overflow     : hidden;
    align-self   : stretch;      /* estica para casar com a altura do texto */
    min-height   : 500px;
    box-shadow   : var(--np-shadow);
}
.qs-photos img {
    width         : 100%;
    height        : 100%;
    object-fit    : cover;
    object-position: top center;
    display       : block;
    transition    : transform 0.7s var(--np-ease);
}
.qs-photos:hover img {
    transform: scale(1.03);
}

/* ── FEATURE CARDS ── */
section.qs-features { background: var(--np-bg); padding: 80px 0; }
.qs-features-inner {
    max-width: 1400px; margin: 0 auto; padding: 0 40px;
    display: grid; grid-template-columns: repeat(3,1fr); gap: 24px;
}
.qs-feature-card {
    background: var(--np-white); border-radius: var(--np-radius);
    padding: 40px 32px; border-left: 3px solid var(--np-teal);
    box-shadow: 0 4px 20px rgba(25,31,57,0.07);
    opacity: 0; transform: translateY(32px);
    transition: opacity 0.65s var(--np-ease) var(--np-delay,0ms),
                transform 0.65s var(--np-ease) var(--np-delay,0ms),
                box-shadow 0.35s var(--np-ease);
}
.qs-feature-card.np-visible { opacity: 1; transform: translateY(0); }
.qs-feature-card.np-visible:hover { transform: translateY(-6px); box-shadow: var(--np-shadow); }
.qs-feature-icon {
    width: 48px; height: 48px; background: rgba(6,70,94,0.08);
    border-radius: 12px; display: flex; align-items: center;
    justify-content: center; margin-bottom: 20px; color: var(--np-teal); font-size: 20px;
}
.qs-feature-card h3 {
    font-family: var(--np-serif); font-size: 20px; font-weight: 600;
    color: var(--np-navy); line-height: 1.3; margin-bottom: 12px;
}
.qs-feature-card p {
    font-family: var(--np-sans); font-size: 15px;
    color: var(--np-muted); line-height: 1.75; margin: 0;
}

/* ── MANIFESTO ── */
section.qs-manifesto { background: var(--np-navy); padding: 100px 0; text-align: center; }
.qs-manifesto-inner {
    max-width: 880px; margin: 0 auto; padding: 0 40px;
    opacity: 0; transform: translateY(24px);
    transition: opacity 0.75s var(--np-ease), transform 0.75s var(--np-ease);
}
.qs-manifesto-inner.np-visible { opacity: 1; transform: translateY(0); }
section.qs-manifesto .qs-label { justify-content: center; }
section.qs-manifesto .qs-label::after { display: none; }
.qs-manifesto h2 {
    font-family: var(--np-serif); font-size: clamp(24px,3vw,40px);
    font-weight: 500; color: var(--np-cream); line-height: 1.35; margin-bottom: 0;
}
.qs-manifesto h2 em { font-style: italic; color: var(--np-gold); }
.qs-manifesto p {
    font-family: var(--np-sans); font-size: 16px;
    color: rgba(239,227,201,0.68); line-height: 1.85; margin: 0;
}

/* ── CONTENT GRID ── */
section.qs-content { background: var(--np-white); }
.qs-content-item {
    display: grid; grid-template-columns: 1fr 1fr; min-height: 540px;
    opacity: 0; transform: translateY(28px);
    transition: opacity 0.70s var(--np-ease) var(--np-delay,0ms),
                transform 0.70s var(--np-ease) var(--np-delay,0ms);
}
.qs-content-item.np-visible { opacity: 1; transform: translateY(0); }
.qs-content-item:nth-child(even) .qs-content-img  { order: 2; }
.qs-content-item:nth-child(even) .qs-content-text { order: 1; background: var(--np-bg); }
.qs-content-img { overflow: hidden; }
.qs-content-img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.8s var(--np-ease);
}
.qs-content-item:hover .qs-content-img img { transform: scale(1.04); }
.qs-content-text {
    padding: 64px 72px; display: flex; flex-direction: column;
    justify-content: center; background: var(--np-white);
}
.qs-content-text h3 {
    font-family: var(--np-serif); font-size: clamp(22px,2vw,30px);
    font-weight: 500; color: var(--np-navy); line-height: 1.25; margin-bottom: 16px;
}
.qs-content-text h4 {
    font-family: var(--np-sans); font-size: 11px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase;
    color: var(--np-gold); margin: 28px 0 14px;
}
.qs-content-text p {
    font-family: var(--np-sans); font-size: 15px;
    color: var(--np-muted); line-height: 1.85; margin-bottom: 14px;
}
.qs-content-text p:last-of-type { margin-bottom: 0; }
.qs-btn-agendar {
    display: inline-block; align-self: flex-start; margin-top: 32px;
    font-family: var(--np-sans); font-size: 12px; font-weight: 600;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--np-cream); background: var(--np-teal);
    border: none; padding: 14px 32px; border-radius: 40px; cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}
.qs-btn-agendar:hover { background: var(--np-navy); transform: translateY(-2px); }

/* ── ANIMAÇÕES HERO ── */
.qs-hero-text {
    opacity: 0; transform: translateX(-32px);
    transition: opacity 0.80s var(--np-ease), transform 0.80s var(--np-ease);
}
.qs-hero-text.np-visible { opacity: 1; transform: translateX(0); }
.qs-photos {
    opacity: 0; transform: translateX(32px);
    transition: opacity 0.80s var(--np-ease) 0.15s, transform 0.80s var(--np-ease) 0.15s,
                box-shadow 0.5s var(--np-ease);
}
.qs-photos.np-visible { opacity: 1; transform: translateX(0); }

/* ── RESPONSIVO ── */
@media (max-width: 1023px) {
    .qs-hero-inner { grid-template-columns: 1fr; gap: 40px; min-height: auto; }
    .qs-photos { min-height: 400px; align-self: auto; }
    .qs-features-inner { grid-template-columns: 1fr; }
    .qs-content-item { grid-template-columns: 1fr; min-height: auto; }
    .qs-content-item:nth-child(even) .qs-content-img,
    .qs-content-item:nth-child(even) .qs-content-text { order: unset; }
    .qs-content-img { height: 320px; }
    .qs-content-text { padding: 40px 32px; }
}
@media (max-width: 599px) {
    section.qs-hero { padding: 56px 0 48px; }
    .qs-hero-inner, .qs-features-inner, .qs-manifesto-inner { padding: 0 20px; }
    .qs-photos { min-height: 300px; }
    .qs-content-text { padding: 32px 20px; }
}

/* ============================================================
   [13] CONTATO — page styles
   Elimina : contato.css — tudo unificado aqui
   Prefixo : ct-
   Container: max-width 1400px (espelha np-header-inner)
   Layout  : split 50/50 — navy esquerda | form direita
============================================================ */

/* ── Wrapper principal ── */
section#ct-page {
    min-height: calc(100vh - var(--np-header-h));
    display   : flex;
}

/* ─────────────────────────────────────────
   PAINEL ESQUERDO — navy, info de contato
───────────────────────────────────────── */
.ct-panel-info {
    flex           : 0 0 44%;
    background     : var(--np-navy);
    padding        : 80px 64px;
    display        : flex;
    flex-direction : column;
    justify-content: space-between;
    gap            : 48px;
}

/* Label + título */
.ct-info-top {}

.ct-info-top .qs-label { color: var(--np-gold); margin-bottom: 20px; }
.ct-info-top .qs-label::after { background: var(--np-gold); }

.ct-info-top h1 {
    font-family  : var(--np-serif);
    font-size    : clamp(26px, 2.8vw, 40px);
    font-weight  : 500;
    color        : var(--np-cream);
    line-height  : 1.25;
    margin-bottom: 16px;
}

.ct-info-top p {
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : rgba(239, 227, 201, 0.65);
    line-height: 1.75;
}

/* Itens de contato */
.ct-contact-items {
    display       : flex;
    flex-direction: column;
    gap           : 20px;
}

.ct-contact-item {
    display        : flex;
    align-items    : flex-start;
    gap            : 16px;
    text-decoration: none;
    transition     : opacity 0.25s ease;
}

.ct-contact-item:hover { opacity: 0.80; }

.ct-contact-icon {
    width          : 40px;
    height         : 40px;
    background     : rgba(239, 227, 201, 0.10);
    border-radius  : 10px;
    display        : flex;
    align-items    : center;
    justify-content: center;
    color          : var(--np-gold);
    font-size      : 16px;
    flex-shrink    : 0;
    transition     : background 0.25s ease;
}

.ct-contact-item:hover .ct-contact-icon {
    background: rgba(156, 135, 88, 0.25);
}

.ct-contact-text {
    font-family: var(--np-sans);
    font-size  : 14px;
    color      : rgba(239, 227, 201, 0.80);
    line-height: 1.55;
    padding-top: 8px;
}

.ct-contact-text strong {
    display    : block;
    font-size  : 11px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color      : var(--np-gold);
    margin-bottom: 4px;
}

/* Redes sociais */
.ct-social {
    display    : flex;
    align-items: center;
    gap        : 12px;
}

.ct-social-label {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color         : rgba(239, 227, 201, 0.50);
    margin-right  : 4px;
}

.ct-social a {
    width          : 36px;
    height         : 36px;
    border         : 1px solid rgba(239, 227, 201, 0.20);
    border-radius  : 50%;
    display        : flex;
    align-items    : center;
    justify-content: center;
    color          : rgba(239, 227, 201, 0.65);
    font-size      : 14px;
    text-decoration: none;
    transition     : border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}

.ct-social a:hover {
    border-color: var(--np-gold);
    color       : var(--np-gold);
    background  : rgba(156, 135, 88, 0.12);
}

/* ─────────────────────────────────────────
   PAINEL DIREITO — formulário
───────────────────────────────────────── */
.ct-panel-form {
    flex          : 1;
    background    : var(--np-white);
    padding       : 80px 72px;
    display       : flex;
    flex-direction: column;
    justify-content: center;
    overflow-y    : auto;
}

.ct-form-header { margin-bottom: 40px; }

.ct-form-header h2 {
    font-family  : var(--np-serif);
    font-size    : clamp(22px, 2.2vw, 32px);
    font-weight  : 500;
    color        : var(--np-navy);
    line-height  : 1.25;
    margin-bottom: 8px;
}

.ct-form-header p {
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : var(--np-muted);
    line-height: 1.6;
}

/* Linha de dois selects */
.ct-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap    : 16px;
}

/* Linha de dois inputs */
.ct-row-names {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap    : 16px;
}

/* Campo */
.ct-field {
    display       : flex;
    flex-direction: column;
    gap           : 6px;
}

.ct-field label {
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color         : var(--np-navy);
}

.ct-field input,
.ct-field select,
.ct-field textarea {
    font-family  : var(--np-sans);
    font-size    : 15px;
    color        : var(--np-text);
    background   : #fff;
    border       : 1.5px solid var(--np-border);
    border-radius: 10px;
    padding      : 12px 16px;
    width        : 100%;
    box-sizing   : border-box;
    outline      : none;
    transition   : border-color 0.25s ease, box-shadow 0.25s ease;
    appearance   : none;
    -webkit-appearance: none;
}

.ct-field select {
    background-image   : url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2306465E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat  : no-repeat;
    background-position: right 14px center;
    padding-right      : 36px;
    cursor             : pointer;
}

.ct-field input::placeholder,
.ct-field textarea::placeholder {
    color: #b8b6ae;
}

.ct-field input:focus,
.ct-field select:focus,
.ct-field textarea:focus {
    border-color: var(--np-teal);
    box-shadow  : 0 0 0 3px rgba(6, 70, 94, 0.08);
}

.ct-field textarea {
    resize    : vertical;
    min-height: 110px;
}

/* Formulário — gap entre campos */
form#ct-form {
    display       : flex;
    flex-direction: column;
    gap           : 20px;
}

/* Botão submit */
.ct-submit {
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : var(--np-cream);
    background    : var(--np-teal);
    border        : none;
    padding       : 16px 40px;
    border-radius : 40px;
    cursor        : pointer;
    align-self    : flex-start;
    display       : flex;
    align-items   : center;
    gap           : 10px;
    transition    : background 0.3s ease, transform 0.2s ease;
    margin-top    : 4px;
}

.ct-submit:hover:not(:disabled) {
    background: var(--np-navy);
    transform : translateY(-2px);
}

.ct-submit:disabled { opacity: 0.65; cursor: not-allowed; }

/* Feedback */
.ct-feedback {
    padding      : 14px 18px;
    border-radius: 10px;
    font-family  : var(--np-sans);
    font-size    : 14px;
    line-height  : 1.5;
    display      : none;
}

.ct-feedback--sucesso {
    background: rgba(6, 70, 94, 0.08);
    color     : var(--np-teal);
    border    : 1px solid rgba(6, 70, 94, 0.20);
}

.ct-feedback--erro {
    background: rgba(180, 50, 50, 0.07);
    color     : #8b2020;
    border    : 1px solid rgba(180, 50, 50, 0.20);
}

/* ─────────────────────────────────────────
   ANIMAÇÕES — painel info + form
───────────────────────────────────────── */
.ct-panel-info {
    opacity  : 0;
    transform: translateX(-28px);
    transition: opacity 0.80s var(--np-ease), transform 0.80s var(--np-ease);
}
.ct-panel-info.np-visible { opacity: 1; transform: translateX(0); }

.ct-panel-form {
    opacity  : 0;
    transform: translateX(28px);
    transition: opacity 0.80s var(--np-ease) 0.15s, transform 0.80s var(--np-ease) 0.15s;
}
.ct-panel-form.np-visible { opacity: 1; transform: translateX(0); }

/* ─────────────────────────────────────────
   RESPONSIVO
───────────────────────────────────────── */
@media (max-width: 1023px) {
    section#ct-page { flex-direction: column; }
    .ct-panel-info  { flex: none; padding: 56px 40px; }
    .ct-panel-form  { padding: 56px 40px; }
    .ct-row, .ct-row-names { grid-template-columns: 1fr; }
}

@media (max-width: 599px) {
    .ct-panel-info { padding: 40px 20px; }
    .ct-panel-form { padding: 40px 20px; }
    .ct-submit     { width: 100%; justify-content: center; }
}

/* ============================================================
   [14] ANUNCIE SEU IMÓVEL — page styles
   Elimina : anuncio.css — tudo unificado aqui
   Prefixo : an-
   Seções  : hero | stepper | card | campos | modal
============================================================ */

/* ── HERO ─────────────────────────────────────────────────── */
section.an-hero {
    background   : var(--np-navy);
    padding      : 80px 0 72px;
    text-align   : center;
    overflow     : hidden;
}

.an-hero-inner {
    max-width: 1400px;
    margin   : 0 auto;
    padding  : 0 40px;
    opacity  : 0;
    transform: translateY(24px);
    transition: opacity 0.80s var(--np-ease), transform 0.80s var(--np-ease);
}
.an-hero-inner.np-visible { opacity: 1; transform: translateY(0); }

.an-hero-inner .qs-label {
    justify-content: center;
    color          : var(--np-gold);
    margin-bottom  : 20px;
}
.an-hero-inner .qs-label::after { display: none; }

.an-hero-inner h1 {
    font-family  : var(--np-serif);
    font-size    : clamp(26px, 3vw, 44px);
    font-weight  : 500;
    color        : var(--np-cream);
    line-height  : 1.25;
    margin-bottom: 14px;
}
.an-hero-inner h1 em { font-style: italic; color: var(--np-gold); }

.an-hero-inner p {
    font-family  : var(--np-sans);
    font-size    : 16px;
    color        : rgba(239,227,201,0.65);
    line-height  : 1.75;
    max-width    : 640px;
    margin       : 0 auto 48px;
}

/* Benefícios em linha */
.an-benefits {
    display        : flex;
    justify-content: center;
    gap            : 32px;
    flex-wrap      : wrap;
}

.an-benefit {
    display    : flex;
    align-items: center;
    gap        : 10px;
    font-family: var(--np-sans);
    font-size  : 13px;
    font-weight: 600;
    color      : rgba(239,227,201,0.80);
    letter-spacing: 0.4px;
}

.an-benefit i {
    width          : 36px;
    height         : 36px;
    background     : rgba(156,135,88,0.18);
    border-radius  : 50%;
    display        : flex;
    align-items    : center;
    justify-content: center;
    color          : var(--np-gold);
    font-size      : 15px;
    flex-shrink    : 0;
}


/* ── ÁREA DO FORMULÁRIO ───────────────────────────────────── */
section.an-form-section {
    background: var(--np-bg);
    padding   : 72px 0 96px;
}

.an-form-section-inner {
    max-width: 780px;
    margin   : 0 auto;
    padding  : 0 40px;
}


/* ── STEPPER ─────────────────────────────────────────────── */
.an-stepper {
    display        : flex;
    align-items    : flex-start;
    justify-content: space-between;
    margin-bottom  : 48px;
    position       : relative;
}

/* Linha conectora entre steps */
.an-stepper::before {
    content   : '';
    position  : absolute;
    top       : 18px;
    left      : 10%;
    width     : 80%;
    height    : 2px;
    background: var(--np-border);
    z-index   : 0;
}

.an-step-item {
    display       : flex;
    flex-direction: column;
    align-items   : center;
    gap           : 8px;
    position      : relative;
    z-index       : 1;
    flex          : 1;
}

.an-step-dot {
    width          : 36px;
    height         : 36px;
    border-radius  : 50%;
    border         : 2px solid var(--np-border);
    background     : var(--np-white);
    display        : flex;
    align-items    : center;
    justify-content: center;
    font-family    : var(--np-sans);
    font-size      : 13px;
    font-weight    : 700;
    color          : var(--np-muted);
    transition     : all 0.35s var(--np-ease);
}

.an-step-label {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 600;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color         : var(--np-muted);
    text-align    : center;
    transition    : color 0.35s var(--np-ease);
}

/* Step ativo */
.an-step-item.active .an-step-dot {
    background  : var(--np-teal);
    border-color: var(--np-teal);
    color       : #fff;
    box-shadow  : 0 0 0 4px rgba(6,70,94,0.15);
}
.an-step-item.active .an-step-label { color: var(--np-teal); }

/* Step concluído */
.an-step-item.done .an-step-dot {
    background  : var(--np-gold);
    border-color: var(--np-gold);
    color       : #fff;
}
.an-step-item.done .an-step-label { color: var(--np-gold); }


/* ── CARD DO FORMULÁRIO ───────────────────────────────────── */
.an-card {
    background   : var(--np-white);
    border-radius: 16px;
    box-shadow   : 0 8px 40px rgba(25,31,57,0.10);
    overflow     : hidden;
    opacity      : 0;
    transform    : translateY(32px);
    transition   : opacity 0.70s var(--np-ease) 0.15s,
                   transform 0.70s var(--np-ease) 0.15s;
}
.an-card.np-visible { opacity: 1; transform: translateY(0); }

/* Cabeçalho interno de cada step */
.an-step-header {
    padding         : 32px 40px 0;
    border-bottom   : 1px solid var(--np-border);
    padding-bottom  : 24px;
    margin-bottom   : 32px;
}

.an-step-header h2 {
    font-family  : var(--np-serif);
    font-size    : clamp(20px, 2vw, 26px);
    font-weight  : 500;
    color        : var(--np-navy);
    margin-bottom: 4px;
}

.an-step-header p {
    font-family: var(--np-sans);
    font-size  : 14px;
    color      : var(--np-muted);
    margin     : 0;
}

/* Corpo do step */
.an-step-body { padding: 0 40px 40px; }

/* Divisor interno */
.an-divider {
    border     : none;
    border-top : 1px solid var(--np-border);
    margin     : 28px 0;
}

.an-section-title {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color         : var(--np-gold);
    margin-bottom : 20px;
}

/* ── CAMPOS ───────────────────────────────────────────────── */
.an-field {
    display       : flex;
    flex-direction: column;
    gap           : 6px;
    margin-bottom : 20px;
}

.an-field label {
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color         : var(--np-navy);
}

.an-field label .an-req { color: var(--np-gold); margin-left: 2px; }

.an-field input,
.an-field select,
.an-field textarea {
    font-family : var(--np-sans);
    font-size   : 15px;
    color       : var(--np-text);
    background  : #fff;
    border      : 1.5px solid var(--np-border);
    border-radius: 10px;
    padding     : 12px 16px;
    width       : 100%;
    box-sizing  : border-box;
    outline     : none;
    transition  : border-color 0.25s ease, box-shadow 0.25s ease;
    appearance  : none;
    -webkit-appearance: none;
}

.an-field select {
    background-image   : url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2306465E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat  : no-repeat;
    background-position: right 14px center;
    padding-right      : 36px;
    cursor             : pointer;
}

.an-field input::placeholder,
.an-field textarea::placeholder { color: #b8b6ae; }

.an-field input:focus,
.an-field select:focus,
.an-field textarea:focus {
    border-color: var(--np-teal);
    box-shadow  : 0 0 0 3px rgba(6,70,94,0.08);
}

/* Validação em tempo real */
.an-field input.is-valid,
.an-field select.is-valid,
.an-field textarea.is-valid {
    border-color: #2a9d6a;
}

.an-field input.is-error,
.an-field select.is-error,
.an-field textarea.is-error {
    border-color: #c0392b;
    box-shadow  : 0 0 0 3px rgba(192,57,43,0.08);
}

.an-field-hint {
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : var(--np-muted);
    margin     : 0;
}

.an-field-error {
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : #c0392b;
    margin     : 0;
    display    : none;
}

.an-field input.is-error ~ .an-field-error,
.an-field select.is-error ~ .an-field-error { display: block; }

/* Linha de dois campos */
.an-row {
    display: grid;
    gap    : 16px;
}
.an-row-2 { grid-template-columns: 1fr 1fr; }
.an-row-3 { grid-template-columns: 1fr 1fr 1fr; }
.an-row-cep { grid-template-columns: 2fr 1fr; }

/* CEP loading */
.an-field .an-cep-loading {
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : var(--np-teal);
    display    : none;
}
.an-field .an-cep-loading.active { display: block; }

/* Textarea */
.an-field textarea { resize: vertical; min-height: 110px; }


/* ── BOTÕES DE NAVEGAÇÃO ──────────────────────────────────── */
.an-buttons {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    gap            : 16px;
    margin-top     : 32px;
    padding-top    : 24px;
    border-top     : 1px solid var(--np-border);
}

.an-btn-back {
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color         : var(--np-muted);
    background    : transparent;
    border        : 1.5px solid var(--np-border);
    padding       : 13px 28px;
    border-radius : 40px;
    cursor        : pointer;
    display       : flex;
    align-items   : center;
    gap           : 8px;
    transition    : border-color 0.25s ease, color 0.25s ease;
}
.an-btn-back:hover { border-color: var(--np-navy); color: var(--np-navy); }

.an-btn-next,
.an-btn-submit {
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : var(--np-cream);
    background    : var(--np-teal);
    border        : none;
    padding       : 14px 36px;
    border-radius : 40px;
    cursor        : pointer;
    display       : flex;
    align-items   : center;
    gap           : 10px;
    transition    : background 0.3s ease, transform 0.2s ease, opacity 0.3s ease;
    margin-left   : auto;
}
.an-btn-next:hover:not(:disabled),
.an-btn-submit:hover:not(:disabled) {
    background: var(--np-navy);
    transform : translateY(-2px);
}
.an-btn-next:disabled,
.an-btn-submit:disabled {
    opacity: 0.45;
    cursor : not-allowed;
    transform: none;
}


/* ── TRANSIÇÃO ENTRE STEPS (slide horizontal) ─────────────── */
.an-step-panel {
    display: none;
}
.an-step-panel.active {
    display  : block;
    animation: an-slide-in 0.45s var(--np-ease) both;
}
.an-step-panel.exit-left {
    animation: an-slide-out-left 0.35s var(--np-ease) both;
}

@keyframes an-slide-in {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes an-slide-out-left {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(-32px); }
}


/* ── FEEDBACK INLINE ─────────────────────────────────────── */
.an-feedback {
    padding      : 14px 18px;
    border-radius: 10px;
    font-family  : var(--np-sans);
    font-size    : 14px;
    line-height  : 1.5;
    margin-top   : 16px;
    display      : none;
}
.an-feedback--sucesso {
    background: rgba(6,70,94,0.08);
    color     : var(--np-teal);
    border    : 1px solid rgba(6,70,94,0.20);
}
.an-feedback--erro {
    background: rgba(192,57,43,0.07);
    color     : #8b2020;
    border    : 1px solid rgba(192,57,43,0.20);
}


/* ── MODAL DE SUCESSO ────────────────────────────────────── */
.an-modal-overlay {
    position  : fixed;
    inset     : 0;
    background: rgba(25,31,57,0.60);
    z-index   : 9000;
    display   : flex;
    align-items: center;
    justify-content: center;
    padding   : 24px;
    opacity   : 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
    backdrop-filter: blur(4px);
}
.an-modal-overlay.active {
    opacity   : 1;
    visibility: visible;
}

.an-modal {
    background   : var(--np-white);
    border-radius: 20px;
    padding      : 56px 48px;
    max-width    : 480px;
    width        : 100%;
    text-align   : center;
    box-shadow   : 0 32px 80px rgba(25,31,57,0.25);
    transform    : translateY(32px) scale(0.96);
    transition   : transform 0.40s var(--np-ease) 0.05s;
}
.an-modal-overlay.active .an-modal {
    transform: translateY(0) scale(1);
}

.an-modal-icon {
    width          : 80px;
    height         : 80px;
    background     : rgba(6,70,94,0.08);
    border-radius  : 50%;
    display        : flex;
    align-items    : center;
    justify-content: center;
    margin         : 0 auto 24px;
    font-size      : 36px;
    color          : var(--np-teal);
}

.an-modal h2 {
    font-family  : var(--np-serif);
    font-size    : 28px;
    font-weight  : 500;
    color        : var(--np-navy);
    margin-bottom: 12px;
}

.an-modal p {
    font-family  : var(--np-sans);
    font-size    : 15px;
    color        : var(--np-muted);
    line-height  : 1.7;
    margin-bottom: 8px;
}

.an-modal-summary {
    background   : var(--np-bg);
    border-radius: 10px;
    padding      : 16px 20px;
    margin       : 20px 0 32px;
    text-align   : left;
}

.an-modal-summary p {
    font-family  : var(--np-sans);
    font-size    : 13px;
    color        : var(--np-muted);
    margin-bottom: 6px;
}
.an-modal-summary p:last-child { margin-bottom: 0; }
.an-modal-summary strong { color: var(--np-navy); }

.an-modal-wpp {
    display       : inline-flex;
    align-items   : center;
    gap           : 10px;
    background    : #25d366;
    color         : #fff;
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    padding       : 14px 32px;
    border-radius : 40px;
    transition    : background 0.3s ease, transform 0.2s ease;
    margin-bottom : 12px;
}
.an-modal-wpp:hover { background: #1ebe5d; transform: translateY(-2px); }

.an-modal-close {
    display    : block;
    font-family: var(--np-sans);
    font-size  : 13px;
    color      : var(--np-muted);
    background : transparent;
    border     : none;
    cursor     : pointer;
    margin     : 0 auto;
    padding    : 4px 8px;
    transition : color 0.2s ease;
}
.an-modal-close:hover { color: var(--np-navy); }


/* ── RESPONSIVO ───────────────────────────────────────────── */
@media (max-width: 767px) {
    .an-hero-inner { padding: 0 20px; }
    .an-form-section-inner { padding: 0 16px; }
    .an-benefits { flex-direction: column; align-items: center; gap: 16px; }
    .an-step-header { padding: 24px 20px 20px; }
    .an-step-body { padding: 0 20px 28px; }
    .an-row-2,
    .an-row-3,
    .an-row-cep { grid-template-columns: 1fr; }
    .an-stepper::before { left: 5%; width: 90%; }
    .an-step-label { font-size: 10px; }
    .an-modal { padding: 36px 24px; }
    .an-buttons { flex-direction: column-reverse; }
    .an-btn-next, .an-btn-submit, .an-btn-back { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .an-hero-inner,
    .an-card,
    .an-step-panel { transition: none !important; animation: none !important; }
}

/* ============================================================
   [15] HOME — hero + busca inteligente + seções homepage
   Absorve : home-custom.css — eliminado
   Prefixo : bp- (mantido para compatibilidade com PHP existente)
   Fix bug : .hero-bg-image background shorthand sobrescrevia
             o background-image inline — corrigido abaixo
============================================================ */

/* ── FIX CRÍTICO: Banner não repetia — background shorthand
      no header-novo.css sobrescreve o background-image inline.
      Esta regra corrige sem tocar no header-novo.css ── */
.hero-bg-image {
    background-color    : transparent !important;
    background-size     : cover !important;
    background-repeat   : no-repeat !important;
    background-position : center center !important;
}

/* ── Overlay mais escuro para legibilidade do texto ── */
.hero-overlay {
    background: linear-gradient(
        180deg,
        rgba(25, 31, 57, 0.65) 0%,    /* topo — header */
        rgba(25, 31, 57, 0.40) 45%,   /* meio — era 0.20, agora mais escuro */
        rgba(25, 31, 57, 0.72) 100%   /* base */
    ) !important;
}

/* ── Título com text-shadow para contraste em qualquer imagem ── */
.hero-titulo {
    text-shadow: 0 2px 24px rgba(25, 31, 57, 0.55) !important;
}
.hero-eyebrow {
    text-shadow: 0 1px 8px rgba(25, 31, 57, 0.60) !important;
}
.hero-subtitulo {
    text-shadow: 0 1px 8px rgba(25, 31, 57, 0.50) !important;
}


/* ═══════════════════════════════════════════════════════════════
   A+ BOUTIQUE — home-custom.css
   Estilos premium para as seções da homepage (entre header e footer)
   Prefixo bp- (boutique premium) para evitar conflitos com o tema
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Montserrat:wght@300;400;500;600&display=swap');

/* ── VARIÁVEIS — Paleta Oficial do Cliente ── */
:root {
  /* Cores da marca */
  --bp-petrol:      #06465E;          /* Azul Petróleo — Pantone 111-16 C */
  --bp-petrol-lo:   #191F39;  /* petróleo baixa opacidade (marcas em repouso) */
  --bp-petrol-md:   #191F39;
  --bp-navy:        #191F39;          /* Azul Marinho — Pantone BLACK 7 C */
  --bp-navy-2:      #252C4A;
  --bp-gray:        #191F39;          /* Cinza — Pantone 178-9 C */
  --bp-cream:       #EFE3C9;          /* Creme — Pantone 8-1 C */
  --bp-cream-2:     #E5D6B0;          /* creme mais escuro */
  --bp-cream-3:     #FAF7F1;          /* creme claro para cards */

  /* Aliases semânticos */
  --bp-bg-1:        var(--bp-cream-3);   /* fundo primário */
  --bp-bg-2:        var(--bp-cream);     /* fundo alternado */
  --bp-bg-dark:     var(--bp-navy);      /* fundo escuro (CTA final) */
  --bp-text:        var(--bp-navy);
  --bp-text-muted:  var(--bp-gray);
  --bp-accent:      var(--bp-petrol);
  --bp-accent-lo:   var(--bp-petrol-lo);

  --bp-serif: 'Cormorant Garamond', serif;
  --bp-sans:  'Montserrat', sans-serif;
}

/* ── UTILITÁRIOS ── */
.bp-section-label {
  font-family: var(--bp-sans);
  font-size: 0.6rem; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--bp-petrol-lo);          /* baixa opacidade em repouso */
  display: block; margin-bottom: 1rem;
  transition: color 0.4s;
}
.bp-section-label:hover,
*:hover > .bp-section-label { color: var(--bp-petrol); }
.bp-section-header {
  text-align: center; max-width: 700px; margin: 0 auto 4rem;
}
.bp-section-header h2 {
  font-family: var(--bp-serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300; line-height: 1.25; color: var(--bp-navy);
}
.bp-section-header h2 em { font-style: italic; color: var(--bp-petrol); }
.bp-section-header p {
  margin-top: 1rem; font-family: var(--bp-sans);
  font-size: 0.88rem; font-weight: 300; line-height: 2;
  color: var(--bp-gray);
}

/* Botões */
.bp-btn-primary {
  font-family: var(--bp-sans); font-size: 0.65rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bp-cream); background: var(--bp-petrol);
  padding: 1rem 2.5rem; text-decoration: none;
  transition: all 0.3s; display: inline-block; border: none; cursor: pointer;
  border-radius: 4px;
}
.bp-btn-primary:hover { background: var(--bp-navy); color: var(--bp-cream); }
.bp-btn-secondary {
  font-family: var(--bp-sans); font-size: 0.65rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bp-gray); background: transparent;
  border: 1px solid var(--bp-petrol-lo);
  padding: 1rem 2.5rem; text-decoration: none;
  transition: all 0.3s; display: inline-block; cursor: pointer;
  border-radius: 4px;
}
.bp-btn-secondary:hover { border-color: var(--bp-petrol); color: var(--bp-petrol); }
.bp-btn-whatsapp {
  font-family: var(--bp-sans); font-size: 0.65rem; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: #fff; background: #25D366; padding: 1rem 2rem;
  text-decoration: none; display: inline-flex;
  align-items: center; gap: 0.6rem; border: none; cursor: pointer;
  transition: background 0.3s; border-radius: 4px;
}
.bp-btn-whatsapp:hover { background: #1fba58; color: #fff; }

/* Reveal animation */
.bp-reveal {
  opacity: 0; transform: translateY(40px);
  transition: opacity 0.8s, transform 0.8s;
}
.bp-reveal.visible { opacity: 1; transform: translateY(0); }

/* ═══════════════════════════════
   1. LANÇAMENTOS EM DESTAQUE
   ═══════════════════════════════ */
.bp-lancamentos {
  padding: 7rem 4rem;
  background: var(--bp-bg-1);
}
.bp-lancamentos-header {
  display: flex; justify-content: space-between; align-items: flex-end;
  max-width: 1300px; margin: 0 auto 4rem; margin-top: 40px;
}
.bp-lancamentos-header h2 {
  font-family: var(--bp-serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300; line-height: 1.2; color: var(--bp-navy);
}
.bp-lancamentos-header h2 em { font-style: italic; color: var(--bp-petrol); }
.bp-lancamentos-header p {
  font-family: var(--bp-sans); font-size: 0.72rem; font-weight: 300;
  line-height: 1.9; color: var(--bp-gray); max-width: 360px; text-align: right;
}

/* Grid com gap e border-radius */
.bp-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1300px; margin: 0 auto;
  background: transparent;
}

/* ── Card principal ── */
.bp-card {
  background    : var(--bp-navy);
  position      : relative;
  overflow      : hidden;
  cursor        : pointer;
  aspect-ratio  : 4/5;
  display       : flex;
  flex-direction: column;
  justify-content: flex-end;
  text-decoration: none;
  border-radius : 20px;
  transition    : transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94),
                  box-shadow 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  box-shadow    : 0 6px 24px rgba(6,70,94,0.12);
}
.bp-card:hover {
  transform  : translateY(-6px);
  box-shadow : 0 20px 60px rgba(6,70,94,0.22);
}

/* Linha dourada animada no hover */
.bp-card::after {
  content    : '';
  position   : absolute;
  bottom     : 0; left: 0; right: 0;
  height     : 2px;
  background : linear-gradient(90deg, transparent, #C9A96E, transparent);
  opacity    : 0;
  transition : opacity 0.4s ease;
  z-index    : 4;
}
.bp-card:hover::after { opacity: 1; }

.bp-card-img {
  position           : absolute; inset: 0;
  background-size    : cover;
  background-position: center;
  transition         : transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94);
  border-radius      : 20px;
}
.bp-card:hover .bp-card-img { transform: scale(1.06); }

/* Overlay mais suave — respira mais no centro */
.bp-card-overlay {
  position  : absolute; inset: 0;
  background: linear-gradient(
    to top,
    rgba(6,70,94,0.97)  0%,
    rgba(6,70,94,0.70) 35%,
    rgba(6,70,94,0.15) 65%,
    rgba(6,70,94,0.05) 100%
  );
  border-radius: 20px;
  transition   : opacity 0.4s ease;
}
.bp-card:hover .bp-card-overlay { opacity: 0.90; }

/* Seta ↗ com dourado no hover */
.bp-card-arrow {
  position     : absolute; top: 1.25rem; right: 1.25rem; z-index: 3;
  width        : 36px; height: 36px;
  border       : 1px solid rgba(201,169,110,0.30);
  border-radius: 50%;
  display      : flex; align-items: center; justify-content: center;
  color        : rgba(201,169,110,0.70);
  font-size    : 1rem;
  opacity      : 0; transform: translate(5px,-5px);
  transition   : all 0.4s;
  background   : rgba(255,255,255,0.06);
  backdrop-filter: blur(4px);
}
.bp-card:hover .bp-card-arrow {
  opacity      : 1;
  transform    : translate(0,0);
  border-color : #C9A96E;
  color        : #C9A96E;
  background   : rgba(201,169,110,0.12);
}

.bp-card-body {
  position: relative; z-index: 2;
  padding : 1.75rem;
}

.bp-card-bairro {
  font-family   : var(--bp-sans);
  font-size     : 0.68rem;
  font-weight   : 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color         : #C9A96E;
  margin-bottom : 0.65rem;
  transition    : color 0.3s;
}

.bp-card-nome {
  font-family  : var(--bp-serif);
  font-size    : clamp(1.6rem, 2.2vw, 2.1rem);
  font-weight  : 300;
  color        : #F9F6F1;
  line-height  : 1.15;
  margin-bottom: 1.25rem;
  text-shadow  : 0 2px 12px rgba(0,0,0,0.25);
  transition   : color 0.3s;
}
.bp-card:hover .bp-card-nome { color: #ffffff; }

/* Valor — só aparece se existir */
.bp-card-valor {
  font-family   : var(--bp-serif);
  font-size     : 1rem;
  font-weight   : 400;
  color         : #C9A96E;
  margin-bottom : 0.75rem;
  letter-spacing: 0.02em;
}

.bp-card-specs {
  display    : flex; gap: 1.25rem; flex-wrap: wrap;
  border-top : 1px solid rgba(201,169,110,0.20);
  padding-top: 1rem;
}
.bp-card-spec {
  font-family: var(--bp-sans);
  font-size  : 0.76rem; font-weight: 400;
  color      : rgba(249,246,241,0.65);
  display    : flex; align-items: center; gap: 0.45rem;
  transition : color 0.3s;
}
.bp-card:hover .bp-card-spec { color: rgba(249,246,241,0.90); }
.bp-card-spec i {
  color     : #C9A96E; opacity: 0.7;
  font-size : 0.82rem; transition: opacity 0.3s;
}
.bp-card:hover .bp-card-spec i { opacity: 1; }
.bp-card-spec span { color: #F9F6F1; font-weight: 500; font-size: 0.95rem; }

/* Card horizontal (destaque) */
.bp-card-horizontal {
  grid-column: span 2;
  aspect-ratio: auto;
  min-height  : 400px;
}

.bp-ver-mais {
  text-align: center; margin-top: 3rem;
}
.bp-ver-mais a {
  font-family: var(--bp-sans); font-size: 0.65rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bp-petrol-md); background: transparent;
  border: 1px solid var(--bp-petrol-lo);
  padding: 1rem 2.5rem; text-decoration: none;
  display: inline-flex; align-items: center; gap: 0.75rem;
  transition: all 0.3s; border-radius: 4px;
}
.bp-ver-mais a:hover { border-color: var(--bp-petrol); color: var(--bp-petrol); }

/* ═══════════════════════════════
   2. POR QUE COMPRAR
   ═══════════════════════════════ */
.bp-comprar {
  padding: 7rem 4rem;
  background: var(--bp-cream);
}
.bp-comprar-inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6rem;
  align-items: center; max-width: 1300px; margin: 0 auto;
}
.bp-comprar-images {
  position: relative; height: 520px;
}
.bp-img-principal {
  position: absolute; top: 0; left: 0;
  width: 78%; height: 85%;
  object-fit: cover; display: block;
  border-radius: 16px;
}
.bp-img-sobreposta {
  position: absolute; bottom: 0; right: 0;
  width: 55%; height: 55%;
  object-fit: cover; display: block;
  border: 4px solid var(--bp-cream);
  border-radius: 16px;
}
.bp-comprar-label {
  font-family: var(--bp-sans); font-size: 0.6rem; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--bp-petrol-lo);
  display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem;
  transition: color 0.4s;
}
.bp-comprar-label:hover { color: var(--bp-petrol); }
.bp-comprar-label::after {
  content: ''; flex: 1; height: 0.5px;
  background: linear-gradient(to right, var(--bp-petrol-lo), transparent);
}
.bp-comprar-texto h2 {
  font-family: var(--bp-serif);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 300; line-height: 1.25; color: var(--bp-navy);
  margin-bottom: 1.25rem;
}
.bp-comprar-texto h2 em { font-style: italic; color: var(--bp-petrol); }
.bp-comprar-desc {
  font-family: var(--bp-sans); font-size: 0.78rem; font-weight: 300;
  line-height: 2; color: var(--bp-gray); margin-bottom: 2.5rem;
}
.bp-beneficios {
  list-style: none; display: flex; flex-direction: column; gap: 0;
}
.bp-beneficio {
  display: flex; gap: 1.5rem; align-items: flex-start;
  padding: 1.5rem 0;
  border-bottom: 0.5px solid rgba(6,70,94,0.1);
}
.bp-beneficio:last-child { border-bottom: none; }
.bp-beneficio-num {
  font-family: var(--bp-serif); font-size: 2.5rem; font-weight: 300;
  color: var(--bp-petrol); opacity: 0.15; line-height: 1; min-width: 48px;
  transition: opacity 0.4s;
}
.bp-beneficio:hover .bp-beneficio-num { opacity: 0.6; }
.bp-beneficio h4 {
  font-family: var(--bp-serif); font-size: 1.1rem; font-weight: 400;
  color: var(--bp-navy); margin-bottom: 0.5rem; line-height: 1.3;
}
.bp-beneficio p {
  font-family: var(--bp-sans); font-size: 0.72rem; font-weight: 300;
  line-height: 1.9; color: var(--bp-gray);
}

/* ═══════════════════════════════
   3. PARCEIROS
   ═══════════════════════════════ */
.bp-parceiros {
  padding: 6rem 4rem;
  background: var(--bp-bg-1);
  border-top: 0.5px solid rgba(6,70,94,0.08);
  border-bottom: 0.5px solid rgba(6,70,94,0.08);
}
.bp-parceiros-top {
  max-width: 1300px; margin: 0 auto 4rem;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end;
}
.bp-parceiros-top h2 {
  font-family: var(--bp-serif);
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  font-weight: 300; line-height: 1.3; color: var(--bp-navy);
}
.bp-parceiros-top h2 em { font-style: italic; color: var(--bp-petrol); }
.bp-parceiros-top p {
  font-family: var(--bp-sans); font-size: 0.95rem; font-weight: 300;
  line-height: 2; color: var(--bp-gray);
}

/* Carrossel */
.bp-carousel-wrap {
  max-width: 1300px; margin: 0 auto;
  position: relative; overflow: hidden;
}
.bp-fade-left,
.bp-fade-right {
  position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2;
  pointer-events: none;
}
.bp-fade-left  { left: 0;  background: linear-gradient(to right, var(--bp-bg-1), transparent); }
.bp-fade-right { right: 0; background: linear-gradient(to left,  var(--bp-bg-1), transparent); }

.bp-carousel-track {
  display: flex; align-items: center; gap: 0;
  animation: bp-scroll 28s linear infinite;
  width: max-content;
}
.bp-carousel-wrap:hover .bp-carousel-track { animation-play-state: paused; }

/* Logos em baixa opacidade (petróleo) → cor total no hover */
.bp-logo-item {
  padding: 1.5rem 3rem;
  border-right: 0.5px solid rgba(6,70,94,0.06);
  display: flex; align-items: center;
  filter: grayscale(100%) brightness(0.3) sepia(100%) hue-rotate(160deg) saturate(200%);
  opacity: 0.2;
  transition: opacity 0.4s, filter 0.4s;
}
.bp-logo-item:hover {
  opacity: 1;
  filter: grayscale(0%) brightness(1);
}
.bp-logo-item img { height: 40px; width: auto; max-width: 130px; object-fit: contain; }

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

/* ═══════════════════════════════
   4. DEPOIMENTOS
   ═══════════════════════════════ */
.bp-depoimentos {
  padding: 7rem 4rem;
  background: var(--bp-cream);
}
.bp-dep-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
  max-width: 1300px; margin: 0 auto;
}
.bp-dep-card {
  background: var(--bp-cream-3); padding: 2.5rem 2rem;
  transition: background 0.4s, box-shadow 0.4s;
  position: relative; overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(6,70,94,0.06);
}
.bp-dep-card::before {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: var(--bp-petrol);
  transform: scaleX(0); transform-origin: left; transition: transform 0.5s;
  border-radius: 0 0 16px 16px;
}
.bp-dep-card:hover { background: #fff; box-shadow: 0 8px 32px rgba(6,70,94,0.08); }
.bp-dep-card:hover::before { transform: scaleX(1); }
.bp-dep-stars { color: var(--bp-petrol); opacity: 0.3; letter-spacing: 0.15em; font-size: 0.75rem; margin-bottom: 1.25rem; transition: opacity 0.4s; }
.bp-dep-card:hover .bp-dep-stars { opacity: 1; }
.bp-dep-text {
  font-family: var(--bp-serif); font-size: 1rem; font-style: italic;
  font-weight: 300; line-height: 1.85; color: var(--bp-navy);
  margin-bottom: 1.5rem;
}
.bp-dep-text::before { content: '\201C'; color: var(--bp-petrol); opacity: 0.3; transition: opacity 0.4s; }
.bp-dep-text::after  { content: '\201D'; color: var(--bp-petrol); opacity: 0.3; transition: opacity 0.4s; }
.bp-dep-card:hover .bp-dep-text::before,
.bp-dep-card:hover .bp-dep-text::after { opacity: 0.7; }
.bp-dep-author { display: flex; align-items: center; gap: 1rem; }
.bp-dep-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--bp-cream-2); display: flex;
  align-items: center; justify-content: center;
  font-family: var(--bp-serif); font-size: 1.1rem; color: var(--bp-petrol);
  opacity: 0.4; border: 1px solid rgba(6,70,94,0.15); flex-shrink: 0;
  transition: opacity 0.4s;
}
.bp-dep-card:hover .bp-dep-avatar { opacity: 1; }
.bp-dep-name {
  font-family: var(--bp-sans); font-size: 0.72rem; font-weight: 500;
  letter-spacing: 0.08em; color: var(--bp-navy); display: block;
}
.bp-dep-emp {
  font-family: var(--bp-sans); font-size: 0.62rem; color: var(--bp-gray);
  letter-spacing: 0.05em;
}

/* ═══════════════════════════════
   5. SIMULADOR
   ═══════════════════════════════ */
.bp-simulador {
  padding: 7rem 4rem;
  background: var(--bp-bg-1);
}
.bp-sim-inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6rem;
  align-items: start; max-width: 1300px; margin: 0 auto;
}
.bp-sim-left h2 {
  font-family: var(--bp-serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300; line-height: 1.25; color: var(--bp-navy); margin-bottom: 1.5rem;
}
.bp-sim-left h2 em { font-style: italic; color: var(--bp-petrol); }
.bp-sim-left p {
  font-family: var(--bp-sans); font-size: 0.78rem; font-weight: 300;
  line-height: 2; color: var(--bp-gray);
}
.bp-sim-form {
  background: #fff;
  border: 1px solid rgba(6,70,94,0.1);
  padding: 2.5rem; border-radius: 16px;
  box-shadow: 0 4px 24px rgba(6,70,94,0.05);
}
.bp-sim-field { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.5rem; }
.bp-sim-field label {
  font-family: var(--bp-sans); font-size: 0.6rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--bp-gray);
}
.bp-sim-field input {
  background: var(--bp-cream-3); border: 1px solid rgba(6,70,94,0.1);
  color: var(--bp-navy); font-family: var(--bp-sans); font-size: 0.85rem;
  font-weight: 300; padding: 0.9rem 1rem; outline: none;
  transition: border-color 0.3s; width: 100%; border-radius: 8px;
}
.bp-sim-field input:focus { border-color: var(--bp-petrol); }
.bp-sim-field input::placeholder { color: rgba(122,120,107,0.4); }
.bp-sim-results {
  background: var(--bp-cream); border: 1px solid rgba(6,70,94,0.1);
  padding: 1.5rem; margin-top: 1.5rem; display: none; border-radius: 12px;
}
.bp-sim-results.active { display: block; }
.bp-sim-res-label {
  font-family: var(--bp-sans); font-size: 0.58rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--bp-petrol); opacity: 0.5; margin-bottom: 1rem;
}
.bp-sim-res-value {
  font-family: var(--bp-serif); font-size: 2.5rem; font-weight: 300;
  color: var(--bp-navy); line-height: 1; margin-bottom: 1.5rem;
}
.bp-sim-row {
  display: flex; justify-content: space-between;
  padding: 0.6rem 0; border-bottom: 0.5px solid rgba(6,70,94,0.07);
  font-family: var(--bp-sans);
}
.bp-sim-row:last-child { border-bottom: none; }
.bp-sim-row span:first-child { font-size: 0.68rem; color: var(--bp-gray); }
.bp-sim-row span:last-child  { font-size: 0.72rem; color: var(--bp-navy); font-weight: 500; }
.bp-sim-cta { margin-top: 1.5rem; }

/* ═══════════════════════════════
   6. BLOG / NOTÍCIAS
   ═══════════════════════════════ */
.bp-noticias {
  padding: 7rem 4rem;
  background: var(--bp-cream);
}
.bp-noticias-container { max-width: 1300px; margin: 0 auto; }

.bp-noticias #news-cards,
.bp-noticias .cards__grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin-top: 0;
}

.bp-noticias .news-card,
.bp-noticias .card-noticia {
  background: var(--bp-cream-3) !important;
  border: 1px solid rgba(6,70,94,0.07) !important;
  border-radius: 16px !important;
  overflow: hidden;
  transition: box-shadow 0.4s, transform 0.4s !important;
}
.bp-noticias .news-card:hover {
  box-shadow: 0 8px 32px rgba(6,70,94,0.1) !important;
  transform: translateY(-4px) !important;
}
.bp-noticias .news-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.bp-noticias .news-card-body { padding: 1.5rem; }
.bp-noticias .news-card h3,
.bp-noticias .news-card-title {
  font-family: var(--bp-serif) !important;
  font-size: 1.1rem !important; font-weight: 400 !important;
  color: var(--bp-navy) !important; line-height: 1.4 !important;
  margin-bottom: 0.75rem !important;
}
.bp-noticias .news-card p,
.bp-noticias .news-card-excerpt {
  font-family: var(--bp-sans) !important;
  font-size: 0.72rem !important; font-weight: 300 !important;
  line-height: 1.9 !important; color: var(--bp-gray) !important;
}
.bp-noticias .news-card a { text-decoration: none; color: inherit; }
.bp-noticias .news-card-link {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--bp-sans) !important; font-size: 0.6rem !important;
  font-weight: 600 !important; letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--bp-petrol-md) !important; margin-top: 1rem !important;
  text-decoration: none !important; transition: color 0.3s !important;
}
.bp-noticias .news-card-link:hover { color: var(--bp-petrol) !important; }

.bp-btn-leia-mais { text-align: center; margin-top: 3rem; }
.bp-btn-leia-mais button,
#btn-leia-mais {
  font-family: var(--bp-sans) !important; font-size: 0.65rem !important;
  font-weight: 500 !important; letter-spacing: 0.2em !important;
  text-transform: uppercase !important; color: var(--bp-petrol-md) !important;
  background: transparent !important;
  border: 1px solid var(--bp-petrol-lo) !important;
  padding: 1rem 2.5rem !important; cursor: pointer !important;
  transition: all 0.3s !important; border-radius: 4px !important;
}
.bp-btn-leia-mais button:hover,
#btn-leia-mais:hover {
  border-color: var(--bp-petrol) !important;
  color: var(--bp-petrol) !important;
}

/* ───────────────────────────────────────────────────────────
   INDICADORES DE MERCADO — dentro de .bp-noticias
   Paleta: #191F39 (navy) · #06465E (petrol) · #EFE3C9 (cream)
   ─────────────────────────────────────────────────────────── */

/* Variáveis de tendência */
:root {
  --bpm-alta   : #2e8b6a;
  --bpm-baixa  : #c0392b;
  --bpm-neutro : #7A786B;
}

/* ── Ticker ─────────────────────────────────────────────── */
.bpm-ticker {
  background    : #191F39;
  border-radius : 12px;
  overflow      : hidden;
  padding       : 14px 0;
  margin-bottom : 40px;
  position      : relative;
}

.bpm-ticker::before,
.bpm-ticker::after {
  content        : '';
  position       : absolute;
  top            : 0; bottom: 0;
  width          : 80px;
  z-index        : 2;
  pointer-events : none;
}
.bpm-ticker::before {
  left       : 0;
  background : linear-gradient(to right, #191F39, transparent);
}
.bpm-ticker::after {
  right      : 0;
  background : linear-gradient(to left, #191F39, transparent);
}

.bpm-ticker-track {
  display   : flex;
  align-items: center;
  width     : max-content;
  animation : bpmTickerScroll 38s linear infinite;
}
.bpm-ticker-track:hover { animation-play-state: paused; }

@keyframes bpmTickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.bpm-ticker-item {
  display     : flex;
  align-items : center;
  gap         : 10px;
  padding     : 0 28px;
  border-right: 1px solid rgba(239,227,201,0.12);
  white-space : nowrap;
}

.bpm-ticker-icone {
  color     : rgba(239,227,201,0.35);
  font-size : 12px;
}

.bpm-ticker-titulo {
  font-size      : 10px;
  font-weight    : 700;
  letter-spacing : 1.2px;
  text-transform : uppercase;
  color          : #EFE3C9;
}

.bpm-ticker-valor {
  font-size   : 13px;
  font-weight : 800;
}

.bpm-ticker-sep {
  color     : rgba(239,227,201,0.15);
  font-size : 16px;
}

/* ── Cards ──────────────────────────────────────────────── */
.bpm-cards-section { margin-bottom: 40px; }

.bpm-cards-nav {
  display         : flex;
  align-items     : center;
  justify-content : space-between;
  margin-bottom   : 20px;
}

.bpm-cards-titulo {
  font-size      : 11px;
  font-weight    : 700;
  letter-spacing : 2px;
  text-transform : uppercase;
  color          : var(--bp-gray);
  margin         : 0;
}

.bpm-nav-btns { display: flex; gap: 10px; }

.bpm-nav-btn {
  display         : flex;
  align-items     : center;
  justify-content : center;
  width           : 38px;
  height          : 38px;
  background      : transparent;
  border          : 1px solid rgba(6,70,94,0.2);
  border-radius   : 50%;
  color           : #06465E;
  font-size       : 13px;
  cursor          : pointer;
  transition      : background 0.25s, border-color 0.25s, transform 0.2s;
}
.bpm-nav-btn:hover:not(:disabled) {
  background   : #06465E;
  border-color : #06465E;
  color        : #EFE3C9;
  transform    : scale(1.05);
}
.bpm-nav-btn:disabled { opacity: 0.3; cursor: not-allowed; }

.bpm-cards-container { overflow: hidden; }

.bpm-cards-wrap {
  display    : flex;
  gap        : 20px;
  transition : transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Card individual — fundo claro (contexto creme) */
.bpm-card {
  flex          : 0 0 calc((100% - 40px) / 3);
  min-width     : 0;
  background    : #ffffff;
  border        : 1px solid rgba(6,70,94,0.09);
  border-radius : 14px;
  padding       : 26px 22px 22px;
  display       : flex;
  flex-direction: column;
  gap           : 8px;
  transition    : box-shadow 0.3s, transform 0.3s, border-color 0.3s;
  cursor        : default;
}
.bpm-card:hover {
  box-shadow   : 0 8px 28px rgba(6,70,94,0.1);
  transform    : translateY(-3px);
  border-color : rgba(6,70,94,0.18);
}

.bpm-card__topo {
  display         : flex;
  align-items     : center;
  justify-content : space-between;
}

.bpm-card__icone-wrap {
  display         : flex;
  align-items     : center;
  justify-content : center;
  width           : 38px;
  height          : 38px;
  background      : rgba(6,70,94,0.07);
  border-radius   : 9px;
  color           : #06465E;
  font-size       : 15px;
}

.bpm-card__tendencia  { font-size: 16px; }
.bpm-card--alta   .bpm-card__tendencia { color: var(--bpm-alta);   }
.bpm-card--baixa  .bpm-card__tendencia { color: var(--bpm-baixa);  }
.bpm-card--neutro .bpm-card__tendencia { color: var(--bpm-neutro); }

.bpm-card__titulo {
  font-size      : 9px;
  font-weight    : 700;
  letter-spacing : 1.4px;
  text-transform : uppercase;
  color          : var(--bp-gray);
  margin         : 6px 0 0;
}

.bpm-card__valor {
  font-size   : 34px;
  font-weight : 800;
  line-height : 1;
  color       : #191F39;
  font-family : Georgia, 'Times New Roman', serif;
}
.bpm-card--alta  .bpm-card__valor { color: var(--bpm-alta);  }
.bpm-card--baixa .bpm-card__valor { color: var(--bpm-baixa); }

.bpm-card__descricao {
  font-size   : 11px;
  color       : var(--bp-gray);
  line-height : 1.6;
  margin      : 0;
  flex        : 1;
}

.bpm-card__rodape {
  margin-top  : 10px;
  padding-top : 10px;
  border-top  : 1px solid rgba(6,70,94,0.07);
}

.bpm-card__periodo {
  font-size      : 9px;
  font-weight    : 600;
  letter-spacing : 1px;
  text-transform : uppercase;
  color          : rgba(122,120,107,0.6);
}

/* Dots */
.bpm-dots {
  display         : flex;
  justify-content : center;
  gap             : 8px;
  margin-top      : 24px;
}

.bpm-dot {
  width         : 7px;
  height        : 7px;
  border-radius : 50%;
  background    : rgba(6,70,94,0.18);
  border        : none;
  cursor        : pointer;
  transition    : background 0.25s, transform 0.2s;
  padding       : 0;
}
.bpm-dot--ativo {
  background : #06465E;
  transform  : scale(1.3);
}

/* Fonte */
.bpm-fonte {
  text-align : center;
  margin-top : 18px;
}
.bpm-fonte a {
  font-size      : 10px;
  color          : #efe3c9;
  text-decoration: none;
  letter-spacing : 0.5px;
  transition     : color 0.2s;
}
.bpm-fonte a:hover { color: #06465E; }

/* Divisor entre indicadores e blog */
.bpm-divisor {
  border     : none;
  border-top : 1px solid rgba(6,70,94,0.08);
  margin     : 48px 0;
}

/* ── Responsivo ─────────────────────────────────────────── */
@media (max-width: 1100px) {
  .bpm-card { flex: 0 0 calc((100% - 20px) / 2); }
}
@media (max-width: 768px) {
  .bpm-card { flex: 0 0 calc((100% - 20px) / 2); }
  .bpm-card__valor { font-size: 26px; }
}
@media (max-width: 480px) {
  .bpm-card { flex: 0 0 100%; }
  .bpm-card__valor { font-size: 30px; }
  .bpm-ticker-item { padding: 0 18px; }
}

/* ═══════════════════════════════
   7. CTA FINAL
   ═══════════════════════════════ */
.bp-cta-final {
  padding: 9rem 4rem; text-align: center;
  position: relative; overflow: hidden;
  background: var(--bp-navy);
}
.bp-cta-final::before {
  content: 'A+'; font-family: var(--bp-serif);
  font-size: 30vw; font-weight: 300;
  color: var(--bp-petrol); opacity: 0.08;
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1; pointer-events: none; white-space: nowrap;
}
.bp-cta-inner {
  position: relative; z-index: 1;
  max-width: 750px; margin: 0 auto;
}
.bp-cta-final .bp-section-label { color: rgba(239,227,201,0.3); }
.bp-cta-final h2 {
  font-family: var(--bp-serif);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 300; line-height: 1.2; color: var(--bp-cream); margin-bottom: 1.5rem;
}
.bp-cta-final h2 em { font-style: italic; color: rgba(239,227,201,0.7); }
.bp-cta-final p {
  font-family: var(--bp-sans); font-size: 0.88rem; font-weight: 300;
  line-height: 2; color: #EFE3C9; max-width: 550px; margin: 0 auto 3rem;
}
.bp-cta-final .bp-btn-secondary {
  color: rgba(239,227,201,0.5);
  border-color: rgba(239,227,201,0.15);
}
.bp-cta-final .bp-btn-secondary:hover {
  color: var(--bp-cream);
  border-color: rgba(239,227,201,0.5);
}
.bp-cta-group {
  display: flex; gap: 1.25rem; justify-content: center;
  align-items: center; flex-wrap: wrap;
}

/* ── NÚMEROS ── */
.bp-numeros { padding: 0; background: var(--bp-cream); }
.bp-numeros-inner {
  max-width: 1300px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 0.5px solid rgba(6,70,94,0.1);
  border-bottom: 0.5px solid rgba(6,70,94,0.1);
}
.bp-num-item {
  text-align: center; padding: 3.5rem 2rem;
  border-right: 0.5px solid rgba(6,70,94,0.08);
  transition: background 0.3s;
}
.bp-num-item:last-child { border-right: none; }
.bp-num-item:hover { background: rgba(6,70,94,0.03); }
.bp-num-value {
  font-family: var(--bp-serif);
  font-size: clamp(2.5rem, 4vw, 3.8rem);
  font-weight: 300; color: var(--bp-petrol); opacity: 0.25;
  line-height: 1; margin-bottom: 0.75rem;
  transition: opacity 0.4s;
}
.bp-num-item:hover .bp-num-value { opacity: 0.9; }
.bp-num-label {
  font-family: var(--bp-sans); font-size: 0.62rem; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--bp-gray);
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .bp-dep-grid  { grid-template-columns: 1fr 1fr; }
  .bp-sim-inner { grid-template-columns: 1fr; gap: 3rem; }
  .bp-parceiros-top { grid-template-columns: 1fr; gap: 2rem; }
  .bp-numeros-inner { grid-template-columns: 1fr 1fr; }
  .bp-num-item:nth-child(2) { border-right: none; }
}
@media (max-width: 768px) {
  .bp-lancamentos,
  .bp-comprar,
  .bp-parceiros,
  .bp-depoimentos,
  .bp-simulador,
  .bp-noticias,
  .bp-cta-final  { padding: 5rem 1.5rem;margin-top:200px; }

  .bp-lancamentos-header { flex-direction: column; gap: 1.5rem; align-items: flex-start; }
  .bp-lancamentos-header p { text-align: left; max-width: 100%; }

  .bp-cards-grid { grid-template-columns: 1fr; gap: 16px; }
  .bp-card { aspect-ratio: 4/3; }
  .bp-card-horizontal { grid-column: span 1; min-height: auto; }

  .bp-comprar-inner { grid-template-columns: 1fr; gap: 3rem; }
  .bp-comprar-images { height: 280px; }

  .bp-dep-grid { grid-template-columns: 1fr; }

  .bp-noticias #news-cards,
  .bp-noticias .cards__grid { grid-template-columns: 1fr !important; gap: 16px !important; }

  .bp-cta-group { flex-direction: column; }

  .bp-numeros-inner { grid-template-columns: 1fr 1fr; }
}

/* Link "Ver mais" noticias → abrainc.org.br */
.bp-btn-leia-mais-link {
  font-family: var(--bp-sans); font-size: 0.65rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bp-petrol-md); background: transparent;
  border: 1px solid var(--bp-petrol-lo);
  padding: 1rem 2.5rem; cursor: pointer;
  transition: all 0.3s; border-radius: 4px;
  text-decoration: none; display: inline-block;
}
.bp-btn-leia-mais-link:hover {
  border-color: #EFE3C9;
  color: #EFE3C9;
  background-color: #191F39;
}

/* ═══════════════════════════════════════════════════════
   CORREÇÕES VISUAIS — Textos, Logos, Card em breve, Modal
   ═══════════════════════════════════════════════════════ */

/* 1. TEXTOS — Cor sólida #06465E (sem baixa opacidade) */
.bp-section-label {
  color: #2B90B5 !important;
  opacity: 1 !important;
}
.bp-card-bairro {
  color: rgba(239,227,201,0.75) !important;   /* levemente legível sobre foto */
}
.bp-card:hover .bp-card-bairro { color: var(--bp-cream) !important; }
.bp-comprar-label { color: #06465E !important; opacity: 1 !important; }
.bp-num-value { opacity: 1 !important; color: #06465E !important; }
.bp-dep-stars { opacity: 1 !important; color: #06465E !important; }
.bp-dep-text::before,
.bp-dep-text::after  { opacity: 0.5 !important; color: #06465E !important; }
.bp-dep-avatar { opacity: 1 !important; color: #06465E !important; }
.bp-sim-res-label { opacity: 1 !important; color: #06465E !important; }
.bp-ver-mais a { color: #06465E !important; }
.bp-parceiros-label { color: #06465E !important; }

/* 2. LOGOS DAS CONSTRUTORAS — sem mancha, só transparência */
.bp-logo-item {
  padding: 1rem 2.5rem;
  border-right: none;
  display: flex; align-items: center;
  /* Remove o filtro marrom/acinzentado antigo */
  filter: none;
  opacity: 1;
  transition: transform 0.4s;
}
.bp-logo-item img {
  height: 36px; width: auto; max-width: 130px; object-fit: contain;
  /*
   * PNGs com fundo transparente:
   * mix-blend-mode: multiply elimina qualquer fundo branco residual
   * opacity baixa = logo suave em repouso, cor real no hover
   */
  mix-blend-mode: multiply;
  opacity: 0.28;
  transition: opacity 0.45s, transform 0.4s;
}
.bp-logo-item:hover {
  transform: scale(1.08);
}
.bp-logo-item:hover img {
  opacity: 1;
  mix-blend-mode: multiply; /* mantém para eliminar fundo branco mesmo no hover */
}

/* 3. CARD "EM BREVE" — clicável com CTA */
.bp-card-embreve {
  /* Ocupa as 3 colunas como faixa horizontal — sem buraco no grid */
  grid-column: 1 / -1;
  aspect-ratio: auto !important;
  min-height: 140px;
  cursor: pointer;
  background: var(--bp-cream-2);
  border: 1.5px dashed rgba(6,70,94,0.18);
  border-radius: 20px;
  transition: background 0.4s, border-color 0.4s, box-shadow 0.4s;
}
.bp-card-embreve:hover {
  background: var(--bp-cream);
  border-color: rgba(6,70,94,0.45);
  box-shadow: 0 6px 24px rgba(6,70,94,0.07);
}
.bp-embreve-bg { display: none; }
.bp-embreve-body {
  /* Layout horizontal: ícone | texto | botão */
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  height: 100% !important;
  gap: 3rem;
  padding: 2.5rem 4rem !important;
  flex-wrap: wrap;
}
.bp-embreve-icon {
  font-family: var(--bp-serif); font-size: 2.5rem; font-weight: 300;
  color: #06465E; opacity: 0.18; line-height: 1;
  transition: opacity 0.4s; flex-shrink: 0;
}
.bp-card-embreve:hover .bp-embreve-icon { opacity: 0.7; }
.bp-embreve-titulo {
  font-family: var(--bp-serif); font-size: 1.25rem; font-weight: 300;
  color: var(--bp-navy); line-height: 1.45;
}
.bp-embreve-cta {
  font-family: var(--bp-sans); font-size: 0.6rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: #06465E; opacity: 0.35;
  border: 1px solid rgba(6,70,94,0.2);
  padding: 0.75rem 2rem; border-radius: 4px;
  transition: opacity 0.4s, border-color 0.4s, background 0.4s;
  flex-shrink: 0; white-space: nowrap;
}
.bp-card-embreve:hover .bp-embreve-cta {
  opacity: 1; border-color: #06465E;
  background: rgba(6,70,94,0.04);
}

/* Mobile: volta para coluna única */
@media (max-width: 768px) {
  .bp-card-embreve { grid-column: 1; min-height: 180px; }
  .bp-embreve-body {
    flex-direction: column !important;
    gap: 1.25rem; padding: 2rem !important;
  }
}

/* 4. MODAL */
.bp-modal-overlay {
  position: fixed; inset: 0; z-index: 999;
  background: rgba(25,31,57,0.65);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem;
  animation: bp-fade-in 0.3s ease;
}
@keyframes bp-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.bp-modal-box {
  background: var(--bp-cream-3);
  border: 1px solid rgba(6,70,94,0.1);
  border-radius: 20px;
  padding: 2.5rem;
  width: 100%; max-width: 480px;
  position: relative;
  animation: bp-slide-up 0.35s ease;
  box-shadow: 0 20px 60px rgba(25,31,57,0.25);
}
@keyframes bp-slide-up {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
.bp-modal-close {
  position: absolute; top: 1.25rem; right: 1.25rem;
  background: none; border: none; cursor: pointer;
  font-size: 1.1rem; color: var(--bp-gray); line-height: 1;
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.3s, color 0.3s;
}
.bp-modal-close:hover { background: var(--bp-cream-2); color: var(--bp-navy); }
.bp-modal-titulo {
  font-family: var(--bp-serif);
  font-size: 1.75rem; font-weight: 300; line-height: 1.25;
  color: var(--bp-navy); margin: 0.75rem 0 0.75rem;
}
.bp-modal-titulo em { font-style: italic; color: #06465E; }
.bp-modal-desc {
  font-family: var(--bp-sans); font-size: 0.75rem; font-weight: 300;
  line-height: 1.9; color: var(--bp-gray); margin-bottom: 1.75rem;
}
.bp-modal-erro {
  font-family: var(--bp-sans); font-size: 0.68rem; color: #c0392b;
  margin: -0.75rem 0 1rem; padding: 0.5rem 0.75rem;
  background: rgba(192,57,43,0.07); border-radius: 6px;
}
/* Sucesso */
.bp-modal-check {
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(6,70,94,0.1);
  color: #06465E; font-size: 1.5rem;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1.25rem;
}

/* ============================================================
   [15b] BUSCA INTELIGENTE — substitui filtro-flutuante
   Prefixo: hs- (home search)
   Comportamento: campo único + dropdown com resultados ao vivo
============================================================ */

/* ── Wrapper externo (mantém mesma posição do filtro-flutuante) ── */
.hs-wrap {
    position        : relative;
    z-index         : 20;
    width           : 100%;
    padding         : 0 40px 0;
    margin-top      : -180px;
    animation       : fadeInUp 1s ease 0.6s both;
}

/* ── Campo de busca ── */
.hs-form {
    max-width    : 1000px;        /* aumentado de 860 → 1000 para mais presença */
    margin       : 0 auto;
    position     : relative;
}

.hs-input-row {
    display          : flex;
    align-items      : center;
    background       : rgba(255,255,255,0.97);
    backdrop-filter  : blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius    : 16px;
    box-shadow       : 0 20px 60px rgba(25,31,57,0.25);
    padding          : 0 20px 0 28px;
    height           : 80px;
    gap              : 16px;
    transition       : box-shadow 0.3s ease;
}

.hs-input-row:focus-within {
    box-shadow: 0 20px 60px rgba(25,31,57,0.35),
                0 0 0 2px rgba(6,70,94,0.15);
}

.hs-icon {
    color      : #06465E;
    font-size  : 20px;
    flex-shrink: 0;
    opacity    : 0.75;
}

.hs-input {
    flex        : 1;
    border      : none;
    outline     : none;
    background  : transparent;
    font-family : 'Lato', sans-serif;
    font-size   : 16px;
    font-weight : 400;
    color       : #191F39;
}

.hs-input::placeholder {
    color      : #9a9a9a;
    font-weight: 300;
}

.hs-clear {
    width          : 32px;
    height         : 32px;
    border-radius  : 50%;
    border         : none;
    background     : rgba(25,31,57,0.08);
    color          : #191F39;
    font-size      : 16px;
    cursor         : pointer;
    display        : none;
    align-items    : center;
    justify-content: center;
    flex-shrink    : 0;
    transition     : background 0.2s;
}
.hs-clear:hover { background: rgba(25,31,57,0.15); }
.hs-clear.visible { display: flex; }

.hs-btn {
    display        : flex;
    align-items    : center;
    gap            : 10px;
    background     : #06465E;
    color          : #fff;
    border         : none;
    border-radius  : 12px;
    padding        : 0 28px;
    height         : 60px;
    font-family    : 'Lato', sans-serif;
    font-size      : 14px;
    font-weight    : 600;
    letter-spacing : 0.5px;
    cursor         : pointer;
    white-space    : nowrap;
    flex-shrink    : 0;
    transition     : background 0.3s, transform 0.2s;
}
.hs-btn:hover { background: #191F39; transform: translateY(-1px); }

/* ── Dropdown de resultados ── */
.hs-dropdown {
    position     : absolute;
    top          : calc(100% + 10px);
    left         : 0;
    right        : 0;
    background   : #fff;
    border-radius: 16px;
    box-shadow   : 0 24px 64px rgba(25,31,57,0.20);
    overflow     : hidden;
    display      : none;
    max-height   : 480px;
    overflow-y   : auto;
    animation    : hs-drop-in 0.25s var(--np-ease) both;
    z-index      : 100;
}
.hs-dropdown.open { display: block; }

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

/* Scrollbar discreta */
.hs-dropdown::-webkit-scrollbar { width: 4px; }
.hs-dropdown::-webkit-scrollbar-track { background: transparent; }
.hs-dropdown::-webkit-scrollbar-thumb { background: rgba(25,31,57,0.15); border-radius: 4px; }

/* Categoria header */
.hs-cat-header {
    padding       : 12px 20px 8px;
    font-family   : 'Lato', sans-serif;
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color         : #9C8758;
    background    : #FAF7F1;
    border-bottom : 1px solid rgba(25,31,57,0.06);
    position      : sticky;
    top           : 0;
}

/* Item de resultado */
.hs-item {
    display        : flex;
    align-items    : center;
    gap            : 14px;
    padding        : 12px 20px;
    cursor         : pointer;
    text-decoration: none;
    border-bottom  : 1px solid rgba(25,31,57,0.05);
    transition     : background 0.15s;
}
.hs-item:last-of-type { border-bottom: none; }
.hs-item:hover,
.hs-item.focused { background: rgba(6,70,94,0.05); }

/* Thumbnail */
.hs-thumb {
    width        : 56px;
    height       : 56px;
    border-radius: 8px;
    object-fit   : cover;
    flex-shrink  : 0;
    background   : #e8e4da;
}

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

.hs-item-name {
    font-family  : 'Lato', sans-serif;
    font-size    : 14px;
    font-weight  : 600;
    color        : #191F39;
    white-space  : nowrap;
    overflow     : hidden;
    text-overflow: ellipsis;
    margin-bottom: 3px;
}

/* Highlight do termo buscado */
.hs-item-name mark {
    background  : transparent;
    color       : #06465E;
    font-weight : 800;
}

.hs-item-meta {
    font-family: 'Lato', sans-serif;
    font-size  : 12px;
    color      : #888;
    white-space: nowrap;
    overflow   : hidden;
    text-overflow: ellipsis;
}

/* Seta no item */
.hs-item-arrow {
    font-size  : 12px;
    color      : #ccc;
    flex-shrink: 0;
    transition : color 0.15s, transform 0.15s;
}
.hs-item:hover .hs-item-arrow,
.hs-item.focused .hs-item-arrow {
    color    : #06465E;
    transform: translateX(3px);
}

/* Link "Ver todos" */
.hs-view-all {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    padding        : 14px 20px;
    font-family    : 'Lato', sans-serif;
    font-size      : 13px;
    font-weight    : 600;
    color          : #06465E;
    text-decoration: none;
    background     : #FAF7F1;
    border-top     : 1px solid rgba(25,31,57,0.08);
    transition     : background 0.15s;
}
.hs-view-all:hover { background: rgba(6,70,94,0.06); }
.hs-view-all i { font-size: 12px; }

/* Estados: loading / vazio */
.hs-state {
    padding    : 28px 20px;
    text-align : center;
    font-family: 'Lato', sans-serif;
    font-size  : 14px;
    color      : #888;
}

/* Shimmer loading */
.hs-shimmer {
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.hs-shimmer-thumb {
    width: 56px; height: 56px;
    border-radius: 8px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: hs-shimmer 1.2s infinite;
    flex-shrink: 0;
}
.hs-shimmer-lines { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.hs-shimmer-line {
    height: 12px; border-radius: 4px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: hs-shimmer 1.2s infinite;
}
.hs-shimmer-line:last-child { width: 60%; }

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

/* ── Responsivo ── */
@media (max-width: 1024px) {
    .hs-wrap { padding: 0 16px 32px; }
}
@media (max-width: 600px) {
    .hs-wrap { padding: 0 12px 28px;  margin-top: -350px}
    .hs-input-row { height: 68px; padding: 0 14px 0 18px; }
    .hs-btn span { display: none; }
    .hs-btn { padding: 0 18px; }
    .hs-dropdown { border-radius: 12px; }
}

/* ── Dropdown abre para CIMA quando não há espaço abaixo ── */
.hs-dropdown.opens-up {
    top   : auto;
    bottom: calc(100% + 10px);
}

/* ============================================================
   [16] BUSCA INTELIGENTE + MODAL FILTROS — index.php lançamentos
   Prefixo : lf- (lancamento filtro)
   Fase 1  : campo único + modal quartos/banheiros/garagem
   Fase 2  : slider de preço (aguardando ACF valor_do_imovel)
============================================================ */

/* ── Wrapper da busca no index ── */
.lf-search-wrap {
    width         : 100%;
    margin-bottom : 0px;
}

.lf-search-row {
    display        : flex;
    align-items    : center;
    gap            : 12px;
}

/* ── Campo de busca (mesmo estilo da home) ── */
.lf-search-box {
    flex           : 1;
    display        : flex;
    align-items    : center;
    gap            : 12px;
    background     : #fff;
    border         : 1.5px solid var(--np-border);
    border-radius  : 14px;
    padding        : 0 20px;
    height         : 64px;
    box-shadow     : 0 4px 20px rgba(25,31,57,0.07);
    transition     : border-color 0.25s ease, box-shadow 0.25s ease;
}
.lf-search-box:focus-within {
    border-color: var(--np-teal);
    box-shadow  : 0 4px 24px rgba(6,70,94,0.12);
}

.lf-search-icon {
    color    : var(--np-teal);
    font-size: 18px;
    flex-shrink: 0;
}

.lf-search-input {
    flex      : 1;
    border    : none;
    outline   : none;
    background: transparent;
    font-family: var(--np-sans);
    font-size : 15px;
    color     : var(--np-navy);
}
.lf-search-input::placeholder { color: #aaa; font-weight: 300; }

.lf-clear-btn {
    width          : 28px;
    height         : 28px;
    border-radius  : 50%;
    border         : none;
    background     : rgba(25,31,57,0.08);
    color          : var(--np-navy);
    font-size      : 14px;
    cursor         : pointer;
    display        : none;
    align-items    : center;
    justify-content: center;
    flex-shrink    : 0;
    transition     : background 0.2s;
}
.lf-clear-btn:hover   { background: rgba(25,31,57,0.16); }
.lf-clear-btn.visible { display: flex; }

/* ── Botão Filtros ── */
.lf-filter-btn {
    display        : flex;
    align-items    : center;
    gap            : 8px;
    height         : 64px;
    padding        : 0 28px;
    border-radius  : 14px;
    border         : 1.5px solid var(--np-border);
    background     : #fff;
    font-family    : var(--np-sans);
    font-size      : 13px;
    font-weight    : 600;
    letter-spacing : 0.5px;
    color          : var(--np-navy);
    cursor         : pointer;
    white-space    : nowrap;
    box-shadow     : 0 4px 20px rgba(25,31,57,0.07);
    transition     : border-color 0.25s, background 0.25s, color 0.25s;
    position       : relative;
}
.lf-filter-btn:hover  { border-color: var(--np-teal); color: var(--np-teal); }
.lf-filter-btn.active { border-color: var(--np-teal); background: var(--np-teal); color: #fff; }

/* Badge filtros ativos */
.lf-filter-badge {
    position       : absolute;
    top            : -6px;
    right          : -6px;
    width          : 18px;
    height         : 18px;
    border-radius  : 50%;
    background     : var(--np-gold);
    color          : #fff;
    font-size      : 10px;
    font-weight    : 700;
    display        : none;
    align-items    : center;
    justify-content: center;
}
.lf-filter-badge.visible { display: flex; }

/* ── Contador de resultados ── */
.lf-results-count {
    font-family: var(--np-sans);
    font-size  : 13px;
    color      : var(--np-muted);
    margin-top : 12px;
    min-height : 20px;
}
.lf-results-count strong { color: var(--np-teal); }

/* ── Tags de filtros ativos ── */
.lf-active-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.lf-tag {
    display       : inline-flex;
    align-items   : center;
    gap           : 6px;
    background    : rgba(6,70,94,0.08);
    color         : var(--np-teal);
    border-radius : 20px;
    padding       : 4px 12px;
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 600;
}
.lf-tag i { font-size: 10px; }

/* ── MODAL DE FILTROS ── */
.lf-modal-overlay {
    position        : fixed;
    inset           : 0;
    background      : rgba(25,31,57,0.50);
    z-index         : 9000;
    display         : flex;
    align-items     : flex-end;
    justify-content : center;
    opacity         : 0;
    visibility      : hidden;
    transition      : opacity 0.30s ease, visibility 0.30s ease;
    backdrop-filter : blur(3px);
}
.lf-modal-overlay.open { opacity: 1; visibility: visible; }

.lf-modal {
    background   : #fff;
    border-radius: 24px 24px 0 0;
    width        : 100%;
    max-width    : 680px;
    max-height   : 90vh;
    overflow-y   : auto;
    padding      : 32px 32px 40px;
    transform    : translateY(100%);
    transition   : transform 0.35s var(--np-ease);
}
.lf-modal-overlay.open .lf-modal { transform: translateY(0) scale(1); }

@media (min-width: 768px) {
    .lf-modal-overlay { align-items: center; }
    .lf-modal {
        border-radius: 20px;
        max-height   : 85vh;
        transform    : translateY(32px) scale(0.96);
    }
}

.lf-modal-handle {
    width: 40px; height: 4px;
    background: var(--np-border);
    border-radius: 2px;
    margin: 0 auto 24px;
    display: block;
}
@media (min-width: 768px) { .lf-modal-handle { display: none; } }

.lf-modal-header {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    margin-bottom  : 24px;
    padding-bottom : 20px;
    border-bottom  : 1px solid var(--np-border);
}
.lf-modal-title {
    font-family: var(--np-serif);
    font-size  : 22px;
    font-weight: 500;
    color      : var(--np-navy);
}
.lf-modal-close {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 1.5px solid var(--np-border);
    background: transparent;
    font-size: 18px;
    color: var(--np-muted);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: border-color 0.2s, color 0.2s;
}
.lf-modal-close:hover { border-color: var(--np-navy); color: var(--np-navy); }

.lf-modal-section { margin-bottom: 28px; }
.lf-modal-section-title {
    font-family: var(--np-sans); font-size: 14px; font-weight: 700;
    color: var(--np-navy); margin-bottom: 4px;
}
.lf-modal-section-sub {
    font-family: var(--np-sans); font-size: 13px;
    color: var(--np-muted); margin-bottom: 16px;
}

/* Pills numéricas */
.lf-pills { display: flex; flex-wrap: wrap; gap: 10px; }

.lf-pill {
    width: 52px; height: 52px;
    border-radius: 12px;
    border: 1.5px solid var(--np-border);
    background: #fff;
    font-family: var(--np-sans); font-size: 15px; font-weight: 500;
    color: var(--np-navy);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.lf-pill:hover         { border-color: var(--np-teal); color: var(--np-teal); }
.lf-pill.selected      { border-color: var(--np-teal); background: var(--np-teal); color: #fff; }
.lf-pill--any          { width: auto; padding: 0 18px; font-size: 13px; color: var(--np-muted); }
.lf-pill--any.selected { background: rgba(6,70,94,0.08); border-color: var(--np-teal); color: var(--np-teal); }

/* Pills tipo */
.lf-tipo-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.lf-tipo-pill {
    padding: 8px 18px; border-radius: 20px;
    border: 1.5px solid var(--np-border); background: #fff;
    font-family: var(--np-sans); font-size: 13px; font-weight: 500;
    color: var(--np-navy); cursor: pointer;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.lf-tipo-pill:hover    { border-color: var(--np-teal); }
.lf-tipo-pill.selected { border-color: var(--np-teal); background: var(--np-teal); color: #fff; }

/* Nota Fase 2 */
.lf-phase2-note {
    background: var(--np-bg); border-radius: 10px;
    padding: 14px 18px; margin-bottom: 28px;
    font-family: var(--np-sans); font-size: 13px; color: var(--np-muted);
    display: flex; align-items: center; gap: 10px;
}
.lf-phase2-note i { color: var(--np-gold); }

/* Footer modal */
.lf-modal-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding-top: 20px; border-top: 1px solid var(--np-border); margin-top: 28px; gap: 12px;
}
.lf-btn-reset {
    font-family: var(--np-sans); font-size: 13px; font-weight: 600;
    color: var(--np-muted); background: transparent; border: none;
    cursor: pointer; text-decoration: underline; transition: color 0.2s;
}
.lf-btn-reset:hover { color: var(--np-navy); }
.lf-btn-apply {
    font-family: var(--np-sans); font-size: 13px; font-weight: 600;
    letter-spacing: 1px; text-transform: uppercase;
    color: #fff; background: var(--np-navy);
    border: none; padding: 14px 36px; border-radius: 40px;
    cursor: pointer; transition: background 0.3s, transform 0.2s;
}
.lf-btn-apply:hover { background: var(--np-teal); transform: translateY(-1px); }

/* Loading + vazio */
.lf-cards-loading { opacity: 0.45; pointer-events: none; transition: opacity 0.2s; }

.lf-empty-state { grid-column: 1 / -1; text-align: center; padding: 64px 20px; }
.lf-empty-icon  { font-size: 48px; color: var(--np-border); margin-bottom: 16px; }
.lf-empty-state h3 {
    font-family: var(--np-serif); font-size: 22px;
    color: var(--np-navy); margin-bottom: 8px;
}
.lf-empty-state p { font-family: var(--np-sans); font-size: 14px; color: var(--np-muted); }
.lf-btn-limpar {
    margin-top: 20px; font-family: var(--np-sans); font-size: 13px; font-weight: 600;
    color: var(--np-teal); background: transparent;
    border: 1.5px solid var(--np-teal); padding: 10px 24px;
    border-radius: 40px; cursor: pointer; transition: background 0.2s, color 0.2s;
}
.lf-btn-limpar:hover { background: var(--np-teal); color: #fff; }

/* Responsivo */
@media (max-width: 599px) {
    .lf-search-row  { flex-wrap: wrap; }
    .lf-filter-btn  { width: 100%; justify-content: center; height: 52px; }
    .lf-search-box  { height: 52px; }
    .lf-modal       { padding: 24px 20px 32px; }
}


/* ============================================================
   [16b] SLIDER DE PREÇO + BADGE DE VALOR NO CARD
   Fase 2 — ativo após ACF valor_do_imovel criado
============================================================ */

/* ── Badge de preço no card ── */
.card-preco-badge {
    position      : absolute;
    top           : 14px;
    right         : 14px;
    z-index       : 3;
    background    : rgba(25, 31, 57, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color         : var(--np-gold);
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 700;
    letter-spacing: 0.5px;
    padding       : 5px 12px;
    border-radius : 20px;
    border        : 1px solid rgba(156, 135, 88, 0.35);
    white-space   : nowrap;
    pointer-events: none;
}

.card-preco-badge.consulte {
    color  : rgba(239, 227, 201, 0.70);
    font-weight: 400;
    font-size  : 11px;
    border-color: rgba(239, 227, 201, 0.20);
}


/* ── Slider dual range de preço ── */
.lf-preco-section { margin-bottom: 28px; }

.lf-preco-values {
    display        : flex;
    justify-content: space-between;
    align-items    : center;
    margin-bottom  : 20px;
}

.lf-preco-value {
    font-family   : var(--np-sans);
    font-size     : 14px;
    font-weight   : 600;
    color         : var(--np-navy);
}

.lf-preco-sep {
    font-family: var(--np-sans);
    font-size  : 13px;
    color      : var(--np-muted);
}

/* Container do slider duplo */
.lf-slider-wrap {
    position: relative;
    height  : 40px;
    display : flex;
    align-items: center;
}

.lf-slider-track {
    position     : absolute;
    left         : 0;
    right        : 0;
    height       : 4px;
    background   : var(--np-border);
    border-radius: 2px;
    z-index      : 0;
}

.lf-slider-fill {
    position     : absolute;
    height       : 4px;
    background   : var(--np-teal);
    border-radius: 2px;
    z-index      : 1;
    pointer-events: none;
}

/* Os dois inputs range sobrepostos */
.lf-range {
    position  : absolute;
    width     : 100%;
    height    : 4px;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    outline   : none;
    pointer-events: none;
    z-index   : 2;
}

.lf-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width         : 22px;
    height        : 22px;
    border-radius : 50%;
    background    : #fff;
    border        : 2px solid var(--np-teal);
    box-shadow    : 0 2px 8px rgba(6,70,94,0.20);
    cursor        : pointer;
    pointer-events: all;
    transition    : transform 0.15s ease, box-shadow 0.15s ease;
}
.lf-range::-webkit-slider-thumb:hover,
.lf-range::-webkit-slider-thumb:active {
    transform : scale(1.15);
    box-shadow: 0 4px 12px rgba(6,70,94,0.30);
}

.lf-range::-moz-range-thumb {
    width         : 22px;
    height        : 22px;
    border-radius : 50%;
    background    : #fff;
    border        : 2px solid var(--np-teal);
    box-shadow    : 0 2px 8px rgba(6,70,94,0.20);
    cursor        : pointer;
    pointer-events: all;
}

/* Labels min/max */
.lf-preco-limits {
    display        : flex;
    justify-content: space-between;
    margin-top     : 8px;
}
.lf-preco-limits span {
    font-family: var(--np-sans);
    font-size  : 11px;
    color      : var(--np-muted);
}

/* ============================================================
   [17] SINGLE EMPREENDIMENTO — page styles
   Elimina : empreendimento.css — tudo unificado aqui
   Prefixo : se-
   Layout  : galeria esquerda + painel sticky direita (60/40)
   Google  : Maps JS API (marcador personalizado)
============================================================ */

section#se-page { background: var(--np-white); padding-top: 0; }
.se-inner { max-width: 1400px; margin: 0 auto; padding: 0 40px; }

/* ── GALERIA ── */
.se-gallery-section { background: var(--np-navy); position: relative; overflow: hidden; }
.se-gallery-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 340px 340px; gap: 3px; max-height: 683px; }
.se-gallery-grid .se-img { overflow: hidden; cursor: pointer; position: relative; background: var(--np-navy); }
.se-gallery-grid .se-img:first-child { grid-column: 1; grid-row: 1 / 3; }
.se-gallery-grid .se-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--np-ease); }
.se-gallery-grid .se-img:hover img { transform: scale(1.04); }
.se-gallery-btn { position: absolute; bottom: 20px; right: 20px; background: rgba(255,255,255,0.92); backdrop-filter: blur(8px); color: var(--np-navy); border: none; border-radius: 8px; padding: 10px 18px; font-family: var(--np-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.5px; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: background 0.2s, transform 0.2s; z-index: 5; }
.se-gallery-btn:hover { background: #fff; transform: translateY(-1px); }

/* ── LIGHTBOX ── */
.se-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,0.94); z-index: 9999; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; }
.se-lightbox.open { opacity: 1; visibility: visible; }
.se-lightbox img { max-width: 90vw; max-height: 88vh; object-fit: contain; border-radius: 4px; box-shadow: 0 32px 80px rgba(0,0,0,0.5); }
.se-lightbox-close { position: absolute; top: 20px; right: 24px; background: rgba(255,255,255,0.12); border: none; color: #fff; font-size: 24px; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
.se-lightbox-close:hover { background: rgba(255,255,255,0.22); }
.se-lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.12); border: none; color: #fff; font-size: 20px; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
.se-lightbox-nav:hover { background: rgba(255,255,255,0.22); }
.se-lightbox-prev { left: 24px; }
.se-lightbox-next { right: 24px; }
.se-lightbox-counter { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,0.70); font-family: var(--np-sans); font-size: 13px; }

/* ── SPLIT BODY 60/40 ── */
.se-body { display: grid; grid-template-columns: 1fr 400px; gap: 48px; align-items: start; padding: 48px 40px 80px; max-width: 1400px; margin: 0 auto; }

/* ── TÍTULO + ENDEREÇO ── */
.se-title-block { margin-bottom: 32px; opacity: 0; transform: translateY(24px); transition: opacity 0.75s var(--np-ease), transform 0.75s var(--np-ease); }
.se-title-block.np-visible { opacity: 1; transform: translateY(0); }
.se-title-block h1 { font-family: var(--np-serif); font-size: clamp(28px,3.5vw,48px); font-weight: 500; color: var(--np-navy); line-height: 1.15; margin-bottom: 12px; }
.se-address { font-family: var(--np-sans); font-size: 15px; color: var(--np-muted); display: flex; align-items: center; gap: 8px; }
.se-address i { color: var(--np-teal); font-size: 14px; }
.se-valor { margin-top: 16px; font-family: var(--np-serif); font-size: clamp(22px,2.5vw,32px); font-weight: 500; color: var(--np-teal); }
.se-valor.consulte { font-size: 18px; color: var(--np-gold); font-style: italic; }

/* ── FEATURE CARDS ── */
.se-features { display: flex; gap: 16px; flex-wrap: wrap; margin: 32px 0; opacity: 0; transform: translateY(20px); transition: opacity 0.65s var(--np-ease) 0.10s, transform 0.65s var(--np-ease) 0.10s; }
.se-features.np-visible { opacity: 1; transform: translateY(0); }
.se-feature-card { flex: 1; min-width: 100px; background: var(--np-bg); border-radius: 12px; padding: 20px 16px; text-align: center; border: 1px solid var(--np-border); transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.se-feature-card:hover { border-color: var(--np-teal); box-shadow: 0 4px 16px rgba(6,70,94,0.10); }
.se-feature-icon { font-size: 22px; color: var(--np-teal); margin-bottom: 8px; }
.se-feature-value { font-family: var(--np-serif); font-size: 20px; font-weight: 600; color: var(--np-navy); line-height: 1; margin-bottom: 4px; }
.se-feature-label { font-family: var(--np-sans); font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--np-muted); }

/* ── DESCRIÇÃO ── */
.se-description { font-family: var(--np-sans); font-size: 16px; line-height: 2; color: #444; margin-bottom: 40px; opacity: 0; transform: translateY(20px); transition: opacity 0.65s var(--np-ease) 0.20s, transform 0.65s var(--np-ease) 0.20s; }
.se-description.np-visible { opacity: 1; transform: translateY(0); }
.se-description p { margin-bottom: 24px; }
.se-description p:last-child { margin-bottom: 0; }

/* ── SEÇÕES PILLS ── */
.se-section { margin-bottom: 40px; opacity: 0; transform: translateY(20px); transition: opacity 0.65s var(--np-ease) var(--np-delay, 0.25s), transform 0.65s var(--np-ease) var(--np-delay, 0.25s); }
.se-section.np-visible { opacity: 1; transform: translateY(0); }
.se-section-title { font-family: var(--np-sans); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--np-gold); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.se-section-title::after { content: ''; flex: 1; height: 1px; background: var(--np-border); }
.se-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.se-pill { display: flex; align-items: center; gap: 8px; padding: 8px 16px; background: var(--np-bg); border: 1px solid var(--np-border); border-radius: 20px; font-family: var(--np-sans); font-size: 13px; color: var(--np-navy); }
.se-pill i { color: var(--np-teal); font-size: 13px; }

/* ── VÍDEO ── */
.se-video-wrap { position: relative; padding-top: 56.25%; border-radius: 16px; overflow: hidden; margin-bottom: 40px; box-shadow: var(--np-shadow); }
.se-video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }

/* ── PLANTAS ── */
.se-plantas-btn { display: inline-flex; align-items: center; gap: 10px; background: transparent; border: 1.5px solid var(--np-teal); color: var(--np-teal); font-family: var(--np-sans); font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; padding: 12px 28px; border-radius: 40px; cursor: pointer; margin-bottom: 40px; transition: background 0.3s ease, color 0.3s ease; }
.se-plantas-btn:hover { background: var(--np-teal); color: #fff; }

/* ── SIDEBAR STICKY ── */
.se-sidebar { position: sticky; top: 100px; background: var(--np-white); border: 1px solid var(--np-border); border-radius: 16px; box-shadow: 0 8px 40px rgba(25,31,57,0.10); overflow: hidden; opacity: 0; transform: translateX(24px); transition: opacity 0.80s var(--np-ease) 0.15s, transform 0.80s var(--np-ease) 0.15s; }
.se-sidebar.np-visible { opacity: 1; transform: translateX(0); }
.se-sidebar-header { background: var(--np-navy); padding: 24px 28px; text-align: center; }
.se-sidebar-title { font-family: var(--np-serif); font-size: 20px; font-weight: 500; color: var(--np-cream); margin-bottom: 4px; }
.se-sidebar-sub { font-family: var(--np-sans); font-size: 13px; color: rgba(239,227,201,0.60); }
.se-sidebar-body { padding: 28px; }
.se-sidebar-features { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--np-border); }
.se-sidebar-feat { text-align: center; }
.se-sidebar-feat-val { font-family: var(--np-serif); font-size: 18px; font-weight: 600; color: var(--np-navy); }
.se-sidebar-feat-lbl { font-family: var(--np-sans); font-size: 10px; letter-spacing: 0.8px; text-transform: uppercase; color: var(--np-muted); }
.se-sidebar-valor { text-align: center; font-family: var(--np-serif); font-size: 26px; font-weight: 500; color: var(--np-teal); margin-bottom: 24px; }
.se-sidebar-valor.consulte { font-size: 18px; color: var(--np-gold); font-style: italic; }
.se-sidebar-form { display: flex; flex-direction: column; gap: 14px; }
.se-sidebar-form input { font-family: var(--np-sans); font-size: 14px; color: var(--np-text); background: var(--np-bg); border: 1.5px solid var(--np-border); border-radius: 10px; padding: 12px 16px; width: 100%; outline: none; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.se-sidebar-form input::placeholder { color: #aaa; }
.se-sidebar-form input:focus { border-color: var(--np-teal); box-shadow: 0 0 0 3px rgba(6,70,94,0.08); }
.se-sidebar-submit { font-family: var(--np-sans); font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #fff; background: var(--np-navy); border: none; padding: 15px; border-radius: 40px; cursor: pointer; width: 100%; transition: background 0.3s ease, transform 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 8px; }
.se-sidebar-submit:hover:not(:disabled) { background: var(--np-teal); transform: translateY(-1px); }
.se-sidebar-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.se-btn-agendar { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin-top: 12px; font-family: var(--np-sans); font-size: 13px; font-weight: 600; letter-spacing: 0.8px; color: var(--np-teal); background: transparent; border: 1.5px solid var(--np-teal); padding: 13px; border-radius: 40px; cursor: pointer; transition: background 0.3s ease, color 0.3s ease; }
.se-btn-agendar:hover { background: var(--np-teal); color: #fff; }
.se-sidebar-feedback { font-family: var(--np-sans); font-size: 13px; padding: 12px 16px; border-radius: 10px; margin-top: 8px; display: none; text-align: center; }
.se-sidebar-feedback.sucesso { background: rgba(6,70,94,0.08); color: var(--np-teal); border: 1px solid rgba(6,70,94,0.20); }
.se-sidebar-feedback.erro { background: rgba(192,57,43,0.07); color: #8b2020; border: 1px solid rgba(192,57,43,0.20); }

/* ── MAPA ── */
section.se-map-section { background: var(--np-navy); padding: 0; }
.se-map-inner { max-width: 1400px; margin: 0 auto; padding: 56px 40px; }
.se-map-label { font-family: var(--np-sans); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--np-gold); margin-bottom: 12px; }
.se-map-title { font-family: var(--np-serif); font-size: clamp(22px,2.5vw,34px); font-weight: 500; color: var(--np-cream); margin-bottom: 32px; }
#se-google-map { width: 100%; height: 440px; border-radius: 16px; overflow: hidden; box-shadow: 0 16px 48px rgba(0,0,0,0.30); }

/* ── MODAL CALENDÁRIO ── */
.se-cal-overlay { position: fixed; inset: 0; background: rgba(25,31,57,0.55); z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity 0.30s ease, visibility 0.30s ease; backdrop-filter: blur(4px); }
.se-cal-overlay.open { opacity: 1; visibility: visible; }
.se-cal-modal { background: #fff; border-radius: 20px; width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto; box-shadow: 0 32px 80px rgba(25,31,57,0.25); transform: translateY(24px) scale(0.97); transition: transform 0.35s var(--np-ease) 0.05s; }
.se-cal-overlay.open .se-cal-modal { transform: translateY(0) scale(1); }
.se-cal-header { background: var(--np-navy); padding: 24px 28px; display: flex; align-items: center; justify-content: space-between; }
.se-cal-header-title { font-family: var(--np-serif); font-size: 20px; font-weight: 500; color: var(--np-cream); }
.se-cal-close { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(239,227,201,0.30); background: transparent; color: var(--np-cream); font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
.se-cal-close:hover { background: rgba(239,227,201,0.15); }
.se-cal-body { padding: 28px; }
.se-cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.se-cal-nav-btn { width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--np-border); background: transparent; color: var(--np-navy); font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color 0.2s, color 0.2s, background 0.2s; }
.se-cal-nav-btn:hover { border-color: var(--np-teal); color: var(--np-teal); background: rgba(6,70,94,0.05); }
.se-cal-month-label { font-family: var(--np-serif); font-size: 18px; font-weight: 500; color: var(--np-navy); }
.se-cal-weekdays { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; margin-bottom: 8px; }
.se-cal-weekday { font-family: var(--np-sans); font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--np-muted); text-align: center; padding: 6px 0; }
.se-cal-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; }
.se-cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-family: var(--np-sans); font-size: 14px; color: var(--np-navy); cursor: pointer; border: 1.5px solid transparent; transition: all 0.2s ease; }
.se-cal-day:hover:not(.disabled):not(.empty) { border-color: var(--np-teal); color: var(--np-teal); background: rgba(6,70,94,0.05); }
.se-cal-day.selected { background: var(--np-teal); border-color: var(--np-teal); color: #fff; font-weight: 700; }
.se-cal-day.today { border-color: var(--np-gold); color: var(--np-gold); font-weight: 600; }
.se-cal-day.disabled { color: #d0d0d0; cursor: not-allowed; }
.se-cal-day.weekend { color: var(--np-muted); }
.se-cal-day.empty { cursor: default; }
.se-cal-horario { margin-top: 20px; }
.se-cal-horario label { font-family: var(--np-sans); font-size: 12px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--np-navy); margin-bottom: 10px; display: block; }
.se-cal-horario-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.se-cal-hora-btn { padding: 8px 18px; border-radius: 20px; border: 1.5px solid var(--np-border); background: transparent; font-family: var(--np-sans); font-size: 13px; color: var(--np-navy); cursor: pointer; transition: all 0.2s ease; }
.se-cal-hora-btn:hover { border-color: var(--np-teal); color: var(--np-teal); }
.se-cal-hora-btn.selected { border-color: var(--np-teal); background: var(--np-teal); color: #fff; }
.se-cal-form { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--np-border); }
.se-cal-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.se-cal-form input { font-family: var(--np-sans); font-size: 14px; color: var(--np-text); background: var(--np-bg); border: 1.5px solid var(--np-border); border-radius: 10px; padding: 12px 16px; width: 100%; outline: none; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.se-cal-form input:focus { border-color: var(--np-teal); box-shadow: 0 0 0 3px rgba(6,70,94,0.08); }
.se-cal-submit { font-family: var(--np-sans); font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #fff; background: var(--np-teal); border: none; padding: 15px; border-radius: 40px; cursor: pointer; transition: background 0.3s ease, transform 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 8px; }
.se-cal-submit:hover:not(:disabled) { background: var(--np-navy); transform: translateY(-1px); }
.se-cal-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.se-cal-feedback { font-family: var(--np-sans); font-size: 13px; padding: 12px; border-radius: 10px; text-align: center; display: none; }
.se-cal-feedback.sucesso { background: rgba(6,70,94,0.08); color: var(--np-teal); border: 1px solid rgba(6,70,94,0.20); }
.se-cal-feedback.erro { background: rgba(192,57,43,0.07); color: #8b2020; border: 1px solid rgba(192,57,43,0.20); }

/* ── Modal Plantas ── */
.se-plantas-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.88); z-index: 9000; flex-direction: column; align-items: center; justify-content: center; backdrop-filter: blur(4px); }
.se-plantas-overlay.open { display: flex; }
.se-plantas-slider { position: relative; width: 90%; max-width: 900px; height: 75vh; overflow: hidden; }
.se-planta-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.5s ease; display: flex; align-items: center; justify-content: center; }
.se-planta-slide.active { opacity: 1; z-index: 1; }
.se-planta-slide img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 12px; }
.se-plantas-nav { display: flex; gap: 12px; margin-top: 20px; }
.se-plantas-nav button { padding: 10px 24px; border-radius: 40px; border: 1.5px solid rgba(255,255,255,0.30); background: transparent; color: #fff; font-family: var(--np-sans); font-size: 13px; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.se-plantas-nav button:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.60); }
.se-plantas-close { position: absolute; top: 20px; right: 24px; background: rgba(255,255,255,0.12); border: none; color: #fff; font-size: 22px; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
.se-plantas-close:hover { background: rgba(255,255,255,0.22); }

/* ── Carousel prontos próximos ── */
section.se-prontos-section { background: var(--np-bg); padding: 72px 0; overflow: hidden; }
.se-prontos-inner { max-width: 1400px; margin: 0 auto; padding: 0 40px; }
.se-prontos-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 36px; gap: 20px; }
.se-prontos-header h2 { font-family: var(--np-serif); font-size: clamp(22px,2.5vw,34px); font-weight: 500; color: var(--np-navy); margin-bottom: 6px; }
.se-prontos-header p { font-family: var(--np-sans); font-size: 14px; color: var(--np-muted); }
.se-prontos-nav { display: flex; gap: 10px; flex-shrink: 0; }
.se-prontos-nav-btn { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--np-border); background: var(--np-white); color: var(--np-navy); font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color 0.25s, background 0.25s, color 0.25s; }
.se-prontos-nav-btn:hover { border-color: var(--np-teal); background: var(--np-teal); color: #fff; }
.se-prontos-track-wrap { overflow: hidden; position: relative; }
.se-prontos-track { display: flex; gap: 20px; transition: transform 0.55s var(--np-ease); will-change: transform; }
.se-pronto-card { flex: 0 0 calc(33.333% - 14px); min-width: 280px; border-radius: 14px; overflow: hidden; background: var(--np-white); box-shadow: 0 4px 20px rgba(25,31,57,0.07); text-decoration: none; display: block; transition: transform 0.35s var(--np-ease), box-shadow 0.35s var(--np-ease); }
.se-pronto-card:hover { transform: translateY(-5px); box-shadow: 0 16px 48px rgba(25,31,57,0.14); }
.se-pronto-card-img { width: 100%; height: 200px; overflow: hidden; }
.se-pronto-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--np-ease); }
.se-pronto-card:hover .se-pronto-card-img img { transform: scale(1.05); }
.se-pronto-card-body { padding: 20px; }
.se-pronto-card-bairro { font-family: var(--np-sans); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--np-gold); margin-bottom: 6px; }
.se-pronto-card-title { font-family: var(--np-serif); font-size: 16px; font-weight: 500; color: var(--np-navy); line-height: 1.3; margin-bottom: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.se-pronto-card-meta { font-family: var(--np-sans); font-size: 12px; color: var(--np-muted); display: flex; gap: 12px; flex-wrap: wrap; }
.se-pronto-card-meta span { display: flex; align-items: center; gap: 5px; }
.se-pronto-card-meta i { color: var(--np-teal); font-size: 11px; }
.se-prontos-loading { display: flex; align-items: center; justify-content: center; padding: 48px; color: var(--np-muted); font-family: var(--np-sans); font-size: 14px; gap: 12px; }
.se-prontos-dots { display: flex; justify-content: center; gap: 8px; margin-top: 28px; }
.se-pronto-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--np-border); cursor: pointer; transition: background 0.25s ease, transform 0.25s ease; border: none; padding: 0; }
.se-pronto-dot.active { background: var(--np-teal); transform: scale(1.3); }

/* ── Responsivo ── */
@media (max-width: 1023px) { .se-body { grid-template-columns: 1fr; } .se-sidebar { position: static; } .se-gallery-grid { grid-template-rows: 260px 260px; } .se-body { padding-left: 20px; padding-right: 20px; } }
@media (max-width: 599px) { .se-gallery-grid { grid-template-columns: 1fr; grid-template-rows: 280px; } .se-gallery-grid .se-img:not(:first-child) { display: none; } .se-gallery-grid .se-img:first-child { grid-row: auto; } .se-cal-form-row { grid-template-columns: 1fr; } .se-features { gap: 10px; } .se-feature-card { min-width: 0; flex: 1 1 calc(50% - 5px); max-width: calc(50% - 5px); padding: 14px 10px; } }



/* ============================================================
   [18] PÁGINA PRONTOS — mapa Google Maps + cards premium
   Absorve : prontos.css — eliminado
   Prefixo : pr-
   Layout  : mapa sticky 30% esquerda | cards 70% direita
============================================================ */

/* ── Reset do body ── */
body { background-color: var(--np-bg); }

/* ── Barra de busca ── */
section#boutiqueProntosFiltros {
    background: var(--np-navy);
    padding   : 20px 0;
    position  : sticky;
    top        : 0;
    z-index    : 200;
    box-shadow : 0 2px 20px rgba(0,0,0,0.20);
}

.pr-search-wrap {
    max-width: 1400px;
    margin   : 0 auto;
    padding  : 0 40px;
    position : relative;
}

.pr-search-box {
    display        : flex;
    align-items    : center;
    gap            : 12px;
    background     : rgba(255,255,255,0.10);
    border         : 1.5px solid rgba(255,255,255,0.20);
    border-radius  : 12px;
    padding        : 0 20px;
    height         : 52px;
    backdrop-filter: blur(8px);
    transition     : border-color 0.25s, background 0.25s;
}
.pr-search-box:focus-within {
    background  : rgba(255,255,255,0.95);
    border-color: var(--np-teal);
}
.pr-search-box:focus-within .pr-search-icon { color: var(--np-teal); }
.pr-search-box:focus-within .pr-search-input { color: var(--np-navy); }

.pr-search-icon {
    color    : rgba(255,255,255,0.60);
    font-size: 16px;
    flex-shrink: 0;
    transition : color 0.25s;
}

.pr-search-input {
    flex      : 1;
    border    : none;
    outline   : none;
    background: transparent;
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : rgba(255,255,255,0.90);
}
.pr-search-input::placeholder { color: rgba(255,255,255,0.50); }

/* Sugestões dropdown */
.pr-suggestions {
    position  : absolute;
    top       : calc(100% + 8px);
    left      : 40px;
    right     : 40px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(25,31,57,0.18);
    overflow  : hidden;
    display   : none;
    z-index   : 500;
    max-height: 320px;
    overflow-y: auto;
}
.pr-suggestions.open { display: block; }

.pr-suggestion-item {
    padding    : 12px 20px;
    cursor     : pointer;
    border-bottom: 1px solid var(--np-border);
    font-family: var(--np-sans);
    font-size  : 14px;
    color      : var(--np-navy);
    transition : background 0.15s;
}
.pr-suggestion-item:last-child { border-bottom: none; }
.pr-suggestion-item:hover { background: var(--np-bg); }
.pr-suggestion-item strong { color: var(--np-teal); }

/* Contador de resultados na busca */
.pr-results-count {
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : rgba(255,255,255,0.55);
    margin-top : 8px;
    min-height : 16px;
}
.pr-results-count strong { color: var(--np-gold); }


/* ── LAYOUT PRINCIPAL: mapa 30% | cards 70% ── */
section#avulsosMapa {
    width : 100%;
    height: calc(100vh - 92px);  /* viewport menos header + barra busca */
    display: flex;
    overflow: hidden;
}

/* MAPA — coluna esquerda sticky */
.pr-map-col {
    flex     : 0 0 30%;
    position : relative;
    height   : 100%;
}

#pr-google-map {
    width : 100%;
    height: 100%;
}

/* Filtro de tipo sobre o mapa */
.pr-map-filter {
    position      : absolute;
    top           : 16px;
    left          : 50%;
    transform     : translateX(-50%);
    z-index       : 10;
    background    : #fff;
    border-radius : 40px;
    padding       : 6px 8px;
    box-shadow    : 0 4px 20px rgba(25,31,57,0.20);
    display       : flex;
    gap           : 4px;
    white-space   : nowrap;
}

.pr-map-filter-btn {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 600;
    letter-spacing: 0.5px;
    color         : var(--np-muted);
    background    : transparent;
    border        : none;
    padding       : 6px 14px;
    border-radius : 40px;
    cursor        : pointer;
    transition    : background 0.2s, color 0.2s;
}
.pr-map-filter-btn:hover  { background: var(--np-bg); color: var(--np-navy); }
.pr-map-filter-btn.active { background: var(--np-teal); color: #fff; }

/* Marcador de preço customizado */
.pr-pin {
    background    : var(--np-navy);
    color         : #fff;
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    padding       : 5px 10px;
    border-radius : 20px;
    white-space   : nowrap;
    box-shadow    : 0 2px 10px rgba(0,0,0,0.25);
    border        : 2px solid #fff;
    cursor        : pointer;
    transition    : all 0.2s ease;
    transform-origin: bottom center;
}
.pr-pin:hover,
.pr-pin.active {
    background   : var(--np-gold);
    transform    : scale(1.12);
    z-index      : 10 !important;
}

/* Popup ao hover do pino */
.pr-popup {
    background   : #fff;
    border-radius: 14px;
    overflow     : hidden;
    box-shadow   : 0 16px 48px rgba(25,31,57,0.20);
    width        : 240px;
    font-family  : var(--np-sans);
    text-decoration: none;
    display      : block;
    transition   : transform 0.2s ease;
}
.pr-popup:hover { transform: translateY(-2px); }

.pr-popup-img {
    width : 100%;
    height: 140px;
    object-fit: cover;
    display: block;
}

.pr-popup-body { padding: 12px 14px; }

.pr-popup-bairro {
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : var(--np-gold);
    margin-bottom : 4px;
}

.pr-popup-title {
    font-family  : var(--np-serif);
    font-size    : 14px;
    font-weight  : 500;
    color        : var(--np-navy);
    line-height  : 1.3;
    margin-bottom: 6px;
    white-space  : nowrap;
    overflow     : hidden;
    text-overflow: ellipsis;
}

.pr-popup-price {
    font-family: var(--np-sans);
    font-size  : 15px;
    font-weight: 700;
    color      : var(--np-teal);
    margin-bottom: 4px;
}

.pr-popup-meta {
    font-size: 12px;
    color    : var(--np-muted);
    display  : flex;
    gap      : 10px;
}
.pr-popup-meta i { color: var(--np-teal); font-size: 11px; }

.pr-popup-link {
    display        : flex;
    align-items    : center;
    justify-content: center;
    gap            : 6px;
    margin-top     : 10px;
    font-family    : var(--np-sans);
    font-size      : 11px;
    font-weight    : 700;
    letter-spacing : 1px;
    text-transform : uppercase;
    color          : #fff;
    background     : var(--np-teal);
    padding        : 8px;
    border-radius  : 8px;
    text-decoration: none;
    transition     : background 0.2s;
}
.pr-popup-link:hover { background: var(--np-navy); }


/* CARDS — coluna direita com scroll */
.pr-cards-col {
    flex     : 1;
    overflow-y: auto;
    padding  : 24px 28px;
    background: var(--np-bg);
}

/* Scrollbar discreta */
.pr-cards-col::-webkit-scrollbar { width: 5px; }
.pr-cards-col::-webkit-scrollbar-track { background: transparent; }
.pr-cards-col::-webkit-scrollbar-thumb { background: var(--np-border); border-radius: 4px; }

.pr-cards-header {
    margin-bottom: 20px;
}

.pr-cards-header h1 {
    font-family  : var(--np-serif);
    font-size    : clamp(18px, 1.8vw, 24px);
    font-weight  : 500;
    color        : var(--np-navy);
    line-height  : 1.3;
}
.pr-cards-header h1 span { color: var(--np-teal); font-style: italic; }

/* Grid 2 colunas */
.pr-grid {
    display              : grid;
    grid-template-columns: repeat(2, 1fr);
    gap                  : 18px;
}

/* Card premium */
.pr-card {
    background    : var(--np-white);
    border-radius : 14px;
    overflow      : hidden;
    text-decoration: none;
    display       : flex;
    flex-direction: column;
    box-shadow    : 0 2px 12px rgba(25,31,57,0.07);
    transition    : transform 0.35s var(--np-ease), box-shadow 0.35s var(--np-ease),
                    outline 0.2s ease;
    position      : relative;
    outline       : 2px solid transparent;
}
.pr-card:hover {
    transform : translateY(-4px);
    box-shadow: 0 12px 40px rgba(25,31,57,0.14);
}
.pr-card.highlighted {
    outline-color: var(--np-gold);
    transform    : translateY(-4px);
    box-shadow   : 0 12px 40px rgba(156,135,88,0.25);
}

/* Carrossel de imagens do card — altura fixa */
.pr-card-carousel {
    position  : relative;
    height    : 220px;
    flex-shrink: 0;
    overflow  : hidden;
}

.pr-card-carousel figure {
    position  : absolute;
    inset     : 0;
    margin    : 0;
    display   : flex;
}

.pr-card-carousel figure img {
    min-width : 100%;
    height    : 100%;
    object-fit: cover;
    flex-shrink: 0;
    transition : transform 0.6s var(--np-ease);
}
.pr-card:hover .pr-card-carousel figure img:first-child { transform: scale(1.04); }

/* Navegação do carousel */
.pr-card-nav {
    position       : absolute;
    inset          : 0;
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    padding        : 0 10px;
    opacity        : 0;
    transition     : opacity 0.2s;
}
.pr-card:hover .pr-card-nav { opacity: 1; }

.pr-card-nav button {
    width          : 30px;
    height         : 30px;
    border-radius  : 50%;
    border         : none;
    background     : rgba(255,255,255,0.85);
    color          : var(--np-navy);
    font-size      : 12px;
    cursor         : pointer;
    display        : flex;
    align-items    : center;
    justify-content: center;
    backdrop-filter: blur(4px);
    transition     : background 0.2s;
}
.pr-card-nav button:hover { background: #fff; }

/* Badge tipo negociação */
.pr-card-badge {
    position      : absolute;
    top           : 12px;
    left          : 12px;
    background    : var(--np-navy);
    color         : var(--np-cream);
    font-family   : var(--np-sans);
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding       : 4px 10px;
    border-radius : 20px;
    z-index       : 2;
}
.pr-card-badge.venda  { background: var(--np-teal); }
.pr-card-badge.aluguel{ background: var(--np-gold); }

/* Corpo do card — cresce para preencher espaço */
.pr-card-body {
    padding       : 18px 20px;
    display       : flex;
    flex-direction: column;
    gap           : 4px;
    flex-grow     : 1;
}

.pr-card-prices { min-height: 54px; }

.pr-card-price {
    font-family  : var(--np-serif);
    font-size    : 20px;
    font-weight  : 500;
    color        : var(--np-teal);
    margin-bottom: 2px;
    line-height  : 1.2;
}
.pr-card-price strong {
    font-family  : var(--np-sans);
    font-size    : 13px;
    font-weight  : 700;
    color        : var(--np-teal);
    margin-right : 2px;
    vertical-align: middle;
}

/* Aluguel secundário (quando há venda + aluguel) */
.pr-card-rent {
    font-family  : var(--np-sans);
    font-size    : 12px;
    color        : var(--np-gold);
    margin-bottom: 4px;
}

/* Aluguel como preço principal (imóvel só de aluguel) */
.pr-card-rent.principal {
    font-family  : var(--np-serif);
    font-size    : 20px;
    font-weight  : 500;
    color        : var(--np-teal);
    margin-bottom: 2px;
    line-height  : 1.2;
}
.pr-card-rent.principal::before {
    content      : 'R$ ';
    font-family  : var(--np-sans);
    font-size    : 13px;
    font-weight  : 700;
    color        : var(--np-teal);
    margin-right : 1px;
    vertical-align: middle;
}

.pr-card-bairro {
    font-family  : var(--np-serif);
    font-size    : 15px;
    font-weight  : 500;
    color        : var(--np-navy);
    margin-bottom: 3px;
    white-space  : nowrap;
    overflow     : hidden;
    text-overflow: ellipsis;
}

.pr-card-endereco {
    font-family  : var(--np-sans);
    font-size    : 12px;
    color        : var(--np-muted);
    margin-bottom: 10px;
    white-space  : nowrap;
    overflow     : hidden;
    text-overflow: ellipsis;
}

.pr-card-features {
    display  : flex;
    gap      : 14px;
    flex-wrap: wrap;
}
.pr-card-feat {
    font-family: var(--np-sans);
    font-size  : 12px;
    color      : var(--np-muted);
    display    : flex;
    align-items: center;
    gap        : 5px;
}
.pr-card-feat i { color: var(--np-teal); font-size: 12px; }

/* Footer — sempre na base do card */
.pr-card-footer {
    background    : var(--np-navy);
    padding       : 8px 18px;
    display       : flex;
    align-items   : center;
    justify-content: space-between;
    margin-top    : auto;
    flex-shrink   : 0;
}
.pr-card-footer-brand {
    font-family: var(--np-sans);
    font-size  : 10px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color      : #E5D6B0;
}
.pr-card-fav {
    background: transparent;
    border    : none;
    color     : #E5D6B0;
    font-size : 16px;
    cursor    : pointer;
    transition: color 0.2s, transform 0.2s;
    padding   : 0;
}
.pr-card-fav:hover { color: #e74c3c; transform: scale(1.15); }
.pr-card-fav.active { color: #e74c3c; }

/* Paginação */
.pr-pagination {
    grid-column    : 1 / -1;
    display        : flex;
    justify-content: center;
    align-items    : center;
    gap            : 12px;
    padding        : 24px 0 8px;
}

.pr-page-btn {
    width          : 40px;
    height         : 40px;
    border-radius  : 50%;
    border         : 1.5px solid var(--np-border);
    background     : var(--np-white);
    font-family    : var(--np-sans);
    font-size      : 13px;
    font-weight    : 600;
    color          : var(--np-navy);
    cursor         : pointer;
    display        : flex;
    align-items    : center;
    justify-content: center;
    transition     : all 0.2s ease;
    text-decoration: none;
}
.pr-page-btn:hover  { border-color: var(--np-teal); color: var(--np-teal); }
.pr-page-btn.active { background: var(--np-teal); border-color: var(--np-teal); color: #fff; }
.pr-page-btn.disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }

/* Estado vazio / loading */
.pr-empty {
    grid-column: 1 / -1;
    text-align : center;
    padding    : 60px 20px;
    color      : var(--np-muted);
    font-family: var(--np-sans);
}
.pr-empty i { font-size: 40px; margin-bottom: 16px; color: var(--np-border); display: block; }

/* ── Responsivo ── */
@media (max-width: 1023px) {
    section#avulsosMapa { flex-direction: column; height: auto; }
    .pr-map-col { flex: none; height: 50vh; width: 100%; }
    .pr-cards-col { overflow-y: visible; padding: 20px; }
    .pr-grid { grid-template-columns: 1fr; }
    section#boutiqueProntosFiltros { position: relative; }
}
@media (max-width: 599px) {
    .pr-cards-col { padding: 12px; }
    .pr-search-wrap { padding: 0 16px; }
    .pr-suggestions { left: 16px; right: 16px; }
}

/* ============================================================
   [19] SINGLE PRONTO — page styles
   Absorve : avulso.css — eliminado
   Prefixo : sp-
   Layout  : galeria + split 60/40 + sidebar sticky
   Reutiliza: se- classes do [17] onde possível
   Google  : Maps JS API (mesmo estilo do single-empreendimento)
============================================================ */

/* ── Reutiliza seção [17] integralmente ──────────────────── */
/* Gallery, lightbox, split body, feature cards, pills,
   description, sidebar, calendar, map — prefixo se- já existe.
   Abaixo apenas os overrides e exclusivos do pronto.         */

/* ── Badge de tipo de negociação ── */
.sp-tipo-badge {
    display       : inline-flex;
    align-items   : center;
    gap           : 6px;
    padding       : 5px 14px;
    border-radius : 20px;
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom : 12px;
}
.sp-tipo-badge.venda   { background: rgba(6,70,94,0.10);  color: var(--np-teal); }
.sp-tipo-badge.aluguel { background: rgba(156,135,88,0.12); color: var(--np-gold); }
.sp-tipo-badge.ambos   { background: var(--np-navy); color: var(--np-cream); }

/* ── Preços ── */
.sp-preco-wrap { margin: 12px 0 24px; }

.sp-preco-venda {
    font-family  : var(--np-serif);
    font-size    : clamp(24px, 3vw, 38px);
    font-weight  : 500;
    color        : var(--np-teal);
    line-height  : 1.1;
}
.sp-preco-venda sup {
    font-family: var(--np-sans);
    font-size  : 14px;
    font-weight: 700;
    vertical-align: super;
    margin-right: 3px;
}

.sp-preco-aluguel {
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : var(--np-gold);
    margin-top : 4px;
}

.sp-preco-consulte {
    font-family: var(--np-serif);
    font-size  : 22px;
    color      : var(--np-gold);
    font-style : italic;
    margin     : 12px 0 24px;
}

/* ── Código do imóvel ── */
.sp-codigo {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color         : var(--np-gold);
    margin-bottom : 8px;
}

/* ── Grupos de comodidades (lazer/segurança/serviços) ── */
.sp-grupo {
    margin-bottom: 36px;
    opacity      : 0;
    transform    : translateY(20px);
    transition   : opacity 0.65s var(--np-ease) var(--np-delay, 0.25s),
                   transform 0.65s var(--np-ease) var(--np-delay, 0.25s);
}
.sp-grupo.np-visible { opacity: 1; transform: translateY(0); }

.sp-grupo-title {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color         : var(--np-gold);
    margin-bottom : 14px;
    display       : flex;
    align-items   : center;
    gap           : 10px;
}
.sp-grupo-title::after {
    content   : '';
    flex      : 1;
    height    : 1px;
    background: var(--np-border);
}

.sp-pills {
    display  : flex;
    flex-wrap: wrap;
    gap      : 10px;
}

.sp-pill {
    display       : flex;
    align-items   : center;
    gap           : 8px;
    padding       : 8px 16px;
    background    : var(--np-bg);
    border        : 1px solid var(--np-border);
    border-radius : 20px;
    font-family   : var(--np-sans);
    font-size     : 13px;
    color         : var(--np-navy);
    transition    : border-color 0.2s, background 0.2s;
}
.sp-pill:hover { border-color: var(--np-teal); background: #fff; }
.sp-pill i { color: var(--np-teal); font-size: 12px; }

/* ── Sidebar: código + tipo + preço ── */
.sp-sidebar-codigo {
    font-family   : var(--np-sans);
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : var(--np-gold);
    margin-bottom : 6px;
    text-align    : center;
}

.sp-sidebar-tipo {
    font-family   : var(--np-sans);
    font-size     : 11px;
    font-weight   : 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color         : rgba(239,227,201,0.70);
    text-align    : center;
    margin-bottom : 4px;
}

.sp-sidebar-preco {
    text-align   : center;
    margin-bottom: 24px;
}
.sp-sidebar-preco-venda {
    font-family  : var(--np-serif);
    font-size    : 24px;
    font-weight  : 500;
    color        : var(--np-teal);
    display      : block;
}
.sp-sidebar-preco-aluguel {
    font-family: var(--np-sans);
    font-size  : 13px;
    color      : var(--np-gold);
    margin-top : 2px;
    display    : block;
}
.sp-sidebar-preco-consulte {
    font-family: var(--np-serif);
    font-size  : 18px;
    font-style : italic;
    color      : var(--np-gold);
    display    : block;
}


/* ============================================================
   [20] CHATBOT GEMINI AI — Ana, consultora virtual A+
   Prefixo : gc- (gemini chat)
   Posição : fixed bottom-right, acima do botão WhatsApp
============================================================ */

/* ── Pill flutuante (estilo BIA) ── */
.gc-bubble {
    position      : fixed;
    bottom        : 32px;
    right         : 24px;
    display       : flex;
    align-items   : center;
    justify-content: space-between;
    gap           : 16px;
    background    : #1a1a2e;
    border        : none;
    border-radius : 60px;
    padding       : 14px 8px 14px 22px;
    cursor        : pointer;
    box-shadow    : 0 8px 32px rgba(0,0,0,0.35);
    z-index       : 8000;
    min-width     : 220px;
    max-width     : 280px;
    transition    : transform 0.3s var(--np-ease), box-shadow 0.3s ease, background 0.3s;
    animation     : gc-bounce 3s ease-in-out 12s 3;
}
.gc-bubble:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(0,0,0,0.40); background: #191F39; }

/* Texto esquerda do pill */
.gc-pill-text { flex: 1; text-align: left; }
.gc-pill-title {
    font-family  : var(--np-sans);
    font-size    : 14px;
    font-weight  : 700;
    color        : #fff;
    line-height  : 1.2;
    margin-bottom: 2px;
}
.gc-pill-sub {
    font-family: var(--np-sans);
    font-size  : 11px;
    color      : rgba(255,255,255,0.65);
}

/* Logo círculo direita */
.gc-pill-logo {
    width          : 50px;
    height         : 50px;
    border-radius  : 50%;
    background     : var(--np-teal);
    display        : flex;
    align-items    : center;
    justify-content: center;
    flex-shrink    : 0;
    overflow       : hidden;
    border         : 2px solid rgba(255,255,255,0.20);
}
.gc-pill-logo img { width: 32px; height: 32px; object-fit: contain; filter: brightness(10); }

/* Badge de notificação */
.gc-badge {
    position    : absolute;
    top         : -4px;
    right       : -4px;
    width       : 20px;
    height      : 20px;
    border-radius: 50%;
    background  : #e74c3c;
    color       : #fff;
    font-family : var(--np-sans);
    font-size   : 11px;
    font-weight : 700;
    display     : flex;
    align-items : center;
    justify-content: center;
    border      : 2px solid #fff;
    animation   : gc-badge-pop 0.4s var(--np-ease);
}

@keyframes gc-bounce {
    0%,100% { transform: translateY(0); }
    30%     { transform: translateY(-8px); }
    60%     { transform: translateY(-4px); }
}
@keyframes gc-badge-pop {
    0%   { transform: scale(0); }
    70%  { transform: scale(1.2); }
    100% { transform: scale(1); }
}

/* ── Tooltip proativo ── */
.gc-tooltip {
    position    : fixed;
    bottom      : 170px;
    right       : 24px;
    background  : #fff;
    border-radius: 14px 14px 0 14px;
    padding     : 12px 16px;
    box-shadow  : 0 8px 32px rgba(25,31,57,0.18);
    font-family : var(--np-sans);
    font-size   : 13px;
    color       : var(--np-navy);
    max-width   : 220px;
    z-index     : 7999;
    opacity     : 0;
    transform   : translateY(10px);
    transition  : opacity 0.4s ease, transform 0.4s ease;
    pointer-events: none;
    line-height : 1.5;
}
.gc-tooltip.visible { opacity: 1; transform: translateY(0); pointer-events: auto; cursor: pointer; }
.gc-tooltip::after  {
    content    : '';
    position   : absolute;
    bottom     : -8px;
    right      : 20px;
    border-left: 8px solid transparent;
    border-top : 8px solid #fff;
}

/* ── Janela do chat ── */
.gc-window {
    position     : fixed;
    bottom       : 100px;
    right        : 24px;
    width        : 380px;
    max-width    : calc(100vw - 32px);
    height       : 560px;
    max-height   : calc(100vh - 120px);
    background   : #fff;
    border-radius: 20px;
    box-shadow   : 0 24px 64px rgba(25,31,57,0.25);
    z-index      : 8001;
    display      : flex;
    flex-direction: column;
    overflow     : hidden;
    opacity      : 0;
    visibility   : hidden;
    transform    : translateY(20px) scale(0.96);
    transition   : opacity 0.35s var(--np-ease), visibility 0.35s ease,
                   transform 0.35s var(--np-ease);
    transform-origin: bottom right;
}
.gc-window.open {
    opacity   : 1;
    visibility: visible;
    transform : translateY(0) scale(1);
}

/* Header do chat */
.gc-header {
    background     : linear-gradient(135deg, var(--np-navy), var(--np-teal));
    padding        : 16px 18px;
    display        : flex;
    align-items    : center;
    gap            : 12px;
    flex-shrink    : 0;
}

.gc-avatar {
    width          : 42px;
    height         : 42px;
    border-radius  : 50%;
    background     : rgba(255,255,255,0.15);
    display        : flex;
    align-items    : center;
    justify-content: center;
    font-size      : 20px;
    flex-shrink    : 0;
    border         : 2px solid rgba(255,255,255,0.30);
}

.gc-header-info { flex: 1; }
.gc-header-name {
    font-family : var(--np-serif);
    font-size   : 15px;
    font-weight : 500;
    color       : #fff;
    line-height : 1.2;
}
.gc-header-status {
    font-family : var(--np-sans);
    font-size   : 11px;
    color       : rgba(255,255,255,0.70);
    display     : flex;
    align-items : center;
    gap         : 5px;
}
.gc-status-dot {
    width        : 7px;
    height       : 7px;
    border-radius: 50%;
    background   : #2ecc71;
    animation    : gc-pulse 2s infinite;
}
@keyframes gc-pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }

.gc-header-actions { display: flex; gap: 8px; }
.gc-header-btn {
    width          : 30px;
    height         : 30px;
    border-radius  : 50%;
    border         : none;
    background     : rgba(255,255,255,0.15);
    color          : #fff;
    font-size      : 14px;
    cursor         : pointer;
    display        : flex;
    align-items    : center;
    justify-content: center;
    transition     : background 0.2s;
}
.gc-header-btn:hover { background: rgba(255,255,255,0.25); }

/* Mensagens */
.gc-messages {
    flex     : 1;
    overflow-y: auto;
    padding  : 16px;
    display  : flex;
    flex-direction: column;
    gap      : 12px;
    background: var(--np-bg);
}
.gc-messages::-webkit-scrollbar { width: 4px; }
.gc-messages::-webkit-scrollbar-thumb { background: var(--np-border); border-radius: 2px; }

/* Bolha de mensagem */
.gc-msg {
    display        : flex;
    align-items    : flex-end;
    gap            : 8px;
    max-width      : 88%;
    animation      : gc-msg-in 0.3s var(--np-ease);
}
@keyframes gc-msg-in { from { opacity:0; transform:translateY(8px); } }

.gc-msg.bot  { align-self: flex-start; }
.gc-msg.user { align-self: flex-end; flex-direction: row-reverse; }

.gc-msg-avatar {
    width        : 28px;
    height       : 28px;
    border-radius: 50%;
    background   : linear-gradient(135deg, var(--np-teal), var(--np-navy));
    display      : flex;
    align-items  : center;
    justify-content: center;
    font-size    : 13px;
    flex-shrink  : 0;
    color        : #fff;
}

.gc-msg-bubble {
    padding      : 10px 14px;
    border-radius: 16px;
    font-family  : var(--np-sans);
    font-size    : 13px;
    line-height  : 1.55;
    max-width    : 100%;
    word-break   : break-word;
}
.gc-msg.bot  .gc-msg-bubble { background: #fff; color: var(--np-navy); border-bottom-left-radius: 4px; box-shadow: 0 1px 4px rgba(25,31,57,0.08); }
.gc-msg.user .gc-msg-bubble { background: var(--np-teal); color: #fff; border-bottom-right-radius: 4px; }

/* Timestamp */
.gc-msg-time { font-family: var(--np-sans); font-size: 10px; color: var(--np-muted); margin-top: 3px; text-align: right; }
.gc-msg.bot .gc-msg-time { text-align: left; }

/* Typing indicator */
.gc-typing { display: flex; gap: 4px; align-items: center; padding: 10px 14px; }
.gc-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--np-muted); animation: gc-typing-dot 1.2s infinite; }
.gc-typing span:nth-child(2) { animation-delay: 0.2s; }
.gc-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes gc-typing-dot { 0%,60%,100%{transform:translateY(0);opacity:.5} 30%{transform:translateY(-5px);opacity:1} }

/* Cards de imóveis dentro do chat */
.gc-imovel-card {
    background    : #fff;
    border-radius : 12px;
    overflow      : hidden;
    border        : 1px solid var(--np-border);
    text-decoration: none;
    display       : block;
    margin-top    : 6px;
    transition    : box-shadow 0.2s;
    max-width     : 260px;
}
.gc-imovel-card:hover { box-shadow: 0 4px 16px rgba(25,31,57,0.12); }
.gc-imovel-card img { width: 100%; height: 120px; object-fit: cover; display: block; }
.gc-imovel-card-body { padding: 10px 12px; }
.gc-imovel-card-bairro { font-family: var(--np-sans); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--np-gold); margin-bottom: 2px; }
.gc-imovel-card-title { font-family: var(--np-serif); font-size: 13px; font-weight: 500; color: var(--np-navy); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gc-imovel-card-meta { font-family: var(--np-sans); font-size: 11px; color: var(--np-muted); }
.gc-imovel-card-link { display: flex; align-items: center; justify-content: space-between; padding: 7px 12px; background: var(--np-navy); color: var(--np-cream); font-family: var(--np-sans); font-size: 10px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; }

/* Quick replies */
.gc-quick-replies { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.gc-quick-btn {
    padding      : 6px 12px;
    border-radius: 20px;
    border       : 1.5px solid var(--np-teal);
    background   : transparent;
    color        : var(--np-teal);
    font-family  : var(--np-sans);
    font-size    : 12px;
    font-weight  : 600;
    cursor       : pointer;
    transition   : background 0.2s, color 0.2s;
    white-space  : nowrap;
}
.gc-quick-btn:hover { background: var(--np-teal); color: #fff; }

/* Input area */
.gc-input-area {
    padding    : 12px 14px;
    border-top : 1px solid var(--np-border);
    display    : flex;
    gap        : 8px;
    align-items: center;
    background : #fff;
    flex-shrink: 0;
}

.gc-input {
    flex       : 1;
    border     : 1.5px solid var(--np-border);
    border-radius: 20px;
    padding    : 9px 14px;
    font-family: var(--np-sans);
    font-size  : 13px;
    color      : var(--np-navy);
    outline    : none;
    background : var(--np-bg);
    transition : border-color 0.2s;
    resize     : none;
    line-height: 1.4;
    max-height : 80px;
    overflow-y : auto;
}
.gc-input:focus { border-color: var(--np-teal); }
.gc-input::placeholder { color: #bbb; }

.gc-send-btn {
    width          : 38px;
    height         : 38px;
    border-radius  : 50%;
    background     : var(--np-teal);
    border         : none;
    color          : #fff;
    font-size      : 15px;
    cursor         : pointer;
    flex-shrink    : 0;
    display        : flex;
    align-items    : center;
    justify-content: center;
    transition     : background 0.2s, transform 0.15s;
}
.gc-send-btn:hover  { background: var(--np-navy); }
.gc-send-btn:active { transform: scale(0.92); }
.gc-send-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* Footer disclaimer */
.gc-footer {
    font-family : var(--np-sans);
    font-size   : 10px;
    color       : var(--np-muted);
    text-align  : center;
    padding     : 6px 14px 10px;
    background  : #fff;
    border-top  : 1px solid var(--np-border);
    flex-shrink : 0;
}

/* Botão WhatsApp dentro do chat */
.gc-wpp-btn {
    display        : flex;
    align-items    : center;
    justify-content: center;
    gap            : 6px;
    width          : 100%;
    margin-top     : 8px;
    padding        : 9px;
    border-radius  : 20px;
    background     : #25D366;
    color          : #fff;
    font-family    : var(--np-sans);
    font-size      : 12px;
    font-weight    : 600;
    text-decoration: none;
    transition     : background 0.2s;
}
.gc-wpp-btn:hover { background: #1ebc5b; }

/* Mobile */
@media (max-width: 480px) {
    .gc-window { right: 8px; left: 8px; width: auto; bottom: 90px; }
    .gc-bubble { bottom: 90px; right: 16px; }
    .gc-tooltip { right: 16px; }
}


/* ============================================================
   [21] HEADER + HERO + FILTRO + MENU MOBILE
   Absorve : header-novo.css — eliminado
   Remove  : .chat-button (WhatsApp flutuante) — substituído pela Ana
   Paleta  : Creme #EFE3C9 | Teal #06465E | Navy #191F39
============================================================ */

/* ---- HERO SECTION ---- */
.hero-section {
    position : relative;
    width    : 100%;
    height   : 100vh;
    min-height: 600px;
    display  : flex;
    flex-direction: column;
    overflow : hidden;
}

.hero-bg { position: absolute; inset: 0; z-index: 0; }

.hero-bg-image {
    position  : absolute;
    inset     : -10%;
    background-size    : cover;
    background-position: center;
    animation : kenBurns 20s ease-in-out infinite alternate;
    will-change: transform;
    background: rgba(25,31,57,0.20);
}

@keyframes kenBurns {
    from { transform: scale(1.0) translateX(0px); }
    to   { transform: scale(1.1) translateX(-20px); }
}

.hero-overlay {
    position  : absolute;
    inset     : 0;
    background: linear-gradient(180deg,
        rgba(25,31,57,0.55) 0%,
        rgba(25,31,57,0.20) 40%,
        rgba(25,31,57,0.60) 100%);
}

/* ---- HEADER / NAV ---- */
.header-novo {
    position       : fixed;
    top            : 0; left: 0; right: 0;
    z-index        : 1000;
    background     : rgba(25,31,57,0.20);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition     : background 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease;
}
.header-novo.header-scrolled {
    background: rgba(25,31,57,0.97);
    box-shadow: 0 2px 24px rgba(0,0,0,0.3);
}

.header-inner {
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    max-width      : 1400px;
    margin         : 0 auto;
    padding        : 0 40px;
    height         : 80px;
}

.header-logo img {
    height    : 52px;
    width     : auto;
    object-fit: contain;
    filter    : brightness(1.1);
    transition: opacity 0.3s;
}
.header-logo img:hover { opacity: 0.85; }

.header-nav ul { display: flex; list-style: none; gap: 36px; }
.header-nav ul li a {
    font-family   : var(--np-sans);
    font-size     : 14px;
    font-weight   : 400;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : #EFE3C9;
    text-decoration: none;
    position      : relative;
    padding-bottom: 4px;
    transition    : color 0.3s;
}
.header-nav ul li a::after {
    content   : '';
    position  : absolute;
    bottom    : 0; left: 0;
    width     : 0; height: 1px;
    background: #EFE3C9;
    transition: width 0.35s ease;
}
.header-nav ul li a:hover          { color: #fff; }
.header-nav ul li a:hover::after   { width: 100%; }

.btn-anunciar {
    font-family   : var(--np-sans);
    font-size     : 13px;
    font-weight   : 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color         : #EFE3C9;
    text-decoration: none;
    border        : 1px solid rgba(239,227,201,0.6);
    padding       : 10px 24px;
    border-radius : 40px;
    transition    : background 0.3s, color 0.3s, border-color 0.3s;
    white-space   : nowrap;
}
.btn-anunciar:hover {
    background  : #EFE3C9;
    color       : #191F39;
    border-color: #EFE3C9;
}

.btn-menu-mobile {
    display   : none;
    background: none;
    border    : none;
    color     : #EFE3C9;
    font-size : 24px;
    cursor    : pointer;
    padding   : 8px;
}

/* ---- HERO CONTENT ---- */
.hero-content {
    position : relative;
    z-index  : 1;
    flex     : 1;
    display  : flex;
    align-items: center;
    padding  : 0 40px;
    padding-top: 80px;
    max-width: 1400px;
    margin   : 0 auto;
    width    : 100%;
}

.hero-text { max-width: 560px; animation: fadeInUp 1s ease 0.3s both; margin-top: -150px; }

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}

.hero-eyebrow {
    display       : inline-block;
    font-family   : var(--np-sans);
    font-size     : 12px;
    font-weight   : 400;
    letter-spacing: 4px;
    text-transform: uppercase;
    color         : #EFE3C9;
    opacity       : 0.8;
    margin-bottom : 16px;
}

.hero-titulo {
    font-family  : var(--np-serif);
    font-size    : clamp(48px,6vw,80px);
    font-weight  : 500;
    line-height  : 1.1;
    color        : #ffffff;
    margin-bottom: 20px;
}
.hero-titulo em { font-style: italic; color: #EFE3C9; }

.hero-subtitulo {
    font-family: var(--np-sans);
    font-size  : 17px;
    font-weight: 600;
    color      : rgba(255,255,255,0.75);
    line-height: 1.6;
    max-width  : 400px;
}

/* ---- FILTRO FLUTUANTE ---- */
.filtro-flutuante {
    position     : relative;
    z-index      : 10;
    width        : 100%;
    padding      : 0 40px 50px;
    margin-bottom: 10px;
    animation    : fadeInUp 1s ease 0.6s both;
}

.filtro-form-novo {
    max-width      : 1100px;
    margin         : 0 auto;
    background     : rgba(255,255,255,0.97);
    backdrop-filter: blur(10px);
    border-radius  : 16px;
    box-shadow     : 0 20px 60px rgba(25,31,57,0.25);
    display        : flex;
    align-items    : center;
    padding        : 0 8px;
    min-height     : 80px;
    overflow       : hidden;
}

.filtro-campo {
    display       : flex;
    flex-direction: column;
    justify-content: center;
    padding       : 14px 24px;
    cursor        : pointer;
    transition    : background 0.2s;
    border-radius : 12px;
}
.filtro-campo:hover { background: rgba(6,70,94,0.05); }
.filtro-campo label {
    font-family   : var(--np-sans);
    font-size     : 10px;
    font-weight   : 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color         : #191F39;
    margin-bottom : 4px;
}
.filtro-campo--bairro   { flex: 2; }
.filtro-campo--tipo     { flex: 1.2; }
.filtro-campo--contador { flex: 0.9; }

.filtro-input-wrapper { display: flex; align-items: center; gap: 8px; }
.filtro-input-wrapper i { color: #06465E; font-size: 16px; flex-shrink: 0; }

.filtro-campo input[type="text"] {
    width      : 100%;
    border     : none;
    outline    : none;
    background : transparent;
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : #191F39;
}
.filtro-campo input[type="text"]::placeholder { color: #9a9a9a; font-weight: 300; }

.filtro-campo select {
    border      : none;
    outline     : none;
    background  : transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2306465E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 4px center;
    font-family : var(--np-sans);
    font-size   : 15px;
    color       : #191F39;
    cursor      : pointer;
    width       : 100%;
    appearance  : none;
    -webkit-appearance: none;
    padding-right: 20px;
}

.filtro-contador { display: flex; align-items: center; gap: 10px; }
.btn-contador {
    width        : 28px; height: 28px;
    border-radius: 50%;
    border       : 1.5px solid #ccc;
    background   : transparent;
    font-size    : 18px;
    display      : flex; align-items: center; justify-content: center;
    cursor       : pointer;
    color        : #191F39;
    transition   : border-color 0.2s, color 0.2s, background 0.2s;
    flex-shrink  : 0; padding: 0;
}
.btn-contador:hover { border-color: #06465E; color: #06465E; background: rgba(6,70,94,0.08); }

.contador-valor {
    font-family: var(--np-sans);
    font-size  : 15px;
    color      : #191F39;
    min-width  : 52px;
    text-align : center;
}

.filtro-divider { width: 1px; height: 40px; background: rgba(0,0,0,0.12); flex-shrink: 0; }

.filtro-btn-buscar {
    display       : flex;
    align-items   : center;
    gap           : 10px;
    background    : #06465E;
    color         : #fff;
    border        : none;
    border-radius : 12px;
    padding       : 0 28px;
    height        : 60px;
    font-family   : var(--np-sans);
    font-size     : 14px;
    font-weight   : 600;
    letter-spacing: 0.5px;
    cursor        : pointer;
    transition    : background 0.3s, transform 0.2s;
    white-space   : nowrap;
    margin        : 8px;
    flex-shrink   : 0;
}
.filtro-btn-buscar:hover { background: #191F39; transform: translateY(-1px); }
.filtro-btn-buscar i { font-size: 16px; }

/* ---- WHATSAPP FLOAT — REMOVIDO ---- */
/* .chat-button foi removido — substituído pelo chatbot Ana (seção [20]) */

/* ---- RESPONSIVO ---- */
@media (max-width: 1024px) {
    .header-nav    { display: none; }
    .btn-menu-mobile { display: block; }
    .header-cta    { display: none; }
    .filtro-form-novo { flex-wrap: wrap; padding: 16px; gap: 12px; min-height: auto; }
    .filtro-campo  { padding: 8px 12px; flex: 1 1 calc(50% - 12px); }
    .filtro-campo--bairro { flex: 1 1 100%; }
    .filtro-divider { display: none; }
    .filtro-btn-buscar { flex: 1 1 100%; justify-content: center; height: 52px; margin: 0; }
    .filtro-flutuante { margin-bottom: -20px; padding: 0 16px; }
}

@media (max-width: 600px) {
    .header-inner { padding: 0 20px; height: 68px; }
    .hero-content { padding: 0 20px 0; padding-top: 80px; align-items: center; justify-content: center; }
    .hero-titulo  { font-size: 38px; }
    .hero-subtitulo { font-size: 15px; }
    .filtro-flutuante { padding: 0 12px; margin-bottom: 36px; }
    .filtro-campo { flex: 1 1 100%; }
    .filtro-campo--tipo, .filtro-campo--contador { flex: 1 1 calc(50% - 8px); }
}