/*
 * Estilos das landing pages (plugin novolar-seo-landing).
 * Ficava inline no HTML de TODA landing (16 KB por visita, sem cache).
 * Como arquivo, o navegador baixa uma vez e reusa em todas.
 * NAO editar no servidor: a fonte e o repositorio local.
 */
.nl-landing-heading { margin-top: 24px; }
    /* Sem max-width nem margem lateral: a classe divide o elemento com
       .container do tema, que já centraliza a coluna. Limitar a largura aqui
       transformava o parágrafo num bloco estreito centralizado na tela,
       desalinhado do H1. A leitura é limitada pelo <span> interno. */
    /* O espaço abaixo é do parágrafo: a grade do tema não traz margem no topo,
       e sem isso o texto encosta na primeira linha de fotos. */
    .nl-landing-apoio { margin: 8px auto 26px; font-size: 15px; line-height: 1.6; color: #574F49; }
    .nl-landing-apoio span { display: block; max-width: 760px; }
    .nl-landing-apoio strong { color: #171513; font-weight: 700; }
    /* Sem a linha de contagem, o título não precisa da folga que a acompanhava. */
    .nl-landing-heading.nl-com-apoio { margin-bottom: 0; }
    .nl-landing-heading .nl-landing-count { display: block; font-size: 0.6em; font-weight: 400; opacity: 0.75; margin-top: 6px; }
    .nl-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(17, 15, 14, 0.94); display: flex; align-items: center; justify-content: center; }
    .nl-lb img { max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 4px; }
    .nl-lb button { position: absolute; background: rgba(250, 250, 250, 0.12); border: 0; color: #FAFAFA; cursor: pointer; border-radius: 50%; width: 46px; height: 46px; font-size: 26px; line-height: 1; display: flex; align-items: center; justify-content: center; }
    .nl-lb button:hover { background: rgba(250, 250, 250, 0.25); }
    .nl-lb .nl-lb-x { top: 18px; right: 18px; font-size: 22px; }
    .nl-lb .nl-lb-prev { left: 18px; }
    .nl-lb .nl-lb-next { right: 18px; }
    .nl-lb .nl-lb-cont { position: absolute; top: 24px; left: 50%; transform: translateX(-50%); color: #E1D8CC; font-size: 13px; letter-spacing: .04em; }
    .nl-lb .nl-lb-bar { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(23, 21, 19, 0.88); padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
    .nl-lb .nl-lb-info { color: #FAFAFA; font-size: 13.5px; min-width: 0; }
    .nl-lb .nl-lb-info b { font-weight: 700; }
    .nl-lb .nl-lb-zap { display: inline-flex; align-items: center; gap: 7px; background: #18aa4f; color: #fff; font-size: 14px; font-weight: 500; padding: 8px 16px; border-radius: 10px; text-decoration: none; white-space: nowrap; }
    .nl-lb .nl-lb-zap:hover { background: #20ba5a; color: #fff; }
    .nl-lb .nl-lb-zap svg { width: 16px; height: 16px; fill: currentColor; }
    @media (max-width: 700px) { .nl-lb .nl-lb-bar { flex-direction: column; align-items: flex-start; gap: 8px; padding-bottom: 14px; } }
    @media (max-width: 700px) { .nl-lb button { width: 40px; height: 40px; } .nl-lb .nl-lb-prev { left: 8px; } .nl-lb .nl-lb-next { right: 8px; } }
    .nl-ck { display: none; }
    @media (max-width: 700px) {
        /* Cockpit padrão QuintoAndar: uma linha com o resumo da busca +
           filtros + ordenação. Os controles ORIGINAIS do tema continuam no
           DOM (o JS deles segue ligado); só os elementos-folha somem da tela
           e o cockpit os aciona por proxy. Nenhum arquivo do tema mudou. */
        body.nl-ck-on .nl-ck { display: flex; gap: 8px; align-items: stretch; margin: 12px auto 0; }
        .nl-ck-resumo { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1.5px solid #d8d2c8; border-radius: 12px; padding: 8px 12px; background: #fff; cursor: pointer; text-align: left; font-family: inherit; }
        .nl-ck-resumo .nl-ck-l1 { display: block; font-size: 13.5px; font-weight: 700; color: #171513; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .nl-ck-resumo .nl-ck-l2 { display: block; font-size: 11.5px; color: #8A837E; margin-top: 1px; }
        .nl-ck-resumo > span { min-width: 0; }
        .nl-ck-resumo svg { width: 17px; height: 17px; stroke: #5B2125; flex-shrink: 0; }
        .nl-ck-btn { border: 1.5px solid #d8d2c8; border-radius: 12px; background: #fff; padding: 0 12px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
        .nl-ck-btn svg { width: 19px; height: 19px; stroke: #5B2125; }
        /* Colapsa também os WRAPPERS: esconder só o campo deixava ~92px
           de padding órfão da section da busca e 32px da de filtros. */
        body.nl-ck-on .property-filters-search { display: none; }
        body.nl-ck-on.nl-ck-busca .property-filters-search { display: block; padding: 6px 0 0; }
        body.nl-ck-on.nl-ck-busca .property-filters-search [data-property-search] { display: block; }
        /* A barra de filtros do tema é STICKY; vazia (botões ocultos) ela
           virava uma linha branca de 1px perseguindo o scroll. Neutraliza
           por completo — sem display:none, porque o drawer de filtros e o
           listbox de ordenação moram DENTRO dela. */
        body.nl-ck-on .property-filters { position: static !important; height: 0; min-height: 0; padding: 0; margin: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; overflow: visible; }
        body.nl-ck-on .property-filters .container { padding-top: 0; padding-bottom: 0; }
        body.nl-ck-on .nl-bc { margin-top: 8px; }
        body.nl-ck-on #property-results-title { margin-top: 10px; }
        body.nl-ck-on .filter__button--all, body.nl-ck-on .filter-sort__button { display: none; }
        /* O listbox de ordenação perdeu o botão-âncora: reancora fixo na tela. */
        body.nl-ck-on #sortMenu { position: fixed !important; left: 16px !important; right: 16px !important; top: 130px !important; bottom: auto !important; z-index: 9999; }
    }
    .nl-bc { font-size: 12.5px; color: #8A837E; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 14px auto 0; }
    .nl-bc a { color: #8A4A56; text-decoration: none; }
    .nl-bc a:hover { text-decoration: underline; }
    .nl-bc .nl-bc-sep { color: #B7A08B; }
    .nl-bc .nl-bc-atual { color: #574F49; font-weight: 700; }
    .nl-guia-bairro { margin: 34px auto 8px; }
    .nl-guia-bairro .nl-gb-box { background: #F7F2EA; border-radius: 8px; padding: 20px 22px; display: flex; align-items: center; gap: 16px; text-decoration: none; color: inherit; transition: background-color .15s ease; }
    .nl-guia-bairro .nl-gb-box:hover { background: #EFE5D6; }
    .nl-guia-bairro .nl-gb-box:focus-visible { outline: 2px solid #5B2125; outline-offset: 3px; }
    .nl-guia-bairro .nl-gb-icone { width: 42px; height: 42px; border-radius: 50%; background: #5B2125; color: #E1D8CC; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .nl-guia-bairro .nl-gb-txt { flex: 1; min-width: 0; }
    .nl-guia-bairro .nl-gb-txt b { display: block; font-size: 16px; font-weight: 700; color: #5B2125; }
    .nl-guia-bairro .nl-gb-txt span { display: block; font-size: 14px; color: #574F49; margin-top: 2px; }
    .nl-guia-bairro .nl-gb-cta { font-size: 15px; font-weight: 700; color: #C44345; white-space: nowrap; }
    .nl-guia-bairro .nl-gb-box:hover .nl-gb-cta { color: #5B2125; }
    .nl-guia-bairro .nl-gb-outros { font-size: 14px; color: #574F49; margin: 12px 4px 0; text-align: center; }
    .nl-guia-bairro .nl-gb-outros a { color: #5B2125; font-weight: 700; }
    @media (max-width: 640px) { .nl-guia-bairro .nl-gb-box { flex-direction: column; text-align: center; } }
    .nl-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 32px auto 8px; }
    .nl-pagination a, .nl-pagination span.nl-current { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 8px; border: 1px solid rgba(0, 0, 0, 0.15); text-decoration: none; font-weight: 500; }
    .nl-pagination span.nl-current { background: #333; color: #fff; border-color: #333; }
    .nl-pagination span.nl-ellipsis { display: inline-flex; align-items: flex-end; padding: 0 4px; }
    .nl-cross-links { margin: 40px auto 48px; }
    .nl-cross-links h2 { font-size: 1.1rem; margin-bottom: 16px; }
    .nl-cross-links ul { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
    .nl-cross-links a { display: inline-block; padding: 10px 16px; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 999px; text-decoration: none; font-size: 0.95rem; }

    /* ------------------------------------------------------------------
       Página de condomínio (v2, 03/09/2026). Só entra quando existe registro
       de Empreendimento no Vista. Galeria, botões e tipografia são os MESMOS
       componentes da ficha de imóvel — nada inventado: os valores saíram do
       dist/theme.css (a família da fonte no tema é "Anek Bengla", com o typo
       do @font-face; escrever "Bangla" cai no fallback sans-serif).
       ------------------------------------------------------------------ */
    .nl-gal { margin-top: 12px; }
    .nl-gal-box { position: relative; display: block; border-radius: 12px; overflow: hidden; background: #f9f8f7; text-decoration: none; }
    .nl-gal-capa { display: block; position: relative; height: 430px; }
    .nl-gal-capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .nl-gal-verall { position: absolute; top: 20px; left: 25px; display: inline-flex; align-items: center; gap: 8px; height: 38px; box-sizing: border-box; padding: 4px 12px; background: #fff; border: 1px solid #e9e9e9; border-radius: 8px; color: #111827; font-family: 'Anek Bengla', sans-serif; font-size: 16px; font-weight: 400; z-index: 7; }
    .nl-gal-verall svg { width: 16px; height: 16px; }
    .nl-gal-thumbs { position: absolute; left: 25px; bottom: 20px; display: flex; gap: 10px; z-index: 7; }
    .nl-gal-thumb { position: relative; display: block; width: 65px; height: 65px; border-radius: 8px; border: 2px solid #fff; background: #fff; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); }
    .nl-gal-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .nl-gal-conta { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.6); color: #fff; font-family: 'Anek Bengla', sans-serif; font-size: 18px; font-weight: 700; }
    @media (max-width: 700px) {
        .nl-gal-box { border-radius: 8px; }
        .nl-gal-capa { height: 300px; }
        .nl-gal-verall { display: none; }
        .nl-gal-thumbs { left: 12px; bottom: 12px; gap: 6px; }
        .nl-gal-thumb { width: 60px; height: 60px; border-radius: 6px; }
        .nl-gal-conta { font-size: 14px; }
    }
    .nl-cd-ctas { display: flex; gap: 10px; flex-wrap: wrap; margin: 14px auto 0; }
    .nl-cd-zap { display: inline-flex; align-items: center; }
    /* Abas: sticky só no mobile. No desktop a barra de filtros do tema já é
       sticky e duas barras empilhadas comem a tela. */
    .nl-cd-abas { background: #fff; border-bottom: 1px solid #e9e9e9; margin-top: 18px; }
    .nl-cd-abas .nl-cd-abas-in { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
    .nl-cd-abas .nl-cd-abas-in::-webkit-scrollbar { display: none; }
    .nl-cd-abas a { flex-shrink: 0; padding: 14px 12px 11px; font-family: 'Anek Bengla', sans-serif; font-size: 15px; font-weight: 600; color: #6b7280; text-decoration: none; border-bottom: 3px solid transparent; }
    .nl-cd-abas a:hover { color: #111827; }
    .nl-cd-abas a.is-on { color: #5a2225; border-bottom-color: #5a2225; }
    @media (max-width: 700px) { .nl-cd-abas { position: sticky; top: var(--header-height, 80px); z-index: 30; } }
    /* Pills de tipologia: mesmo componente das cidades na home. */
    .nl-pills-wrap { margin: 14px auto 0; }
    .nl-pills { display: flex; gap: 2px; overflow-x: auto; background: #f9f8f7; border-radius: 12px; padding: 6px; scrollbar-width: none; }
    .nl-pills::-webkit-scrollbar { display: none; }
    .nl-pill { flex-shrink: 0; white-space: nowrap; font-family: 'Anek Bengla', sans-serif; font-size: 14px; line-height: 24px; font-weight: 400; padding: 6px 12px; border-radius: 10px; color: #a0a0a0; text-decoration: none; }
    a.nl-pill:hover { color: #111827; text-decoration: none; }
    .nl-pill.is-on { background: #5a2225; color: #fff; font-weight: 600; }
    .nl-cd-sec { margin: 34px auto 0; }
    .nl-cd-sec h2 { font-family: 'Anek Bengla', sans-serif; font-size: 22px; font-weight: 600; color: #111827; margin: 0 0 12px; }
    .nl-cd-desc { font-family: 'Anek Latin', sans-serif; font-size: 16px; line-height: 24px; color: #374151; white-space: pre-line; max-width: 68ch; margin: 0; }
    .nl-cd-amen { padding-left: 0; padding-right: 0; margin-top: 20px; }
    .nl-cd-amen .heading { font-size: 20px; line-height: 1.3; margin-bottom: 14px; }
    .nl-cd-h2 { font-size: 22px; line-height: 1.3; margin: 20px auto 6px; }
    .nl-cd-preco { font-family: 'Anek Latin', sans-serif; font-size: 14px; line-height: 20px; font-weight: 500; color: #111827; margin: 0 auto 12px; }
    .nl-cd-fotos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .nl-cd-fotos > span { position: relative; display: block; padding-top: 70%; border-radius: 8px; overflow: hidden; background: #f9f8f7; cursor: pointer; }
    .nl-cd-fotos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    @media (max-width: 700px) { .nl-cd-fotos { grid-template-columns: repeat(2, 1fr); gap: 8px; } }
    .nl-cd-end { font-family: 'Anek Latin', sans-serif; font-size: 15px; line-height: 22px; color: #a0a0a0; margin: 0 0 14px; }
    .nl-cd-mapa { width: 100%; height: 380px; border: 0; border-radius: 12px; display: block; }
    @media (max-width: 700px) { .nl-cd-mapa { height: 300px; } }
    .nl-cd-video { margin-top: 20px; max-width: 560px; }
    .nl-cd-video-capa { position: relative; display: block; width: 100%; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: #f9f8f7; cursor: pointer; aspect-ratio: 16 / 9; }
    .nl-cd-video-capa img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .nl-cd-video-txt { position: absolute; left: 14px; bottom: 12px; color: #fff; font-family: 'Anek Bengla', sans-serif; font-size: 14px; font-weight: 600; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6); }
    .nl-cd-video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; display: block; }
    .nl-cd-video-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; font-family: 'Anek Bengla', sans-serif; font-size: 15px; font-weight: 600; color: #111827; text-decoration: none; }
    .nl-cd-video-link:hover { color: #5a2225; }
    .nl-cd-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 56px; height: 56px; border-radius: 50%; background: hsla(0, 0%, 100%, 0.9); }
    .nl-cd-video-link .nl-cd-play { position: relative; top: 0; left: 0; transform: none; width: 34px; height: 34px; background: #f5f5f5; border: 1px solid #e9e9e9; flex-shrink: 0; }
    .nl-cd-play::before { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin-left: 3px; width: 0; height: 0; border-left: 16px solid #222; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
    .nl-cd-video-link .nl-cd-play::before { margin-left: 2px; border-left-width: 11px; border-top-width: 7px; border-bottom-width: 7px; }
    .nl-cd-video-capa:hover .nl-cd-play { background: #fff; transform: translate(-50%, -50%) scale(1.06); }
    /* Barra fixa: só no mobile, e só depois que os CTAs do topo saem da tela. */
    .nl-cd-fixo { display: none; }
    @media (max-width: 700px) {
        .nl-cd-fixo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border-top: 1px solid #e9e9e9; box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
        .nl-cd-fixo[hidden] { display: none; }
        .nl-cd-fixo-info { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
        .nl-cd-fixo-info small { font-family: 'Anek Latin', sans-serif; font-size: 12px; color: #6b7280; }
        .nl-cd-fixo-info b { font-family: 'Anek Latin', sans-serif; font-size: 16px; font-weight: 600; color: #111827; }
        body.nl-cd-fixo-on { padding-bottom: 68px; }
    }
