/*!
 * single.css — Página Single de Empreendimentos
 * Hello Child Theme · juliomartinscorretor.com.br
 * Fase 5 · Arquivo 20A
 * @version 1.0.175
 *
 * ESCOPO: apenas body.ref-page-single
 * NÃO cobre: .ref-imovel-card, .ref-card-* (escopo do plugin REF Grid)
 * NÃO cobre: header, footer, popups de contato/agendamento (escopo de main.css)
 *
 * Tokens disponíveis no DOM (source: style.css :root):
 *   --color-primary:      #231F5C  (navy)
 *   --color-teal:         #008797  (teal)
 *   --color-white:        #FFFFFF
 *   --color-bg-light:     #F5F7FA
 *   --color-text:         #1A1A2E
 *   --color-text-muted:   #666680
 *   --color-border:       #E0E4EA
 *
 * Seções:
 *   1  Breadcrumb bar (C01)
 *   2  Hero — mosaico desktop (C02)
 *   3  Layout — ordem aside / content (C03)
 *   4  Cabeçalho — Título e Ações (C04)
 *   5  Descrição — Sobre o Impreendimento (C05)
 *   6  Tabela de tipologias (C06)
 *   7  Estágio do empreendimento (C09)
 *   8  Modal imersivo (C08)
 *   9  Bottom nav mobile (C11)
 *  10  Camada de utilidades Tailwind
 *
 * @version 1.0.175
 */

/* ==========================================
   BASIC RESET (TAILWIND PREFLIGHT PARTIAL)
============================================= */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: var(--color-border); }
body.ref-page-single { background-color: #F8F9FA !important; }
p, h1, h2, h3, h4, h5, h6 { margin: 0; }
a { color: inherit; text-decoration: inherit; }
button { 
  font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; color: inherit; 
  margin: 0; padding: 0; border: none; background: transparent; cursor: pointer; outline: none; 
}

/* Reset Reforçado para Botões na Single (Combate Rosa/Magenta do Tema) */
body.ref-page-single .ref-single-main button,
body.ref-page-single .ref-single-main .ref-btn,
body.ref-page-single .ref-single-main [type="button"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    background-color: transparent; /* Permite utilitárias de BG */
    padding: 0;
    border-radius: 0;
    color: inherit;
    font-family: inherit;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    line-height: 1 !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   1. BREADCRUMB BAR (C01)
   Posição: filho direto do <body>, entre o header e o <main.ref-single-main>
   Estrutura: .ref-breadcrumb-bar (nav container) → .ref-breadcrumbs (ol content)
   Alinhamento: max-w-7xl (1280px) centered, conforme gabarito single-empreendimento.html
   Isolamento: body.ref-page-single — não afeta archive, index, etc.
   ───────────────────────────────────────────────────────────────────────────── */

body.ref-page-single .ref-breadcrumb-bar {
    display: flex;
    align-items: center;
    max-width: 100%;
    padding: 0;
    background-color: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    height: var(--breadcrumb-bar-height);
    overflow: visible;
    box-shadow: var(--shadow-card);
    font-size: 0.75rem;
    line-height: 1.5;
}

body.ref-page-single .ref-breadcrumbs {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--space-2);
    row-gap: 0;
    list-style: none;
    padding: 0 var(--space-5);
    margin-bottom: 0;
}

@media (min-width: 640px) {
    body.ref-page-single .ref-breadcrumbs {
        padding: 0 var(--space-6);
    }
}

body.ref-page-single .ref-breadcrumbs li {
    display: flex;
    align-items: center;
}

body.ref-page-single .ref-breadcrumbs a {
    color: var(--color-blue-link, #1876DB);
    font-size: var(--font-size-xs, 11px);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

body.ref-page-single .ref-breadcrumbs a:hover {
    color: var(--color-yellow, #FFAF00);
    text-decoration: underline;
}

body.ref-page-single .ref-breadcrumbs__sep {
    color: var(--color-text-muted, #666680);
    font-size: 0.875rem;
    margin: 0 3px;
    user-select: none;
}

body.ref-page-single .ref-breadcrumbs__current {
    color: var(--color-text-muted, #666680);
    font-size: var(--font-size-xs, 11px);
    font-weight: 600;
}


/* ─────────────────────────────────────────────────────────────────────────────
   2. HERO — mosaico desktop (sm+)
   Altura explícita previne CLS: imagens usam object-cover + h-full
   ───────────────────────────────────────────────────────────────────────────── */

.mosaic-grid { height: 460px; background-color: #f3f4f6; }
.mosaic-grid > div { background-color: #f3f4f6; }
@media (min-width: 1024px) { .mosaic-grid { height: 520px; } }

/* ─────────────────────────────────────────────────────────────────────────────
   2B. HERO — Fallback 1: thumbnail (sem galeria, com imagem destacada)
   Mesma altura que .mosaic-grid para zero CLS; object-cover garante proporção
   ───────────────────────────────────────────────────────────────────────────── */

.ref-hero-thumbnail { height: 460px; }
@media (min-width: 1024px) { .ref-hero-thumbnail { height: 520px; } }

.ref-hero-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s;
}
.ref-hero-thumbnail:hover img { transform: scale(1.03); }

/* ─────────────────────────────────────────────────────────────────────────────
   2C. HERO — Fallback 2: placeholder CSS (sem galeria, sem thumbnail)
   Desktop (.ref-hero-placeholder): visível em sm+ via hidden sm:flex no PHP
   Mobile  (.ref-hero-placeholder-mobile): display:flex; escondido em sm+ via media query
   ───────────────────────────────────────────────────────────────────────────── */

.ref-hero-placeholder,
.ref-hero-placeholder-mobile {
    position: relative;
    overflow: hidden;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background: linear-gradient(135deg, var(--color-primary, #231F5C) 0%, #1a4a7a 50%, var(--color-teal, #008797) 100%);
}

.ref-hero-placeholder {
    height: 460px;
}
@media (min-width: 1024px) { .ref-hero-placeholder { height: 520px; } }

/* Mobile: flex por padrão; escondido em sm+ para não conflitar com hidden sm:flex do desktop */
.ref-hero-placeholder-mobile {
    display: flex;
}
@media (min-width: 640px) { .ref-hero-placeholder-mobile { display: none; } }

.ref-hero-placeholder::before,
.ref-hero-placeholder-mobile::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,0.06) 0%, transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(0,135,151,0.15) 0%, transparent 40%);
    pointer-events: none;
}

.ref-hero-ph-icon {
    font-size: 72px !important;
    color: rgba(255, 255, 255, 0.30);
    font-variation-settings: 'FILL' 0, 'wght' 200, 'GRAD' 0, 'opsz' 48 !important;
    position: relative;
    z-index: 1;
    line-height: 1;
}

.ref-hero-ph-title {
    font-size: 20px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.75);
    position: relative;
    z-index: 1;
    letter-spacing: -0.01em;
    text-align: center;
    padding: 0 16px;
}

.ref-hero-ph-sub {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.45);
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 24px;
}

/* ─────────────────────────────────────────────────────────────────────────────
   3. LAYOUT — Ordem aside / content
   aside vem primeiro no DOM; CSS garante content antes do aside em todo breakpoint
   ───────────────────────────────────────────────────────────────────────────── */

.ref-single-aside  { order: 2; }
.ref-single-content { order: 1; }

@media (min-width: 1024px) {
    .ref-single-aside { align-self: flex-start; }
    
    .ref-single-layout .ref-single-aside.lg\:sticky {
        position: sticky !important;
        top: 100px !important;
        z-index: 10;
        display: block !important;
    }

    /* Blindagem de especificidade para botões da Sidebar — Vence inline-flex do tema */
    body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar,
    body.ref-page-single .ref-single-layout .ref-single-aside .flex-col > a,
    body.ref-page-single .ref-single-layout .ref-single-aside .flex-col > button {
        display: flex !important;
        width: 100% !important;
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
        border-radius: 0.75rem !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: normal !important;
        height: 56px !important; /* Altura exata para bater com gabarito (py-4 = 16px + text) */
        min-height: 56px !important;
        margin-top: 0.75rem !important;
    }

    body.ref-page-single .ref-single-layout .ref-single-aside .bg-\[\#25D366\] {
        background-color: #25D366 !important;
        color: #FFFFFF !important;
        border: none !important;
    }

    body.ref-page-single .ref-single-layout .ref-single-aside .bg-primary {
        background-color: var(--color-primary, #231F5C) !important;
        color: #FFFFFF !important;
        border: none !important;
    }

    body.ref-page-single .ref-single-layout .ref-single-aside .border-primary {
        border-width: 2px !important;
        border-color: var(--color-primary, #231F5C) !important;
        color: var(--color-primary, #231F5C) !important;
        background-color: transparent !important;
    }

    body.ref-page-single .ref-single-layout .ref-single-aside .ref-favoritar-btn {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
        margin-top: 1.5rem !important;
        width: 100% !important;
        height: 56px !important;
        justify-content: center !important;
    }
}

/* Sidebar — reset de margin em <p> (Elementor injeta margin-bottom: 1em em todos os breakpoints) */
body.ref-page-single .ref-single-layout .ref-single-aside p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Sidebar card — padding explícito, blindado contra reset do tema/Elementor */
body.ref-page-single .ref-single-layout .ref-single-aside > div {
    padding: 1.5rem !important; /* p-6 — mobile */
}

@media (min-width: 768px) {
    body.ref-page-single .ref-single-layout .ref-single-aside > div {
        padding: 2rem !important; /* p-8 — md+ */
    }
}

/* ─────────────────────────────────────────────────────────────────────────────
   4. CABEÇALHO (C04) — Título e Ações
   ───────────────────────────────────────────────────────────────────────────── */

/* Título H1 — Responsividade Exata (Gabarito) */
/* Padrão: Mobile (< 768px) */
body.ref-page-single .ref-single-main h1 {
    font-size: 36px !important;
    line-height: 1.25 !important;
    letter-spacing: -0.025em !important;
}

/* md (≥ 768px): Intermediário */
@media (min-width: 768px) {
    body.ref-page-single .ref-single-main h1 {
        font-size: 42px !important;
    }
}

/* lg (≥ 1024px): Desktop Large */
@media (min-width: 1024px) {
    body.ref-page-single .ref-single-main h1 {
        font-size: 48px !important;
    }
}

/* Ações (Compartilhar e Salvar) */
/* Vence o reset 'border:none !important' da Seção 0 usando seletor de contexto */
body.ref-page-single .ref-single-main #btn-compartilhar,
body.ref-page-single .ref-single-main #btn-favoritar-header {
    border: 1px solid #C8C5D1 !important;
    font-weight: 700 !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    height: 46px !important;
    gap: 8px !important;
    font-size: 14px !important;
    line-height: 20px !important;
}

/* Estado Ativo/Pressed — apenas o ícone preenche com navy; borda/texto do botão não mudam */
.ref-favoritar-btn[aria-pressed="true"] .material-symbols-outlined {
    font-variation-settings: 'FILL' 1;
    color: var(--color-primary, #231F5C) !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   5. DESCRIÇÃO — max-height JS-driven
   ───────────────────────────────────────────────────────────────────────────── */

.ref-descricao-texto { overflow: hidden; transition: max-height 0.35s ease; }

/* ─────────────────────────────────────────────────────────────────────────────
   6. TABELA DE TIPOLOGIAS
   ───────────────────────────────────────────────────────────────────────────── */

.ref-tipologias-table-container {
    --ref-table-header-bg: #E7E8E9;         /* Cinza do gabarito */
    --ref-table-row-odd-bg: #FFFFFF;        /* 1ª linha mais clara */
    --ref-table-row-even-bg: #F1F2F3;       /* 2ª/3ª sutilmente mais escura (zebra) */
    --ref-table-border-color: rgba(200, 197, 209, 0.2);

    border-radius: 12px !important;
    overflow: hidden !important; /* Fix: Garante que o header cinza respeite o arredondamento e remove 'linha' reta residual no topo */
    border: 1px solid var(--ref-table-border-color) !important;
    background-color: var(--ref-table-row-odd-bg) !important;
}

.ref-tipologias-table {
    border-collapse: collapse;
    width: 100%;
    color: #191C1D !important;
    margin: 0 !important;
    border: none !important;
}

.ref-tipologias-table thead tr {
    background-color: var(--ref-table-header-bg) !important;
    border: none !important;
}

.ref-tipologias-table th,
.ref-tipologias-table td {
    padding: 1rem;
    text-align: left;
    border: none !important;
}

.ref-tipologias-table th {
    font-weight: 700;
    color: var(--color-primary, #231F5C);
    font-size: 0.875rem;
}

/* Zebra pattern automático via CSS (vence classes inline do PHP) */
.ref-tipologias-table tbody tr:nth-child(even) {
    background-color: var(--ref-table-row-even-bg) !important;
}

.ref-tipologias-table tbody tr:nth-child(odd) {
    background-color: var(--ref-table-row-odd-bg) !important;
}

/* Divisórias horizontais sutis (opcional, conforme gabarito) */
.ref-tipologias-table tbody tr {
    border-bottom: 1px solid var(--ref-table-border-color) !important;
    scroll-margin-top: 140px; /* Evita que as âncoras fiquem ocultas sob o header fixo */
}

.ref-tipologias-table tbody tr:last-child {
    border-bottom: none !important;
}

/* Colunas numéricas */
.ref-col-num {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Mobile: tabela compacta */
@media (max-width: 639px) {
    .ref-tipologias-table th,
    .ref-tipologias-table td {
        padding: 10px 8px;
        font-size: 12px;
    }
    .ref-tipologias-table .ref-col-num {
        padding-left: 2px;
        padding-right: 2px;
    }
}

/* ─────────────────────────────────────────────────────────────────────────────
   7. ESTÁGIO DO EMPREENDIMENTO
   ───────────────────────────────────────────────────────────────────────────── */

/* Shape: quadrado arredondado 6px — sobrescreve rounded-full em todos os estados */
.estagio-inativo > div:first-child,
.estagio-ativo   > div:first-child,
.estagio-atual   > div:first-child { border-radius: 6px !important; }

/* Inativo — futuro */
.estagio-inativo { opacity: 0.35; }
.estagio-inativo span { color: var(--color-text-muted, #666680); }
.estagio-inativo > div:first-child svg * { stroke-width: 1.5; }

/* Ativo — concluído */
.estagio-ativo { opacity: 0.6; color: var(--color-primary, #231F5C); }
.estagio-ativo svg { color: var(--color-primary, #231F5C); }
.estagio-ativo span:first-of-type { font-weight: 500; }

/* Atual — destaque por peso de traço */
.estagio-atual { opacity: 1; color: var(--color-primary, #231F5C); }
.estagio-atual svg { color: var(--color-primary, #231F5C); }
.estagio-atual span:first-of-type { font-weight: 700; }
.estagio-atual > div:first-child {
    border-width: 3px !important;
    box-shadow: 0 0 0 3px rgba(35, 31, 92, 0.12);
}
.estagio-atual > div:first-child svg * { stroke-width: 2.5; }

/* ─────────────────────────────────────────────────────────────────────────────
   8. MODAL IMERSIVO
   Filho direto do <body> — fora de .ref-single-main
   ───────────────────────────────────────────────────────────────────────────── */

.ref-modal-overlay[aria-hidden="true"]  { display: none !important; }
.ref-modal-overlay[aria-hidden="false"] { display: flex; }

body.modal-aberto { overflow: hidden; }

.modal-header--dark {
    background-color: #0d0548;
    color: var(--color-white, #FFFFFF);
    border-bottom: 1px solid rgba(255,255,255,0.10);
}
.modal-header--dark #btn-modal-fechar,
.modal-header--dark #btn-modal-x { color: rgba(255,255,255,0.75); }
.modal-header--dark #btn-modal-fechar:hover,
.modal-header--dark #btn-modal-x:hover { color: var(--color-white, #FFFFFF); }

.modal-header--light {
    background-color: var(--color-white, #FFFFFF);
    color: var(--color-primary, #231F5C);
    border-bottom: 1px solid var(--color-border, #E0E4EA);
}
.modal-header--light #btn-modal-fechar,
.modal-header--light #btn-modal-x { color: var(--color-primary, #231F5C); }

.ref-modal-tab {
    flex-shrink: 0;
    padding: 0 16px;
    height: 100%;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    color: rgba(255,255,255,0.55);
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: all 0.15s ease;
}
.ref-modal-tab:hover { color: rgba(255,255,255,0.9); background-color: #CC3366; }
.ref-modal-tab.tab-ativo { color: var(--color-white, #FFFFFF); background-color: #CC3366; border-bottom-color: var(--color-yellow, #FFAF00); }

.modal-header--light .ref-modal-tab { color: var(--color-text-muted, #666680); border-bottom-color: transparent; }
.modal-header--light .ref-modal-tab:hover { color: var(--color-primary, #231F5C); background-color: #F5F7FA; }
.modal-header--light .ref-modal-tab.tab-ativo { color: var(--color-primary, #231F5C); background-color: #F5F7FA; border-bottom-color: var(--color-primary, #231F5C); }

/* Sub-abas Internas do Mapa */
.ref-modal-mapa-btn {
    padding: 0 16px;
    height: 44px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary, #231F5C);
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
}

.ref-modal-mapa-btn:hover,
.ref-modal-mapa-btn.mapa-subtab-ativa {
    background-color: #E8EDF2 !important;
    border-bottom-color: var(--color-primary, #231F5C);
}

.ref-modal-panel { display: none; flex-direction: column; height: 100%; }
.ref-modal-panel.painel-ativo { display: flex; flex: 1; }

.ref-modal-cat-btn {
    flex-shrink: 0;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.6);
    border: 1px solid rgba(255,255,255,0.15);
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ref-modal-cat-btn:hover { background: rgba(255,255,255,0.16); color: var(--color-white, #FFFFFF); }
.ref-modal-cat-btn.cat-ativa { background: rgba(255,255,255,0.15); color: var(--color-white, #FFFFFF); border-color: rgba(255,255,255,0.40); }

.ref-modal-mapa-btn {
    padding: 12px 16px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted, #666680);
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}
.ref-modal-mapa-btn:hover { color: var(--color-primary, #231F5C); }
.ref-modal-mapa-btn.mapa-subtab-ativa { color: var(--color-primary, #231F5C); border-bottom-color: var(--color-primary, #231F5C); }

/* Street View Floating Button */
.ref-streetview-btn {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    z-index: 25 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--color-primary, #231F5C) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* Blindagem A033: Crop do Google Card no Street View */
.is-sv-active #ref-map-iframe {
    position: absolute !important;
    top: -65px !important;
    height: calc(100% + 130px) !important;
    width: 100% !important;
}

@media (max-width: 767px) {
    .is-sv-active #ref-map-iframe {
        top: -150px !important; /* Crop agressivo — card do Google mais alto em mobile */
        height: calc(100% + 300px) !important;
    }
}

.ref-streetview-btn:hover {
    background: #FFFFFF !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

/* Botão flutuante em modo Street View ativo (POV Mode) */
.ref-streetview-btn[data-sv-mode="true"] {
    background: var(--color-primary, #231F5C) !important;
    color: #FFFFFF !important;
    border-color: transparent !important;
}

.filmstrip-ativo {
    outline: 2px solid var(--color-yellow, #FFAF00);
    outline-offset: 1px;
}

.hide-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.hide-scrollbar::-webkit-scrollbar { display: none; }

/* ─────────────────────────────────────────────────────────────────────────────
   9. BOTTOM NAV MOBILE (C11)
   ATENÇÃO: #bottom-nav-bar é filho direto do <body> (fixed bottom-0) —
   fica FORA de .ref-single-main. As utilities compiladas com o prefixo
   .ref-single-main NÃO se aplicam aqui. Todas as regras usam
   #bottom-nav-bar como âncora direta.
   ───────────────────────────────────────────────────────────────────────────── */

/* Container — bg e cantos arredondados ausentes porque .ref-single-main .bg-white\/90
   e .ref-single-main .rounded-t-2xl não alcançam este elemento */
#bottom-nav-bar {
    background-color: rgba(255, 255, 255, 0.90); /* bg-white/90 */
    border-top-left-radius: 1rem;                /* rounded-t-2xl */
    border-top-right-radius: 1rem;
}

/* Reset de cor e borda — link e botões herdam #c36 do tema fora do .ref-single-main */
#bottom-nav-bar a,
#bottom-nav-bar button {
    text-decoration: none;
    border: none !important;
    outline: none;
}

/* WhatsApp — item primário: cor navy + fundo cinza */
#bottom-nav-bar a {
    color: var(--color-primary, #231F5C); /* text-primary */
    background-color: #f3f4f5;            /* bg-surface-container-low */
}

/* Demais botões — layout e cor
   display:flex explícito: [type=button]{display:inline-block}(0,1,0) vence .flex(0,1,0)
   quando tema carrega após single.css. Botão blockificado pelo grid → filhos side-by-side.
   #bottom-nav-bar button (1,0,1) supera [type=button] (0,1,0) sem !important.
   padding explícito: tema aplica .5rem 1rem sobrescrevendo .py-1/.px-2 */
#bottom-nav-bar button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.5rem;
    color: var(--color-primary, #231F5C); /* navy — igual ao WhatsApp */
    background-color: #f3f4f5;           /* bg-surface-container-low — igual ao WhatsApp */
}

/* Hover botões (touch-hover / pointer) */
#bottom-nav-bar button:hover {
    background-color: #f3f4f5; /* hover:bg-surface-container-low */
}

/* Favoritar — estado ativo (reforço de especificidade sobre a regra global) */
#bottom-nav-bar .ref-favoritar-btn[aria-pressed="true"] .material-symbols-outlined {
    font-variation-settings: 'FILL' 1;
    color: var(--color-primary, #231F5C) !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   10. CAMADA DE UTILIDADES TAILWIND
   Substitui o Tailwind CDN — cobre 100% das classes usadas em:
   - single-empreendimentos.php
   - template-parts/modal-imersivo.php
   Permite Lighthouse ≥90 sem dependência de CDN externo.
   ───────────────────────────────────────────────────────────────────────────── */

/* ── 10.1 Display ── */
.block          { display: block; }
.inline-block   { display: inline-block; }
.flex           { display: flex; }
.grid           { display: grid; }
.hidden         { display: none; }

/* ── 10.2 Flex ── */
.flex-col       { flex-direction: column; }
.flex-row       { flex-direction: row; }
.flex-wrap      { flex-wrap: wrap; }
.flex-1         { flex: 1 1 0%; }
.flex-shrink-0  { flex-shrink: 0; }
.items-start    { align-items: flex-start; }
.items-center   { align-items: center; }
.items-end      { align-items: flex-end; }
.items-baseline { align-items: baseline; }
.justify-start  { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-between{ justify-content: space-between; }
.self-start     { align-self: flex-start; }

/* ── 10.3 Grid ── */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }

/* ── 10.4 Gap / Space ── */
.gap-1  { gap: 0.25rem; }
.gap-2  { gap: 0.5rem; }
.gap-3  { gap: 0.75rem; }
.gap-4  { gap: 1rem; }
.gap-6  { gap: 1.5rem; }
.gap-8  { gap: 2rem; }
.gap-12 { gap: 3rem; }
.gap-x-6{ column-gap: 1.5rem; }
.gap-y-2{ row-gap: 0.5rem; }

.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-16 > * + * { margin-top: 4rem; }

/* ── 10.5 Sizing ── */
.w-full  { width: 100%; }
.w-2     { width: 0.5rem; }
.w-6     { width: 1.5rem; }
.w-10    { width: 2.5rem; }
.w-12    { width: 3rem; }
.w-2\/5  { width: 40%; }
.w-3\/5  { width: 60%; }
.h-full  { height: 100%; }
.h-2     { width: 0.5rem; height: 0.5rem; }
.h-6     { height: 1.5rem; }
.h-10    { height: 2.5rem; }
.h-12    { height: 3rem; }
.min-w-0     { min-width: 0; }
.min-w-full  { min-width: 100%; }
.h-\[2px\]   { height: 2px; }
.max-w-2xl   { max-width: 42rem; }
.max-w-7xl   { max-width: 80rem; }
.max-w-full  { max-width: 100%; }
.max-w-\[280px\] { max-width: 280px; }
.mx-auto { margin-left: auto; margin-right: auto; }

/* ── 10.6 Padding ── */
.p-4  { padding: 1rem; }
.p-5  { padding: 1.25rem; }
.p-6  { padding: 1.5rem; }
.p-8  { padding: 2rem; }
.px-2 { padding-left: 0.5rem;  padding-right: 0.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem;    padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem;  padding-right: 1.5rem; }
.px-8 { padding-left: 2rem;    padding-right: 2rem; }
.py-1   { padding-top: 0.25rem;  padding-bottom: 0.25rem; }
.py-2   { padding-top: 0.5rem;   padding-bottom: 0.5rem; }
.py-2\.5{ padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-3   { padding-top: 0.75rem;  padding-bottom: 0.75rem; }
.py-4   { padding-top: 1rem;     padding-bottom: 1rem; }
.py-8   { padding-top: 2rem;     padding-bottom: 2rem; }
.pt-8   { padding-top: 2rem; }
.pb-4   { padding-bottom: 1rem; }
.pb-28  { padding-bottom: 7rem; }

/* ── 10.7 Margin ── */
.mb-1  { margin-bottom: 0.25rem; }
.mb-2  { margin-bottom: 0.5rem; }
.mb-3  { margin-bottom: 0.75rem; }
.mb-4  { margin-bottom: 1rem; }
.mb-6  { margin-bottom: 1.5rem; }
.mb-8  { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mt-1  { margin-top: 0.25rem; }
.mt-2  { margin-top: 0.5rem; }
.mt-4  { margin-top: 1rem; }
.mt-8  { margin-top: 2rem; }

/* ── 10.8 Position ── */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed    { position: fixed; }
.sticky   { position: sticky; }
.inset-0  { top: 0; right: 0; bottom: 0; left: 0; }
.top-1\/2 { top: 50%; }
.left-1\/2{ left: 50%; }
.bottom-0 { bottom: 0; }
.bottom-3 { bottom: 0.75rem; }
.bottom-6 { bottom: 1.5rem; }
.bottom-10{ bottom: 2.5rem; }
.left-0   { left: 0; }
.left-3   { left: 0.75rem; }
.left-4   { left: 1rem; }
.right-3  { right: 0.75rem; }
.right-4  { right: 1rem; }
.right-6  { right: 1.5rem; }
.top-6              { top: 1.5rem; }
.-top-9             { top: -2.25rem; }
.left-\[10\%\]      { left: 10%; }
.right-\[10\%\]     { right: 10%; }
.top-\[100px\] { top: 100px; }

/* ── 10.9 Transform ── */
.-translate-y-1\/2 { transform: translateY(-50%); }
.-translate-x-1\/2 { transform: translateX(-50%); }
.will-change-transform { will-change: transform; }
.scale-105 { transform: scale(1.05); }

/* ── 10.10 Z-index ── */
.z-0      { z-index: 0; }
.z-10     { z-index: 10; }
.z-50     { z-index: 50; }
.z-\[9999\] { z-index: 9999; }

/* ── 10.11 Overflow ── */
.overflow-hidden  { overflow: hidden; }
.overflow-x-auto  { overflow-x: auto; }
.overflow-y-auto  { overflow-y: auto; }

/* ── 10.11B Divide ── */
.divide-y > * + * { border-top: 1px solid var(--color-border, #E0E4EA); }
.divide-y-0 > * + * { border-top: none; }
.divide-outline-variant\/10 > * + * { border-top-color: rgba(200, 197, 209, 0.1); }

/* ── 10.12 Typography — tamanho ── */
.text-\[10px\] { font-size: 10px; line-height: 1.5; }
.text-xs   { font-size: 0.75rem;   line-height: 1rem; }
.text-sm   { font-size: 0.875rem;  line-height: 1.25rem; }
.text-base { font-size: 1rem;      line-height: 1.5rem; }
.text-lg   { font-size: 1.125rem;  line-height: 1.75rem; }
.text-xl   { font-size: 1.25rem;   line-height: 1.75rem; }
.text-2xl  { font-size: 1.5rem;    line-height: 2rem; }
.text-3xl  { font-size: 1.875rem;  line-height: 2.25rem; }
.text-5xl  { font-size: 3rem;      line-height: 1; }
.text-6xl  { font-size: 3.75rem;   line-height: 1; }

/* ── 10.13 Typography — peso / estilo ── */
.font-normal    { font-weight: 400; }
.font-medium    { font-weight: 500; }
.font-semibold  { font-weight: 600; }
.font-bold      { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black     { font-weight: 900; }
.ref-single-main.font-body,
.ref-single-main .font-body { font-family: var(--font-family-base, 'Inter', sans-serif) !important; }
.uppercase      { text-transform: uppercase; }
.line-clamp-1   { display: -webkit-box; -webkit-line-clamp: 1; line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.whitespace-nowrap { white-space: nowrap; }
.text-center { text-align: center; }
.text-right  { text-align: right; }
.leading-tight   { line-height: 1.25; }
.leading-snug    { line-height: 1.375; }
.leading-relaxed { line-height: 1.625; }
.tracking-tight    { letter-spacing: -0.025em; }
.tracking-wider    { letter-spacing: 0.05em; }
.tracking-widest   { letter-spacing: 0.1em; }
.tracking-\[0\.2em\] { letter-spacing: 0.2em; }

/* ── 10.14 Cores — texto ── */
.ref-single-main .text-primary           { color: var(--color-primary, #231F5C) !important; }
.ref-single-main .text-secondary         { color: var(--color-teal, #008797) !important; }
.ref-single-main .text-white             { color: var(--color-white, #FFFFFF) !important; }
.ref-single-main .text-on-surface-variant{ color: #474650 !important; }
.ref-single-main .text-tertiary-fixed-dim{ color: #FFAF00 !important; }    /* preços — rastreado para original stitch */
.text-white\/80     { color: rgba(255,255,255,0.80); }

/* ── 10.15 Cores — background ── */
.bg-white                    { background-color: var(--color-white, #FFFFFF); }
.bg-primary                  { background-color: var(--color-primary, #231F5C); }
.bg-surface-container-low    { background-color: #f3f4f5; }
.bg-surface-container-lowest { background-color: #ffffff; }
.bg-surface-container-high   { background-color: #e7e8e9; }
.bg-surface-container-highest\/10 { background-color: rgba(225, 227, 228, 0.1); }
.bg-\[\#25D366\]             { background-color: #25D366; }
.ref-single-main .bg-white\/90  { background-color: rgba(255,255,255,0.90) !important; }
.bg-white\/10  { background-color: rgba(255,255,255,0.10); }
.bg-white\/20  { background-color: rgba(255,255,255,0.20); }
.bg-white\/60  { background-color: rgba(255,255,255,0.60); }
.bg-on-surface { background-color: #1C1B1F; }
.bg-black\/35  { background-color: rgba(0,0,0,0.35); }
.bg-black\/60  { background-color: rgba(0,0,0,0.60); }
.bg-primary\/5 { background-color: rgba(35,31,92,0.05); }

/* ── 10.16 Cores — borda ── */
.border               { border-width: 1px !important; border-style: solid !important; border-color: var(--color-border, #E0E4EA); }
.border-2             { border-width: 2px; border-style: solid; }
.border-t             { border-top-width: 1px; border-top-style: solid; border-top-color: var(--color-border, #E0E4EA); }
.border-b             { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: var(--color-border, #E0E4EA); }
.border-primary          { border-color: var(--color-primary, #231F5C); }
.border-outline-variant  { border-color: #C8C5D1; }
.border-t-2              { border-top-width: 2px; }
.border-dashed           { border-style: dashed; }
.border-\[\#DDDDDD\]     { border-color: #DDDDDD; }
.border-outline-variant\/10 { border-color: rgba(200, 197, 209, 0.10); }
.border-outline-variant\/20 { border-color: rgba(200, 197, 209, 0.20); }
.border-outline-variant\/30 { border-color: rgba(200, 197, 209, 0.30); }
.border-\[\#231F5C\]  { border-color: #231F5C; }
.border-\[\#AAAAAA\]  { border-color: #AAAAAA; }

/* ── 10.17 Border radius ── */
.ref-single-main .rounded       { border-radius: 0.125rem !important; } /* 2px */
.ref-single-main .rounded-lg    { border-radius: 0.25rem !important; }  /* 4px */
.ref-single-main .rounded-xl    { border-radius: 0.5rem !important; }   /* 8px */
.ref-single-main .rounded-2xl   { border-radius: 0.75rem !important; }  /* 12px */
.ref-single-main .rounded-t-2xl { border-top-left-radius: 0.75rem !important; border-top-right-radius: 0.75rem !important; }
.ref-single-main .rounded-full  { border-radius: 9999px !important; }

/* ── 10.18 Sombras ── */
.shadow-md  { box-shadow: 0 4px 6px -1px rgba(0,0,0,0.10), 0 2px 4px -2px rgba(0,0,0,0.10); }
.ref-single-main .shadow-lg  { box-shadow: 0 4px 14px 0 rgba(0,0,0,0.15) !important; } /* --shadow-floating Gabarito */

/* Ajuste específico para o botão Ver Todas as Fotos — Refinamento v1.0.75 */
.mosaic-grid button[data-trigger-modal="galeria"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px 24px !important; /* py-4 px-6 para chegar nos 52px de altura */
    font-size: 14px !important;    
    font-weight: 700 !important;   
    gap: 8px !important;           
    line-height: 20px !important;  /* Igual ao Gabarito */
    height: 52px !important;       /* Forçar altura do Gabarito */
}

.mosaic-grid button[data-trigger-modal="galeria"] .material-symbols-outlined {
    font-size: 18px !important;    /* Ajustado para 18px conforme Gabarito */
    width: 18px !important;        /* Pina espaço durante display=block → CLS=0 */
    height: 22px !important;       /* Valor computado inspecionado em produção */
    display: flex !important;
    align-items: center !important;
    line-height: normal !important;
    overflow: hidden !important;   /* Garante clip se glifo de fallback vazar */
}

/* Ajuste específico para o botão Mobile Slider — Refinamento v1.0.76 */
#mobile-slider button[data-trigger-modal="galeria"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    bottom: 40px !important;       /* Gabarito mobile */
    right: 16px !important;        /* Gabarito mobile */
    height: 40px !important;       /* Gabarito mobile */
    padding: 8px 16px !important;  /* Gabarito mobile */
    font-size: 12px !important;    /* Gabarito mobile */
    font-weight: 700 !important;   /* Gabarito mobile */
    line-height: 16px !important;  /* Gabarito mobile */
    gap: 8px !important;
}

#mobile-slider button[data-trigger-modal="galeria"] .material-symbols-outlined {
    font-size: 16px !important;    /* Visualmente coerente com 12px */
    width: 16px !important;        /* Pina espaço durante display=block → CLS=0 */
    height: 20px !important;       /* Proporcional ao font-size 16px */
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

/* Botões de Ação Media (C07, C10) — Plantas, Visita Virtual, Vídeos e Mapa */
body.ref-page-single .ref-single-main button[data-trigger-modal="plantas"],
body.ref-page-single .ref-single-main button[data-trigger-modal="visita-virtual"],
body.ref-page-single .ref-single-main button[data-trigger-modal="videos"],
body.ref-page-single .ref-single-main button[data-trigger-modal="mapa"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: var(--color-white, #FFFFFF) !important;
    padding: 0.5rem 1.5rem !important; /* py-2 px-6 */
    font-weight: 700 !important;
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
    gap: 8px !important;              /* Espaçamento ícone/texto */
    border-radius: 8px !important;    /* rounded-lg */
    box-shadow: 0 4px 14px 0 rgba(0,0,0,0.15) !important; /* shadow-lg / shadow-floating */
    transition: all 0.15s ease-in-out !important;
    color: var(--color-primary, #231F5C) !important;
}

body.ref-page-single .ref-single-main button[data-trigger-modal="plantas"]:active,
body.ref-page-single .ref-single-main button[data-trigger-modal="visita-virtual"]:active,
body.ref-page-single .ref-single-main button[data-trigger-modal="videos"]:active,
body.ref-page-single .ref-single-main button[data-trigger-modal="mapa"]:active {
    transform: scale(0.96) !important;
}

/* Blindagem de Ícones Material Symbols nestes botões */
body.ref-page-single .ref-single-main button[data-trigger-modal] .material-symbols-outlined,
body.ref-page-single .ref-single-main button[data-trigger-modal] .ref-action-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Blindagem do texto do botão */
body.ref-page-single .ref-single-main button[data-trigger-modal] .ref-action-text {
    display: inline-block !important;
    text-transform: none !important;     /* Garante que não herde uppercase de Elementor */
    letter-spacing: normal !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    line-height: 1.25rem !important;
    white-space: nowrap !important;
}

.shadow-xl  { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.10), 0 8px 10px -6px rgba(0,0,0,0.10); }

/* aside card — shadow com blur específico */
.shadow-\[0_12px_32px_rgba\(35\2c31\2c92\2c0\.06\)\] {
    box-shadow: 0 12px 32px rgba(35,31,92,0.06);
}

/* ── 10.19 Backdrop blur ── */
.backdrop-blur    { backdrop-filter: blur(8px); }
.backdrop-blur-xl { backdrop-filter: blur(24px); }

/* ── 10.20 Transições ── */
.transition-all       { transition-property: all; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
.transition-colors    { transition-property: color, background-color, border-color; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
.transition-opacity   { transition-property: opacity; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
.transition-transform { transition-property: transform; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-700 { transition-duration: 700ms; }

/* ── 10.21 Hover states ── */
.hover\:opacity-90:hover      { opacity: 0.90; }
.hover\:bg-white:hover        { background-color: var(--color-white, #FFFFFF); }
.hover\:bg-primary\/5:hover   { background-color: rgba(35,31,92,0.05); }
.hover\:bg-surface-container-low:hover { background-color: var(--color-bg-light, #F5F7FA); }
.hover\:bg-white\/20:hover    { background-color: rgba(255,255,255,0.20); }
.hover\:shadow-xl:hover       { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.10), 0 8px 10px -6px rgba(0,0,0,0.10); }
.opacity-80 { opacity: 0.8 !important; }
.hover\:text-primary:hover    { color: var(--color-primary, #231F5C); }
.hover\:underline:hover       { text-decoration: underline; }
.hover\:scale-105:hover       { transform: scale(1.05); }

/* ── 10.22 Group hover (galeria, cross-selling) ── */
/* .group — marcador para ativar hover dos filhos */
.group:hover .group-hover\:scale-105  { transform: scale(1.05); }
.group:hover .group-hover\:scale-110  { transform: scale(1.10); }

/* ── 10.23 Active ── */
.active\:scale-95:active { transform: scale(0.95); }

/* ── 10.24 Gradientes (hero mosaico + overlay do mapa) ── */
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--_from, transparent), var(--_to, transparent)); }

/* Composição explícita dos gradientes usados no template */
.bg-gradient-to-t.from-black\/20 {
    background: linear-gradient(to top, rgba(0,0,0,0.20), transparent);
}
.bg-gradient-to-t.from-black\/60 {
    background: linear-gradient(to top, rgba(0,0,0,0.60), transparent);
}

/* ── 10.25 Object fit ── */
.object-cover   { object-fit: cover; }
.object-contain { object-fit: contain; }

/* ── 10.26 Pointer / cursor ── */
.cursor-pointer     { cursor: pointer; }
.pointer-events-none{ pointer-events: none; }
.select-none        { user-select: none; }

/* ── 10.29 Filters ── */
.blur-sm { filter: blur(4px); }

/* ── 10.27 Aspect ratio ── */
.aspect-\[3\/2\] { aspect-ratio: 3 / 2; }

/* ── 10.28 Utilitários diversos ── */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.leading-none  { line-height: 1; }

/* ─────────────────────────────────────────────────────────────────────────────
   10R. VARIANTES RESPONSIVAS
   sm = 640px | md = 768px | lg = 1024px
   Nota: em CSS, o prefixo "sm:", "md:", "lg:" contém ":" — precisa de escape (\:)
   ───────────────────────────────────────────────────────────────────────────── */

/* ── sm (≥640px) ── */
@media (min-width: 640px) {
    .sm\:flex   { display: flex; }
    .sm\:hidden { display: none; }
    .sm\:inline { display: inline; }
    .sm\:flex-row        { flex-direction: row; }
    .sm\:items-center    { align-items: center; }
    .sm\:justify-between { justify-content: space-between; }
    .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── md (≥768px) ── */
@media (min-width: 768px) {
    .md\:flex-row   { flex-direction: row; }
    .md\:items-start{ align-items: flex-start; }
    .md\:hidden     { display: none; }
    .md\:pb-8       { padding-bottom: 2rem; }
    .md\:pb-20      { padding-bottom: 5rem; }
    .md\:text-5xl   { font-size: 3rem; line-height: 1; }
    .md\:px-6       { padding-left: 1.5rem; padding-right: 1.5rem; }
    .md\:left-6     { left: 1.5rem; }
    .md\:right-6    { right: 1.5rem; }
    .md\:col-span-2 { grid-column: span 2 / span 2; }
    .md\:grid-cols-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── 10.30 Utilitários de Cor de Fundo Adicionais ── */
.bg-\[\#F8F9FA\] { background-color: #F8F9FA !important; }

/* ── 10.31 Utilitários Sidebar v1.0.82 ── */
.text-\[10px\]     { font-size: 10px !important; }
.text-\[30px\]     { font-size: 30px !important; }
.text-\[12px\]     { font-size: 12px !important; }
.tracking-\[1px\]  { letter-spacing: 1px !important; }
.tracking-\[-0.75px\] { letter-spacing: -0.75px !important; }
.h-14              { height: 56px !important; }
.rounded-lg        { border-radius: 8px !important; }
.rounded-xl        { border-radius: 12px !important; }

/* ── Preço Sidebar v1.0.83 ── */
.ref-sidebar-price-label {
    font-size: 10px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #474650 !important;
    line-height: 15px !important;
    margin-bottom: 4px !important;
    font-family: 'Inter', sans-serif !important;
}
.ref-sidebar-price-value {
    font-size: 30px !important;
    font-weight: 900 !important;
    color: #FFAF00 !important;
    letter-spacing: -0.75px !important;
    line-height: 36px !important;
    margin: 0 !important;
    font-family: 'Inter', sans-serif !important;
}

.ref-btn-sidebar {
    height: 56px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-family: 'Inter', sans-serif !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    transition: all 0.2s ease !important;
    width: 100% !important;
    cursor: pointer !important;
    text-decoration: none !important;
}
.ref-btn-wa { background-color: #25D366 !important; color: #FFFFFF !important; border: none !important; }
.ref-btn-wa:hover { background-color: #1EB954 !important; opacity: 1 !important; }

.ref-btn-agendar { background-color: #231F5C !important; color: #FFFFFF !important; border: none !important; }
.ref-btn-agendar:hover { background-color: #1D1A4A !important; opacity: 1 !important; }

.ref-btn-teal { background-color: #008797 !important; color: #FFFFFF !important; border: none !important; }
.ref-btn-teal:hover { background-color: #007685 !important; opacity: 1 !important; }

/* ─────────────────────────────────────────────────────────────────────────────
   C03 — Botão Favoritar — Controle Visual (mobile-first)
   Seletor: (0,5,1) — supera grupo .flex-col > button (0,4,2), .ref-favoritar-btn (0,4,1) e reset (0,2,2)
   Cada breakpoint declara seus próprios valores para permitir ajuste pontual independente.
   ───────────────────────────────────────────────────────────────────────────── */

/* Padrão — mobile (< 1024px) */
body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav {
    background-color: #FFFFFF !important;
    color: var(--color-primary, #231F5C) !important;
    border: 1px solid var(--color-primary, #231F5C) !important;
}
body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav .material-symbols-outlined {
    color: var(--color-primary, #231F5C) !important;
}
body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav:hover {
    background-color: var(--color-primary, #231F5C) !important;
    color: #FFFFFF !important;
    border: none !important;
}
body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav:hover .material-symbols-outlined {
    color: #FFFFFF !important;
}

/* Desktop (≥ 1024px) */
@media (min-width: 1024px) {
    body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav {
        background-color: #FFFFFF !important;
        color: var(--color-primary, #231F5C) !important;
        border: 1px solid var(--color-primary, #231F5C) !important;
    }
    body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav .material-symbols-outlined {
        color: var(--color-primary, #231F5C) !important;
    }
    body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav:hover {
        background-color: var(--color-primary, #231F5C) !important;
        color: #FFFFFF !important;
        border: none !important;
    }
    body.ref-page-single .ref-single-layout .ref-single-aside .ref-btn-sidebar.ref-btn-fav:hover .material-symbols-outlined {
        color: #FFFFFF !important;
    }
}

/* ── lg (≥1024px) ── */
@media (min-width: 1024px) {
    .lg\:flex-row       { flex-direction: row; }
    .lg\:w-\[380px\]    { width: 380px; }
    .lg\:sticky         { position: sticky; }
    .lg\:gap-12         { gap: 3rem; }
    .lg\:p-8            { padding: 2rem; }
}











/* 11. Mapa Preview Leaflet (v1.0.155) */
#ref-map-static-preview {
    background-color: #000; /* Fundo preto para quando a opacidade do mapa baixar */
    z-index: 1;
}

/* Forçar desfoque e opacidade no container do mapa */
#ref-map-static-preview .leaflet-map-pane,
#ref-map-static-preview .leaflet-tile-pane {
    filter: blur(2px) grayscale(0.1) !important;
}

/* Camadas de Overlay (v1.0.155) */
.ref-map-overlay-mask {
    z-index: 10 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
}

.ref-map-content-overlay {
    z-index: 20 !important;
}

/* Remover links e bordas padrão do Leaflet no preview */
#ref-map-static-preview .leaflet-control-attribution {
    display: none !important;
}
#ref-map-static-preview .leaflet-container {
    background: #000 !important;
    cursor: default !important;
}
#ref-map-static-preview img {
    max-width: none !important;
}

.opacity-90 {
    opacity: 0.9 !important;
}
